HTTP Codes Find below the list of HTTP return codes: 200OKNote: The request was executed correctly400BAD REQUESTNote: Wrong parameter or rule401UNAUTHORIZEDNote: Login / password are missing for HTTP authentication402PAYMENT_REQUIREDNote: Authorization denied*403FORBIDDENNote: Wrong authentication404NOT FOUNDNote: Incorrect URL500INTERNAL SERVER ERRORNote: Server error (*) Only possible for the creation of a transaction
Compte CentralPay Le compte CentralPay est ouvert au nom d’une entité (personne physique ou morale) et permet d’accéder à nos services d’encaissement, de paiement ou de gestion de la monnaie électronique. Il constitue la base : Contractuelle : rattachement à une grille tarifaire, acceptation des CGU, contrat d’acceptation le cas échéant Technique : authentification, accès API, création des utilisateurs Fonctionnelle : paramétrage des points de vente, scénarios de notification, reversements, règles d’acceptation Réglementaire : gestion du KYC/KYB, conformité à la réglementation Un compte CentralPay peut contenir un ou plusieurs comptes de paiement ou comptes de monnaie électronique, selon les services activés. 1. Types de comptes selon le modèle d’intégration Chaque compte CentralPay est associé à un modèle d’utilisation précis. Pour plus de détails sur l’entrée en relation, consultez nos pages dédiées aux modèles d’intégration. Marchand Type : STANDARD Le Marchand est une entreprise ou un professionnel qui encaisse des paiements pour son propre compte. Il dispose d’un ou plusieurs comptes de paiement, d’un contrat d’acceptation, et peut accéder aux services CentralPay via API ou via un partenaire. 👉 En savoir plus sur le modèle Marchand Intégrateur Type : STANDARD L’Intégrateur accompagne plusieurs Marchands dans leur intégration technique avec CentralPay. Chaque Marchand dispose de son propre point de vente et d’un contrat individuel. L’Intégrateur utilise les accès API fournis par chaque Marchand, dans le cadre d’une relation contractuelle. Dispose d’un compte CentralPay type Marchand pour ses propres besoins Un point de vente distinct est créé pour chaque Marchand accompagné Peut initier des transactions techniques via les accès API du Marchand CentralPay facture chaque Marchand directement 👉 En savoir plus sur le modèle Intégrateur Intégrateur MOBSP Type : STANDARD + MOBSP L’Intégrateur MOBSP est un Intégrateur disposant d’un mandat réglementaire. Il peut initier une demande d’entrée en relation pour le compte d’un Marchand, et l’accompagner techniquement via l’API d’onboarding. Comme tout Intégrateur, il agit uniquement via les accès API fournis par le Marchand. Mêmes droits et fonctionnement qu’un Intégrateur Peut initier une demande d’enrôlement complète via API Peut accompagner le marchand durant l’enrôlement 👉 En savoir plus sur le modèle Intégrateur MOBSP Partenaire Technique Type : STANDARD Le Partenaire Technique développe une solution d’encaissement opérée depuis un point de vente unique, pour le compte de plusieurs Marchands ou Participants. Il utilise ses propres accès API pour superviser les opérations liées à cette structure centralisée. Un seul point de vente est utilisé pour regrouper les utilisateurs Accès API CentralPay propre au Partenaire Technique CentralPay facture le Partenaire Ne peut pas initier d’enrôlement ni agir au nom des utilisateurs 👉 En savoir plus sur le modèle Partenaire Technique Partenaire Technique MOBSP Type : STANDARD + MOBSP Le Partenaire Technique MOBSP est mandaté pour initier une demande d’entrée en relation au nom de ses utilisateurs. Il peut transmettre les informations nécessaires via l’API d’onboarding, mais n’intervient pas dans l’exécution des opérations de paiement. Même droit et fonctionnement qu’un Partenaire Technique Peut initier une demande d’enrôlement complète via API Peut accompagner le marchand durant l’enrôlement 👉 En savoir plus sur le modèle Partenaire Technique MOBSP Partenaire DME Type : DME Le Partenaire DME (Distributeur de Monnaie Électronique) transmet des instructions de chargement, de transfert ou de remboursement pour le compte de Participants. Il agit en tant qu’intermédiaire technique sur la monnaie électronique, et peut percevoir une commission sur les opérations. 👉 En savoir plus sur le modèle Partenaire DME Partenaire Agent Type : AGENT Le Partenaire Agent est un prestataire de services de paiement (PSP) enregistré auprès de l’ACPR. Il peut inscrire des sous-marchands (Participants), gérer le KYC/KYB, encaisser des paiements, piloter les reversements, et opérer un compte de collecte. Il agit au nom et pour le compte de CentralPay dans le cadre de services réglementés. 👉 En savoir plus sur le modèle Agent Participant et Sous-marchand Type : BASIC Les Participants sont des entités finales rattachées à un Partenaire (Technique, DME ou Agent). Ils disposent d’un compte de paiement ou de monnaie électronique pour recevoir des fonds, et peuvent accéder au Portail Utilisateur pour consulter leurs opérations et gérer leurs reversements. On distingue deux types de Participants selon leur finalité : Sous-marchand : agit à des fins commerciales (vente de biens ou de services) Participant non commercial : agit à des fins non commerciales (ex. chargement de wallet pour accès à un service, projet interne ou collaboratif…) Les Participants et Sous-marchands n’entrent pas directement en relation avec CentralPay. Leur cadre d’utilisation et leurs droits sont définis dans les modèles de Partenariat auxquels ils sont rattachés. 2. Paramétrage des emails de contact Vous pouvez personnaliser les adresses email de contact associées à votre compte pour que les notifications, relances ou échanges contractuels soient bien adressés aux bons interlocuteurs. Email contact : référent principal du compte Email administratif : en charge des sujets juridiques ou contractuels Email technique : en charge de l’intégration ou des incidents Email financier : en charge de la facturation ou des flux bancaires ℹ️ Par défaut, ces adresses sont initialisées avec l’email du titulaire du compte. Elles peuvent être modifiées à tout moment depuis le Portail Utilisateur. Accès à la configuration des emails de contact : Portail Utilisateur de RCT Portail Utilisateur de PROD
Certifications et agréments CentralPay propose des solutions de paiement modulaires permettant l’unification des flux d’encaissement pour compte propre et l’automatisation des reversements pour le compte de tiers. La typologie de services et d’opérations proposées par CentralPay varie en fonction des besoins et de l’activité de ses marchands et partenaires. CentralPay est une société indépendante, entièrement propriétaire de sa technologie et de ses agréments. Garantissant la meilleure autonomie possible dans ses choix de partenariats et de son évolution. CentralPay est autorisé à entrer en relation d’affaires avec les entreprises enregistrées dans l’Espace Économique Européen. ACPR (Banque de France)Établissement de Monnaie Électronique : CentralPay est un Établissement de Monnaie Électronique régulé par la Banque de France à travers son autorité de contrôle prudentiel et de résolution, l’ACPR (CIB 17138).DSP2 : CentralPay est conforme à la 2ème Directive sur les Services de Paiements qui impose notamment des exigences en matière d’authentification forte et de protection des données.PCI-DSS : CentralPay obtient annuellement la certification la plus élevée possible en matière de sécurisation des données bancaires et prévention de la fraude ; la norme PCI DSS de niveau 1.EBA CLEARING & EPC : En qualité de membre de l’European Payment Council et sa connexion à l’EBA CLEARING, CentralPay intègre les schémas européens des règlements SEPA afin d’émettre et de recevoir des virements et des prélèvements depuis ses propres IBAN et IBAN virtuels.SWIFT : Connecté au réseau SWIFT, messagerie la plus acceptée à l’échelle mondiale, CentralPay est en mesure d’échanger des flux financiers internationaux avec la plupart des banques et des institutions financières participantes.Visa, Mastercard, Cartes bancaires, American Express : CentralPay est accrédité auprès des grands réseaux de cartes, afin d’optimiser les parcours et la conversion des paiements de tous ses utilisateurs.
How to use the swagger > You’ll find below instruction to use our swagger properly 1 – This is where you can choose the server you’ll call for your tests. For now, only RCT (Test Api) is available.2 – In order to do your tests, you’ll need to authenticate with your credentials. You can use here your Api login and password. You can also use our test login : Doctest:4I9HJRTd 3 – This is where you will be able to see the parameters for each endpoint, and do your tests. 4 – Try it out. Use this if you want to be able to test the endpoint. Make sure you’re authenticated before doing so.5 – This is where you’ll be able to use the test values of your choosing. By default, most values are already filled, but use yours for better results.6 – Click here once values are filled to call our Api and do your tests.7 – This is where you’ll see the results once you called our Api. You’ll also find here by default responses example for this endpoint.
Guide de démarrage rapide > 1. Entrée en relation Pour commencer, découvrez nos offres et choisissez la méthode d’entrée en relation la plus adaptée à votre projet : Consultez nos offres tarifaires Présentez votre projet à notre équipe commerciale Choisissez le modèle d’entrée en relation adapté à votre activité Découvrez les étapes d’entrée en relation 2. Création de votre compte de test CentralPay met à votre disposition un environnement de test (RCT) pour développer et valider votre intégration : Compte de test Marchand : Pour tester uniquement la solution d’encaissement Smart Collection, demandez un compte de test via notre formulaire. Compte de test Partenaire : Pour tester l’encaissement (Smart Collection) et les transferts de fonds (Easy Wallet), contactez notre service client. Nous créerons et paramétrerons votre compte de test en conséquence. 3. Choix de votre méthode d’intégration Choisissez la méthode d’intégration qui correspond à vos besoins : Intégration Smart : Utilisez les demandes de paiement et la page de paiement CentralPay pour encaisser vos transactions. Les parcours clients sont préconfigurés, pour un déploiement rapide. Intégration Custom : Intégrez directement les services API pour les transactions par carte, par virement SEPA (SCT) et/ou par prélèvement SEPA (SDD). Cette approche vous permet de maîtriser entièrement l’expérience client, mais requiert un développement plus avancé. 4. Paramétrage de votre compte Votre compte CentralPay peut être configuré de manière autonome ou avec l’accompagnement de notre équipe support. Important : les paramétrages réalisés sur votre compte de test (RCT) ne sont pas automatiquement répliqués en production (PRD). Veillez à les reconfigurer une fois votre compte de production activé. Paramétrages principaux : Accès d’authentification API Déclaration des domaines autorisés (si intégration Custom) Comptes de paiement et comptes bancaires de sortie Utilisateurs du Portail Points de vente Webhooks Identifiant de Créancier SEPA (ICS) Paramétrages secondaires : Emails de contact du compte Règles d’acceptation Reversements Libellé de relevé bancaire Notifications automatiques Page de paiement SmartForm Profils de demandes de paiement Paramétrage des nouvelles tentatives automatiques pour les échecs de prélèvement carte Tentatives automatiques pour les échecs de prélèvement SEPA 5. Simuler des paiements Avant la mise en production, effectuez des simulations de paiement client dans votre compte de test (RCT) pour vérifier l’intégration : Carte : Utilisez nos cartes de test pour simuler différents statuts de transaction. Virement SEPA (SCT) : Créez une ou plusieurs transactions SCT puis demandez à notre support de simuler leur traitement. Prélèvement SEPA (SDD) : Utilisez un IBAN/BIC de test fourni dans notre documentation. 6. Mise en production Une fois vos tests validés en environnement RCT, préparez le passage en production (PRD). Rappel : aucun paramétrage n’est automatiquement copié de RCT vers PROD. Récupérer les credentials API pour l’environnement PROD Vérifier l’URL API de production Récupérer la merchantPublicKey pour générer des cardToken Informer CentralPay de toute mise en production ou évolution majeure Déclarer l’URL de votre site dans la configuration de votre point de vente Vérifier l’accès à la page support depuis le Portail utilisateur Vous pouvez ensuite effectuer une ou deux transactions réelles à 1 € pour vérifier le bon fonctionnement du paiement en production.
Contacter CentralPay > CentralPay s’emploie à une croissance saine, permettant à nos utilisateurs d’être quotidiennement accompagnés par des équipes stables et expertes dans leur domaine (conformité, monétique, sécurité…). Ainsi, nos services client et support sont joignables du lundi au vendredi depuis l’espace « Aide & Support » de votre Portail utilisateur, par email ou par visioconférence sur rendez-vous. 1. Avant d’adresser une demande technique Quelques points que vous pouvez vérifier préalablement : Authentification : Êtes-vous correctement authentifié ? Environnement : Êtes-vous sur le bon environnement du Portail utilisateur et de l’API (RCT ou PROD) ? Autorisation : Avez-vous les autorisations nécessaires pour réaliser cette opération ? L’erreur HTTP 403 signale une erreur d’autorisation. Erreur HTTP : Consultez la signification des codes d’erreurs HTTP CentralPay. Si vous recevez un code erreur HTTP 500, veuillez contacter immédiatement le support technique. 2. Informations à communiquer pour toutes demandes techniques Les dates et heures précises des évènements concernés Le lien (URL) de la page concernée Une ou des capture(s) d’écran, idéalement une vidéo (Cloudapp permet de faire une vidéo d’une page du navigateur Google Chrome) Un UUID (ou id) de l’opération concernée et son type (transaction carte, remboursements, demande de paiement…) L’environnement sur lequel vous travaillez (recette RCT ou production PROD) Une description précise du problème rencontré ou de votre interrogation Ces informations nous permettrons de vous accompagner et d’analyser votre situation plus efficacement. Vos demandes seront traitées de façon prioritaire si elles sont envoyées depuis l’espace « Aide et Support » du Portail Utilisateur : Portail Utilisateur de RCT – Aide et support Portail Utilisateur de PROD – Aide et support
Bank return codes List of codes returned by the issuer bank to CentralPay after an autorization request 00Transaction approved or successfully processed02Contact card issuer03Invalid acceptor04Keep card05Do not honor06Transaction invalid for terminal07Honor with ID08Time-Out09No original10Unable to reverse11Partial approval12Invalid transaction13Invalid amount14Invalid cardholder number15Unknown card issuer17Invalid capture date (terminal business date)19Repeat transaction later20No From Account21No To Account22Account not verified23Account not saved24No Credit Account25Unable to locate record in file26Record duplicated27 ‘Edit’ error in file update field28File access denied29File update not possible30Format error31Identifier of acquiring organization unknown32Transaction partially completed33Card validity date exceeded34Implausible card data38Number of PIN attempts exceeded39Transaction not allowed41Lost card42Special Pickup43Stolen card44Stolen card51Insufficient funds or overdraft54 Card expired55Incorrect PIN56 Card not on file57Transaction not authorized to this cardholder58Transaction prohibited at terminal59Suspected fraud60 the card acceptor must contact the buyer61Withdrawal amount over limit62Card use restricted63MAC Key Error65 Frequency limit exceeded66Acquirer limit reached67Card withheld68Response not received or received too late75Number of PIN attempts exceeded76Invalid Account77Issuer not participating in service78Function not available79Key validation error80Approved for purchase amount only81Unable to verify PIN82Invalid CVV83Not refused84Invalid transaction lifecycle85No key to use86KME synchronization error87PIN error88MAC synchronization error89Security violation90Temporary system shutdown91Card transmitter inaccessible92Card issuer unknown93Transacation cannot be finalized94Duplicate request95Contact acquirer96System malfunction97No Funds Transfer98Duplicate Reversal99Duplicate TransactionN3Cash Service Not AvailableN4Cash Back Request Exceeds Issuer LimitN7Declined for CVV2 failureR0Stop Payment OrderR1Revocation of Authorisation OrderR3Revocation of all Authorisations OrderA0Withdrawal in contact modeA1VADS fallback000Approved001Approve with ID002Partial approval (prepaid cards only)100Reject101Card expired / invalid expiry date106PIN attempts exceeded107Please call issuer109Invalid merchant110Invalid amount111Invalid account / Invalid MICR (traveler’s check)115Requested function not supported117Invalid PIN119Cardholder not registered / not authorized122Invalid card security code (alias CID, 4DBC, 4CSC)125Invalid effective date181Format error183Invalid currency code187Refuse – New card issued189Refuse – Merchant cancelled or closed / SE200Refuse – Pick up card900Accepted – ATC synchronization909System malfunction (cryptographic error)912Issuer not available
L'établissement CentralPay Articles Certifications et agréments Sécurité et hébergement Engagements de disponibilité Évolution de la plateforme Certifications et agréments CentralPay propose des solutions de paiement modulaires permettant l’unification des flux d’encaissement pour compte propre et l’automatisation des reversements pour le compte de tiers. La typologie de services et d’opérations proposées par CentralPay varie en fonction des besoins et de l’activité de ses marchands et partenaires. CentralPay est une société indépendante, entièrement propriétaire de sa technologie et de ses agréments. Garantissant la meilleure autonomie possible dans ses choix de partenariats et de son évolution. CentralPay est autorisé à entrer en relation d’affaires avec les entreprises enregistrées dans l’Espace Économique Européen. ACPR (Banque de France)Établissement de Monnaie Électronique : CentralPay est un Établissement de Monnaie Électronique régulé par la Banque de France à travers son autorité de contrôle prudentiel et de résolution, l’ACPR (CIB 17138).DSP2 : CentralPay est conforme à la 2ème Directive sur les Services de Paiements qui impose notamment des exigences en matière d’authentification forte et de protection des données.PCI-DSS : CentralPay obtient annuellement la certification la plus élevée possible en matière de sécurisation des données bancaires et prévention de la fraude ; la norme PCI DSS de niveau 1.EBA CLEARING & EPC : En qualité de membre de l’European Payment Council et sa connexion à l’EBA CLEARING, CentralPay intègre les schémas européens des règlements SEPA afin d’émettre et de recevoir des virements et des prélèvements depuis ses propres IBAN et IBAN virtuels.SWIFT : Connecté au réseau SWIFT, messagerie la plus acceptée à l’échelle mondiale, CentralPay est en mesure d’échanger des flux financiers internationaux avec la plupart des banques et des institutions financières participantes.Visa, Mastercard, Cartes bancaires, American Express : CentralPay est accrédité auprès des grands réseaux de cartes, afin d’optimiser les parcours et la conversion des paiements de tous ses utilisateurs. Sécurité et hébergement CentralPay exploite ses services depuis deux Datacenter français. Les équipements et services exploités sur ces deux sites sont entièrement redondés. 1. Un hébergement hautement résilient Deux Datacenter de conception TIER III basés à Tours Environnement actif/actif entre les deux sites Des engagements contractuels (SLA) de 99.9 % Des normes reconnues : ISO27001, PCI-DSS, Code of Conduct 2. Une infrastructure garante de la sécurité de vos données Cœur de réseau allant jusqu’à 10 Gb/s Réseau électrique entièrement redondé, densité électrique allant de 600 mA à 32 A Système de contrôle d’accès avec double authentification (badge & code personnel) Vidéo-surveillance et alarme reliée 24h/7j à notre télésurveillance Système d’extinction d’incendie par aérosol FirePro Engagements de disponibilité CentralPay garantit une disponibilité annuelle de ses services (SLA & PCA) selon les barèmes suivants : CPAY APITraitement des opérations de paiementCPAY PORTALSPortails d’inscription, client et utilisateur99,9 %sur une base annuelle99,5 %sur une base annuelleLe critère d’atteinte de cette garantie correspond à la disponibilité de l’API de paiement.Le critère d’atteinte de cette garantie correspond à la disponibilité des portails de l’environnement de production. Évolution de la plateforme Les API de CentralPay reposent sur une architecture en micro services apportant un maximum de flexibilité. Notre approche modulaire permet de faire constamment évoluer nos solutions afin d’apporter toujours plus de services et de fonctionnalités. Ces évolutions sont réalisées après des analyses d’impact poussées afin de ne pas provoquer de changement dans les intégrations de nos utilisateurs. Dans de très rares cas, celles-ci peuvent appeler des modifications mineures ou plus importantes lorsque des changements de régulations surviennent, comme ce fut le cas pour l’évolution vers la version 2.0 du 3DS par exemple. En cas d’évolution de la plateforme ou de modifications des attentes concernant la consommation de ses APIs, CentralPay s’engage à vous prévenir dans un délai correspondant à l’ampleur des actions à mener : Modifications mineures nécessitant aucune action du marchand ou partenaire :Remise d’information simple Modifications mineures avec action nécessaire par le marchand ou partenaire :2 mois minimum de délai de prévenance + accompagnement à la réalisation Modifications majeures avec action nécessaire par le marchand ou partenaire :6 mois minimum de délai de prévenance + accompagnement à la réalisation À noter que les modifications nécessitant une action de nos marchands ou partenaires sont qualifiées d’exceptionnelles à inexistantes et que toutes les précautions sont prises pour éviter tout impact sur leur activité.
Profils clients Les profils clients (ou « Customer ») unifient et sécurisent toutes vos données client pour en faciliter la gestion. Ils interagissent avec les autres services de CentralPay et permettent notamment de : Centraliser leur historique de paiements (tous canaux de vente et moyens de paiement confondus) Digitaliser et stocker de manière sécurisée leurs supports de paiement (cartes, mandats SEPA, IBAN virtuels) Suivre facilement leurs paiements récurrents (abonnements, paiements fractionnés) ou règlements en attente (demandes de paiement). Dans certains cas, ils peuvent également être associés à un compte de monnaie électronique permettant au client de recevoir et d’utiliser des fonds au sein du réseau du partenaire distributeur de cette monnaie électronique. Un Customer est obligatoirement identifié soit par son email, soit par son numéro de téléphone. Il est également possible de déclarer d’autres informations le concernant comme son nom, son prénom, sa langue, sa référence personnalisée, son moyen de paiement par défaut… 1. Utilisation La création d’un Customer est obligatoire pour la réalisation : D’abonnements ou de paiements fractionnés par carte ➝ De paiements en 1 clic par carte ➝ De paiements par prélèvement SEPA ➝ De paiements par virement SEPA avec IBAN Virtuel dédié à celui-ci ➝ De création d’un compte de monnaie électronique anonyme ➝ 2. Interfaces Vous pouvez consulter l’ensemble des Customers de votre compte depuis votre Portail utilisateur Compte Customers : Vos Customers disposent également d’un portail client leur permettant d’administrer les paiements réalisés avec votre entreprise. Accès : Portail Utilisateur de RCT – Customers Portail Utilisateur de PROD – Customers 3. Création d’un Customer Il existe deux méthodes pour créer un Customer : Créer un Customer depuis le service API dédié, permettant ensuite de créer une Card, de gérer un IBAN Virtuel pour ce Customer, d’initier une transaction, une demande de paiement… Créer un Customer via une demande de paiement CentralPay assure l’unicité des Customers : si vous initiez une demande de paiement avec création d’un Customer alors que son email ou son numéro de téléphone est déjà connu dans votre compte, CentralPay ne créera pas de nouveau Customer et associera la transaction au profil existant.
Sécurité et hébergement CentralPay exploite ses services depuis deux Datacenter français. Les équipements et services exploités sur ces deux sites sont entièrement redondés. 1. Un hébergement hautement résilient Deux Datacenter de conception TIER III basés à Tours Environnement actif/actif entre les deux sites Des engagements contractuels (SLA) de 99.9 % Des normes reconnues : ISO27001, PCI-DSS, Code of Conduct 2. Une infrastructure garante de la sécurité de vos données Cœur de réseau allant jusqu’à 10 Gb/s Réseau électrique entièrement redondé, densité électrique allant de 600 mA à 32 A Système de contrôle d’accès avec double authentification (badge & code personnel) Vidéo-surveillance et alarme reliée 24h/7j à notre télésurveillance Système d’extinction d’incendie par aérosol FirePro
Déclaration MOBSP (Orias) ℹ️ Avant de lire cette page, veuillez consulter la rubrique dédiée à l'entrée en relation pour les partenaires. Les partenaires CentralPay basés en France opèrent avec le statut d’intermédiaires en opérations de banque et en service de paiement (IOBSP), plus précisément en tant que Mandataires en Opérations de Banques et Services de Paiement (MOBSP). Pour devenir partenaire MOBSP de CentralPay, vous devez vous déclarer à l’ORIAS. CentralPay devra ensuite vous déclarer en tant que son mandataire. Votre partie peut être réalisée en quelques heures, celle de CentralPay prend quelques jours. L’ORIAS peut quant à elle prendre jusqu’à deux mois pour examiner votre demande. Bien que ce processus vous incombe, CentralPay peut vous assister en cas de besoin. Contactez notre service client en cas de besoin. 1. Préparez vos données 1.1. Obtenez votre attestation de mandat Après avoir signé votre contrat de partenariat avec CentralPay : Envoyez un e-mail à notre service client qui inclut votre raison sociale et votre numéro SIREN CentralPay vous répondra avec votre attestation de mandat. Vous aurez besoin de ce document pour l’étape 3.3. 1.2. Préparez vos documents justificatifs Lors de l’étape 3.3 du processus d’inscription, vous devrez fournir les pièces justificatives suivantes : KBIS datant de moins de trois mois Justificatif d’aptitude professionnelle : diplôme dans une école de commerce ou de gestion agréée ou certification RNCP (NCF 122, 128, 313 ou 314, niveaux 7 à 5) ou reconnaissance par le CIEP pour les diplômes étrangers Si vous ne disposez pas d’un justificatif d’aptitude professionnelle accepté par l’Orias, envoyez un email à notre service client. CentralPay peut vous aider à suivre la formation nécessaire. Voir l’image ci-jointe, faisant référence à la catégorie Niveau III – IOBSP (niveau 3). 2. Créez votre compte ORIAS 2.1. Accéder au formulaire Allez sur le site de l’ORIAS Faites défiler vers le bas jusqu’à voir la section Comment ça marche ? Cliquez sur S’inscrire Vous serez redirigé vers le formulaire d’inscription. 2.2. Saisir les informations Entrez votre numéro SIREN Saisissez les informations sur votre entreprise. Assurez-vous de vous inscrire en tant que personne morale / entité juridique Saisissez les informations de votre représentant légal Saisissez les coordonnées de votre représentant légal Saisissez les coordonnées de votre entreprise, y compris votre site web si vous en avez un Entrez l’adresse de votre entreprise Vérifiez toutes les informations que vous avez saisies, puis cliquez sur Valider 2.3. Connectez-vous à votre compte ORIAS Vérifiez votre boîte de réception pour un email de l’ORIAS (no-reply-orias@orias.fr). L’email contient votre identifiant et un mot de passe provisoire. Retournez sur le site de l’ORIAS Cliquez sur Connexion / Login Saisissez votre identifiant et votre mot de passe provisoire depuis votre email Suivez les instructions sur votre écran pour modifier votre mot de passe, puis enregistrez-le Après avoir enregistré votre nouveau mot de passe, vous serez redirigé vers votre espace compte ORIAS 3. Réalisez une nouvelle demande d’inscription 3.1. Enregistrez votre entreprise Cliquez sur Nouvelle inscription pour démarrer votre inscription, un formulaire apparaît Choisissez Activité IOB Choisissez ensuite Mandataire non-exclusif en opérations de banque et en services de paiement (MOBSP) Cliquez sur Soumettre 3.2. Fournissez des informations complémentaires Sélectionnez la case précisant que vous complétez votre inscription à titre de Mandataire non exclusif en opérations de banque et en services de paiement Si un autre type d’inscription est spécifié, utilisez le bouton Précédent de votre navigateur pour revenir à la page précédente et réessayez. Pour la première question, choisissez la réponse : Je déclare que l’on ne me confie pas de fonds Pour la deuxième question, choisissez la réponse : Accessoire, indiquant à l’ORIAS que les services financiers ne sont pas l’activité principale de votre entreprise Pour la troisième question, choisissez la réponse : Oui, indiquant à l’ORIAS que votre entreprise propose du crédit (ou d’autres services bancaires et de paiement) uniquement à titre de service secondaire Cliquez sur Aller à l’étape « Pièces justificatives » 3.3. Fournissez vos documents justificatifs Soumettez votre KBIS Soumettez votre mandat d’attestation, qui est le certificat de mandat de l’étape 1.1 Soumettez votre Capacité professionnelle pour « vous » (Niveau I IOBSP), qui constitue votre preuve d’aptitude professionnelle de l’étape 1.2. Cliquez sur Aller à l’étape suivante 3.4. Payez votre inscription La dernière étape consiste à payer votre inscription. Notez que vous payez pour l’enregistrement de Mandataire non exclusif en opérations de banque et en services de paiement. Sans payer les frais, votre inscription ne peut être finalisée Choisissez de payer avec votre Carte bancaire, ou cliquez sur Choisir un autre mode de paiement pour payer par Virement (virement) ou Chèque (chèque) Après avoir payé, cliquez sur Télécharger la facture pour télécharger votre reçu Cliquez sur Terminer la demande d’inscription pour finaliser votre inscription Vous recevrez votre numéro d’inscription ORIAS par e-mail, confirmant que votre inscription est terminée. Envoyez ce numéro au service client de CentralPay par email 4. CentralPay vous enregistre en tant que MOBSP Après avoir envoyé à CentralPay votre numéro d’enregistrement Orias par email, CentralPay vous enregistre en tant que Mandataire non exclusif en opérations de banque et en services de paiement (MOBSP). 5. L’ORIAS examine votre candidature L’ORIAS examine vos documents et votre candidature pour s’assurer que votre dossier est entièrement conforme. L’ORIAS vous informera de sa décision finale par email. Si elle est approuvée, l’e-mail contient également la date à laquelle votre statut de MOBSP prendra effet. N’hésitez pas à contacter l’ORIAS par téléphone (09.69.32.59.73) ou par email (contact@orias.fr) si vous ne recevez pas à temps les informations concernant votre candidature. 6. Mettez à jour vos mentions légales Après avoir reçu l’agrément de l’ORIAS et être devenu MOBSP, assurez-vous de mettre à jour vos mentions légales. Ajoutez quelque chose de similaire à l’exemple suivant au pied de page de votre site Web, dans votre page de mentions légales et partout où vous distribuez ou vendez des services de paiement. [Raison sociale], société immatriculée au RCS de [ville d’enregistrement] sous le numéro [numéro RCS], et inscrite au Registre unique des Intermédiaires en Assurance, Banque et Finance sous le numéro d’immatriculation [numéro d’enregistrement ORIAS] en qualité de Mandataire non exclusif en opérations de banque et en services de paiement.
Le compte CentralPay Articles Compte CentralPay Profils clients Points de vente Comptes de paiement Comptes de ME Compte CentralPay Le compte CentralPay est ouvert au nom d’une entité (personne physique ou morale) et permet d’accéder à nos services d’encaissement, de paiement ou de gestion de la monnaie électronique. Il constitue la base : Contractuelle : rattachement à une grille tarifaire, acceptation des CGU, contrat d’acceptation le cas échéant Technique : authentification, accès API, création des utilisateurs Fonctionnelle : paramétrage des points de vente, scénarios de notification, reversements, règles d’acceptation Réglementaire : gestion du KYC/KYB, conformité à la réglementation Un compte CentralPay peut contenir un ou plusieurs comptes de paiement ou comptes de monnaie électronique, selon les services activés. 1. Types de comptes selon le modèle d’intégration Chaque compte CentralPay est associé à un modèle d’utilisation précis. Pour plus de détails sur l’entrée en relation, consultez nos pages dédiées aux modèles d’intégration. Marchand Type : STANDARD Le Marchand est une entreprise ou un professionnel qui encaisse des paiements pour son propre compte. Il dispose d’un ou plusieurs comptes de paiement, d’un contrat d’acceptation, et peut accéder aux services CentralPay via API ou via un partenaire. 👉 En savoir plus sur le modèle Marchand Intégrateur Type : STANDARD L’Intégrateur accompagne plusieurs Marchands dans leur intégration technique avec CentralPay. Chaque Marchand dispose de son propre point de vente et d’un contrat individuel. L’Intégrateur utilise les accès API fournis par chaque Marchand, dans le cadre d’une relation contractuelle. Dispose d’un compte CentralPay type Marchand pour ses propres besoins Un point de vente distinct est créé pour chaque Marchand accompagné Peut initier des transactions techniques via les accès API du Marchand CentralPay facture chaque Marchand directement 👉 En savoir plus sur le modèle Intégrateur Intégrateur MOBSP Type : STANDARD + MOBSP L’Intégrateur MOBSP est un Intégrateur disposant d’un mandat réglementaire. Il peut initier une demande d’entrée en relation pour le compte d’un Marchand, et l’accompagner techniquement via l’API d’onboarding. Comme tout Intégrateur, il agit uniquement via les accès API fournis par le Marchand. Mêmes droits et fonctionnement qu’un Intégrateur Peut initier une demande d’enrôlement complète via API Peut accompagner le marchand durant l’enrôlement 👉 En savoir plus sur le modèle Intégrateur MOBSP Partenaire Technique Type : STANDARD Le Partenaire Technique développe une solution d’encaissement opérée depuis un point de vente unique, pour le compte de plusieurs Marchands ou Participants. Il utilise ses propres accès API pour superviser les opérations liées à cette structure centralisée. Un seul point de vente est utilisé pour regrouper les utilisateurs Accès API CentralPay propre au Partenaire Technique CentralPay facture le Partenaire Ne peut pas initier d’enrôlement ni agir au nom des utilisateurs 👉 En savoir plus sur le modèle Partenaire Technique Partenaire Technique MOBSP Type : STANDARD + MOBSP Le Partenaire Technique MOBSP est mandaté pour initier une demande d’entrée en relation au nom de ses utilisateurs. Il peut transmettre les informations nécessaires via l’API d’onboarding, mais n’intervient pas dans l’exécution des opérations de paiement. Même droit et fonctionnement qu’un Partenaire Technique Peut initier une demande d’enrôlement complète via API Peut accompagner le marchand durant l’enrôlement 👉 En savoir plus sur le modèle Partenaire Technique MOBSP Partenaire DME Type : DME Le Partenaire DME (Distributeur de Monnaie Électronique) transmet des instructions de chargement, de transfert ou de remboursement pour le compte de Participants. Il agit en tant qu’intermédiaire technique sur la monnaie électronique, et peut percevoir une commission sur les opérations. 👉 En savoir plus sur le modèle Partenaire DME Partenaire Agent Type : AGENT Le Partenaire Agent est un prestataire de services de paiement (PSP) enregistré auprès de l’ACPR. Il peut inscrire des sous-marchands (Participants), gérer le KYC/KYB, encaisser des paiements, piloter les reversements, et opérer un compte de collecte. Il agit au nom et pour le compte de CentralPay dans le cadre de services réglementés. 👉 En savoir plus sur le modèle Agent Participant et Sous-marchand Type : BASIC Les Participants sont des entités finales rattachées à un Partenaire (Technique, DME ou Agent). Ils disposent d’un compte de paiement ou de monnaie électronique pour recevoir des fonds, et peuvent accéder au Portail Utilisateur pour consulter leurs opérations et gérer leurs reversements. On distingue deux types de Participants selon leur finalité : Sous-marchand : agit à des fins commerciales (vente de biens ou de services) Participant non commercial : agit à des fins non commerciales (ex. chargement de wallet pour accès à un service, projet interne ou collaboratif…) Les Participants et Sous-marchands n’entrent pas directement en relation avec CentralPay. Leur cadre d’utilisation et leurs droits sont définis dans les modèles de Partenariat auxquels ils sont rattachés. 2. Paramétrage des emails de contact Vous pouvez personnaliser les adresses email de contact associées à votre compte pour que les notifications, relances ou échanges contractuels soient bien adressés aux bons interlocuteurs. Email contact : référent principal du compte Email administratif : en charge des sujets juridiques ou contractuels Email technique : en charge de l’intégration ou des incidents Email financier : en charge de la facturation ou des flux bancaires ℹ️ Par défaut, ces adresses sont initialisées avec l’email du titulaire du compte. Elles peuvent être modifiées à tout moment depuis le Portail Utilisateur. Accès à la configuration des emails de contact : Portail Utilisateur de RCT Portail Utilisateur de PROD Profils clients Les profils clients (ou « Customer ») unifient et sécurisent toutes vos données client pour en faciliter la gestion. Ils interagissent avec les autres services de CentralPay et permettent notamment de : Centraliser leur historique de paiements (tous canaux de vente et moyens de paiement confondus) Digitaliser et stocker de manière sécurisée leurs supports de paiement (cartes, mandats SEPA, IBAN virtuels) Suivre facilement leurs paiements récurrents (abonnements, paiements fractionnés) ou règlements en attente (demandes de paiement). Dans certains cas, ils peuvent également être associés à un compte de monnaie électronique permettant au client de recevoir et d’utiliser des fonds au sein du réseau du partenaire distributeur de cette monnaie électronique. Un Customer est obligatoirement identifié soit par son email, soit par son numéro de téléphone. Il est également possible de déclarer d’autres informations le concernant comme son nom, son prénom, sa langue, sa référence personnalisée, son moyen de paiement par défaut… 1. Utilisation La création d’un Customer est obligatoire pour la réalisation : D’abonnements ou de paiements fractionnés par carte ➝ De paiements en 1 clic par carte ➝ De paiements par prélèvement SEPA ➝ De paiements par virement SEPA avec IBAN Virtuel dédié à celui-ci ➝ De création d’un compte de monnaie électronique anonyme ➝ 2. Interfaces Vous pouvez consulter l’ensemble des Customers de votre compte depuis votre Portail utilisateur Compte Customers : Vos Customers disposent également d’un portail client leur permettant d’administrer les paiements réalisés avec votre entreprise. Accès : Portail Utilisateur de RCT – Customers Portail Utilisateur de PROD – Customers 3. Création d’un Customer Il existe deux méthodes pour créer un Customer : Créer un Customer depuis le service API dédié, permettant ensuite de créer une Card, de gérer un IBAN Virtuel pour ce Customer, d’initier une transaction, une demande de paiement… Créer un Customer via une demande de paiement CentralPay assure l’unicité des Customers : si vous initiez une demande de paiement avec création d’un Customer alors que son email ou son numéro de téléphone est déjà connu dans votre compte, CentralPay ne créera pas de nouveau Customer et associera la transaction au profil existant. Points de vente Les points de vente (« Point of Sales » ou « POS ») sont la représentation de vos différents sites web, boutiques, ou équipes de vente. Ils permettent de segmenter les opérations de votre compte CentralPay à des fins : Techniques : Vous pouvez réaliser des paramétrages différents par point de vente (notifications clients, notifications internes, nom expéditeur des emails de confirmation, logo affiché dans la page de paiement…) Administratives : Vous pouvez limiter les droits de consultation ou de modification de vos profils utilisateurs à certains points de ventes Comptables : Vous pouvez filtrer les opérations par point de vente dans votre Portail utilisateur ou dans vos exports de données Lors de la création de votre compte CentralPay, un premier Point de Vente est créé automatiquement. Vous pouvez ensuite vous rendre sur votre Portail utilisateur pour paramétrer ce dernier, ou en créer de nouveaux : Portail Utilisateur de RCT – Points de vente Portail Utilisateur de PROD – Points de vente 1. Paramétrages Les Points de Vente comprennent un certain nombre de paramétrages obligatoires : Paramètres généraux Nom : Nom du point de vente (visible par vos clients) URL du site : S’il s’agit d’un site e-commerce, renseignez l’URL de ce dernier. Sinon, renseigner l’URL de votre site vitrine. Pays du point de vente Configuration Type technique : Sélectionnez « Vente à distance » Utilisateurs API : Sélectionnez les utilisateurs API ayant un droit d’accès à ce Point de Vente Contrats : Sélectionnez le contrat VAD carte qui a été paramétré pour votre compte (en règle générale, vous n’aurez qu’un seul contrat à disposition) Contrat par défaut : Sélectionnez le contrat VAD carte qui sera utilisé par défaut (en règle générale, vous n’aurez qu’un seul contrat à disposition) Viban prioritaire : Si vous souhaitez que les IBAN Virtuels affichés dans les demandes de paiement soient ceux des Customers, alors sélectionnez « Client ». Si vous préférez afficher des IBAN Virtuels dédiés à chaque demande de paiement, alors sélectionnez « SCT ». Si besoin d’informations complémentaires, consultez notre rubrique sur les IBAN Virtuel D’autres paramétrages ne sont pas obligatoires, mais sont importants pour votre parcours de vente : Paramètres généraux Logo : Chargez le logo de votre entreprise ou celui dédié à votre point de vente. Il apparaitra dans la page de paiement générée par les demandes de paiement ID point de vente du marchand : Renseignez une référence personnalisée vous permettant d’identifier plus simplement le point de vente dans vos systèmes d’information Emails de confirmation Cocher « Activer l’email de confirmation de paiement » : En cochant cette case, vous activez l’envoi d’un email à vos clients lorsqu’ils réalisent un paiement par carte. Il s’agit d’un email standardisé non modifiable contenant un récapitulatif du paiement (raison sociale de votre compte, nom de votre point de vente, date du paiement, identifiant de la transaction CentralPay, référence marchand de la transaction, description marchand de la transaction, code d’autorisation du paiement, marque de la carte, 6 premiers et 4 derniers chiffres de la carte, montant de la transaction, état de la transaction). La langue et le pied de page de l’email peuvent être paramétrés depuis le Portail utilisateur Configuration Email confirmation paiement . Email de l’expéditeur : Si vous avez coché la case « Activer l’email de confirmation de paiement », vous pouvez personnaliser l’adresse expéditeur en utilisant l’une de vos adresses email (par exemple : no-reply@mondomaine.com). Attention, veillez à nous demander de vous communiquer nos clés SPF et DKIM afin que vous puissiez autoriser CentralPay à envoyer des emails depuis votre domaine Nom de l’expéditeur : Si vous avez coché la case « Activer l’email de confirmation de paiement », vous pouvez personnaliser le nom de l’expéditeur (par exemple : MonEntreprise) Coche « Recevoir une copie de la confirmation de paiement » : En cochant cette case, vous activez l’envoi d’une copie de l’email adressé à vos clients lorsqu’ils réalisent un paiement par carte. Cela peut vous permettre d’être informé facilement par email lorsqu’un client réalise un paiement Email du destinataire : si vous avez coché la case « Recevoir une copie de la confirmation de paiement », vous devez renseigner l’adresse email du destinataire de cette copie Enfin, d’autres paramètres secondaires sont disponibles : OTP Email de l’expéditeur OTP email : Email affiché en tant qu’expéditeur des emails de One Time Password (connexion à l’espace Administration du Portail Utilisateur…) Nom de l’expéditeur OTP email : Nom affiché en tant qu’expéditeur des emails de One Time Password (connexion à l’espace Administration du Portail Utilisateur…) Numéro de téléphone ou nom de l’expéditeur OTP SMS : Nom ou numéro de téléphone affiché en tant qu’expéditeur des SMS de One Time Password (validation de mandat SEPA…) Paramètres de communication : Ces paramètres sont appliqués aux mails ou SMS transmettant le lien vers le formulaire de paiement d’une demande de paiement (paymentRequest). Ils s’appliquent uniquement lorsque aucun scenario n’a été configuré sur la demande paiement. Expéditeur SMS : Nom du correspondant affiché sur le SMS Expéditeur Email : Email du correspondant affiché sur l’email Nom de l’expéditeur Email : Nom du correspondant affiché sur l’email Adresse de réponse Email : Email utilisé pour les réponses des emails envoyés (applicable prochainement) Pied de page de l’email : Pied de page des emails (applicable prochainement) Comptes de paiement Les comptes de paiement sont utilisés pour réaliser des opérations de paiement (collecte de paiements en devises ISO, reversement des fonds vers un compte bancaire…). Ils permettent de stocker des fonds dans une devise ISO (EUR, USD, CHF, GBP…) et possèdent un IBAN/BIC qui lui est propre. Un compte de paiement est, sauf exception, associé à un compte bancaire ayant le même titulaire, permettant à CentralPay de réaliser des reversements automatiques par virement SEPA. Si vous disposez de plusieurs comptes bancaires sur lesquels vos fonds doivent être reversés, vous pouvez demander à votre contact CentralPay de créer le même nombre de comptes de paiement dans votre compte CentralPay. Ainsi, chaque compte de paiement sera lié à un compte bancaire différent et adressera des reversements SEPA en conséquence. Il est également possible de créer plusieurs comptes de paiement à des fins de segmentation des fonds (avec un compte dédié aux opérations de commission ou de frais par exemple). Vous pouvez consulter le détail de vos comptes de paiements depuis ces accès : Portail Utilisateur de RCT – Comptes de paiement Portail Utilisateur de PROD – Comptes de paiement 1. Utilisation Les comptes de paiement sont systématiquement utilisés pour les opérations de paiement de notre plateforme, à l’exception des opérations de monnaie électronique. 2. Création de comptes de paiement Si vous êtes marchand CentralPay, vous pouvez adresser une demande par email aux équipes CentralPay pour la création de plusieurs comptes de paiement à votre nom. Cela afin de segmenter vos opérations ou d’ouvrir un compte dans une devise différente. Si vous êtes Partenaire MOBSP ou AGENT de CentralPay, vous pouvez créer des comptes pour vos sous-marchands en utilisant le service de création de comptes de paiement. Comptes de ME ℹ️ Uniquement réservé aux Partenaires DME et à leurs utilisateurs. Les comptes de ME (Monnaie Électronique) sont utilisés pour stocker et échanger des fonds dans une devise CUSTOM (devise dédiée à un partenaire DME). Un partenaire DME peut demander la création de comptes de ME pour les participants de son réseau puis réaliser des transferts de fonds en ME entre ces comptes. Le titulaire d’un compte de ME ne peut recevoir des paiements et utiliser sa monnaie électronique que par l’intermédiaire du partenaire DME. Il peut cependant demander le remboursement de sa monnaie électronique à tout moment et recevra ses fonds en devise ISO : soit sur son compte bancaire par virement SEPA, soit sur sa carte bancaire, selon les paramétrages de son compte. Vous pouvez consulter le détail de vos comptes de ME depuis ces accès : Portail Utilisateur de RCT – Comptes de monnaie électronique Portail Utilisateur de PROD – Comptes de monnaie électronique 1. Utilisation Les comptes de ME sont principalement utilisés pour permettre à des personnes physiques de recevoir et d’échanger facilement des fonds dans les contextes suivants : Marketplaces C2C de produits ou de services Stockage et utilisation de valeurs-cadeaux au sein d’un réseau de commerçants indépendants 2. Spécificités Le CMF (Code Monétaire et Financier) présente des conditions spécifiques pour la monnaie électronique. Ainsi, il existe deux types de comptes de ME chez CentralPay : Compte de ME anonyme : Ce compte peut être ouvert sans vérification d’identité du titulaire, à condition qu’il soit adressé à une personne physique et soit limité à 150 € de solde ou d’encaissement sur 30 jours. Ce type de compte est particulièrement utile dans le cadre d’une utilisation ponctuelle du compte par son titulaire, ou tout simplement pour simplifier l’entrée en relation avec le partenaire DME Compte de ME vérifié : Un compte anonyme peut être ensuite vérifié par les équipes conformité de CentralPay (procédure KYC) pour augmenter les limites qui lui étaient imposées, il devient ainsi « vérifié » 3. Création de comptes de ME Si vous êtes Partenaire DME de CentralPay, vous pouvez demander la création de comptes de ME pour vos participants.
Card See more about Card You can store multiple Cards per Customer in order to charge the customer later on (subscription, etc.). It can also be used to store multiple debit or credit cards on a recipient in order to transfer to these cards later. Note: If the card is already registered for this merchant, the API will return the previous cardId registered (not a new one).
Déclaration Agent PSP (ACPR) Rôle de l’ACPR L’ACPR (Autorité de Contrôle Prudentiel et de Résolution), organe de la Banque de France, est le seul régulateur compétent pour valider les déclarations d’Agents d’un Établissement de Paiement ou de Monnaie Électronique comme CentralPay. L’ACPR traite uniquement avec les Établissements régulés, sans contact direct possible pour le futur Agent. Étapes de déclaration d’un Agent ÉtapeDescription1. Constitution du dossierRéalisée par CentralPay avec le concours du futur Agent.2. Réponses aux demandes ACPRPilotées par CentralPay avec l’aide du futur Agent.3. Décision de l’ACPRCommuniquée à CentralPay. 1. Responsabilités de l’Agent CentralPay prend en charge les obligations complexes ou techniques. Toutefois, l’Agent doit garantir un haut niveau de vigilance en matière de LCB-FT (Lutte Contre le Blanchiment de Capitaux et le Financement du Terrorisme). L’Agent est notamment responsable de : La compréhension de l’activité de ses sous-marchands ; La vérification de la réalité économique des opérations ; La lutte contre la fraude. L’Agent doit signer : Un Contrat Cadre d’Agent de Paiement avec CentralPay ; Des Conditions Générales d’Utilisation spécifiques aux vendeurs. Si l’Agent internalise certaines fonctions critiques (ex. vérification KYC), un Contrat d’Externalisation de Prestations Essentielles doit également être signé. 2. Devenir Partenaire Agent CentralPay Le processus d’enregistrement comme Agent s’étale sur plusieurs mois et suit les étapes suivantes : 2.1. Résumé des étapes ÉtapeDétails1. Compréhension du modèle– Explication des services rendus par l’Agent– Définition du modèle d’affaires– Validation par les services Juridique et Conformité de CentralPay2. Offre commerciale– Présentation par CentralPay3. Validation– Validation juridique et conformité– Accord sur l’offre commerciale et les tarifs4. Test & Intégration– Accès à la sandbox– Réunion projet avec l’équipe technique- Intégration technique5. Instruction ACPR– Collecte des éléments réglementaires– Constitution et dépôt du dossier auprès de l’ACPR6. Mise en production– Tests en environnement de recette– Passage en production 2.2. Pièces à fournir à CentralPay Phase 1 – Pré-constitution du dossier CGU du service de paiement Définition des activités régulées, services associés, modèle d’affaires Organigramme (y compris répartition des effectifs par service) Structure de l’actionnariat Flux prévisionnels sur 3 ans confiés à CentralPay Nombre d’enrôlements prévisionnels sur 3 ans Cas de reprise de KYC existant (migration) Préparation du contrat d’Agent Phase 2 – Déclaration auprès du régulateur Signature du contrat d’Agent CentralPay collecte et dépose les pièces suivantes : Kbis < 3 mois de la société et des sociétés gérantes Statuts à jour signés de la société et des sociétés gérantes Pièce d’identité couleur des dirigeants CV des dirigeants datés et signés Casier judiciaire des dirigeants Déclaration de non-condamnation des dirigeants Répartition de la détention des parts Kbis des personnes morales actionnaires (si applicable) Organigramme du Groupe (si applicable) PV d’AG récents (fusion, perte > 50% du capital, changement direction, etc.) Peuvent également être demandés par l’ACPR : Bilans et comptes de résultat récents États financiers en cours ou de l’année précédente Toute pièce jugée utile par le régulateur 2.3. Délais d’instruction Instruction par CentralPay : ~2 semaines après réception complète des pièces Délai de l’ACPR : jusqu’à 2 mois, avec premières questions sous 30 jours en général 2.4. Fin d’instruction Dès validation du dossier, l’Agent peut démarrer l’activité avec CentralPay Il est référencé dans les registres publics de l’ACPR avec un numéro d’enregistrement obligatoire dans les CGU et communications officielles 2.5. Particularité – Agents Télécom SVA (numéros surtaxés) Obligation de fournir un récapitulatif des minutes téléphoniques par opérateur Transmission du détail de répartition des encaissements à CentralPay Le service Conformité CentralPay s’assure que les marchands sont correctement crédités
Déclaration Distributeur ME (ACPR) Les Établissements émetteurs de monnaie électronique comme CentralPay peuvent mandater des Distributeurs de Monnaie Électronique (DME) afin de collecter des fonds et d’assurer les échanges permettant l’achat et le remboursement de ME dans un réseau de participants défini. La déclaration d’un Distributeur de Monnaie Électronique se déroule en deux étapes : Le montage du dossier de déclaration : réalisé par CentralPay avec l’aide de son futur DME L’instruction du dossier à l’ACPR : réalisé par CentralPay. Elle ne nécessite pas de validation particulière de l’ACPR 1. Responsabilité du partenaire DME CentralPay réalise tous les processus complexes ou nécessitant de fortes compétences. Néanmoins, vous êtes toujours garant de la tenue d’un haut niveau d’exigence dans le suivi et l’application des règles de LCB-FT (Lutte Contre le Blanchiment et le Financement du Terrorisme). À ce titre, vous devez apporter à CentralPay des certitudes sur les conditions de réalisation des opérations qui passent par votre intermédiaire, notamment : La réalité économique de l’opération La lutte contre la fraude Les Établissements régulés qui font appel à des distributeurs restent responsables des opérations réalisées par ces derniers. Un cadre juridique précis est donc mis en place. Un statut de Distributeur de Monnaie Électronique passe par : La contractualisation d’un contrat Cadre de Distribution de Monnaie Électronique qui définit les relations entre les parties Des CGU d’utilisation de Monnaie Électronique Dans le cas où un DME internalise certaines fonctions dévolues à CentralPay dans le cadre de ses obligations règlementaires, un contrat de Prestations de Services Essentiels Externalisées devra être signé. C’est par exemple le cas si l’agent internalise la gestion des KYC ou réalise des interfaces de gestion qui ne permettrait pas à CentralPay d’assurer l’exécution du service sans le concours du PSEE. 2. Devenir partenaire DME Devenir Distributeur de CentralPay nécessite le suivi d’étapes qui s’étalent sur plusieurs semaines. Voici un guide qui permet de mieux comprendre les enjeux liés à l’acceptation, puis à l’instruction des dossiers de déclaration des Distributeurs. 2.1. Résumé des étapes Compréhension du modèle Explication des services apportés par le partenaire Définition de son modèle d’affaires Validation par le service Risque & Conformité de CentralPay Offre Commerciale Présentation Validation Validation du Partenaire par le service Risque & Conformité de CentralPay Validation de la proposition commerciale et des conditions tarifaires par le Partenaire Test & Intégration Mise en place de la sandbox Réunion de lancement de projet avec l’équipe technique Phase d’intégration technique Instruction du dossier ACPR Collecte des éléments nécessaires à la constitution du dossier Préparation du dossier Présentation du dossier Mise en production Validation de la recette Mise en production 2.2. Pièces à fournir à CentralPay Prochainement
Currency codes List of currency codes: AEDUAE DirhamCurrency code: 784AFNAfghaniCurrency code: 971ALLLekCurrency code: 008AMDArmenian DramCurrency code: 051ANGNetherlands Antillean GuilderCurrency code: 532AOAKwanzaCurrency code: 973ARSArgentine PesoCurrency code: 032AUDAustralian DollarCurrency code: 036AWGAruban FlorinCurrency code: 533AZNAzerbaijanian ManatCurrency code: 944BAMConvertible MarkCurrency code: 977BBDBarbados DollarCurrency code: 052BDTTakaCurrency code: 050BGNBulgarian LevCurrency code: 975BHDBahraini DinarCurrency code: 048BIFBurundi FrancCurrency code: 108BMDBermudian DollarCurrency code: 060BNDBrunei DollarCurrency code: 096BOBBolivianoCurrency code: 068BOVMvdolCurrency code: 984BRLBrazilian RealCurrency code: 986BSDBahamian DollarCurrency code: 044BTNNgultrumCurrency code: 064BWPPulaCurrency code: 072BYRBelarussian RubleCurrency code: 974BZDBelize DollarCurrency code: 084CADCanadian DollarCurrency code: 124CDFCongolese FrancCurrency code: 976CHEWIR EuroCurrency code: 947CHFSwiss FrancCurrency code: 756CHWWIR FrancCurrency code: 948CLFUnidad de FomentoCurrency code: 990CLPChilean PesoCurrency code: 152CNYYuan RenminbiCurrency code: 156COPColombian PesoCurrency code: 170COUUnidad de Valor RealCurrency code: 970CRCCosta Rican ColonCurrency code: 188CUCPeso ConvertibleCurrency code: 931CUPCuban PesoCurrency code: 192CVECabo Verde EscudoCurrency code: 132CZKCzech KorunaCurrency code: 203DJFDjibouti FrancCurrency code: 262DKKDanish KroneCurrency code: 208DOPDominican PesoCurrency code: 214DZDAlgerian DinarCurrency code: 012EGPEgyptian PoundCurrency code: 818ERNNakfaCurrency code: 232ETBEthiopian BirrCurrency code: 230EUREuroCurrency code: 978FJDFiji DollarCurrency code: 242FKPFalkland Islands PoundCurrency code: 238GBPPound SterlingCurrency code: 826GELLariCurrency code: 981GHSGhana CediCurrency code: 936GIPGibraltar PoundCurrency code: 292GMDDalasiCurrency code: 270GNFGuinea FrancCurrency code: 324GTQQuetzalCurrency code: 320GYDGuyana DollarCurrency code: 328HKDHong Kong DollarCurrency code: 344HNLLempiraCurrency code: 340HRKKunaCurrency code: 191HTGGourdeCurrency code: 332HUFForintCurrency code: 348IDRRupiahCurrency code: 360ILSNew Israeli SheqelCurrency code: 376INRIndian RupeeCurrency code: 356IQDIraqi DinarCurrency code: 368IRRIranian RialCurrency code: 364ISKIceland KronaCurrency code: 352JMDJamaican DollarCurrency code: 388JODJordanian DinarCurrency code: 400JPYYenCurrency code: 392KESKenyan ShillingCurrency code: 404KGSSomCurrency code: 417KHRRielCurrency code: 116KMFComoro FrancCurrency code: 174KPWNorth Korean WonCurrency code: 408KRWWonCurrency code: 410KWDKuwaiti DinarCurrency code: 414KYDCayman Islands DollarCurrency code: 136KZTTengeCurrency code: 398LAKKipCurrency code: 418LBPLebanese PoundCurrency code: 422LKRSri Lanka RupeeCurrency code: 144LRDLiberian DollarCurrency code: 430LSLLotiCurrency code: 426LYDLibyan DinarCurrency code: 434MADMoroccan DirhamCurrency code: 504MDLMoldovan LeuCurrency code: 498MGAMalagasy AriaryCurrency code: 969MKDDenarCurrency code: 807MMKKyatCurrency code: 104MNTTugrikCurrency code: 496MOPPatacaCurrency code: 446MROOuguiyaCurrency code: 478MURMauritius RupeeCurrency code: 480MVRRufiyaaCurrency code: 462MWKKwachaCurrency code: 454MXNMexican PesoCurrency code: 484MXVMexican Unidad de Inversion (UDI)Currency code: 979MYRMalaysian RinggitCurrency code: 458MZNMozambique MeticalCurrency code: 943NADNamibia DollarCurrency code: 516NGNNairaCurrency code: 566NIOCordoba OroCurrency code: 558NOKNorwegian KroneCurrency code: 578NPRNepalese RupeeCurrency code: 524NZDNew Zealand DollarCurrency code: 554OMRRial OmaniCurrency code: 512PABBalboaCurrency code: 590PENNuevo SolCurrency code: 604PGKKinaCurrency code: 598PHPPhilippine PesoCurrency code: 608PKRPakistan RupeeCurrency code: 586PLNZlotyCurrency code: 985PYGGuaraniCurrency code: 600QARQatari RialCurrency code: 634RONRomanian LeuCurrency code: 946RSDSerbian DinarCurrency code: 941RUBRussian RubleCurrency code: 643RWFRwanda FrancCurrency code: 646SARSaudi RiyalCurrency code: 682SBDSolomon Islands DollarCurrency code: 090SCRSeychelles RupeeCurrency code: 690SDGSudanese PoundCurrency code: 938SEKSwedish KronaCurrency code: 752SGDSingapore DollarCurrency code: 702SHPSaint Helena PoundCurrency code: 654SLLLeoneCurrency code: 694SOSSomali ShillingCurrency code: 706SRDSurinam DollarCurrency code: 968SSPSouth Sudanese PoundCurrency code: 728STDDobraCurrency code: 678SVCEl Salvador ColonCurrency code: 222SYPSyrian PoundCurrency code: 760SZLLilangeniCurrency code: 748THBBahtCurrency code: 764TJSSomoniCurrency code: 972TMTTurkmenistan New ManatCurrency code: 934TNDTunisian DinarCurrency code: 788TOPPa’angaCurrency code: 776TRYTurkish LiraCurrency code: 949TTDTrinidad and Tobago DollarCurrency code: 780TWDNew Taiwan DollarCurrency code: 901TZSTanzanian ShillingCurrency code: 834UAHHryvniaCurrency code: 980UGXUganda ShillingCurrency code: 800USDUS DollarCurrency code: 840USNUS Dollar (Next day)Currency code: 997UYIUruguay Peso en Unidades Indexadas (URUIURUI)Currency code: 940UYUPeso UruguayoCurrency code: 858UZSUzbekistan SumCurrency code: 860VEFBolivarCurrency code: 937VNDDongCurrency code: 704VUVVatuCurrency code: 548WSTTalaCurrency code: 882XAGSilverCurrency code: 961XAUGoldCurrency code: 959XBABond Markets Unit European Composite Unit (EURCO)Currency code: 955XBBBond Markets Unit European Monetary Unit (E.M.U.-6)Currency code: 956XBCBond Markets Unit European Unit of Account 9 (E.U.A.-9)Currency code: 957XBDBond Markets Unit European Unit of Account 17 (E.U.A.-17)Currency code: 958XCDEast Caribbean DollarCurrency code: 951XDRSDR (Special Drawing Right)Currency code: 960XOFCFA Franc BCEAOCurrency code: 952XPDPalladiumCurrency code: 964XPFCFP FrancCurrency code: 953XPTPlatinumCurrency code: 962XSUSucreCurrency code: 994XTSCodes specifically reserved for testing purposesCurrency code: 963XUAADB Unit of AccountCurrency code: 965XXXThe codes assigned for transactions where no currency is involvedCurrency code: 999YERYemeni RialCurrency code: 886ZARRandCurrency code: 710ZMWZambian KwachaCurrency code: 967ZWLZimbabwe DollarCurrency code: 932 Description of the certification « ISO 4217:2008 » is available at this url: http://www.iso.org/iso/home/standards/currency_codes.htm
Points de vente Les points de vente (« Point of Sales » ou « POS ») sont la représentation de vos différents sites web, boutiques, ou équipes de vente. Ils permettent de segmenter les opérations de votre compte CentralPay à des fins : Techniques : Vous pouvez réaliser des paramétrages différents par point de vente (notifications clients, notifications internes, nom expéditeur des emails de confirmation, logo affiché dans la page de paiement…) Administratives : Vous pouvez limiter les droits de consultation ou de modification de vos profils utilisateurs à certains points de ventes Comptables : Vous pouvez filtrer les opérations par point de vente dans votre Portail utilisateur ou dans vos exports de données Lors de la création de votre compte CentralPay, un premier Point de Vente est créé automatiquement. Vous pouvez ensuite vous rendre sur votre Portail utilisateur pour paramétrer ce dernier, ou en créer de nouveaux : Portail Utilisateur de RCT – Points de vente Portail Utilisateur de PROD – Points de vente 1. Paramétrages Les Points de Vente comprennent un certain nombre de paramétrages obligatoires : Paramètres généraux Nom : Nom du point de vente (visible par vos clients) URL du site : S’il s’agit d’un site e-commerce, renseignez l’URL de ce dernier. Sinon, renseigner l’URL de votre site vitrine. Pays du point de vente Configuration Type technique : Sélectionnez « Vente à distance » Utilisateurs API : Sélectionnez les utilisateurs API ayant un droit d’accès à ce Point de Vente Contrats : Sélectionnez le contrat VAD carte qui a été paramétré pour votre compte (en règle générale, vous n’aurez qu’un seul contrat à disposition) Contrat par défaut : Sélectionnez le contrat VAD carte qui sera utilisé par défaut (en règle générale, vous n’aurez qu’un seul contrat à disposition) Viban prioritaire : Si vous souhaitez que les IBAN Virtuels affichés dans les demandes de paiement soient ceux des Customers, alors sélectionnez « Client ». Si vous préférez afficher des IBAN Virtuels dédiés à chaque demande de paiement, alors sélectionnez « SCT ». Si besoin d’informations complémentaires, consultez notre rubrique sur les IBAN Virtuel D’autres paramétrages ne sont pas obligatoires, mais sont importants pour votre parcours de vente : Paramètres généraux Logo : Chargez le logo de votre entreprise ou celui dédié à votre point de vente. Il apparaitra dans la page de paiement générée par les demandes de paiement ID point de vente du marchand : Renseignez une référence personnalisée vous permettant d’identifier plus simplement le point de vente dans vos systèmes d’information Emails de confirmation Cocher « Activer l’email de confirmation de paiement » : En cochant cette case, vous activez l’envoi d’un email à vos clients lorsqu’ils réalisent un paiement par carte. Il s’agit d’un email standardisé non modifiable contenant un récapitulatif du paiement (raison sociale de votre compte, nom de votre point de vente, date du paiement, identifiant de la transaction CentralPay, référence marchand de la transaction, description marchand de la transaction, code d’autorisation du paiement, marque de la carte, 6 premiers et 4 derniers chiffres de la carte, montant de la transaction, état de la transaction). La langue et le pied de page de l’email peuvent être paramétrés depuis le Portail utilisateur Configuration Email confirmation paiement . Email de l’expéditeur : Si vous avez coché la case « Activer l’email de confirmation de paiement », vous pouvez personnaliser l’adresse expéditeur en utilisant l’une de vos adresses email (par exemple : no-reply@mondomaine.com). Attention, veillez à nous demander de vous communiquer nos clés SPF et DKIM afin que vous puissiez autoriser CentralPay à envoyer des emails depuis votre domaine Nom de l’expéditeur : Si vous avez coché la case « Activer l’email de confirmation de paiement », vous pouvez personnaliser le nom de l’expéditeur (par exemple : MonEntreprise) Coche « Recevoir une copie de la confirmation de paiement » : En cochant cette case, vous activez l’envoi d’une copie de l’email adressé à vos clients lorsqu’ils réalisent un paiement par carte. Cela peut vous permettre d’être informé facilement par email lorsqu’un client réalise un paiement Email du destinataire : si vous avez coché la case « Recevoir une copie de la confirmation de paiement », vous devez renseigner l’adresse email du destinataire de cette copie Enfin, d’autres paramètres secondaires sont disponibles : OTP Email de l’expéditeur OTP email : Email affiché en tant qu’expéditeur des emails de One Time Password (connexion à l’espace Administration du Portail Utilisateur…) Nom de l’expéditeur OTP email : Nom affiché en tant qu’expéditeur des emails de One Time Password (connexion à l’espace Administration du Portail Utilisateur…) Numéro de téléphone ou nom de l’expéditeur OTP SMS : Nom ou numéro de téléphone affiché en tant qu’expéditeur des SMS de One Time Password (validation de mandat SEPA…) Paramètres de communication : Ces paramètres sont appliqués aux mails ou SMS transmettant le lien vers le formulaire de paiement d’une demande de paiement (paymentRequest). Ils s’appliquent uniquement lorsque aucun scenario n’a été configuré sur la demande paiement. Expéditeur SMS : Nom du correspondant affiché sur le SMS Expéditeur Email : Email du correspondant affiché sur l’email Nom de l’expéditeur Email : Nom du correspondant affiché sur l’email Adresse de réponse Email : Email utilisé pour les réponses des emails envoyés (applicable prochainement) Pied de page de l’email : Pied de page des emails (applicable prochainement)
Engagements de disponibilité CentralPay garantit une disponibilité annuelle de ses services (SLA & PCA) selon les barèmes suivants : CPAY APITraitement des opérations de paiementCPAY PORTALSPortails d’inscription, client et utilisateur99,9 %sur une base annuelle99,5 %sur une base annuelleLe critère d’atteinte de cette garantie correspond à la disponibilité de l’API de paiement.Le critère d’atteinte de cette garantie correspond à la disponibilité des portails de l’environnement de production.
Services liés au compte Articles Notifications email/sms Services anti-fraude Reversement bancaire Exports comptables Exports de données Webhooks Notifications email/sms Les notifications peuvent être adressées en fonction des évènements liés à certains objets API : Demande de paiement (PaymentRequest) Contestation carte (dispute) Paiement X fois (installment) Transaction carte (transaction) Reversement (payout) Remboursement carte (refund) Abonnement (subscription) Crédit carte (credit) Transaction SDD (sddTransaction) Transaction SDD inversée (sddTransactionReversal) Mandat (mandate) 1. Types de scénarios de notification Notifiez vos clients et alertez vos collaborateurs automatiquement lorsque certains évènements ont lieu sur votre compte CentralPay : encaissement d’un virement, contestation client, échec de règlement… Vous maitrisez le contenu de chaque notification depuis des templates personnalisés et définissez un mode d’envoi par email, par sms ou par Json. Vous automatisez ainsi le pointage de vos encaissements, les notifications clients, ou encore la mise à jour de votre système d’information. 2. Paramétrage des modèles de notification 2.1. Paramétrage des modèles (templates) Pour commencer le paramétrage de vos notifications, vous devez créer vos modèles de communication (email, sms ou hook) en renseignant les éléments demandés. Par exemple l’objet du mail, le nom et email de l’émetteur, le corps du texte… Vous pouvez intégrer des éléments dynamiques (tags) dans le corps du texte en tapant le caractère « # », qui fera apparaitre la liste des tags disponible pour le type de scénario de notification sélectionné. Attention, si vous utilisez les notifications emails, veillez à nous demander de vous communiquer nos clés SPF et DKIM afin que vous puissiez autoriser CentralPay à envoyer des emails depuis votre domaine. Concernant les SMS, veillez à calculer le nombre de caractères : vous serez facturés d’un SMS par 160 caractères (espaces inclus). Accès paramétrage de templates emails : Portail Utilisateur de RCT Portail Utilisateur de PROD Accès paramétrage de templates SMS : Portail Utilisateur de RCT Portail Utilisateur de PROD Accès paramétrage de templates hooks : Portail Utilisateur de RCT Portail Utilisateur de PROD 2.2. Paramétrage du header et footer pour templates emails En cas de création d’un template email, un « header » et un « footer » devront être créés. Vous pouvez par exemple intégrer votre logo en Header, et vos conditions de contact ou mentions légales en Footer. Accès paramétrage de l’en-tête d’email (header) : Portail Utilisateur de RCT Portail Utilisateur de PROD Accès paramétrage du pied de page d’email (footer) : Portail Utilisateur de RCT Portail Utilisateur de PROD 3. Paramétrage des scénarios de notification Pour spécifier à la plateforme les conditions d’envoi et destinataires de vos notifications, vous devez créer un scénario intégrant une ou plusieurs règles d’envoi. Après avoir choisi le type de scénario souhaité, vous pouvez créer une règle d’envoi. Cette règle est scindée en deux parties : le “QUAND” va permettre de définir l’évènement déclencheur de la notification tandis que le “ALORS” va permettre de choisir les actions qui seront effectuées lorsque l’évènement se produira. Accès paramétrage de scenarios de notification : Portail Utilisateur de RCT Portail Utilisateur de PROD 3.1. Dans la partie « QUAND » : Tapez « # » pour visualiser l’ensemble des attributs disponible pour votre scénario Utilisez des opérateurs logiques pour constituer votre règle : Pour les chaînes de caractères (doivent être entourés de guillemets « ») : = (égal) != (différent de) in (dans ce qui va suivre) not in (pas dans ce qui va suivre) Pour les nombres (attention les montants doivent être renseignés en centimes) : = (égal) != (différent de) < (plus petit que) <= (plus petit ou égal à) in (dans ce qui va suivre) not in (pas dans ce qui va suivre) Pour les boolean (affirmations en vrai ou faux) : = (égal à) != (différent de) Vous pouvez utiliser des conditions pour compléter votre règle : AND (pour ajouter une autre condition d’activation) OR (pour ajouter une autre possibilité d’activition) Il est possible de donner des priorités en mettant des parenthèses autour des conditions. Si vous utilisez les conditionnels AND et OR dans la même règle, il est nécessaire de prioriser. Si vous utilisez plusieurs fois AND ou plusieurs fois OR, il sera également nécessaire de prioriser chaque partie. Exemples de règles : #end_user_country in ('FRA', 'BE') #authorisation_status = 'FAILURE' or (#transaction_amount > 100000 and #context = 'TRANSACTION_RISKY' ) #transaction_amount > 100000 and ( #authorisation_status = 'FAILURE' or #context = 'TRANSACTION_RISKY' ) ((#transaction_amount > 100000 and #context = 'TRANSACTION_RISKY') or ( #authorisation_status = 'FAILURE' and #transaction_amount < 100000 )) and (#card_product_type = 'Consumer') Avant de pouvoir enregistrer une règle, il est obligatoire de d’abord tester sa règle avec le bouton « tester ». Cela va permettre de vérifier que votre règle est grammaticalement correcte. Attention, cela ne garantit pas que votre règle correspond à ce que vous souhaitiez faire. 3.2. Dans la partie « ALORS » : Le “ALORS” va permettre de choisir le destinataire et le template utilisé pour la notification. Vous n’avez accès qu’aux templates qui correspondent au type de template requis (SMS, Email, Hook) et qui correspond au type de scénario choisi (transaction carte, demande de paiement, remboursement …). Services anti-fraude 1. Organisation des services anti-fraude Les services anti-fraude sont segmentés en 4 outils : Liste blanche (whitelist)Le but de la « whitelist » est de rendre sélective l’application d’une règle d’acceptation. Elle définie devient inopérante pour des clients identifiés, VIP ou reconnus de confiance qui sont intégrés à une « whitelist ». Les « whitelists » portent sur les données spécifiques d’un client, comme le numéro de sa Carte Bancaire ou son adresse IP. Cette fonctionnalité permet d’être moins restrictif sur des populations d’utilisateurs. Liste noire (blacklist)Le service de « blacklist » permet de refuser les paiements. Tout comme pour les « whitelists », les « blacklists » portent sur les données propres au porteur de carte (Carte, IP, Tel, email). Règles d’acceptation des transactionsCet outil permet de construire les règles spécifiques définissant les conditions d’acceptation d’un paiement. Scoring anti-fraudeLe service de scoring permet de détecter les transactions potentiellement frauduleuses en se basant sur l’analyse croisée de plusieurs données liées aux paiements. Les phases de traitement des transactions sont toujours exécutées dans cet ordre. Dans le cas où les données d’entrée remplissent toutes les conditions des « whitelist » définies, le service de « blacklist » ne sera pas exécutée et la transaction sera opérée normalement. Dans le cas où les données d’entrée remplissent une des conditions des « blacklist » définies et ne figurent pas dans le service de « whitelist », la transaction sera refusée et le service « règle d’acceptation » ne sera pas exécutée. Chaque service est exécuté de façon descendante vis-à-vis de la hiérarchie des acteurs CentralPay, ce qui signifie qu’une plateforme peut appliquer les paramètres de ses services anti-fraude à ses marchands, mais que l’inverse n’est pas possible. 2. Outil de scoring de fraude CentralPay s’appuie sur un service de détection de fraude reposant sur des algorithmes de machine learning. Ce moteur prédictif est constitué depuis un large échantillon de données fourni par CentralPay au format JSON et issues des données TRANSACTION / REFUND / DISPUTE. Ce service s’appuie sur une classification comportementale liée au secteur d’activité du marchand. Le moteur retourne une action et un score. L’action invite le service de paiement à accepter ou refuser la transaction. Le score classifie le niveau de risque en fournissant un pourcentage de probabilité de fraude. Ce score est ensuite interprété dans le moteur de règle. Le score permet au marchand et à l’algorithme d’interagir ensemble pour s’améliorer. Les scores sont classifiés ainsi : De 0 à 19 = risque faibleTransaction acceptéePas d’action De 20 à 59 = risque moyenTransaction acceptéeAction : Envoi événement avec détail du score pour revue manuelle et apprentissage +60 = risque élevéTransaction refuséeAction : Envoi événement avec détail du score pour revue manuelle et apprentissage Ce service d’analyse d’exposition à la fraude analyse le contexte d’exposition au risque de fraude de chaque transaction. Ce service retourne un score qui permet de traiter automatiquement la réponse attendue dans le moteur de règle. Le score repose sur l’analyse croisée des données suivantes : Indice de risque IP Détection de Proxy Détection réseau TOR Vérification de l’adresse IP Confidence factors Email checks Address & phone checks Adresse d’expédition à haut risque Géolocalisation des adresses IP Identification des équipements utilisés Adresse e-mail Type de navigateur Discordances de pays Distance de l’adresse d’expédition Distance de l’adresse de facturation Domaine e-mail Heure Montant de la commande Pays Numéro de téléphone Titulaire IP Titulaire de l’e-mail Vérification adresse CB 3. Listes blanches et listes noires 3.1. Liste blanche (Whitelist) Le but de la « whitelist » est de rendre sélective l’application d’une règle d’acceptation. Cette règle devient inopérante pour des clients identifiés, VIP ou reconnus de confiance qui sont intégrés à une « whitelist ». Le service anti-fraude passe ainsi à l’étape suivante. Les « whitelists » portent sur les données spécifiques d’un client, comme le numéro de sa Carte Bancaire ou son adresse IP. Cette fonctionnalité permet d’être moins restrictif sur une population d’utilisateurs. 3.2. Liste noire (Blacklist) L’étape de la « blacklist » permet de refuser les paiements. Tout comme pour les « whitelists », les « blacklists » portent sur les données propres au porteur de carte : Pays Régions géographiques Numéros de carte Numéros de téléphone E-mail Adresses IP IBAN 4. Règles d’acceptation des transactions Le moteur de règles d’acceptation est une brique applicative puissante et modulaire qui permet d’adapter le comportement lié au traitement à réaliser sur chaque transaction comme : Accepter Refuser Alerter Ce service permet ainsi de définir des actions à réaliser sur chaque transaction depuis une large liste d’attributs disponibles : score de fraude, localisation du porteur, montant des ventes cumulées sur 7 ou 30 jours, client VIP whitelist, paramètre spécifique adressé par le marchand… Une règle d’acceptation est une condition logique. Elle permet : d’autoriser, de restreindre, et/ou d’interdire des transactions.Une règle se compose de 4 éléments : l’action, les attributs, les opérateurs, les valeurs. La syntaxe d’une règle est la suivante : « Action » « if » « Attribut » « Opérateur de comparaison » « Valeur de comparaison » Exemple : REFUSE if card_country != 'FRA' La règle présentée dans cet exemple permet de refuser automatiquement les paiements lorsque le pays de la carte n’est pas la France.La syntaxe de la grammaire choisie par la plateforme pour son moteur d’acceptation est très semblable à la syntaxe SQL (utilisée pour dialoguer avec les bases de données). 4.1. Les actions disponibles ALLOWAutorise le paiement REFUSERefuse le paiement ALERTAdresse une notification « webhook » de la transaction associée 4.2. Les attributs disponibles En tapant « # », les attributs disponibles sont affichés. Dans une règle, un attribut est toujours suivi d’un Opérateur de comparaison. Liste des attributs : AttributDescriptionType de valeursExemple#always Aucune #transactions[_état][_entité] [_temporalité]Quota du nombre de transactions [état] [entité] [temporalité]Entiers#transactions_amount[_état] [_entité][_temporalité]Quota du montant des transactions [état] [entité] [temporalité]Entiers#amountMontant de la transaction en centimesEntier#amount > 100#card_countryPays d’émission de la carteChaîne de caractères ISO 3166-1 alpha-3#card_country IN (‘FRA’, ‘USA’, ‘BEL’, ‘DEU’)#card_establishmentEtablissement de la carte #card_productType de carte‘gold’, ‘platinium’ #card_product_typeType de carte (perso ou corp.)CONSUMER CORPORATE#card_product_type = ‘CONSUMER’#card_regionRégion d’émission de la carte‘ASIA_PACIFIC »EUROPE »LATIN_AMERICA »MIDDLE_EAST_AND_AFRICA »USA_AND_CANADA »ANTARCTIQUE »UNKNOWN’#card_region NOT IN (‘ASIA_PACIFIC’, ‘LATIN_AMERICA’)#commercial_brandMarque de la carteVISA MASTERCARD AMEX OTHER#commercial_brand != ‘VISA’#currencyDevise de la transactionChaîne de caractères ISO 4217#currency = ‘EUR’#ip_countryPays de l’adresse IPChaîne de caractères ISO 3166-1 alpha-3#ip_country IN (‘FRA’, ‘USA’, ‘BEL’, ‘DEU’)#ip_regionRégion de l’adresse IP‘ASIA_PACIFIC »EUROPE »LATIN_AMERICA »MIDDLE_EAST_AND_AFRICA »USA_AND_CANADA »ANTARCTIQUE »UNKNOWN’#card_region NOT IN (‘ASIA_PACIFIC’, ‘LATIN_AMERICA’)#is_anonymous_ipEst une IP anonymeTRUE | FALSE#is_anonymous_ip = TRUE#is_three_d_secureEst une transaction 3D-SecureTRUE | FALSE#is_three_d_secure = TRUE#payout_amountMontant de reversementEntier#payout_amount > 100#payout_currencyDevise de reversementChaîne de caractères ISO 4217#payout_currency = ‘EUR’#risk_scoreScore d’antifraudeDouble#risk_score > 2,34#custom_acceptance_data[‘key’] = ‘value’champs customisékey : Regex [a-zA-Z0-9_-]value: Regex [a-zA-Z0-9_-]#custom_acceptance_data[‘product_category’] = ‘high’ Dans le cas du custom_acceptance_data[‘key’] = ‘value’, afin qu’il soit pris en compte il est nécessaire que l’exact même champs soit reporté dans la requête de l’objet visé. Les opérateurs logiques et parenthésage : Opérateurs logiques and et or La syntaxe utilisée pour définir les règles permet de créer plusieurs conditions au sein de la même règle. Les conditions resteront définies de la même manière, à la seule différence qu’un mot clé sera placé entre les conditions. Les mots clés sont and et or. Ils permettent de définir comment le moteur de règle va interpréter la succession de ces règles. Le « and » correspond à l’inclusion et le « or » à l’exclusion. Exemple : ALLOW if #amount < 1000 and #card_country = 'FRA' L’exemple précédent autorise les paiements dont le montant est inférieur à 10 ET dont la carte est française. Si l’une ou l’autre des conditions définies n’est pas remplie, l’action ne sera pas exécutée. Exemple : ALLOW if #amount < 1000 or #card_country = 'FRA' L’exemple précédent autorise les paiements dont le montant est inférieur à 10 OU dont la carte est française. Si l’une ou l’autre des conditions définies est remplie, l’action sera exécutée. Parenthèses L’utilisation des parenthèses dans la définition d’une règle multi-conditions permet de définir des blocs de conditions et les priorités entre ces blocs. Le principe est le même que celui des priorités pour les opérateurs mathématiques. Exemple : ALLOW if #amount < 1000 and (#card_country = 'FRA' or #currency = 'EUR') Dans l’exemple précédent, le moteur de règle va d’abord interpréter le bloc (#card_country = ‘FRA’ or #currency = ‘EUR’). C’est à dire que le paiement sera autorisé si (la carte est française ou que la devise est l’euro), ET que le montant est inférieur à 10. Ordre d’exécution des règles Les règles sont exécutées dans un ordre à définir. Cet ordre est important car dès qu’une transaction répond aux critères d’une règle, les règles suivantes ne seront pas traitées. Les règles sont exécutées dans l’ordre d’affichage de la liste de l’interface.Un indicateur de position est affiché dans chaque liste. Pour changer la position d’une règle, il suffit de la faire glisser à la position souhaitée. Exemples de règles : ALLOW if #amount < 1000 and #transactions_amount_daily < 10000 Explication : cet exemple autorise les transactions dont le montant est inférieur à 10 si la somme des montants des transactions de la journée est inférieur à 100. REFUSE if #risk_score > 3 or (#ip_regions = 'ASIA_PACIFIC' and #card_region = 'ASIA_ PACIFIC') Explication : cette règle bloque les paiements si le score de risque dépasse 3 ou que l’IP utilisée ainsi que la région d’émission de la carte correspondent à la zone ‘ASIA_PACIFIC’. THREE_D_SECURE if #card_country NOT IN ('FRA', 'USA', 'GBR') Explication : cette règle demande une transaction 3D Secure si le pays de la carte n’est pas la France, les Etats-Unis, ou la Grande Bretagne. ALLOW (#amount < 10000 and #transactions_amount_daily < 100000) or (#currency IN ('EUR', 'USD') and #transactions_amount_monthly < 1000000) Explication : cet exemple précédent AUTORISE les paiements SI le montant est INFÉRIEUR à 100 ET que la somme des montants des transactions du jour est INFÉRIEUR à 1000 OU que la devise est € ou $ ET que la somme des montants des transactions du mois est INFÉRIEURE à 10 000. Les opérateurs logiques « and » et « or » ne sont syntaxiquement correct qu’en minuscule. 4.3. Les opérateurs de comparaison disponibles = (égal) != (différent de) < (plus petit que) <= (plus petit ou égal à) in (dans ce qui va suivre) not in (pas dans ce qui va suivre) Les opérateurs de comparaison = , != , > , < , >= et <= doivent être suivis d’une valeur. Les opérateurs IN et NOT IN sont suivis d’une liste de valeurs de comparaison.Une liste de valeurs est entourée par des parenthèses et les valeurs à l’intérieur de la liste sont séparées par des virgules. Exemple : REFUSE if #currency NOT IN ('EUR', 'USD', 'GBP', 'CHF') L’exemple présenté ci-dessus permet de refuser tous les paiements dont la devise n’est pas l’Euro, le Dollar US, la Livre Sterling ou le Franc Suisse. Cette syntaxe évite d’écrire plusieurs règles ou plusieurs conditions dans la même règle. 4.4. Les valeurs disponibles : En fonction du type de valeur, la syntaxe permettant de définir la valeur ne sera pas la même : Entiers (valeur numérique sans décimale) : Syntaxe classique (ex : 100) Doubles (valeur numérique avec décimales) : La valeur est définie avec un point comme séparateur de décimale (ex : 12.32) Chaîne de caractères : La valeur est définie entre ‘quotes’ simples (ex : ‘FRA’) Booléens : La valeur est true ou false (ex : false) ℹ️ Les valeurs de "montants" doivent être renseignées en centimes (ex : pour 10 € on renseignera une valeur de 1000). 4.5. Les opérateurs logiques : Les opérateurs disponibles sont AND et OR. Ils permettent de définir comment le moteur de règle va interpréter la succession de ces règles. Le « AND » permet une inclusion tandis que le « OR » une exclusion. Exemple : REFUSE if #amount < 1000 and #card_country != 'FRA' L’exemple présenté ci-dessus permet de refuser les paiements dont le montant est inférieur à 10 € ET dont la carte n’est pas française. Si l’une ou l’autre des conditions définies n’est pas remplie, l’action ne sera pas exécutée. Reversement bancaire Les reversements bancaires (ou « Payout ») sont des virements sortant de votre compte de paiement CentralPay vers le compte bancaire qui y est associé. Ils peuvent être réalisés manuellement depuis le Portail utilisateur ou l’API Payment. Ils peuvent également être automatisés depuis le Portail utilisateur. Depuis le Portail utilisateur, seuls les profils utilisateurs titulaires du compte (dit « Legal ») peuvent paramétrer et réaliser les reversements. 1. Les deux modes de reversement 1.1. Reversement automatique Le titulaire du compte peut définir la périodicité : quotidien, hebdomadaire (choix du jour de la semaine, ex : chaque mardi) ou mensuel (choix du jour dans le mois, ex : le cinq du mois).Le service PAYOUT automatique exécutera automatiquement à 01h00 du jour donné un virement des fonds disponibles sur votre compte de paiement. Exemple : Cas d'un reversement hebdomadaire programmé le mardi : CentralPay exécutera la demande de création du virement (PAYOUT) le mardi matin avec les fonds disponibles (AVAILABLE) sur le compte de paiement jusqu'au mardi 01h00. 1.2. Reversement manuel (via BO ou API) Vous avez la possibilité d’exécuter des payouts manuellement depuis le Portail utilisateur ou l’API CentralPay. Vous pouvez déterminer le montant à reverser (avec en maximum le montant disponible sur votre compte). Attention, le PAYOUT ne sera exécuté immédiatement que s’il est effectué avant 05h00 le matin. À défaut, il sera exécuté le lendemain à 05h00 du matin également. 2. Délais de disponibilité des fonds Les reversements comprennent uniquement les fonds disponibles (ou « AVAILABLE ») de vos comptes de paiement. Les fonds issus d’une transaction par carte bancaire sont par exemple disponibles à J+2 : une transaction carte réalisée le lundi, apparaîtra en « Pending » le lundi, sera « Available » le mardi soir, le payout automatique sera effectué le mercredi matin à 00h05 et la réception du virement SEPA sur votre compte bancaire le jeudi. ℹ️ Le paramètre EscrowDate peut influer sur la date de disponibilité des fonds d'une transaction (concerne uniquement les partenaires AGENT). 3. Création d’un reversement manuel 3.1. Payout manuel par Portail utilisateur Depuis le Portail Utilisateur Administration Mon compte Reversements : cliquez sur « Transferts externes », sélectionnez le compte d’émission, le montant du reversement ainsi que l’IBAN destinataire, puis cliquez sur « confirmer le transfert ». Accès : Portail Utilisateur de RCT – Reversements Portail Utilisateur de PROD – Reversements 3.2. Payout manuel par API Consultez le détail dans la rubrique : Développeurs Payout 4. Reversement en euros ou devises via le réseau SWIFT Les virements bancaires internationaux sont gérés via le réseau SWIFT (contrairement au réseau SEPA pour les virements européens). Ces virements peuvent être émis depuis un très grand nombre de pays en EUROS ou dans d’autres devises. Si vous disposez d’un compte en devises ou n’étant pas accessible via le réseau SEPA, vous pouvez réaliser vos virements via le réseau SWIFT. Contactez CentralPay pour en savoir plus. ℹ️ Les virements bancaires du réseau SWIFT présentent des frais très largement supérieurs aux virements SEPA. Vous pouvez demander à CentralPay de paramétrer vos reversements automatiques afin qu'ils soient déclenchés à partir d'un certain seuil de fonds disponibles. 5. Retours, statuts et webhooks Consultez les statuts PAYOUT ➝ Consultez les webhooks PAYOUT ➝ Exports comptables Vous pouvez réaliser plusieurs exports de votre compte aux formats CSV, EXCEL, ou JSON depuis votre Portail utilisateur. Pour cela, paramétrez votre recherche avec les filtres disponibles sur la page de l’export souhaité, cliquez sur « Rechercher » puis « Exporter ». En quelques secondes, vous recevrez le fichier par email et pourrez le télécharger à tout moment depuis votre Portail utilisateur Compte Exports . 1. Export comptable des opérations du compte Cet export reprend l’ensemble des mouvements financiers débiteurs et créditeurs qui ont été réalisés sur votre compte : autorisations cartes, transactions cartes, transactions SDD, transactions SCT, transfers, payout, frais CentralPay… Vous disposerez du détail de chaque opération afin que vous puissiez le rapprocher facilement à vos factures ou vos dossiers. L’export contient les données suivantes : DénominationSignificationmovement_creation_datedate de l’opérationmovement_ididentifiant CentralPay de l’opérationmovement_gross_amountmontant brutmovement_gross_currencydevise du montant brutmovement_fee_amountmontant des frais CentralPaymovement_fee_currencydevise des fraismovement_net_amountmontant netmovement_net_currencydevise du montant netmovement_expected_availability_datedate de disponibilité des fonds estiméemovement_available_datedate de disponibilité des fonds réellemovement_statusstatut du mouvement (success, failed…)movement_source_typetype d’opération (transaction, transfert…)movement_source_uuididentifiant associé au type d’opération (transactionId, wireTransferId, transferId…)merchant_descriptiondescription définie par le marchandmerchant_reference_idréférence définie par le marchandcard_countrypays d’émission de la cartecard_regionzone d’émission de la carte (UE, hors UE)point_of_sale_idID CentralPay du point de vente Accès : Portail Utilisateur de RCT – Opérations Portail Utilisateur de PROD – Opérations 2. Télécharger le rapport financier mensuel Chaque début de mois, en plus de la facture, un rapport financier est généré, puis mis à disposition dans l’espace sécurisé de votre compte ( Administration compte documents Rapports financiers ). Il présente les montants totaux de crédit, de débit, de frais et de réserve de votre compte : Pour bien comprendre votre rapport financier :A) Le total des montants acquis / reçus sur votre compte au cours de la périodeB) Le montant net reçu sur votre compte, déduction faite de l’ensemble des frais selon le calcul « B = A – I »C) Le montant de la réserve détenue en garantie au jour de clôture de la périodeD) Le montant des fonds disponibles au jour de clôture de la périodeE) La valeur totale des fonds disponibles et en garantie enregistrée dans les livres de CentralPay au jour de clôture de la période selon la formule « E = C + D »F) La valeur totale des fonds retirés / transférés à la banque du marchand pendant la périodeG) Le total des frais de service et commissions facturées sur les transactions définies dans la grille tarifaireH) Total des frais d’opérations techniques : frais d’autorisation cartes, de contestation, de payout…I) Total des frais techniques et commissions ou « I = G + H » Accès : Portail Utilisateur de RCT – Documents Portail Utilisateur de PROD – Documents Exports de données Vous pouvez réaliser plusieurs exports de votre compte aux formats CSV, EXCEL, ou JSON depuis votre Portail utilisateur. Pour cela, paramétrez votre recherche avec les filtres disponibles sur la page de l’export souhaité, cliquez sur « Rechercher » puis « Exporter ». En quelques secondes, vous recevrez le fichier par email et pourrez le télécharger à tout moment depuis votre Portail utilisateur Compte Exports 1. Export des transactions cartes Cet export vous permet d’obtenir le détail des transactions cartes que vous avez réalisées au cours d’une période donnée.Cet export simplifie la lecture de vos transactions carte en agrégeant les opérations d’autorisations et de débit, et présente des données complémentaires spécifiques aux transactions cartes. L’export contient les données suivantes : DénominationSignificationtransaction_creation_datedate de créationtransaction_ididentifiant de transactiontransaction_amountmontanttransaction_currencydevisetransaction_payout_amountvaleur de devise de règlementtransaction_payout_currencydevise de règlementtransaction_commision_amountfrais sur la transactiontransaction_commision_currencydevise des fraistransaction_fee_amountfrais fixes par transactiontransaction_3ds3DS (0=non, 1=oui)transaction_descriptiondescription définie par le marchandtransaction_sourceEC Ecommerce, DP Deposit, MO Mail ordertransaction_bank_coderetour autorisation banquetransaction_statusstatut de la transactiontransaction_authorization_statusstatut de l’autorisationtransaction_authorization_codecode d’autorisationtransaction_capture_statusstatut de la capturetransaction_capture_datedate de la capturetransaction_capture_amountmontant de la capturemerchant_transaction_ididentifiant de transaction marchandpoint_of_sale_ididentifiant du point de ventepoint_of_sale_namenom du point de ventemerchant_ididentifiant marchandmerchant_namenom du marchanddispute_amountmontant de la contestationdispute_currencydevise de la contestationdispute_datedate de la contestationrefund_amountmontant du remboursementrefund_currencydevise du remboursementrefund_datedate du remboursementcard_ididentifiant de la carte de paiementcard_first66 premiers chiffres de la cartecard_last44 derniers chiffres de la cartecard_cardholder_namenom du porteurcard_cardholder_emailemail du porteurcard_typetype de carte (crédit/débit/prepaid)card_productnom du produit carte (Infinite, Gold…)card_product_typecarte consumer ou corporatecard_commercial_brandréseau carte (VISA/Mastercard/CB)card_regioncontinent d’origine de la cartecard_countrypays d’origine de la cartecard_establishment_namenom de l’établissement qui fournit la cartecustomer_ididentifiant clientend_user_ipIP de l’utilisateurend_user_languagelangue de l’utilisateurbrowser_user_agentnavigateur de l’utilisateurreceipt_emailmail de réception de l’utilisateurclearing_numbernuméro de clearingmerchant_category_codeactivité du marchand Accès : Portail Utilisateur de RCT – Transactions Portail Utilisateur de PROD – Transaction 2. Export des remboursements cartes Cet export vous permet d’obtenir le détail des remboursements cartes que vous avez réalisées au cours d’une période donnée. Accès : Portail Utilisateur de RCT – Remboursements cartes Portail Utilisateur de PROD – Remboursements cartes 3. Export des contestations de transactions cartes Cet export vous permet d’obtenir le détail des contestations de transactions cartes (disputes/chargebacks) que vous avez reçues au cours d’une période donnée. Accès : Portail Utilisateur de RCT – Contestations cartes Portail Utilisateur de PROD – Contestations cartes 4. Export des abonnements (cartes et SDD) Cet export vous permet d’obtenir le détail des abonnements cartes et SDD que vous avez réalisés au cours d’une période donnée. Accès : Portail Utilisateur de RCT – Abonnements Portail Utilisateur de PROD – Abonnements Webhooks Les webhooks permettent d’adresser des notifications HTTP sur les URL de votre choix en fonction des évènements (ou « Events ») qui surviennent sur votre compte CentralPay. Ces évènements correspondent à la création, au changement de donnée ou au changement de statut d’un objet des API CentralPay. Le service permet ainsi d’avertir en temps réel votre système d’information, dès qu’une opération est réalisée sur votre compte CentralPay. Par exemple, une transaction réussie ou échouée, la création d’une nouvelle souscription (abonnement), un nouveau client (Customer), la réception d’un impayé… Les webhooks sont classés en deux catégories : Liés aux Points de Vente « POS » Liés aux « Comptes » Le serveur distant doit confirmer la bonne réception de la requête en retournant un code 2XX. Dans le cas contraire, une nouvelle requête sera adressée toutes les 5 min pendant 2h. Pour s’assurer de la bonne réception des hooks, nous vous conseillons d’utiliser le service Webhook Site. Entrez l’URL donnée par le site et l’adresse mail, et effectuez vos tests. Une fois que vous êtes satisfait des réponses hooks, vous pouvez remplacer l’adresse mail et l’URL par les vôtres et effectuez un nouveau test. Consultez la liste des webhooks dans la rubrique : Développeurs Webhook notifications
Ouvrir un compte CentralPay Articles Parcours d'entrée en relation Pièces justificatives : KYC / KYB Pays autorisés Activités interdites Principes de réserve Conditions générales d’utilisation Parcours d'entrée en relation CentralPay propose plusieurs modes d’entrée en relation, selon votre situation : Vous êtes un marchand en relation directe avec CentralPay ; Vous êtes un partenaire technologique ou commercial ; Vous êtes un marchand rattaché à un partenaire utilisant la solution CentralPay. 👉 Ce guide détaille les différentes étapes, selon votre profil. Certaines étapes peuvent être adaptées ou simplifiées selon les modalités de votre intégration. 🔹 Marchands en direct ou partenaires Le parcours d’entrée en relation comporte six étapes principales. 1. 🧭 Qualification de votre projet Nos équipes commerciales échangent avec vous pour analyser votre projet : Parcours de paiement envisagé (web, mobile, point de vente, récurrent…), Moyens de paiement souhaités (carte, virement, SEPA, Pay By Bank…), Méthodes d’intégration (API, portail, connecteur), Typologie de vos clients finaux (B2B, B2C, abonnements…), Volumétrie estimée (fréquence et montants). 2. 🔎 Pré-analyse conformité de votre projet Sur la base des informations fournies, notre service conformité effectue une pré-analyse réglementaire visant à : Vérifier la compatibilité de votre activité avec notre cadre réglementaire, Identifier les points de vigilance potentiels (secteur sensible, flux complexes…), Prédéfinir les éventuelles garanties ou conditions particulières. 3. 🖋️ Signature du contrat cadre Une fois cette pré-analyse validée, vous êtes invité à signer le contrat cadre de services de paiement ou de monnaie électronique. 🔗 Voir le contrat cadre de services de paiement Un représentant légal peut désigner un mandataire pour signer à sa place (modèle de délégation disponible sur demande). 4. 🧑💻 Lancement de l’intégration Après signature du contrat : Vous recevez vos accès à l’environnement de test, Vous accédez aux documentations techniques CentralPay. 📌 Si vous bénéficiez d’un accompagnement personnalisé, une réunion d’onboarding est organisée pour configurer vos premiers paramétrages (notifications, reversements, droits utilisateurs, etc.). 5. 🧾 Création du compte CentralPay Le représentant légal reçoit un lien d’inscription sécurisé pour créer le compte : Il complète les informations juridiques, Il valide les Conditions Générales d’Utilisation, L’analyse de conformité complète est alors déclenchée. 🛡️ Cette analyse peut donner lieu à : Des demandes de documents complémentaires (KYC/KYB, contrats, justificatifs…), Un refus d’ouverture si les critères réglementaires ne sont pas remplis, Une validation du compte, menant à son ouverture. 6. ✅ Mise en production Une fois l’ensemble des étapes validées, y compris l’intégration et les éventuelles factures initiales : Une date de mise en production est convenue, Votre compte est débloqué, Vous pouvez encaisser vos premières transactions. 🔹 Marchands liés à un partenaire Si vous êtes un marchand intégré via un partenaire technologique ou commercial de CentralPay, le parcours est simplifié. Vous entrez directement à l’étape 5 : Création du compte CentralPay. ➤ Étape unique : Création du compte et validation réglementaire Vous recevez un lien d’inscription transmis par votre partenaire ou directement par CentralPay. Ce lien vous permet de : Compléter les informations relatives à votre structure, Décrire précisément votre activité, la typologie de vos clients finaux et la volumétrie estimée de vos opérations, Valider les Conditions Générales d’Utilisation et signer le contrat cadre. 💡 Les aspects techniques (intégration, parcours, moyens de paiement) sont déjà définis dans le cadre de la convention signée avec votre partenaire.L’analyse de conformité complète de CentralPay reste obligatoire avant validation du compte. Pièces justificatives : KYC / KYB Introduction Cette page présente les documents que CentralPay est susceptible de demander à ses utilisateurs et partenaires lors de l’ouverture d’un compte. Les pièces à fournir varient selon : Le type de structure (particulier, société, association, organisme public…) Le profil de risque (faible, moyen, élevé) Le type d’activité exercée. Ces exigences répondent aux obligations réglementaires en matière de lutte contre le blanchiment des capitaux et le financement du terrorisme (LCB-FT). 📝 1. Documents communs (socle KYC) Quel que soit le profil, les documents de base à fournir sont : Une pièce d’identité valide : Utilisateur de l’Espace Economique Européen (EEE) : Carte Nationale d’Identité (CNI), passeport, carte de séjour. Récépissé de renouvellement de titre de séjour (accompagné du titre de séjour périmé) accepté pour les utilisateurs « personnes physiques ». Récépissé de demande de 1er titre de séjour non accepté. Utilisateur hors EEE : uniquement le passeport (passeports issus d’un pays sur liste noire GAFI non acceptés) Un justificatif de domicile de moins de 3 mois : Facture d’énergie ou d’eau (moins de 3 mois). Facture de téléphonie fixe / box internet (moins de 3 mois). Avis d’imposition, taxe foncière ou d’habitation (moins de 3 mois). Quittance de loyer d’un organisme public (moins de 3 mois). Attestation d’hébergement accompagnée de : Pièce d’identité de l’hébergeur. Justificatif de domicile de l’hébergeur (moins de 3 mois). Pour les clients étrangers : Extrait de relevé bancaire de moins de 3 mois. Relevé d’Identité Bancaire (RIB) au nom du client. Déclaration de l’activité exercée et des canaux de commercialisation. Des documents complémentaires peuvent être demandés selon le niveau de risque et l’activité. 🧩 2. Exigences selon le type d’utilisateur 📊 Personnes Physiques (KYC) Type d’utilisateurDocuments systématiquesDocuments complémentaires demandés selon risque / activitéPersonne Physique (🇫🇷 et 🌍)➡️Un document d’identité valide : ↳ CNI (🇪🇺)↳ Passeport↳ Carte de séjour (🇪🇺)↳ Récépissé de renouvellement de titre de séjour, accompagné du titre de séjour périmé (🇪🇺)➡️RIB (Relevé d’Identité Bancaire) à son nom➡️ Déclaration d’activité et de revenus ➡️ Justificatif de domicile (<3 mois)➡️ Justificatifs de revenus : fiche de paie, relevé bancaire, avis d’imposition ➡️ Pour activité de location : taxe foncière ou titre de propriété, attestation de propriétéPersonne Physique (🇫🇷 et 🌍)via workflow d’inscription automatique➡️Un document d’identité valide : ↳ CNI (🇪🇺)↳ Passeport↳ Carte de séjour (🇪🇺)↳ Récépissé de renouvellement de titre de séjour, accompagné du titre de séjour périmé (🇪🇺)➡️Un premier chargement du compte depuis un moyen de paiement dont l’utilisateur est titulaire (virement bancaire ou carte)➡️ RIB (Relevé d’Identité Bancaire) à son nom en cas de premier chargement par carte (pour réaliser des reversements SEPA)➡️ Déclaration d’activité et de revenus ➡️ Justificatif de domicile (<3 mois)➡️ Justificatifs de revenus : fiche de paie, relevé bancaire, avis d’imposition ➡️ Pour activité de location : taxe foncière ou titre de propriété, attestation de propriété 🏢 Personnes morales (KYB) Qui peut créer un compte pour une entreprise ? La création d’un compte CentralPay pour une société, association ou toute autre personne morale doit être réalisée par l’un de ses dirigeants officiellement enregistrés (ex. : gérant, président), figurant dans un registre officiel (type extrait Kbis ou équivalent). Le dirigeant peut toutefois désigner une autre personne (mandataire) pour effectuer la création du compte à sa place. Dans ce cas : Une délégation de pouvoir rédigée par le dirigeant ou, à défaut, le modèle de procuration CentralPay devra être complété et signé. Lors du processus de création, les documents suivants seront requis : La pièce d’identité du mandataire ; La pièce d’identité du dirigeant (mandant). 💡 Ce dispositif permet de sécuriser la procédure tout en vous offrant une gestion souple et conforme à la réglementation. Cas particulier : société dirigée par une autre société Si la société pour laquelle le compte est créé est elle-même dirigée par une autre personne morale, CentralPay doit identifier toutes les entités intermédiaires, jusqu’à la personne physique exerçant un contrôle effectif (ex. : détention de plus de 25% du capital). Dans ce cadre : Des documents KYC/KYB seront demandés pour chaque société intermédiaire ; La personne physique réalisant l’enrôlement doit figurer sur un registre officiel, ou fournir une délégation de pouvoir valide ou une procuration CentralPay signée. Type d’utilisateurDocuments systématiquesDocuments complémentaires demandés selon risque / activitéCompte en indivision (🇫🇷) ➡️CNI / Passeport de tous les indivisaires➡️ Acte d’indivision➡️ Autorisation de gestion ou location signée par tous les indivisaires➡️ RIB au nom de l’indivision➡️ Justificatif de revenus➡️ Historique bancaire➡️ Contrôle des revenus à 33% max➡️ Documents supplémentaires en cas d’activité jugée importanteAuto-entreprise (🇫🇷 et 🌍)➡️ CNI / Passeport➡️ Identification de l’entité :↳ 🇫🇷 : Numéro de SIRENE (récupération automatique du KBIS auprès du greffe)↳ 🌍 : Extrait d’immatriculation (registre local)➡️ RIB de l’auto-entreprise➡️ Avis d’imposition ou justificatif de domicile ➡️ Déclaration d’activitéAssociation loi 1901 (🇫🇷)➡️ CNI / Passeport du Président➡️ Statuts de l’association (certifiés conforme <3 mois)➡️ PV d’Assemblée Générale (PV AG)➡️ Immatriculation ↳ RNA ou SIRENE↳ ou à défaut avis de situation au répertoire SIRENE ou déclaration préfectorale➡️ RIB de l’association➡️ RBE – Registre des Bénéficiaires Effectifs (BE = Administrateurs, trésorier, secrétaire général)↳ ou déclaration équivalente signée par le Président Organisme public (🇫🇷) : Mairie/Département/Région)➡️ CNI / Passeport du représentant➡️ Numéro de SIRENE (récupération automatique du KBIS auprès du greffe) ↳ ou à défaut Avis SIRENE / Infogreffe➡️ RIB au nom de l’organismeSociété cotée / agréée (🇫🇷 et 🌍)➡️ CNI / Passeport du représentant➡️ Identification de l’entité :↳ 🇫🇷 : Numéro de SIRENE (récupération automatique du KBIS auprès du greffe)↳ 🌍 : Extrait d’immatriculation (registre local ou INSEE pour activité libérale)➡️ RIB de la société➡️ Statuts et objet social (<3 mois)Société française (🇫🇷) : SAS, SARL, etc. ➡️ CNI / Passeport du représentant➡️ Identification de l’entité :↳ 🇫🇷 : Numéro de SIRENE (récupération automatique du KBIS auprès du greffe)↳ Si informations non accessibles, extrait d’immatriculation (KBIS)➡️ RIB de la société➡️ RBE (Registre des Bénéficiaires Effectifs, via INPI, CERFA ou Statuts certifiés conformes de <3 mois)➡️ Justificatif de domicile du représentant et des BE ‣ Avis d’imposition du représentant➡️ CNI/Passeport des Bénéficiaires Effectifs (>25% capital) ➡️ Statuts certifiés conformes de <3 mois➡️ Documents sur société mère si contrôle étrangerSociété européenne ou étrangère (🌍)➡️ CNI / Passeport du représentant➡️ Extrait d’immatriculation locale (équivalent KBIS – traduction assermentée demandée si le document n’est pas présenté en alphabet latin)➡️ RIB de la société➡️ RBE local (Registre des Bénéficiaires Effectifs) ou déclaration certifiée conforme <3 mois➡️ Statuts certifiés conforme <3 mois (traduction assermentée demandée si le document n’est pas présenté en alphabet latin) ➡️ Justificatifs de domicile (<3 mois) des BE et représentants 📄 3. Formats de fichiers acceptés et exigences techniques ✅ Formats de fichiers acceptés Pour garantir la lisibilité et le bon traitement de vos documents, nous acceptons uniquement les formats suivants : PDF : recommandé pour les documents multipages (ex : avis d’imposition, statuts) et les Relevés d’Identités Bancaires (RIB). JPEG / JPG / PNG / PDF : pour les photos d’identité, captures d’écran ou documents scannés. 📏 Poids et résolution des fichiers Taille maximale par fichier : 10 Mo. Résolution minimale recommandée : 300 DPI. Pour les photos prises avec un smartphone : privilégiez le mode « document » ou « scanner » si disponible. 🚫 Documents non acceptés Les documents suivants seront systématiquement refusés : Documents expirés. Photos floues, mal cadrées ou illisibles. Documents coupés ou tronqués (informations ou bords manquants). Scans en noir et blanc. Fichiers compressés ou d’archives (.zip, .rar…). Documents retouchés ou modifiés numériquement. ℹ️ Conseils pour une soumission réussie Vérifiez la netteté et la lisibilité avant l’envoi. Évitez les reflets et ombres sur les documents photographiés. Adressez des copies numériques en couleur (scan ou photo nette). N’envoyez pas de documents à travers des captures d’écran d’ordinateur. Assurez-vous que le document est à jour et en cours de validité. Pays autorisés CentralPay et ses partenaires sont autorisés à entrer en relation d’affaires et à ouvrir des comptes de paiement ou de Monnaie Électronique pour des personnes physiques ou morales résidant ou établies dans les pays suivants : 🌐 Zone🏳️ Pays ou territoireEspace Économique Européen🇩🇪 Allemagne🇦🇹 Autriche🇧🇪 Belgique🇧🇬 Bulgarie🇨🇾 Chypre🇭🇷 Croatie🇩🇰 Danemark🇪🇸 Espagne🇪🇪 Estonie🇫🇮 Finlande🇫🇷 France🇬🇵 Guadeloupe🇬🇫 Guyane française🇲🇶 Martinique🇾🇹 Mayotte🇵🇫 Polynésie française🇷🇪 La Réunion🇧🇱 Saint-Barthélemy🇲🇫 Saint-Martin (partie française)🇵🇲 Saint-Pierre-et-Miquelon🇼🇫 Wallis-et-Futuna🇬🇷 Grèce🇭🇺 Hongrie🇮🇪 Irlande🇮🇸 Islande🇮🇹 Italie🇱🇻 Lettonie🇱🇹 Lituanie🇱🇮 Liechtenstein🇱🇺 Luxembourg🇲🇹 Malte🇳🇴 Norvège🇳🇱 Pays-Bas🇵🇱 Pologne🇵🇹 Portugal🇨🇿 République tchèque🇷🇴 Roumanie🇸🇰 Slovaquie🇸🇮 Slovénie🇸🇪 SuèdeAutres pays autorisés🇬🇧 Royaume-Uni🇨🇭 Suisse 📝 Remarques L’ouverture de compte est conditionnée à l’analyse du dossier par les équipes conformité. Pour les territoires d’outre-mer, l’éligibilité s’applique uniquement aux zones sous souveraineté française. Activités interdites Pour garantir la conformité réglementaire, la sécurité des opérations et la réputation de ses services, CentralPay interdit formellement certaines activités. Toute personne ou entité souhaitant ouvrir un compte CentralPay doit s’assurer que son activité est conforme aux exigences ci-dessous. L’exercice de l’une des activités suivantes peut entraîner le refus d’entrée en relation, la suspension du compte ou sa clôture immédiate. ❌ Activités interdites de manière absolue CatégorieExemples d’activités interditesActivités illicitesVente de drogues, de produits illicites ou de substances interditesBlanchiment d’argent, financement du terrorismeProstitutionProduits interdits ou réglementés sans autorisationVente de médicaments ou produits pharmaceutiques sans agrémentVente d’alcool, de tabac ou de jeux d’argent sans licenceVente d’armes, d’explosifs ou de dispositifs de piratageContenus et comportements illégauxDiffusion de contenus à caractère pornographique ou extrêmeActivités incitant à la haine, au racisme ou faisant l’apologie du terrorismeDiffusion d’images contraires à l’ordre publicFraudes ou pratiques commerciales interditesUsurpation d’identité, fraude documentaireVente de produits contrefaits ou de marques non autoriséesSites de phishing ou logiciels espionsRéseaux à risque ou non coopératifsOrganisations sectaires ou mouvements ultra-radicauxRéseaux opérant dans des juridictions sous sanction ou non coopératives (ex. paradis fiscaux non reconnus) ⚠️ Activités soumises à conditions strictes Certaines activités peuvent être envisagées sous réserve d’une analyse renforcée par les équipes conformité et de la fourniture de justificatifs réglementaires valides : Jeux en ligne ou paris (avec licence délivrée par l’autorité compétente) Vente d’alcool ou de tabac (avec autorisation légale) Plateformes de streaming ou d’abonnement (sous conditions anti-fraude) 🛡️ En cas de doute… CentralPay se réserve le droit d’interprétation et de décision unilatérale en matière d’acceptation ou de rejet d’une activité, y compris en cas d’évolution réglementaire. Pour toute activité atypique ou présentant des risques, une analyse renforcée peut être demandée, avec obligation de transparence sur les flux, les bénéficiaires, et les clients finaux. 📩 Contactez votre interlocuteur CentralPay si vous avez des questions sur l’éligibilité d’un projet. Principes de réserve La réserve représente les sommes qui sont maintenues sur votre compte CentralPay afin de permettre de couvrir les R-transactions (rejets, refus, retours, remboursements, contestations, impayés) liés à des opérations de paiement. Ses paramètres sont définis en fonction du profil de risque financier de votre compte et sont actualisés en fonction de l’analyse de vos R-transactions sur une période suffisante. Les transactions récurrentes par prélèvement SEPA et par carte bancaire sont particulièrement sujettes au risque de R-transactions. CentralPay possède 3 types de garanties de protection qui peuvent s’appliquer aux marchands, en fonction de la nature de leur contrat : 1. Le collatéral Il représente la somme fixe versée en début de relation, servant à couvrir le risque de crédit dans le cas où le marchand ne pourrait pas satisfaire ses obligations de remboursement envers ses clients. Le détail du collatéral est visible depuis le Portail utilisateur : Administration Reversements Somme des cautions 2. Le pied de compte En l’absence de collatéral, une somme fixe peut être prélevée directement sur les opérations afin de garantir le remboursement des clients en cas de besoin. Le wallet doit donc dépasser la valeur du pied de compte pour autoriser les reversements (payout). Le détail du pied de compte est visible depuis le Portail utilisateur : Administration Reversements Seuil fixe 3. La réserve glissante Selon le secteur d’activité et les processus de règlement du compte, une réserve glissante (« rolling réserve » en anglais) peut être automatiquement ouverte. Il s’agit d’une garantie de protection supplémentaire qui permet de maintenir un certain pourcentage du volume d’encaissement marchand sur le compte CentralPay afin de permettre l’initiation de remboursements automatiques en cas de contestation de transaction, de fraude ou encore afin de couvrir d’éventuels frais opérationnels. Cette somme appartient à la trésorerie du marchand, elle est gardée un nombre défini de jours avant d’être libérée (généralement entre 90 à 180 jours). Par exemple, le seuil variable de la réserve glissante est de 5 % du volume d’encaissement sur 90 jours. Le calcul quotidien du montant de réserve est le suivant : montant des transactions encaissées lors des 90 derniers jours * 5 % Le détail de la réserve glissante est visible depuis le Portail utilisateur : Administration Reversements Seuil variable Conditions générales d’utilisation L’utilisation des services CentralPay est encadrée par plusieurs documents contractuels que chaque titulaire de compte doit consulter et accepter avant l’activation de son compte. 🔗 Accès aux conditions générales Les dernières versions en vigueur des conditions générales CentralPay sont disponibles ici :👉 centralpay.com/fr/cgu ⚖️ Deux types de CGU applicables CentralPay propose deux catégories de comptes, soumises à des conditions générales distinctes en fonction du service souscrit : Type de compteConditions générales applicablesCompte de paiementConditions générales de service de paiementCompte de monnaie électroniqueConditions générales de service de monnaie électronique 🔐 Obligation d’acceptationCes conditions générales doivent être lues et acceptées électroniquement par le titulaire de chaque compte, qu’il soit ouvert directement par un marchand, ou via un partenaire CentralPay. 🧾 Contrat cadre pour les encaissements pour compte propre Dans le cas où un compte est utilisé pour encaisser des fonds pour compte propre (modèle marchand), CentralPay met également à disposition un modèle de contrat cadre dédié : Ce contrat précise les droits et obligations liés à l’utilisation du compte pour l’encaissement d’opérations commerciales, Il est signé électroniquement par le représentant légal ou par une personne habilitée (via délégation de pouvoir). 👉 centralpay.com/fr/cgu
BankAccount > See more about BankAccount Once your identity has been created (Merchant or Customer), you can create a bank account you’ll link to it. Merchants must create for their customer the bank account with informations provided by them. It must be noted that to become a creditor, you need to have a level STANDARD or more.
Glossaire Articles Terminologies CentralPay Lexique des paiements Terminologies CentralPay DésignationDescriptionActeurToute entité identifiée sur la plateforme CentralPay. Peut-être un marchand, un partenaire, un point de vente, un établissement tiers, ou même CentralPay.Autorisation carteOpération d’interrogation de disponibilité des fonds d’une carte bancaire, puis de blocage en prévision d’une transaction carte (7 jours max).Elle est représentée par l’objet « Transaction » dans l’API CentralPay.Compte CentralPay Ouvert pour une entité (personne physique ou morale), il est le support de : – Sa contractualisation : Grille tarifaire, CGU… – Son administration : Credentials, profils utilisateurs… – Sa configuration : Scenario de notification, points de vente, règles d’acceptations… – Sa conformité : KYC/KYB, accréditations…Le compte CentralPay contient un ou plusieurs comptes de paiement ou de monnaie électronique.Il est représenté par l’objet « Merchant » dans l’API CentralPay.Compte de paiementCompte ouvert dans un Établissement de Paiement. Ce compte est utilisé exclusivement pour la réalisation d’opérations de paiement (collecte de paiements en devises ISO, reversement des fonds vers un compte bancaire…).Il est représenté par l’objet « Wallet » dans l’API CentralPay.Compte de monnaie électroniqueCompte ouvert dans un Établissement de Monnaie Électronique. Ce compte est utilisé exclusivement pour le stockage et l’échange de valeurs en monnaie électronique au sein du réseau du distributeur (devises CUSTOM).Il est représenté par l’objet « Wallet » dans l’API CentralPay.Compte de commissionCompte de paiement secondaire d’un marchand ou partenaire permettant d’isoler les opérations liées aux frais CentralPay du reste des opérations de paiement.Si utilisation par un partenaire, ce compte permet également de collecter ses propres commissions imputées aux transactions de ses sous-marchands.Il est représenté par l’objet « Wallet » dans l’API CentralPay.Compte de réserveCompte de paiement secondaire d’un marchand ou partenaire permettant d’isoler ses fonds de réserve Centralpay (pied de compte, collatéral ou réserve glissante). N’est pas autorisé à réaliser de Payout.Il est représenté par l’objet « Wallet » dans l’API CentralPay.Compte de collecte « Agent »Compte de paiement ouvert dans les livres de CentralPay au nom de l’Agent. Il est dédié à la réception des fonds du partenaire Agent avant leur transfert vers les comptes de paiement de ses sous-marchands. N’est pas autorisé à réaliser de Payout.Il est représenté par l’objet « Wallet » dans l’API CentralPay.Compte CentralisateurLe Compte Centralisateur est un compte technique mise à disposition par CentralPay au Partenaire pour lui permettre de visualiser les instructions technique transmises. Il est donc uniquement dédié à la centralisation des opérations d’un partenaire avant leur transfert vers les comptes de paiement de ses titulaires concernés.MarchandPersonne morale ou autoentreprise réalisant des opérations d’encaissement pour compte propre (vente de biens ou de services). Dispose d’un compte CentralPay en droits « Standard ».Partenaire MOBSPPersonne morale, porteur d’un projet impliquant la mise en relation d’un marchand à CentralPay. Partenaire DMEPersonne morale déclarée comme Distributeur de Monnaie Électronique par CentralPay auprès de l’ACPR (Banque de France). Porteur d’un projet impliquant la réalisation d’opérations d’émission et d’échange de Monnaie Électronique. Dispose des droits API « DME Partner ».Partenaire AgentPersonne morale agréée comme Agent Prestataire de Services de Paiement de CentralPay auprès de l’ACPR (Banque de France). Réalisant notamment des opérations d’encaissement pour compte de tiers à destination de ses Participants. Dispose des droits API « Agent Partner ».Sous-marchandPersonne morale ou physique agissant à des fins commerciales ou dans le cadre d’une activité LMNP. Obligatoirement lié à un Partenaire. Dispose d’un compte CentralPay en droits « Basic ».ParticipantPersonne physique ou morale agissant à des fins non commerciales (exemple : chargement d’un compte de paiement ou de monnaie électronique dans le but de participer au projet d’un partenaire). Obligatoirement lié à un Partenaire. Dispose d’un compte CentralPay en droits « Basic ».IntégrateurPersonne morale, généralement une société de développement informatique, ayant intégré tout ou partie des API CentralPay dans sa propre plateforme technique. Il permet ainsi à ses clients disposant d’un compte CentralPay d’accéder aux services CentralPay dans le contexte de sa plateforme. L’intégrateur ne commercialise pas les services de CentralPay.Utilisateur BOPersonne physique disposant d’un accès à un ou plusieurs comptes CentralPay. Dispose d’un type « Legal » s’il est représentant légal du compte, sinon dispose d’un type « Natural ».Utilisateur APIEntité créée via la plateforme CentralPay permettant d’identifier l’utilisateur réalisant les appels API sur un compte CentralPay.Client / PayeurClient d’un marchand ou d’un partenaire ayant émis un paiement vers un compte CentralPay. Peut disposer d’un profil client CentralPay ou non.Frais CentralPayEnsemble des frais dus à CentralPay déduits des opérations correspondantes, prélevés sur un compte de commission dédié ou facturés en fin de mois.Devises ISODevises conventionnelles aux normes ISO 4217 (exemple : EUR, USD, CHF, GBP…)Devise CUSTOMDevise de Monnaie Électronique créée pour un Partenaire DME de CentralPay. La valeur de la devise CUSTOM est toujours adossée à celle d’une devise ISO comme l’EURO par exemple.Compte bancaireCompte bancaire externe lié à un compte CentralPay pour réaliser des reversements (payout) ou à un profil client pour réaliser des prélèvements SEPA.Il est représenté par l’objet « BankAccount » dans l’API CentralPay.Reversement bancaireVirement sortant d’un compte CentralPay vers un compte bancaire lié. Peut-être réalisé par SEPA ou SWIFT.Il est représenté par l’objet « Payout » dans l’API CentralPay.Transaction carteOpération de débit d’une carte bancaire, au crédit d’un compte CentralPay.Elle est représentée par l’objet « Transaction » dans l’API CentralPay.Transaction SCTOpération de réception d’un virement SEPA ou SWIFT, au crédit d’un compte CentralPay.Elle est représentée par l’objet « SctTransaction » dans l’API CentralPay.Transaction SDDOpération de débit d’un compte bancaire, au crédit d’un compte CentralPay.Elle est représentée par l’objet « SddTransaction » dans l’API CentralPay. Lexique des paiements DésignationDéfinitionIdentifiant de Créancier SEPA (ICS)L’ICS est un numéro de référence unique qui identifie chaque émetteur de prélèvement. En France, il est composé de 13 caractères alphanumériques, dont les 2 premiers représentent le code pays ISO (FR pour la France).Disposer d’un ICS est un prérequis obligatoire pour réaliser des prélèvements. Le créancier doit faire la demande d’attribution de l’ICS auprès de sa banque. Le créancier conserve ensuite son ICS, même s’il change de banque ou s’il est multi-bancarisé.DébiteurPersonne physique ou morale qui doit une somme d’argent à une autre, appelée créancier, que ce soit dans le cadre de transactions commerciales, de prêts ou d’autres obligations financières.CréancierPersonne physique ou morale à qui une somme d’argent est due par une autre, appelée débiteur. Les créanciers (banques, entreprises ou particuliers qui ont prêté de l’argent ou fourni des biens ou services à crédit) ont le droit légal de réclamer le paiement de la dette, généralement formalisé par un contrat ou une autre forme d’accord.Émetteur (ou donneur d’ordre)Le payeur, c’est-à-dire la personne physique ou morale qui va émettre les fonds d’une transaction financière.BénéficiaireLe destinataire, autrement dit la personne physique ou morale qui va percevoir les fonds d’une transaction financière.Autorisation bancairePropre aux transactions par carte. Interrogation de l’acquéreur vers la banque du porteur de carte concernant le montant de la transaction. Suite au « code de retour banque », l’acquéreur est en mesure de savoir si la somme demandée est disponible, et si non pourquoi (fonds insuffisants, carte volée…). Une autorisation valide assure au marchand la possibilité de capturer la somme demandée jusqu’à 7 jours.Passerelle de paiement (ou Payment Gateway)Technologie agissant comme intermédiaire entre le site du marchand et le réseau de paiement qui permet d’assurer la transmission sécurisée d’informations liées aux paiements. Les passerelles vérifient également la disponibilité des fonds et autorisent les paiements, tout en offrant des fonctionnalités telles que la gestion des paiements récurrents et la détection de la fraude.Prestataire de Services de Paiement (ou PSP)Établissement financier qui fournit des services liés à l’acceptation et au traitement des paiements aux marchands. Ces services incluent également la gestion des comptes de paiements ouverts, la sécurité des transactions ainsi que la conformité réglementaire.KYB (Know your Business)Le KYB (Know Your Business) est un protocole d’authentification de l’identité et de la conformité des personnes morales, avant la création de leur compte de paiement. Imposée par le régulateur, cette vérification permet d’évaluer le niveau de risque marchand de ces dernières afin de prévenir toutes activités illégales telles que le blanchiment d’argent, la fraude et le financement du terrorisme (LCB-FT).Ce processus inclut la collecte et la vérification de documents tels que les statuts de l’entreprise, les informations sur les propriétaires et les dirigeants, les justificatifs d’adresse et les informations financières.KYC (Know your Customer)Le KYC (Know Your Customer) est un protocole d’authentification de l’identité et de la conformité des personnes physiques, avant la création de leur compte de paiement. Imposée par le régulateur, cette vérification permet d’évaluer le niveau de risque marchand de ces dernières afin de prévenir toutes activités illégales telles que le blanchiment d’argent, la fraude et le financement du terrorisme (LCB-FT).Ce processus inclut la collecte et la vérification de documents tels que les pièces d’identité, les preuves de domicile et les informations sur les activités professionnelles.Rapprochement d’un virementProcessus de vérification et de correspondance des factures émises enregistrées dans le compte de l’entreprise avec les paiements reçus. Ce traitement permet de s’assurer que toutes les transactions prévues ont bien été exécutées, de détecter toute anomalie ou erreur et de maintenir l’exactitude des enregistrements financiers de l’entreprise.Frais d’interchangeFrais payés par la banque du marchand (banque acquéreur) à la banque de l’acheteur (banque émettrice) lors d’une transaction par carte, afin de couvrir les coûts et les risques associés à la gestion des paiements. Ils varient en fonction de plusieurs facteurs, tels que le type de carte utilisée, le type de transaction et le pays dans lequel la transaction est effectuée.Frais de réseaux carteFrais facturés par les réseaux de cartes (CB, Visa, Mastercard…) aux banques et PSP qui traitent des paiements par carte. Ces frais couvrent les coûts liés à l’utilisation du réseau de paiement, notamment l’infrastructure technologique, la sécurité des transactions et le traitement des paiements.Interchange++Somme des commissions prélevées sur les opérations de paiement en ligne du marchand. Il est composé de :– Frais d’Interchange– Frais de réseaux de carte– Frais de services, facturés par le PSP qui assure le fonctionnement de la plateforme de paiement et des services associésCe calcul permet de déterminer le coût de revient exact de chacune des transactions.Open BankingEncouragé par la DSP2, l’Open Banking est une pratique financière permettant aux banques de partager de manière sécurisée les données financières de leurs clients avec des tiers autorisés, tels que des fintechs, à travers des API (interfaces de programmation applicative). Ce système bancaire ouvert vise à stimuler l’innovation et la concurrence dans le secteur financier, en permettant le développement de nouvelles applications et services qui peuvent offrir des expériences client améliorées, une gestion financière plus efficace et des offres personnalisées.Exemple : Initiation de paiementImpayé carte (ou chargeback / contestation / litige)Processus par lequel un titulaire de carte signale une transaction suspecte ou non autorisée à l’émetteur, en vue d’un remboursement ou d’une rétrofacturation. Les motifs de contestation peuvent inclure des transactions frauduleuses, des erreurs de facturation, des biens ou des services non reçus ou d’autres problèmes liés à l’utilisation de la carte.Rejet de prélèvement SEPAUn rejet de prélèvement se produit lorsqu’une demande de prélèvement est refusée par la banque du débiteur. Les raisons d’un rejet peuvent inclure des fonds insuffisants sur le compte du débiteur, des informations bancaires incorrectes, un mandat de prélèvement expiré ou non valide, ou une opposition au prélèvement de la part du débiteur.Lorsqu’un prélèvement est rejeté, les fonds ne sont pas transférés, et le créancier est informé du rejet pour qu’il puisse prendre les mesures appropriées.RIB (Relevé d’Identité Bancaire)Document fourni par une banque qui contient les informations nécessaires à l’identification d’un compte bancaire, afin de faciliter les opérations de virement ou de prélèvement. Le RIB inclut le numéro de compte, le code banque, le code guichet, l’IBAN (International Bank Account Number) ainsi que le BIC (Bank Identifier Code) de la banque.EEE (Espace Économique Européen)Zone économique composée des 27 pays membres de l’Union Européenne (UE) ainsi que de la Norvège, l’Islande et le Liechtenstein. L’EEE permet aux États membres de participer au marché unique de l’UE, offrant la libre circulation des biens, des services, des capitaux et des personnes.
Évolution de la plateforme Les API de CentralPay reposent sur une architecture en micro services apportant un maximum de flexibilité. Notre approche modulaire permet de faire constamment évoluer nos solutions afin d’apporter toujours plus de services et de fonctionnalités. Ces évolutions sont réalisées après des analyses d’impact poussées afin de ne pas provoquer de changement dans les intégrations de nos utilisateurs. Dans de très rares cas, celles-ci peuvent appeler des modifications mineures ou plus importantes lorsque des changements de régulations surviennent, comme ce fut le cas pour l’évolution vers la version 2.0 du 3DS par exemple. En cas d’évolution de la plateforme ou de modifications des attentes concernant la consommation de ses APIs, CentralPay s’engage à vous prévenir dans un délai correspondant à l’ampleur des actions à mener : Modifications mineures nécessitant aucune action du marchand ou partenaire :Remise d’information simple Modifications mineures avec action nécessaire par le marchand ou partenaire :2 mois minimum de délai de prévenance + accompagnement à la réalisation Modifications majeures avec action nécessaire par le marchand ou partenaire :6 mois minimum de délai de prévenance + accompagnement à la réalisation À noter que les modifications nécessitant une action de nos marchands ou partenaires sont qualifiées d’exceptionnelles à inexistantes et que toutes les précautions sont prises pour éviter tout impact sur leur activité.
Comptes de paiement Les comptes de paiement sont utilisés pour réaliser des opérations de paiement (collecte de paiements en devises ISO, reversement des fonds vers un compte bancaire…). Ils permettent de stocker des fonds dans une devise ISO (EUR, USD, CHF, GBP…) et possèdent un IBAN/BIC qui lui est propre. Un compte de paiement est, sauf exception, associé à un compte bancaire ayant le même titulaire, permettant à CentralPay de réaliser des reversements automatiques par virement SEPA. Si vous disposez de plusieurs comptes bancaires sur lesquels vos fonds doivent être reversés, vous pouvez demander à votre contact CentralPay de créer le même nombre de comptes de paiement dans votre compte CentralPay. Ainsi, chaque compte de paiement sera lié à un compte bancaire différent et adressera des reversements SEPA en conséquence. Il est également possible de créer plusieurs comptes de paiement à des fins de segmentation des fonds (avec un compte dédié aux opérations de commission ou de frais par exemple). Vous pouvez consulter le détail de vos comptes de paiements depuis ces accès : Portail Utilisateur de RCT – Comptes de paiement Portail Utilisateur de PROD – Comptes de paiement 1. Utilisation Les comptes de paiement sont systématiquement utilisés pour les opérations de paiement de notre plateforme, à l’exception des opérations de monnaie électronique. 2. Création de comptes de paiement Si vous êtes marchand CentralPay, vous pouvez adresser une demande par email aux équipes CentralPay pour la création de plusieurs comptes de paiement à votre nom. Cela afin de segmenter vos opérations ou d’ouvrir un compte dans une devise différente. Si vous êtes Partenaire MOBSP ou AGENT de CentralPay, vous pouvez créer des comptes pour vos sous-marchands en utilisant le service de création de comptes de paiement.
SDD return codes Return CodeDescriptionAB05Timeout Creditor AgentAB06Timeout Instructed AgentAB07Offline AgentAB08Offline Creditor AgentAB09Error Creditor AgentAB10Error Instructed AgentAC01Incorrect Account NumberAC03Invalid Creditor Account NumberAC04Account ClosedAC06Account blocked, reason not specifiedAC13Wrong Debtor accountAG01Forbidden on this type of accountAG02Operation/Transaction code incorrect, invalid file formatAG09Payment Not ReceivedAG10Agent SuspendedAG11Creditor Agent SuspendedAGNTIncorrect AgentAM02Not Allowed AmountAM04Insufficient FundsAM05Duplicate paymentAM09Wrong AmountAM23Amount Exceeds Settlement LimitARDTAlready a returned transactionBE04Account address invalidBE05Creditor Identifier incorrectCUSTCustomer decisionCURRIncorrect CurrencyCUTACancellation Upon Unable to ApplyCNORCreditor Bank is not RegisteredDNORDebtor Bank is not RegisteredDUPLDuplicate PaymentED05Settlement FailedERINERI Option Not SupportedFF01Invalid File FormatFOCRPositive answer to the recall or RfROFRADFraudulent originated credit transferLEGLLegal DecisionMD01No valid mandateMD02Mandate data missing or invalidMD06Refund Request By End CustomerMD07Beneficiary DeceasedMS02By order of the beneficiaryMS03Reason not specifiedNOASNo Answer From CustomerNOORNo Original Transaction ReceivedRC01Invalid BICRC07Invalid Creditor BIC IdentifierRR01Missing Debtor Account Or IdentificationRR02Missing Debtors Name Or AddressRR03Missing Creditors Name Or AddressRR04Regulatory ReasonSL01Specific service offered by debtor BankTECHTechnical problems resulting in erroneous SCT’sTM01Invalid Cut Off TimeUPAYUndue Payment
Liens de paiement Articles Informations générales Demandes de paiement Page de paiement (SmartForm) Retours, statuts et hooks Informations générales 1. Les deux modes d’intégration de Smart Collection La solution Smart Collection permet d’encaisser des paiements depuis divers moyens de paiement. Vous pouvez au choix : Créer et intégrer vos propres parcours de paiement (intégration CUSTOM), en consommant les services API de chaque moyen de paiement : Transaction par carte ➝ Transaction par virement ➝ Transaction par prélèvement SEPA ➝ Utiliser nos parcours de demande de paiement sécurisés (intégration SMART), grâce à notre service dédié : Demandes de paiement (PaymentRequest) ➝ Le paramètre EscrowDate peut influer sur la date de disponibilité des fonds d’une transaction (concerne uniquement les partenaires AGENT) ℹ️ Si vous choisissez l'intégration SMART, certaines fonctionnalités spécifiques comme les R-transactions, la gestion des libellés bancaires, la gestion des IBAN Virtuels… sont présentées dans la documentation dans les rubriques CUSTOM dédiées à chaque moyen de paiement. 2. À propos de l’intégration SMART La demande de paiement permet de générer un lien de paiement menant à une page de paiement hébergée par CentralPay. Votre client peut ainsi vous régler selon les conditions de règlement que vous avez déterminé (moyens et modes de paiement autorisés, délais de règlement…). Les transactions ainsi créées sont automatiquement liées à la demande de paiement et permettent d’actualiser son statut (non payé, partiellement payé, payé…). La demande de paiement doit être alimenté des conditions de règlement de votre panier ou de votre facture : Montant à régler Moyens de paiement acceptés (carte, virement, prélèvement, initiation de paiement) Modes de paiement acceptés (unitaire, par abonnement, paiement fractionné…) Référence de commande Description de commande Coordonnés clients Délais de règlement autorisé Délais d’expiration du lien … Le lien de paiement peut être adressé à vos clients depuis : Vos tunnels de vente ou interfaces web, Vos outils de communications (email, sms, courriers via QR code…) Le service de notifications email / sms de CentralPay La page de paiement permet ensuite au client de réaliser sa ou ses transactions : Visualisation des informations de la demande de paiement Sélection du moyen ou mode de paiement Renseignement des données clients Renseignement des coordonnées de paiement Demandes de paiement La demande de paiement (ou PaymentRequest) est le service vous permettant de générer des liens de paiement. Vous pouvez créer des demandes de paiement par API ou via le Portail utilisateur. La demande de paiement peut également être couplé au service de notification de CentralPay, vous permettant d’adresser facilement un lien de paiement par email ou sms à vos clients et de programmer des relances automatisées. 1. Création par API 1.1. Créer une PaymentRequest Vous trouverez ci-dessous les moyens de paiement disponibles et les valeurs API correspondantes dans le service PaymentRequest : Moyen ou mode de paiement souhaitéValeurs API à renseignerPaiements unitairesTransaction par cartepaymentMethod[]=TRANSACTIONPré-autorisation sur carte (réservé aux activités de locations)paymentMethod[]=TRANSACTION transaction[source]=DPVérification carte (transaction à 0 €)paymentMethod[]=TRANSACTION transaction[source]=RITransaction par virement bancairepaymentMethod[]=SCT_TRANSACTIONTransaction par prélèvement SEPApaymentMethod[]=SDDsdd[remittanceInformation]Transaction par initiation de paiementProchainementPaiements récurrentsAbonnement par cartepaymentMethod[]=SUBSCRIPTION subscriptionModel[subscriptionModelId]Abonnement par prélèvement SEPApaymentMethod[]=SUBSCRIPTIONsubscription[source]=SDDsubscriptionModel[subscriptionModelId]Paiement fractionné par cartepaymentMethod[]=INSTALLMENTintallment[intervalUnit]installment[intervalCount]installment [iterationCount]Paiement fractionné par prélèvement SEPApaymentMethod[]=INSTALLMENTinstallment[source]=SDDintallment[intervalUnit]installment[intervalCount]installment [iterationCount] Si vous souhaitez autoriser plusieurs moyens ou modes de paiement dans votre PaymentRequest, vous devez renseigner plusieurs fois l’objet paymentMethod. Exemple : paymentMethod[]=TRANSACTION paymentMethod[]=SCT_TRANSACTION Attention, certaines combinaisons de moyens ou modes de paiement peuvent rentrer en conflits et votre PaymentRequest pourra retourner une erreur. Par exemple, vous ne pouvez pas autoriser une TRANSACTION et une SUBSCRIPTION, cependant vous pouvez autoriser une TRANSACTION et un INSTALLMENT. Voici les informations principales concernant d’autres valeurs à renseigner lors de la création d’une PaymentRequest : DésignationDéfinitionamountMontant de la demande de paiement en centimesmerchantPaymentRequestIdRéférence personnalisée (votre numéro de commande ou facture par exemple) que vous pourrez utiliser pour rapprocher le paiement. Cette valeur sera visible par votre client dans la page de paiement.descriptionDescription personnalisée (nom du produit ou du service vendu). Cette valeur sera visible par votre client dans la page de paiement.additionalData[*]Donnée clé-valeur libre, vous permettant de transiter une ou plusieurs données (références de factures, numéro client etc…). N’est pas visible par votre client dans la page de paiement.createCustomerCréation TRUE / FALSE d’un compte Customer (permet notamment l’enregistrement du moyen de paiement client : carte, mandat SEPA, et création d’un IBAN virtuel dédié au Customer)breakdown[customerId]Sélection d’un Customer déjà existant ℹ️ Pour les transactions par virement SEPA, vous pouvez définir si vous souhaitez afficher l'IBAN Virtuel dédié au Customer ou générer un IBAN Virtuel à usage unique (SCT) depuis les paramètres de vos Points de Vente. 1.2. Envoyer une PaymentRequest par email / sms Lors de sa création, vous pouvez demander à CentralPay d’adresser la demande de paiement à votre client. Il existe deux méthodes d’envoi : Via le mailer par défaut des PaymentRequest : CentralPay adresse la demande de paiement depuis un modèle d’email/sms standardisé et depuis l’email expéditeur renseigné dans votre point de vente (ou à défaut l’email expéditeur de CentralPay « no-reply@centralpay.eu »). Pour cela vous devez [prochainement] Via le service de notification email/sms de CentralPay : CentralPay adresse la demande de paiement selon le scénario et les modèles de communication que vous avez paramétrés. Ce service permet notamment l’automatisation de relances clients, basés sur les paramètres de la demande de paiement (délais de paiement, avancement du paiement…). Pour cela vous devez [prochainement] 1.3. Fonctions spécifiques Envoyer une demande de paiement à montant libre (multi-moyens de paiements) Il est possible d’autoriser la modification du montant à régler (avec pour maximum le montant initial), afin que vos payeurs puissent régler la somme due depuis plusieurs moyens de paiements ou à des moments différents. Exemple : Cas d'une demande de paiement de 500€ :• Réglement de 250€ en virement, puis 250€ en carte• Ou 300€ avec une première carte, puis 200€ avec une autre• Ou réglemenet de 350€ avec une carte, puis revenir plus tard pour régler les 150€ restants avec cette même carte Pour ce faire, vous devez [prochainement] Envoyer une demande de paiement à plusieurs destinataires Il est possible d’adresser une demande de paiement à plusieurs destinataires avec un montant différent à régler pour chacun d’entre eux. Ainsi : Chaque participant reçoit une notification e-mail ou SMS détaillant l’objet du service à régler Les montants sont fixés par l’initiateur ou laissé libre à chaque participant qui règle le montant souhaité Les dates paramétrées à la demande (création, expiration…) permettent de générer des notifications vers chaque participant Pour ce faire vous devez [prochainement] 2. Création depuis le Portail Utilisateur 2.1. Création et types de demandes de paiement Vous pouvez créer une demande de paiement depuis le Portail utilisateur Demandes de paiement Liens de paiement Créer . Les demandes de paiement créées depuis le Portail utilisateur sont obligatoirement adressées à vos clients par CentralPay. En fonction de vos besoins, vous devrez choisir l’un des types de demandes suivant : Demande instantanée : Une demande simple, envoyée depuis les expéditeurs et les templates emails / sms standards de CentralPay Demande programmée : Une demande avancée, utilisant les modèles de communication, scénarios et règles d’envoi/de relance que vous aurez préalablement paramétrés depuis le service de notifications email/sms de CentralPay. Une demande programmée adressée sans avoir sélectionné de scénario de notification sera automatiquement requalifiée en demande instantanée Une fois créée, vous pouvez accéder à la page de paiement en cliquant sur le détail de la demande de paiement Formulaire de paiement . Ainsi, vous pourrez retransmettre à votre client l’URL de la page en cas d’erreur d’envoi. Accès : Portail Utilisateur de RCT – Demandes de paiement Portail Utilisateur de PROD – Demandes de paiement 2.2. Les profils de demandes de paiement Afin de faciliter la création de demandes de paiement, vous avez la possibilité de créer des profils prédéfinis intégrant les principaux paramétrages de la demande : Point de vente Devise Langue Moyens de paiement autorisés Limite de paiement (délais de paiement contractuel) Expiration du lien (délais avant expiration du lien) Scénarios de notification Reroutage de l’email de confirmation de paiement Règles d’affichage (paramètres de la page de paiement) Création de Customer Pièces jointes Vous pouvez ensuite utiliser ce profil lors de la création de vos demandes de paiement programmées via le Portail Utilisateur, ou via import de fichiers plats. 2.3. Création de demandes de paiements par import de fichiers plats Depuis le Portail utilisateur Demandes de paiement Liens de paiement Importer , vous pouvez déposer un fichier d’importation de demandes de paiement. Cette utilisation peut être recommandée pour les entreprises souhaitant adresser en fin de mois et relancer automatiquement une liste de créanciers. Téléchargez le modèle au format CSV➝ Téléchargez le modèle au format JSON ➝ Quelques informations importantes : DésginationDéfinitionprofil_uuid*UUID du profil de demande de paiementmerchant_payment_request_idRéférence personnalisée (votre numéro de commande ou facture par exemple) que vous pourrez utiliser pour rapprocher le paiement. Cette valeur sera visible par le payeur dans la page de paiement.descriptionDescription personnalisée (nom du produit ou du service vendu). Cette valeur sera visible par votre client dans la page de paiement.total_amount*Montant de la demande de paiement. À renseigner en doubles décimales avec un séparateur « . » (ex : 500.00 pour 500€).last_nameNom de famillefirst_namePrénomemail*Email du destinatairephoneTéléphone du destinataire au format international (ex : 33612345678). create_customerCréation d’un profil client « Customer » : renseigner « O » pour OUI ou « N » pour NONlink_expiration_dateDate d’expiration de la demande de paiement (date à laquelle le client ne pourra plus vous régler)deadlineDate limite de paiement (date à laquelle votre client doit vous avoir réglé, et à partir de laquelle il est en retard de paiement).receipt_emailEmail sur lequel vous souhaitez rerouter l’email de confirmation de paiementlanguage*Langue de la communication et de la page de paiement (FRE pour français, ENG pour anglais…)Les champs avec un * sont obligatoires. Page de paiement (SmartForm) La page de paiement (aussi appelée SmartForm) est une page hébergée et sécurisée par CentralPay destinée à la collecte des données clients et de leurs coordonnées de paiement. Générée via le service de demande de paiement, elle permet à vos clients de visualiser les détails de cette demande (montant, référence de commande…) et de sélectionner un moyen de paiement autorisé avant de passer à l’étape de règlement. 1. Paramétrage de la page Vous pouvez créer un ou plusieurs modèles de page afin de personnaliser votre parcours de paiement. Ci-dessous la liste des éléments paramétrables sur la page : DésignationDéfinitionNomNom du modèle de pageTemplate par défautCoche permettant de définir si ce modèle doit s’appliquer par défaut (les demandes de paiement créées sans modèle utiliseront ce dernier)Forcer la création du CustomerCoche permettant de forcer systématiquement la création d’un Customer à la création de la demande de paiement. Le paramètre de création du Customer renseigné sur les demandes de paiements sera ignoré. Note : CentralPay ne créera pas de nouveau Customer si son email ou son numéro de téléphone sont déjà utilisés par un autre Customer, et affectera la demande à ce dernier.URL de redirectionURL de redirection après paiement. URL fixe, vous pouvez cependant choisir d’alimenter dynamiquement cette valeur par API pour chaque PaymentRequest si tel est votre besoin.Délais de redirectionDélais de redirection vers l’URL de redirection après paiement. Champ vide : pas de redirection, 0 : redirection immédiate, autre valeur : nombre de secondes avant la redirectionURL d’annulationURL de redirection en cas d’annulation avant paiement. URL fixe, vous pouvez cependant choisir d’alimenter dynamiquement cette valeur par API pour chaque PaymentRequest si tel est votre besoin.Couleur du texteCouleur du texte de la page de paiementCouleur des boutonsCouleur des boutons de la page de paiementChamps supplémentairesChamps supplémentaires qu’il est possible d’ajouter aux parcours de paiement par carte (CB) ou par virement. Utilisé pour collecter des données clients complémentaires si nécessaire (adresse, nom, prénom…). Accès : Portail Utilisateur de RCT – Paramétrage formulaire Portail Utilisateur de PROD – Paramétrage formulaire 2. Personnalisation du logo affiché sur le SmartForm Le logo affiché sur le SmartForm est celui que vous aurez renseigné dans les paramètres du point de vente utilisé pour votre demande de paiement. Par défaut, le logo de CentralPay est affiché. Retours, statuts et hooks 1. Statuts liés aux demandes de paiement Consultez les Statuts Payment Request ➝ 2. Webhooks liés aux demandes de paiement Les demandes de paiement permettant indirectement la création de transactions cartes, SCT et SDD mais aussi d’autres objets comme les Customer, Subscription ou Installment, selon les cas d’usages, il peut être utile de suivre les webhooks associés. Consultez les Webhooks PaymentRequest ➝ Consultez les Webhooks Transaction ➝ Consultez les Webhooks SCT Transaction ➝ Consultez les Webhooks SDD Transaction ➝ Consultez les Webhooks Customer ➝ Consultez les Webhooks Subscription ➝ Consultez les Webhooks Installment ➝
Card token See more about Card Token The Json « CardToken » object The « CardToken » object represents a debit/credit card token. Merchants usually want to be able to charge payment cards, IBAN or other without having to store sensitive data on their servers.Token.js makes this easy in the browser, but you can use the same technique in other environments with our token API. Tokens can be created with your publishable API key, which can safely be embedded in downloadable applications like iPhone and Android apps. You can then use a token anywhere in our API when a credit/debit card, bank account or any personal ID number is accepted. You need to add a header "Origin" with an URL previously added in your Back Office as an Authorized Custom form Host.For your tests, you can use the origin : https://example.centralpay.net.
Disputes See more about Disputes A dispute is opened when a customer questions a transaction with their bank or credit/debit card provider. When the transaction is tagged as a dispute, you can respond to the dispute with evidence that shows the charge is legitimate. If the transaction cannot be proven legitimate, the dispute will become a chargeback.
Country codes List of country codes: 004AfghanistanAlpha2 code: AFAlpha3 code: AFG008AlbaniaAlpha2 code: ALAlpha3 code: ALB010AntarcticaAlpha2 code: AQAlpha3 code: ATA012AlgeriaAlpha2 code: DZAlpha3 code: DZA016American SamoaAlpha2 code: ASAlpha3 code: ASM020AndorraAlpha2 code: ADAlpha3 code: AND024AngolaAlpha2 code: AOAlpha3 code: AGO028Antigua and BarbudaAlpha2 code: AGAlpha3 code: ATG031AzerbaijanAlpha2 code: AZAlpha3 code: AZE032ArgentinaAlpha2 code: ARAlpha3 code: ARG036AustraliaAlpha2 code: AUAlpha3 code: AUS040AustriaAlpha2 code: ATAlpha3 code: AUT044Bahamas (the)Alpha2 code: BSAlpha3 code: BHS048BahrainAlpha2 code: BHAlpha3 code: BHR050BangladeshAlpha2 code: BDAlpha3 code: BGD051ArmeniaAlpha2 code: AMAlpha3 code: ARM052BarbadosAlpha2 code: BBAlpha3 code: BRB056BelgiumAlpha2 code: BEAlpha3 code: BEL060BermudaAlpha2 code: BMAlpha3 code: BMU064BhutanAlpha2 code: BTAlpha3 code: BTN068Bolivia, Plurinational State ofAlpha2 code: BOAlpha3 code: BOL070Bosnia and HerzegovinaAlpha2 code: BAAlpha3 code: BIH072BotswanaAlpha2 code: BWAlpha3 code: BWA074Bouvet IslandAlpha2 code: BVAlpha3 code: BVT076BrazilAlpha2 code: BRAlpha3 code: BRA084BelizeAlpha2 code: BZAlpha3 code: BLZ086British Indian Ocean Territory (the)Alpha2 code: IOAlpha3 code: IOT090Solomon Islands (the)Alpha2 code: SBAlpha3 code: SLB092Virgin Islands (British)Alpha2 code: VGAlpha3 code: VGB096Brunei DarussalamAlpha2 code: BNAlpha3 code: BRN100BulgariaAlpha2 code: BGAlpha3 code: BGR104MyanmarAlpha2 code: MMAlpha3 code: MMR108BurundiAlpha2 code: BIAlpha3 code: BDI112BelarusAlpha2 code: BYAlpha3 code: BLR116CambodiaAlpha2 code: KHAlpha3 code: KHM120CameroonAlpha2 code: CMAlpha3 code: CMR124CanadaAlpha2 code: CAAlpha3 code: CAN132Cape VerdeAlpha2 code: CVAlpha3 code: CPV136Cayman Islands (the)Alpha2 code: KYAlpha3 code: CYM140Central African Republic (the)Alpha2 code: CFAlpha3 code: CAF144Sri LankaAlpha2 code: LKAlpha3 code: LKA148ChadAlpha2 code: TDAlpha3 code: TCD152ChileAlpha2 code: CLAlpha3 code: CHL156ChinaAlpha2 code: CNAlpha3 code: CHN158Taiwan (Province of China)Alpha2 code: TWAlpha3 code: TWN162Christmas IslandAlpha2 code: CXAlpha3 code: CXR166Cocos (Keeling) Islands (the)Alpha2 code: CCAlpha3 code: CCK170ColombiaAlpha2 code: COAlpha3 code: COL174ComorosAlpha2 code: KMAlpha3 code: COM175MayotteAlpha2 code: YTAlpha3 code: MYT178CongoAlpha2 code: CGAlpha3 code: COG180Congo (the Democratic Republic of the)Alpha2 code: CDAlpha3 code: COD184Cook Islands (the)Alpha2 code: CKAlpha3 code: COK188Costa RicaAlpha2 code: CRAlpha3 code: CRI191CroatiaAlpha2 code: HRAlpha3 code: HRV192CubaAlpha2 code: CUAlpha3 code: CUB196CyprusAlpha2 code: CYAlpha3 code: CYP203Czech Republic (the)Alpha2 code: CZAlpha3 code: CZE204BeninAlpha2 code: BJAlpha3 code: BEN208DenmarkAlpha2 code: DKAlpha3 code: DNK212DominicaAlpha2 code: DMAlpha3 code: DMA214Dominican Republic (the)Alpha2 code: DOAlpha3 code: DOM218EcuadorAlpha2 code: ECAlpha3 code: ECU222El SalvadorAlpha2 code: SVAlpha3 code: SLV226Equatorial GuineaAlpha2 code: GQAlpha3 code: GNQ231EthiopiaAlpha2 code: ETAlpha3 code: ETH232EritreaAlpha2 code: ERAlpha3 code: ERI233EstoniaAlpha2 code: EEAlpha3 code: EST234Faroe Islands (the)Alpha2 code: FOAlpha3 code: FRO238Falkland Islands (the) [Malvinas]Alpha2 code: FKAlpha3 code: FLK239South Georgia and the South Sandwich IslandsAlpha2 code: GSAlpha3 code: SGS242FijiAlpha2 code: FJAlpha3 code: FJI246FinlandAlpha2 code: FIAlpha3 code: FIN248Ã…land IslandsAlpha2 code: AXAlpha3 code: ALA250FranceAlpha2 code: FRAlpha3 code: FRA254French GuianaAlpha2 code: GFAlpha3 code: GUF258French PolynesiaAlpha2 code: PFAlpha3 code: PYF260French Southern Territories (the)Alpha2 code: TFAlpha3 code: ATF262DjiboutiAlpha2 code: DJAlpha3 code: DJI266GabonAlpha2 code: GAAlpha3 code: GAB268GeorgiaAlpha2 code: GEAlpha3 code: GEO270Gambia (The)Alpha2 code: GMAlpha3 code: GMB275Palestine, State ofAlpha2 code: PSAlpha3 code: PSE276GermanyAlpha2 code: DEAlpha3 code: DEU288GhanaAlpha2 code: GHAlpha3 code: GHA292GibraltarAlpha2 code: GIAlpha3 code: GIB296KiribatiAlpha2 code: KIAlpha3 code: KIR300GreeceAlpha2 code: GRAlpha3 code: GRC304GreenlandAlpha2 code: GLAlpha3 code: GRL308GrenadaAlpha2 code: GDAlpha3 code: GRD312GuadeloupeAlpha2 code: GPAlpha3 code: GLP316GuamAlpha2 code: GUAlpha3 code: GUM320GuatemalaAlpha2 code: GTAlpha3 code: GTM324GuineaAlpha2 code: GNAlpha3 code: GIN328GuyanaAlpha2 code: GYAlpha3 code: GUY332HaitiAlpha2 code: HTAlpha3 code: HTI334Heard Island and McDonald IslandsAlpha2 code: HMAlpha3 code: HMD336Holy See (the) [Vatican City State]Alpha2 code: VAAlpha3 code: VAT340HondurasAlpha2 code: HNAlpha3 code: HND344Hong KongAlpha2 code: HKAlpha3 code: HKG348HungaryAlpha2 code: HUAlpha3 code: HUN352IcelandAlpha2 code: ISAlpha3 code: ISL356IndiaAlpha2 code: INAlpha3 code: IND360IndonesiaAlpha2 code: IDAlpha3 code: IDN364Iran (the Islamic Republic of)Alpha2 code: IRAlpha3 code: IRN368IraqAlpha2 code: IQAlpha3 code: IRQ372IrelandAlpha2 code: IEAlpha3 code: IRL376IsraelAlpha2 code: ILAlpha3 code: ISR380ItalyAlpha2 code: ITAlpha3 code: ITA384Ivory coastAlpha2 code: CIAlpha3 code: CIV388JamaicaAlpha2 code: JMAlpha3 code: JAM392JapanAlpha2 code: JPAlpha3 code: JPN398KazakhstanAlpha2 code: KZAlpha3 code: KAZ400JordanAlpha2 code: JOAlpha3 code: JOR404KenyaAlpha2 code: KEAlpha3 code: KEN408Korea (the Democratic People’s Republic of)Alpha2 code: KPAlpha3 code: PRK410Korea (the Republic of)Alpha2 code: KRAlpha3 code: KOR414KuwaitAlpha2 code: KWAlpha3 code: KWT417KyrgyzstanAlpha2 code: KGAlpha3 code: KGZ418Lao People’s Democratic Republic (the)Alpha2 code: LAAlpha3 code: LAO422LebanonAlpha2 code: LBAlpha3 code: LBN426LesothoAlpha2 code: LSAlpha3 code: LSO428LatviaAlpha2 code: LVAlpha3 code: LVA430LiberiaAlpha2 code: LRAlpha3 code: LBR434LibyaAlpha2 code: LYAlpha3 code: LBY438LiechtensteinAlpha2 code: LIAlpha3 code: LIE440LithuaniaAlpha2 code: LTAlpha3 code: LTU442LuxembourgAlpha2 code: LUAlpha3 code: LUX446MacaoAlpha2 code: MOAlpha3 code: MAC450MadagascarAlpha2 code: MGAlpha3 code: MDG454MalawiAlpha2 code: MWAlpha3 code: MWI458MalaysiaAlpha2 code: MYAlpha3 code: MYS462MaldivesAlpha2 code: MVAlpha3 code: MDV466MaliAlpha2 code: MLAlpha3 code: MLI470MaltaAlpha2 code: MTAlpha3 code: MLT474MartiniqueAlpha2 code: MQAlpha3 code: MTQ478MauritaniaAlpha2 code: MRAlpha3 code: MRT480MauritiusAlpha2 code: MUAlpha3 code: MUS484MexicoAlpha2 code: MXAlpha3 code: MEX492MonacoAlpha2 code: MCAlpha3 code: MCO496MongoliaAlpha2 code: MNAlpha3 code: MNG498Moldova (the Republic of)Alpha2 code: MDAlpha3 code: MDA499MontenegroAlpha2 code: MEAlpha3 code: MNE500MontserratAlpha2 code: MSAlpha3 code: MSR504MoroccoAlpha2 code: MAAlpha3 code: MAR508MozambiqueAlpha2 code: MZAlpha3 code: MOZ512OmanAlpha2 code: OMAlpha3 code: OMN516NamibiaAlpha2 code: NAAlpha3 code: NAM520NauruAlpha2 code: NRAlpha3 code: NRU524NepalAlpha2 code: NPAlpha3 code: NPL528Netherlands (the)Alpha2 code: NLAlpha3 code: NLD531CuracaoAlpha2 code: CWAlpha3 code: CUW533ArubaAlpha2 code: AWAlpha3 code: ABW534Sint Maarten (Dutch part)Alpha2 code: SXAlpha3 code: SXM535Bonaire, Sint Eustatius and SabaAlpha2 code: BQAlpha3 code: BES540New CaledoniaAlpha2 code: NCAlpha3 code: NCL548VanuatuAlpha2 code: VUAlpha3 code: VUT554New ZealandAlpha2 code: NZAlpha3 code: NZL558NicaraguaAlpha2 code: NIAlpha3 code: NIC562Niger (the)Alpha2 code: NEAlpha3 code: NER566NigeriaAlpha2 code: NGAlpha3 code: NGA570NiueAlpha2 code: NUAlpha3 code: NIU574Norfolk IslandAlpha2 code: NFAlpha3 code: NFK578NorwayAlpha2 code: NOAlpha3 code: NOR580Northern Mariana Islands (the)Alpha2 code: MPAlpha3 code: MNP581United States Minor Outlying Islands (the)Alpha2 code: UMAlpha3 code: UMI583Micronesia (the Federated States of)Alpha2 code: FMAlpha3 code: FSM584Marshall Islands (the)Alpha2 code: MHAlpha3 code: MHL585PalauAlpha2 code: PWAlpha3 code: PLW586PakistanAlpha2 code: PKAlpha3 code: PAK591PanamaAlpha2 code: PAAlpha3 code: PAN598Papua New GuineaAlpha2 code: PGAlpha3 code: PNG600ParaguayAlpha2 code: PYAlpha3 code: PRY604PeruAlpha2 code: PEAlpha3 code: PER608Philippines (the)Alpha2 code: PHAlpha3 code: PHL612PitcairnAlpha2 code: PNAlpha3 code: PCN616PolandAlpha2 code: PLAlpha3 code: POL620PortugalAlpha2 code: PTAlpha3 code: PRT624Guinea-BissauAlpha2 code: GWAlpha3 code: GNB626Timor-LesteAlpha2 code: TLAlpha3 code: TLS630Puerto RicoAlpha2 code: PRAlpha3 code: PRI634QatarAlpha2 code: QAAlpha3 code: QAT638RéunionAlpha2 code: REAlpha3 code: REU642RomaniaAlpha2 code: ROAlpha3 code: ROU643Russian Federation (the)Alpha2 code: RUAlpha3 code: RUS646RwandaAlpha2 code: RWAlpha3 code: RWA652Saint BarthélemyAlpha2 code: BLAlpha3 code: BLM654Saint Helena, Ascension and Tristan da CunhaAlpha2 code: SHAlpha3 code: SHN659Saint Kitts and NevisAlpha2 code: KNAlpha3 code: KNA660AnguillaAlpha2 code: AIAlpha3 code: AIA662Saint LuciaAlpha2 code: LCAlpha3 code: LCA663Saint Martin (French part)Alpha2 code: MFAlpha3 code: MAF666Saint Pierre and MiquelonAlpha2 code: PMAlpha3 code: SPM670Saint Vincent and the GrenadinesAlpha2 code: VCAlpha3 code: VCT674San MarinoAlpha2 code: SMAlpha3 code: SMR678Sao Tome and PrincipeAlpha2 code: STAlpha3 code: STP682Saudi ArabiaAlpha2 code: SAAlpha3 code: SAU686SenegalAlpha2 code: SNAlpha3 code: SEN688SerbiaAlpha2 code: RSAlpha3 code: SRB690SeychellesAlpha2 code: SCAlpha3 code: SYC694Sierra LeoneAlpha2 code: SLAlpha3 code: SLE702SingaporeAlpha2 code: SGAlpha3 code: SGP703SlovakiaAlpha2 code: SKAlpha3 code: SVK704Viet NamAlpha2 code: VNAlpha3 code: VNM705SloveniaAlpha2 code: SIAlpha3 code: SVN706SomaliaAlpha2 code: SOAlpha3 code: SOM710South AfricaAlpha2 code: ZAAlpha3 code: ZAF716ZimbabweAlpha2 code: ZWAlpha3 code: ZWE724SpainAlpha2 code: ESAlpha3 code: ESP728South SudanAlpha2 code: SSAlpha3 code: SSD729Sudan (the)Alpha2 code: SDAlpha3 code: SDN732Western SaharaAlpha2 code: EHAlpha3 code: ESH740SurinameAlpha2 code: SRAlpha3 code: SUR744Svalbard and Jan MayenAlpha2 code: SJAlpha3 code: SJM748SwazilandAlpha2 code: SZAlpha3 code: SWZ752SwedenAlpha2 code: SEAlpha3 code: SWE756SwitzerlandAlpha2 code: CHAlpha3 code: CHE760Syrian Arab Republic (the)Alpha2 code: SYAlpha3 code: SYR762TajikistanAlpha2 code: TJAlpha3 code: TJK764ThailandAlpha2 code: THAlpha3 code: THA768TogoAlpha2 code: TGAlpha3 code: TGO772TokelauAlpha2 code: TKAlpha3 code: TKL776TongaAlpha2 code: TOAlpha3 code: TON780Trinidad and TobagoAlpha2 code: TTAlpha3 code: TTO784United Arab Emirates (the)Alpha2 code: AEAlpha3 code: ARE788TunisiaAlpha2 code: TNAlpha3 code: TUN792TurkeyAlpha2 code: TRAlpha3 code: TUR795TurkmenistanAlpha2 code: TMAlpha3 code: TKM796Turks and Caicos Islands (the)Alpha2 code: TCAlpha3 code: TCA798TuvaluAlpha2 code: TVAlpha3 code: TUV800UgandaAlpha2 code: UGAlpha3 code: UGA804UkraineAlpha2 code: UAAlpha3 code: UKR807Macedonia (the former Yugoslav Republic of)Alpha2 code: MKAlpha3 code: MKD818EgyptAlpha2 code: EGAlpha3 code: EGY826United Kingdom (the)Alpha2 code: GBAlpha3 code: GBR831GuernseyAlpha2 code: GGAlpha3 code: GGY832JerseyAlpha2 code: JEAlpha3 code: JEY833Isle of ManAlpha2 code: IMAlpha3 code: IMN834Tanzania, United Republic ofAlpha2 code: TZAlpha3 code: TZA840United States (the)Alpha2 code: USAlpha3 code: USA850Virgin Islands (U.S.)Alpha2 code: VIAlpha3 code: VIR854Burkina FasoAlpha2 code: BFAlpha3 code: BFA858UruguayAlpha2 code: UYAlpha3 code: URY860UzbekistanAlpha2 code: UZAlpha3 code: UZB862Venezuela, Bolivarian Republic ofAlpha2 code: VEAlpha3 code: VEN876Wallis and FutunaAlpha2 code: WFAlpha3 code: WLF882SamoaAlpha2 code: WSAlpha3 code: WSM887YemenAlpha2 code: YEAlpha3 code: YEM894Zambia Alpha2 code: ZMAlpha3 code: ZMB
API et interfaces Articles Utilisation des API CentralPay Portail Marchand Portail Débiteur Portail d'inscription Utilisation des API CentralPay L’API utilise un protocole HTTP pour transporter et renvoyer toutes les réponses formatées en JSON. Les API CentralPay sont des API REST permettant de faciliter l’intégration de nos services de paiement. CentralPay mets à disposition de ses utilisateurs deux API : L’API « Core Payment » : Pour toutes les fonctions liées aux opérations de paiement L’API « Onboarding » : Pour toutes les fonctions liées à la création de comptes de paiement et de monnaie électronique (accessibles aux partenaires uniquement) 1. Fonctions Toutes les fonctions utilisent les types « MIME » : « application/x-www-form-urlencoded » et « multipart/form-data ». Les fonctions utilisent les méthodes suivantes : Méthode HTTP POST pour la création ou la mise à jour d’un objet Méthode HTTP GET pour la recherche d’objets Méthode HTTP DELETE pour supprimer des objets 2. Authentification L’API de CentralPay utilise l’authentification de base HTTP pour l’authentification. Toutes les demandes adressées à notre API doivent être authentifiées (intégrant le nom d’utilisateur et le mot de passe fournis par la plateforme) et doivent être effectuées via HTTPS. Vous pouvez récupérer vos identifiants API depuis votre Portail utilisateur : Administration Mon compte Technique Cliquez ensuite sur Identifiant API Modifier Générer Copiez le mot de passe API Mettre à jour ℹ️ Certains services comme le cardToken requièrent la déclaration de votre MerchantPublicKey, également disponibles depuis les liens présentés ci-dessus. Accès : Compte Technique – Portail Utilisateur de RCT Compte Technique – Portail Utilisateur de PROD MerchantPublicKey La MerchantPublicKey permet de s’authentifier sur le service API cardToken qui ne nécessite pas d’autre type d’authentification et permet d’identifier un marchand.Cette clé est trouvable dans l’onglet Technique des détails de votre compte sur notre portail utilisateur : 3. HTTP Request Toujours utiliser HTTP-Header pour les formats de sérialisation (user_agent…) Le Content-Type (application/x-www-form-urlencoded ou multipart/form-data) doit être renseigné pour toutes les requêtes dans l’en-tête. L’utilisation du champ Idempotence-Key dans l’en-tête HTTP permet d’identifier la requête qui a été envoyée. Si la même valeur Idempotence-Key est envoyée à nouveau, la demande sera considérée comme déjà traitée et ne sera pas relancée. Ce contrôle permet au commerçant d’éviter d’envoyer des entrées en double. Cette clé doit être construite avec un hachage sha1 des paramètres de la demande (sans date) concaténés comme ceci : Idempotence-Key = sha1(card[number] + card[cvc] + card[expirationMonth] + card[expirationYear] + card[check] + merchantPublicKey) ℹ️ La clé "Idempotence-Key" est valable 24 heures. 4. HTTP Response Dans chaque réponse HTTP, le champ Request-Id est inscrit dans l’en-tête HTTP. ℹ️ Si vous avez une demande spécifique à envoyer via l'API REST de CentralPay, veuillez contacter le support ou votre référent CentralPay. Portail Marchand Le Portail utilisateur est une interface web connectée aux APIs de CentralPay. Il permet de consulter l’activité et d’administrer votre compte CentralPay. Les comptes ayant des droits « Partenaires » peuvent également consulter l’activité des comptes de leurs sous-marchands. Accès : Portail Utilisateur de recette (RCT) Portail Utilisateur de production (PROD) 1. Fonctionnalités Le Portail utilisateur permet notamment : De consulter les opérations comptables du compte De consulter les paiements par carte (« transaction ») De consulter les paiements par virement SEPA (« sctTransaction ») De consulter les paiements par prélèvement SEPA (« sddTransaction ») De créer et de consulter les demandes de paiement (« paymentRequest ») De créer et de paramétrer les profils clients (« customer ») De créer et de paramétrer les points de vente (« pointOfSale ») De paramétrer les notifications Smart Push (templates, scénarios …) D’initier et de gérer les paramètres de reversement (« payout ») De générer des exports et de télécharger les rapports financiers mensuels Pour les comptes « Partenaires » uniquement : De créer et de consulter les demandes d’onboarding (« merchant-enrollment ») De consulter les opérations et de paramétrer les comptes de leurs sous-marchands ℹ️ Les comptes ayant des droits "Participant" (sous-marchands/participants de partenaires) peuvent uniquement consulter les opérations dont ils sont bénéficiaires ("transfer") et gérer leurs paramètres de reversement ("payout"). 2. Les profils utilisateurs du Portail Ils représentent des personnes physiques pouvant accéder à un ou plusieurs comptes CentralPay ainsi qu’à tout ou partie des services du Portail utilisateur. 2.1. Gestion des profils utilisateurs « Legal » et « Natural » Lors de la création du compte CentralPay, le responsable ayant réalisé l’onboarding (dirigeant ou personne physique disposant d’une délégation de pouvoir) se voit attribuer un profil utilisateur dit « Legal ». Il dispose ainsi de tous les droits administrateur du compte, mais également de droits légaux permettant de paramétrer les éléments les plus sensibles du compte : Paramètres du compte de paiement : Changement d’IBAN de sortie (payout) Changement des conditions de reversements sur compte bancaire Mise à jour des documents de société Paramètres des utilisateurs : Création de nouveaux utilisateurs « Legal » Prochainement Une fois le compte créé, vous avez la possibilité de créer autant de profils utilisateurs que nécessaire en renseignant leur nom, leur prénom, leur email et leur rôle utilisateur (définissant les droits qu’ils auront sur le compte). Les profils ainsi créés sont nommés « Natural ». ℹ️ Si vous disposez de plusieurs comptes CentralPay et que vos équipes doivent avoir accès à ces différents comptes, créez leur profil utilisateur depuis l’un d’entre eux, puis demander à CentralPay d’affecter leur profil à vos autres comptes. Ils bénéficieront ainsi d’un unique centralisé pour tous ces comptes. Accès : Portail Utilisateur de RCT – Gestion des profils utilisateurs BO Portail Utilisateur de PROD – Gestion des profils utilisateurs BO 2.2. Gestion des rôles et droits des profils utilisateurs « Natural » Les droits des profils utilisateurs « Natural » sont régis par leur rôle utilisateur. Le rôle comprend une liste de droits (lecture seule, création, modification, suppression) paramétrables par service (transaction, demandes de paiement, règles d’acceptation…). Ces droits peuvent être différents en fonction des services sélectionnés. Les utilisateurs disposant des droits nécessaires peuvent créer des rôles pour chaque équipe de leur entreprise, cependant des rôles préétablis sont disponibles nativement : Standard Admin : Accès complet à toutes les fonctionnalités du Portail utilisateur (excepté les fonctionnalités admin). Attention, ce rôle comprend des accès à des services sensibles comme les règles d’acceptation, les whitelists, les blacklists, les créations d’utilisateurs Portail utilisateur, les créations de rôles utilisateurs du Portail, la création et la gestion d’utilisateurs API… Standard read only : Prochainement Prochainement Contactez le service client CentralPay si vous avez besoin d’aide pour la création de rôles personnalisés. Quelques précisions importantes concernant les rôles : Les rôles sont cumulables, un utilisateur peut ainsi se voir assigner plusieurs rôles Les droits des rôles sont héritables, ainsi un utilisateur ayant le droit de créer d’autres profils utilisateurs ne pourra affecter qu’un rôle similaire ou inférieur au sien Accès : Portail Utilisateur de RCT – Gestion des rôles utilisateurs BO Portail Utilisateur de PROD – Gestion des rôles utilisateurs BO 2.3. Gestion des catégories de point de vente Si vous avez le besoin de limiter l’accès d’utilisateurs à certains points de ventes, vous pouvez créer des catégories, les affecter à vos points de ventes puis les affecter à vos profils utilisateurs. Exemple : Un utilisateur ayant des droits de création de demandes de paiement ne pourra le faire que sur les points de ventes de sa catégorie. Il ne pourra également visualiser que les demandes de paiement émises via les points de vente de sa catégorie. Contactez le service client CentralPay si vous avez besoin d’aide pour la création de catégories de point de vente personnalisées. Accès : Portail Utilisateur de RCT – Gestion des catégories de point de vente Portail Utilisateur de PROD – Gestion des catégories de point de vente 3. Liste des types d’opérations visibles sur le Portail utilisateur Type d’objetValeurFonctionAUTHORIZATIONDébitAutorisation de blocage d’un montant d’une carte bancaireTRANSACTIONCréditTransaction carteTRANSACTION_CANCELDébitAnnulation de transaction carteREFUNDCréditRemboursement transaction carteREFUND_CANCELDébitAnnulation d’un remboursement transaction carteDISPUTEDébitImpayé suite à la contestation d’une transaction carteDISPUTE_WONCréditAnnulation d’un impayé carteTRANSFERDébitTransfert de fonds entre comptes CentralPayTRANSFER_CANCELCréditAnnulation transfert en attenteTRANSFER_REVERSALCréditRetour d’un transfert validéPAYOUTDébitVirement sortant du compte CentralPayPAYOUT_CANCELCréditAnnulation d’un virement sortantPAYOUT_REVERSALCréditRetour d’un virement sortant validéSCT_TRANSACTIONCréditVirement entrantSCT_TRANSACTION_CANCELDébitAnnulation virement entrant avant son arrivéeSCT_TRANSACTION_REFUNDDébitAnnulation virement entrant après son arrivée par le marchandSCT_TRANSACTION_REVERSALDébitAnnulation virement entrant après son arrivée par CentralPayCREDITDébitCrédit sur carte non lié à une transactionCREDIT_CANCELCréditAnnulation d’un crédit sur carteSDD_TRANSACTIONCréditPrélèvement SEPA d’un compte bancaire externeSDD_TRANSACTION_CANCELDébitAnnulation d’un prélèvement d’un compte externe avant son arrivéeSDD_TRANSACTION_REVERSALDébitRemboursement d’un prélèvement d’un compte externe après son arrivéeDEPOSITCréditChargement d’une somme sur un compte CentralPay Portail Débiteur Le portail client CentralPay est l’interface des profils clients (Customer). Il permet à vos clients de : Consulter leur historique de paiement, D’administrer leurs opérations en cours (mise à jour de leur moyen de paiement par défaut, résiliation d’abonnement…) Mais aussi d’interagir avec vous en cas de question concernant une opération (formulaire de contact). Ce portail est principalement utilisé pour l’administration des paiements récurrents par les clients. Les équipes conformité de CentralPay peuvent requérir que l’URL de ce portail soit intégrée dans le pied de page ou les conditions générales de votre site marchand. Pour s’y connecter, vos clients ont deux options : Soit via la page d’accueil du portail Client, en renseignant les informations d’un de leurs paiements opéré avec votre compte CentralPay : Portail Client de recette (RCT) Portail Client de production (PROD) Ou en direct via le lien communiqué dans les emails automatique de création d’abonnement / de paiement fractionné, ou en intégrant le CustomerID visible dans votre Portail Utilisateur : Compte Customer Détail CustomerId Portail Client de RCT : Prochainement Portail Client de PROD : Prochainement Portail d'inscription Le portail d’inscription de CentralPay permet la création d’un Compte CentralPay et d’un compte de paiement : de la création du profil utilisateur, jusqu’à la contractualisation, en passant par la collecte du KYC/KYB. Il interagit avec l’API Onboarding de CentralPay. Pour les comptes « Partenaires », il permet donc de créer des sous-marchands facilement depuis un portail hébergé par CentralPay, et d’ainsi éviter une intégration complète de l’API Onboarding. Pour adresser un lien d’onboarding à l’un de vos futurs sous-marchands, vous pouvez utiliser le service de création de compte de paiement. Accès : Portail d’Inscription de RCT Portail d’Inscription de PROD
Comptes de ME ℹ️ Uniquement réservé aux Partenaires DME et à leurs utilisateurs. Les comptes de ME (Monnaie Électronique) sont utilisés pour stocker et échanger des fonds dans une devise CUSTOM (devise dédiée à un partenaire DME). Un partenaire DME peut demander la création de comptes de ME pour les participants de son réseau puis réaliser des transferts de fonds en ME entre ces comptes. Le titulaire d’un compte de ME ne peut recevoir des paiements et utiliser sa monnaie électronique que par l’intermédiaire du partenaire DME. Il peut cependant demander le remboursement de sa monnaie électronique à tout moment et recevra ses fonds en devise ISO : soit sur son compte bancaire par virement SEPA, soit sur sa carte bancaire, selon les paramétrages de son compte. Vous pouvez consulter le détail de vos comptes de ME depuis ces accès : Portail Utilisateur de RCT – Comptes de monnaie électronique Portail Utilisateur de PROD – Comptes de monnaie électronique 1. Utilisation Les comptes de ME sont principalement utilisés pour permettre à des personnes physiques de recevoir et d’échanger facilement des fonds dans les contextes suivants : Marketplaces C2C de produits ou de services Stockage et utilisation de valeurs-cadeaux au sein d’un réseau de commerçants indépendants 2. Spécificités Le CMF (Code Monétaire et Financier) présente des conditions spécifiques pour la monnaie électronique. Ainsi, il existe deux types de comptes de ME chez CentralPay : Compte de ME anonyme : Ce compte peut être ouvert sans vérification d’identité du titulaire, à condition qu’il soit adressé à une personne physique et soit limité à 150 € de solde ou d’encaissement sur 30 jours. Ce type de compte est particulièrement utile dans le cadre d’une utilisation ponctuelle du compte par son titulaire, ou tout simplement pour simplifier l’entrée en relation avec le partenaire DME Compte de ME vérifié : Un compte anonyme peut être ensuite vérifié par les équipes conformité de CentralPay (procédure KYC) pour augmenter les limites qui lui étaient imposées, il devient ainsi « vérifié » 3. Création de comptes de ME Si vous êtes Partenaire DME de CentralPay, vous pouvez demander la création de comptes de ME pour vos participants.
Transaction par carte Articles Informations générales Formulaire de paiement CUSTOM Authentification 3DS 2.0 Transaction carte Transaction carte récurrente Transaction carte via wallet R-transaction carte Email de confirmation Libellé relevé bancaire Gestion des devises Gestion des cartes virtuelles (VCC) Retours, statuts et hooks Informations générales 1. Fonctionnement Une transaction carte comprend une succession d’actions : 1. Authentification 3DS 2.0 Elle permet de s’assurer que la personne réalisant la transaction est bien le titulaire de la carte. La banque du client analyse les nombreux facteurs liés au paiement adressés par CentralPay (adresse IP, localisation, appareil utilisé…) et les compare aux données habituelles de son client : Si les données ne concordent pas ou que le montant de la transaction est important, elle requière une identification manuelle via un code adressé par SMS ou via son application bancaire (« authentification forte » ou « SCA ») Sinon, elle autorise directement le paiement (« Frictionless ») 2. Autorisation bancaire Demande effectuée par CentralPay à la banque du payeur permettant de vérifier la validité et la provision de sa carte. Les fonds « autorisés » sont bloqués jusqu’à la réalisation de la capture des fonds. Si aucune capture n’est réalisée sous un délai de 7 jours, les fonds « autorisés » sont libérés et le marchand devra renouveler son autorisation. Pour les activités éligibles (location, hôtellerie…), le service de « pré-autorisation » donne la possibilité au marchand d’étendre le délai d’autorisation jusqu’à 30 jours. 3. Capture La capture permet d’initier le débit de la carte sur la base d’une autorisation ou d’une pré-autorisation. Un marchand peut réaliser une capture complète ou partielle du montant autorisé. 2. Types et réseaux de cartes acceptés Les cartes de paiement sont émises par les banques ou les établissements de paiement agréés, elles peuvent être badgées par un ou plusieurs réseaux de carte (aussi nommés « Card Scheme »). Les réseaux acceptés par CentralPay sont : Carte Bancaire VISA MasterCard American Express En France, la majorité des cartes émises sont co-badgées CB et VISA ou CB et Mastercard. Dans ce cas, le client doit avoir la possibilité de choisir le réseau qu’il souhaite utiliser. Les cartes peuvent être de débit ou de débit différé / crédit (en France la majorité des cartes sont de débit), et peuvent être des cartes de particulier (dit « Consumer ») ou des cartes de professionnels (dit « Corporate »). À noter que ces paramètres impactent le coût de la transaction pour le marchand (interchange bancaire et frais de réseaux carte). Formulaire de paiement CUSTOM Le service API Transaction permet d’effectuer une autorisation suivie d’une capture des fonds sur la carte bancaire de votre client. Tous les modes de paiement par carte (paiement simple, récurrents, MoTo, etc.) sont gérés via ce service. Lorsqu’un client souhaite effectuer un premier paiement, ses données de carte doivent être collectées pour générer un cardTokenId, grâce au service de tokenisation « token.js » de CentralPay. Ce token temporaire permet ensuite de créer une ressource Card, identifiée par un cardId, pouvant être enregistrée dans un objet Customer. Ce rattachement est indispensable pour permettre des paiements ultérieurs sans redemander la carte (paiement en 1 clic, récurrents, etc.). ℹ️ Avec un formulaire de paiement personnalisé (CUSTOM FORM), l'intégration de l'authentification 3DS 2.2 est obligatoire avant d'exécuter une transaction. Schéma du flux de paiement avec cardTokenId : ℹ️ Si vous disposez d'une certification PCI-DSS de niveau 1 et que vous gérez les données de carte, vous pouvez directement créer un objet /card en envoyant les données (PAN, date d'expiration, CVC) à l'API, sans passer par token.js. 1. Prérequis 1.1 Déclarer vos domaines Avant d’utiliser le token.js, vous devez déclarer les domaines hébergeant vos formulaires Custom dans votre Portail Utilisateur. Allez dans Administration Mon compte Technique Modifier , puis complétez le champ Hosts Custom Forms autorisés. Accès : Portail Utilisateur de RCT – Administration Portail Utilisateur de PROD – Administration 1.2 Sécuriser votre formulaire Assurez-vous que vos pages de paiement utilisent le protocole HTTPS avec TLS 1.2 ou supérieur. 2.3 Conformité PCI-DSS L’utilisation de token.js implique que vous gérez vous-même l’affichage du formulaire et le déclenchement du token. Cette méthode impose de respecter les exigences PCI DSS SAQ A-EP. Téléchargez le formulaire A-EP ➝ 2. Intégration du formulaire de paiement 2.1 Créer un formulaire de paiement HTML Contrairement au Smart Form hébergé par CentralPay, le Custom Form est créé par vos soins, via votre propre code HTML. Vous devez implémenter les champs suivants : Numéro de carte : 16 chiffres pour CB/Visa/Mastercard, 15 pour American Express Date d’expiration : format MM/AAAA CVC : 3 chiffres (CB/Visa/Mastercard), 4 chiffres (Amex) Vous pouvez consulter nos exemples de formulaires Custom Form : Consultez l’exemple de formulaire Custom Form sans 3DS 2.2 ➝ Consultez l’exemple de formulaire Custom Form avec 3DS 2.2 ➝ 2.2 Intégration du script token.js Ajoutez dans votre page le script token.js pour générer un cardTokenId : <script src="https://js.centralpay.net/js/token.js"></script> Ajoutez ensuite votre clé publique marchand (MerchantPublicKey) dans un tag distinct : <script type="text/javascript"> window.Centralpay ? Centralpay.card.setMerchantPublicKey('VOTRE_CLE_PUBLIQUE') : alert('Error loading html form'); </script> Vous pouvez voir où retrouver votre MerchantPublicKey depuis la page Authentification de nos API. Intégration dans une application mobile Si vous utilisez une WebView dans votre application, vous pouvez intégrer soit un formulaire personnalisé avec token.js, soit un formulaire hébergé via le service PaymentRequest. Ces options vous permettent d’externaliser la collecte des données carte tout en offrant une expérience utilisateur fluide. Dans une application mobile native, le script token.js n’est pas compatible. Vous devez alors collecter les données de carte via les champs de l’application, puis appeler directement l’API cardToken en utilisant votre merchantPublicKey. L’appel à l’API cardToken doit inclure un en-tête HTTP Origin correspondant à une URL déclarée dans votre compte CentralPay (voir 2.1 Prérequis). Pour vos tests, vous pouvez utiliser l’Origin suivant : https://example.centralpay.net ℹ️ Pour les applications mobiles natives, les données de carte sont transmises directement depuis le device de l’utilisateur vers CentralPay, sans passer par les serveurs du marchand. Cependant, ce type d’intégration nécessite de veiller à respecter les exigences de sécurité et de conformité PCI-DSS applicables à la collecte et la transmission de données de carte dans un environnement natif. 2.3 Créer un Customer et rattacher une carte ℹ️ Le cardTokenId est un token à usage unique, dont le CVC est temporaire (10 minutes en production, 5 minutes en RCT). Passé ce délai, le token expire automatiquement (status=EXPIRED) et ne peut plus être utilisé, ce qui entraînera l’erreur suivante : "cardTokenId": "Card token already used". Que vous utilisiez la carte immédiatement (paiement simple) ou que vous souhaitiez la réutiliser plus tard (paiement en 1 clic, récurrent, etc.), il est recommandé de commencer par créer un objet Customer, puis d’enregistrer une Card à l’aide du cardTokenId. L’authentification 3DS 2.2 pouvant parfois allonger le délai de traitement, cette séquence permet d’éviter l’expiration du CVC associé au cardToken. Créez un objet customer via l’endpoint POST /customer ou récupérez le customerId s’il est déjà connu Créez une card en utilisant POST /card en spécifiant le cardTokenId émis par le token.js et le customerId Une fois la card rattachée à un customer, le CVC devient permanent et les transactions futures peuvent être initiées sans limite de temps. Si vous n'utilisez pas le token.js (certification PCI-DSS requise), vous pouvez directement créer une card sans passer par le cardToken en fournissant le PAN + expiration + CVC + customerId 3. Authentification 3DS 2.2 Avant d’initier une transaction par carte, vous devez vérifier l’identité du porteur via une authentification 3DS 2.2. Cette étape est obligatoire pour les transactions carte unitaire comme pour les transactions carte récurrente. ℹ️ Exception : Les transactions de type MoTo (Mail Order / Telephone Order) ne sont pas soumises à l’authentification 3DS. Vous pouvez créer la transaction directement après la création de la carte. Authentification 3DS 2.0 Le protocole 3D Secure 2.0 permet de s’assurer que la personne réalisant la transaction est bien le titulaire de la carte. La banque du client analyse les nombreux facteurs liés au paiement adressés par CentralPay (adresse IP, localisation, appareil utilisé…) et les compare aux données habituelles de son client : Si les données ne sont pas concordantes ou que le montant de la transaction est important, elle requière une identification manuelle via un code adressé par SMS ou via son application bancaire (« authentification forte » ou « SCA ») Sinon, elle autorise directement le paiement (« Frictionless ») Il existe deux types de 3DS, selon si vous souhaitez initier une transaction classique (pour laquelle le porteur est présent) ou si vous exécutez une échéance de paiement récurrent (pour laquelle le porteur n’est pas présent) : 1. Le 3DS 2 « BRW » ou « Browser Authentication » (porteur participant – 1ère transaction) Représente la majorité des intégrations de 3DS 2. Il requiert l’authentification du client afin de vérifier qu’il est bien le porteur légitime de la carte au moment de la transaction. Il déclenche si nécessaire un challenge qui vérifie l’identité du porteur de carte (SCA). Découvrez comment intégrer le 3DS 2.0 BRW ➝ 2. Le 3DS2 « 3RI Authentification » (porteur non participant – échéances de paiements récurrents) 3DS Requestor Initiated (3RI) Authentications, ou Authentification Initialisée par le marchand lorsque le porteur n’est pas présent ou non participant. 3RI offre la possibilité de générer les authentifications 3DS nécessaires sans que le client ne soit impliqué. Cela permet d’utiliser une authentification générée précédemment avec un client. Elle est utilisée dans les contextes suivants de paiements récurrents : Paiement fractionné, Abonnement, Refund, etc. Découvrez comment intégrer le 3DS 2.0 3RI ➝ Transaction carte Selon les besoins de votre activité, CentralPay propose divers modes de transactions unitaires via son service API Transaction. Attention, vous devez au préalable gérer la collecte des données carte de votre client en créant un formulaire de paiement Custom Form et intégrer l’authentification 3DS 2.0. Les principes de base d’une transaction carte sont décrits dans la rubrique informations générales. 1. Autorisation et capture instantanée Pour réaliser un paiement simple par carte (autorisation puis capture instantanée) : Réaliser une Transaction en renseignant le paramètre « source » avec la valeur « EC » 2. Autorisation et capture différée Ce mode de transaction peut être utile si vous souhaitez bloquer les fonds de votre client avant de le débiter définitivement, le temps de la validation de votre commande par exemple. Ainsi, vous pouvez annuler l’opération sans être soumis aux frais de transaction ou de remboursement. Pour réaliser un paiement par carte avec capture différée (autorisation puis capture différée), vous devez : Réaliser une autorisation en renseignant le paramètre « capture » de la Transaction avec la valeur « false ». Les fonds seront ainsi bloqués sur la carte du client Puis débiter le montant souhaité en initiant une capture sur le transactionId reçu en précisant le montant souhaité (« amount ») Vous avez 7 jours calendaires suivant l’autorisation pour réaliser la capture, à défaut les fonds du client seront libérés. 3. Pré-autorisation et capture différée Le service de pré-autorisation et capture différée (ou caution / PLBS) permet d’effectuer une pré-autorisation d’un certain montant, que vous pourrez ensuite capturer partiellement ou pleinement sous 30 jours. Durant cette période, les fonds vous sont garantis, ils sont donc bloqués sur la carte et ne peuvent être utilisés par votre client. Ce service n’est accessible qu’à certaines activités autorisées (locations de véhicules ou de matériels, hôtellerie…) Pour réaliser une pré-autorisation et capture différée, vous devez : Réaliser une pré-autorisation en renseignant le paramètre « source » de la Transaction avec la valeur « DP ». Les fonds seront ainsi bloqués sur la carte du client Puis débiter le montant souhaité en initiant une capture sur le « transactionId » reçu en précisant le montant souhaité (« amount ») Vous avez 30 jours calendaires suivant l’autorisation pour réaliser la capture, à défaut les fonds du client seront libérés. 4. Vérification carte (empreinte sécurisée) Le service d’empreinte & vérification carte permet d’effectuer une autorisation à 0€ avec authentification du porteur (3DS 2.0). Ainsi, vous disposerez des informations concernant la carte de votre client (carte de débit, de crédit, prépayée…), et vous vous assurerez qu’elle n’est pas frauduleuse (carte non volée, porteur identifié…). Ce service est généralement utilisé pour enregistrer une carte avec 3DS en vue d’un abonnement avec une date de démarrage différée. Pour réaliser une prise d’empreinte et une vérification carte (autorisation à 0€ sans capture), vous devez : Réaliser une Transaction en renseignant le paramètre « source » avec la valeur « RI » Nous vous recommandons également de créer un « customer » lors de la transaction, afin d’associer le « cardId » ainsi généré et de vous permettre un éventuel débit ultérieur de cette carte 5. Débit carte seul (MO/TO) Le service de paiement MOTO (Mail Order / Telephone Order) permet d’effectuer une autorisation puis une capture d’une carte, sans la présence de son porteur. Il est généralement utilisé par les hôtels pour le débit de services ou de consommations additionnelles en fin de séjour. Attention, ce service n’est accessible qu’à certaines activités autorisées (hôtellerie…), et apporte des résultats de conversion de moins en moins performants depuis la directive DSP2, car elle ne permet pas l’authentification du porteur de carte. Pour réaliser un paiement MOTO, vous devez : Réaliser une Transaction en renseignant le paramètre « source » avec la valeur « MO » (Mail Order) ou « TO » (Telephone Order) 6. Paiement par carte en 1 clic Le paiement par carte en 1 clic consiste à enregistrer les données cartes de votre client, afin qu’il puisse régler sa commande sans avoir à les ressaisir. La ou les cartes du client sont stockées de manière sécurisée dans le Customer CentralPay. Il est dans ce cadre nécessaire de permettre à votre client de sélectionner la carte qu’il souhaite utiliser ou d’ajouter une nouvelle carte. Pour réaliser un paiement par carte en 1 clic, vous devez : Sélectionner l’option « One-click » dans la configuration du point de vente Vous assurez que vos Customer ont une carte liée à leur profil Transaction carte récurrente Selon les besoins de votre activité, CentralPay propose plusieurs modes de transactions récurrentes : Abonnement depuis un modèle d’abonnementCentralPay gère le prélèvement des échéances selon un modèle d’abonnement que vous avez défini en amont. Abonnement depuis des transactions successivesVous pilotez le prélèvement de chaque échéance vous-même par API. Paiement fractionnéCentralPay fractionne une somme due en plusieurs transactions et gère leur prélèvement, selon les conditions de règlement que vous avez renseigné. Attention, vous devez au préalable gérer la collecte des données carte de votre client en créant un formulaire de paiement Custom Form, créer un profil Customer pour ce client, et intégrer les principes d’authentification 3DS 2.0. Les principes de base d’une transaction carte sont décrits dans la rubrique informations générales. Lors d’un paiement récurrent, votre client reçoit automatiquement un email contenant le détail de ses échéances. Ce mail contient également un lien vers notre Portail client qui lui permet de visualiser le statut de ses paiements récurrent, de changer sa carte bancaire et de résilier un abonnement si besoin est. 1. Abonnement depuis un modèle d’abonnement 1.1. Création Vous devez d’abord : Créer un formulaire de paiement Custom Form Créer un Customer contenant au moins une Card Et réaliser une authentification 3DS 2.0 BRW Ensuite, le service d’abonnement (Subscription) vous permettra d’initier facilement un paiement par abonnement en se basant sur un modèle d’abonnement créé en amont depuis l’API CentralPay ou le Portail utilisateur. 1.2. Cas d’intégration spécifiques Si le premier paiement de l’abonnement doit être d’un montant supérieur aux échéances suivantes (ex: frais d’inscription), vous pouvez d’abord initier une Transaction suivant votre authentification 3DS BRW, puis renseigner une date de démarrage (startingDate) dans l’objet Subscription Si vous souhaitez simplement faire démarrer un abonnement à une date précise, vous pouvez d’abord réaliser une empreinte carte vérifiée suivant votre authentification 3DS BRW, puis renseigner une date de démarrage (startingDate) dans l’objet Subscription 2. Abonnement depuis des transactions successives 2.1. Création Vous devez d’abord : Créer un formulaire de paiement Custom Form Créer un Customer contenant au moins une Card Réaliser une authentification 3DS 2.0 BRW Réaliser une première Transaction Ensuite, vous pourrez initier vous-même les prochaines Transactions en utilisant l’authentification 3DS 3RI. 2.2. Informations importantes Pour garantir un taux de conversion optimum, le montant de la première transaction doit être supérieur ou égal aux montants des transactions suivantes réalisées avec l’authentification 3DS 3RI La plateforme CentralPay ne considérera pas les transactions générées comme des « abonnements », ainsi les interfaces « Portail utilisateur » et « Portail client » afficheront ces opérations au même titre qu’une succession de transactions unitaires Avec ce modèle, le système d’automatisation des nouvelles tentatives ne s’appliquera pas en cas d’échec de prélèvement d’une de vos transactions 3. Paiement fractionné 3.1. Création Vous devez d’abord : Créer un formulaire de paiement Custom Form Créer un Customer contenant au moins une Card Et réaliser une authentification 3DS 2.0 BRW Ensuite, le service de paiement fractionné (Installment) vous permettra d’initier facilement un paiement fractionné en se basant sur les éléments renseignés dans votre requête. Transaction carte via wallet 1. Apple Pay (Custom Form) 1.1. Via token Apple Pay déchiffré CentralPay permet le traitement des paiements par carte effectués via Apple Pay, dans le cadre d’une intégration Custom (hors Smart Form). ℹ️ CentralPay ne prend actuellement en charge que les tokens Apple Pay déchiffrés. Prérequis 1. Créer un compte Apple Developer : Inscrivez-vous au programme Apple Developer Créez vos identifiants de marchand Apple Pay (Merchant ID) Générez votre certificat de traitement Apple Pay via le portail Apple Déclarez votre domaine (Apple Pay Merchant Domain) 2. Intégration côté device : Implémentez Apple Pay côté frontend via Apple Pay JS (pour les sites web) ou PassKit (pour les apps iOS) Collectez le token Apple Pay (ApplePayToken) après validation du paiement par l’utilisateur (Face ID, Touch ID…) Étape 1 : Déchiffrement du token Apple Pay Le déchiffrement du token Apple Pay doit être effectué sur votre backend, à l’aide de : Votre certificat de traitement Apple Pay Votre clé privée La documentation Apple : Payment Token Format Le résultat contiendra : { "applicationPrimaryAccountNumber": "5454********2664", "applicationExpirationDate": "YYMMDD", "paymentData": { "cryptogram": "base64-cryptogram", "eciIndicator": "05" }} Étape 2 : Création du cardToken CentralPay Utilisez l’endpoint POST /cardToken de l’API CentralPay ChampDescriptioncard[number]PAN de la carte extrait du token Apple Paycard[expirationMonth]Mois d’expiration de la carte (format MM)card[expirationYear]Année d’expiration de la carte (format YYYY)onlinePaymentCryptogramCryptogramme issu du token Apple Pay (CAVV)eciIndicatorIndice d’authentification issu du token Apple Pay (eci)applePayTransactionIdID de la transaction Apple PayamountMontant en centimes (ex : 2500 = 25,00 €)currencyCode alpha ISO (ex : EUR, USD, etc.)merchantPublicKeyClé publique fournie par CentralPay ℹ️ Où trouver la merchantPublicKey ?Connectez-vous à votre portail CentralPay Back Office Administration Technique Merchant Public Key Exemple : card[number]=5454696696312664card[expirationMonth]=12card[expirationYear]=2031onlinePaymentCryptogram=MGnp3S1LBgJxAANgdNCRAoABFIA=applePayTransactionId=3d2b17abed2696ca...amount=2500currency=EURmerchantPublicKey=abcdef123456... Le cardToken généré contient toutes les données nécessaires à l’authentification Apple Pay. Étape 3 : Création de la transaction CentralPay Utilisez l’endpoint POST /transaction de l’API CentralPay Champs requis : cardToken=...amount=2500currency=EURpointOfSaleId=...endUserIp=...merchantTransactionId=... Le cardToken encapsule déjà le contexte Apple Pay et les données d’authentification. Étape 4 : Testing avant mise en production L’environnement de test CentralPay permet de valider l’ensemble de votre intégration Apple Pay sans déclencher de véritables paiements. Il est fortement recommandé d’utiliser cet environnement pour toutes les phases de développement, de debug et de validation côté frontend comme backend. Portail de test API de test Cartes de test Différences entre environnement de test et de production : Les URLs des API sont différentes : Elles utilisent le préfixe test- Test : https://test-api.centralpay.net/v2/rest/transaction Production : https://api.centralpay.net/v2/rest/transaction Les identifiants API (login + secret) sont propres à l’environnement de testIls ne sont pas interchangeables avec ceux de production La clé publique Apple Pay (merchantPublicKey) est également spécifique à l’environnement 2.2. Via token ApplePay chiffré ℹ️ Au 18/04/2025, cette méthode n’est pas encore disponible chez CentralPay.Si cette méthode d’intégration vous intéresse, veuillez contacter le support CentralPay afin de connaître les livrables associés et les modalités d’accès. Création de CardToken avec votre token Apple pay chiffré. Lors de votre appel API, en plus des champs obligatoires, il faudra utiliser le champ « applePayToken« au format JSON comprenant votre token Apple Pay qui incluent les éléments « paymentData », « paymentMethod » et « transactionIdentifier ».Vous pourrez ensuite effectuer une transaction à l’aide de votre cardToken normalement. Création de Transaction avec votre token Apple pay chiffré. Lors de votre appel API, en plus des champs obligatoires, il faudra utiliser le champ « applePayToken » au format JSON comprenant votre token Apple Pay qui inclus les éléments « paymentData », « paymentMethod » et « transactionIdentifier ». 2. Google Pay (Custom Form) 2.1. Via token Google Pay déchiffré Pour pouvoir accepter les paiements Google Pay via CentralPay, vous devez configurer correctement votre compte marchand Google et gérer les clés de chiffrement nécessaires au déchiffrement des tokens. ℹ️ Cette méthode implique une responsabilité PCI-DSS importante de votre part. Renseignez-vous et assurez-vous d'être en conformité avant de développer ce mode d'intégration. Prérequis 1. Créer un compte Google Pay Business : Accédez au Google Pay Business Console Créez un Merchant Profile ou connectez-en un existant Renseignez vos coordonnées de société et d’activité 2. Enregistrer votre domaine : Dans la console Google Pay, allez dans l’onglet « Domains« Ajoutez votre domaine de production et de test (ex : example.com) Google vous demandera d’y héberger un fichier de vérification pour valider votre propriété 3. Générer votre paire de clés de chiffrement : Google Pay chiffre les tokens envoyés à votre site en utilisant une clé publique que vous fournissez. Générez votre paire de clés (exemple avec OpenSSL) # Générer la clé privéeopenssl ecparam -name prime256v1 -genkey -noout -out private-key.pem# Extraire la clé publiqueopenssl ec -in private-key.pem -pubout -out public-key.pem Convertissez la clé publique au format Google (base64 sans en-tête PEM) # Supprimer les lignes "-----BEGIN..." et "-----END..."# et ne garder que le bloc de contenu base64 4. Enregistrer votre clé publique dans Google Pay Dans la console Google Pay, allez dans “Payment Processing” Ajoutez un nouvel encrypting key Donnez-lui un nom, collez votre clé publique au format Base64, et sélectionnez le type : ECv2 Cette clé sera utilisée pour chiffrer tous les tokens envoyés à votre site Étape 1 : Déchiffrement du token Google Pay Une fois Google Pay intégré côté frontend (Google Pay JS ou Android), vous recevrez un token chiffré via : paymentData.tokenizationData.token Ce champ contient un JSON chiffré (pas un JWT), que vous devez déchiffrer sur votre backend à l’aide de la clé privée correspondant à la clé publique enregistrée chez Google. Google propose une bibliothèque de déchiffrement officielle en Java, mais des portages existent en Node.js, PHP, Python, etc. Consultez la documentation officielle (Payment Data Cryptography) ➝ Une fois déchiffré, vous obtiendrez une structure similaire à : { "pan": "4111111111111111", "expirationMonth": "12", "expirationYear": "2030", "cryptogram": "AgAAAAAAAIR8CQrXcIhbQAAAAAA=", "eciIndicator": "05"} Ce sont ces données que vous devrez envoyer à CentralPay pour créer un cardToken. Étape 2 : Création du cardToken via l’API CentralPay Utilisez l’endpoint POST/cardToken de l’API CentralPay ChampDescriptioncard[number]PAN de la carte extrait du token Google Paycard[expirationMonth]Mois d’expiration de la carte (format MM)card[expirationYear]Année d’expiration de la carte (format YYYY)onlinePaymentCryptogramCryptogramme issu du token Google Pay (CAVV)eciIndicatorIndice d’authentification issu du token Google Pay (eci)googlePayMessageIdID de la transaction Google PayamountMontant en centimes (ex : 2500 = 25,00 €)currencyCode alpha ISO (ex : EUR, USD, etc.)merchantPublicKeyClé publique fournie par CentralPay ℹ️ Où trouver la merchantPublicKey ?Connectez-vous à votre portail CentralPay Back Office Administration Technique Merchant Public Key Exemple : card[number]=5454696696312664card[expirationMonth]=12card[expirationYear]=2031onlinePaymentCryptogram=MGnp3S1LBgJxAANgdNCRAoABFIA=googlePayTransactionId=ABCD-EFGH-1234amount=2500currency=EURmerchantPublicKey=abcdef123456... Le cardToken généré contient toutes les données nécessaires à l’authentification Google Pay. Étape 3 : Création de la transaction CentralPay Utilisez l’endpoint POST/transaction de l’API CentralPay. Champs requis : cardToken=...amount=2500currency=EURpointOfSaleId=...endUserIp=...merchantTransactionId=... Le cardToken encapsule déjà le contexte Google Pay et les données d’authentification. Étape 4 : Testing avant mise en production L’environnement de test CentralPay permet de valider l’ensemble de votre intégration Apple Pay sans déclencher de véritables paiements. Il est fortement recommandé d’utiliser cet environnement pour toutes les phases de développement, de debug et de validation côté frontend comme backend. Portail de test API de test Cartes de test Différences entre environnement de test et de production : Les URLs des API sont différentes : elles utilisent le préfixe test- Test : https://test-api.centralpay.net/v2/rest/transaction Production : https://api.centralpay.net/v2/rest/transaction Les identifiants API (login + secret) sont propres à l’environnement de testIls ne sont pas interchangeables avec ceux de production La clé publique Apple Pay (merchantPublicKey) est également spécifique à l’environnement 2.2. Via token Google Pay chiffré CentralPay permet l’intégration directe de Google Pay via le mode “gateway” (passerelle de paiement), sans nécessiter de déchiffrement du token côté serveur. Dans ce mode, CentralPay est désigné comme prestataire (gateway) auprès de Google Pay, et gère la validation du token pour vous. Prérequis 1. Créer un compte Google Pay Business : Accédez au Google Pay Business Console Créez un Merchant Profile ou connectez-en un existant. Renseignez vos coordonnées de société et d’activité. 2. Enregistrer votre domaine : Dans la console Google Pay, allez dans l’onglet “Domains” Ajoutez votre domaine de production et de test (ex : example.com) Google vous demandera d’y héberger un fichier de vérification pour valider votre propriété 3. Réaliser votre intégration frontend Google Pay : Implémentez Google Pay côté frontend via Google Pay JS (pour les sites web) ou Google Pay API Android (pour les applications mobiles) Collectez le token Google Pay (tokenizationData.token) après validation du paiement par l’utilisateur (code PIN, empreinte digitale, reconnaissance faciale…). ℹ️ Google propose un tutoriel officiel pour cette intégration : Google Pay API | Google for Developers 4. Récupérez vos identifiants CentralPay : MerchantPublicKey : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Merchant Public Key Login API : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Identifiant API et copiez l’identifiant Pass API : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Cliquez sur votre Identifiant API → Modifier → Générer , copiez votre pass API et mettez à jour Étape 1: Configuration de Google Pay côté frontend 1. Définir la version de l’API : const baseRequest = { apiVersion: 2, apiVersionMinor: 0}; 2. Utiliser CentralPay comme passerelle de paiement : Configurez la tokenisation comme suit : const tokenizationSpecification = { type: 'PAYMENT_GATEWAY', parameters: { gateway: 'centralpay', gatewayMerchantId: 'YOUR_GATEWAY_MERCHANT_ID' }}; Remplacez YOUR_GATEWAY_MERCHANT_ID par votre MerchantPublicKey fourni par CentralPay. 3. Environnement de test ou production : // Environnement de testconst paymentsClient = new google.payments.api.PaymentsClient({ environment: 'TEST' });// Environnement de productionconst paymentsClient = new google.payments.api.PaymentsClient({ environment: 'PRODUCTION' }); Étape 2 : Récupération du token Google Pay Lorsqu’un utilisateur final valide un paiement via Google Pay, l’API retourne un token au format JSON dans : paymentData.paymentMethodData.tokenizationData.token Ce champ contient une chaîne JSON représentant un objet du type : { "signature": "MEYCIQDn...", "protocolVersion": "ECv2", "intermediateSigningKey": { "signedKey": "{...}", "signatures": ["MEUCID..."] }, "signedMessage": "{...}"} Ce bloc devra être transmis tel quel à l’API CentralPay lors de la création du cardToken dans le champ googlePayToken. Étape 3 : Envoi du token à CentralPay (création du cardToken) Faites un appel à l’endpoint POST /cardToken de CentralPay avec les paramètres suivants : Paramètres requis : ChampDescriptionamountMontant en centimes (ex : 2500 pour 25,00 €)currencyCode ISO alpha (ex : EUR, USD, etc.)googlePayTokenLe JSON complet retourné par Google Pay (tokenizationData.token)merchantPublicKeyClé publique CentralPay disponible dans le backoffice Exemple de requête (format x-www-form-urlencoded) : amount=2500currency=EURmerchantPublicKey=abcdef123456...googlePayToken={"signature":"MEYCIQDn...","protocolVersion":"ECv2",...} Ne déchiffrez pas le token vous-même : CentralPay s’occupe de sa validation côté serveur. Étape 4 : Création de la transaction Une fois que le cardToken est obtenu, vous pouvez déclencher une transaction de manière standard via l’endpoint POST /transaction. Exemple de paramètres : cardToken=...amount=2500currency=EURpointOfSaleId=...endUserIp=...merchantTransactionId=... Le cardToken contient déjà toutes les informations d’authentification : pas besoin d’ajouter de cryptogramme ou de champ CVV. Étape 5 : Testing avant mise en production L’environnement de test CentralPay permet de valider l’ensemble de votre intégration Apple Pay sans déclencher de véritables paiements. Il est fortement recommandé d’utiliser cet environnement pour toutes les phases de développement, de debug et de validation côté frontend comme backend. Portail de test API de test Cartes de test Différences entre environnement de test et de production : Les URLs des API sont différentes : elles utilisent le préfixe test- Test : https://test-api.centralpay.net/v2/rest/transaction Production : https://api.centralpay.net/v2/rest/transaction Les identifiants API (login + secret) sont propres à l’environnement de testIls ne sont pas interchangeables avec ceux de production La clé publique Apple Pay (merchantPublicKey) est également spécifique à l’environnement R-transaction carte 1. Remboursement Vous pouvez rembourser une Transaction si celle-ci est « Cleared » via le service Refund ou depuis le détail de la Transaction dans le Portail utilisateur. Vous pouvez initier un remboursement total ou partiel en renseignant un montant. Votre client recevra les fonds sur sa carte sous 3 à 5 jours ouvrés après l’opération. Votre compte de paiement est lui débité immédiatement, il doit donc être solvable pour pouvoir réaliser l’opération. Vous ne pouvez pas annuler un remboursement une fois celui-ci réalisé. 2. Crédit Vous pouvez créditer la carte d’un client sans transaction initiale depuis le service Credit. Pour cela, il existe plusieurs solutions : Tokeniser une carte via le service cardToken pour ensuite la renseigner dans le service Credit Créer ou rechercher un Customer disposant d’une carte valide, puis renseigner son « customerId » ainsi que son « cardId » dans le service Credit ℹ️ Ce service n'est disponible que pour des activités spécifiques, contactez CentralPay pour en savoir plus. 3. Contestation Pour tout paiement par carte, votre client a la possibilité de contester une transaction auprès de sa banque (opération nommée contestation, chargeback ou impayé) : Pendant 120 jours à compter de la transaction sur les réseaux « Visa » ou « Mastercard » Pendant 13 mois à compter de la date d’opération sur le réseau Français « Carte Bancaire » ℹ️ En France, une contestation n'est en principe autorisée que dans le cadre d'une utilisation frauduleuse de la carte (carte volée, prélèvements abusifs…). Cependant, dans d'autres pays européens, la contestation peut également être utilisée dans le cadre d'un litige commercial (service ou produit non rendu / non conforme). En cas de contestation, CentralPay en est informé et crée automatiquement sur votre compte une opération de Dispute liée à la transaction contestée. Le montant de cette transaction vous sera débité afin de rembourser votre client. Des frais non remboursables s’appliquent également pour chaque contestation reçue. À ce stade, le statut de la Dispute sera Chargeback_Noticed et vous pourrez consulter sur le Portail utilisateur ou via notre API le motif de contestation de votre client. Vous disposez ainsi d’un délai de 20 jours calendaires pour répondre en fournissant la preuve de livraison du service ou du produit. À défaut de réponse dans les délais impartis, il ne sera plus possible de répondre à la contestation. ℹ️ Notez que dans le cadre des transactions non authentifiées (sans 3DS), vous devez également justifier du consentement du titulaire de la carte. Vous devez à minima prouver que le nom et prénom de votre client est bien le même que celui qui est indiqué sur la carte de paiement. Une fois votre réponse émise, celle-ci est étudiée par la banque de votre client avant d’adresser son verdict : Vous avez obtenu gain de cause, la contestation a été rejetée. Le montant de la transaction vous est remboursé et le statut de la Dispute passe en Chargeback_Won. Vos preuves sont jugées insuffisantes, la contestation est maintenue. Le statut de la Dispute passe en Chargeback_Lost. ℹ️ Il est possible, en amont d'une contestation, qu'un client réalise une demande d'information sur une transaction afin d'en connaitre les détails. CentralPay créera une opération Dispute avec statut Retrieval_Noticed. Vous devez répondre dans les 7 jours en fournissant la nature du service délivré, la preuve de consentement du client et/ou la preuve de livraison. Si votre réponse est acceptée, le statut de la Dispute passera à Retrieval_Close. À défaut de réponse, votre client pourra déclencher une contestation auprès de sa banque. Email de confirmation Quand une transaction par carte a été réalisée avec succès, CentralPay peut adresser un email de confirmation de paiement à votre client. Pour cela, vous devez l’activer en renseignant les paramétrages de l’email de confirmation dans votre Point de Vente. Cet email est adressé par défaut à l’email du Customer associé à la transaction, mais vous pouvez renseigner la valeur receiptEmail de la transaction si vous souhaitez l’adresser à un autre. Paramétrage L’email de confirmation possède une mise en forme standardisée affichant les différentes informations de paiement, vous pouvez cependant configurer plusieurs paramètres depuis le Portail utilisateur. Adresse email de l’expéditeur : Paramètrage depuis le point de vente Nom de l’expéditeur : Paramètrage depuis le point de vente Votre logo : Paramètrage depuis le point de vente Nom du point de vente : Paramètrage depuis le point de vente Texte de pied de page : Paramétrage depuis l’entrrée Configuration Email confirmation paiement Créer Langue d’affichage : Renseigner la valeur « endUserLanguage » dans la requête de Transaction (anglais par défaut) Libellé relevé bancaire Le libellé de relevé bancaire correspond à la description qui sera affichée sur le relevé de compte bancaire de vos clients pour chacune de vos transactions par carte. Lorsqu’un compte CentralPay « marchand » ou « partenaire » est créé, un libellé de relevé bancaire est défini automatiquement en utilisant le nom de votre premier Point de Vente : CPAY*NomDuPointDeVente Vous pouvez demander à CentralPay de modifier votre libellé, cependant il doit permettre à vos clients de vous identifier clairement ou d’accéder à votre site de réclamation. Gestion des devises Dans le cadre d’une activité internationale, vos clients peuvent disposer d’une carte adossée à un compte bancaire en devises non Euros. Quelle que soit votre intégration, ces clients pourront vous régler en Euros grâce au système de conversion automatique des réseaux carte (Visa, Mastercard, American Express). Vos clients porteront l’ensemble des coûts de conversion des devises, et vous recevrez des Euros sur votre compte CentralPay. Dans certains cas, CentralPay peut vous permettre d’encaisser des transactions par carte bancaire dans différentes devises : Euros (EUR), Dollars (USD), Francs Suisses (CHF) et Livres (GBP). Contactez CentralPay si la gestion de transaction en devises est un enjeu pour votre activité. Notez que dans ce cas, les coûts d’acquisition en devises (hors EUROS) sont soumis à des frais complémentaires et seront déduits du montant de vos transactions. ℹ️ Les reversements (payout) par virement SEPA ne peuvent être réalisés que sur les valeurs disponibles en EUROS. Les valeurs hors EUROS sont reversées par virement SWIFT ayant des frais supérieurs. Il est cependant possible de programmer les reversements SWIFT afin qu'il ne soit réalisés qu'à partir d'un certain seuil, afin de mieux maitriser ses coûts de reversement. Gestion des cartes virtuelles (VCC) 1. Fonctionnement Les grands OTA que sont Booking.com, Expedia.com, hotels.com ou Agoda.com peuvent collecter les règlements lors de la réservation. Dans ce cas, ils fournissent aux hôteliers, non pas les données de la carte du client, mais une alias, qui est une carte virtuelle ou VCC. Une carte virtuelle ou VCC est généralement émise pour un usage encadré afin de limiter les risques de compromission. Une carte virtuelle représente en quelque sorte l’alias d’une carte existante qui ne pourra être utilisé qu’à partir d’une certaine date et depuis un MCC défini. En l’occurrence, dans le secteur du tourisme, il est nécessaire d’avoir un contrat avec le MCC 7011 (HOTELS) pour pouvoir la débiter. Ainsi, dans le cas où le numéro de carte tombait entre les mains d’une personne mal intentionnée, elle ne pourrait pas déclencher de débit sur la carte source. Étant donné la nature spéciale des cartes issues par ces OTA, il est en général impossible de réaliser des demandes d’autorisation, de pré-autorisation ou de vérification au moment de la commande. Si la carte n’est débitable que le jour de la réservation par un MCC 7011 par exemple, l’émetteur, en général MASTERCARD B2B PRODUCT, renverra un code d’erreur pour transaction invalide (12). ➡️ Cartes virtuelles Booking.comBooking.com utilise des cartes virtuelles sur certaines destinations. En fonction du paramétrage réalisé sur le site de l’hôtel, une réservation pourra être réalisée avec ou sans prise d’empreinte carte. Si l’hôtelier a choisi de demander un moyen de paiement, alors Booking.com génèrera une carte virtuelle et l’adressera à l’hôtelier ou à son prestataire technique. Suite à la crise du Covid 19, Booking.com n'autorise plus les débits de ses VCC qu'un jour après le checkin du client.En savoir plus sur le fonctionnement des cartes virtuelles de Booking.com ➝ ➡️ Cartes virtuelles Expedia.comChez Expedia, il est possible de laisser le visiteur choisir entre la possibilité de payer à l’hôtel (Hotel Collect) ou de payer directement lorsqu’il réalise la réservation (Expedia Collect). Cette option est appelée Expedia Traveler Preference (ETP). Si un client utilise la méthode Expedia Collect, une carte virtuelle sera alors générée.En savoir plus sur le fonctionnement des cartes virtuelles d'expedia.com ➝ 2. Gestion des cartes virtuelles avec CentralPay La meilleure méthode pour stocker une VCC et de pouvoir l’utiliser une fois disponible est de créer un « Customer » et de lui associer la carte concernée. Deux options sont ouvertes : Soit la carte est débitable au moment de la création et une demande de vérification est réalisable à la création du Customer Soit la carte n’est pas utilisable à la création du customer et la carte doit être créé sans vérification. Cela ne signifie pas qu’elle ne pourra pas être utilisée à terme. Cela veut simplement dire qu’elle ne doit être débitée qu’à une certaine date. En général, les OTA auront préalablement vérifié les données de la carte pour s’assurer qu’elle était débitable Ainsi, créer un Customer dans l’API CentralPay permet de tokeniser la carte virtuelle, sécuriser son stockage et de faciliter son utilisation lorsque les conditions d’acceptation initiales auront été réunies. Retours, statuts et hooks 1. Codes de retour banque liés aux transactions carte Lorsqu’une transaction carte (objet « Transaction ») est initiée, une demande d’autorisation est soumise à la banque émettrice de la carte. Cette dernière répond avec un code, permettant d’interpréter l’acceptation, le refus et la cause du refus de l’autorisation. La banque du titulaire de la carte (appelée également « banque émettrice ») exprime son refus en fonction de choix qui lui sont propres et totalement indépendants de CentralPay. CentralPay n’est en possession d’aucune information complémentaire si une carte est refusée et n’a aucun moyen d’en obtenir. Les principaux codes de retour banque : CodeDescriptionA1 – Repli VADSDSP2 et Soft declineLa banque refuse la transaction, car elle ne possède pas d’authentification forte (3DS 2.0).Il est nécessaire de repasser cette transaction en 3DS afin de ne plus avoir ce code.57, 3 et 5Refus générique de la banqueLa banque refuse sans donner de statut particulier.Cela peut être un code CVV erroné ou une autre décision que nous ne connaissons pas.Ce statut ne permet pas d’affirmer que la banque n’acceptera pas l’autorisation après d’autres tentatives.4, 7, 14, 15, 31, 33, 34, 41, 43, 54, 55, 56, 59, 63, 76Suspicion de fraude ou vol de la carteLa banque émettrice estime que son client n’est plus en possession de la carte et qu’il s’agit d’une usurpation.51, 61Provisions insuffisantes / plafond atteintLa carte a dépassé le montant du plafond autorisé ou ne dispose pas des fonds suffisants.La carte peut de nouveau être acceptée ultérieurement, les plafonds étant calculés sur 7 jours glissant, une transaction peut tout à fait être retentée le lendemain.12Transaction invalideLa banque refuse sans donner de statut particulier. Cela peut être :– Simplement une transaction invalide– Un code 75 de la part de la banque émettrice (le code PIN de la carte a été trop de fois incorrect).– Un CVV erroné (fournit par l’ACS lors d’une authentification 3DS)– Ou une autre décision que nous ne connaissons pas. Consultez la liste complète des codes de retour banque ➝ 2. Statuts liés aux transactions carte Consultez les Statuts Transaction ➝ Consultez les Statuts Refund ➝ Consultez les Statuts Credit ➝ Consultez les Statuts Disputes ➝ Consultez les Statuts Subscription ➝ Consultez les Statuts Installement ➝ 3. Webhooks liés aux transactions carte Consultez les Webhooks Transaction ➝ Consultez les Webhooks Card ➝ Consultez les Webhooks Refund ➝ Consultez les Webhooks Credit ➝ Consultez les Webhooks Customer ➝ Consultez les Webhooks Dispute ➝ Consultez les Webhooks Subscription ➝ Consultez les Statuts Installement ➝
CARD Transaction Articles Transaction Card Credit Disputes Transaction See more about card transactions Card See more about Card You can store multiple Cards per Customer in order to charge the customer later on (subscription, etc.). It can also be used to store multiple debit or credit cards on a recipient in order to transfer to these cards later. Note: If the card is already registered for this merchant, the API will return the previous cardId registered (not a new one). Credit See more about Credit Disputes See more about Disputes A dispute is opened when a customer questions a transaction with their bank or credit/debit card provider. When the transaction is tagged as a dispute, you can respond to the dispute with evidence that shows the charge is legitimate. If the transaction cannot be proven legitimate, the dispute will become a chargeback.
Parcours d'entrée en relation CentralPay propose plusieurs modes d’entrée en relation, selon votre situation : Vous êtes un marchand en relation directe avec CentralPay ; Vous êtes un partenaire technologique ou commercial ; Vous êtes un marchand rattaché à un partenaire utilisant la solution CentralPay. 👉 Ce guide détaille les différentes étapes, selon votre profil. Certaines étapes peuvent être adaptées ou simplifiées selon les modalités de votre intégration. 🔹 Marchands en direct ou partenaires Le parcours d’entrée en relation comporte six étapes principales. 1. 🧭 Qualification de votre projet Nos équipes commerciales échangent avec vous pour analyser votre projet : Parcours de paiement envisagé (web, mobile, point de vente, récurrent…), Moyens de paiement souhaités (carte, virement, SEPA, Pay By Bank…), Méthodes d’intégration (API, portail, connecteur), Typologie de vos clients finaux (B2B, B2C, abonnements…), Volumétrie estimée (fréquence et montants). 2. 🔎 Pré-analyse conformité de votre projet Sur la base des informations fournies, notre service conformité effectue une pré-analyse réglementaire visant à : Vérifier la compatibilité de votre activité avec notre cadre réglementaire, Identifier les points de vigilance potentiels (secteur sensible, flux complexes…), Prédéfinir les éventuelles garanties ou conditions particulières. 3. 🖋️ Signature du contrat cadre Une fois cette pré-analyse validée, vous êtes invité à signer le contrat cadre de services de paiement ou de monnaie électronique. 🔗 Voir le contrat cadre de services de paiement Un représentant légal peut désigner un mandataire pour signer à sa place (modèle de délégation disponible sur demande). 4. 🧑💻 Lancement de l’intégration Après signature du contrat : Vous recevez vos accès à l’environnement de test, Vous accédez aux documentations techniques CentralPay. 📌 Si vous bénéficiez d’un accompagnement personnalisé, une réunion d’onboarding est organisée pour configurer vos premiers paramétrages (notifications, reversements, droits utilisateurs, etc.). 5. 🧾 Création du compte CentralPay Le représentant légal reçoit un lien d’inscription sécurisé pour créer le compte : Il complète les informations juridiques, Il valide les Conditions Générales d’Utilisation, L’analyse de conformité complète est alors déclenchée. 🛡️ Cette analyse peut donner lieu à : Des demandes de documents complémentaires (KYC/KYB, contrats, justificatifs…), Un refus d’ouverture si les critères réglementaires ne sont pas remplis, Une validation du compte, menant à son ouverture. 6. ✅ Mise en production Une fois l’ensemble des étapes validées, y compris l’intégration et les éventuelles factures initiales : Une date de mise en production est convenue, Votre compte est débloqué, Vous pouvez encaisser vos premières transactions. 🔹 Marchands liés à un partenaire Si vous êtes un marchand intégré via un partenaire technologique ou commercial de CentralPay, le parcours est simplifié. Vous entrez directement à l’étape 5 : Création du compte CentralPay. ➤ Étape unique : Création du compte et validation réglementaire Vous recevez un lien d’inscription transmis par votre partenaire ou directement par CentralPay. Ce lien vous permet de : Compléter les informations relatives à votre structure, Décrire précisément votre activité, la typologie de vos clients finaux et la volumétrie estimée de vos opérations, Valider les Conditions Générales d’Utilisation et signer le contrat cadre. 💡 Les aspects techniques (intégration, parcours, moyens de paiement) sont déjà définis dans le cadre de la convention signée avec votre partenaire.L’analyse de conformité complète de CentralPay reste obligatoire avant validation du compte.
Transfer purpose codes ACCT : AccountManagementADCS : AdvisoryDonationCopyrightServicesADMG : AdministrativeManagementADVA : AdvancePaymentAEMP : ActiveEmploymentPolicyAGRT : AgriculturalTransferAIRB : AirALLW : AllowanceALMY : AlimonyPaymentAMEX : AmexANNI : AnnuityANTS : AnesthesiaServicesAREN : AccountsReceivablesEntryAUCO : AuthenticatedCollectionsB112 : TrailerFeePaymentBBSC : BabyBonusSchemeBCDM : BearerChequeDomesticBCFG : BearerChequeForeignBECH : ChildBenefitBENE : UnemploymentDisabilityBenefitBEXP : BusinessExpensesBFWD : BondForwardBKDF : BankLoanDelayedDrawFundingBKFE : BankLoanFeesBKFM : BankLoanFundingMemoBKIP : BankLoanAccruedInterestPaymentBKPP : BankLoanPrincipalPaydownBLDM : BuildingMaintenanceBNET : BondForwardNettingBOCE : BackOfficeConversionEntryBOND : BondsBONU : BonusPayment.BR12 : TrailerFeeRebateBUSB : BusCABD : CorporateActions-BondsCAEQ : CorporateActions-EquitiesCAFI : CustodianManagementFeeInhouseCASH : CashManagementTransferCBCR : CreditCardCBFF : CapitalBuildingCBFR : CapitalBuildingRetirementCBLK : CardBulkClearingCBTV : CableTVBillCCHD : CashCompensationHelplessnessDisabilityCCIR : CrossCurrencyIRSCCPC : CCPClearedInitialMarginCCPM : CCPClearedVariationMarginCCRD : CreditCardPaymentCCSM : CCPClearedInitialMarginSegregatedCashCDBL : CreditCardBillCDCB : CardPaymentWithCashBackCDCD : CashDisbursementCashSettlementCDCS : CashDisbursementWithSurchargingCDDP : CardDeferredPaymentCDEP : CreditDefaultEventPaymentCDOC : OriginalCreditCDQC : QuasiCashCFDI : CapitalFallingDueInhouseCFEE : CancellationFeeCGDD : CardGeneratedDirectDebitCHAR : CharityPaymentCLPR : CarLoanPrincipalRepaymentCMDT : CommodityTransferCOLL : CollectionPaymentCOMC : CommercialPaymentCOMM : CommissionCOMP : CompensationPaymentCOMT : ConsumerThirdPartyConsolidatedPaymentCORT : TradeSettlementPaymentCOST : CostsCPEN : CashPenaltiesCPKC : CarparkChargesCPYR : CopyrightCRDS : CreditDefaultSwapCRPR : CrossProductCRSP : CreditSupportCRTL : CreditLineCSDB : CashDisbursementCashManagementCSLP : CompanySocialLoanPaymentToBankCVCF : ConvalescentCareFacilityDBCR : DebitCardDBTC : DebitCollectionPaymentDCRD : DebitCardPaymentDEBT : ChargesBorneByDebtorDEPD : DependentSupportPaymentDEPT : DepositDERI : DerivativesDICL : DinersDIVD : DividendDMEQ : DurableMedicaleEquipmentDNTS : DentalServicesDSMT : PrintedOrderDisbursementDVPM : DeliverAgainstPaymentECPG : GuaranteedEPaymentECPR : EPaymentReturnECPU : NonGuaranteedEPaymentEDUC : EducationEFTC : LowValueCreditEFTD : LowValueDebitELEC : ElectricityBillENRG : EnergiesEPAY : EpaymentEQPT : EquityOptionEQTS : EquitiesEQUS : EquitySwapESTX : EstateTaxETUP : EPurseTopUpEXPT : ExoticOptionEXTD : ExchangeTradedDerivativesFACT : FactorUpdateRelatedPaymentFAND : FinancialAidInCaseOfNaturalDisasterFCOL : FeeCollectionFCPM : LatePaymentOfFeesAndChargesFEES : PaymentOfFeesFERB : FerryFIXI : FixedIncomeFLCR : FleetCardFNET : FuturesNettingPaymentFORW : ForwardForeignExchangeFREX : ForeignExchangeFUTR : FuturesFWBC : ForwardBrokerOwnedCashCollateralFWCC : ForwardClientOwnedCashCollateralFWLV : ForeignWorkerLevyFWSB : ForwardBrokerOwnedCashCollateralSegregatedFWSC : ForwardClientOwnedSegregatedCashCollateralFXNT : ForeignExchangeRelatedNettingGAFA : GovernmentFamilyAllowanceGAHO : GovernmentHousingAllowanceGAMB : GamblingOrWageringPaymentGASB : GasBillGDDS : PurchaseSaleOfGoodsGDSV : PurchaseSaleOfGoodsAndServicesGFRP : GuaranteeFundRightsPaymentGIFT : GiftGOVI : GovernmentInsuranceGOVT : GovernmentPaymentGSCB : PurchaseSaleOfGoodsAndServicesWithCashBackGSTX : GoodsServicesTaxGVEA : AustrianGovernmentEmployeesCategoryAGVEB : AustrianGovernmentEmployeesCategoryBGVEC : AustrianGovernmentEmployeesCategoryCGVED : AustrianGovernmentEmployeesCategoryDGWLT : GovermentWarLegislationTransferHEDG : HedgingHLRP : PropertyLoanRepaymentHLST : PropertyLoanSettlementHLTC : HomeHealthCareHLTI : HealthInsuranceHREC : HousingRelatedContributionHSPC : HospitalCareHSTX : HousingTaxICCP : IrrevocableCreditCardPaymentICRF : IntermediateCareFacilityIDCP : IrrevocableDebitCardPaymentIHRP : InstalmentHirePurchaseAgreementINPC : InsurancePremiumCarINPR : InsurancePremiumRefundINSC : PaymentOfInsuranceClaimINSM : InstallmentINSU : InsurancePremiumINTC : IntraCompanyPaymentINTE : InterestINTP : IntraPartyPaymentINTX : IncomeTaxINVS : InvestmentAndSecuritiesIPAY : InstantPaymentsIPCA : InstantPaymentsCancellationIPDO : InstantPaymentsForDonationsIPEA : InstantPaymentsInECommerceWithoutAddressDataIPEC : InstantPaymentsInECommerceWithAddressDataIPEW : InstantPaymentsInECommerceIPPS : InstantPaymentsAtPOSIPRT : InstantPaymentsReturnIPU2 : InstantPaymentsUnattendedVendingMachineWith2FAIPUW : InstantPaymentsUnattendedVendingMachineWithout2FAIVPT : InvoicePaymentLBIN : LendingBuyInNettingLBRI : LaborInsuranceLCOL : LendingCashCollateralFreeMovementLFEE : LendingFeesLICF : LicenseFeeLIFI : LifeInsuranceLIMA : LiquidityManagementLMEQ : LendingEquityMarkedToMarketCashCollateralLMFI : LendingFixedIncomeMarkedToMarketCashCollateralLMRK : LendingUnspecifiedTypeOfMarkedToMarketCashCollateralLOAN : LoanLOAR : LoanRepaymentLOTT : LotteryPaymentLREB : LendingRebatePaymentsLREV : LendingRevenuePaymentsLSFL : LendingClaimPaymentLTCF : LongTermCareFacilityMAFC : MedicalAidFundContributionMARF : MedicalAidRefundMARG : DailyMarginOnListedDerivativesMBSB : MBSBrokerOwnedCashCollateralMBSC : MBSClientOwnedCashCollateralMCDM : MultiCurrenyChequeDomesticMCFG : MultiCurrenyChequeForeignMDCS : MedicalServicesMGCC : FuturesInitialMarginMGSC : FuturesInitialMarginClientOwnedSegregatedCashCollateralMOMA : MoneyMarketMP2B : MobileP2BPaymentMP2P : MobileP2PPaymentMSVC : MultipleServiceTypesMTUP : MobileTopUpNETT : NettingNITX : NetIncomeTaxNOWS : NotOtherwiseSpecifiedNWCH : NetworkChargeNWCM : NetworkCommunicationOCCC : ClientOwnedOCCPledgedCollateralOCDM : OrderChequeDomesticOCFG : OrderChequeForeignOFEE : OpeningFeeOPBC : OTCOptionBrokerOwnedCashCollateralOPCC : OTCOptionClientOwnedCashCollateralOPSB : OTCOptionBrokerOwnedSegregatedCashCollateralOPSC : OTCOptionClientOwnedCashSegregatedCashCollateralOPTN : FXOptionOTCD : OTCDerivativesOTHR : OtherOTLC : OtherTelecomRelatedBillPADD : PreauthorizedDebitPAYR : PayrollPCOM : PropertyCompletionPaymentPDEP : PropertyDepositPEFC : PensionFundContributionPENO : PaymentBasedOnEnforcementOrderPENS : PensionPaymentPHON : TelephoneBillPLDS : PropertyLoanDisbursementPLRF : PropertyLoanRefinancingPOPE : PointOfPurchaseEntryPPTI : PropertyInsurancePRCP : PricePaymentPRME : PreciousMetalPTSP : PaymentTermsPTXP : PropertyTaxRAPI : RapidPaymentInstructionRCKE : RepresentedCheckEntryRCPT : ReceiptPaymentRDTX : RoadTaxREBT : RebateREFU : RefundRELG : RentalLeaseGeneralRENT : RentREOD : AccountOverdraftRepaymentREPO : RepurchaseAgreementRETL : RetailPaymentRHBS : RehabilitationSupportRIMB : ReimbursementOfAPreviousErroneousTransactionRINP : RecurringInstallmentPaymentRLWY : RailwayROYA : RoyaltiesRPBC : BilateralRepoBrokerOwnedCollateralRPCC : RepoClientOwnedCollateralRPNT : BilateralRepoInternetNettingRPSB : BilateralRepoBrokerOwnedSegregatedCashCollateralRPSC : BilateralRepoClientOwnedSegregatedCashCollateralRRBN : RoundRobinRRCT : ReimbursementReceivedCreditTransferRRTP : RelatedRequestToPayRVPM : ReceiveAgainstPaymentRVPO : ReverseRepurchaseAgreementSALA : SalaryPaymentSASW : ATMSAVG : SavingsSBSC : SecuritiesBuySellSellBuyBackSCIE : SingleCurrencyIRSExoticSCIR : SingleCurrencyIRSSCRP : SecuritiesCrossProductsSCVE : PurchaseSaleOfServicesSECU : SecuritiesSEPI : SecuritiesPurchaseInhouseSERV : ServiceChargesSHBC : BrokerOwnedCollateralShortSaleSHCC : ClientOwnedCollateralShortSaleSHSL : ShortSellSLEB : SecuritiesLendingAndBorrowingSLOA : SecuredLoanSLPI : PaymentSlipInstructionSPLT : SplitPaymentsSPSP : SalaryPensionSumPaymentSSBE : SocialSecurityBenefitSTDY : StudySUBS : SubscriptionSUPP : SupplierPaymentSWBC : SwapBrokerOwnedCashCollateralSWCC : SwapClientOwnedCashCollateralSWFP : SwapContractFinalPaymentSWPP : SwapContractPartialPaymentSWPT : SwaptionSWRS : SwapContractResetPaymentSWSB : SwapsBrokerOwnedSegregatedCashCollateralSWSC : SwapsClientOwnedSegregatedCashCollateralSWUF : SwapContractUpfrontPaymentTAXR : TaxRefundTAXS : TaxPaymentTBAN : TBAPairOffNettingTBAS : ToBeAnnouncedTBBC : TBABrokerOwnedCashCollateralTBCC : TBAClientOwnedCashCollateralTBIL : TelecommunicationsBillTCSC : TownCouncilServiceChargesTELI : TelephoneInitiatedTransactionTLRF : NonUSMutualFundTrailerFeePaymentTLRR : NonUSMutualFundTrailerFeeRebatePaymentTMPG : TMPGClaimPaymentTPRI : TriPartyRepoInterestTPRP : TriPartyRepoNettingTRAD : CommercialTRCP : TreasuryCrossProductTREA : TreasuryPaymentTRFD : TrustFundTRNC : TruncatedPaymentSlipTRPT : RoadPricingTRVC : TravellerChequeUBIL : UtilitiesUNIT : UnitTrustPurchaseVATX : ValueAddedTaxPaymentVIEW : VisionCareWEBI : InternetInitiatedTransactionWHLD : WithHoldingWTER : WaterBill
Modèles contractuels Articles Modèle Marchand Modèle Intégrateur / Partenaire Technique Modèle Partenaire avec statut Modèle Marchand Le modèle Marchand s’adresse aux entreprises (personnes morales) qui souhaitent utiliser la plateforme CentralPay pour encaisser des paiements pour leur propre compte dans le cadre d’une activité de vente de biens ou de services. 1. 🧩 Description du modèle Ce modèle vous donne accès à l’ensemble des services de Smart Collection, la solution d’encaissement complète proposée par CentralPay. 🔗 Plus d’informations sur Smart Collection Les fonctionnalités incluses sont les suivantes : 🏦 Le compte CentralPayUn compte de paiement dédié à votre activité, avec IBAN individuel, suivi des opérations et reversements. 🧰 Les services liés au compteOutils de gestion, profils utilisateurs, accès API, notifications, reporting… 💡 Le service d’encaissement SmartCentralisation de vos flux, routage automatisé, gestion des statuts et des reversements. 💳 Transactions par carte bancaireAcceptation Visa/Mastercard, 3D Secure, Apple Pay/Google Pay, gestion des remboursements et des contestations. 💶 Transactions par virementGénération d’IBAN virtuels, notifications de réception, rapprochements automatiques. 🧾 Transactions par prélèvement SEPADébits ponctuels ou récurrents, gestion des mandats, suivi des rejets. 2. 💰 Frais et commissions Le modèle Marchand donne lieu à deux types de frais : 🔹 Forfait plateforme Un forfait mensuel fixe est appliqué pour l’accès à la plateforme et aux services associés. Ce forfait peut être : Prélevé automatiquement par SEPA mensuel, Facturé annuellement par virement SEPA, Déduit de votre compte CentralPay selon les modalités prévues dans votre contrat. 🔹 Frais de service Des commissions variables sont appliquées en fonction des opérations réalisées (transactions, reversements, rejets, etc.). Les frais sont débités : Soit directement de votre compte de paiement principal, Soit depuis un compte de commission dédié, si celui-ci est activé. 📌 En cas de solde insuffisant, CentralPay pourra procéder à un prélèvement SEPA ou vous adresser une demande de virement complémentaire. Modèle Intégrateur / Partenaire Technique CentralPay propose deux modèles distincts pour les acteurs qui souhaitent accompagner des marchands dans leur intégration technique : le Partenaire Technique et l’Intégrateur. Ces deux modèles permettent de connecter plusieurs marchands à la plateforme CentralPay, selon des modalités d’encadrement différentes. Ils peuvent chacun, s’ils le souhaitent, être déclarés MOBSP (Mandataires d’Opérations de Banque et de Services de Paiement) auprès de l’ORIAS, pour accompagner les marchands durant leur entrée en relation avec CentralPay. 🔹 1. Modèle Intégrateur L’Intégrateur est un prestataire technique mandaté par un ou plusieurs marchands. Il intervient en leur nom et pour leur compte, afin de faciliter leur connexion aux services CentralPay. Chaque marchand dispose de son propre point de vente (POS), de son propre compte CentralPay, et signe directement un contrat avec CentralPay. L’Intégrateur ne détient aucun droit contractuel sur les comptes ou fonds du marchand. Responsabilités et fonctionnement : L’Intégrateur utilise les accès API fournis par chaque marchand, dans le cadre d’un mandat contractuel. Il peut déclencher des opérations techniques (paiements, notifications…), mais uniquement via les accès API délégués par le marchand, dans le cadre du contrat unissant ce dernier à CentralPay. Il n’intervient jamais en son nom propre. Les opérations sont réalisées en 1 pour 1 : un payeur règle un seul marchand. Facturation : Chaque marchand est facturé directement par CentralPay. L’Intégrateur n’intervient à aucun moment dans les flux financiers. Pour aller plus loin sur le modèle Intégrateur L’intégrateur intervient exclusivement en soutien technique des marchands, sans jamais agir comme intermédiaire de paiement ni représentant de CentralPay. Son rôle se limite à l’intégration, au support fonctionnel de niveau 1 et à la maintenance des interfaces. Chaque marchand conserve l’entière maîtrise de son compte CentralPay : encaissements, reversements, solde, paramétrage des accès API, gestion documentaire et contractuelle. L’intégrateur accède à un espace CentralPay lui permettant de consulter une vue consolidée des opérations réalisées via les accès API qui lui sont délégués. Il peut également consulter la documentation technique, utiliser les environnements de test, et suivre les évolutions d’API. Cet accès ne permet pas d’exécuter de paiements. Pour permettre la connexion, le marchand crée un accès API dédié à l’intégrateur, avec des droits strictement limités et révocables à tout moment. Toutes les opérations techniques sont réalisées via cet accès, sous le contrôle du marchand. Si l’intégrateur est déclaré Mandataire d’Opérations de Banque et de Services de Paiement (MOBSP) auprès de l’Orias, il peut : initier une demande d’enrôlement pour le compte d’un marchand, guider ce dernier dans la constitution de son dossier, et transmettre un lien d’enrôlement personnalisé CentralPay. Le statut MOBSP ne permet ni l’exécution d’opérations ni l’accès aux fonds, mais encadre juridiquement l’accompagnement du marchand dans son entrée en relation. ➡️ Si l’intégrateur n’est pas déclaré MOBSP, c’est au marchand de contacter directement CentralPay pour initier sa demande d’ouverture de compte, en précisant l’identité de l’intégrateur avec lequel il collabore afin de permettre son rattachement technique. 🔹 2. Modèle Partenaire Technique Le Partenaire Technique est un acteur qui développe une solution mutualisée (ex : marketplace, plateforme SaaS), à destination de plusieurs marchands ou participants. Il opère depuis un ou plusieurs points de vente dont il est le titulaire. Les opérations sont ensuite traitées par CentralPay depuis un compte centralisateur, également détenu par CentralPay. Cela permet au Partenaire d’avoir une visibilité sur les flux, sans jamais en détenir la maîtrise ni les initier. Responsabilités et fonctionnement : Le Partenaire Technique dispose de ses propres accès API, délivrés par CentralPay. Il peut consulter les transactions réalisées pour les marchands affiliés à ses points de vente. Il n’initie aucun paiement et ne peut accéder aux soldes ou effectuer de reversements. Toutes les opérations sont exécutées exclusivement par CentralPay. Dans ce cadre, CentralPay peut gérer des paiements en mode 1 pour X : un payeur peut régler plusieurs marchands simultanément. Facturation : Le Partenaire est facturé directement par CentralPay. Les commissions qu’il perçoit sont prélevées par CentralPay sur les comptes de paiement des marchands, puis créditées sur son compte de commission. Pour aller plus loin sur le modèle Partenaire Technique Le partenaire technique développe une solution mutualisée (ex. marketplace, plateforme SaaS) intégrant CentralPay. Il opère depuis un ou plusieurs points de vente ouverts à son nom, qui accueillent les transactions des marchands affiliés. Chaque marchand affilié contracte directement avec CentralPay et détient son propre compte CentralPay. Il signe les Conditions Générales de Compte de Paiement et est soumis aux mêmes obligations réglementaires que tout utilisateur professionnel. Le partenaire transmet à CentralPay les données commerciales des transactions (montant, référence, commission…) recueillies sur sa plateforme. CentralPay analyse ces informations, puis instruit et exécute l’opération pour le compte du marchand concerné. Les paiements sont crédités sur le compte CentralPay du marchand. Si une commission est prévue, CentralPay la prélève automatiquement et la reverse sur le compte de commission du partenaire, selon les conditions fixées dans les CGU du partenaire. Le partenaire ne détient jamais de fonds de tiers, ne donne aucune instruction de paiement, et ne peut intervenir dans les reversements ou la tenue de compte. Il n’agit ni pour compte de tiers ni au nom de CentralPay. L’accès au compte centralisateur de CentralPay mis à disposition du partenaire est à usage purement informatif : il permet de visualiser les transactions, mais n’offre aucun droit d’exécution ou d’accès aux soldes. En cas d’enregistrement MOBSP, le partenaire peut accompagner ses marchands dans leur entrée en relation (enrôlement via API, transmission du lien d’inscription, assistance documentaire), sous réserve de validation préalable par CentralPay. ➡️ Si le partenaire n’est pas MOBSP, chaque marchand doit initier lui-même sa demande de création de compte ou son rattachement à la plateforme, en précisant l’identité du partenaire concerné afin d’activer les bons droits techniques. 🟩 3. Règles de conformité communes Pour les deux modèles : Le Partenaire ou Intégrateur n’est jamais habilité à transmettre d’instructions de paiement. Il ne détient aucun fonds et n’agit jamais en son nom propre pour l’exécution de services de paiement. Les comptes bancaires, les reversements et la détention de fonds de tiers sont strictement encadrés par CentralPay. Aucune délégation réglementaire d’exécution de service de paiement n’est accordée à ces acteurs. 🟨 4. Déclaration MOBSP (Mandataire d’Opérations de Banque et Services de Paiement) Un Intégrateur ou un Partenaire Technique peut, s’il le souhaite, être déclaré en tant que MOBSP auprès de l’ORIAS, sous la supervision de CentralPay. Cette déclaration permet : D’initier une demande d’entrée en relation pour le compte du marchand ; De collecter et transmettre les pièces justificatives via l’API Onboarding CentralPay ; D’assister le marchand dans ses démarches contractuelles, techniques et documentaires. Le statut de MOBSP ne modifie en rien les restrictions précédemment énoncées. Il ne confère aucun droit supplémentaire sur les fonds ou les opérations de paiement, mais autorise la présentation commerciale et l’accompagnement réglementé du marchand dans sa relation avec CentralPay. Déclaration MOBSP (Orias) ℹ️ Avant de lire cette page, veuillez consulter la rubrique dédiée à l'entrée en relation pour les partenaires. Les partenaires CentralPay basés en France opèrent avec le statut d’intermédiaires en opérations de banque et en service de paiement (IOBSP), plus précisément en tant que Mandataires en Opérations de Banques et Services de Paiement (MOBSP). Pour devenir partenaire MOBSP de CentralPay, vous devez vous déclarer à l’ORIAS. CentralPay devra ensuite vous déclarer en tant que son mandataire. Votre partie peut être réalisée en quelques heures, celle de CentralPay prend quelques jours. L’ORIAS peut quant à elle prendre jusqu’à deux mois pour examiner votre demande. Bien que ce processus vous incombe, CentralPay peut vous assister en cas de besoin. Contactez notre service client en cas de besoin. 1. Préparez vos données 1.1. Obtenez votre attestation de mandat Après avoir signé votre contrat de partenariat avec CentralPay : Envoyez un e-mail à notre service client qui inclut votre raison sociale et votre numéro SIREN CentralPay vous répondra avec votre attestation de mandat. Vous aurez besoin de ce document pour l’étape 3.3. 1.2. Préparez vos documents justificatifs Lors de l’étape 3.3 du processus d’inscription, vous devrez fournir les pièces justificatives suivantes : KBIS datant de moins de trois mois Justificatif d’aptitude professionnelle : diplôme dans une école de commerce ou de gestion agréée ou certification RNCP (NCF 122, 128, 313 ou 314, niveaux 7 à 5) ou reconnaissance par le CIEP pour les diplômes étrangers Si vous ne disposez pas d’un justificatif d’aptitude professionnelle accepté par l’Orias, envoyez un email à notre service client. CentralPay peut vous aider à suivre la formation nécessaire. Voir l’image ci-jointe, faisant référence à la catégorie Niveau III – IOBSP (niveau 3). 2. Créez votre compte ORIAS 2.1. Accéder au formulaire Allez sur le site de l’ORIAS Faites défiler vers le bas jusqu’à voir la section Comment ça marche ? Cliquez sur S’inscrire Vous serez redirigé vers le formulaire d’inscription. 2.2. Saisir les informations Entrez votre numéro SIREN Saisissez les informations sur votre entreprise. Assurez-vous de vous inscrire en tant que personne morale / entité juridique Saisissez les informations de votre représentant légal Saisissez les coordonnées de votre représentant légal Saisissez les coordonnées de votre entreprise, y compris votre site web si vous en avez un Entrez l’adresse de votre entreprise Vérifiez toutes les informations que vous avez saisies, puis cliquez sur Valider 2.3. Connectez-vous à votre compte ORIAS Vérifiez votre boîte de réception pour un email de l’ORIAS (no-reply-orias@orias.fr). L’email contient votre identifiant et un mot de passe provisoire. Retournez sur le site de l’ORIAS Cliquez sur Connexion / Login Saisissez votre identifiant et votre mot de passe provisoire depuis votre email Suivez les instructions sur votre écran pour modifier votre mot de passe, puis enregistrez-le Après avoir enregistré votre nouveau mot de passe, vous serez redirigé vers votre espace compte ORIAS 3. Réalisez une nouvelle demande d’inscription 3.1. Enregistrez votre entreprise Cliquez sur Nouvelle inscription pour démarrer votre inscription, un formulaire apparaît Choisissez Activité IOB Choisissez ensuite Mandataire non-exclusif en opérations de banque et en services de paiement (MOBSP) Cliquez sur Soumettre 3.2. Fournissez des informations complémentaires Sélectionnez la case précisant que vous complétez votre inscription à titre de Mandataire non exclusif en opérations de banque et en services de paiement Si un autre type d’inscription est spécifié, utilisez le bouton Précédent de votre navigateur pour revenir à la page précédente et réessayez. Pour la première question, choisissez la réponse : Je déclare que l’on ne me confie pas de fonds Pour la deuxième question, choisissez la réponse : Accessoire, indiquant à l’ORIAS que les services financiers ne sont pas l’activité principale de votre entreprise Pour la troisième question, choisissez la réponse : Oui, indiquant à l’ORIAS que votre entreprise propose du crédit (ou d’autres services bancaires et de paiement) uniquement à titre de service secondaire Cliquez sur Aller à l’étape « Pièces justificatives » 3.3. Fournissez vos documents justificatifs Soumettez votre KBIS Soumettez votre mandat d’attestation, qui est le certificat de mandat de l’étape 1.1 Soumettez votre Capacité professionnelle pour « vous » (Niveau I IOBSP), qui constitue votre preuve d’aptitude professionnelle de l’étape 1.2. Cliquez sur Aller à l’étape suivante 3.4. Payez votre inscription La dernière étape consiste à payer votre inscription. Notez que vous payez pour l’enregistrement de Mandataire non exclusif en opérations de banque et en services de paiement. Sans payer les frais, votre inscription ne peut être finalisée Choisissez de payer avec votre Carte bancaire, ou cliquez sur Choisir un autre mode de paiement pour payer par Virement (virement) ou Chèque (chèque) Après avoir payé, cliquez sur Télécharger la facture pour télécharger votre reçu Cliquez sur Terminer la demande d’inscription pour finaliser votre inscription Vous recevrez votre numéro d’inscription ORIAS par e-mail, confirmant que votre inscription est terminée. Envoyez ce numéro au service client de CentralPay par email 4. CentralPay vous enregistre en tant que MOBSP Après avoir envoyé à CentralPay votre numéro d’enregistrement Orias par email, CentralPay vous enregistre en tant que Mandataire non exclusif en opérations de banque et en services de paiement (MOBSP). 5. L’ORIAS examine votre candidature L’ORIAS examine vos documents et votre candidature pour s’assurer que votre dossier est entièrement conforme. L’ORIAS vous informera de sa décision finale par email. Si elle est approuvée, l’e-mail contient également la date à laquelle votre statut de MOBSP prendra effet. N’hésitez pas à contacter l’ORIAS par téléphone (09.69.32.59.73) ou par email (contact@orias.fr) si vous ne recevez pas à temps les informations concernant votre candidature. 6. Mettez à jour vos mentions légales Après avoir reçu l’agrément de l’ORIAS et être devenu MOBSP, assurez-vous de mettre à jour vos mentions légales. Ajoutez quelque chose de similaire à l’exemple suivant au pied de page de votre site Web, dans votre page de mentions légales et partout où vous distribuez ou vendez des services de paiement. [Raison sociale], société immatriculée au RCS de [ville d’enregistrement] sous le numéro [numéro RCS], et inscrite au Registre unique des Intermédiaires en Assurance, Banque et Finance sous le numéro d’immatriculation [numéro d’enregistrement ORIAS] en qualité de Mandataire non exclusif en opérations de banque et en services de paiement. Modèle Partenaire avec statut Distributeur de Monnaie Électronique (DME) ou Agent de Services de Paiement (Agent PSP) Certains projets nécessitent un cadre réglementaire spécifique permettant à des partenaires d’agir au nom de CentralPay, établissement agréé par l’ACPR. Deux statuts sont prévus par la réglementation française : Le Distributeur de Monnaie Électronique (DME), pour la gestion de valeur stockée dans des projets de type plateformes C2C, titres prépayés, réseaux fermés, etc. L’Agent de Prestataire de Services de Paiement (Agent PSP), pour les projets nécessitant une gestion active des flux de paiement (encaissements, transferts, reversements). Ces modèles permettent une plus grande autonomie du partenaire, mais s’accompagnent de contraintes réglementaires fortes, sous la responsabilité de CentralPay. 🟣 1. Partenaire Distributeur de Monnaie Électronique (DME) ➤ Cas d’usage typique Plateformes de vente entre particuliers (C2C), Réseaux d’enseignes prépayées ou de bons cadeaux, Programmes de fidélité à valeur monétaire stockée. ✅ Rôle du DME Le distributeur agit pour le compte de CentralPay dans la mise à disposition et la gestion de la monnaie électronique. Fonctionnalités : Mise en relation de CentralPay avec les utilisateurs finaux (les “Participants”), Transmission à CentralPay des instructions de chargement (montant, bénéficiaire, commission), Visualisation et suivi des opérations via un compte centralisateur dédié, Transfert de valeur entre utilisateurs (comptes de monnaie électronique), Remboursement de la monnaie électronique à la demande de l’utilisateur, Détention d’un compte de commission pour percevoir les frais définis dans ses CGU. ⚠️ Limites fonctionnelles Le DME ne détient jamais les fonds, Il n’intervient pas sur les services de paiement régulés (ex : virements SEPA, carte, prélèvements), Il ne peut pas sous-traiter son activité, sauf accord explicite de CentralPay. 📋 Contraintes réglementaires Signature d’un contrat de distribution avec CentralPay, Dépôt d’un dossier de demande d’enregistrement à l’ACPR, sur initiative de CentralPay, Mise en conformité organisationnelle : dispositifs internes de sécurité, confidentialité, gestion des incidents, continuité d’activité, Supervision permanente par CentralPay, incluant : Contrôle de l’usage de l’API, Reporting régulier sur l’activité, Formation obligatoire des équipes du DME, Validation des CGU utilisées auprès des Participants. 🔵 2. Partenaire Agent de Services de Paiement (Agent PSP) ➤ Cas d’usage typique Plateformes B2B avec flux financiers complexes, Outils de gestion financière ou de trésorerie pour tiers, Solutions SaaS intégrant l’encaissement et le reversement. ✅ Rôle de l’Agent L’Agent PSP agit en tant que représentant réglementaire de CentralPay pour la fourniture de services de paiement. Fonctionnalités : Collecte de données KYC/KYB des utilisateurs (niveau 1), Accompagnement à l’ouverture de comptes CentralPay, Détention d’un compte de collecte, utilisé pour encaisser les paiements des utilisateurs finaux, Gestion des transferts de fonds vers les comptes de paiement CentralPay de chaque bénéficiaire, Pilotage des reversements (PAYOUT) vers les comptes bancaires externes, Détention d’un compte de commission, Éventuellement, utilisation d’un compte de paiement propre pour ses propres encaissements. 🛡️ CentralPay reste responsable CentralPay reste pleinement responsable des services fournis à l’utilisateur final, L’agent agit dans le strict cadre du mandat qui lui est confié, Toute opération réalisée via la plateforme est auditable, traçable, et documentée. 📋 Contraintes réglementaires Signature d’un contrat d’agent, Enregistrement officiel sur le registre des agents de l’ACPR (via CentralPay), Évaluation stricte de la capacité organisationnelle du partenaire, Exigences renforcées en matière de : Contrôle LCB-FT, Protection des données, Traçabilité des flux financiers, Reporting périodique à CentralPay sur : Le volume d’activité, Les incidents, Le respect des procédures, Possibilité d’audit sur pièce ou sur site, Formations obligatoires pour les équipes opérationnelles. Déclaration Agent PSP (ACPR) Rôle de l’ACPR L’ACPR (Autorité de Contrôle Prudentiel et de Résolution), organe de la Banque de France, est le seul régulateur compétent pour valider les déclarations d’Agents d’un Établissement de Paiement ou de Monnaie Électronique comme CentralPay. L’ACPR traite uniquement avec les Établissements régulés, sans contact direct possible pour le futur Agent. Étapes de déclaration d’un Agent ÉtapeDescription1. Constitution du dossierRéalisée par CentralPay avec le concours du futur Agent.2. Réponses aux demandes ACPRPilotées par CentralPay avec l’aide du futur Agent.3. Décision de l’ACPRCommuniquée à CentralPay. 1. Responsabilités de l’Agent CentralPay prend en charge les obligations complexes ou techniques. Toutefois, l’Agent doit garantir un haut niveau de vigilance en matière de LCB-FT (Lutte Contre le Blanchiment de Capitaux et le Financement du Terrorisme). L’Agent est notamment responsable de : La compréhension de l’activité de ses sous-marchands ; La vérification de la réalité économique des opérations ; La lutte contre la fraude. L’Agent doit signer : Un Contrat Cadre d’Agent de Paiement avec CentralPay ; Des Conditions Générales d’Utilisation spécifiques aux vendeurs. Si l’Agent internalise certaines fonctions critiques (ex. vérification KYC), un Contrat d’Externalisation de Prestations Essentielles doit également être signé. 2. Devenir Partenaire Agent CentralPay Le processus d’enregistrement comme Agent s’étale sur plusieurs mois et suit les étapes suivantes : 2.1. Résumé des étapes ÉtapeDétails1. Compréhension du modèle– Explication des services rendus par l’Agent– Définition du modèle d’affaires– Validation par les services Juridique et Conformité de CentralPay2. Offre commerciale– Présentation par CentralPay3. Validation– Validation juridique et conformité– Accord sur l’offre commerciale et les tarifs4. Test & Intégration– Accès à la sandbox– Réunion projet avec l’équipe technique- Intégration technique5. Instruction ACPR– Collecte des éléments réglementaires– Constitution et dépôt du dossier auprès de l’ACPR6. Mise en production– Tests en environnement de recette– Passage en production 2.2. Pièces à fournir à CentralPay Phase 1 – Pré-constitution du dossier CGU du service de paiement Définition des activités régulées, services associés, modèle d’affaires Organigramme (y compris répartition des effectifs par service) Structure de l’actionnariat Flux prévisionnels sur 3 ans confiés à CentralPay Nombre d’enrôlements prévisionnels sur 3 ans Cas de reprise de KYC existant (migration) Préparation du contrat d’Agent Phase 2 – Déclaration auprès du régulateur Signature du contrat d’Agent CentralPay collecte et dépose les pièces suivantes : Kbis < 3 mois de la société et des sociétés gérantes Statuts à jour signés de la société et des sociétés gérantes Pièce d’identité couleur des dirigeants CV des dirigeants datés et signés Casier judiciaire des dirigeants Déclaration de non-condamnation des dirigeants Répartition de la détention des parts Kbis des personnes morales actionnaires (si applicable) Organigramme du Groupe (si applicable) PV d’AG récents (fusion, perte > 50% du capital, changement direction, etc.) Peuvent également être demandés par l’ACPR : Bilans et comptes de résultat récents États financiers en cours ou de l’année précédente Toute pièce jugée utile par le régulateur 2.3. Délais d’instruction Instruction par CentralPay : ~2 semaines après réception complète des pièces Délai de l’ACPR : jusqu’à 2 mois, avec premières questions sous 30 jours en général 2.4. Fin d’instruction Dès validation du dossier, l’Agent peut démarrer l’activité avec CentralPay Il est référencé dans les registres publics de l’ACPR avec un numéro d’enregistrement obligatoire dans les CGU et communications officielles 2.5. Particularité – Agents Télécom SVA (numéros surtaxés) Obligation de fournir un récapitulatif des minutes téléphoniques par opérateur Transmission du détail de répartition des encaissements à CentralPay Le service Conformité CentralPay s’assure que les marchands sont correctement crédités Déclaration Distributeur ME (ACPR) Les Établissements émetteurs de monnaie électronique comme CentralPay peuvent mandater des Distributeurs de Monnaie Électronique (DME) afin de collecter des fonds et d’assurer les échanges permettant l’achat et le remboursement de ME dans un réseau de participants défini. La déclaration d’un Distributeur de Monnaie Électronique se déroule en deux étapes : Le montage du dossier de déclaration : réalisé par CentralPay avec l’aide de son futur DME L’instruction du dossier à l’ACPR : réalisé par CentralPay. Elle ne nécessite pas de validation particulière de l’ACPR 1. Responsabilité du partenaire DME CentralPay réalise tous les processus complexes ou nécessitant de fortes compétences. Néanmoins, vous êtes toujours garant de la tenue d’un haut niveau d’exigence dans le suivi et l’application des règles de LCB-FT (Lutte Contre le Blanchiment et le Financement du Terrorisme). À ce titre, vous devez apporter à CentralPay des certitudes sur les conditions de réalisation des opérations qui passent par votre intermédiaire, notamment : La réalité économique de l’opération La lutte contre la fraude Les Établissements régulés qui font appel à des distributeurs restent responsables des opérations réalisées par ces derniers. Un cadre juridique précis est donc mis en place. Un statut de Distributeur de Monnaie Électronique passe par : La contractualisation d’un contrat Cadre de Distribution de Monnaie Électronique qui définit les relations entre les parties Des CGU d’utilisation de Monnaie Électronique Dans le cas où un DME internalise certaines fonctions dévolues à CentralPay dans le cadre de ses obligations règlementaires, un contrat de Prestations de Services Essentiels Externalisées devra être signé. C’est par exemple le cas si l’agent internalise la gestion des KYC ou réalise des interfaces de gestion qui ne permettrait pas à CentralPay d’assurer l’exécution du service sans le concours du PSEE. 2. Devenir partenaire DME Devenir Distributeur de CentralPay nécessite le suivi d’étapes qui s’étalent sur plusieurs semaines. Voici un guide qui permet de mieux comprendre les enjeux liés à l’acceptation, puis à l’instruction des dossiers de déclaration des Distributeurs. 2.1. Résumé des étapes Compréhension du modèle Explication des services apportés par le partenaire Définition de son modèle d’affaires Validation par le service Risque & Conformité de CentralPay Offre Commerciale Présentation Validation Validation du Partenaire par le service Risque & Conformité de CentralPay Validation de la proposition commerciale et des conditions tarifaires par le Partenaire Test & Intégration Mise en place de la sandbox Réunion de lancement de projet avec l’équipe technique Phase d’intégration technique Instruction du dossier ACPR Collecte des éléments nécessaires à la constitution du dossier Préparation du dossier Présentation du dossier Mise en production Validation de la recette Mise en production 2.2. Pièces à fournir à CentralPay Prochainement
Notifications email/sms Les notifications peuvent être adressées en fonction des évènements liés à certains objets API : Demande de paiement (PaymentRequest) Contestation carte (dispute) Paiement X fois (installment) Transaction carte (transaction) Reversement (payout) Remboursement carte (refund) Abonnement (subscription) Crédit carte (credit) Transaction SDD (sddTransaction) Transaction SDD inversée (sddTransactionReversal) Mandat (mandate) 1. Types de scénarios de notification Notifiez vos clients et alertez vos collaborateurs automatiquement lorsque certains évènements ont lieu sur votre compte CentralPay : encaissement d’un virement, contestation client, échec de règlement… Vous maitrisez le contenu de chaque notification depuis des templates personnalisés et définissez un mode d’envoi par email, par sms ou par Json. Vous automatisez ainsi le pointage de vos encaissements, les notifications clients, ou encore la mise à jour de votre système d’information. 2. Paramétrage des modèles de notification 2.1. Paramétrage des modèles (templates) Pour commencer le paramétrage de vos notifications, vous devez créer vos modèles de communication (email, sms ou hook) en renseignant les éléments demandés. Par exemple l’objet du mail, le nom et email de l’émetteur, le corps du texte… Vous pouvez intégrer des éléments dynamiques (tags) dans le corps du texte en tapant le caractère « # », qui fera apparaitre la liste des tags disponible pour le type de scénario de notification sélectionné. Attention, si vous utilisez les notifications emails, veillez à nous demander de vous communiquer nos clés SPF et DKIM afin que vous puissiez autoriser CentralPay à envoyer des emails depuis votre domaine. Concernant les SMS, veillez à calculer le nombre de caractères : vous serez facturés d’un SMS par 160 caractères (espaces inclus). Accès paramétrage de templates emails : Portail Utilisateur de RCT Portail Utilisateur de PROD Accès paramétrage de templates SMS : Portail Utilisateur de RCT Portail Utilisateur de PROD Accès paramétrage de templates hooks : Portail Utilisateur de RCT Portail Utilisateur de PROD 2.2. Paramétrage du header et footer pour templates emails En cas de création d’un template email, un « header » et un « footer » devront être créés. Vous pouvez par exemple intégrer votre logo en Header, et vos conditions de contact ou mentions légales en Footer. Accès paramétrage de l’en-tête d’email (header) : Portail Utilisateur de RCT Portail Utilisateur de PROD Accès paramétrage du pied de page d’email (footer) : Portail Utilisateur de RCT Portail Utilisateur de PROD 3. Paramétrage des scénarios de notification Pour spécifier à la plateforme les conditions d’envoi et destinataires de vos notifications, vous devez créer un scénario intégrant une ou plusieurs règles d’envoi. Après avoir choisi le type de scénario souhaité, vous pouvez créer une règle d’envoi. Cette règle est scindée en deux parties : le “QUAND” va permettre de définir l’évènement déclencheur de la notification tandis que le “ALORS” va permettre de choisir les actions qui seront effectuées lorsque l’évènement se produira. Accès paramétrage de scenarios de notification : Portail Utilisateur de RCT Portail Utilisateur de PROD 3.1. Dans la partie « QUAND » : Tapez « # » pour visualiser l’ensemble des attributs disponible pour votre scénario Utilisez des opérateurs logiques pour constituer votre règle : Pour les chaînes de caractères (doivent être entourés de guillemets « ») : = (égal) != (différent de) in (dans ce qui va suivre) not in (pas dans ce qui va suivre) Pour les nombres (attention les montants doivent être renseignés en centimes) : = (égal) != (différent de) < (plus petit que) <= (plus petit ou égal à) in (dans ce qui va suivre) not in (pas dans ce qui va suivre) Pour les boolean (affirmations en vrai ou faux) : = (égal à) != (différent de) Vous pouvez utiliser des conditions pour compléter votre règle : AND (pour ajouter une autre condition d’activation) OR (pour ajouter une autre possibilité d’activition) Il est possible de donner des priorités en mettant des parenthèses autour des conditions. Si vous utilisez les conditionnels AND et OR dans la même règle, il est nécessaire de prioriser. Si vous utilisez plusieurs fois AND ou plusieurs fois OR, il sera également nécessaire de prioriser chaque partie. Exemples de règles : #end_user_country in ('FRA', 'BE') #authorisation_status = 'FAILURE' or (#transaction_amount > 100000 and #context = 'TRANSACTION_RISKY' ) #transaction_amount > 100000 and ( #authorisation_status = 'FAILURE' or #context = 'TRANSACTION_RISKY' ) ((#transaction_amount > 100000 and #context = 'TRANSACTION_RISKY') or ( #authorisation_status = 'FAILURE' and #transaction_amount < 100000 )) and (#card_product_type = 'Consumer') Avant de pouvoir enregistrer une règle, il est obligatoire de d’abord tester sa règle avec le bouton « tester ». Cela va permettre de vérifier que votre règle est grammaticalement correcte. Attention, cela ne garantit pas que votre règle correspond à ce que vous souhaitiez faire. 3.2. Dans la partie « ALORS » : Le “ALORS” va permettre de choisir le destinataire et le template utilisé pour la notification. Vous n’avez accès qu’aux templates qui correspondent au type de template requis (SMS, Email, Hook) et qui correspond au type de scénario choisi (transaction carte, demande de paiement, remboursement …).
Transaction par virement Articles Informations générales IBAN Virtuels Transaction par virement Pay by Bank - Initiation de paiement (PIS) Rapprochement à une demande de paiement R-transaction SCT Virements internationaux Retours, statuts et webhooks Informations générales 1. Fonctionnement Le virement bancaire est le moyen de paiement le plus répandu pour les règlements d’entreprises. Il consiste en un transfert direct des fonds d’un compte (bancaire ou de paiement) à un autre, sans utiliser de support additionnel comme une carte par exemple. La personne physique ou morale qui demande l’émission du virement est dénommée le donneur d’ordre (ou l’émetteur), celle qui reçoit l’argent le bénéficiaire. Contrairement à un paiement par carte ou par prélèvement SEPA, seul l’émetteur lui-même peut initier un virement. Il se rend ainsi sur l’espace personnel de sa banque, déclare les coordonnées bancaires du bénéficiaire (IBAN + BIC + Nom de titulaire), puis renseigne un montant et une référence de virement. Quelques informations importantes : Le délai de réception d’un virement classique chez CentralPay est de 4 à 24 heures ouvrées (contre 24 à 48 heures ouvrées chez la majorité des banques traditionnelles). Il sera également possible de recevoir des virements instantanés (réception <5 secondes) à partir d’octobre 2024 Le virement ne présente pas de risque financier majeur pour le marchand bénéficiaire, car l’émetteur s’authentifie fortement auprès de sa banque et ne peut donc pas contester cette opération Les banques émettrices accordent un plafond de règlement par virement nettement plus élevé que celui appliqué aux opérations de prélèvement SEPA ou de règlement par carte Selon les fonctionnalités proposées par sa banque, l’émetteur peut programmer un virement récurrent ou à date différée 2. Types de réseaux acceptés Il existe deux types de virements bancaires : Les virements SEPA (ou SEPA Credit Transfer) : Utilisés pour les opérations en EUROS réalisées entre deux pays membres de la zone SEPA (= 27 pays de l’Union européenne + Royaume-Uni, Monaco, Andorre, Vatican, Suisse, Liechtenstein, Norvège, Islande et Saint-Marin) Les virements internationaux : Utilisés pour les opérations internationales en EUROS ou en devises, via le réseau SWIFT Les frais applicables aux réseaux SEPA sont très largement favorables (à peine quelques dizaines de centimes contre plusieurs dizaines d’euros pour SWIFT). SWIFT permet cependant plusieurs options liées au règlement de ses frais : à la charge de l’émetteur, du bénéficiaire ou partagés. CentralPay est atteignable par toutes les banques de l’Espace Économique Européen utilisant les réseaux SEPA (via STEP2 pour les SCT/SDD, ainsi que TIPS et RT1 pour les « Instant SCT »). Seuls les virements de réseaux internationaux ou en devises hors EUROS ne sont pas recevables pour le moment (via réseau SWIFT par exemple). IBAN Virtuels Le paiement par virement bancaire impose une responsabilité au client émetteur : celle de renseigner les coordonnées bancaires (IBAN + BIC + Nom du titulaire), le montant du règlement mais aussi la référence de virement. Une absence ou un mauvais formatage de la référence (causé par le client ou par le système de sa banque) contraint le bénéficiaire d’analyser manuellement le virement reçu pour le rapprocher à la bonne facture et au bon poste client. CentralPay vous permet de présenter un IBAN virtuel différent à chacun de vos clients (Customer) ou dans chacune de vos factures (PaymentRequest). Ainsi lors de la réception d’un virement, CentralPay identifie automatiquement l’émetteur et peut rapprocher la facture pour vous, selon l’IBAN virtuel utilisé par votre client, même en cas d’erreur de référence. Un IBAN Virtuel est en tous points identique à un IBAN classique, ce qui rend le processus entièrement transparent pour vos clients. Ce service vous permettra notamment : D’être informé instantanément quand un client vous a réglé par virement D’automatiser vos alertes internes et vos relances clients (via le service de notifications) D’automatiser le rapprochement de vos paiements dans vos solutions comptables ou de facturations (ERP…) Pour les plateformes et marketplaces : d’identifier facilement le marchand bénéficiaire et de lui transférer les fonds Vous pourrez créer des IBAN Virtuels CentralPay depuis différents services de la plateforme : Depuis le service Customer Depuis le service SCT Transaction Depuis le service PaymentRequest Chaque compte de paiement ou de monnaie électronique dispose nativement d'un IBAN Virtuel dédié 1. Consulter l’IBAN Virtuel de ses comptes Vous pouvez retrouver l’IBAN Virtuel de vos comptes depuis le Portail utilisateur Administration Comptes IBAN/BIC : Il est également possible d’interroger l’API CentralPay avec le endpoint /bankAccount Accès : Portail Utilisateur de RCT – Comptes Portail Utilisateur de PROD – Comptes 2. Créer un IBAN Virtuel dédié à un Customer Vous pouvez créer un IBAN Virtuel dédié à un client lors de la création d’un nouveau Customer, ou via l’update d’un Customer existant. Pour cela, vous devez renseigner le champ « walletIdForIban » avec l’UUID du compte de paiement sur lequel vous souhaitez recevoir les fonds. Vous pouvez retrouver ce dernier depuis le Portail utilisateur Administration Comptes UUID : Accès : Portail Utilisateur de RCT – Comptes Portail Utilisateur de PROD – Comptes En retour, vous recevrez dans le champ « bankAccounts » les valeurs « iban » et « bic » constituant l’IBAN Virtuel de votre Customer. ℹ️ Le BIC des IBAN émis par CentralPay est CEAYFR22 3. Création d’un IBAN Virtuel dédié à une SCT Transaction Comme pour un Customer, vous pouvez créer un IBAN Virtuel dédié à une transaction par virement lors de la création d’une SCT Transaction. ℹ️ Pour rappel, une SCT Transaction est créée automatiquement par CentralPay lorsque vous recevez un virement sur votre IBAN Virtuel principal ou celui d'un Customer. Il est cependant possible de créer une SCT Transaction en amont afin de lui affecter un IBAN Virtuel dédié et une référence personnalisée par exemple. Pour cela, vous devez renseigner le champ « ibanWalletId » avec l’UUID du compte de paiement sur lequel vous souhaitez recevoir les fonds. Vous pouvez retrouver ce dernier depuis le Portail utilisateur Administration Comptes UUID : Accès : Portail Utilisateur de RCT – Comptes Portail Utilisateur de PROD – Comptes En retour, vous recevrez dans le champ « bankAccounts » les valeurs « iban » et « bic » constituant l’IBAN Virtuel de votre SCT Transaction. ℹ️ Un IBAN Virtuel dédié à une SCT Transaction n'est plus fonctionnel une fois que sa SCT Transaction a été entièrement réglée. Il est cependant possible de recevoir plusieurs virements d'un montant inférieur sur un même IBAN pour compléter le montant de la SCT Transaction.À noter que si un virement reçu dépasse le montant de la SCT Transaction, il sera tout de même accepté. Vous devrez réaliser un remboursement partiel pour reverser le trop perçu à votre client. 4. Utilisation des IBAN Virtuels depuis les demandes de paiement Il est possible d’utiliser des IBAN Virtuels Customer ou SCT Transaction depuis le service de demande de paiement, si vous acceptez le moyen de paiement « SCT Transaction ». Vous pouvez sélectionner le type d’IBAN Virtuel que vous souhaitez afficher dans vos demandes de paiement depuis le champ « Viban prioritaire » des paramétrages de votre point de vente. Si vous sélectionnez : SCT : La demande de paiement créera systématiquement un IBAN Virtuel dédié à la SCT Transaction Client : La demande de paiement utilisera l’IBAN Virtuel du Customer s’il en dispose déjà d’un, sinon elle en créera un automatiquement ℹ️ Dans le cas d'une demande de paiement avec vIBAN à la SCT Transaction uniquement : Si vous annulez la demande de paiement, le vIBAN associé ne sera plus atteignable. Ainsi, chaque virement reçu sur ce vIBAN sera automatiquement renvoyé à son émetteur. Transaction par virement 1. Fonctionnement Une SCT Transaction représente un virement bancaire reçu sur un de vos IBAN Virtuel CentralPay. Elle peut être créée de trois manières différentes : AutomatiquementSi vous adressez un IBAN Virtuel dédié à l’un de vos clients ou l’un de vos comptes de paiement, CentralPay créera la SCT Transaction automatiquement lors de la réception du virement. Vous pourrez ensuite rapprocher cette SCT Transaction à votre commande/facture en récupérant la valeur du champ « description » (correspondant à la référence renseignée par votre client dans son espace bancaire) Depuis le service SCT TransactionSi vous souhaitez automatiser le rapprochement du virement à la transaction, vous pouvez : Créer une SCT Transaction avec un IBAN Virtuel dédié : ce qui permettra un rapprochement sûr à 100% à votre transaction. Attention, dans ce cas vos clients devront déclarer un nouveau bénéficiaire dans leur espace bancaire à chaque virement qu’ils vous adresseront Créer une SCT Transaction en utilisant un IBAN Virtuel Customer et récupérer la référence courte générée par CentralPay pour cette transaction : ce qui permettra de rapprocher systématiquement le virement au profil client correspondant, et potentiellement jusqu’à la transaction si votre client a bien renseigné la référence dans son virement Depuis le service de demande de paiementSi vous souhaitez déléguer à CentralPay l’affichage des informations de règlement à vos clients (montant, IBAN, BIC, référence…), vous pouvez créer une Demande de paiement autorisant les paiements par SCT Transaction. Cette option permet également de gérer facilement les virements multiples ou les règlements clients depuis plusieurs moyens de paiement 2. Créer une SCT transaction Créer une SCT Transaction : Renseignez un montant en centimes (amount), et une devise (currency) Si vous souhaitez créer un IBAN Virtuel dédié à la SCT Transaction, renseignez le champ « ibanWalletId » avec l’UUID de votre compte de paiement sur lequel vous souhaitez recevoir les fonds. Vous pouvez retrouver ce dernier depuis le Portail utilisateur Administration Comptes UUID Si vous souhaitez utiliser un IBAN Virtuel existant (dédié à un Customer ou à un compte de paiement), renseignez le champ « iban » avec l’IBAN souhaité Vous pourrez ensuite récupérer la valeur « sepaReference » générée par CentralPay et la transmettre à votre client pour laisser CentralPay rapprocher le virement à votre transaction Ou renseigner la valeur « merchantSctTransactionId » avec votre propre référence personnalisée pour rapprocher vous-même le virement via nos exports d’opérations Pay by Bank - Initiation de paiement (PIS) 1. Fonctionnement Le service d’initiation de paiement (PIS – Payment Initiation Service) permet à vos clients de réaliser un virement bancaire directement depuis leur environnement bancaire, sans avoir à saisir manuellement les coordonnées du bénéficiaire. Cette fonctionnalité repose sur le protocole Open Banking, en conformité avec la DSP2. Chez CentralPay, ce service est proposé sous l’intitulé Pay by Bank et est actuellement accessible uniquement via le formulaire de paiement hébergé (SmartForm), dans le cadre de l’utilisation du service PaymentRequest. ℹ️ Le service est uniquement disponible via le Smart Form (PaymentRequest). Il n’est pas encore possible d’utiliser ce mode de paiement en tant que moyen unique, il est toujours présenté en complément du service de paiement par virement traditionnel. L’expérience de paiement dépend des interfaces de la banque du client payeur. 2. Activation du service L’initiation de paiement n’est pas activée par défaut. Pour en bénéficier, il est nécessaire d’en faire la demande auprès des équipes support de CentralPay. 3. Utilisation via PaymentRequest Pour permettre à vos clients d’initier un virement directement depuis le formulaire de paiement, vous devez : Créer une PaymentRequest selon les modalités habituelles. Inclure le moyen de paiement suivant dans la propriété payment_methods :• PIS Standard « payment_methods » : [« SCT_TRANSACTION_PIS »]• PIS IP « payment_methods » : [« SCT_TRANSACTION_PIS_IP »] Lorsque ce moyen de paiement est présent, le Smart Form proposera à l’utilisateur un choix entre : Le virement bancaire classique (affichage des coordonnées bancaires à recopier) L’initiation de paiement via son environnement bancaire (Pay by Bank) ℹ️ Il n’est pas possible à ce stade de forcer l’utilisation exclusive de l’initiation de paiement. Le formulaire affichera toujours l’alternative avec les coordonnées bancaires classiques. 4. Parcours utilisateur L’utilisateur sélectionne « Pay by Bank » dans le formulaire Il choisit sa banque dans la liste proposée Il est redirigé vers l’environnement de sa banque pour valider l’opération de virement Une fois le paiement initié, il est redirigé vers votre page de retour 5. Suivi et statuts Une fois la PaymentRequest créée, le statut du virement est disponible via l’API comme pour tout autre paiement : Le champ payment_method sera valorisé à SCT_TRANSACTION Le champ status indiquera la progression de l’initiation de paiement (par exemple pending, succeeded, failed) ℹ️ Comme pour les virements classiques, la finalisation du paiement dépend de l’exécution effective du virement par la banque du client. Le client peut choisir entre réaliser un virement standard (à J+1) ou un virement immédiat. 6. Liste des banques disponibles par pays ℹ️ En environnement de recette, une banque nommée "Connecteur de test" est affichée pour vous permettre de tester le parcours de bout en bout. Attention : le montant maximum autorisé sur ce connecteur de test est de 20€. Banques françaises : InstitutionStandardInstantanéAllianz Banque✅🚫Arkéa Banking Services✅🚫Arkéa Banque Entreprises et Institutionnels✅✅Arkéa Banque Privée✅✅AXA Banque✅✅Banque BCP✅✅Banque Chalus✅✅Banque de Savoie✅✅Banque des Territoires✅🚫Banque Européenne Crédit Mutuel✅✅Banque Populaire✅✅Banque Transatlantique✅✅BBVA (Non activé)🚫🚫BforBank✅🚫BNP Paribas✅✅BNP Paribas Entreprises✅🚫BNP Paribas Nouvelle-Calédonie (Non activé)🚫🚫BoursoBank✅✅BRED✅✅BTP Banque✅✅Caisse d’Épargne Particuliers✅✅Caisse d’Épargne Professionnels✅✅CCMDirect (Non activé)🚫🚫CIC✅✅CIC Banque Privée✅✅Crédit Agricole✅✅Crédit Coopératif✅✅Crédit Maritime✅✅Crédit Mutuel✅✅Crédit Mutuel de Bretagne✅✅Crédit Mutuel du Sud Ouest✅✅Fortuneo✅✅Hello bank!✅✅ING Wholesale Banking✅🚫La Banque Postale✅✅LCL✅✅Louvre Banque Privée✅✅Manager.one✅🚫Memo Bank✅✅Monabanq✅✅N26✅✅Nef Pro✅🚫Neuflize OBC (Non activé)🚫🚫Palatine✅✅Qonto✅🚫Revolut✅🚫Société Générale✅✅ Rapprochement à une demande de paiement CentralPay met à disposition un service nommé bankReconciliation permettant de lier une ou plusieurs SCT Transaction à une demande de paiement (PaymentRequest) si vous n’utilisez pas les IBAN Virtuel dédié aux SCT Transaction. 1. En cas d’erreur de référence par votre client Lorsque vous utilisez les demandes de paiement avec IBAN Virtuels dédiés à un Customer et que votre client ne renseigne pas correctement la « sepaReference » lors de l’émission de son virement ; CentralPay n’est pas en mesure de rapprocher automatiquement le virement à la demande de paiement. Vous pouvez donc utiliser le service bankReconciliation pour affecter la SCT Transaction reçue à la demande de paiement créée initialement : amount = montant du virement en centimes wireTransferID = ID de la SCT TRANSACTION (accessible dans le hook de la SCT TRANSACTION) paymentRequestBreakdownId = ID du breakdown de la PaymentRequest (accessible dans le hook de la PaymentRequest) 2. Si vous utilisez votre propre référence de commande Si vous souhaitez organiser vos créances clients dans CentralPay grâce au service de Demandes de paiement sans utiliser la page de paiement Smart Form, voici la démarche à suivre : Pour chaque client : Créer un Customer avec vIBAN, récupérer le vIBAN et l’afficher dans votre tunnel de vente avec votre référence de commande Créer en parallèle une paymentRequest contenant cette même référence de commande (dans le champ « merchantPaymentRequestId ») et le montant de commande Dès réception d’un virement client, vous identifiez la commande liée grâce au champ « description » de la SCT Transaction Vous recherchez ensuite une PaymentRequest avec la même référence dans « merchantPaymentRequestId » Si une PaymentRequest présente la même référence, vous l’associez avec le service « bankReconciliation » Si aucune PaymentRequest ne présente la même référence mais que le virement a été reçu sur un vIBAN Customer n’ayant qu’une seule PaymentRequest en attente ou d’un montant identique, vous pouvez faire en sorte de les rapprocher avec une bankReconciliation Si aucune PaymentRequest ne présente la même référence et que le Customer présente plusieurs PaymentRequest en attente de règlement ou d’un montant différent, levez une alerte dans votre système pour faire rapprocher le virement manuellement par votre service financier (qui l’associera manuellement à la bonne PaymentRequest via une bankReconciliation) Les virements non liés à une PaymentRequest seront ainsi facilement identifiables De même que les PaymentRequest non payées ou partiellement payées R-transaction SCT Vous pouvez rembourser une SCT Transaction si celle-ci est « RECEIVED » via le service Refund ou depuis le détail de la SCT Transaction dans le Portail utilisateur. Vous pouvez initier un remboursement total ou partiel en renseignant un montant. Votre client recevra les fonds sur son compte bancaire sous 24 à 48 heures ouvrés après l’opération. Votre compte de paiement est lui débité immédiatement, il doit donc être solvable pour pouvoir réaliser l’opération. Vous ne pouvez pas annuler un remboursement une fois celui-ci réalisé. Virements internationaux Les virements bancaires internationaux sont gérés via le réseau SWIFT (contrairement au réseau SEPA pour les virements européens). Ces virements peuvent être émis depuis un très grand nombre de pays en EUROS ou dans d’autres devises. Il sera prochainement possible d’accepter des virements internationaux via le service SCT Transaction. Veuillez contacter CentralPay si ce service est un enjeu pour le développement de votre activité. Retours, statuts et webhooks 1. Retours liés aux SCT Transactions Il n’existe pas de code retours pour les SCT Transactions. 2. Statuts liés aux SCT Transactions Consultez les Statuts Transaction ➝ Consultez les Statuts Refunds ➝ 3. Webhooks liés aux SCT Transactions Consultez les Webhooks SCT Transaction ➝ Consultez les Webhooks Refunds ➝ Consultez les Webhooks Customer ➝
Pièces justificatives : KYC / KYB Introduction Cette page présente les documents que CentralPay est susceptible de demander à ses utilisateurs et partenaires lors de l’ouverture d’un compte. Les pièces à fournir varient selon : Le type de structure (particulier, société, association, organisme public…) Le profil de risque (faible, moyen, élevé) Le type d’activité exercée. Ces exigences répondent aux obligations réglementaires en matière de lutte contre le blanchiment des capitaux et le financement du terrorisme (LCB-FT). 📝 1. Documents communs (socle KYC) Quel que soit le profil, les documents de base à fournir sont : Une pièce d’identité valide : Utilisateur de l’Espace Economique Européen (EEE) : Carte Nationale d’Identité (CNI), passeport, carte de séjour. Récépissé de renouvellement de titre de séjour (accompagné du titre de séjour périmé) accepté pour les utilisateurs « personnes physiques ». Récépissé de demande de 1er titre de séjour non accepté. Utilisateur hors EEE : uniquement le passeport (passeports issus d’un pays sur liste noire GAFI non acceptés) Un justificatif de domicile de moins de 3 mois : Facture d’énergie ou d’eau (moins de 3 mois). Facture de téléphonie fixe / box internet (moins de 3 mois). Avis d’imposition, taxe foncière ou d’habitation (moins de 3 mois). Quittance de loyer d’un organisme public (moins de 3 mois). Attestation d’hébergement accompagnée de : Pièce d’identité de l’hébergeur. Justificatif de domicile de l’hébergeur (moins de 3 mois). Pour les clients étrangers : Extrait de relevé bancaire de moins de 3 mois. Relevé d’Identité Bancaire (RIB) au nom du client. Déclaration de l’activité exercée et des canaux de commercialisation. Des documents complémentaires peuvent être demandés selon le niveau de risque et l’activité. 🧩 2. Exigences selon le type d’utilisateur 📊 Personnes Physiques (KYC) Type d’utilisateurDocuments systématiquesDocuments complémentaires demandés selon risque / activitéPersonne Physique (🇫🇷 et 🌍)➡️Un document d’identité valide : ↳ CNI (🇪🇺)↳ Passeport↳ Carte de séjour (🇪🇺)↳ Récépissé de renouvellement de titre de séjour, accompagné du titre de séjour périmé (🇪🇺)➡️RIB (Relevé d’Identité Bancaire) à son nom➡️ Déclaration d’activité et de revenus ➡️ Justificatif de domicile (<3 mois)➡️ Justificatifs de revenus : fiche de paie, relevé bancaire, avis d’imposition ➡️ Pour activité de location : taxe foncière ou titre de propriété, attestation de propriétéPersonne Physique (🇫🇷 et 🌍)via workflow d’inscription automatique➡️Un document d’identité valide : ↳ CNI (🇪🇺)↳ Passeport↳ Carte de séjour (🇪🇺)↳ Récépissé de renouvellement de titre de séjour, accompagné du titre de séjour périmé (🇪🇺)➡️Un premier chargement du compte depuis un moyen de paiement dont l’utilisateur est titulaire (virement bancaire ou carte)➡️ RIB (Relevé d’Identité Bancaire) à son nom en cas de premier chargement par carte (pour réaliser des reversements SEPA)➡️ Déclaration d’activité et de revenus ➡️ Justificatif de domicile (<3 mois)➡️ Justificatifs de revenus : fiche de paie, relevé bancaire, avis d’imposition ➡️ Pour activité de location : taxe foncière ou titre de propriété, attestation de propriété 🏢 Personnes morales (KYB) Qui peut créer un compte pour une entreprise ? La création d’un compte CentralPay pour une société, association ou toute autre personne morale doit être réalisée par l’un de ses dirigeants officiellement enregistrés (ex. : gérant, président), figurant dans un registre officiel (type extrait Kbis ou équivalent). Le dirigeant peut toutefois désigner une autre personne (mandataire) pour effectuer la création du compte à sa place. Dans ce cas : Une délégation de pouvoir rédigée par le dirigeant ou, à défaut, le modèle de procuration CentralPay devra être complété et signé. Lors du processus de création, les documents suivants seront requis : La pièce d’identité du mandataire ; La pièce d’identité du dirigeant (mandant). 💡 Ce dispositif permet de sécuriser la procédure tout en vous offrant une gestion souple et conforme à la réglementation. Cas particulier : société dirigée par une autre société Si la société pour laquelle le compte est créé est elle-même dirigée par une autre personne morale, CentralPay doit identifier toutes les entités intermédiaires, jusqu’à la personne physique exerçant un contrôle effectif (ex. : détention de plus de 25% du capital). Dans ce cadre : Des documents KYC/KYB seront demandés pour chaque société intermédiaire ; La personne physique réalisant l’enrôlement doit figurer sur un registre officiel, ou fournir une délégation de pouvoir valide ou une procuration CentralPay signée. Type d’utilisateurDocuments systématiquesDocuments complémentaires demandés selon risque / activitéCompte en indivision (🇫🇷) ➡️CNI / Passeport de tous les indivisaires➡️ Acte d’indivision➡️ Autorisation de gestion ou location signée par tous les indivisaires➡️ RIB au nom de l’indivision➡️ Justificatif de revenus➡️ Historique bancaire➡️ Contrôle des revenus à 33% max➡️ Documents supplémentaires en cas d’activité jugée importanteAuto-entreprise (🇫🇷 et 🌍)➡️ CNI / Passeport➡️ Identification de l’entité :↳ 🇫🇷 : Numéro de SIRENE (récupération automatique du KBIS auprès du greffe)↳ 🌍 : Extrait d’immatriculation (registre local)➡️ RIB de l’auto-entreprise➡️ Avis d’imposition ou justificatif de domicile ➡️ Déclaration d’activitéAssociation loi 1901 (🇫🇷)➡️ CNI / Passeport du Président➡️ Statuts de l’association (certifiés conforme <3 mois)➡️ PV d’Assemblée Générale (PV AG)➡️ Immatriculation ↳ RNA ou SIRENE↳ ou à défaut avis de situation au répertoire SIRENE ou déclaration préfectorale➡️ RIB de l’association➡️ RBE – Registre des Bénéficiaires Effectifs (BE = Administrateurs, trésorier, secrétaire général)↳ ou déclaration équivalente signée par le Président Organisme public (🇫🇷) : Mairie/Département/Région)➡️ CNI / Passeport du représentant➡️ Numéro de SIRENE (récupération automatique du KBIS auprès du greffe) ↳ ou à défaut Avis SIRENE / Infogreffe➡️ RIB au nom de l’organismeSociété cotée / agréée (🇫🇷 et 🌍)➡️ CNI / Passeport du représentant➡️ Identification de l’entité :↳ 🇫🇷 : Numéro de SIRENE (récupération automatique du KBIS auprès du greffe)↳ 🌍 : Extrait d’immatriculation (registre local ou INSEE pour activité libérale)➡️ RIB de la société➡️ Statuts et objet social (<3 mois)Société française (🇫🇷) : SAS, SARL, etc. ➡️ CNI / Passeport du représentant➡️ Identification de l’entité :↳ 🇫🇷 : Numéro de SIRENE (récupération automatique du KBIS auprès du greffe)↳ Si informations non accessibles, extrait d’immatriculation (KBIS)➡️ RIB de la société➡️ RBE (Registre des Bénéficiaires Effectifs, via INPI, CERFA ou Statuts certifiés conformes de <3 mois)➡️ Justificatif de domicile du représentant et des BE ‣ Avis d’imposition du représentant➡️ CNI/Passeport des Bénéficiaires Effectifs (>25% capital) ➡️ Statuts certifiés conformes de <3 mois➡️ Documents sur société mère si contrôle étrangerSociété européenne ou étrangère (🌍)➡️ CNI / Passeport du représentant➡️ Extrait d’immatriculation locale (équivalent KBIS – traduction assermentée demandée si le document n’est pas présenté en alphabet latin)➡️ RIB de la société➡️ RBE local (Registre des Bénéficiaires Effectifs) ou déclaration certifiée conforme <3 mois➡️ Statuts certifiés conforme <3 mois (traduction assermentée demandée si le document n’est pas présenté en alphabet latin) ➡️ Justificatifs de domicile (<3 mois) des BE et représentants 📄 3. Formats de fichiers acceptés et exigences techniques ✅ Formats de fichiers acceptés Pour garantir la lisibilité et le bon traitement de vos documents, nous acceptons uniquement les formats suivants : PDF : recommandé pour les documents multipages (ex : avis d’imposition, statuts) et les Relevés d’Identités Bancaires (RIB). JPEG / JPG / PNG / PDF : pour les photos d’identité, captures d’écran ou documents scannés. 📏 Poids et résolution des fichiers Taille maximale par fichier : 10 Mo. Résolution minimale recommandée : 300 DPI. Pour les photos prises avec un smartphone : privilégiez le mode « document » ou « scanner » si disponible. 🚫 Documents non acceptés Les documents suivants seront systématiquement refusés : Documents expirés. Photos floues, mal cadrées ou illisibles. Documents coupés ou tronqués (informations ou bords manquants). Scans en noir et blanc. Fichiers compressés ou d’archives (.zip, .rar…). Documents retouchés ou modifiés numériquement. ℹ️ Conseils pour une soumission réussie Vérifiez la netteté et la lisibilité avant l’envoi. Évitez les reflets et ombres sur les documents photographiés. Adressez des copies numériques en couleur (scan ou photo nette). N’envoyez pas de documents à travers des captures d’écran d’ordinateur. Assurez-vous que le document est à jour et en cours de validité.
SDD purpose codes The categoryPurposeCode(1) and purposeCode(2) used in the SDDTransaction. SALA(1) (2)Salary PaymentTREA(1) (2)Treasury PaymentADVA(2)Advance PaymentAGRT(2)Agricultural TransferALMY(2)Alimony PaymentBECH(2)Child BenefitBENE(2)Unemployment Disability BenefitBONU(2)Bonus PaymentCASH(1) (2)Cash Management TransferCBFF(2)Capital BuildingCHAR(2)Charity PaymentCOLL(2)Collection PaymentCMDT(2)Commodity TransferCOMC(2)Commercial PaymentCOMM(2)CommissionCOST(2)CostsCPYR(2)CopyrightDIVI(1) (2)DividendFREX(2)Foreign ExchangeGDDS(2)Purchase Sale Of GoodsGOVT(1) (2)Gouvernment PaymentIHRP(2)Instalment Hire Purchase AgreementINTC(1) (2)Intra Company PaymentINSU(2)Insurance PremiumINTE(1) (2)InterestLIFC(2)Licence FeeLOAN(1) (2)LoanLOAR(2)Loan RepaymentNETT(2)NettingPAYR(2)Payment RollPENS(1) (2)PensionREFU (2)RefundRENT(2)RentROYA(2)RoyaltiesSCVE(2)Purchase Sale Of ServicesSECU(1) (2)SecuritiesSSBE(1) (2)Social Security BenefitSUBS(2)SubscriptionTAXS(1) (2)Tax PaymentCOMT(2)Consumer Third Party Consolidated PaymentDBTC(2)Debit Collection PaymentSUPP(1) (2)Supplier PaymentHEDG(1) (2)HedgingMSVC(2)Multiple Service TypesNOWS(2)Not Otherwise SpecifiedCARD(2)Card PaymentCDBL(2)Credit Card BillFERB(2)FerryAIRB(2)AirBUSB(2)BusRLWY(2)RailwayCVCF(2)Convalescent Care FacilityDNTS(2)Dental ServicesANTS(2)Anesthesia ServicesHLTC(2)Home Health CareHSPC(2)Hospital CareICRF(2)Intermediate Care FacilityLTCF(2)Long Term Care FacilityMDCS(2)Medical ServicesVIEW(2)Vision CareDMEQ(2)Durable Medicale EquipmentCBTV(2)Cable TV BillELEC(2)Electricity BillGASB(2)Gas BillPHON(2)Telephone BillOTLC(2)Other Telecom Related BillWTER(2)Water BillSTDY(2)StudyPRCP(2)Price PaymentINSM(2)InstallmentRINP(2)Recurring Installment PaymentOFEE(2)Opening FeeCFEE(2)Cancellation FeeGOVI(2)Government InsuranceINPC(2)Insurance Premium CarLBRI(2)Labor InsuranceLIFI(2)Life InsurancePPTI(2)Property InsuranceHLTI(2)Health InsuranceCLPR(2)Car Loan Principal RepaymentESTX(2)Estate TaxHLRP(2)Housing Loan RepaymentCSLP(2)Company Social Loan Payment To BankHSTX(2)Housing TaxINTX(2)Income TaxNITX(2)Net Income TaxNWCH(2)Network ChargeNWCM(2)Network CommunicationBEXP(2)Business ExpensesTRFD(2)Trust FundRCPT(2)ReceiptPTSP(2)Payment TermsOTHR(2)OtherWHLD(1)(2)With HoldingCORT(1)Trade Settlement PaymentVATX(1)Value Added Tax PaymentTRAD(1)Trade
Services anti-fraude 1. Organisation des services anti-fraude Les services anti-fraude sont segmentés en 4 outils : Liste blanche (whitelist)Le but de la « whitelist » est de rendre sélective l’application d’une règle d’acceptation. Elle définie devient inopérante pour des clients identifiés, VIP ou reconnus de confiance qui sont intégrés à une « whitelist ». Les « whitelists » portent sur les données spécifiques d’un client, comme le numéro de sa Carte Bancaire ou son adresse IP. Cette fonctionnalité permet d’être moins restrictif sur des populations d’utilisateurs. Liste noire (blacklist)Le service de « blacklist » permet de refuser les paiements. Tout comme pour les « whitelists », les « blacklists » portent sur les données propres au porteur de carte (Carte, IP, Tel, email). Règles d’acceptation des transactionsCet outil permet de construire les règles spécifiques définissant les conditions d’acceptation d’un paiement. Scoring anti-fraudeLe service de scoring permet de détecter les transactions potentiellement frauduleuses en se basant sur l’analyse croisée de plusieurs données liées aux paiements. Les phases de traitement des transactions sont toujours exécutées dans cet ordre. Dans le cas où les données d’entrée remplissent toutes les conditions des « whitelist » définies, le service de « blacklist » ne sera pas exécutée et la transaction sera opérée normalement. Dans le cas où les données d’entrée remplissent une des conditions des « blacklist » définies et ne figurent pas dans le service de « whitelist », la transaction sera refusée et le service « règle d’acceptation » ne sera pas exécutée. Chaque service est exécuté de façon descendante vis-à-vis de la hiérarchie des acteurs CentralPay, ce qui signifie qu’une plateforme peut appliquer les paramètres de ses services anti-fraude à ses marchands, mais que l’inverse n’est pas possible. 2. Outil de scoring de fraude CentralPay s’appuie sur un service de détection de fraude reposant sur des algorithmes de machine learning. Ce moteur prédictif est constitué depuis un large échantillon de données fourni par CentralPay au format JSON et issues des données TRANSACTION / REFUND / DISPUTE. Ce service s’appuie sur une classification comportementale liée au secteur d’activité du marchand. Le moteur retourne une action et un score. L’action invite le service de paiement à accepter ou refuser la transaction. Le score classifie le niveau de risque en fournissant un pourcentage de probabilité de fraude. Ce score est ensuite interprété dans le moteur de règle. Le score permet au marchand et à l’algorithme d’interagir ensemble pour s’améliorer. Les scores sont classifiés ainsi : De 0 à 19 = risque faibleTransaction acceptéePas d’action De 20 à 59 = risque moyenTransaction acceptéeAction : Envoi événement avec détail du score pour revue manuelle et apprentissage +60 = risque élevéTransaction refuséeAction : Envoi événement avec détail du score pour revue manuelle et apprentissage Ce service d’analyse d’exposition à la fraude analyse le contexte d’exposition au risque de fraude de chaque transaction. Ce service retourne un score qui permet de traiter automatiquement la réponse attendue dans le moteur de règle. Le score repose sur l’analyse croisée des données suivantes : Indice de risque IP Détection de Proxy Détection réseau TOR Vérification de l’adresse IP Confidence factors Email checks Address & phone checks Adresse d’expédition à haut risque Géolocalisation des adresses IP Identification des équipements utilisés Adresse e-mail Type de navigateur Discordances de pays Distance de l’adresse d’expédition Distance de l’adresse de facturation Domaine e-mail Heure Montant de la commande Pays Numéro de téléphone Titulaire IP Titulaire de l’e-mail Vérification adresse CB 3. Listes blanches et listes noires 3.1. Liste blanche (Whitelist) Le but de la « whitelist » est de rendre sélective l’application d’une règle d’acceptation. Cette règle devient inopérante pour des clients identifiés, VIP ou reconnus de confiance qui sont intégrés à une « whitelist ». Le service anti-fraude passe ainsi à l’étape suivante. Les « whitelists » portent sur les données spécifiques d’un client, comme le numéro de sa Carte Bancaire ou son adresse IP. Cette fonctionnalité permet d’être moins restrictif sur une population d’utilisateurs. 3.2. Liste noire (Blacklist) L’étape de la « blacklist » permet de refuser les paiements. Tout comme pour les « whitelists », les « blacklists » portent sur les données propres au porteur de carte : Pays Régions géographiques Numéros de carte Numéros de téléphone E-mail Adresses IP IBAN 4. Règles d’acceptation des transactions Le moteur de règles d’acceptation est une brique applicative puissante et modulaire qui permet d’adapter le comportement lié au traitement à réaliser sur chaque transaction comme : Accepter Refuser Alerter Ce service permet ainsi de définir des actions à réaliser sur chaque transaction depuis une large liste d’attributs disponibles : score de fraude, localisation du porteur, montant des ventes cumulées sur 7 ou 30 jours, client VIP whitelist, paramètre spécifique adressé par le marchand… Une règle d’acceptation est une condition logique. Elle permet : d’autoriser, de restreindre, et/ou d’interdire des transactions.Une règle se compose de 4 éléments : l’action, les attributs, les opérateurs, les valeurs. La syntaxe d’une règle est la suivante : « Action » « if » « Attribut » « Opérateur de comparaison » « Valeur de comparaison » Exemple : REFUSE if card_country != 'FRA' La règle présentée dans cet exemple permet de refuser automatiquement les paiements lorsque le pays de la carte n’est pas la France.La syntaxe de la grammaire choisie par la plateforme pour son moteur d’acceptation est très semblable à la syntaxe SQL (utilisée pour dialoguer avec les bases de données). 4.1. Les actions disponibles ALLOWAutorise le paiement REFUSERefuse le paiement ALERTAdresse une notification « webhook » de la transaction associée 4.2. Les attributs disponibles En tapant « # », les attributs disponibles sont affichés. Dans une règle, un attribut est toujours suivi d’un Opérateur de comparaison. Liste des attributs : AttributDescriptionType de valeursExemple#always Aucune #transactions[_état][_entité] [_temporalité]Quota du nombre de transactions [état] [entité] [temporalité]Entiers#transactions_amount[_état] [_entité][_temporalité]Quota du montant des transactions [état] [entité] [temporalité]Entiers#amountMontant de la transaction en centimesEntier#amount > 100#card_countryPays d’émission de la carteChaîne de caractères ISO 3166-1 alpha-3#card_country IN (‘FRA’, ‘USA’, ‘BEL’, ‘DEU’)#card_establishmentEtablissement de la carte #card_productType de carte‘gold’, ‘platinium’ #card_product_typeType de carte (perso ou corp.)CONSUMER CORPORATE#card_product_type = ‘CONSUMER’#card_regionRégion d’émission de la carte‘ASIA_PACIFIC »EUROPE »LATIN_AMERICA »MIDDLE_EAST_AND_AFRICA »USA_AND_CANADA »ANTARCTIQUE »UNKNOWN’#card_region NOT IN (‘ASIA_PACIFIC’, ‘LATIN_AMERICA’)#commercial_brandMarque de la carteVISA MASTERCARD AMEX OTHER#commercial_brand != ‘VISA’#currencyDevise de la transactionChaîne de caractères ISO 4217#currency = ‘EUR’#ip_countryPays de l’adresse IPChaîne de caractères ISO 3166-1 alpha-3#ip_country IN (‘FRA’, ‘USA’, ‘BEL’, ‘DEU’)#ip_regionRégion de l’adresse IP‘ASIA_PACIFIC »EUROPE »LATIN_AMERICA »MIDDLE_EAST_AND_AFRICA »USA_AND_CANADA »ANTARCTIQUE »UNKNOWN’#card_region NOT IN (‘ASIA_PACIFIC’, ‘LATIN_AMERICA’)#is_anonymous_ipEst une IP anonymeTRUE | FALSE#is_anonymous_ip = TRUE#is_three_d_secureEst une transaction 3D-SecureTRUE | FALSE#is_three_d_secure = TRUE#payout_amountMontant de reversementEntier#payout_amount > 100#payout_currencyDevise de reversementChaîne de caractères ISO 4217#payout_currency = ‘EUR’#risk_scoreScore d’antifraudeDouble#risk_score > 2,34#custom_acceptance_data[‘key’] = ‘value’champs customisékey : Regex [a-zA-Z0-9_-]value: Regex [a-zA-Z0-9_-]#custom_acceptance_data[‘product_category’] = ‘high’ Dans le cas du custom_acceptance_data[‘key’] = ‘value’, afin qu’il soit pris en compte il est nécessaire que l’exact même champs soit reporté dans la requête de l’objet visé. Les opérateurs logiques et parenthésage : Opérateurs logiques and et or La syntaxe utilisée pour définir les règles permet de créer plusieurs conditions au sein de la même règle. Les conditions resteront définies de la même manière, à la seule différence qu’un mot clé sera placé entre les conditions. Les mots clés sont and et or. Ils permettent de définir comment le moteur de règle va interpréter la succession de ces règles. Le « and » correspond à l’inclusion et le « or » à l’exclusion. Exemple : ALLOW if #amount < 1000 and #card_country = 'FRA' L’exemple précédent autorise les paiements dont le montant est inférieur à 10 ET dont la carte est française. Si l’une ou l’autre des conditions définies n’est pas remplie, l’action ne sera pas exécutée. Exemple : ALLOW if #amount < 1000 or #card_country = 'FRA' L’exemple précédent autorise les paiements dont le montant est inférieur à 10 OU dont la carte est française. Si l’une ou l’autre des conditions définies est remplie, l’action sera exécutée. Parenthèses L’utilisation des parenthèses dans la définition d’une règle multi-conditions permet de définir des blocs de conditions et les priorités entre ces blocs. Le principe est le même que celui des priorités pour les opérateurs mathématiques. Exemple : ALLOW if #amount < 1000 and (#card_country = 'FRA' or #currency = 'EUR') Dans l’exemple précédent, le moteur de règle va d’abord interpréter le bloc (#card_country = ‘FRA’ or #currency = ‘EUR’). C’est à dire que le paiement sera autorisé si (la carte est française ou que la devise est l’euro), ET que le montant est inférieur à 10. Ordre d’exécution des règles Les règles sont exécutées dans un ordre à définir. Cet ordre est important car dès qu’une transaction répond aux critères d’une règle, les règles suivantes ne seront pas traitées. Les règles sont exécutées dans l’ordre d’affichage de la liste de l’interface.Un indicateur de position est affiché dans chaque liste. Pour changer la position d’une règle, il suffit de la faire glisser à la position souhaitée. Exemples de règles : ALLOW if #amount < 1000 and #transactions_amount_daily < 10000 Explication : cet exemple autorise les transactions dont le montant est inférieur à 10 si la somme des montants des transactions de la journée est inférieur à 100. REFUSE if #risk_score > 3 or (#ip_regions = 'ASIA_PACIFIC' and #card_region = 'ASIA_ PACIFIC') Explication : cette règle bloque les paiements si le score de risque dépasse 3 ou que l’IP utilisée ainsi que la région d’émission de la carte correspondent à la zone ‘ASIA_PACIFIC’. THREE_D_SECURE if #card_country NOT IN ('FRA', 'USA', 'GBR') Explication : cette règle demande une transaction 3D Secure si le pays de la carte n’est pas la France, les Etats-Unis, ou la Grande Bretagne. ALLOW (#amount < 10000 and #transactions_amount_daily < 100000) or (#currency IN ('EUR', 'USD') and #transactions_amount_monthly < 1000000) Explication : cet exemple précédent AUTORISE les paiements SI le montant est INFÉRIEUR à 100 ET que la somme des montants des transactions du jour est INFÉRIEUR à 1000 OU que la devise est € ou $ ET que la somme des montants des transactions du mois est INFÉRIEURE à 10 000. Les opérateurs logiques « and » et « or » ne sont syntaxiquement correct qu’en minuscule. 4.3. Les opérateurs de comparaison disponibles = (égal) != (différent de) < (plus petit que) <= (plus petit ou égal à) in (dans ce qui va suivre) not in (pas dans ce qui va suivre) Les opérateurs de comparaison = , != , > , < , >= et <= doivent être suivis d’une valeur. Les opérateurs IN et NOT IN sont suivis d’une liste de valeurs de comparaison.Une liste de valeurs est entourée par des parenthèses et les valeurs à l’intérieur de la liste sont séparées par des virgules. Exemple : REFUSE if #currency NOT IN ('EUR', 'USD', 'GBP', 'CHF') L’exemple présenté ci-dessus permet de refuser tous les paiements dont la devise n’est pas l’Euro, le Dollar US, la Livre Sterling ou le Franc Suisse. Cette syntaxe évite d’écrire plusieurs règles ou plusieurs conditions dans la même règle. 4.4. Les valeurs disponibles : En fonction du type de valeur, la syntaxe permettant de définir la valeur ne sera pas la même : Entiers (valeur numérique sans décimale) : Syntaxe classique (ex : 100) Doubles (valeur numérique avec décimales) : La valeur est définie avec un point comme séparateur de décimale (ex : 12.32) Chaîne de caractères : La valeur est définie entre ‘quotes’ simples (ex : ‘FRA’) Booléens : La valeur est true ou false (ex : false) ℹ️ Les valeurs de "montants" doivent être renseignées en centimes (ex : pour 10 € on renseignera une valeur de 1000). 4.5. Les opérateurs logiques : Les opérateurs disponibles sont AND et OR. Ils permettent de définir comment le moteur de règle va interpréter la succession de ces règles. Le « AND » permet une inclusion tandis que le « OR » une exclusion. Exemple : REFUSE if #amount < 1000 and #card_country != 'FRA' L’exemple présenté ci-dessus permet de refuser les paiements dont le montant est inférieur à 10 € ET dont la carte n’est pas française. Si l’une ou l’autre des conditions définies n’est pas remplie, l’action ne sera pas exécutée.
Transaction prélèvement SEPA Articles Informations générales Identifiant de Créancier SEPA Déclaration du compte bancaire Création du mandat SEPA Transaction par prélèvement R-transaction SDD Retours, statuts et webhooks Informations générales Introduction Le prélèvement SEPA (SEPA Direct Debit ou « SDD » en anglais) permet à un créancier (marchand) de prélever un montant dû directement sur le compte de son débiteur (client). Il est principalement destiné aux règlements récurrents (abonnements ou paiements en plusieurs fois) mais peut-être dans certains cas utilisé pour des règlements ponctuels (par exemple pour le règlement de factures entre professionnels). Étant émis à l’initiative du créancier, il requiert la collecte préalable d’une autorisation de son débiteur. Le marchand édite ainsi un « Mandat SEPA » précisant les conditions de prélèvement et les coordonnées bancaires des deux parties que son débiteur devra signer. 1/ Les deux types de prélèvement SEPA Il existe deux types de prélèvements SEPA : Le prélèvement SEPA « CORE » : le plus répandu, il permet aux créanciers de débiter des comptes de particuliers comme de personnes morales. Le mandat SEPA est édité et signé entre les deux parties sans contraintes particulières. Le débiteur est cependant protégé et peut contester un prélèvement CORE sans motifs auprès de sa banque sous 8 semaines. Le prélèvement SEPA « B2B » : réservé aux prélèvements entre entreprises. Le mandat SEPA est édité, signé puis doit être transmis par le débiteur à sa banque. Le parcours de contractualisation requiert ainsi une action forte du débiteur et la validation de sa banque. Cependant, les prélèvements initiés depuis ce type de mandats ne sont pas contestables. CentralPay ne propose pas ce service de prélèvement SEPA type « B2B ». 2/ Risques de rejet et de contestation Le prélèvement SEPA étant un moyen de paiement dont les transactions sont initiées sans authentification forte du client, les risques de rejets et de contestations sont à prendre en considération. Consultez la rubrique « R-Transaction SDD » pour en savoir plus sur les rejets et contestations SDD. 3/ Informations importantes Le prélèvement SEPA est utilisable sur la vaste majorité des comptes bancaires « courants » des pays de la zone SEPA et certains de l’Espace Économique Européen hors SEPA. Cela dépend de la connectivité aux réseaux SEPA des banques des débiteurs. Les comptes spéciaux type « comptes épargnes » ne sont pas atteignables. Les opérations SEPA sont traitées en devise EUROS (€) uniquement. Les opérations SEPA sont traitées lors des jours ouvrés uniquement (hors weekend et jours fériés). Ainsi, le délai de réception des fonds varie entre 2 à 5 jours à compter de la date d’initiation de l’opération. Le débiteur doit être informé par le créancier des prélèvements à venir, au moins 14 jours avant la date, soit par l’envoi d’un échéancier, d’une notification ou d’une facture. La durée de validité d’un mandat SEPA est de 36 mois après la dernière transaction opérée sur ce mandat. Dans le cadre d’un prélèvement SEPA sur le compte bancaire d’une entreprise (personne morale), le créancier doit veiller à ce que le mandat SEPA soit adressé et signé par le dirigeant ou un responsable habilité (gérant, service comptabilité…). Le prélèvement SEPA est particulièrement adapté aux transactions récurrentes d’un montant situé entre 20 et 200 EUR pour les débiteurs particuliers, et entre 20 et 2 000 EUR pour les débiteurs personnes morales. Identifiant de Créancier SEPA L’Identifiant Créancier SEPA (ICS) est un numéro de référence unique qui identifie chaque émetteur de prélèvement. En France, il est composé de 13 caractères alphanumériques, dont les 2 premiers représentent le code pays ISO (FR pour la France). Disposer d’un ICS est un prérequis obligatoire pour réaliser des prélèvements. Le créancier doit faire la demande d’attribution de l’ICS auprès de sa banque. Le créancier conserve ensuite son ICS, même s’il change de banque. Communiquez votre ICS à CentralPay lors de votre entrée en relation afin que nos équipes puissent le déclarer dans votre compte. Déclaration du compte bancaire Pour réaliser une transaction par prélèvement SEPA, il faut d’abord créer le profil de votre client (le débiteur) et déclarer ses coordonnées bancaires sur la plateforme CentralPay. 1/ Créer un profil client « Customer » Collecter les informations de votre client (email, nom, prénom …) Créer un profil client Customer Récupérer la propriété « customerId » dans le retour de création du Customer 2/ Créer un compte bancaire « bankAccount » Collecter les coordonnées bancaires de votre client (IBAN, BIC, nom du titulaire du compte …) Créer un compte bancaire bankAccount en renseignant le « customerId » de votre client Récupérer le « bankAccountId » et le « identityId » dans le retour de création du bankAccount Création du mandat SEPA Après avoir déclaré le compte bancaire « bankAccount » du client et rattaché son profil client « Customer », vous pouvez créer un mandat SEPA « mandate » et collecter la signature électronique de votre client via un code (OTP) envoyé par SMS. Prérequis : vous devez récupérer le « creditorBankAccountId » de votre compte CentralPay correspondant à votre ICS. Vous pouvez le retrouver depuis votre Portail utilisateur en utilisant un profil avec des droits Admin : Administration Mon compte Comptes bancaires Identifiez la ligne présentant votre ICS dans la colonne « IBAN » puis copiez l’UUID associé. 1/ Création et signature d’un nouveau mandat SEPA Créez un mandat SEPA : Créez un « Mandate » Renseignez votre « creditorBankAccountId » Renseignez le « CustomerId » de votre client Renseignez votre Référence Unique de Mandat (RUM) Indiquez le type de mandat que vous souhaitez créer dans la propriété « paymentType » Renseignez le numéro de téléphone de votre client dans la propriété « debtorPhone » Renseignez l’email de votre client dans la propriété « debtorEmail » Indiquez le compte bancaire de votre client en renseignant son « bankAccountId » dans la propriété « debtorBankAccountId » Une fois le mandat SEPA créé : Un « mandateId » sera généré Le statut du mandat sera en « PENDING » Un code à 6 chiffres (OTP) sera envoyé à votre client par SMS (durée de vie 15 min). Vous pouvez renouveler l’envoi de l’OTP. Signez un mandat SEPA : Signez le « Mandate » Collectez le code à 6 chiffres auprès de votre client, et renseignez-le dans la propriété « otp » Renseignez le « mandateId » généré lors de la création du mandat Renseignez l’IP de votre client dans la propriété « endUserIp » Le statut du mandat passera ainsi en « ACTIVE » et le mandat SEPA au format PDF sera envoyé au client par email Schéma de déclaration du compte bancaire et création mandat 2/ Déclaration d’un mandat existant (migration) Dans le cadre d’une migration de mandats déjà créé auprès d’un autre prestataire de paiement, il est possible de désactiver la fonction de signature par OTP sms et d’envoi du mandat SEPA par email. Si c’est votre cas, contactez nos équipes afin d’obtenir plus de détails concernant cette procédure. Prérequis : Les mandats doivent avoir été créés avec votre Identifiant de Créancier SEPA (ICS) Les mandats doivent avoir été créés avec votre entité juridique actuelle Les mandats doivent avoir été dûment signés et acceptés par vos débiteurs Les mandats doivent être encore actifs (<36 mois depuis la dernière transaction) 3/ Modification d’un mandat SEPA existant 3.1 Modifications possibles sans nécessité de nouveau mandat Certaines données peuvent être mises à jour sans exiger la signature d’un nouveau mandat SEPA, sous réserve d’informer correctement le débiteur : Changement de nom du créancier (modification de la structure juridique prélevant) Changement de l’Identifiant Créancier SEPA (ICS) Changement de la Référence Unique de Mandat (RUM) Changement de compte / IBAN du débiteur au sein d’une même banque Changement de compte / IBAN du débiteur suite à un changement de banque Endpoints associés : Modifier un IBAN débiteurPOST /bankAccount/{bankAccountId}Permet de mettre à jour l’IBAN d’un compte bancaire débiteur lié à un mandat SEPA existant. Modifier une RUMCette opération n’est pas possible via les API CentralPay. Une modification de la RUM nécessite la création d’un nouveau mandat (migration). Modifier le nom du créancierEn cas de changement de la structure juridique réalisant les prélèvements, un nouveau Compte CentralPay (Merchant) doit être créé. Les mandats existants devront alors être redéclarés sous ce nouveau compte via un processus de migration. 3.2 Modifications nécessitant un nouveau mandat Les modifications suivantes imposent la création d’un nouveau mandat SEPA, car elles impliquent une nouvelle autorisation du débiteur : Changement de nom du débiteur Changement de la date de signature du mandat Changement de type de mandat : passage de SDD Core à SDD B2BNB : Ce cas d’usage n’est pas disponible dans les services CentralPay. Changement de la fréquence de prélèvement : passage de ponctuel à récurrent 3.3 Communication des modifications Les notifications de modifications doivent obligatoirement être transmises : Par le créancier au débiteur, pour toute modification initiée par le créancier (ICS, RUM, IBAN, etc.) Par le débiteur au créancier, avec présentation d’un justificatif (ex : RIB ou pièce d’identité) pour les changements d’IBAN ou de données personnelles. Transaction par prélèvement Une fois les étapes de création et de signature de mandat réalisées, vous pouvez créer une transaction en prélèvement SEPA (Transaction SDD). Chaque transaction SDD sera liée au mandat correspondant. Pour créer des transactions SDD, vous avez plusieurs possibilités : Créer des transactions SDD individuelles : pour réaliser une ou plusieurs transactions SDD par API en complète autonomie Créer des transactions SDD via les modèles d’abonnement « Subscription » : pour réaliser X transactions selon une fréquence définie par un modèle d’abonnement (exemple : 50 € par mois pendant 12 mois). Créer des transactions SDD via le service de paiement fractionné « Installment » : pour fractionner une créance client en plusieurs transactions (exemple : 1000 € à régler en 3 fois avec un acompte de 500 €). 1/ Transactions SDD individuelles Créez une « SDDTransaction » Renseignez l’identifiant du mandat SEPA « mandateId » Renseignez le montant de la transaction en centimes « amount » Renseignez la devise EUR dans la propriété « currency » Renseignez votre identifiant unique de transaction dans la propriété « endToEndIdentification » Renseignez la description de la transaction dans la propriété « remittanceInformation » (cette donnée apparaitra sur le relevé de compte de vos clients) Renseignez l’IP de votre client dans « endUserIp » Renseignez l’identifiant de votre point de vente CentralPay dans « pointOfSaleId » Renseignez la date souhaitée de la transaction dans « requestedCollectionDate » Vous pouvez ensuite répéter l’opération à chaque échéance de prélèvement de votre client. [Optionnel] Demander au client une validation par SMS Pour plus de sécurité, vous pouvez configurer un OTP pour la validation de chaque SDDTransaction : un OTP sera alors généré à la création et envoyé à votre client par SMS. Un sddTransactionId sera également généré à la création. Par défaut, la validation des SDDTransaction est automatique. Cette étape est nécessaire que si vous avez configuré une validation OTP pour la SDDTransaction Récupérer auprès de votre client son code secret Nous le transmettre, ainsi que le sddTransactionId. Par cette action, la SDDTransaction sera considéré comme validé et sera donc effectuée. 2/ Transactions SDD depuis les modèles d’abonnement « subscription » 2.1/ Création Vous devez d’abord créer un Customer contenant au moins un Mandate. Ensuite, le service d’abonnement (Subscription) vous permettra d’initier facilement un paiement par abonnement en se basant sur un modèle d’abonnement créé en amont depuis l’API CentralPay ou le Portail utilisateur. 2.2/ Cas d’intégration spécifiques Si le premier paiement de l’abonnement doit être d’un montant supérieur aux échéances suivantes (ex: frais d’inscription), vous pouvez d’abord initier une SDD Transaction seule, puis renseigner une date de démarrage (startingDate) dans l’objet Subscription. Si vous souhaitez simplement faire démarrer un abonnement à une date précise (ex : date d’entrée en vigueur de votre contrat), vous pouvez renseigner une date de démarrage (startingDate) dans l’objet Subscription. 3/ Transactions SDD en paiement fractionné « Installment » 3.1/ Création Vous devez d’abord créer un Customer contenant au moins un Mandate. Ensuite, le service de paiement fractionné (Installment) vous permettra d’initier facilement un paiement fractionné en se basant sur les éléments renseignés dans votre requête. R-transaction SDD 1/ Remboursement de prélèvement SEPA Vous pouvez rembourser une SDD Transaction si celle-ci est « CLEARED » via le service Refund ou depuis le détail de la SDD Transaction dans le Portail utilisateur. Vous pouvez initier un remboursement total ou partiel en renseignant un montant. Votre client recevra les fonds sur son compte bancaire sous 24 à 48 heures ouvrés après l’opération. Votre compte de paiement est lui débité immédiatement, il doit donc être solvable pour pouvoir réaliser l’opération. Vous ne pouvez pas annuler un remboursement une fois celui-ci réalisé. 2/ Rejet et contestations de prélèvement SEPA Les rejets et contestations de prélèvements SEPA sont émis par les banques de vos clients. Ils sont représentés dans votre compte CentralPay par les opérations « SDD Transaction Reversal ». Un rejet de prélèvement SEPA est émis par la banque avant la mise à disposition des fonds au créancier (sous 2 à 5 jours). Voici les principaux motifs de rejet des prélèvements SEPA Core : Provisions insuffisantes : le compte bancaire du débiteur ne dispose pas de fonds suffisants pour réaliser l’opération. Compte clôturé : le compte bancaire du débiteur a été fermé. Coordonnées bancaires incorrectes : l’IBAN ou BIC utilisé est incorrect, ou le compte n’est pas en devise EUROS. Une contestation de prélèvement SEPA peut être émise par le débiteur jusqu’à 13 mois après l’opération. C’est le principal facteur de risque financier de ce moyen de paiement. Voici les principaux motifs de contestation des prélèvements SEPA Core : Contestation de l’opération (sous 8 semaines max) : le mandat SEPA est valide, mais le client conteste l’opération auprès de sa banque pour quelconque motif. L’opération est entièrement remboursée et des frais de contestation sont applicables au créancier. Le délai est de 70 jours pour les banques hors de l’Union européenne ou de l’Espace Économique Européen. Contestation pour absence de mandat (sous 13 mois max) : le mandat SEPA n’est pas valide (absence de mandat, mauvais signataire…), le client conteste les opérations réalisées. Les opérations sont entièrement remboursées et des frais de contestation sont applicables au créancier. Pour en savoir plus, consultez la liste complète des codes de rejets et contestation de prélèvement SEPA : Codes de retour SDD Retours, statuts et webhooks 1/ Retours liés aux prélèvements SEPA Lorsqu’une transaction SDD (prélèvement SEPA) est rejetée, la banque de votre client adresse un code de rejet permettant d’en identifier la cause. Il faut principalement différencier les rejets (à l’initiative de la banque, ils sont reçus rapidement) des contestations (à l’initiative du client, elles peuvent être reçues plusieurs semaines ou mois après la transaction) : ContestationsMD06 Opération contestée par le débiteur (peut être reçu jusqu’à 8 semaines après la transaction)MD01 Contestation pour absence de mandat (peut être reçu jusqu’à 13 mois après la transaction)SL01 ICS marchand blacklisté par le client via sa banqueMS02Raison non communiquée (peut inclure des contestations ou des rejets)RejetsAM04 Provisions insuffisantesTout autre codeRejets techniques divers (compte clôturé, bloqué, IBAN non atteignable…) Consulter la liste complète des codes de rejet SDD 2/ Statuts liés aux prélèvements SEPA Statuts « SDD Transaction » Statuts SDD Transaction Statuts « Mandate » Statuts MANDATE Statuts « bankAccount » [à compléter] Statuts « Subscription » Statuts SUBSCRIPTION Statuts « Installment » Statuts INSTALLMENT 3/ Webhooks liés aux prélèvements SEPA Webhooks « SDD Transaction » Webhooks SDD Transaction Webhooks « Mandate » Webhooks Mandate Webhooks « Bank Account » Webhooks BankAccount Webhooks « Customer » Webhooks Customer Webhooks « Subscription » Webhooks Subscription Webhooks « Installment » Webhooks Installment
Tarifs Articles Offres commerciales Frais d'interchange et réseaux cartes Forfaits d'accompagnement Offres commerciales CentralPay propose 2 modèles d’offres commerciales : Les offres Starter et Medium, intégrant un forfait mensuel fixe et des frais par transaction simplifiés (ou « blind rate ») Les offres Major, intégrant également un forfait mensuel fixe, mais avec des frais par transaction plus détaillés (ou « interchange++ ») Dans ces deux modèles, les offres CentralPay intègrent les frais d’interchange et de réseaux cartes qui sont facturés par les banques. Vous n’avez donc aucun surcoût à prévoir. Consultez le tarif des offres CentralPay ➝ Frais d'interchange et réseaux cartes L’interchange correspond à la valeur chargée par l’établissement émetteur d’une carte de paiement (la banque de votre client) à l’établissement acquéreur (la banque du marchand). Les frais de réseaux carte (ou « Card Scheme Fees ») correspondent aux frais pris par les réseaux carte (Visa, Mastercard, CB) pour faire fonctionner le service. Des termes ont été définis pour désigner l’assemblage de ces frais : Interchange+Les frais d’Interchange + les frais des réseaux cartes (card scheme fees) Interchange++Les frais d’Interchange + les frais des réseaux cartes (card scheme fees) + les frais de service de l’établissement (CentralPay) Toutes les offres commerciales de CentralPay intègrent les frais d’Interchange+ ainsi que nos propres frais de service, vous n’avez donc aucun frais bancaire supplémentaire à prévoir pour réaliser vos transactions. Sauf mention contraire, des frais minimum de perception de 0.15 € sont prélevés sur l’IC++. 1. Frais d’interchange et réseaux carte (E-commerce) Type de carteInterchange Intrarégional (EEE)Interchange Interrégional (hors EEE)Carte de débit ou prépayéCB, VISA, MASTERCARD0,2 %1,15 %Carte de crédit ou débit différéCB, VISA, MASTERCARD0,3 %1,5 %Carte professionnelleCB0,9 %/Carte professionnelleVISA1,45 %2 %Carte professionnelleMASTERCARD1,45 %2 %Toutes cartesAMERICAN EXPRESSAucunAucun Réseau carteFrais de réseaux carte Intrarégional (EEE)Frais de réseaux carte Interrégional (hors EEE)Réseau CB (Cartes bancaires)0,030 %/Réseau VISA0,110 %0,700 %Réseau MASTERCARD0,390 %0,950 %Réseau AMERICAN EXPRESS1,600 %2,400 % 2. Frais d’interchange et réseaux carte (paiement de proximité) Type de carteInterchange Intrarégional (EEE)Interchange Interrégional (hors EEE)Carte de débit ou prépayéCB, VISA, MASTERCARD0,2 %1,15 %Carte de crédit ou débit différéCB, VISA, MASTERCARD0,3 %1,5 %Carte professionnelleCB0,9 %/Carte professionnelleVISA1,45 %2 %Carte professionnelleMASTERCARD1,45 %2 %Toutes cartesAMERICAN EXPRESSAucunAucun Réseau carteFrais de réseaux carte Intrarégional (EEE)Frais de réseaux carte Interrégional (hors EEE)Réseau CB (Cartes bancaires)0,030 %/Réseau VISA0,110 %0,700 %Réseau MASTERCARD0,390 %0,950 %Réseau AMERICAN EXPRESS1,600 %2,400 % Forfaits d'accompagnement Les forfaits d’accompagnement permettent une mise en service rapide, guidée par nos équipes support intégration (SI) et service client (SC). Les heures d’accompagnement vous permettent de déléguer certains paramétrages de votre compte et de solliciter des échanges visio : avec le SI pour les sujets techniques, avec le SC pour ceux d’ordre administratif / fonctionnels. 1. Accompagnement à l’intégration Smart Collection Accompagnement à l’intégration, au choixFrais (HT)En autonomie2 heures d’accompagnement équipe Service ClientInclus (offres Starter, Medium et Major Company)Accompagnement standardAnalyse technique du projet par équipe Service Intégration 2 heures d’accompagnement équipe Service Intégration 2 heures d’accompagnement équipe Service Client490 €Accompagnement avancéAnalyse technique et suivi par Responsable Service Intégration dédié3 heures d’accompagnement par Responsable Service Intégration dédié3 heures d’accompagnement par Responsable Service Client dédié1 990 € 2. Accompagnement à l’intégration Smart Collection et Easy Wallet Accompagnement à l’intégration, au choixFrais (HT)En autonomie3 heures d’accompagnement équipe Service ClientInclus(offres Medium et Major Partner)Accompagnement standardAnalyse technique du projet par équipe Service Intégration5 heures d’accompagnement équipe Service Intégration5 heures d’accompagnement équipe Service Client990 €Accompagnement avancéAnalyse technique et suivi par Responsable Service Intégration dédié10 heures d’accompagnement par Responsable Service Intégration dédié10 heures d’accompagnement par Responsable Service Client dédié2 990 € 3. Forfaits d’accompagnement horaire par le service client Accompagnement horaire au choix, utilisable pour déléguer des paramétrages de comptes, des interventions avec tests, des analyses spécifiques…Frais (HT)Forfait d’accompagnement 2 h2 heures d’accompagnement équipe Service Client, consommables par périodes de 30 minutes.250 €Forfait d’accompagnement 5 h5 heures d’accompagnement équipe Service Client, consommables par périodes de 30 minutes.490 €Forfait d’accompagnement 10 h10 heures d’accompagnement équipe Service Client, consommables par périodes de 30 minutes.890 €
Pays autorisés CentralPay et ses partenaires sont autorisés à entrer en relation d’affaires et à ouvrir des comptes de paiement ou de Monnaie Électronique pour des personnes physiques ou morales résidant ou établies dans les pays suivants : 🌐 Zone🏳️ Pays ou territoireEspace Économique Européen🇩🇪 Allemagne🇦🇹 Autriche🇧🇪 Belgique🇧🇬 Bulgarie🇨🇾 Chypre🇭🇷 Croatie🇩🇰 Danemark🇪🇸 Espagne🇪🇪 Estonie🇫🇮 Finlande🇫🇷 France🇬🇵 Guadeloupe🇬🇫 Guyane française🇲🇶 Martinique🇾🇹 Mayotte🇵🇫 Polynésie française🇷🇪 La Réunion🇧🇱 Saint-Barthélemy🇲🇫 Saint-Martin (partie française)🇵🇲 Saint-Pierre-et-Miquelon🇼🇫 Wallis-et-Futuna🇬🇷 Grèce🇭🇺 Hongrie🇮🇪 Irlande🇮🇸 Islande🇮🇹 Italie🇱🇻 Lettonie🇱🇹 Lituanie🇱🇮 Liechtenstein🇱🇺 Luxembourg🇲🇹 Malte🇳🇴 Norvège🇳🇱 Pays-Bas🇵🇱 Pologne🇵🇹 Portugal🇨🇿 République tchèque🇷🇴 Roumanie🇸🇰 Slovaquie🇸🇮 Slovénie🇸🇪 SuèdeAutres pays autorisés🇬🇧 Royaume-Uni🇨🇭 Suisse 📝 Remarques L’ouverture de compte est conditionnée à l’analyse du dossier par les équipes conformité. Pour les territoires d’outre-mer, l’éligibilité s’applique uniquement aux zones sous souveraineté française.
Error codes ErrorDetails ATTRIBUTESerrorCodeCode indicating the type of problem identified.errorComponentCode indicating the 3-D Secure component that identified the error.errorDescriptionText describing the problem identified.errorDetailAdditional detail regarding the problem identified. ErrorCode possible values101MESSAGE_RECEIVED_INVALID102MESSAGE_VERSION_NUMBER_NOT_SUPPORTED103SENT_MESSAGES_LIMIT_EXCEEDED201REQUIRED_ELEMENT_MISSING202CRITICAL_MESSAGE_EXTENSION_NOT_RECOGNIZED203FORMAT_ON_ONE_OR_MORE_ELEMENTS_INVALID_ACCORDING_SPECS204DUPLICATE_DATA_ELEMENT301TRANSACTION_ID_NOT_RECOGNIZED302DATA_DECRYPTION_FAILURE303ACCESS_DENIED_INVALID_ENDPOINT304ISO_CODE_NOT_VALID305TRANSACTION_DATA_NOT_VALID306MCC_NOT_VALID_FOR_PAYMENT_SYSTEM307SERIAL_NUMBER_NOT_VALID402TRANSACTION_TIMED_OUT403TRANSIENT_SYSTEM_FAILURE404PERMANENT_SYSTEM_FAILURE405SYSTEM_CONNECTION_FAILURE911DATA_FIELDS_RELEVANCE_CHECK_FAILURE912DUPLICATED_TRANSACTION_ID ErrorComponent possible values« C »THREE_DS_SDK« S »THREE_DS_SERVER« D »DIRECTORY_SERVER« A »ACCESS_CONTROL_SERVER
Logos et visuels Articles Logos CentralPay Logos PaySecure Visuels de réassurance (FR/EN) Logos CentralPay Logo CentralPay SVG Logo CentralPay blanc SVG Logo CentralPay PNG Logo CentralPay blanc PNG Logos PaySecure 1. Logos Logo PaySecure classique PNG Logo PaySecure blanc PNG Logo PaySecure classique JPG 2. Visuels de réassurance (FR/EN) Réassurance – fond blanc Réassurance – fond transparent Réassurance – blanc Réassurance – fond blanc Réassurance – fond transparent Réassurance – blanc Visuels de réassurance (FR/EN) Intégrez un de ces visuels en dessous de votre formulaire de paiement CustomForm, ou simplement dans le footer de votre site afin de rassurer vos clients concernant la sécurité de leurs données de paiement. 1. Version française Réassurance 1 – classique Réassurance 1 – fond blanc Réassurance 1 – blanc Réassurance 2 – classique Réassurance 2 – fond blanc Réassurance 2 – blanc Réassurance 3 – classique Réassurance 3 – fond blanc Réassurance 3 – blanc Réassurance 4 – Avec Amex Réassurance 4 – Amex fond blanc Réassurance 4 – Amex blanc Réassurance 5 – Avec Amex Réassurance 5 – Amex fond blanc Réassurance 5 – Amex blanc Réassurance 6 – Avec Amex Réassurance 6 – Amex fond blanc Réassurance 6 – Amex blanc 2. Version anglaise Réassurance 1 – classique Réassurance 1 – fond blanc Réassurance 1 – blanc Réassurance 2 – classique Réassurance 2 – fond blanc Réassurance 2 – blanc Réassurance 3 – classique Réassurance 3 – fond blanc Réassurance 3 – blanc Réassurance 4 – Avec Amex Réassurance 4 – Amex fond blanc Réassurance 4 – Amex blanc Réassurance 5 – Avec Amex Réassurance 5 – Amex fond blanc Réassurance 5 – Amex blanc Réassurance 6 – Avec Amex Réassurance 6 – Amex fond blanc Réassurance 6 – Amex blanc
Reversement bancaire Les reversements bancaires (ou « Payout ») sont des virements sortant de votre compte de paiement CentralPay vers le compte bancaire qui y est associé. Ils peuvent être réalisés manuellement depuis le Portail utilisateur ou l’API Payment. Ils peuvent également être automatisés depuis le Portail utilisateur. Depuis le Portail utilisateur, seuls les profils utilisateurs titulaires du compte (dit « Legal ») peuvent paramétrer et réaliser les reversements. 1. Les deux modes de reversement 1.1. Reversement automatique Le titulaire du compte peut définir la périodicité : quotidien, hebdomadaire (choix du jour de la semaine, ex : chaque mardi) ou mensuel (choix du jour dans le mois, ex : le cinq du mois).Le service PAYOUT automatique exécutera automatiquement à 01h00 du jour donné un virement des fonds disponibles sur votre compte de paiement. Exemple : Cas d'un reversement hebdomadaire programmé le mardi : CentralPay exécutera la demande de création du virement (PAYOUT) le mardi matin avec les fonds disponibles (AVAILABLE) sur le compte de paiement jusqu'au mardi 01h00. 1.2. Reversement manuel (via BO ou API) Vous avez la possibilité d’exécuter des payouts manuellement depuis le Portail utilisateur ou l’API CentralPay. Vous pouvez déterminer le montant à reverser (avec en maximum le montant disponible sur votre compte). Attention, le PAYOUT ne sera exécuté immédiatement que s’il est effectué avant 05h00 le matin. À défaut, il sera exécuté le lendemain à 05h00 du matin également. 2. Délais de disponibilité des fonds Les reversements comprennent uniquement les fonds disponibles (ou « AVAILABLE ») de vos comptes de paiement. Les fonds issus d’une transaction par carte bancaire sont par exemple disponibles à J+2 : une transaction carte réalisée le lundi, apparaîtra en « Pending » le lundi, sera « Available » le mardi soir, le payout automatique sera effectué le mercredi matin à 00h05 et la réception du virement SEPA sur votre compte bancaire le jeudi. ℹ️ Le paramètre EscrowDate peut influer sur la date de disponibilité des fonds d'une transaction (concerne uniquement les partenaires AGENT). 3. Création d’un reversement manuel 3.1. Payout manuel par Portail utilisateur Depuis le Portail Utilisateur Administration Mon compte Reversements : cliquez sur « Transferts externes », sélectionnez le compte d’émission, le montant du reversement ainsi que l’IBAN destinataire, puis cliquez sur « confirmer le transfert ». Accès : Portail Utilisateur de RCT – Reversements Portail Utilisateur de PROD – Reversements 3.2. Payout manuel par API Consultez le détail dans la rubrique : Développeurs Payout 4. Reversement en euros ou devises via le réseau SWIFT Les virements bancaires internationaux sont gérés via le réseau SWIFT (contrairement au réseau SEPA pour les virements européens). Ces virements peuvent être émis depuis un très grand nombre de pays en EUROS ou dans d’autres devises. Si vous disposez d’un compte en devises ou n’étant pas accessible via le réseau SEPA, vous pouvez réaliser vos virements via le réseau SWIFT. Contactez CentralPay pour en savoir plus. ℹ️ Les virements bancaires du réseau SWIFT présentent des frais très largement supérieurs aux virements SEPA. Vous pouvez demander à CentralPay de paramétrer vos reversements automatiques afin qu'ils soient déclenchés à partir d'un certain seuil de fonds disponibles. 5. Retours, statuts et webhooks Consultez les statuts PAYOUT ➝ Consultez les webhooks PAYOUT ➝
Paiements récurrents Articles Abonnement Fractionné Abonnement Introduction Le service d’abonnement vous permet se réaliser automatiquement des transactions récurrentes sur vos profils clients en se basant sur un modèle d’abonnement défini en amont depuis l’API CentralPay ou le Portail utilisateur. Il est ensuite possible d’ajouter des échéances ou de modifier leur montant à la volée depuis les services Invoice & Invoice Item. Ce service permet de générer soit des transactions carte, soit des transactions SDD (prélèvement SEPA). Définitions utiles pour cette section :– SubscriptionModel : modèle d’abonnement (définissant le montant et la fréquence d’abonnement)– Subscription : abonnement appliqué à un client– Invoice : facture, option à utiliser si vous devez modifier la valeur à l’intérieur d’un plan d’abonnement– InvoiceItem : ligne ou article inclus dans la facture. Une facture a potentiellement plusieurs lignes ou éléments Le service "Subscription" n'est pas le seul moyen de réaliser des transactions récurrentes. Consultez la page Transaction carte récurrente ou la page Transaction par prélèvement pour prendre connaissance du détail par moyen de paiement. 1/ Créer un modèle d’abonnement (subscriptionModel) Accès modèles d’abonnements – Portail utilisateur de RCT Accès modèles d’abonnements – Portail utilisateur de PROD Le subcriptionModel vous permet de pouvoir créer différents types d’abonnements en fonction de vos services proposés. Par exemple, si vous avez à votre disposition deux types d’offre d’abonnement, le premier en utilisant les caractéristiques de base de votre service et l’autre en utilisant les fonctionnalités avancées, vous allez devoir créer deux modèles : Un pour l’offre d’abonnement « basique » Un pour l’offre d’abonnement « avancé » Chaque « SubscriptionModel » possède un ID unique. Vous fournirez cet identifiant dans vos requêtes API lorsque vous souhaiterez appliquer un abonnement à un client sur la base de ce modèle. Vous pouvez utiliser les attributs suivants : amount : montant à renseigner en centimes intervalUnit : DAY / WEEK / MONTH / YEAR (jour / semaine / mois / année) intervalCount : nombre de « intervalUnit » entre deux échéances (ex : si intervalUnit = DAY et intervalCount = 10, alors il y aura une transaction tous les 10 jours). iterationCount : nombre d’échéances (attention la première transaction n’est pas comptabilisée dans ce paramètre, elle s’ajoute donc à ce nombre). Exemple : amount = 3000 intervalUnit = DAY intervalCount = 3 iterationCount = 3 Ainsi votre modèle d’abonnement sera configuré pour facturer à votre client 30,00 EUR tous les 3 jours pendant 4 échéances (pour un total d’un abonnement de 12 Jours). 2/ Créer un abonnement (subscription) Pour créer un abonnement, vous devez d’abord créer un Customer contenant au moins : une Card (si vous souhaitez opérer des transactions carte) ou un Mandate (si vous souhaitez opérer des transactions par prélèvement SEPA). Vous pouvez ensuite créer une Subscription : Selon le moyen de paiement souhaité : pour des transactions carte : renseignez l’identifiant du profil client « customerId » pour des transactions par prélèvement SEPA : renseignez l’identifiant du mandat SEPA « mandateId » et renseignez la date souhaitée de la transaction dans « requestedCollectionDate » pour des transactions entre comptes CentralPay : renseignez l’identifiant du compte émetteur « walletId » Renseignez l’identifiant du modèle d’abonnement « subscriptionModelId » Renseignez l’IP de votre client dans « endUserIp » Renseignez l’identifiant de votre point de vente CentralPay dans « pointOfSaleId » Notez qu’à la création d’un abonnement, votre client reçoit automatiquement un email contenant le détail de ses échéances. Cet email contient également un lien vers notre Portail client qui lui permet de visualiser le statut de ses paiements récurrent, de changer sa carte bancaire ou son mandat SEPA et de résilier un abonnement si besoin est. Un client pouvant à tout moment résilier son abonnement depuis le portail client mis à sa disposition. Veillez à vous inscrire aux webhooks d'annulation d'abonnement. Si votre abonnement comprend une période d'engagement, il est préférable d'utiliser la méthode d'abonnement par transactions successives, ou demander à CentralPay de ne pas diffuser le lien vers le portail client. 3/ Automatisation des nouvelles tentatives en cas d’échec En cas d’échec de prélèvement d’une échéance, CentralPay réalise de nouvelles tentatives de prélèvement selon les paramètres définis dans le Portail utilisateur. Accès paramétrages abonnements – Portail utilisateur de RCT Accès paramétrages abonnements – Portail utilisateur de PROD Comportement des champs : Heure de transaction : heure à laquelle les échéances de prélèvement seront réalisées par CentralPay Sélection d’une valeur de 4 à 23 1er échec de paiement de facture : comportement en cas d’un premier échec de prélèvement Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la transaction initiale Stop = le système appliquera directement l’action finale, sans prendre en compte les actions suivantes. 2nd échec de paiement de facture : comportement en cas d’un deuxième échec de prélèvement Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative Stop = le système appliquera directement l’action finale, sans prendre en compte les actions suivantes. 3eme échec de paiement de facture : comportement en cas d’un troisième échec de prélèvement Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative Stop = le système appliquera directement l’action finale, sans prendre en compte les actions suivantes. Action finale : comportement si les actions précédentes ont échoué CANCELED = Annulation de l’abonnement (modification du statut de l’abonnement en CANCELED) FAILURE = Échec de l’abonnement (modification du statut de l’abonnement en FAILURE) UNPAID = Abonnement impayé (modification du statut de l’abonnement en FAILURE + envoi de hook SUBSCRIPTION_UNPAID) 4/ Fonctions d’annulation des abonnements Il existe deux fonctions d’annulation d’abonnement depuis l’API, le Portail Utilisateur ou le Portail Client : Annuler : l’abonnement est annulé immédiatement Annuler en fin de période : l’abonnement sera annulé à la fin de l’échéance en cours (afin de laisser l’abonné bénéficier de votre service durant sa dernière période payée). Par API, vous devrez renseigner le champ « atPeriodEnd ». Note : Durant ce laps de temps, vous pouvez réactiver l’abonnement avec le service « reactivate » des Subscription. Les abonnements dont l'ensemble des échéances ont été réalisées passent automatiquement en statut CANCELED. 5/ Modifier le montant d’une échéance d’abonnement CentralPay crée un invoice pour chaque échéance d’un abonnement (Subscription), selon le modèle d’abonnement associé (subscriptionModel). Vous pouvez procéder à des actions manuelles à n’importe quel moment pour modifier les échéances (invoice) d’un abonnement (subscription). Vous trouverez ci-dessous une liste d’actions possibles : Modifier le montant d’une échéance : Le service invoiceItem vous permet de modifier le montant d’une échéance (invoice) en renseignant un montant positif ou négatif qui s’additionnera au montant initial de l’échéance. L’invoiceItem sera pris en compte lors de la prochaine échéance de l’abonnement, qu’elle soit créée manuellement ou automatiquement. Vous avez également la possibilité de spécifier une échéance donnée dans votre requête en renseignant un invoiceId. Créer une échéance supplémentaire : les échéances (invoice) dites « périodiques » sont créées automatiquement selon votre subscriptionModel. Vous avez la possibilité de créer d’autres échéances ponctuelles sur votre abonnement en créant une invoice. Supprimer un invoiceItem non traité : s’il n’est pas encore lié à une facture Fermer une échéance à venir : si vous souhaitez que CentralPay ne réalise pas le prélèvement d’une échéance (et/ou ses nouvelles tentatives automatiques), vous pouvez fermer cette dernière depuis le service « close » de l’invoice. Au besoin vous pourrez rouvrir cette échéance via le service « reopen » de l’invoice, si elle n’a pas été payée ou qu’il reste des nouvelles tentatives programmées. Forcer le paiement d’une échéance : les transactions sont effectuées automatiquement par le service d’abonnement, vous pouvez cependant initier la transaction en avance ou réaliser une nouvelle tentative manuellement avec le service « pay » de l’invoice. Ces paiements « manuels » ne sont pas comptabilisés par le système de nouvelles tentatives automatisées. Cette action peut être effectuée sur une facture fermée. 6/ Schéma complet de création d’un abonnement Fractionné Introduction Le paiement fractionné permet de découper le règlement d’une facture en plusieurs échéances. CentralPay prélève ensuite la carte du client selon un échéancier défini lors de la première transaction. Il peut être utilisé pour proposer un étalement de règlement à votre client ou pour automatiser un règlement type « acompte/solde ». Contrairement aux abonnements, un client ne peut pas résilier un paiement fractionné depuis le portail client. CentralPay vous aide à recouvrer les échéances dues par vos clients avec un système de nouvelles tentatives automatisées en cas d’échec de prélèvement. Cependant, CentralPay ne garantie pas les sommes dues à l’aide d’un crédit ou d’un système de financement de créances. Le service "Installment" n'est pas le seul moyen de réaliser des transactions récurrentes. Consultez la page Transaction carte récurrente ou la page Transaction par prélèvement pour prendre connaissance du détail par moyen de paiement. 1/ Créer un paiement fractionné Vous devez d’abord créer un Customer contenant au moins : une Card (si vous souhaitez opérer des transactions carte) ou un Mandate (si vous souhaitez opérer des transactions par prélèvement SEPA). Ensuite, le service Installment vous permettra de créer facilement un paiement fractionné en se basant sur les éléments renseignés dans votre requête. Vous pouvez ensuite créer un Installment: Selon le moyen de paiement souhaité : pour des transactions carte : renseignez l’identifiant du profil client « customerId » pour des transactions par prélèvement SEPA : renseignez l’identifiant du mandat SEPA « mandateId » et renseignez la date souhaitée de la transaction dans « requestedCollectionDate » Renseignez le montant en centimes « amount » Renseignez la devise en format ISO « currency » Renseignez l’IP de votre client dans « endUserIp » Renseignez les paramètres de fractionnement « iterationCount », « intervalCount » et « intervalUnit » Avec ce service, il est également possible : d’imputer des frais supplémentaires à votre client (feeAmount) : pour la mise à disposition de cet étalement des paiements de définir un montant d’acompte qui sera déduit du montant total (depositAmount). Cet acompte peut également être défini à une date spécifique (depositStartingDate). de définir une date de démarrage du paiement fractionné (startingDate) : si l’on souhaite par exemple que l’acompte soit réglé tout de suite, et que les premières échéances soient prélevées à partir d’une certaine date. Notez qu’à la création d’un paiement fractionné, votre client reçoit automatiquement un email contenant le détail de ses échéances. Cet email contient également un lien vers notre Portail client qui lui permet de visualiser le statut de ses paiements récurrent et de changer sa carte bancaire ou son mandat SEPA si besoin est. 2/ Exemple de paiement fractionné Vous souhaitez facturer à votre client 1 000 € divisés en 3 mois à partir du 05/07/2024, avec un acompte de 200 € le 28/06/2024 et ajouter un frais supplémentaire de 10 € : amount =100000 depositAmount = 20000 feeAmount = 1000 currency = EUR intervalUnit = MONTH intervalCount = 1 iterationCount = 3 depositStartingDate = 2024-06-28 startingDate = 2024-07-05 Le plan de fractionnement sera le suivant : 28/06/2024 = 200,00 € (acompte) 05/07/2024 = 276,68 € (premier fractionnement + ajustement arrondis + frais supplémentaires) 05/08/2024 = 276,66 € (deuxième fractionnement) 05/09/2024 = 276,66 € (troisième fractionnement) Les arrondis sont appliqués au premier paiement (hors acompte). 3/ Automatisation des nouvelles tentatives en cas d’échec En cas d’échec de prélèvement d’une échéance, CentralPay réalise de nouvelles tentatives de prélèvement selon les paramètres définis dans le Portail utilisateur : Accès paramétrages paiements fractionnés – Portail utilisateur de RCT Accès paramétrages paiements fractionnés – Portail utilisateur de PROD Comportement des champs : Heure de transaction : heure à laquelle les échéances de prélèvement seront réalisées par CentralPay Sélection d’une valeur de 4 à 23 1er échec de paiement : comportement en cas d’un premier échec de prélèvement Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la transaction initiale Stop = le système ne réalisera pas de nouvelle tentative de prélèvement. 2nd échec de paiement : comportement en cas d’un deuxième échec de prélèvement Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative Stop = le système ne réalisera pas de deuxième nouvelle tentative de prélèvement. 3eme échec de paiement : comportement en cas d’un troisième échec de prélèvement Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative Stop = le système ne réalisera pas de troisième nouvelle tentative de prélèvement. 4eme échec de paiement : comportement en cas d’un quatrième échec de prélèvement Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative Stop = le système ne réalisera pas de quatrième nouvelle tentative de prélèvement.
Activités interdites Pour garantir la conformité réglementaire, la sécurité des opérations et la réputation de ses services, CentralPay interdit formellement certaines activités. Toute personne ou entité souhaitant ouvrir un compte CentralPay doit s’assurer que son activité est conforme aux exigences ci-dessous. L’exercice de l’une des activités suivantes peut entraîner le refus d’entrée en relation, la suspension du compte ou sa clôture immédiate. ❌ Activités interdites de manière absolue CatégorieExemples d’activités interditesActivités illicitesVente de drogues, de produits illicites ou de substances interditesBlanchiment d’argent, financement du terrorismeProstitutionProduits interdits ou réglementés sans autorisationVente de médicaments ou produits pharmaceutiques sans agrémentVente d’alcool, de tabac ou de jeux d’argent sans licenceVente d’armes, d’explosifs ou de dispositifs de piratageContenus et comportements illégauxDiffusion de contenus à caractère pornographique ou extrêmeActivités incitant à la haine, au racisme ou faisant l’apologie du terrorismeDiffusion d’images contraires à l’ordre publicFraudes ou pratiques commerciales interditesUsurpation d’identité, fraude documentaireVente de produits contrefaits ou de marques non autoriséesSites de phishing ou logiciels espionsRéseaux à risque ou non coopératifsOrganisations sectaires ou mouvements ultra-radicauxRéseaux opérant dans des juridictions sous sanction ou non coopératives (ex. paradis fiscaux non reconnus) ⚠️ Activités soumises à conditions strictes Certaines activités peuvent être envisagées sous réserve d’une analyse renforcée par les équipes conformité et de la fourniture de justificatifs réglementaires valides : Jeux en ligne ou paris (avec licence délivrée par l’autorité compétente) Vente d’alcool ou de tabac (avec autorisation légale) Plateformes de streaming ou d’abonnement (sous conditions anti-fraude) 🛡️ En cas de doute… CentralPay se réserve le droit d’interprétation et de décision unilatérale en matière d’acceptation ou de rejet d’une activité, y compris en cas d’évolution réglementaire. Pour toute activité atypique ou présentant des risques, une analyse renforcée peut être demandée, avec obligation de transparence sur les flux, les bénéficiaires, et les clients finaux. 📩 Contactez votre interlocuteur CentralPay si vous avez des questions sur l’éligibilité d’un projet.
Test IBAN values Find below the list of HTTP return codes: DE91100000000123456789AXABFRPPAZ96AZEJ00000000001234567890AXABFRPPCY21002001950000357001234567AXABFRPPES7921000813610123456789AXABFRPPFR7630006000011234567890189AXABFRPPFO9264600123456789AXABFRPP
Authentification 3DS 2.2 Articles 3DS 2.2 BRW (paiement unitaire) 3DS 2.2 3RI (paiements récurrents) FAQ 3DS 2.2 3DS 2.2 BRW (paiement unitaire) Téléchargement des sources 3DS 2.0 Vous pouvez télécharger les sources ici : 3ds2.zip Introduction Tout ce processus doit se dérouler sur la même page web (ceci est une contrainte du process bancaire). Les grandes étapes du 3D Secure 2.0 : Consultez un exemple de formulaire de paiement CUSTOM intégrant le 3DS 2.0 1) Versioning Cette étape consiste à adresser le PAN de la carte à l’API Centralpay. Exemple de code Curl : curl -v POST 'https://test-api.centralpay.net/v2/rest/3ds2/versioning' \ -h 'Content-Type: application/x-www-form-urlencoded' \ -u 'doctest:4I9HJRTd' \ -d 'acctNumber=4000001000000067' En réponse : Si la carte n’est pas 3DS 2.0, le versioning vous retournera une erreur 404. Cela signifie que la carte utilisée n’est pas enrôlée 3DS 2.0 et que la transaction ne peut pas se faire en 3DS 2.0. Si la carte est 3DS 2.0, vous recevrez un UUID identifiant l’opération jusqu’au résultat final + les données nécessaire pour réaliser le « 3DS Method » (URL + base64) Deux réponses au Versionning sont possibles si la carte est 3DS 2.0 : Version 1 (la plus fréquente) : { "threeDSServerTransID":"7d031b8e-7fb7-4215-b866-eaacb395002f", "threeDSMethodURL":"https://test-3dss-demo.centralpay.net/acs/3ds-method", "threeDSMethodDataForm":{ "threeDSMethodData":"eyJ0aHJlZURTTWV0aG9kTm90aWZ pY2F0aW9uVVJMIjoiaHR0cHM6Ly90ZXN0LTNkc3MuY2VudHJ hbHBheS5uZXQvM2RzLzNkcy1tZXRob2Qtbm90aWZpY2F0aW9 uLyIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiOWNjNmIzM2M tZGQzNS00ZmJkLTgxY2QtZmQ5Y2YwYWVlZDljIn0=" }, "errorDetails":null } Cette réponse est renvoyée quand la banque a besoin de l’acs url dans la requête de l’authentification. Le process 3DS Method est alors nécessaire, vous pouvez passer au point 2 : 3DS METHOD. Version 2 : { "threeDSServerTransID":"7d031b8e-7fb7-4215-b866-eaacb395002f", "threeDSMethodURL": null, "threeDSMethodDataForm": null, "errorDetails": null } Cette réponse est renvoyée quand la banque n’a pas besoin de l’acs url dans la requête de l’authentification.Le versioning renvoie une réponse où seul « threeDSServerTransID » possède une valeur non null. Le process 3DS Method n’est alors pas nécessaire, vous pouvez passer au point 3 : 3DS AUTHENTICATION BRW. 2) 3DS METHOD Lorsque le versioning renvoi les champs threeDSMethodURL et threeDSMethodDataForm en « Non Null », le process 3DS Method est alors nécessaire.Cette fonction a pour but de poster la donnée base64 reçue du versioning vers l’ACS.Le formulaire iframe doit être réalisée par le navigateur client vers la banque simultanément avec l’authentification.Il faut réaliser une iFrame cachée qui servira à poster la donnée base64 (threeDSMethodData) à l’URL reçue dans le versioning (threeDSMethodURL). 3) 3DS AUTHENTICATION BRW L’appel devra être adressé vers l’url suivante de l’API CentralPay : « 3ds2/authentication »Cette requête permet l’envoi des données contextuelles liées au porteur Exemple d’appel (curl code) : curl --location --request POST 'https://test-api.centralpay.net/v2/rest/3ds2/authentication' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA==' \ --data-urlencode 'threeDSServerTransID=7d031b8e-7fb7-4215-b866-eaacb395002f' \ --data-urlencode 'cardTokenId=5b9nb5cf-4470-4e58-b690-dd8965860eb8' \ --data-urlencode 'deviceChannel=02' \ --data-urlencode 'messageCategory=01' \ --data-urlencode 'purchaseAmount=1000' \ --data-urlencode 'purchaseCurrency=EUR' \ --data-urlencode 'threeDSRequestorAuthenticationInd=01' \ --data-urlencode 'browserJavaEnabled=true' \ --data-urlencode 'browserLanguage=fr-FR' \ --data-urlencode 'browserColorDepth=24' \ --data-urlencode 'browserScreenHeight=1052' \ --data-urlencode 'browserScreenWidth=1853' \ --data-urlencode 'browserTZ=120' \ --data-urlencode 'browserIP=127.0.0.1' \ --data-urlencode 'browserUserAgent=Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0' \ --data-urlencode 'browserAcceptHeader=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' \ --data-urlencode 'notificationURL=http://dev4.dev.centralpay.net:1101/requestor/challenge-notification' \ --data-urlencode 'threeDSRequestorURL=https://www.centralpay.eu' L’api va retourner un statut de transaction (« transStatus »), voici les valeurs et leurs significations : Pas d’autorisation (ne pas faire la transaction) : N = Non authentifié /Compte non vérifié. Transaction refusée. U = L’authentification/la vérification du compte n’a pas pu être effectuée. Problème technique ou autre, comme indiqué dans ARes ou RReq. R = Authentification/vérification du compte rejetée. l’émetteur rejette l’authentification/vérification et demande de ne pas tenter d’autorisation I = Information seulement. Reconnaissance de la préférence du demandeur pour le défi 3DS. Autorisation sans challenge : Y = Vérification de l’authentification réussie. A = Traitement des tentatives effectué. Non authentifié/vérifié, mais une preuve de tentative d’authentification/vérification est fournie. Autorisation après challenge : C = Challenge requis. Une authentification supplémentaire est requise en utilisant le CReq/CRes. D = Challenge requis. Authentification découplée confirmée. Exemples de réponses possibles : C = Challenge requis : {"threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f","transStatus": "C","acsURL": "https://test-3dss-demo.centralpay.net/acs/challenge","acsChallengeMandated": "Y","base64EncodedChallengeRequest": "eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImU2MDFlYjQ0LTU2N2MtNDM4Ny05MmZjLWU2ZjIzMjJiODIyYiIsImFjc1RyYW5zSUQiOiI3ZTQzZDI4ZC00M2RkLTRmM2MtYTcwOS00YjZkZDVlZjc5Y2QiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIn0=","contractId": "71602dd0-2790-4743-877b-e72530d7576d"} Le Challenge est nécessaire. Y = authentification réussie : { "threeDSServerTransID": "7d994177-32d8-43f7-87a4-3a3cd734cbfe", "transStatus": "Y", "authenticationValue": "MTIzNDU2Nzg5MDA5ODc2NTQzMjEa", "eci": "02", "contractId": "71602dd0-2790-4743-877b-e72530d7576d" } Le Challenge n’est pas nécessaire.Les champs requis au 3DS 2.0 sont dans la réponse (threeDSServerTransID, transStatus, authenticationValue (cavv), eci). Note : Le xid n’est pas fourni, car il s’agit d’une référence libre pour les marchands. N = Transaction refusée : { "threeDSServerTransID": "6396b832-3e5b-4143-bde6-f5r1c1e47da0", "transStatus": "N", "eci": "00", "contractId": "258128f3-5db9-4235-918a-f1d786f67c29" } Transaction refusée. 4) Challenge Lorsque la réponse de l’authentification est « C« , l’utilisateur doit effectuer un challenge, une Iframe doit alors soumettre un formulaire à l’url (acsURL) retournée par l’API lors de l’appel à « 3ds2/authentication ». Le seul paramètre envoyé est : creq qui comprend la valeur base64EncodedChallengeRequest qui provient de l’appel à « 3ds2/authentication ». A la fin du challenge, l’url configurée (paramètre notificationURL ) dans l’appel « 3ds2/authentication » est appelée. Voici ce que vous aurez dans notre environnement de test pour l’affichage du Challenge OTP (dans des conditions de PROD, la fenêtre affichée sera celle de l’ACS) : Voici les OTP en environnement test : 1234 retourne Y pour Challenge réussi 4444 retourne A pour Challenge réussi 1111 retourne N pour Challenge échoué 2222 retourne R pour Challenge échoué 3333 retourne U pour Challenge échoué 5) Réponse À l’issue du challenge, les informations concernant celui-ci sont disponibles dans la variable « finalCresValue » Pour récupérer les informations de cette valeur base 64 il faut la décoder, voici un exemple en php : $retour = json_decode(base64_decode($_POST['cres']), true) Si celui-ci est égal à Y ou A alors le client a effectué le challenge correctement et le paiement est autorisé, vous devrez alors appeler GET /results afin de connaitre les données nécessaire aux 3DS 2.0 pour votre transaction. Si le statut de transaction est égal à une autre valeur, alors le client n’a pas effectué le challenge correctement et le paiement est refusé. 6) Résultat Pour connaitre les données 3DS 2.0 à renseigner à la création d’une transaction 3DS 2.0, vous devrez adresser le threeDSServerTransID de l’authentification 3DS 2.0 préalablement effectuée. Rappel : Si vous avez obtenu un transStatus à « Y » en réponse de l’authentification, les données 3DS 2.0 sont déjà contenu dans celui-ci. Appel : curl --location -g --request GET 'https://test-api.centralpay.net/v2/rest/3ds2/results/{{threeDSServerTransID}}' \ --header 'Authorization: Basic e3tERUZBVUxUX1VTRVJ9fTp7e0RFRkFVTFRfUEFTU1dPUkR9fQ==' Réponse : { "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f", "transStatus": "Y", "authenticationValue": "JAmi21makAifmwqo2120cjq1AAA=", "eci": "01" } 7) Transaction Les données suivantes sont nécessaires afin de valider une transaction en 3DS 2.0 : 3ds[threeDSServerTransID] = threeDSServerTransID 3ds[status] = transStatus 3ds[cavv] = authenticationValue 3ds[eci] = eci (Obligatoire si disponible) 3ds[xid] = Paramètre Custom destiné aux marchands. Exemple d’une transaction 3DS 2.0 : curl --location --request POST 'https://test-api.centralpay.net/v2/rest/transaction' \ --header 'Origin: https://example.centralpay.net' \ --header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA==' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'currency=EUR' \ --data-urlencode 'amount=1500' \ --data-urlencode 'endUserIp=9.64.32.8' \ --data-urlencode 'endUserLanguage=ita' \ --data-urlencode 'merchantTransactionId=cpcg_12654de89ce44' \ --data-urlencode 'pointOfSaleId=1beb8574-cf4c-4b12-b065-d12b3f0eaa90' \ --data-urlencode 'browserUserAgent=Mozilla/5.0 (iPhone; CPU iPhone OS 16_1_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Mobile/15E148 Safari/604.1' \ --data-urlencode 'browserAcceptLanguage=it_IT' \ --data-urlencode 'paymentRequestBreakdownId=5485d7e6-60c3-753c-94d3-682eaaf9ae6e' \ --data-urlencode 'email=support@centralpay.eu' \ --data-urlencode 'receiptEmail=support@centralpay.eu' \ --data-urlencode 'capture=true' \ --data-urlencode 'cardTokenId=5b9nb5cf-4470-4e58-b690-dd8965860eb8' \ --data-urlencode 'order[cardholderEmail]=support@centralpay.eu' \ --data-urlencode 'order[firstName]=John' \ --data-urlencode 'order[lastName]=Doe' \ --data-urlencode 'source=EC' \ --data-urlencode '3ds[xid]=35876533346561303461' \ --data-urlencode '3ds[cavv]=JAmi21makAifmwqo2120cjq1AAA=' \ --data-urlencode '3ds[eci]=01' \ --data-urlencode '3ds[status]=Y' \ --data-urlencode '3ds[threeDSServerTransID]=7d031b8e-7fb7-4215-b866-eaacb395002f' 3DS 2.2 3RI (paiements récurrents) Prérequis Afin de réaliser une transaction en 3DS 2.0 3RI, il faut que l’utilisateur ait déjà réalisé une transaction 3DS 2.0 avec une authentification BRW.Une fois celle-ci effectuée, gardez le acsTransId qui est envoyé, il faudra le passer dans threeDSReqPriorRef. 1/ 3DS AUTHENTICATION RI L’appel devra être adressé vers l’URL suivante de l’API CentralPay : « 3ds2/authentication » Le acsTransId que vous avez gardé de l’authentification BRW doit être mis dans threeDSReqPriorRef. Si l’api vous retourne un statut de transaction (« transStatus ») à « Y » l’authentification 3RI est autorisé. Voici les valeurs possibles de transStatus et leur signification : Y = Vérification de l’authentification réussie. N = Non authentifié /Compte non vérifié. Transaction refusée. U = L’authentification/la vérification du compte n’a pas pu être effectuée. Problème technique ou autre, comme indiqué dans ARes ou RReq. A = Traitement des tentatives effectué. Non authentifié/vérifié, mais une preuve de tentative d’authentification/vérification est fournie. C = Challenge requis. Une authentification supplémentaire est requise en utilisant le CReq/CRes. D = Challenge requis. Authentification découplée confirmée. R = Authentification/vérification du compte rejetée. L’émetteur rejette l’authentification/vérification et demande de ne pas tenter d’autorisation. I = Information seulement. Reconnaissance de la préférence du demandeur pour le défi 3DS. Exemple d’appel 3RI (curl code) : curl --location --request POST 'https://test-api.centralpay.net/v2/rest/3ds2/authentication' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA==' \ --data-urlencode 'customerId=aae4d8c0-a555-4c2f-bfdf-18d5636b78a4' \ --data-urlencode 'cardId=44d0691b-b117-4799-ba07-31e0b02c5b08' \ --data-urlencode 'pointOfSaleId=08960d92-874b-4447-800b-aaa53fa976f5' \ --data-urlencode 'deviceChannel=03' \ --data-urlencode 'messageCategory=02' \ --data-urlencode 'acctType=03' \ --data-urlencode 'cardExpiryDate=9999' \ --data-urlencode 'purchaseAmount=4880' \ --data-urlencode 'purchaseCurrency=978' \ --data-urlencode 'purchaseExponent=2' \ --data-urlencode 'purchaseDate=20230101122345' \ --data-urlencode 'recurringExpiry=20330101' \ --data-urlencode 'recurringFrequency=0' \ --data-urlencode 'chAccAgeInd=03' \ --data-urlencode 'chAccChange=20220901' \ --data-urlencode 'chAccDate=20220901' \ --data-urlencode 'email=support@centralpay.eu' \ --data-urlencode 'nbPurchaseAccount=2' \ --data-urlencode 'paymentAccAge=20221001' \ --data-urlencode 'paymentAccInd=03' \ --data-urlencode 'threeDSReqPriorAuthMethod=02' \ --data-urlencode 'threeDSReqPriorAuthTimestamp=202209010123' \ --data-urlencode 'threeDSReqPriorRef=7d031b8e-7fb7-4215-b866-eaacb395002f' \ --data-urlencode 'threeDSRequestorDecReqInd=N' \ --data-urlencode 'threeDSRequestorAuthenticationInd=02' \ --data-urlencode 'threeDSRequestorChallengeInd=02' \ --data-urlencode 'threeRIInd=01' Explication de certains paramètres deviceChannel 03 -> 3DS Requestor Initiated (3RI) messageCategory 02 -> La valeur 02 force la transaction en 3RI. purchaseAmount -> Montant de l’achat courant purchaseCurrency -> Monnaie au format ISO purchaseExponent -> Unité mineure de la monnaie courante purchaseDate -> Date de l’achat recurringExpiry -> Date à laquelle il n’y aura plus d’autorisations qui pourront être effectuées recurringFrequency -> Nombre de jours minimums entre deux autorisations. acctType -> Debit chAccAgeInd -> Durée pendant laquelle le titulaire de la carte possède le compte auprès du demandeur 3DS. Les valeurs acceptées sont : 01 -> Pas de compte 02 -> Créé durant la transaction 03 -> Moins de 30 jours 04 -> Entre 30 et 60 jours 05 -> Plus de 60 jours. chAccChange -> Date à laquelle le compte du titulaire de la carte auprès du demandeur 3DS a été modifié pour la dernière fois. Format de la date = YYYYMMDD. chAccDate -> Date à laquelle le titulaire de la carte a ouvert le compte auprès du demandeur 3DS. Format de la date = YYYYMMDD. nbPurchaseAccount -> Nombre d’achats effectués avec ce compte de titulaire de carte au cours des six derniers mois. paymentAccAge -> Date à laquelle le compte de paiement a été inscrit sur le compte du titulaire de la carte auprès du demandeur 3DS. paymentAccInd -> Indique la durée pendant laquelle le compte de paiement a été inscrit sur le compte du titulaire de la carte auprès du demandeur 3DS. Les valeurs acceptées sont : 01 -> Pas de compte 02 -> Créé durant la transaction 03 -> Moins de 30 jours 04 -> Entre 30 et 60 jours 05 -> Plus de 60 jours. threeDSReqPriorAuthMethod 02 -> Vérification du porteur de carte effectué par l’ACS. threeDSReqPriorAuthTimestamp -> Date et heure en UTC de l’authentification précédente. Le format de date accepté est YYYYMMDDHHMM. threeDSReqPriorRef -> Le champ doit contenir la valeur « acsTransId » de la transaction 3DS BRW précédente. threeDSRequestorDecReqInd N -> Ne pas utiliser l’authentification découplée. threeDSRequestorAuthenticationInd 02 -> Transaction récurrente threeDSRequestorChallengeInd 02 -> Pas de Challenge requis threeRIInd 01 -> Transaction récurrente Exemple de réponse : { "threeDSServerTransID": "67dc456c-6c7a-987f-92cf-f68752525d0c", "transStatus": "Y", "eci": "02", "contractId": "fb8736a5-8741-19b6-9d38-ec135888e0bf" } 2/ Transaction Les données suivantes sont nécessaires afin de valider une transaction en 3DS 2.0 : 3ds[threeDSServerTransID] = threeDSServerTransID (ajouter le nouveau génerer par l’authentification 3RI) 3ds[status] = transStatus 3ds[eci] = eci (Obligatoire si disponible) 3ds[xid] = Paramètre Custom destiné aux marchands. Lors d’une transaction en 3RI, il ne faut pas envoyer le 3ds[cavv]. Exemple d’une transaction 3DS 2.0 : curl --location --request POST 'https://test-api.centralpay.net/v2/rest/transaction' \ --header 'Origin: https://example.centralpay.net' \ --header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA==' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'currency=EUR' \ --data-urlencode 'amount=1500' \ --data-urlencode 'endUserIp=9.64.32.8' \ --data-urlencode 'endUserLanguage=ita' \ --data-urlencode 'merchantTransactionId=cpcg_12654de89ce44' \ --data-urlencode 'pointOfSaleId=1beb8574-cf4c-4b12-b065-d12b3f0eaa90' \ --data-urlencode 'browserUserAgent=Mozilla/5.0 (iPhone; CPU iPhone OS 16_1_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Mobile/15E148 Safari/604.1' \ --data-urlencode 'browserAcceptLanguage=it_IT' \ --data-urlencode 'paymentRequestBreakdownId=5485d7e6-60c3-753c-94d3-682eaaf9ae6e' \ --data-urlencode 'email=support@centralpay.eu' \ --data-urlencode 'receiptEmail=support@centralpay.eu' \ --data-urlencode 'capture=true' \ --data-urlencode 'customerId=aae4d8c0-a555-4c2f-bfdf-18d5636b78a4' \ --data-urlencode 'cardId=44d0691b-b117-4799-ba07-31e0b02c5b08' \ --data-urlencode 'order[cardholderEmail]=support@centralpay.eu' \ --data-urlencode 'order[firstName]=John' \ --data-urlencode 'order[lastName]=Doe' \ --data-urlencode 'source=EC' \ --data-urlencode '3ds[xid]=35876533346561303461' \ --data-urlencode '3ds[eci]=02' \ --data-urlencode '3ds[status]=Y' \ --data-urlencode '3ds[threeDSServerTransID]=67dc456c-6c7a-987f-92cf-f68752525d0c' FAQ 3DS 2.2 Foire aux questions autour du 3-D Secure 2.0. Existe-t-il des cartes de test pour des transactions 3DS2 en environnement RCT ? Consultez la liste des cartes de tests de l’environnement de RCT Ma transaction a reçu le code retour banque 5, qu’est-ce que ça signifie ? Cela signifie, que la banque refuse sans donner de statut particulier.Cela peut être un code CVV erroné ou une autre décision que nous ne connaissons pas.Ce statut ne permet pas d’affirmer que la banque n’acceptera pas l’autorisation après d’autres tentatives. Ma transaction a reçu le code retour banque 12, qu’est-ce que ça signifie ? Cela signifie que la banque refuse sans donner de statut particulier.La raison peut être : – Simplement une transaction invalide – Un code 75 de la part de la banque émetteur (le code PIN de la carte a été trop de fois incorrecte) – Un CVV erroné (fournit par l’ACS lors d’une authentification 3DS) – Ou une autre décision que nous ne connaissons pas. L’API transaction me retourne une erreur « Soft Decline » pourtant le paramètre « threeDSServerTransID » est bien celui retourné par le cres.Comment devons-nous interpréter ce retour et que devons-nous faire ? Le soft decline est renvoyé par la banque lorsque que le 3DS n’est pas présent dans la transaction.Il faut vérifier s’il manque des champs présentés dans cette partie de la documentation : https://ref-api.centralpay.net/payment#106-3ds-sub-object Ma requête du Versioning me retourne une erreur « 404 » avec le message « Card account number not found in card ranges from Directory Server ».Qu’est-ce que ça signifie et que dois-je faire ? Cela signifie que la carte utilisée n’est pas enrôlée 3DS2.0 et que la transaction ne peut pas se faire en 3DS2.0.Pour ce cas, nous conseillons de prévoir un basculement vers un paiement en 3DS1 pour ce genre de carte. La réponse de la requête Result nous a renvoyé le transStatus à U.Comment devons-nous interpréter ce retour et que devons-nous faire dans ce cas ? La valeur U de transStatus en réponse de la requête result signifie que l’authentification ou la vérification n’a pas pu se faire suite à un problème technique ou autres problèmes.Du côté du smart form lors du challenge avec la requête result, seules les valeurs Y et A permettent de valider le challenge et continuer le paiement.Les autres valeurs font échouer le challenge et le paiement.Mais dans le cas d’un custom form le fonctionnement peut être différent, vous pouvez utiliser la valeur U pour faire une nouvelle tentative de challenge et si ça échoue encore alors le paiement passe en 3DS1 ou est refusé, ou alors pour directement retenter le paiement en 3DS1 ou le considérer comme un échec de paiement.Ces différents cas sont possibles à réaliser. Nous avons soumis le formulaire à l’URL retournée par l’authentication avec le base64EncodedChallengeRequest.Mais le client est aussitôt revenu sur notre site sans CRES mais avec un paramètre ERROR contenant la valeur « eyJ0aHJlZURTU…Mi4xLjAifQ== » ainsi que le paramètre « THREEDSSESSIONDATA » qui lui était vide.Comment devons-nous interpréter ce retour et que devons-nous faire dans ce cas ? Lorsque vous avez un retour de ce genre, il faut vérifier que votre processus du 3DS2 se déroule bien sûr une seule et même page avec la solution d’un iframe.Si le processus est conforme, alors contactez le support technique avec les informations nécessaires. Pour rappel, toutes les étapes du formulaire se réalisent sur une seule et même page sans redirection vers une page bancaire ou autre.Cela se fait grâce à la solution de l'Iframe.Toute la procédure du 3DS2.0 se passe sur la même page ! Nous avons reçu une erreur 303 : « acquirerBIN, acquirerMerchantID not recognized » lors d’un appel à l’authentication.Comment devons-nous interpréter ce retour et que devons-nous faire dans ce cas ? Il s’agit soit du contrat qui n’est pas 3DS2, soit d’autres problèmes.Dans le cas d’un autre problème, il faut alors contacter le support technique en fournissant le numéro de contrat monétique (si connu) et les autres informations pouvant être nécessaire. Sur l’étape d’authentication, nous avons eu une erreur 203 : « Validation of 3DS Requestor Authentication data failed.Data element not in the required format or value is invalid » pour le champ merchant.merchantName.Comment devons-nous interpréter ce retour et que devons-nous faire dans ce cas ? L’erreur 203 signifie qu’il y a un caractère invalide dans le paramètre « merchant.merchantName ». Lors d’un test d’appel de la fonction 3DS2 « authentication », l’erreur suivante est retournée dans la clé « card data » : « There is no unique source of card ».Qu’est-ce que cela signifie ? L’erreur « There is no unique source of card » est commune à toute la plateforme et est présent lorsque vous envoyez des informations de cartes deux fois : par exemple via un cardToken et un cardId ou un PAN et un cardToken etc…
Principes de réserve La réserve représente les sommes qui sont maintenues sur votre compte CentralPay afin de permettre de couvrir les R-transactions (rejets, refus, retours, remboursements, contestations, impayés) liés à des opérations de paiement. Ses paramètres sont définis en fonction du profil de risque financier de votre compte et sont actualisés en fonction de l’analyse de vos R-transactions sur une période suffisante. Les transactions récurrentes par prélèvement SEPA et par carte bancaire sont particulièrement sujettes au risque de R-transactions. CentralPay possède 3 types de garanties de protection qui peuvent s’appliquer aux marchands, en fonction de la nature de leur contrat : 1. Le collatéral Il représente la somme fixe versée en début de relation, servant à couvrir le risque de crédit dans le cas où le marchand ne pourrait pas satisfaire ses obligations de remboursement envers ses clients. Le détail du collatéral est visible depuis le Portail utilisateur : Administration Reversements Somme des cautions 2. Le pied de compte En l’absence de collatéral, une somme fixe peut être prélevée directement sur les opérations afin de garantir le remboursement des clients en cas de besoin. Le wallet doit donc dépasser la valeur du pied de compte pour autoriser les reversements (payout). Le détail du pied de compte est visible depuis le Portail utilisateur : Administration Reversements Seuil fixe 3. La réserve glissante Selon le secteur d’activité et les processus de règlement du compte, une réserve glissante (« rolling réserve » en anglais) peut être automatiquement ouverte. Il s’agit d’une garantie de protection supplémentaire qui permet de maintenir un certain pourcentage du volume d’encaissement marchand sur le compte CentralPay afin de permettre l’initiation de remboursements automatiques en cas de contestation de transaction, de fraude ou encore afin de couvrir d’éventuels frais opérationnels. Cette somme appartient à la trésorerie du marchand, elle est gardée un nombre défini de jours avant d’être libérée (généralement entre 90 à 180 jours). Par exemple, le seuil variable de la réserve glissante est de 5 % du volume d’encaissement sur 90 jours. Le calcul quotidien du montant de réserve est le suivant : montant des transactions encaissées lors des 90 derniers jours * 5 % Le détail de la réserve glissante est visible depuis le Portail utilisateur : Administration Reversements Seuil variable
Exports comptables Vous pouvez réaliser plusieurs exports de votre compte aux formats CSV, EXCEL, ou JSON depuis votre Portail utilisateur. Pour cela, paramétrez votre recherche avec les filtres disponibles sur la page de l’export souhaité, cliquez sur « Rechercher » puis « Exporter ». En quelques secondes, vous recevrez le fichier par email et pourrez le télécharger à tout moment depuis votre Portail utilisateur Compte Exports . 1. Export comptable des opérations du compte Cet export reprend l’ensemble des mouvements financiers débiteurs et créditeurs qui ont été réalisés sur votre compte : autorisations cartes, transactions cartes, transactions SDD, transactions SCT, transfers, payout, frais CentralPay… Vous disposerez du détail de chaque opération afin que vous puissiez le rapprocher facilement à vos factures ou vos dossiers. L’export contient les données suivantes : DénominationSignificationmovement_creation_datedate de l’opérationmovement_ididentifiant CentralPay de l’opérationmovement_gross_amountmontant brutmovement_gross_currencydevise du montant brutmovement_fee_amountmontant des frais CentralPaymovement_fee_currencydevise des fraismovement_net_amountmontant netmovement_net_currencydevise du montant netmovement_expected_availability_datedate de disponibilité des fonds estiméemovement_available_datedate de disponibilité des fonds réellemovement_statusstatut du mouvement (success, failed…)movement_source_typetype d’opération (transaction, transfert…)movement_source_uuididentifiant associé au type d’opération (transactionId, wireTransferId, transferId…)merchant_descriptiondescription définie par le marchandmerchant_reference_idréférence définie par le marchandcard_countrypays d’émission de la cartecard_regionzone d’émission de la carte (UE, hors UE)point_of_sale_idID CentralPay du point de vente Accès : Portail Utilisateur de RCT – Opérations Portail Utilisateur de PROD – Opérations 2. Télécharger le rapport financier mensuel Chaque début de mois, en plus de la facture, un rapport financier est généré, puis mis à disposition dans l’espace sécurisé de votre compte ( Administration compte documents Rapports financiers ). Il présente les montants totaux de crédit, de débit, de frais et de réserve de votre compte : Pour bien comprendre votre rapport financier :A) Le total des montants acquis / reçus sur votre compte au cours de la périodeB) Le montant net reçu sur votre compte, déduction faite de l’ensemble des frais selon le calcul « B = A – I »C) Le montant de la réserve détenue en garantie au jour de clôture de la périodeD) Le montant des fonds disponibles au jour de clôture de la périodeE) La valeur totale des fonds disponibles et en garantie enregistrée dans les livres de CentralPay au jour de clôture de la période selon la formule « E = C + D »F) La valeur totale des fonds retirés / transférés à la banque du marchand pendant la périodeG) Le total des frais de service et commissions facturées sur les transactions définies dans la grille tarifaireH) Total des frais d’opérations techniques : frais d’autorisation cartes, de contestation, de payout…I) Total des frais techniques et commissions ou « I = G + H » Accès : Portail Utilisateur de RCT – Documents Portail Utilisateur de PROD – Documents
Test cards Values You will find below a list of cards that you can use to test and check your integration. Visa Card numbers 4000 0000 0000 0051Card lost (41) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »4000 0000 0000 0069Fraud suspicion (59) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »4000 0000 0000 0077Insufficient funds (51) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »4000 0000 0000 0085To be refused (5) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »4556 5579 5572 6624Transaction successful (3DS) & Authentication = Y4916 9940 6425 2017Transaction successful (3DS) & Authentication = C4556 1041 6038 2032Transaction successful (NON 3DS) & Authentication = N4024 0071 7987 2394Transaction (NON 3DS) & Authentication = N4234 6319 8242 8908Transaction (3DS) & Authentication = I4234 6319 8242 8916Transaction successful (3DS) & Authentication = D : application flow4234 6319 8242 8924Transaction successful (3DS) & Authentication = D : browser flow4032 0389 8296 2700EEA=true ; region=EUROPE; productType=CONSUMER; cardType=DEBIT ;4032 0343 8883 4767EEA=true ; region=EUROPE; productType=CONSUMER; cardType=CREDIT ;4020 0280 0191 2012EEA=true ; region=EUROPE; productType=CONSUMER; cardType=UNKNOWN ;4032 0337 9569 2248EEA=true ; region=EUROPE; productType=CORPORATE; cardType=DEBIT ;4032 0368 1354 0364EEA=true ; region=EUROPE; productType=CORPORATE; cardType=CREDIT ;4032 0387 5662 0096EEA=true ; region=EUROPE; productType=CORPORATE; cardType=UNKNOWN ;4032 0358 5604 7592EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=DEBIT ;4032 0302 9068 3219EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=CREDIT ;4032 0377 5134 3001EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=UNKNOWN ;4032 0307 5488 6225EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=DEBIT ;4032 0310 2547 6341EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=CREDIT ;4032 0341 4311 3978EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=UNKNOWN ;4032 0309 5816 7398EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=DEBIT ;4032 0375 4480 7536EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=CREDIT ;4032 0366 9148 7225EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=UNKNOWN ;4032 0325 8917 3860EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=DEBIT ;4032 0388 0897 9557EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=CREDIT ;4032 0374 2147 1240EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=UNKNOWN ; Mastercard Card numbers 5333 2591 5564 3223Transaction successful (3DS) & Authentication = Y5306 8899 4283 3340Transaction successful (3DS) & Authentication = C5328 7203 8458 2224Transaction successful (NON 3DS) & Authentication = N5187 4346 4359 3002Transaction successful (NON 3DS) & Authentication = N5517 4500 0000 0168EEA=false ; region=US ; productType=CONSUMER ; cardType=CREDIT5223 8599 0000 0174EEA=false ; region=US ; productType=CORPORATE ; cardType=DEBIT5325 0900 0000 0115EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBIT5325 0900 0000 0008EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBIT5486 7467 7300 0005EEA=false ; region=EUROPE ; productType=CONSUMER ; cardType=DEBIT; Country=RUS5588 1000 0000 0007EEA=false ; region=CEMEA ; productType=CONSUMER ; cardType=DEBIT5122 9400 0000 0009EEA=false ; region=LATIN_AMERICA ; productType=CONSUMER ; cardType=DEBIT Amex Card numbers 3415 0209 8634 895Transaction successful (3DS) & Authentication = Y3486 3826 7931 507Transaction successful (3DS) & Authentication = C3456 9539 9207 589Transaction successful (NON 3DS) & Authentication = N3415 0209 8634 895EEA=false ; region=EUROPE ; productType=CONSUMER3486 3826 7931 507EEA=false ; region=EUROPE ; productType=CORPORATE3718 4294 2351 004EEA=false ; region=EUROPE ; productType=UNKNOWN3712 5311 3391 201EEA=false ; region=ASIA_PACIFIC ; productType=CONSUMER3423 1631 7472 410EEA=false ; region=ASIA_PACIFIC ; productType=CORPORATE3710 9829 7279 338EEA=false ; region=ASIA_PACIFIC ; productType=UNKNOWN CB Card numbers 4020 0235 6597 5380Transaction successful (NON 3DS), scheme : CB4020 0254 4041 8403Transaction successful (NON 3DS), scheme : CB_VISA5232 1035 2372 2651Transaction successful (NON 3DS), scheme : CB_MASTERCARD
Développeurs Articles How to use the swagger > Authentication 3DS 2.2 > BankAccount > Card token CARD Transaction Charge Customer > Installment Payment > MerchantInfo > Onboarding Payout > Refund > Payment Request > SCT Transaction SDD Transaction Subscription Transfer > TransferReversal > Wallet > Blacklist > WhiteList > Webhook notifications Object status Resources by type How to use the swagger > You’ll find below instruction to use our swagger properly 1 – This is where you can choose the server you’ll call for your tests. For now, only RCT (Test Api) is available.2 – In order to do your tests, you’ll need to authenticate with your credentials. You can use here your Api login and password. You can also use our test login : Doctest:4I9HJRTd 3 – This is where you will be able to see the parameters for each endpoint, and do your tests. 4 – Try it out. Use this if you want to be able to test the endpoint. Make sure you’re authenticated before doing so.5 – This is where you’ll be able to use the test values of your choosing. By default, most values are already filled, but use yours for better results.6 – Click here once values are filled to call our Api and do your tests.7 – This is where you’ll see the results once you called our Api. You’ll also find here by default responses example for this endpoint. Authentication 3DS 2.2 > See more about 3DS 2.2 BankAccount > See more about BankAccount Once your identity has been created (Merchant or Customer), you can create a bank account you’ll link to it. Merchants must create for their customer the bank account with informations provided by them. It must be noted that to become a creditor, you need to have a level STANDARD or more. Card token See more about Card Token The Json « CardToken » object The « CardToken » object represents a debit/credit card token. Merchants usually want to be able to charge payment cards, IBAN or other without having to store sensitive data on their servers.Token.js makes this easy in the browser, but you can use the same technique in other environments with our token API. Tokens can be created with your publishable API key, which can safely be embedded in downloadable applications like iPhone and Android apps. You can then use a token anywhere in our API when a credit/debit card, bank account or any personal ID number is accepted. You need to add a header "Origin" with an URL previously added in your Back Office as an Authorized Custom form Host.For your tests, you can use the origin : https://example.centralpay.net. CARD Transaction Transaction See more about card transactions Card See more about Card You can store multiple Cards per Customer in order to charge the customer later on (subscription, etc.). It can also be used to store multiple debit or credit cards on a recipient in order to transfer to these cards later. Note: If the card is already registered for this merchant, the API will return the previous cardId registered (not a new one). Credit See more about Credit Disputes See more about Disputes A dispute is opened when a customer questions a transaction with their bank or credit/debit card provider. When the transaction is tagged as a dispute, you can respond to the dispute with evidence that shows the charge is legitimate. If the transaction cannot be proven legitimate, the dispute will become a chargeback. Charge Customer > See more about Customer Installment Payment > See more about Installment Payment MerchantInfo > Onboarding Create Enrollement Complete enrollment Update enrollment Search enrollement Enrollment Details E-money Misc Payout > See more about Payout Refund > See more about Refund for Card Transaction See more about Refund for SCT Transaction See more about Refund for SDD Transaction Payment Request > See more about Payment Requests SCT Transaction SCT Transaction See more about SCT Transaction SCT Transaction Reversal See more about SCT Transaction Reversal Bank Reconciliation See more about Bank Reconciliation Bank Reconciliation external See more about Bank Reconciliation SDD Transaction Mandate See more about Mandate SDD Transaction See more about SDD Transaction SDD Transaction Reversal See more about SDD Transaction Reversal Subscription Subscription Model See more about Subscription Model Subscription See more about Subscription Invoice & invoiceItem See more about Invoice & invoiceItem Transfer > TransferReversal > Wallet > Blacklist > WhiteList > Webhook notifications The MERCHANT-ENROLLMENT object Prochainement The WALLETS object Prochainement The BANKACCOUNT object BANKACCOUNT_ACCEPTEDWhen a Bank account is accepted { "eventId": "e9229c2d-43f3-47aa-a2d4-09b2cd8afeef", "type": "BANKACCOUNT_ACCEPTED", "creationDate": "2024-01-05T12:44:06.262837+01:00", "object": { "attachments": [], "bankAccountId": "e6337e4f-6067-42ca-b7f0-9b7bce77c21e", "bic": "AXABFRPP", "creationDate": "2024-01-05T12:44:06.044772+01:00", "currency": "EUR", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "iban": "FR7612548029980000000150086", "name": "GAUTHIER REF API", "ownerAddress": "142 RUE DE LA REFAPI", "ownerCity": "TOURS", "ownerCountry": "FRA", "ownerName": "GAUTHIER REFAPI", "ownerPostalCode": "37000", "type": "CUSTOMER_ACCOUNT" }, "requestId": "0062091d-0377-4a47-bc95-b5717636825f" } BANKACCOUNT_PENDINGWhen a Bank account is pending { "eventId": "601c64e9-b65e-4369-8f70-5d32ce853073", "type": "BANKACCOUNT_PENDING", "creationDate": "2024-01-15T14:26:17.381461+01:00", "object": { "attachments": [], "bankAccountId": "2377f038-d798-42b2-ac46-113105166bd4", "bic": "AXABFRPP", "creationDate": "2024-01-15T14:26:17.189030+01:00", "currency": "EUR", "iban": "DE91100000000123456789", "merchantId": "e962cfc2-1d4f-4f4f-8688-71c38920ca6b", "name": "GAUTHIER REF API", "ownerAddress": "142 RUE DE LA REFAPI", "ownerCity": "TOURS", "ownerCountry": "FRA", "ownerName": "GAUTHIER REFAPI", "ownerPostalCode": "37000", "type": "MERCHANT_ACCOUNT" }, "requestId": "0965a4a6-e353-47ad-b844-40f7feca3ef0" } BANKACCOUNT_UPDATEDWhen a Bank account is updated { "name": "GAUTHIER REF API", "description": null, "ownerName": "GAUTHIER REFAPI", "ownerAddress": "142 RUE DE LA REFAPI", "ownerDescription": null, "ownerPostalCode": "37000", "ownerCity": "TOURS", "ownerCountry": "FRA", "iban": "FR7612548029980000000150086", "bic": "AXABFRPP", "currency": "EUR", "type": "CUSTOMER_ACCOUNT", "bankAccountId": "e6337e4f-6067-42ca-b7f0-9b7bce77c21e", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "merchantId": null, "creationDate": "2024-01-05T12:44:06.044772+01:00", "attachments": [] } The CARD object CARD_UPDATEDWhen a card is updated { "eventId": "5f037905-d0f2-4171-bc6f-fbab3b3e56e2", "type": "CARD_UPDATED", "creationDate": "2024-01-05T12:55:39.727533+01:00", "object": { "additionalData": {}, "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2", "cardType": "DEBIT", "cardholderEmail": "test@gmail.com", "cardholderName": "MARIE ANNE", "check": true, "commercialBrand": "MASTERCARD", "country": "FRA", "creationDate": "2024-01-05T12:52:41.054394+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f", "first6": "532509", "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5", "last4": "0008", "productType": "CORPORATE", "region": "EUROPE" }, "requestId": "296311d9-1f68-4f1f-a9bf-7879afb92c7b", "objectBeforeUpdate": { "additionalData": {}, "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2", "cardType": "DEBIT", "cardholderEmail": "gduhamel@centralpay.eu", "check": true, "commercialBrand": "MASTERCARD", "country": "FRA", "creationDate": "2024-01-05T12:52:41.054394+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f", "first6": "532509", "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5", "last4": "0008", "productType": "CORPORATE", "region": "EUROPE" } CARDTOKEN_CREATEDWhen a card token is created { "eventId": "3973ea45-d327-48d7-b74a-08cbffc821e9", "type": "CARDTOKEN_CREATED", "creationDate": "2024-01-05T14:23:41.971425+01:00", "object": { "card": { "additionalData": {}, "cardId": "81e54dd0-512e-47c0-91f3-54e81b74a3ea", "cardTokenId": "a3d37fd6-2ad7-4e9d-a4a0-b0b1aff44b50", "cardType": "DEBIT", "cardholderEmail": "Conner44@yahoo.com", "cardholderName": "GAUTHIER REFAPI", "check": true, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-05T14:23:41.881571+01:00", "europeanEconomicArea": true, "expirationMonth": 12, "expirationYear": 2025, "fingerprint": "edb9f9757c4be415db6616f94a04706a6b92dcd1", "first6": "403203", "last4": "2700", "productType": "CONSUMER", "region": "EUROPE" }, "cardTokenId": "a3d37fd6-2ad7-4e9d-a4a0-b0b1aff44b50", "creationDate": "2024-01-05T14:23:41.881571+01:00", "endUserIp": "54.86.50.139", "status": "UNUSED" }, "requestId": "f55ea9cb-595a-4e5d-b9ba-52198b5b3a16" } The CREDIT object CREDIT_CREATEDWhen a credit is created { "eventId": "b0ea7273-7421-4f3d-b9b6-27c1f521386b", "type": "CREDIT_CREATED", "creationDate": "2024-01-05T14:51:48.090154+01:00", "object": { "additionalData": { "key1": "value1" }, "amount": 100, "card": { "additionalData": {}, "cardId": "5ba4a451-e3ba-4555-b6f1-955b1531cbed", "cardTokenId": "39e38277-d68d-4970-b7ef-2f3e65e3ba1c", "cardType": "DEBIT", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-05T14:51:46.753895+01:00", "europeanEconomicArea": true, "expirationMonth": 12, "expirationYear": 2026, "fingerprint": "31e7053d8ee3f13b4f391c989d83aaaa7771450d", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T14:51:47.744817+01:00", "creditId": "a0184f13-cb58-4db2-9c02-f7ecdaf61909", "currency": "EUR", "fee": 0, "merchantCreditId": "MCID-01", "movementId": "304a16a4-f3f1-4e14-ab3b-2e9b4cee2f20", "order": { "addressLine1": "142 RUE DE LA REFAPI", "cardCountry": "FRA", "city": "BRIANNEBURY", "country": "FRA", "firstName": "MANDATORY", "lastName": "MANDATORY" }, "payoutAmount": 100, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "status": "UNCLEARED", "transactionTransfers": [] }, "requestId": "d4cf4f9b-83bc-4877-8d2a-c84a7183c666" } CREDIT_CANCELEDWhen a credit is cancelled { "eventId": "df668650-b893-462e-aa1a-f232bed383da", "type": "CREDIT_CANCELED", "creationDate": "2024-01-05T14:53:29.028715+01:00", "object": { "additionalData": { "key1": "value1", "test": "test" }, "amount": 100, "cancelMovementId": "1555e13a-0344-403a-a01c-6d435c598659", "cancellationDate": "2024-01-05T14:53:29.015180+01:00", "card": { "additionalData": {}, "cardId": "5ba4a451-e3ba-4555-b6f1-955b1531cbed", "cardType": "DEBIT", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-05T14:51:46.753895+01:00", "europeanEconomicArea": true, "expirationMonth": 12, "expirationYear": 2026, "fingerprint": "31e7053d8ee3f13b4f391c989d83aaaa7771450d", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T14:51:47.744817+01:00", "creditId": "a0184f13-cb58-4db2-9c02-f7ecdaf61909", "currency": "EUR", "fee": 0, "merchantCreditId": "MCID-01", "movementId": "304a16a4-f3f1-4e14-ab3b-2e9b4cee2f20", "order": { "addressLine1": "142 RUE DE LA REFAPI", "cardCountry": "FRA", "city": "BRIANNEBURY", "country": "FRA", "firstName": "MANDATORY", "lastName": "MANDATORY" }, "payoutAmount": 100, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "status": "CANCELED", "transactionTransfers": [] }, "requestId": "dca78a74-22f1-4fd8-a6bb-fc4be4735838" } CREDIT_UPDATEDWhen a credit is updated { "eventId": "b51f11be-c535-49a4-8a70-6241afd75654", "type": "CREDIT_UPDATED", "creationDate": "2024-01-05T14:52:49.329773+01:00", "object": { "additionalData": { "key1": "value1", "test": "test" }, "amount": 100, "card": { "additionalData": {}, "cardId": "5ba4a451-e3ba-4555-b6f1-955b1531cbed", "cardType": "DEBIT", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-05T14:51:46.753895+01:00", "europeanEconomicArea": true, "expirationMonth": 12, "expirationYear": 2026, "fingerprint": "31e7053d8ee3f13b4f391c989d83aaaa7771450d", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T14:51:47.744817+01:00", "creditId": "a0184f13-cb58-4db2-9c02-f7ecdaf61909", "currency": "EUR", "fee": 0, "merchantCreditId": "MCID-01", "movementId": "304a16a4-f3f1-4e14-ab3b-2e9b4cee2f20", "order": { "addressLine1": "142 RUE DE LA REFAPI", "cardCountry": "FRA", "city": "BRIANNEBURY", "country": "FRA", "firstName": "MANDATORY", "lastName": "MANDATORY" }, "payoutAmount": 100, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "status": "UNCLEARED", "transactionTransfers": [] }, "requestId": "300fdb28-2e74-4512-a7e9-f3fa843c8a7c", "objectBeforeUpdate": { "additionalData": { "key1": "value1" }, "amount": 100, "card": { "additionalData": {}, "cardId": "5ba4a451-e3ba-4555-b6f1-955b1531cbed", "cardType": "DEBIT", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-05T14:51:46.753895+01:00", "europeanEconomicArea": true, "expirationMonth": 12, "expirationYear": 2026, "fingerprint": "31e7053d8ee3f13b4f391c989d83aaaa7771450d", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T14:51:47.744817+01:00", "creditId": "a0184f13-cb58-4db2-9c02-f7ecdaf61909", "currency": "EUR", "fee": 0, "merchantCreditId": "MCID-01", "movementId": "304a16a4-f3f1-4e14-ab3b-2e9b4cee2f20", "order": { "addressLine1": "142 RUE DE LA REFAPI", "cardCountry": "FRA", "city": "BRIANNEBURY", "country": "FRA", "firstName": "MANDATORY", "lastName": "MANDATORY" }, "payoutAmount": 100, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "status": "UNCLEARED", "transactionTransfers": [] } } The CUSTOMER object CUSTOMER_CREATEDWhen a customer is created { "eventId": "8af1b16e-f78a-42ae-9304-69624a4023fc", "type": "CUSTOMER_CREATED", "creationDate": "2024-01-05T12:29:58.808367+01:00", "object": { "additionalData": {}, "bankAccounts": [], "cardMerchants": [], "cards": [], "creationDate": "2024-01-05T12:29:58.736339+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "email": "gduhamel@centralpay.eu", "fee": 0, "firstName": "JOCELYN", "installmentPayments": [], "language": "fre", "lastName": "WISOKY", "merchantCustomerId": "1704454198-GDU", "movementId": "c5408b8a-43d0-4191-9cb2-f3ec6d610649", "otpExpired": false, "subscriptions": [], "totalCharge": 0, "wallets": [] } CUSTOMER_UPDATEDWhen a customer is updated { "eventId": "94683d87-5919-4d4a-a547-21dbc7e7af1d", "type": "CUSTOMER_UPDATED", "creationDate": "2024-01-05T12:36:29.492916+01:00", "object": { "additionalData": {}, "bankAccounts": [], "cardMerchants": [], "cards": [], "creationDate": "2024-01-05T12:29:58.736339+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "email": "gduhamel@centralpay.eu", "fee": 0, "firstName": "JOCELYN", "installmentPayments": [], "language": "fre", "lastName": "WISOKY", "merchantCustomerId": "1704454198-GDU", "movementId": "c5408b8a-43d0-4191-9cb2-f3ec6d610649", "otpExpired": false, "subscriptions": [], "totalCharge": 0, "wallets": [] }, "requestId": "ca336699-db00-46c6-a797-228c320e351b", "objectBeforeUpdate": { "additionalData": {}, "bankAccounts": [], "cardMerchants": [], "cards": [], "creationDate": "2024-01-05T12:29:58.736339+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "email": "gduhamel@centralpay.eu", "fee": 0, "firstName": "JOCELYN", "installmentPayments": [], "language": "fre", "lastName": "WISOKY", "merchantCustomerId": "1704454198-GDU", "movementId": "c5408b8a-43d0-4191-9cb2-f3ec6d610649", "otpExpired": false, "subscriptions": [], "totalCharge": 0, "wallets": [] }} CUSTOMER_OTPWhen a Customer OTP is received to confirm a transaction { "eventId": "7404acb7-6000-4059-9da2-97581df00dc8", "type": "CUSTOMER_OTP", "creationDate": "2024-01-26T12:02:55.839650+01:00", "object": { "additionalData": {}, "bankAccounts": [], "cardMerchants": [], "cards": [ { "additionalData": {}, "cardId": "a361cbf0-c334-4422-b4e8-4d96f6b72799", "cardType": "DEBIT", "cardholderEmail": "gduhamel@centralpay.eu", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-26T11:59:38.763535+01:00", "customerId": "bac11130-43c2-4351-9c52-f1f7603282ee", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "8e9302793aa37b661f9ec57013d105ad72f1bc86", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" } ], "creationDate": "2024-01-26T11:59:38.569182+01:00", "customerId": "bac11130-43c2-4351-9c52-f1f7603282ee", "email": "gduhamel@centralpay.eu", "fee": 0, "firstName": "BEULAH", "installmentPayments": [], "language": "fre", "lastName": "PROSACCO", "merchantCustomerId": "1706266777-GDU", "movementId": "9afa479b-0859-4712-a614-2b1f38b81f9c", "otpExpirationDate": "2024-01-26T12:17:55.731546+01:00", "otpExpired": false, "subscriptions": [], "totalCharge": 0, "wallets": [] }, "requestId": "5329117d-5f7f-471b-a8d7-832627252670", "objectBeforeUpdate": { "additionalData": {}, "bankAccounts": [], "cardMerchants": [], "cards": [ { "additionalData": {}, "cardId": "a361cbf0-c334-4422-b4e8-4d96f6b72799", "cardType": "DEBIT", "cardholderEmail": "gduhamel@centralpay.eu", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-26T11:59:38.763535+01:00", "customerId": "bac11130-43c2-4351-9c52-f1f7603282ee", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "8e9302793aa37b661f9ec57013d105ad72f1bc86", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" } ], "creationDate": "2024-01-26T11:59:38.569182+01:00", "customerId": "bac11130-43c2-4351-9c52-f1f7603282ee", "email": "gduhamel@centralpay.eu", "fee": 0, "firstName": "BEULAH", "installmentPayments": [], "language": "fre", "lastName": "PROSACCO", "merchantCustomerId": "1706266777-GDU", "movementId": "9afa479b-0859-4712-a614-2b1f38b81f9c", "otpExpired": false, "subscriptions": [], "totalCharge": 0, "wallets": [] } } The DEPOSIT object DEPOSIT_CREATEDWhen a deposit is created { "depositId": "f63ea558-6e50-4dba-a7e7-eb8676144ea0", "creationDate": "2020-11-16T10:55:11.163214+01:00", "description": null, "amount": 1500000, "currency": "EUR", "sepaReference": null, "movementId": "9612fe9b-e226-4e9f-a0dc-8539a24ba748", "merchantId": "0055bff7-566c-4688-818c-85caf3601785", "destinationBankAccountId": "d9952704-5054-47fc-a068-c6865a9d00fd" } DEPOSIT_UPDATEDWhen a deposit is updated The DISPUTE object DISPUTE_UPDATEDWhen a dispute is updated { "eventId": "91986115-56ed-442a-ace7-2207c7f7cfa1", "type": "DISPUTE_UPDATED", "creationDate": "2024-01-05T15:22:33.233092+01:00", "object": { "additionalData": {}, "amount": 10, "creationDate": "2024-01-05T15:16:27.776882+01:00", "currency": "EUR", "description": "ma description", "disputeDate": "2021-03-18", "disputeId": "896304e9-b937-443a-ba59-3ccc99931b00", "fee": 0, "movementId": "09e2b390-a5a6-4926-a5ad-41c96bd38cea", "reason": "FRAUDULENT", "status": "CHARGEBACK_WON", "transactionId": "8940d775-cb9c-46e4-ab5a-c5c3ea7c3116", "wonMovementId": "569d7143-7357-4171-91ac-c03721a8ee30" }, "requestId": "750fdf73-0782-482b-97f6-2dbfb809b563", "objectBeforeUpdate": { "additionalData": {}, "amount": 10, "creationDate": "2024-01-05T15:16:27.776882+01:00", "currency": "EUR", "disputeDate": "2021-03-18", "disputeId": "896304e9-b937-443a-ba59-3ccc99931b00", "fee": 0, "movementId": "09e2b390-a5a6-4926-a5ad-41c96bd38cea", "reason": "FRAUDULENT", "status": "CHARGEBACK_NOTICED", "transactionId": "8940d775-cb9c-46e4-ab5a-c5c3ea7c3116" } } DISPUTE_CREATEDWhen a dispute is created The INSTALLMENT object INSTALLMENTPAYMENT_CREATEDWhen an installment is created { "eventId": "ab0c4d87-336d-4f1d-94ac-8a19e91c90df", "type": "INSTALLMENTPAYMENT_CREATED", "creationDate": "2024-01-05T16:47:16.962837+01:00", "object": { "additionalData": { "Key1": "val1" }, "amount": 1000, "card": { "commercialBrand": "MASTERCARD", "first6": "532509", "last4": "0008", "uuid": "4680d102-96b0-4fba-b00c-3375ee610fc7" }, "cardId": "4680d102-96b0-4fba-b00c-3375ee610fc7", "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T16:47:14.425730+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "depositAmount": 0, "endUserIp": "245.100.1.15", "feeAmount": 0, "installmentPaymentId": "1da9892e-d71c-40a9-8637-c259d3076582", "installments": [ { "amount": 500, "attemptCount": 1, "creationDate": "2024-01-05T16:47:14.425041+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "d70bceea-1b4b-454f-ae04-3cfa5e877e01", "installmentPaymentId": "1da9892e-d71c-40a9-8637-c259d3076582", "paid": true, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-05T16:47:15.250593+01:00", "uuid": "8b1b6eb7-c492-4a3f-913e-46c84836b50d" } ], "transactions": [ "8b1b6eb7-c492-4a3f-913e-46c84836b50d" ], "type": "INSTALLMENT" }, { "amount": 500, "attemptCount": 0, "creationDate": "2024-01-05T16:47:14.425434+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "8a2fea18-7ce7-4320-a398-3aec7c7cd7e9", "installmentPaymentId": "1da9892e-d71c-40a9-8637-c259d3076582", "nextTransactionAttempt": "2024-02-05T04:00+01:00", "paid": false, "sddTransactions": [], "transactions": [], "type": "INSTALLMENT" } ], "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "merchantInstallmentPaymentId": "MIP_001", "pointOfSale": { "name": "Corben Dallas", "uuid": "7d99a970-cc26-4de8-aa5d-d9ebf4088247" }, "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "startingDate": "2024-01-05", "status": "ACTIVE" }, "requestId": "66ec59e5-3f88-4cbd-a01f-b6be126084bf" } INSTALLMENTPAYMENT_FAILEDWhen an installment failed { "eventId": "4e1bbe68-906d-4e33-923d-dfee760a2261", "type": "INSTALLMENTPAYMENT_FAILED", "creationDate": "2024-01-05T16:34:31.349325+01:00", "object": { "additionalData": { "Key1": "val1" }, "amount": 1000, "card": { "commercialBrand": "MASTERCARD", "first6": "532509", "last4": "0008", "uuid": "4680d102-96b0-4fba-b00c-3375ee610fc7" }, "cardId": "4680d102-96b0-4fba-b00c-3375ee610fc7", "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T16:34:29.520817+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "depositAmount": 0, "endUserIp": "245.100.1.15", "feeAmount": 0, "installmentPaymentId": "0453a075-211f-4d0a-8947-e05cd6bd33fc", "installments": [ { "amount": 500, "attemptCount": 1, "creationDate": "2024-01-05T16:34:29.520151+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "6fe13fbd-10d6-406d-93af-31f5d682db99", "installmentPaymentId": "0453a075-211f-4d0a-8947-e05cd6bd33fc", "paid": false, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-05T16:34:30.385545+01:00", "uuid": "f061fa00-8494-4eca-b9d1-f54d36125d7d" } ], "transactions": [ "f061fa00-8494-4eca-b9d1-f54d36125d7d" ], "type": "INSTALLMENT" }, { "amount": 500, "attemptCount": 0, "creationDate": "2024-01-05T16:34:29.520525+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "9d1fdd64-a45c-4f30-afb2-36734fdfbf39", "installmentPaymentId": "0453a075-211f-4d0a-8947-e05cd6bd33fc", "paid": false, "sddTransactions": [], "transactions": [], "type": "INSTALLMENT" } ], "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "merchantInstallmentPaymentId": "MIP_001", "pointOfSale": { "name": "Corben Dallas", "uuid": "7d99a970-cc26-4de8-aa5d-d9ebf4088247" }, "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "startingDate": "2024-01-05", "status": "CANCELED" }, "requestId": "60a91f69-2549-4652-96ee-25fb58f48f56" } INSTALLMENTPAYMENT_UPDATEDWhen an installment is updated { "installmentPaymentId": "2351a31a-3c84-4681-8a83-cd5f260d78ab", "creationDate": "2021-09-09T09:49:00.941254+02:00", "pointOfSaleId": "cfc0b3c7-e666-4c52-b77a-96f234b873fe", "contractId": "71602dd0-2790-4743-877b-e72530d7576d", "customerId": "3036e768-071e-4119-abd8-57d50581c371", "cardId": "06a45250-8e22-41aa-a97a-284c225419a5", "paymentRequestBreakdownId": "6e5ba89d-d275-4174-8cfd-9418dc6bd303", "paymentRequestId": "c796df20-258e-4645-90d8-aad70349c547", "mandateId": "f65ea8ce-5171-4c1e-8b8f-69654e0acf4e", "depositStartingDate": null, "startingDate": "2021-09-09", "requestedCollectionDate": null, "merchantInstallmentPaymentId": null, "endUserIp": "92.154.127.221", "endUserLanguage": null, "amount": 300, "depositAmount": 0, "feeAmount": 0, "currency": "EUR", "description": null, "intervalUnit": "WEEK", "intervalCount": 1, "iterationCount": 3, "status": "ACTIVE", "endToEndIdentification": null, "remittanceInformation": "BCDEB2DEEB6E", "installments": [ { "installmentId": "ee6f170c-710a-4a9d-a79f-c163de336530", "creationDate": "2021-09-09T09:49:00.940625+02:00", "installmentPaymentId": "2351a31a-3c84-4681-8a83-cd5f260d78ab", "customerId": "3036e768-071e-4119-abd8-57d50581c371", "mandateId": "f65ea8ce-5171-4c1e-8b8f-69654e0acf4e", "amount": 100, "currency": "EUR", "attemptCount": 1, "paid": true, "type": "INSTALLMENT", "nextTransactionAttempt": null, "transactions": [], "sddTransactions": [ "116adfc1-7996-4bd7-9678-d4a2b1a77762" ] }, { "installmentId": "26d5e572-4740-4c30-bbb8-5d2251e13e1d", "creationDate": "2021-09-09T09:49:00.941206+02:00", "installmentPaymentId": "2351a31a-3c84-4681-8a83-cd5f260d78ab", "customerId": "3036e768-071e-4119-abd8-57d50581c371", "mandateId": "f65ea8ce-5171-4c1e-8b8f-69654e0acf4e", "amount": 100, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-09-16T08:00+02:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "afe58afd-712d-415f-adf5-70e980c73b57", "creationDate": "2021-09-09T09:49:00.941224+02:00", "installmentPaymentId": "2351a31a-3c84-4681-8a83-cd5f260d78ab", "customerId": "3036e768-071e-4119-abd8-57d50581c371", "mandateId": "f65ea8ce-5171-4c1e-8b8f-69654e0acf4e", "amount": 100, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-09-23T08:00+02:00", "transactions": [], "sddTransactions": [] } ], "additionalData": [] } INSTALLMENTPAYMENT_CANCELEDWhen an installment is cancelled { "eventId": "47253f14-814e-4cf8-9582-be869145a80f", "type": "INSTALLMENTPAYMENT_CANCELED", "creationDate": "2024-01-05T16:34:31.276257+01:00", "object": { "additionalData": { "Key1": "val1" }, "amount": 1000, "card": { "commercialBrand": "MASTERCARD", "first6": "532509", "last4": "0008", "uuid": "4680d102-96b0-4fba-b00c-3375ee610fc7" }, "cardId": "4680d102-96b0-4fba-b00c-3375ee610fc7", "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T16:34:29.520817+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "depositAmount": 0, "endUserIp": "245.100.1.15", "feeAmount": 0, "installmentPaymentId": "0453a075-211f-4d0a-8947-e05cd6bd33fc", "installments": [ { "amount": 500, "attemptCount": 1, "creationDate": "2024-01-05T16:34:29.520151+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "6fe13fbd-10d6-406d-93af-31f5d682db99", "installmentPaymentId": "0453a075-211f-4d0a-8947-e05cd6bd33fc", "paid": false, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-05T16:34:30.385545+01:00", "uuid": "f061fa00-8494-4eca-b9d1-f54d36125d7d" } ], "transactions": [ "f061fa00-8494-4eca-b9d1-f54d36125d7d" ], "type": "INSTALLMENT" }, { "amount": 500, "attemptCount": 0, "creationDate": "2024-01-05T16:34:29.520525+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "9d1fdd64-a45c-4f30-afb2-36734fdfbf39", "installmentPaymentId": "0453a075-211f-4d0a-8947-e05cd6bd33fc", "paid": false, "sddTransactions": [], "transactions": [], "type": "INSTALLMENT" } ], "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "merchantInstallmentPaymentId": "MIP_001", "pointOfSale": { "name": "Corben Dallas", "uuid": "7d99a970-cc26-4de8-aa5d-d9ebf4088247" }, "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "startingDate": "2024-01-05", "status": "CANCELED" }, "requestId": "1bac71b6-6d40-4618-b772-95c926cbeab2" } INSTALLMENTPAYMENT_ACTIVATEDWhen an installment is activated INSTALLMENTPAYMENT_FAILUREWhen an installment failed to be paid INSTALLMENTPAYMENT_PAIDWhen an installment is paid { "eventId": "17198557-e18a-4e75-a88f-d23ea841a641", "type": "INSTALLMENTPAYMENT_PAID", "creationDate": "2024-01-30T12:19:22.324713+01:00", "object": { "additionalData": {}, "amount": 100000, "card": { "commercialBrand": "VISA", "first6": "403203", "last4": "2700", "uuid": "7af37b48-4c0a-4e5d-81ec-0ecd6758ee82" }, "cardId": "7af37b48-4c0a-4e5d-81ec-0ecd6758ee82", "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-15T12:40:35.818249+01:00", "currency": "EUR", "customerId": "1d281559-80b2-45c0-9930-6fb94651d6b7", "depositAmount": 0, "endUserIp": "91.229.230.41", "endUserLanguage": "eng", "feeAmount": 0, "installmentPaymentId": "78e28b54-708c-45a7-a6ef-d3c1672ffe49", "installments": [ { "amount": 50000, "attemptCount": 1, "creationDate": "2024-01-15T12:40:35.818185+01:00", "currency": "EUR", "customerId": "1d281559-80b2-45c0-9930-6fb94651d6b7", "installmentId": "c3c2eb3c-9935-4eb1-a9bd-42f62f1c035c", "installmentPaymentId": "78e28b54-708c-45a7-a6ef-d3c1672ffe49", "paid": true, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-15T12:40:36.418127+01:00", "uuid": "7f642ab2-5c15-4420-b85a-a97cb819844d" } ], "transactions": [ "7f642ab2-5c15-4420-b85a-a97cb819844d" ], "type": "INSTALLMENT" }, { "amount": 50000, "attemptCount": 1, "creationDate": "2024-01-15T12:40:35.818207+01:00", "currency": "EUR", "customerId": "1d281559-80b2-45c0-9930-6fb94651d6b7", "installmentId": "6eaf48a5-d0df-40d2-bd62-a297444d37d2", "installmentPaymentId": "78e28b54-708c-45a7-a6ef-d3c1672ffe49", "paid": true, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-30T12:19:20.941639+01:00", "uuid": "ea71af48-6048-46e0-8703-7cb3e0a24b65" } ], "transactions": [ "ea71af48-6048-46e0-8703-7cb3e0a24b65" ], "type": "INSTALLMENT" } ], "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "paymentRequestBreakdownId": "b665743f-6671-4749-9727-f801c0d9915a", "paymentRequestId": "3192c6e1-89e6-4d5a-9d96-3208b37f5c3f", "pointOfSale": { "name": "Corben Dallas", "uuid": "7d99a970-cc26-4de8-aa5d-d9ebf4088247" }, "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "startingDate": "2023-12-15", "status": "PAID" }, "requestId": "7ef61f64-e4e9-4021-8d29-c4b449b762f8" } INSTALLMENTPAYMENT_UNPAIDWhen an installment is unpaid { "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "creationDate": "2021-09-03T10:38:16.811541+02:00", "pointOfSaleId": "cfc0b3c7-e666-4c52-b77a-96f234b873fe", "contractId": "71602dd0-2790-4743-877b-e72530d7576d", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "cardId": "d3143e10-9660-48bb-b6a6-b2e1100ecf6f", "paymentRequestBreakdownId": null, "paymentRequestId": null, "mandateId": null, "depositStartingDate": "2021-09-03", "startingDate": "2021-09-17", "requestedCollectionDate": null, "merchantInstallmentPaymentId": "testInstall", "endUserIp": "91.229.230.41", "endUserLanguage": "fre", "amount": 550000, "depositAmount": 50000, "feeAmount": 0, "currency": "EUR", "description": null, "intervalUnit": "WEEK", "intervalCount": 2, "iterationCount": 10, "status": "UNPAID", "endToEndIdentification": null, "remittanceInformation": null, "installments": [ { "installmentId": "1a123952-cc30-47c2-8f2e-1b6182fd25a6", "creationDate": "2021-09-03T10:38:16.809510+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 1, "paid": false, "type": "DEPOSIT", "nextTransactionAttempt": "2021-09-03T08:00+02:00", "transactions": [ "91c604d8-a63c-483c-87aa-f03181a634b5" ], "sddTransactions": [] }, { "installmentId": "28754849-1b22-491b-bc15-7f38d0c9a988", "creationDate": "2021-09-03T10:38:16.810529+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-09-17T08:00+02:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "666f0320-7766-464e-949b-e7ce9997a173", "creationDate": "2021-09-03T10:38:16.810564+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-10-01T08:00+02:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "1b88ddcc-5c9e-4b43-a3cc-6792d9162ea4", "creationDate": "2021-09-03T10:38:16.810582+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-10-15T08:00+02:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "1f25ec3c-d846-4f9c-80e9-c5b86adef8eb", "creationDate": "2021-09-03T10:38:16.810595+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-10-29T08:00+02:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "9d206cee-565d-4181-9987-d65f82a0ffaa", "creationDate": "2021-09-03T10:38:16.810609+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-11-12T07:00+01:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "4fecfcf0-7b4a-4241-a716-a56bc840bd20", "creationDate": "2021-09-03T10:38:16.810621+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-11-26T07:00+01:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "703d1c4f-f1a6-4e30-9a8c-83cd9916f42e", "creationDate": "2021-09-03T10:38:16.810634+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-12-10T07:00+01:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "4c98d99f-f321-43bf-a37e-801a85d03200", "creationDate": "2021-09-03T10:38:16.810646+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-12-24T07:00+01:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "893c6120-7f51-4616-9f18-7880c76747fb", "creationDate": "2021-09-03T10:38:16.810658+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2022-01-07T07:00+01:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "8bf4e146-8737-4260-84f5-1a95653d1e24", "creationDate": "2021-09-03T10:38:16.810671+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2022-01-21T07:00+01:00", "transactions": [], "sddTransactions": [] } ], "additionalData": [] } INSTALLMENT_TRANSACTION_SUCCEEDEDWhen a transaction of an installment is make { "eventId": "a4bb53ba-c913-4077-bf75-5b3d91c0f026", "type": "INSTALLMENT_TRANSACTION_SUCCEEDED", "creationDate": "2024-01-05T16:47:16.914769+01:00", "object": { "amount": 500, "attemptCount": 1, "creationDate": "2024-01-05T16:47:14.425041+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "d70bceea-1b4b-454f-ae04-3cfa5e877e01", "installmentPaymentId": "1da9892e-d71c-40a9-8637-c259d3076582", "paid": true, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-05T16:47:15.250593+01:00", "uuid": "8b1b6eb7-c492-4a3f-913e-46c84836b50d" } ], "transactions": [ "8b1b6eb7-c492-4a3f-913e-46c84836b50d" ], "type": "INSTALLMENT" }, "requestId": "05809a07-9e49-44be-91c2-4ca357f2a7cc" } INSTALLMENT_TRANSACTION_FAILEDWhen a transaction of an installment is failed { "eventId": "2518ae0a-7e88-4458-86cb-3ef2a71f07bf", "type": "INSTALLMENT_TRANSACTION_FAILED", "creationDate": "2024-01-05T16:34:31.034977+01:00", "object": { "amount": 500, "attemptCount": 1, "creationDate": "2024-01-05T16:34:29.520151+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "6fe13fbd-10d6-406d-93af-31f5d682db99", "installmentPaymentId": "0453a075-211f-4d0a-8947-e05cd6bd33fc", "nextTransactionAttempt": "2024-01-08T04:00+01:00", "paid": false, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-05T16:34:30.385545+01:00", "uuid": "f061fa00-8494-4eca-b9d1-f54d36125d7d" } ], "transactions": [ "f061fa00-8494-4eca-b9d1-f54d36125d7d" ], "type": "INSTALLMENT" }, "requestId": "89cb89a8-618a-46f6-8971-c8f84a57f61e" } The ONBOARDING object ONBOARDING_ENROLLMENT_CREATEDWhen the onboarding request has been accept. You will receive an enrollementId associated to you custom reference. { "eventId": "8eb9f549-325d-4451-8e98-d90f1bf5635a", "type": "ONBOARDING_ENROLLMENT_CREATED", "creationDate": "2024-01-10T09:14:51.488392+01:00", "object": { "workflow": { "uuid": "b1161973-7ec2-4dd0-a23e-abb788b68844", "status": "ON_GOING", "activities": [ { "step_elements": [], "uuid": "e08b0baf-c947-4b82-bd69-f98a2a67c511", "name": "ContractValiA", "state": "TODO", "category": "validation", "created_at": "2024-01-10T09:14:51" } ], "additional_documents": [] }, "identity_badge": null, "representatives_list": null, "inactive_representatives_list": [], "infogreffe_identity": null, "language": "fr", "risk_score": { "activity": 2, "activity_age": null, "turnover": 1, "bank_account": 0, "total": null }, "additional_document_need_upload": false, "uuid": "c2e03650-2427-4c25-aa31-016c63f7261b", "risk_points": null, "created_at": "2024-01-10T09:14:51", "last_updated_at": null, "turnover_is_fixed": false, "workflow_mode": "SEQUENTIAL", "risk_level": "LOW", "type": "INDIVIDUAL", "is_canceled": false, "enrollment_account": null, "profile": { "birthname": { "status": "ON_GOING", "uuid": "a60a7930-38ce-4585-bc15-bad4e4d8c9fa", "value": null, "element-type": "birthname" }, "uuid": "805a41ad-bd70-4841-a0d4-91f9082860dd", "workflow": { "uuid": "24d6e160-5f16-4e60-81a2-f5b6942ce629", "status": "ON_GOING", "activities": [ { "step_elements": [ { "status": "COMPLETED", "uuid": "76fa0a86-7b3e-44e5-aa8a-f6ccd06d3df9", "value": "Carmelo", "element-type": "firstname" }, { "status": "COMPLETED", "uuid": "f01070cd-01c8-4e22-929a-7988c2c0dac0", "value": "Littel", "element-type": "lastname" }, { "status": "COMPLETED", "uuid": "41449fa2-079e-4f1e-81b2-a4fed78c1d5b", "value": "verna11@yahoo.com", "element-type": "email" }, { "status": "COMPLETED", "uuid": "8899cbdc-f074-4730-9f9e-44a144517a39", "value": "+3300000000", "element-type": "phone" }, { "status": "COMPLETED", "uuid": "9ce4c8fb-3c39-4e42-bc81-45a78760d8ff", "value": "1993-01-01T00:00:00", "element-type": "birthday" }, { "status": "COMPLETED", "uuid": "37ec9115-e88f-4bd7-a36e-77c4204f5058", "value": "Tours", "element-type": "place-of-birth" }, { "status": "COMPLETED", "uuid": "898c972f-be5f-4209-b9a6-4b06ed8e17f9", "country": "FRA", "element-type": "country-of-birth" } ], "uuid": "adf915df-d11f-4862-b76d-1c1e4e06994d", "name": "identityInfos", "state": "TODO", "category": "identity", "created_at": "2024-01-10T09:14:51" } ], "additional_documents": [] }, "firstname": { "status": "COMPLETED", "uuid": "76fa0a86-7b3e-44e5-aa8a-f6ccd06d3df9", "value": "Carmelo", "element-type": "firstname" }, "lastname": { "status": "COMPLETED", "uuid": "f01070cd-01c8-4e22-929a-7988c2c0dac0", "value": "Littel", "element-type": "lastname" }, "usename": { "status": "ON_GOING", "uuid": "a60a7930-38ce-4585-bc15-bad4e4d8c9fa", "value": null, "element-type": "birthname" }, "email": { "status": "COMPLETED", "uuid": "41449fa2-079e-4f1e-81b2-a4fed78c1d5b", "value": "verna11@yahoo.com", "element-type": "email" }, "language": { "status": "ON_GOING", "uuid": "78daf0f6-4659-461f-a817-72c4b233cd70", "locale": { "identifier": "fr" }, "element-type": "language" }, "phone": { "status": "COMPLETED", "uuid": "8899cbdc-f074-4730-9f9e-44a144517a39", "value": "+3300000000", "element-type": "phone" }, "birthday": { "status": "COMPLETED", "uuid": "9ce4c8fb-3c39-4e42-bc81-45a78760d8ff", "value": "1993-01-01T00:00:00", "element-type": "birthday" }, "login": null, "bo_user_uuid": null }, "activity_sector": { "name": "Artisans (plumber, electricians, ...)" }, "data": { "type": "PARTICULAR", "company_name": null, "history": [], "turnover": { "name": "Less than 20k EUR" }, "activity_age": null }, "custom_reference": null, "is_converted": false, "conformity_status": "ON_GOING", "conformity_status_level_two": null, "comments_level_two": null, "validator_level_one": null, "validator_level_two": null, "merchant_uuid": null, "validation_date": null, "validation_date_level_two": null, "sub_type": null, "api_infogreffe_attempt": 0, "next_step": 0, "full_kyc": false }, "requestId": "b59cf6d0-4180-4a0e-b26d-8d2e34759c46" } ONBOARDING_ENROLLMENT_STATUS_UPDATEDAn ongoing onboarding has been updated. { "eventId": "e4e42e20-1819-49d3-af96-9a7ecb978a5d", "type": "ONBOARDING_ENROLLMENT_STATUS_UPDATED", "creationDate": "2024-01-10T09:16:02.927117+01:00", "object": { "workflow": { "uuid": "b1161973-7ec2-4dd0-a23e-abb788b68844", "status": "ON_GOING", "activities": [ { "step_elements": [], "uuid": "e08b0baf-c947-4b82-bd69-f98a2a67c511", "name": "ContractValiA", "state": "TODO", "category": "validation", "created_at": "2024-01-10T09:14:51" } ], "additional_documents": [] }, "identity_badge": null, "representatives_list": null, "inactive_representatives_list": [], "infogreffe_identity": null, "language": "fr", "risk_score": { "activity": 2, "activity_age": null, "turnover": 1, "bank_account": 0, "total": null }, "additional_document_need_upload": false, "uuid": "c2e03650-2427-4c25-aa31-016c63f7261b", "risk_points": null, "created_at": "2024-01-10T09:14:51", "last_updated_at": "2024-01-10T09:16:02", "turnover_is_fixed": false, "workflow_mode": "SEQUENTIAL", "risk_level": "LOW", "type": "INDIVIDUAL", "is_canceled": false, "enrollment_account": null, "profile": { "birthname": { "status": "ON_GOING", "uuid": "a60a7930-38ce-4585-bc15-bad4e4d8c9fa", "value": null, "element-type": "birthname" }, "uuid": "805a41ad-bd70-4841-a0d4-91f9082860dd", "workflow": { "uuid": "24d6e160-5f16-4e60-81a2-f5b6942ce629", "status": "ACCEPTED", "activities": [ { "step_elements": [ { "status": "COMPLETED", "uuid": "76fa0a86-7b3e-44e5-aa8a-f6ccd06d3df9", "value": "Carmelo", "element-type": "firstname" }, { "status": "COMPLETED", "uuid": "898c972f-be5f-4209-b9a6-4b06ed8e17f9", "country": "FRA", "element-type": "country-of-birth" }, { "status": "COMPLETED", "uuid": "9ce4c8fb-3c39-4e42-bc81-45a78760d8ff", "value": "1993-01-01T00:00:00", "element-type": "birthday" }, { "status": "COMPLETED", "uuid": "8899cbdc-f074-4730-9f9e-44a144517a39", "value": "+3300000000", "element-type": "phone" }, { "status": "COMPLETED", "uuid": "f01070cd-01c8-4e22-929a-7988c2c0dac0", "value": "Littel", "element-type": "lastname" }, { "status": "COMPLETED", "uuid": "37ec9115-e88f-4bd7-a36e-77c4204f5058", "value": "Tours", "element-type": "place-of-birth" }, { "status": "COMPLETED", "uuid": "41449fa2-079e-4f1e-81b2-a4fed78c1d5b", "value": "verna11@yahoo.com", "element-type": "email" }, { "status": "COMPLETED", "uuid": "76fa0a86-7b3e-44e5-aa8a-f6ccd06d3df9", "value": "Carmelo", "element-type": "firstname" }, { "status": "COMPLETED", "uuid": "f01070cd-01c8-4e22-929a-7988c2c0dac0", "value": "Littel", "element-type": "lastname" }, { "status": "COMPLETED", "uuid": "41449fa2-079e-4f1e-81b2-a4fed78c1d5b", "value": "verna11@yahoo.com", "element-type": "email" }, { "status": "COMPLETED", "uuid": "8899cbdc-f074-4730-9f9e-44a144517a39", "value": "+3300000000", "element-type": "phone" }, { "status": "COMPLETED", "uuid": "9ce4c8fb-3c39-4e42-bc81-45a78760d8ff", "value": "1993-01-01T00:00:00", "element-type": "birthday" }, { "status": "COMPLETED", "uuid": "37ec9115-e88f-4bd7-a36e-77c4204f5058", "value": "Tours", "element-type": "place-of-birth" }, { "status": "COMPLETED", "uuid": "898c972f-be5f-4209-b9a6-4b06ed8e17f9", "country": "FRA", "element-type": "country-of-birth" }, { "status": "COMPLETED", "uuid": "08942994-180a-469e-9139-fa2fa09375ec", "documents": [ { "file_check": null } ], "type": "PASSPORT", "proof_of_identity_document": null, "expiry_date": null, "document_number": null, "mrz_line1": null, "mrz_line2": null, "issuing_country": null, "element-type": "identity-document" }, { "status": "COMPLETED", "uuid": "01994746-c538-4387-a07d-af53b40e797d", "name_line1": "rue du bois", "name_line2": null, "name_line3": null, "name_line4": null, "locality": "Tours", "postal_code": "37000", "country": "FRA", "element-type": "address" } ], "uuid": "adf915df-d11f-4862-b76d-1c1e4e06994d", "name": "identityInfos", "state": "OK", "category": "identity", "created_at": "2024-01-10T09:14:51" }, { "step_elements": [], "uuid": null, "name": "finished", "state": "OK", "category": null, "created_at": null } ], "additional_documents": [] }, "firstname": { "status": "COMPLETED", "uuid": "76fa0a86-7b3e-44e5-aa8a-f6ccd06d3df9", "value": "Carmelo", "element-type": "firstname" }, "lastname": { "status": "COMPLETED", "uuid": "f01070cd-01c8-4e22-929a-7988c2c0dac0", "value": "Littel", "element-type": "lastname" }, "usename": { "status": "ON_GOING", "uuid": "a60a7930-38ce-4585-bc15-bad4e4d8c9fa", "value": null, "element-type": "birthname" }, "email": { "status": "COMPLETED", "uuid": "41449fa2-079e-4f1e-81b2-a4fed78c1d5b", "value": "verna11@yahoo.com", "element-type": "email" }, "language": { "status": "ON_GOING", "uuid": "78daf0f6-4659-461f-a817-72c4b233cd70", "locale": { "identifier": "fr" }, "element-type": "language" }, "phone": { "status": "COMPLETED", "uuid": "8899cbdc-f074-4730-9f9e-44a144517a39", "value": "+3300000000", "element-type": "phone" }, "birthday": { "status": "COMPLETED", "uuid": "9ce4c8fb-3c39-4e42-bc81-45a78760d8ff", "value": "1993-01-01T00:00:00", "element-type": "birthday" }, "login": null, "bo_user_uuid": null }, "activity_sector": { "name": "Hotels & holiday rentals" }, "data": { "type": "PARTICULAR", "company_name": null, "history": [], "turnover": { "name": "Less than 20k EUR" }, "activity_age": null }, "custom_reference": null, "is_converted": false, "conformity_status": "ON_GOING", "conformity_status_level_two": null, "comments_level_two": null, "validator_level_one": null, "validator_level_two": null, "merchant_uuid": null, "validation_date": null, "validation_date_level_two": null, "sub_type": null, "api_infogreffe_attempt": 0, "next_step": 0, "full_kyc": false }, "requestId": "e2324dd3-59e4-44e2-a0d7-fe7df9c4a690" } ONBOARDING_ENROLLMENT_INVALID_DOCUMENTSSome documents are regarded as invalid by the Centralpay conformity { "uuid": "bc0fac82-xxxx-xxxx-8107-80b12cae168b", "activities": [ { "uuid": "ffd29ae2-xxxx-xxxx-b6cc-a368c664f224", "name": "identityInfos", "step_elements": [ { "uuid": "ac1c8f9c-xxxx-xxxx-a10b-1e26937942fc", "field": "IdentityDocument", "comment": "Le document est expiré", "reasons": [ { "reason": "OTHER", "comment": null } ] } ] } ] } ONBOARDING_ENROLLMENT_VALID_DOCUMENTSSome documents are regarded as valid by the Centralpay conformity { "uuid": "c5ed5ac3-xxxx-xxxx-909a-e7e8fde6ab0e", "risk_level": "MEDIUM", "merchant_block_configuration_status": "NONE" } ONBOARDING_PAYMENT_ACCOUNT_CREATEDThe account has been created. { "eventId": "69d19eb6-5b4d-4658-8149-526d779328a4", "type": "ONBOARDING_PAYMENT_ACCOUNT_CREATED", "creationDate": "2024-01-10T09:17:04.318216+01:00", "object": { "merchantEnrollmentId": "c2e03650-2427-4c25-aa31-016c63f7261b", "merchantEnrollmentCustomReference": null, "merchantEnrollmentType": "BASIC", "merchantId": "cac4f315-4dbf-45da-bb3c-4c9b64fe81c1", "merchantName": "Carmelo Littel", "merchantWalletId": "9a8fc3a1-bece-4ef2-a92a-d6341f8799e0", "creationDate": "2024-01-10T09:17:03+0100", "merchantBlockConfigurationStatus": "NONE" }, "requestId": "abd91f96-78c3-4277-8eea-b2a4e323efd3" } ONBOARDING_PAYMENT_ACCOUNT_UPDATEDThe account has been update. You receive those elements ONBOARDING_ADDITIONAL_DOCUMENT_REQUESTEDAdditionnal documents or information have been request on one ongoing onboarding. { "uuid": "1ad91002-fcad-4056-a41f-82ab63687af2", "additional_documents": { "uuid": "eb0b568a-a619-4d80-b35a-846144ef1925", "created_at": "2021-03-23T17:30:35+01:00", "type": "AUDITED_FINANCIAL_REPORT", "additional_documents_history": [ { "uuid": "1a330b31-9150-45cd-9fc3-bb3bed751b7b", "created_at": "2021-03-23T17:30:35+01:00", "status": "NOT_UPLOADED", "comment": "en couleur de moins de 3 mois", "additional_document_history_status": [ { "changed_at": "2021-03-23T17:30:35+01:00", "value": "NOT_UPLOADED" } ] } ] } } ONBOARDING_ADDITIONAL_DOCUMENT_UPDATEDAdditionnal documents or information have been provided by the account holder in one ongoing onboarding. ONBOARDING_ENROLLMENT_WORKFLOW_RESETThe workflow has returned to it’s initial state { "eventId": "4fa7e538-9e45-4ba2-8c22-25bdb931ff19", "type": "ONBOARDING_ENROLLMENT_WORKFLOW_RESET", "creationDate": "2024-01-25T12:24:32.450115+01:00", "object": { "workflow": { "uuid": "cc91fb6c-55c0-48b3-82de-549d1061edf9", "status": "ON_GOING", "activities": [ { "step_elements": [], "uuid": "49ff33c2-d4e8-4eec-ad1c-43ebe822706b", "name": "ContractValiA", "state": "TODO", "category": "validation", "created_at": "2024-01-25T12:24:32" }, { "step_elements": [], "uuid": "49ff33c2-d4e8-4eec-ad1c-43ebe822706b", "name": "ContractValiA", "state": "TODO", "category": "validation", "created_at": "2024-01-25T12:24:32" } ], "additional_documents": [] }, "identity_badge": null, "representatives_list": null, "inactive_representatives_list": [], "infogreffe_identity": null, "language": "fr", "risk_score": { "activity": 2, "activity_age": null, "turnover": 1, "bank_account": 0, "total": null }, "additional_document_need_upload": false, "uuid": "b7fa53f5-1cc7-4524-8a41-364b6e85f6b4", "risk_points": null, "created_at": "2024-01-25T12:21:11", "last_updated_at": null, "turnover_is_fixed": false, "workflow_mode": "SEQUENTIAL", "risk_level": "LOW", "type": "INDIVIDUAL", "is_canceled": false, "enrollment_account": null, "profile": { "birthname": { "status": "ON_GOING", "uuid": "a404d8cf-d4f5-412a-b0a2-fc8843fbe7ed", "value": null, "element-type": "birthname" }, "uuid": "c8e69bcf-cd2a-4dd5-85a6-252ba8ef2fa2", "workflow": { "uuid": "512c94e7-f470-446f-b030-65729b681d41", "status": "ON_GOING", "activities": [ { "step_elements": [ { "status": "COMPLETED", "uuid": "e3832733-a07c-4f29-999a-945854cae097", "value": "Alejandra", "element-type": "firstname" }, { "status": "COMPLETED", "uuid": "6f2bf419-ada4-4967-b6ff-4c02dee109f4", "value": "Walter", "element-type": "lastname" }, { "status": "COMPLETED", "uuid": "a691c5d5-a62a-4cd9-97b1-b68c1e612d0f", "value": "+3300000000", "element-type": "phone" }, { "status": "COMPLETED", "uuid": "e077ba27-5cfe-4a5b-ada9-cbf043d50cb5", "value": "Tours", "element-type": "place-of-birth" }, { "status": "COMPLETED", "uuid": "faec075e-d17c-4c7d-ad2d-8e9ee573f840", "value": "1993-01-01T00:00:00", "element-type": "birthday" }, { "status": "COMPLETED", "uuid": "d052f4da-c670-4075-8d29-d55fdae732a5", "country": "FRA", "element-type": "country-of-birth" }, { "status": "COMPLETED", "uuid": "96693dd5-4463-402a-aea7-e034b414825a", "value": "tessie_ebert@gmail.com", "element-type": "email" } ], "uuid": "b77d7bf7-ab6f-4cb0-ad18-22ac66a50a3b", "name": "identityInfos", "state": "TODO", "category": "identity", "created_at": "2024-01-25T12:21:11" } ], "additional_documents": [] }, "firstname": { "status": "COMPLETED", "uuid": "e3832733-a07c-4f29-999a-945854cae097", "value": "Alejandra", "element-type": "firstname" }, "lastname": { "status": "COMPLETED", "uuid": "6f2bf419-ada4-4967-b6ff-4c02dee109f4", "value": "Walter", "element-type": "lastname" }, "usename": { "status": "ON_GOING", "uuid": "a404d8cf-d4f5-412a-b0a2-fc8843fbe7ed", "value": null, "element-type": "birthname" }, "email": { "status": "COMPLETED", "uuid": "96693dd5-4463-402a-aea7-e034b414825a", "value": "tessie_ebert@gmail.com", "element-type": "email" }, "language": { "status": "ON_GOING", "uuid": "232259eb-02cf-48af-9693-d678fecd9dc1", "locale": { "identifier": "fr" }, "element-type": "language" }, "phone": { "status": "COMPLETED", "uuid": "a691c5d5-a62a-4cd9-97b1-b68c1e612d0f", "value": "+3300000000", "element-type": "phone" }, "birthday": { "status": "COMPLETED", "uuid": "faec075e-d17c-4c7d-ad2d-8e9ee573f840", "value": "1993-01-01T00:00:00", "element-type": "birthday" }, "login": null, "bo_user_uuid": null }, "activity_sector": { "name": "Artisans (plumber, electricians, ...)" }, "data": { "type": "PARTICULAR", "company_name": null, "history": [], "turnover": { "name": "Less than 20k EUR" }, "activity_age": null }, "custom_reference": null, "is_converted": false, "conformity_status": "ON_GOING", "conformity_status_level_two": null, "comments_level_two": null, "validator_level_one": null, "validator_level_two": null, "merchant_uuid": null, "validation_date": null, "validation_date_level_two": null, "sub_type": null, "api_infogreffe_attempt": 0, "next_step": 0, "full_kyc": false, "auto_updated_data": false }, "requestId": "3ca496d0-bd87-4457-8460-fc1e502d4962" } ONBOARDING_PEP_SANCTION_SEARCH_RESULTThe PEP Sanction search has return result, you receive those elements { "eventId": "a427366c-eb0b-4d68-9d81-22f406162024", "type": "ONBOARDING_PEP_SANCTION_SEARCH_RESULT", "creationDate": "2024-01-10T09:16:09.771127+01:00", "object": { "enrollment_uuid": "c2e03650-2427-4c25-aa31-016c63f7261b", "enrollment_url": "https://test-backoffice.centralpay.net/admin/onboarding/c2e03650-2427-4c25-aa31-016c63f7261b/show", "profile": { "pep_validation": { "created_at": "2024-01-10 09:16:04", "status": "ACCEPTED", "reference": "1704874567-MMSug5fh", "client_ref": "225cab33-3c8d-4bc7-b6d8-7f7d7448b49d", "review_url": "https://api.complyadvantage.com1704874567-MMSug5fh" }, "sanction_validation": { "created_at": "2024-01-10 09:16:04", "status": "ACCEPTED", "reference": "1704874567-MMSug5fh", "client_ref": "225cab33-3c8d-4bc7-b6d8-7f7d7448b49d", "review_url": "https://api.complyadvantage.com1704874567-MMSug5fh" } } }, "requestId": "d995a82d-ff33-4c20-af58-2546f3ef4c09" } ENROLLMENT_CREATEDWhen an enrollement is created The PAYMENT REQUEST object PAYMENTREQUEST_CREATEDHappen when a payment request is created { "eventId": "75b8f668-c5ce-40c8-ba51-2423004b04d2", "type": "PAYMENTREQUEST_CREATED", "creationDate": "2024-01-08T11:47:27.515437+01:00", "object": { "additionalData": {}, "attachments": [], "breakdowns": [ { "amount": 29000, "email": "gduhamel@centralpay.eu", "endpoint": "https://test-form.centralpay.net/446ae220-96f7-40ec-bd9b-9c8b83e0919b", "entered": false, "firstName": "Corben", "initiator": true, "lastName": "DALLAS", "paid": false, "paymentAttempted": false, "paymentRequestBreakdownId": "548c4ce7-d14f-486d-b9ac-b3caa3a9f5b6", "payments": [], "status": "UNPAID", "view": 0 } ], "createCustomer": false, "creationDate": "2024-01-08T11:47:27.494330+01:00", "currency": "EUR", "installments": [], "language": "fre", "linkExpirationDate": "2025-01-07T11:47:27.393093+01:00", "merchantPaymentRequestId": "Facture 12334", "notificationEmails": [], "paymentMethods": [ "TRANSACTION", "SCT_TRANSACTION" ], "paymentRequestId": "1c3d2a38-5f0e-41d4-a177-cf87fb5da617", "paymentRequestStatus": "ACTIVE", "paymentStatus": "UNPAID", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "scenarios": [], "subscriptions": [], "totalAmount": 29000, "transaction": { "capture": true, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "customAcceptanceData": {}, "paymentRequestTransactionId": "94977411-0b77-4792-b4cb-efd133911f66", "source": "EC" }, "transfers": [], "wireTransfer": { "paymentRequestWireTransferId": "329c9d8f-53de-4797-b6fc-d75ce3bf2466" } }, "requestId": "7dc393fc-f32a-4c4e-945e-f4f231610a47" } PAYMENTREQUEST_CANCELEDHappen when a payment request is cancelled { "eventId": "092b72f8-67a3-489c-af21-684eef115c65", "type": "PAYMENTREQUEST_CANCELED", "creationDate": "2024-01-08T11:50:28.640892+01:00", "object": { "additionalData": {}, "attachments": [], "breakdowns": [ { "amount": 29000, "email": "gduhamel@centralpay.eu", "endpoint": "https://test-form.centralpay.net/446ae220-96f7-40ec-bd9b-9c8b83e0919b", "entered": true, "firstName": "Corben", "initiator": true, "lastName": "DALLAS", "paid": false, "paymentAttempted": false, "paymentRequestBreakdownId": "548c4ce7-d14f-486d-b9ac-b3caa3a9f5b6", "payments": [], "status": "UNPAID", "view": 0 } ], "createCustomer": false, "creationDate": "2024-01-08T11:47:27.494330+01:00", "currency": "EUR", "endingDate": "2024-01-08T11:50:28.619151+01:00", "installments": [], "language": "fre", "linkExpirationDate": "2025-01-07T11:47:27.393093+01:00", "merchantPaymentRequestId": "Facture 12334", "notificationEmails": [], "paymentMethods": [ "SCT_TRANSACTION", "TRANSACTION" ], "paymentRequestId": "1c3d2a38-5f0e-41d4-a177-cf87fb5da617", "paymentRequestStatus": "CANCELED", "paymentStatus": "UNPAID", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "scenarios": [], "subscriptions": [], "totalAmount": 29000, "transaction": { "capture": true, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "customAcceptanceData": {}, "paymentRequestTransactionId": "94977411-0b77-4792-b4cb-efd133911f66", "source": "EC" }, "transfers": [], "wireTransfer": { "paymentRequestWireTransferId": "329c9d8f-53de-4797-b6fc-d75ce3bf2466" } }, "requestId": "ff7f8976-a2fe-4a90-8bf1-55eb6a1abf5f" } PAYMENTREQUEST_CLOSEDHappen when a payment request is closed { "eventId": "f06c4263-7708-476e-89c8-c6c52213d034", "type": "PAYMENTREQUEST_CLOSED", "creationDate": "2024-01-08T11:51:37.271485+01:00", "object": { "additionalData": {}, "attachments": [], "breakdowns": [ { "amount": 29000, "email": "gduhamel@centralpay.eu", "endpoint": "https://test-form.centralpay.net/7c9b8626-c7b1-46dc-9efa-7f7c994839e6", "entered": true, "firstName": "Corben", "initiator": true, "lastName": "DALLAS", "paid": false, "paymentAttempted": false, "paymentRequestBreakdownId": "82ad8194-10e6-4639-8011-8cacd285f465", "payments": [], "status": "UNPAID", "view": 0 } ], "createCustomer": false, "creationDate": "2024-01-08T11:51:25.123940+01:00", "currency": "EUR", "endingDate": "2024-01-08T11:51:37.249097+01:00", "installments": [], "language": "fre", "linkExpirationDate": "2025-01-07T11:51:25.039807+01:00", "merchantPaymentRequestId": "Facture 12334", "notificationEmails": [], "paymentMethods": [ "SCT_TRANSACTION", "TRANSACTION" ], "paymentRequestId": "af2d283a-eec1-4d55-9fa9-82ae6a3a1212", "paymentRequestStatus": "CLOSED", "paymentStatus": "UNPAID", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "scenarios": [], "subscriptions": [], "totalAmount": 29000, "transaction": { "capture": true, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "customAcceptanceData": {}, "paymentRequestTransactionId": "49d7fa4f-88d8-43bf-8ed1-2ac68a093953", "source": "EC" }, "transfers": [], "wireTransfer": { "paymentRequestWireTransferId": "a26099e7-af23-4b71-baa0-24608bb10f0e" } }, "requestId": "19ae9e22-5c4b-4c2b-a94c-a2fd41c3dcd2" } PAYMENTREQUEST_PAIDHappen when a payment request is paid { "eventId": "04feded6-e56b-4980-903f-3f15d89405aa", "type": "PAYMENTREQUEST_PAID", "creationDate": "2024-01-15T12:36:33.155085+01:00", "object": { "additionalData": {}, "attachments": [], "breakdowns": [ { "amount": 100000, "email": "gduhamel@centralpay.eu", "endpoint": "https://test-form.centralpay.net/6afa376b-976a-4b79-8320-5baf16681b79", "entered": true, "initiator": true, "paid": false, "paymentAttempted": false, "paymentRequestBreakdownId": "75b6d330-948e-4aef-8967-d88d2acc7190", "payments": [ { "creationDate": "2024-01-15T12:36:11.311665+01:00", "paymentMethod": "TRANSACTION", "uuid": "73d16504-a1d7-488a-8e0a-b350972f754d" }, { "creationDate": "2024-01-15T12:36:31.689550+01:00", "paymentMethod": "TRANSACTION", "uuid": "f80eee11-a633-46c2-bf08-f31d33d3107a" } ], "status": "PAID", "view": 0 } ], "createCustomer": false, "creationDate": "2024-01-15T12:34:44.362675+01:00", "currency": "EUR", "endingDate": "2024-01-15T12:36:33.036207+01:00", "installment": { "depositAmount": 0, "feeAmount": 0, "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "paymentRequestInstallmentId": "979caed1-430b-4984-8697-7f85eecaf482", "source": "CARD", "startingDate": "2024-01-15" }, "installments": [ { "depositAmount": 0, "feeAmount": 0, "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "paymentRequestInstallmentId": "979caed1-430b-4984-8697-7f85eecaf482", "source": "CARD", "startingDate": "2024-01-15" } ], "language": "eng", "linkExpirationDate": "2025-01-14T12:34:44.285879+01:00", "notificationEmails": [], "paymentMethods": [ "INSTALLMENT", "TRANSACTION" ], "paymentRequestId": "2bfc4ab4-f878-46b8-8a12-3263d2d28842", "paymentRequestStatus": "CLOSED", "paymentStatus": "PAID", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "scenarios": [], "subscriptions": [], "totalAmount": 100000, "transaction": { "capture": true, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "customAcceptanceData": {}, "paymentRequestTransactionId": "75b7c505-c546-475a-88ee-c169073d05b1", "source": "EC" }, "transfers": [] }, "requestId": "6847ced8-92ab-45df-9f1d-1069112b98e1" } PAYMENTREQUEST_INSTALLMENT_FAILEDHappen when the installment of the payment request failed { "eventId": "36650db2-3f36-479f-9518-16699a289467", "type": "PAYMENTREQUEST_INSTALLMENT_FAILED", "creationDate": "2024-01-15T12:43:18.344841+01:00", "object": { "additionalData": {}, "amount": 100000, "card": { "commercialBrand": "VISA", "first6": "400000", "last4": "0069", "uuid": "3f3114d8-03eb-464d-9b0c-15200caa6d2d" }, "cardId": "3f3114d8-03eb-464d-9b0c-15200caa6d2d", "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-15T12:43:16.467780+01:00", "currency": "EUR", "customerId": "ddf4aa07-5fd3-4ce1-bbaa-cdaafdb821d5", "depositAmount": 0, "endUserIp": "91.229.230.41", "endUserLanguage": "eng", "feeAmount": 0, "installmentPaymentId": "e9ea4684-1277-4928-b6f0-6df6bccdb275", "installments": [ { "amount": 50000, "attemptCount": 1, "creationDate": "2024-01-15T12:43:16.467716+01:00", "currency": "EUR", "customerId": "ddf4aa07-5fd3-4ce1-bbaa-cdaafdb821d5", "installmentId": "54c40fa5-e25e-451b-9c5f-7a6d715c449c", "installmentPaymentId": "e9ea4684-1277-4928-b6f0-6df6bccdb275", "nextTransactionAttempt": "2024-01-18T04:00+01:00", "paid": false, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-15T12:43:17.074117+01:00", "uuid": "70ccb90d-3b1a-43d2-b1ee-146e65cf4906" } ], "transactions": [ "70ccb90d-3b1a-43d2-b1ee-146e65cf4906" ], "type": "INSTALLMENT" }, { "amount": 50000, "attemptCount": 0, "creationDate": "2024-01-15T12:43:16.467738+01:00", "currency": "EUR", "customerId": "ddf4aa07-5fd3-4ce1-bbaa-cdaafdb821d5", "installmentId": "1db9808f-cbd9-4498-8d35-497ff341c473", "installmentPaymentId": "e9ea4684-1277-4928-b6f0-6df6bccdb275", "nextTransactionAttempt": "2024-02-15T04:00+01:00", "paid": false, "sddTransactions": [], "transactions": [], "type": "INSTALLMENT" } ], "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "paymentRequestBreakdownId": "fbd3f414-f1dc-416a-a4cd-d7bf76d21b77", "paymentRequestId": "b4a010bb-8e3f-4261-af97-4993bede753f", "pointOfSale": { "name": "Corben Dallas", "uuid": "7d99a970-cc26-4de8-aa5d-d9ebf4088247" }, "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "startingDate": "2024-01-15", "status": "FAILURE" }, "requestId": "e217a158-fc58-4b43-8c5d-6f23f7cc7977" } PAYMENTREQUEST_INSTALLMENT_SUCCEEDEDHappen when the installment of the payment request succeeded { "eventId": "8f744f4e-4101-4df4-805f-22be1620b4e7", "type": "PAYMENTREQUEST_INSTALLMENT_SUCCEEDED", "creationDate": "2024-01-15T12:40:38.091171+01:00", "object": { "additionalData": {}, "amount": 100000, "card": { "commercialBrand": "VISA", "first6": "403203", "last4": "2700", "uuid": "7af37b48-4c0a-4e5d-81ec-0ecd6758ee82" }, "cardId": "7af37b48-4c0a-4e5d-81ec-0ecd6758ee82", "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-15T12:40:35.818249+01:00", "currency": "EUR", "customerId": "1d281559-80b2-45c0-9930-6fb94651d6b7", "depositAmount": 0, "endUserIp": "91.229.230.41", "endUserLanguage": "eng", "feeAmount": 0, "installmentPaymentId": "78e28b54-708c-45a7-a6ef-d3c1672ffe49", "installments": [ { "amount": 50000, "attemptCount": 1, "creationDate": "2024-01-15T12:40:35.818185+01:00", "currency": "EUR", "customerId": "1d281559-80b2-45c0-9930-6fb94651d6b7", "installmentId": "c3c2eb3c-9935-4eb1-a9bd-42f62f1c035c", "installmentPaymentId": "78e28b54-708c-45a7-a6ef-d3c1672ffe49", "paid": true, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-15T12:40:36.418127+01:00", "uuid": "7f642ab2-5c15-4420-b85a-a97cb819844d" } ], "transactions": [ "7f642ab2-5c15-4420-b85a-a97cb819844d" ], "type": "INSTALLMENT" }, { "amount": 50000, "attemptCount": 0, "creationDate": "2024-01-15T12:40:35.818207+01:00", "currency": "EUR", "customerId": "1d281559-80b2-45c0-9930-6fb94651d6b7", "installmentId": "6eaf48a5-d0df-40d2-bd62-a297444d37d2", "installmentPaymentId": "78e28b54-708c-45a7-a6ef-d3c1672ffe49", "nextTransactionAttempt": "2024-02-15T04:00+01:00", "paid": false, "sddTransactions": [], "transactions": [], "type": "INSTALLMENT" } ], "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "paymentRequestBreakdownId": "b665743f-6671-4749-9727-f801c0d9915a", "paymentRequestId": "3192c6e1-89e6-4d5a-9d96-3208b37f5c3f", "pointOfSale": { "name": "Corben Dallas", "uuid": "7d99a970-cc26-4de8-aa5d-d9ebf4088247" }, "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "startingDate": "2024-01-15", "status": "ACTIVE" }, "requestId": "b843a04a-cb43-4883-a584-7adc52142c55" } PAYMENTREQUEST_SUBSCRIPTION_FAILEDHappen when the subscription of the payment request failed { "subscriptionId": "26815c6a-19fe-49bd-b619-f14719f3e4ba", "creationDate": "2021-09-08T09:39:06.212604+02:00", "walletId": null, "customerId": "4e06b1e7-c24c-4927-a2da-f9c2dd3d4660", "cardId": "63afa65e-5674-49bf-9ac3-a98b82d16e92", "mandateId": null, "startingDate": "2021-09-08", "endingDate": null, "expectedEndingDate": "2022-09-07", "currentPeriodStart": "2021-09-08", "currentPeriodEnd": "2021-10-07", "requestedCollectionDate": null, "cancellationDate": null, "paymentRequestBreakdownId": null, "paymentRequestId": null, "merchantSubscriptionId": null, "subscriptionModel": { "subscriptionModelId": "01c3f578-a589-4ef7-9bb6-d855ff0fa121", "creationDate": "2021-09-08T09:39:06.137368+02:00", "pointOfSaleId": "cfc0b3c7-e666-4c52-b77a-96f234b873fe", "contractId": "71602dd0-2790-4743-877b-e72530d7576d", "merchantSubscriptionModelId": null, "amount": 10000, "currency": "EUR", "name": "Test Abo", "description": null, "intervalUnit": "MONTH", "intervalCount": 1, "iterationCount": 12, "additionalData": [] }, "quantity": 1, "status": "ACTIVE", "cancelAtPeriodEnd": null, "lastInvoice": { "invoiceId": "da0622d1-723b-4567-ad40-917a92a84e05", "creationDate": "2021-09-08T09:39:06.562016+02:00", "subscriptionId": "26815c6a-19fe-49bd-b619-f14719f3e4ba", "customerId": "4e06b1e7-c24c-4927-a2da-f9c2dd3d4660", "walletId": null, "mandateId": null, "merchantInvoiceId": null, "amount": 10000, "currency": "EUR", "closed": true, "invoiceItems": [ { "invoiceItemId": "e8b03ea3-85ca-4e85-ab3d-6b1c83122508", "creationDate": "2021-09-08T09:39:06.469080+02:00", "invoiceId": "da0622d1-723b-4567-ad40-917a92a84e05", "subscriptionId": "26815c6a-19fe-49bd-b619-f14719f3e4ba", "customerId": "4e06b1e7-c24c-4927-a2da-f9c2dd3d4660", "walletId": null, "mandateId": null, "merchantInvoiceItemId": null, "quantity": 1, "amount": 10000, "totalAmount": 10000, "currency": "EUR", "description": null, "type": "SUBSCRIPTION", "additionalData": [] } ], "description": null, "attemptCount": 1, "paid": true, "type": "SUBSCRIPTION", "nextTransactionAttempt": null, "transactions": [ "d0bcd686-1b6b-45aa-bf8a-c4cedab81127" ], "transfers": [], "sddTransactions": [], "eventReceivedDate": null, "additionalData": [] }, "endUserIp": "245.100.1.15", "endUserLanguage": null, "endToEndIdentification": null, "remittanceInformation": null, "redirect": null, "additionalData": [] } PAYMENTREQUEST_SUBSCRIPTION_SUCCEEDEDHappen when the subscription of the payment request succeeded { "subscriptionId": "da6a4622-4e5d-4da5-8d29-6c49d4052b69", "creationDate": "2021-09-09T10:32:15.675280+02:00", "walletId": null, "customerId": "2f2e6ce9-e0bb-4377-8eb9-6a8506c0baa4", "cardId": null, "mandateId": "b08bb9e0-72e4-426a-9998-585f083338fc", "startingDate": "2021-09-09", "endingDate": null, "expectedEndingDate": null, "currentPeriodStart": "2021-09-09", "currentPeriodEnd": "2021-10-08", "requestedCollectionDate": "2021-09-15", "cancellationDate": null, "paymentRequestBreakdownId": "825c03a4-fa3e-4df0-812d-f3d094f88ca3", "paymentRequestId": "ef4bf0e4-c77c-42a3-910e-b85e84b3c92b", "merchantSubscriptionId": null, "subscriptionModel": { "subscriptionModelId": "b1561842-46c1-422c-84a6-69ea8e1c8051", "creationDate": "2017-05-10T09:20:14.268+02:00", "pointOfSaleId": "cfc0b3c7-e666-4c52-b77a-96f234b873fe", "contractId": "71602dd0-2790-4743-877b-e72530d7576d", "merchantSubscriptionModelId": "a00e2d1b-87a1-4fb2-8e15-5d6132006d5b", "amount": 2000, "currency": "EUR", "name": "premium", "description": "abbonnement premium", "intervalUnit": "MONTH", "intervalCount": 1, "iterationCount": null, "additionalData": [] }, "quantity": 1, "status": "ACTIVE", "cancelAtPeriodEnd": null, "lastInvoice": { "invoiceId": "e257896b-86a1-41cf-865b-ac0531e2ea4a", "creationDate": "2021-09-09T10:32:16.072897+02:00", "subscriptionId": "da6a4622-4e5d-4da5-8d29-6c49d4052b69", "customerId": "2f2e6ce9-e0bb-4377-8eb9-6a8506c0baa4", "walletId": null, "mandateId": "b08bb9e0-72e4-426a-9998-585f083338fc", "merchantInvoiceId": null, "amount": 2000, "currency": "EUR", "closed": true, "invoiceItems": [ { "invoiceItemId": "0dabd4f2-6e36-4731-989a-d00bdf93e748", "creationDate": "2021-09-09T10:32:15.860404+02:00", "invoiceId": "e257896b-86a1-41cf-865b-ac0531e2ea4a", "subscriptionId": "da6a4622-4e5d-4da5-8d29-6c49d4052b69", "customerId": "2f2e6ce9-e0bb-4377-8eb9-6a8506c0baa4", "walletId": null, "mandateId": "b08bb9e0-72e4-426a-9998-585f083338fc", "merchantInvoiceItemId": null, "quantity": 1, "amount": 2000, "totalAmount": 2000, "currency": "EUR", "description": null, "type": "SUBSCRIPTION", "additionalData": [] } ], "description": null, "attemptCount": 1, "paid": true, "type": "SUBSCRIPTION", "nextTransactionAttempt": null, "transactions": [], "transfers": [], "sddTransactions": [ "0fd0d6cb-076a-4df5-9e89-7a62b74791e8" ], "eventReceivedDate": null, "additionalData": [] }, "endUserIp": "92.154.127.221", "endUserLanguage": null, "endToEndIdentification": null, "remittanceInformation": "PREMIUM", "redirect": null, "additionalData": [] } PAYMENTREQUEST_TRANSACTION_FAILEDHappen when the transaction of the payment request failed { "eventId": "66f20401-7ca6-47bd-95f1-830628171cf8", "type": "PAYMENTREQUEST_TRANSACTION_FAILED", "creationDate": "2024-01-05T14:46:59.418489+01:00", "object": { "additionalData": {}, "amount": 3600000, "amountCaptured": 0, "amountRefunded": 0, "archivingReference": "9GUGCIZEU0VN", "authorizationMovementId": "7ed9258a-ee75-4705-90f3-678973d2402e", "authorizationStatus": "FAILURE", "bankCode": "51", "bankMessage": "Simulation : Insufficient Funds", "browserAcceptLanguage": "en_US", "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36", "captureStatus": "UNCAPTURED", "card": { "additionalData": {}, "cardId": "30e49b6e-ed07-4b43-8862-2abd2f181678", "cardType": "DEBIT", "cardholderEmail": "gduhamel@centralpay.eu", "check": true, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-05T14:46:39.151564+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "7032968c1a882c155b3d8014297daabaa7133680", "first6": "400000", "infoId": "90eaf823-e2e7-4757-845a-b966bbab03c6", "last4": "0077", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "country": "FRA", "creationDate": "2024-01-05T14:46:58.190985+01:00", "currency": "EUR", "customAcceptanceData": {}, "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "endUserIp": "245.100.1.15", "endUserLanguage": "fre", "fee": 0, "merchantCategoryCode": "1711", "order": { "cardholderEmail": "GDU-Yvette5@hotmail.com", "country": "FRA" }, "partialAuthorization": false, "partialAuthorized": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "GDU-Buck_Gislason@hotmail.com", "refunded": false, "refunds": [], "source": "EC", "threeDSecure": false, "totalAmount": 3600000, "transactionId": "d530cdbe-b9fc-481b-b99d-8ce0db75deb4", "transactionStatus": "FAILURE", "transactiontransfers": [], "withCvv": true }, "requestId": "c120a3c0-764a-4c7e-a705-4721784212c7" } PAYMENTREQUEST_TRANSACTION_SUCCEEDEDHappen when the transaction of the payment request succeeded { "eventId": "11a2d5b6-b8da-4e83-8182-5bd417b0b6b6", "type": "PAYMENTREQUEST_TRANSACTION_SUCCEEDED", "creationDate": "2024-01-15T12:36:33.122848+01:00", "object": { "additionalData": {}, "amount": 100000, "amountCaptured": 100000, "amountRefunded": 0, "archivingReference": "3GZD1KYRDSHP", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "656d9ee5-8ccb-45d9-a8fe-c830adf69dfd", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "browserAcceptLanguage": "en_US", "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "captureDate": "2024-01-15T12:36:33.020554+01:00", "captureStatus": "CAPTURED", "card": { "additionalData": {}, "cardId": "5e6269c2-b8a7-4ced-ad12-4c6cfdeda11b", "cardTokenId": "0211ff3d-1e71-4772-8bdb-8c7e23905f86", "cardType": "DEBIT", "cardholderEmail": "gduhamel@centralpay.eu", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-15T12:36:29.312152+01:00", "europeanEconomicArea": true, "expirationMonth": 5, "expirationYear": 2025, "fingerprint": "9ede6a38739c3ce76c59bee1083409937d497e7a", "first6": "403203", "last4": "2700", "productType": "CONSUMER", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-15T12:36:31.689550+01:00", "currency": "EUR", "customAcceptanceData": {}, "endUserIp": "91.229.230.41", "endUserLanguage": "eng", "fee": 0, "merchantCategoryCode": "1711", "movementId": "455d5abf-4076-4b14-8804-87fc9a9ece8d", "order": { "cardholderEmail": "gduhamel@centralpay.eu" }, "partialAuthorization": false, "partialAuthorized": false, "paymentRequestBreakdownId": "75b6d330-948e-4aef-8967-d88d2acc7190", "paymentRequestId": "2bfc4ab4-f878-46b8-8a12-3263d2d28842", "payoutAmount": 100000, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "gduhamel@centralpay.eu", "refunded": false, "refunds": [], "residualAmount": 0, "source": "EC", "threeDSecure": true, "totalAmount": 100000, "transactionId": "f80eee11-a633-46c2-bf08-f31d33d3107a", "transactionStatus": "SUCCESS", "transactiontransfers": [], "withCvv": true }, "requestId": "6847ced8-92ab-45df-9f1d-1069112b98e1" } PAYMENTREQUEST_SDDTRANSACTION_SUCCEEDEDHappen when the SDD transaction of the payment request succeeded { "additionalData": [], "amount": 9500, "automaticValidation": true, "commission": 0, "creationDate": "2025-05-22T04:01:54.502927+02:00", "currency": "EUR", "endToEndIdentification": "SDD-1F9EF68A-F1E6-4632-BF6A", "endUserIp": "91.206.156.116", "fee": 0, "mandateId": "062572aa-e4c6-4759-a470-f4e7042464d2", "movementId": "a92a5dc6-7b29-49b3-b608-89f9d2ee0b30", "otpExpired": false, "paymentRequestBreakdownId": "f2e668b1-5718-4c82-87c1-9d361e426f01", "payoutAmount": 9500, "payoutCurrency": "EUR", "pointOfSaleId": "358a1ef4-1954-4c12-9900-7365fbaf194c", "remittanceInformation": "670646D49F3A", "requestedCollectionDate": "2025-05-23", "sddTransactionId": "53fd1a29-8a85-495c-951b-7a03fd7cbfa9", "sequenceType": "RCUR", "status": "CLEARED", "transactionTransfers": [], "validationDate": "2025-05-22T04:01:54.504469+02:00", "walletId": "23d3c9b0-ad0f-4cd5-a48e-32315827b1fa" } PAYMENTREQUEST_SCT_TRANSACTION_SUCCEEDEDHappen when the SCT transaction of the payment request succeeded { "additionalData": [], "amount": 9500, "automaticValidation": true, "commission": 0, "creationDate": "2025-05-22T04:01:54.502927+02:00", "currency": "EUR", "endToEndIdentification": "SDD-1F9EF68A-F1E6-4632-BF6A", "endUserIp": "91.206.156.116", "fee": 0, "mandateId": "062572aa-e4c6-4759-a470-f4e7042464d2", "movementId": "a92a5dc6-7b29-49b3-b608-89f9d2ee0b30", "otpExpired": false, "paymentRequestBreakdownId": "f2e668b1-5718-4c82-87c1-9d361e426f01", "payoutAmount": 9500, "payoutCurrency": "EUR", "pointOfSaleId": "358a1ef4-1954-4c12-9900-7365fbaf194c", "remittanceInformation": "670646D49F3A", "requestedCollectionDate": "2025-05-23", "sddTransactionId": "53fd1a29-8a85-495c-951b-7a03fd7cbfa9", "sequenceType": "RCUR", "status": "CLEARED", "transactionTransfers": [], "validationDate": "2025-05-22T04:01:54.504469+02:00", "walletId": "23d3c9b0-ad0f-4cd5-a48e-32315827b1fa" } The PAYOUT object PAYOUT_CREATEDWhen a payout will be asked. { "eventId": "da2e06e2-c6d5-416e-91b8-3fd398e216aa", "type": "PAYOUT_CREATED", "creationDate": "2024-01-15T15:05:36.401305+01:00", "object": { "additionalData": {}, "amount": 1, "automatic": false, "creationDate": "2024-01-15T15:05:36.280515+01:00", "currency": "EUR", "description": "ma description", "destinationBankAccountId": "2377f038-d798-42b2-ac46-113105166bd4", "expectedArrivalDate": "2024-01-17", "fee": 0, "movementId": "e1715d31-d403-4ec5-85e4-7e41d0a3c69b", "net": 1, "payoutId": "d7cd6f62-1e56-4779-a48d-18977cdc643d", "payoutReference": "PAYOUT-20240115150536-a00f7a69", "payoutType": "SCT", "status": "PENDING", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "9d99d793-ef34-4e4f-aefd-627da4b77fbc" } PAYOUT_UPDATEDWhen an ongoing payout has been updated. { "eventId": "e1e8725c-eb98-400f-b3df-8f799a3ba165", "type": "PAYOUT_UPDATED", "creationDate": "2024-01-15T15:06:51.827583+01:00", "object": { "additionalData": {}, "amount": 1, "automatic": false, "creationDate": "2024-01-15T15:05:36.280515+01:00", "currency": "EUR", "description": "ma description", "destinationBankAccountId": "2377f038-d798-42b2-ac46-113105166bd4", "expectedArrivalDate": "2024-01-17", "fee": 0, "merchantPayoutId": "Up_Test_Doc", "movementId": "e1715d31-d403-4ec5-85e4-7e41d0a3c69b", "net": 1, "payoutId": "d7cd6f62-1e56-4779-a48d-18977cdc643d", "payoutReference": "PAYOUT-20240115150536-a00f7a69", "payoutType": "SCT", "status": "PENDING", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "a39650ab-ddcf-4da7-965e-a0e5d44949ab", "objectBeforeUpdate": { "additionalData": {}, "amount": 1, "automatic": false, "creationDate": "2024-01-15T15:05:36.280515+01:00", "currency": "EUR", "description": "ma description", "destinationBankAccountId": "2377f038-d798-42b2-ac46-113105166bd4", "expectedArrivalDate": "2024-01-17", "fee": 0, "movementId": "e1715d31-d403-4ec5-85e4-7e41d0a3c69b", "net": 1, "payoutId": "d7cd6f62-1e56-4779-a48d-18977cdc643d", "payoutReference": "PAYOUT-20240115150536-a00f7a69", "payoutType": "SCT", "status": "PENDING", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" } } PAYOUT_CANCELEDWhen an ongoing payout has been canceled. { "eventId": "9630cef4-e1f4-4f5d-811d-e361c4c30c78", "type": "PAYOUT_CANCELED", "creationDate": "2024-01-08T15:15:55.576036+01:00", "object": { "additionalData": {}, "amount": 1, "automatic": false, "cancelMovementId": "258e7c45-1d4f-48fc-a026-bebb8c10014e", "cancellationDate": "2024-01-08T15:15:55.562863+01:00", "creationDate": "2024-01-08T15:15:22.435232+01:00", "currency": "EUR", "description": "ma description", "destinationBankAccountId": "d33c400b-9338-4916-a4ca-e8affcfd9ebc", "expectedArrivalDate": "2024-01-10", "fee": 0, "merchantPayoutId": "Up_Test_Doc", "movementId": "3d8c5417-2cc9-4c7d-9504-5446cac24e87", "net": 1, "payoutId": "d68c9005-8954-4d17-96f5-8435a81ace20", "payoutReference": "PAYOUT-20240108151522-a00f7a69", "payoutType": "SCT", "status": "CANCEL", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "7b69dbff-59eb-489f-ac0a-9df343f2bd2a" } PAYOUT_PAIDWhen an ongoing payout has been properly executed. { "eventId": "9a1df5b8-6b24-4274-ad52-1295999f4a6c", "type": "PAYOUT_PAID", "creationDate": "2024-01-30T11:29:15.965095+01:00", "object": { "additionalData": {}, "amount": 100, "arrivalDate": "2024-01-30", "automatic": true, "creationDate": "2024-01-26T16:56:15.147347+01:00", "currency": "EUR", "destinationBankAccountId": "2377f038-d798-42b2-ac46-113105166bd4", "expectedArrivalDate": "2024-01-28", "fee": 0, "movementId": "b4fafbb7-e73a-4a98-bc6b-f4c7dfee7104", "net": 100, "payoutId": "f88cab14-b73e-44fc-adcf-9cb1f4f4c43b", "payoutReference": "PAYOUT-20240126165615-a00f7a69", "payoutType": "SCT", "status": "PAID", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "ceffc00e-a708-45fd-bc16-fe0999455e06" } PAYOUT_REVERSAL_CREATEDWhen a payout reversal has been created The REFUND object REFUND_CREATEDWhen a refund is created { "refundId": "3c349da5-c144-424b-bbdd-6f756b43c4ee", "creationDate": "2021-09-08T09:40:42.140717+02:00", "transactionId": "9c6ffb50-11cf-418c-9c9f-57a3fba20c20", "clearingDate": null, "cancellationDate": null, "merchantRefundId": null, "currency": "EUR", "amount": 1, "payoutCurrency": "EUR", "payoutAmount": 1, "commission": 0, "fee": 0, "description": "ma description", "status": "UNCLEARED", "movementId": "8981c46d-1e9e-4501-b78c-2d3e6e313fda", "cancelMovementId": null, "additionalData": [] } REFUND_CANCELEDWhen a refund is cancelled { "refundId": "3c349da5-c144-424b-bbdd-6f756b43c4ee", "creationDate": "2021-09-08T09:40:42.140717+02:00", "transactionId": "9c6ffb50-11cf-418c-9c9f-57a3fba20c20", "clearingDate": null, "cancellationDate": "2021-09-08T09:40:42.646025+02:00", "merchantRefundId": null, "currency": "EUR", "amount": 1, "payoutCurrency": "EUR", "payoutAmount": 1, "commission": 0, "fee": 0, "description": "ma description", "status": "CANCELED", "movementId": "8981c46d-1e9e-4501-b78c-2d3e6e313fda", "cancelMovementId": "b315d96f-8dc0-437d-af5f-729a8c0bb502", "additionalData": [] } REFUND_UPDATEDWhen a refund is updated The SCT Transaction object SCT_TRANSACTION_CREATEDWhen a sct transaction is created { "eventId": "283cb3c2-ddfd-4db2-aef7-df47e642d6b2", "type": "SCT_TRANSACTION_CREATED", "creationDate": "2024-01-08T16:03:10.536372+01:00", "object": { "additionalData": {}, "amount": 12345, "bankAccount": { "bic": "AXABFRPP", "iban": "FR7612548029980000000150086" }, "bic": "AXABFRPP", "creationDate": "2024-01-08T16:03:10.516099+01:00", "currency": "EUR", "destinationBankAccountId": "ae909782-18d2-42dc-b9b7-9e3c38dac167", "iban": "FR7612548029980000000150086", "order": { "firstName": "CORBEN", "lastName": "DALLAS" }, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "refunds": [], "sctTransactionId": "5b6ffc2f-126d-434f-bf3d-fd0364017192", "sepaReference": "TOKWTB", "status": "PENDING", "transactionTransfers": [] }, "requestId": "f3ccb2bd-df53-4b50-b64a-5d503dda7440" } SCT_TRANSACTION_UPDATEDWhen a sct transaction is updated { "eventId": "8057c6df-86d2-45e0-8cc9-9d2d7163ab99", "type": "SCT_TRANSACTION_UPDATED", "creationDate": "2024-01-08T16:03:44.760244+01:00", "object": { "additionalData": {}, "amount": 12345, "bankAccount": { "bic": "AXABFRPP", "iban": "FR7612548029980000000150086" }, "bic": "AXABFRPP", "creationDate": "2024-01-08T16:03:10.516099+01:00", "currency": "EUR", "description": "ma description", "destinationBankAccountId": "ae909782-18d2-42dc-b9b7-9e3c38dac167", "iban": "FR7612548029980000000150086", "order": { "firstName": "CORBEN", "lastName": "DALLAS" }, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "processed": false, "refunds": [], "sctTransactionId": "5b6ffc2f-126d-434f-bf3d-fd0364017192", "sepaReference": "TOKWTB ", "status": "PENDING", "transactionTransfers": [] }, "requestId": "a40ff9c2-3285-4b1b-aee2-de5b21402ad1", "objectBeforeUpdate": { "additionalData": {}, "amount": 12345, "bankAccount": { "bic": "AXABFRPP", "iban": "FR7612548029980000000150086" }, "bic": "AXABFRPP", "creationDate": "2024-01-08T16:03:10.516099+01:00", "currency": "EUR", "destinationBankAccountId": "ae909782-18d2-42dc-b9b7-9e3c38dac167", "iban": "FR7612548029980000000150086", "order": { "firstName": "CORBEN", "lastName": "DALLAS" }, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "processed": false, "refunds": [], "sctTransactionId": "5b6ffc2f-126d-434f-bf3d-fd0364017192", "sepaReference": "TOKWTB ", "status": "PENDING", "transactionTransfers": [] } } SCT_TRANSACTION_RECEIVEDWhen a sct transaction is received { "eventId": "b6fef094-77d5-4230-8526-baa0fb4b10d6", "type": "SCT_TRANSACTION_RECEIVED", "creationDate": "2024-01-10T12:39:40.146639+01:00", "object": { "additionalData": {}, "amount": 12345, "bankAccount": { "bic": "CEAYFR22", "iban": "FR7699999000019761523040665" }, "bic": "CEAYFR22", "commission": 0, "creationDate": "2024-01-10T12:32:39.516605+01:00", "currency": "EUR", "debtorInfo": { "address": { "addressLines": [ "Direccion del ordenante", "08010 BARCELONA" ], "country": "ES" }, "name": "GUILLAUME MAXIMILIEN JACQUES PONSARD" }, "destinationBankAccountId": "ae909782-18d2-42dc-b9b7-9e3c38dac167", "fee": 0, "iban": "FR7699999000019761523040665", "merchantSctTransactionId": "8srWEcIiIW", "movementId": "25d7a3f4-a421-4dc7-8554-486bf801bade", "order": { "firstName": "CORBEN", "lastName": "DALLAS" }, "payoutAmount": 12345, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "processed": true, "processedDate": "2024-01-10T12:39:40.099911+01:00", "receiptDate": "2024-01-10T12:39:40.099911+01:00", "sctTransactionId": "4cbd9866-b723-4a3a-9bf8-b30382b91909", "sepaReference": "ZCPTDW ", "status": "RECEIVED", "transactionTransfers": [] }, "requestId": "4be1b982-107d-4133-bdb2-377afd4d7ae4" } SCT_TRANSACTION_CANCELEDWhen a sct transaction is cancelled { { "eventId": "66cedcb4-091a-4023-beb8-d64f86438c73", "type": "SCT_TRANSACTION_CANCELED", "creationDate": "2024-01-08T16:03:57.125156+01:00", "object": { "additionalData": {}, "amount": 12345, "bankAccount": { "bic": "AXABFRPP", "iban": "FR7612548029980000000150086" }, "bic": "AXABFRPP", "cancellationDate": "2024-01-08T16:03:57.119857+01:00", "creationDate": "2024-01-08T16:03:10.516099+01:00", "currency": "EUR", "description": "ma description", "destinationBankAccountId": "ae909782-18d2-42dc-b9b7-9e3c38dac167", "iban": "FR7612548029980000000150086", "order": { "firstName": "CORBEN", "lastName": "DALLAS" }, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "processed": false, "refunds": [], "sctTransactionId": "5b6ffc2f-126d-434f-bf3d-fd0364017192", "sepaReference": "TOKWTB ", "status": "CANCELED", "transactionTransfers": [] }, "requestId": "8aa84040-e72b-4e78-9149-0e5478d74b10" } } SCT_TRANSACTION_REVERSAL_CREATEDWhen a sct transaction reversal is created { "eventId": "80544b1c-a167-4dd5-b493-166642e543fd", "type": "SCT_TRANSACTION_REVERSAL_CREATED", "creationDate": "2024-01-11T11:48:24.125374+01:00", "object": { "amount": 12345, "creationDate": "2024-01-11T11:48:24.116525+01:00", "currency": "EUR", "description": "Remboursement du client", "sctTransactionId": "2cf657da-9431-4da2-9720-4b877a9b44ef", "sctTransactionReversalId": "d5a11ee9-a598-4457-9ed8-e9a7961baaf7", "status": "PENDING" }, "requestId": "9ea9af82-921f-4b41-9de8-e461bc284849" }} SCT_TRANSACTION_REVERSAL_RECEIVEDWhen a sct transaction reversal is received { "eventId": "180bfcfd-a46c-40e3-8d9c-e1eeb380d84f", "type": "SCT_TRANSACTION_REVERSAL_RECEIVED", "creationDate": "2024-01-30T12:38:45.221820+01:00", "object": { "amount": 12345, "creationDate": "2024-01-11T11:48:24.116525+01:00", "currency": "EUR", "description": "Remboursement du client", "expectedAvailabilityDate": "2024-01-30", "movementId": "ec5a1db6-af35-47ad-9387-9b37e7cc6053", "sctTransactionId": "2cf657da-9431-4da2-9720-4b877a9b44ef", "sctTransactionReversalId": "d5a11ee9-a598-4457-9ed8-e9a7961baaf7", "status": "RECEIVED" }, "requestId": "20319064-8dfb-453f-ab0b-d621055606d7" } SCT_TRANSACTION_REFUNDED_CANCELEDWhen a sct transaction refund is cancelled SCT_TRANSACTION_REFUNDED_RECEIVED,When a sct transaction refund is received SCT_TRANSACTION_REFUNDEDWhen a sct transaction reversal is created The SDD TRANSACTION object SDDTRANSACTION_CREATEDWhen a SDD Transaction is created { "eventId": "bc6cb3b3-2960-4833-88a4-ddce9335fcbe", "type": "SDDTRANSACTION_CREATED", "creationDate": "2024-01-11T13:02:56.629960+01:00", "object": { "additionalData": {}, "amount": 12, "automaticValidation": false, "creationDate": "2024-01-11T13:02:56.373932+01:00", "currency": "EUR", "endToEndIdentification": "M6C+XE3H5", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpirationDate": "2024-01-11T13:17:56.374014+01:00", "otpExpired": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-12", "sddTransactionId": "96747d6a-e6e3-4d8e-97cf-22f3e407a57e", "sequenceType": "RCUR", "status": "PENDING", "transactionTransfers": [], "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "27dd69d1-3789-4abc-9e9c-d6644c436f9b" } SDDTRANSACTION_CLEAREDWhen a SDD Transaction is received { "eventId": "e54db468-ee08-4f61-83b2-c91b7c6a0c05", "type": "SDDTRANSACTION_CLEARED", "creationDate": "2024-01-11T14:30:59.249935+01:00", "object": { "additionalData": {}, "amount": 12, "automaticValidation": false, "commission": 0, "creationDate": "2024-01-11T14:28:41.754664+01:00", "currency": "EUR", "endToEndIdentification": "84J4ZDNEW", "endUserIp": "245.100.1.15", "fee": 0, "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "movementId": "0a6ffbe5-f067-4c03-9f62-672cb46e312c", "otpExpirationDate": "2024-01-11T14:43:46.129105+01:00", "otpExpired": false, "payoutAmount": 12, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-12", "sddTransactionId": "f6f5ddbc-1e4c-499c-bee2-0aaa6190a698", "sequenceType": "RCUR", "status": "CLEARED", "transactionTransfers": [], "validationDate": "2024-01-11T14:30:56.448356+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "5a2c73f8-1a46-451c-9444-608cb8a1f92d" } SDDTRANSACTION_VALIDATEDWhen a SDD Transaction is validated { "eventId": "2a21fd0e-19f2-469e-a80d-0300398f7d40", "type": "SDDTRANSACTION_VALIDATED", "creationDate": "2024-01-11T13:03:17.335248+01:00", "object": { "additionalData": {}, "amount": 12, "automaticValidation": false, "creationDate": "2024-01-11T13:02:56.373932+01:00", "currency": "EUR", "endToEndIdentification": "M6C+XE3H5", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpirationDate": "2024-01-11T13:17:56.374014+01:00", "otpExpired": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-12", "sddTransactionId": "96747d6a-e6e3-4d8e-97cf-22f3e407a57e", "sequenceType": "RCUR", "status": "ACTIVE", "transactionTransfers": [], "validationDate": "2024-01-11T13:03:17.329335+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "3af961bc-140f-4630-bdda-cff9854484b0" } SDDTRANSACTION_CANCELEDWhen a SDD Transaction is cancelled { "eventId": "894cf6da-e9d6-41b4-8504-d541c13dd7e5", "type": "SDDTRANSACTION_CANCELED", "creationDate": "2024-01-11T12:46:20.865252+01:00", "object": { "additionalData": {}, "amount": 12, "automaticValidation": true, "cancellationDate": "2024-01-11T12:46:20.844829+01:00", "creationDate": "2024-01-11T12:46:04.839313+01:00", "currency": "EUR", "endToEndIdentification": "2(OSAI,:P", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpired": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-23", "sddTransactionId": "a5530b31-ef60-4511-adeb-18843f61ef81", "sequenceType": "RCUR", "status": "CANCELED", "transactionTransfers": [], "validationDate": "2024-01-11T12:46:04.839337+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "3f82090d-f76b-4c3a-9d12-4befb22313e5" } SDDTRANSACTION_RENEWOTPWhen a request for an OTP renewal has been sent for an SSD transaction { "eventId": "fd352df9-2abc-43b8-a761-07e28375d4ff", "type": "SDDTRANSACTION_RENEWOTP", "creationDate": "2024-01-11T14:28:46.213454+01:00", "object": { "additionalData": {}, "amount": 12, "automaticValidation": false, "creationDate": "2024-01-11T14:28:41.754664+01:00", "currency": "EUR", "endToEndIdentification": "84J4ZDNEW", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpirationDate": "2024-01-11T14:43:46.129105+01:00", "otpExpired": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-12", "sddTransactionId": "f6f5ddbc-1e4c-499c-bee2-0aaa6190a698", "sequenceType": "RCUR", "status": "PENDING", "transactionTransfers": [], "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "85a68830-fa0f-41c9-8c80-d5c578f998f9" } SDDTRANSACTION_REVERSED_CREATEDWhen a SDD Transaction reversal is created The MANDATE object MANDATE_CREATEDWhen a mandate is created { "eventId": "ba739034-7e86-4280-9e19-b8d3be3f683c", "type": "MANDATE_CREATED", "creationDate": "2024-01-11T12:41:18.209916+01:00", "object": { "additionalData": {}, "creationDate": "2024-01-11T12:41:17.403384+01:00", "creditorBankAccountId": "d33c400b-9338-4916-a4ca-e8affcfd9ebc", "customerId": "78497f3c-baf4-42ae-92e2-cc0cfdd69c2c", "debtorBankAccountId": "053c0160-9b62-4424-aaf7-6f74e6d5f7f6", "debtorEmail": "gduhamel@centralpay.eu", "debtorPhone": "+33600000000", "description": "ma description", "language": "fre", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpirationDate": "2024-01-11T12:56:17.403395+01:00", "otpExpired": false, "paymentType": "PUCT", "rum": "GT20KDMVN", "sddTransactions": [], "status": "PENDING", "ultimateCreditorIdentityId": "2df8d9cd-afcc-47dd-8593-560028b66f50" }, "requestId": "800c83a7-d37b-4c33-9907-8874d5c7fa87" } MANDATE_SIGNEDWhen a mandate is signed { "eventId": "d60f35d6-c20a-4317-9ea9-dc90fd4bcd1b", "type": "MANDATE_SIGNED", "creationDate": "2024-01-11T12:43:07.337387+01:00", "object": { "additionalData": {}, "creationDate": "2024-01-11T12:41:17.403384+01:00", "creditorBankAccountId": "d33c400b-9338-4916-a4ca-e8affcfd9ebc", "customerId": "78497f3c-baf4-42ae-92e2-cc0cfdd69c2c", "debtorBankAccountId": "053c0160-9b62-4424-aaf7-6f74e6d5f7f6", "debtorEmail": "gduhamel@centralpay.eu", "debtorPhone": "+33600000000", "description": "ma description", "language": "fre", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpirationDate": "2024-01-11T12:56:17.403395+01:00", "otpExpired": false, "paymentType": "PUCT", "pdfFileId": "7b8d75bd-8f09-400d-af9c-c8787a0858fc", "rum": "GT20KDMVN", "sddTransactions": [], "signatureCity": "TOURS", "signatureDate": "2024-01-11T12:43:06.838810+01:00", "signatureIpAddress": "245.100.1.15", "status": "ACTIVE", "ultimateCreditorIdentityId": "2df8d9cd-afcc-47dd-8593-560028b66f50" }, "requestId": "4c40f8ba-94fd-433c-b7eb-71bbad68f51a" } MANDATE_OBSOLETEDWhen a mandate is obsolete { "eventId": "8961d9a3-1b38-4275-9ef7-1c3f9dc993e9", "type": "MANDATE_OBSOLETED", "creationDate": "2024-01-11T14:34:29.346268+01:00", "object": { "additionalData": {}, "creationDate": "2024-01-11T12:41:17.403384+01:00", "creditorBankAccountId": "d33c400b-9338-4916-a4ca-e8affcfd9ebc", "customerId": "78497f3c-baf4-42ae-92e2-cc0cfdd69c2c", "debtorBankAccountId": "053c0160-9b62-4424-aaf7-6f74e6d5f7f6", "debtorEmail": "gduhamel@centralpay.eu", "debtorPhone": "+3300000000", "description": "ma description", "language": "fre", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "obsolescenceDate": "2024-01-11T14:34:29.315888+01:00", "otpExpirationDate": "2024-01-11T12:56:17.403395+01:00", "otpExpired": true, "paymentType": "PUCT", "pdfFileId": "7b8d75bd-8f09-400d-af9c-c8787a0858fc", "rum": "GT20KDMVN", "sddTransactions": [ { "additionalData": {}, "amount": 12, "automaticValidation": true, "cancellationDate": "2024-01-11T12:46:20.844829+01:00", "creationDate": "2024-01-11T12:46:04.839313+01:00", "currency": "EUR", "endToEndIdentification": "2(OSAI,:P", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpired": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-23", "sddTransactionId": "a5530b31-ef60-4511-adeb-18843f61ef81", "sequenceType": "RCUR", "status": "CANCELED", "transactionTransfers": [], "validationDate": "2024-01-11T12:46:04.839337+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, { "additionalData": {}, "amount": 12, "automaticValidation": true, "creationDate": "2024-01-11T12:46:27.952977+01:00", "currency": "EUR", "endToEndIdentification": "MUPXTJXVK", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpired": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-23", "sddTransactionId": "3b781c44-ca15-4cbf-a529-f73e9c9fb0cf", "sequenceType": "RCUR", "status": "ACTIVE", "transactionTransfers": [], "validationDate": "2024-01-11T12:46:27.953004+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, { "additionalData": {}, "amount": 12, "automaticValidation": true, "creationDate": "2024-01-11T12:53:09.201843+01:00", "currency": "EUR", "endToEndIdentification": "7C28543RZ", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpired": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-12", "sddTransactionId": "af2e9240-d58f-478d-8e64-d8041ac882e0", "sequenceType": "RCUR", "status": "ACTIVE", "transactionTransfers": [], "validationDate": "2024-01-11T12:53:09.201871+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, { "additionalData": {}, "amount": 12, "automaticValidation": false, "creationDate": "2024-01-11T13:02:56.373932+01:00", "currency": "EUR", "endToEndIdentification": "M6C+XE3H5", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpirationDate": "2024-01-11T13:17:56.374014+01:00", "otpExpired": true, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-12", "sddTransactionId": "96747d6a-e6e3-4d8e-97cf-22f3e407a57e", "sequenceType": "RCUR", "status": "ACTIVE", "transactionTransfers": [], "validationDate": "2024-01-11T13:03:17.329335+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, { "additionalData": {}, "amount": 12, "automaticValidation": false, "commission": 0, "creationDate": "2024-01-11T14:28:41.754664+01:00", "currency": "EUR", "endToEndIdentification": "84J4ZDNEW", "endUserIp": "245.100.1.15", "fee": 0, "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "movementId": "0a6ffbe5-f067-4c03-9f62-672cb46e312c", "otpExpirationDate": "2024-01-11T14:43:46.129105+01:00", "otpExpired": false, "payoutAmount": 12, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-12", "sddTransactionId": "f6f5ddbc-1e4c-499c-bee2-0aaa6190a698", "sequenceType": "RCUR", "status": "CLEARED", "transactionTransfers": [], "validationDate": "2024-01-11T14:30:56.448356+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" } ], "signatureCity": "TOURS", "signatureDate": "2024-01-11T12:43:06.838810+01:00", "signatureIpAddress": "245.100.1.15", "status": "OBSOLETE", "ultimateCreditorIdentityId": "2df8d9cd-afcc-47dd-8593-560028b66f50" }, "requestId": "8d56fb75-1ce2-458b-b057-e8722ec22427" } MANDATE_RENEWOTPWhen a request for an OTP renewal has been sent for an mandate { "eventId": "8f103a2e-8e05-4af7-9b57-a76dc3fe1b48", "type": "MANDATE_RENEWOTP", "creationDate": "2024-01-11T14:34:56.606277+01:00", "object": { "additionalData": {}, "creationDate": "2024-01-11T14:34:36.412083+01:00", "creditorBankAccountId": "d33c400b-9338-4916-a4ca-e8affcfd9ebc", "customerId": "78497f3c-baf4-42ae-92e2-cc0cfdd69c2c", "debtorBankAccountId": "053c0160-9b62-4424-aaf7-6f74e6d5f7f6", "debtorEmail": "gduhamel@centralpay.eu", "debtorPhone": "+3300000000", "description": "ma description", "language": "fre", "mandateId": "ffc24f5a-f43a-4e9f-b4f9-1d7d1b87a46c", "otpExpirationDate": "2024-01-11T14:49:56.133201+01:00", "otpExpired": false, "paymentType": "PUCT", "rum": "YRHCV3K37", "sddTransactions": [], "status": "PENDING", "ultimateCreditorIdentityId": "2df8d9cd-afcc-47dd-8593-560028b66f50" }, "requestId": "a427c5b9-dbf4-4cb2-b9a5-bdf76418901b" } The SUBSCRIPTION object SUBSCRIPTIONMODEL_CREATEDWhen a Subscription model is created { "eventId": "396d5bf8-f494-4ba6-91ef-29bd6be595b1", "type": "SUBSCRIPTIONMODEL_CREATED", "creationDate": "2024-01-08T11:56:53.360135+01:00", "object": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T11:56:53.353430+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test Abo", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "50eeed1d-b908-4fc3-8863-466a733b272c" }, "requestId": "9dd48255-2b54-40bb-bd38-dfeac5d0535b" } SUBSCRIPTIONMODEL_UPDATEDWhen a Subscription model is updated { "eventId": "d00f3f00-b2d6-4de4-8c41-a106b88054b9", "type": "SUBSCRIPTIONMODEL_UPDATED", "creationDate": "2024-01-08T11:58:22.826908+01:00", "object": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T11:56:53.353430+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "CPMInnn", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "50eeed1d-b908-4fc3-8863-466a733b272c" }, "requestId": "4bc97650-9a0e-4032-ba46-8088c1e31b0b", "objectBeforeUpdate": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T11:56:53.353430+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test Abo", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "50eeed1d-b908-4fc3-8863-466a733b272c" } } SUBSCRIPTION_CREATEDWhen a Subscription is created { "eventId": "f87999fa-ab71-4a57-bc1f-b360670ef593", "type": "SUBSCRIPTION_CREATED", "creationDate": "2024-01-08T12:24:12.821583+01:00", "object": { "additionalData": {}, "cardId": "8750301a-f2ae-4447-8a3a-62e37675e1ca", "creationDate": "2024-01-08T12:24:12.700858+01:00", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "endUserIp": "245.100.1.15", "expectedEndingDate": "2025-01-09", "merchantSubscriptionId": "Gauthier refapi", "quantity": 1, "startingDate": "2024-01-10", "status": "ACTIVE", "subscriptionId": "c64ba2e5-a0b1-43e2-867a-27555c355331", "subscriptionModel": { "additionalData": {}, "amount": 100, "creationDate": "2024-01-08T12:20:23.305903+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test refapi", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "e16a35bf-ca34-48b7-9726-139c15e89fa9" } }, "requestId": "c66d38ac-5f7d-4a52-840c-ebadade3bf4f" } SUBSCRIPTION_FAILEDWhen a Subscription failed { "eventId": "3c8ca51e-aa44-41ca-ad24-872a86ed35ee", "type": "SUBSCRIPTION_FAILED", "creationDate": "2024-01-15T11:59:56.223023+01:00", "object": { "additionalData": {}, "cancelAtPeriodEnd": false, "cancellationDate": "2024-01-15T11:59:55.877297+01:00", "cardId": "0a6b2fdc-85e4-4ffa-bffa-0ae276e11aa3", "creationDate": "2024-01-15T11:59:52.983206+01:00", "currentPeriodEnd": "2024-01-15", "currentPeriodStart": "2024-01-15", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "endUserIp": "245.100.1.15", "endingDate": "2024-01-15", "expectedEndingDate": "2025-01-14", "lastInvoice": { "additionalData": {}, "amount": 10000, "attemptCount": 1, "closed": true, "creationDate": "2024-01-15T11:59:53.614864+01:00", "currency": "EUR", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "invoiceId": "e0909ca3-a337-43ce-9769-d65e927b3a47", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-15T11:59:53.357382+01:00", "currency": "EUR", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "invoiceId": "e0909ca3-a337-43ce-9769-d65e927b3a47", "invoiceItemId": "0c153918-5128-4ecb-8570-7c9f71a500ec", "quantity": 1, "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "totalAmount": 10000, "type": "SUBSCRIPTION" } ], "nextTransactionAttempt": "2024-01-18T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "transactions": [ "19b41977-e973-4dd9-846e-5777459196a5" ], "transfers": [], "type": "SUBSCRIPTION" }, "merchantSubscriptionId": "Test refapi gogo", "quantity": 1, "startingDate": "2024-01-15", "status": "CANCELED", "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "subscriptionModel": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-11T15:02:53.061463+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test Abo", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "7cd1b504-bed3-4435-84be-2e19f2c8e2f6" } }, "requestId": "ac2cae53-8d39-4e5a-8098-bcf0ab55a7cc" } SUBSCRIPTION_UPDATEDWhen a Subscription is updated { "eventId": "3da295c6-403e-4080-9398-9cebf7efbc37", "type": "SUBSCRIPTION_UPDATED", "creationDate": "2024-01-08T12:25:27.579680+01:00", "object": { "additionalData": {}, "cardId": "8750301a-f2ae-4447-8a3a-62e37675e1ca", "creationDate": "2024-01-08T12:24:12.700858+01:00", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "endUserIp": "245.100.1.15", "expectedEndingDate": "2025-01-09", "merchantSubscriptionId": "TEST001", "quantity": 1, "startingDate": "2024-01-10", "status": "ACTIVE", "subscriptionId": "c64ba2e5-a0b1-43e2-867a-27555c355331", "subscriptionModel": { "additionalData": {}, "amount": 100, "creationDate": "2024-01-08T12:20:23.305903+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test refapi", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "e16a35bf-ca34-48b7-9726-139c15e89fa9" } }, "requestId": "10797b88-f4ff-48f5-bc79-c417333b92d5", "objectBeforeUpdate": { "additionalData": {}, "cardId": "8750301a-f2ae-4447-8a3a-62e37675e1ca", "creationDate": "2024-01-08T12:24:12.700858+01:00", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "endUserIp": "245.100.1.15", "expectedEndingDate": "2025-01-09", "merchantSubscriptionId": "Gauthier refapi", "quantity": 1, "startingDate": "2024-01-10", "status": "ACTIVE", "subscriptionId": "c64ba2e5-a0b1-43e2-867a-27555c355331", "subscriptionModel": { "additionalData": {}, "amount": 100, "creationDate": "2024-01-08T12:20:23.305903+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test refapi", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "e16a35bf-ca34-48b7-9726-139c15e89fa9" } } } SUBSCRIPTION_CANCELEDWhen a Subscription is cancelled { "eventId": "298e5eae-4447-4981-932e-633adbb97e5f", "type": "SUBSCRIPTION_CANCELED", "creationDate": "2024-01-08T12:26:46.705238+01:00", "object": { "additionalData": {}, "cancelAtPeriodEnd": false, "cancellationDate": "2024-01-08T12:26:46.701626+01:00", "cardId": "8750301a-f2ae-4447-8a3a-62e37675e1ca", "creationDate": "2024-01-08T12:24:12.700858+01:00", "currentPeriodEnd": "2024-01-08", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "endUserIp": "245.100.1.15", "endingDate": "2024-01-08", "expectedEndingDate": "2025-01-09", "merchantSubscriptionId": "TEST001", "quantity": 1, "startingDate": "2024-01-10", "status": "CANCELED", "subscriptionId": "c64ba2e5-a0b1-43e2-867a-27555c355331", "subscriptionModel": { "additionalData": {}, "amount": 100, "creationDate": "2024-01-08T12:20:23.305903+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test refapi", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "e16a35bf-ca34-48b7-9726-139c15e89fa9" } }, "requestId": "bd8f1a27-bae3-4cfd-8471-7f6e878c6dc7" } SUBSCRIPTION_ACTIVEWhen a Subscription is active SUBSCRIPTION_FAILUREWhen a Subscription failed to be paid { "eventId": "22c7c038-2aa4-4550-9fd0-27e5395c250d", "type": "SUBSCRIPTION_FAILURE", "creationDate": "2024-01-15T11:59:55.661209+01:00", "object": { "additionalData": {}, "cardId": "0a6b2fdc-85e4-4ffa-bffa-0ae276e11aa3", "creationDate": "2024-01-15T11:59:52.983206+01:00", "currentPeriodEnd": "2024-02-14", "currentPeriodStart": "2024-01-15", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "endUserIp": "245.100.1.15", "expectedEndingDate": "2025-01-14", "lastInvoice": { "additionalData": {}, "amount": 10000, "attemptCount": 1, "closed": false, "creationDate": "2024-01-15T11:59:53.614864+01:00", "currency": "EUR", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "invoiceId": "e0909ca3-a337-43ce-9769-d65e927b3a47", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-15T11:59:53.357382+01:00", "currency": "EUR", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "invoiceId": "e0909ca3-a337-43ce-9769-d65e927b3a47", "invoiceItemId": "0c153918-5128-4ecb-8570-7c9f71a500ec", "quantity": 1, "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "totalAmount": 10000, "type": "SUBSCRIPTION" } ], "nextTransactionAttempt": "2024-01-18T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "transactions": [ "19b41977-e973-4dd9-846e-5777459196a5" ], "transfers": [], "type": "SUBSCRIPTION" }, "merchantSubscriptionId": "Test refapi gogo", "quantity": 1, "startingDate": "2024-01-15", "status": "FAILURE", "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "subscriptionModel": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-11T15:02:53.061463+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test Abo", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "7cd1b504-bed3-4435-84be-2e19f2c8e2f6" } }, "requestId": "1c35bbaf-0f37-44e1-a7e5-c3f10be0a9a4" } SUBSCRIPTION_UNPAIDWhen a Subscription is unpaid SUBSCRIPTION_REACTIVATEDWhen a Subscription is reactivated { "eventId": "536eb70e-cb79-44a6-be28-4384445583c2", "type": "SUBSCRIPTION_REACTIVATED", "creationDate": "2024-01-11T15:12:05.092897+01:00", "object": { "additionalData": {}, "cardId": "7d5f52b0-ef15-4a04-9c06-c4a9ac76f4bf", "creationDate": "2024-01-11T15:11:29.487853+01:00", "currentPeriodEnd": "2024-02-10", "currentPeriodStart": "2024-01-11", "customerId": "dc9623bd-3f3a-4d79-8ae2-0e6b3ebe367d", "endUserIp": "245.100.1.15", "lastInvoice": { "additionalData": {}, "amount": 10000, "attemptCount": 1, "closed": true, "creationDate": "2024-01-11T15:11:30.057522+01:00", "currency": "EUR", "customerId": "dc9623bd-3f3a-4d79-8ae2-0e6b3ebe367d", "invoiceId": "94185799-1ac6-4206-8df2-006043d0e2a9", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-11T15:11:29.798622+01:00", "currency": "EUR", "customerId": "dc9623bd-3f3a-4d79-8ae2-0e6b3ebe367d", "invoiceId": "94185799-1ac6-4206-8df2-006043d0e2a9", "invoiceItemId": "cd4325ca-4f61-4886-98c6-a524682ee0e2", "quantity": 1, "subscriptionId": "cb2a2422-2a4d-4818-9647-02107e69f98b", "totalAmount": 10000, "type": "SUBSCRIPTION" } ], "paid": true, "sddTransactions": [], "subscriptionId": "cb2a2422-2a4d-4818-9647-02107e69f98b", "transactions": [ "3f462466-4a71-480c-b062-e2023ee99b17" ], "transfers": [], "type": "SUBSCRIPTION" }, "merchantSubscriptionId": "Test refapi gogo", "quantity": 1, "startingDate": "2024-01-11", "status": "ACTIVE", "subscriptionId": "cb2a2422-2a4d-4818-9647-02107e69f98b", "subscriptionModel": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-11T15:02:53.061463+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test Abo", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "7cd1b504-bed3-4435-84be-2e19f2c8e2f6" } }, "requestId": "69ac4f1d-059b-4065-adc2-90f0eb6a98ab" } INVOICEITEM_CREATEDWhen an invoice item is created { "eventId": "6167d379-fb95-4425-8e9b-af74f4235bfc", "type": "INVOICEITEM_CREATED", "creationDate": "2024-01-08T12:30:46.157764+01:00", "object": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:30:46.131739+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceItemId": "c911bfdd-3686-4e5b-8abf-d3c44fa369a3", "quantity": 3, "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "totalAmount": 30000, "type": "MANUAL" }, "requestId": "d7cd40bd-88de-4956-9c42-baf5a0549f1b" } INVOICEITEM_UPDATEDWhen an invoice item is updated { "eventId": "353dd2fd-934e-4a20-9f12-b47bf213a35c", "type": "INVOICEITEM_UPDATED", "creationDate": "2024-01-15T10:59:30.750004+01:00", "object": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:44:49.815091+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "invoiceItemId": "292c516b-e320-4391-995a-b4a1205e0e47", "quantity": 2, "subscriptionId": "5b217597-213f-4bf3-b94b-6749e499cf98", "totalAmount": 20000, "type": "MANUAL" }, "requestId": "9678a75a-aa0c-4023-8d2a-56b56dfeae87", "objectBeforeUpdate": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:44:49.815091+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "invoiceItemId": "292c516b-e320-4391-995a-b4a1205e0e47", "quantity": 3, "subscriptionId": "5b217597-213f-4bf3-b94b-6749e499cf98", "totalAmount": 30000, "type": "MANUAL" } } INVOICEITEM_DELETEDWhen an invoice item is deleted { "eventId": "ae992cbd-d82f-495a-b7b7-4627dc9806e8", "type": "INVOICEITEM_DELETED", "creationDate": "2024-01-15T11:00:04.748878+01:00", "object": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:44:49.815091+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "invoiceItemId": "292c516b-e320-4391-995a-b4a1205e0e47", "quantity": 2, "subscriptionId": "5b217597-213f-4bf3-b94b-6749e499cf98", "totalAmount": 20000, "type": "MANUAL" }, "requestId": "fe0e462f-81d9-4640-abbd-ce6c914432b6" } INVOICE_CREATEDWhen an invoice is created { "eventId": "59df2504-3ab7-46c3-8469-0957d579b014", "type": "INVOICE_CREATED", "creationDate": "2024-01-08T12:31:18.271671+01:00", "object": { "additionalData": {}, "amount": 30000, "attemptCount": 0, "closed": false, "creationDate": "2024-01-08T12:31:18.264645+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:30:46.131739+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItemId": "c911bfdd-3686-4e5b-8abf-d3c44fa369a3", "quantity": 3, "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "totalAmount": 30000, "type": "MANUAL" } ], "nextTransactionAttempt": "2024-01-09T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "transactions": [], "transfers": [], "type": "MANUAL" }, "requestId": "1b51631e-d6d7-4632-bc8f-c67bd6f52729" } INVOICE_UPDATEDWhen an invoice is updated { { "eventId": "3c63e5da-1bce-4c5c-9dfc-1a206fda69a7", "type": "INVOICE_UPDATED", "creationDate": "2024-01-08T12:31:25.469957+01:00", "object": { "additionalData": {}, "amount": 30000, "attemptCount": 0, "closed": false, "creationDate": "2024-01-08T12:31:18.264645+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "description": "ma description", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:30:46.131739+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItemId": "c911bfdd-3686-4e5b-8abf-d3c44fa369a3", "quantity": 3, "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "totalAmount": 30000, "type": "MANUAL" } ], "nextTransactionAttempt": "2024-01-09T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "transactions": [], "transfers": [], "type": "MANUAL" }, "requestId": "176cf4e9-4669-473c-a9cb-f102fd6aa2ab", "objectBeforeUpdate": { "additionalData": {}, "amount": 30000, "attemptCount": 0, "closed": false, "creationDate": "2024-01-08T12:31:18.264645+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:30:46.131739+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItemId": "c911bfdd-3686-4e5b-8abf-d3c44fa369a3", "quantity": 3, "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "totalAmount": 30000, "type": "MANUAL" } ], "nextTransactionAttempt": "2024-01-09T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "transactions": [], "transfers": [], "type": "MANUAL" } } } INVOICE_CLOSEDWhen an invoice is closed { "eventId": "32cc898a-112f-43fd-921e-be8613d85b73", "type": "INVOICE_CLOSED", "creationDate": "2024-01-08T12:31:33.554755+01:00", "object": { "additionalData": {}, "amount": 30000, "attemptCount": 0, "closed": true, "creationDate": "2024-01-08T12:31:18.264645+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "description": "ma description", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:30:46.131739+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItemId": "c911bfdd-3686-4e5b-8abf-d3c44fa369a3", "quantity": 3, "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "totalAmount": 30000, "type": "MANUAL" } ], "nextTransactionAttempt": "2024-01-09T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "transactions": [], "transfers": [], "type": "MANUAL" }, "requestId": "36e1f1c0-b08b-41e1-a35b-bc0942b084f7" } INVOICE_REOPENWhen an invoice is reopen { "eventId": "c3e22524-8677-447f-9c70-caee15bdb31a", "type": "INVOICE_REOPEN", "creationDate": "2024-01-08T12:31:38.069325+01:00", "object": { "additionalData": {}, "amount": 30000, "attemptCount": 0, "closed": false, "creationDate": "2024-01-08T12:31:18.264645+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "description": "ma description", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:30:46.131739+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItemId": "c911bfdd-3686-4e5b-8abf-d3c44fa369a3", "quantity": 3, "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "totalAmount": 30000, "type": "MANUAL" } ], "nextTransactionAttempt": "2024-01-09T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "transactions": [], "transfers": [], "type": "MANUAL" }, "requestId": "7ef43ab1-2249-43b2-834e-dcad31d609a5" } INVOICE_TRANSACTION_SUCCEEDEDWhen an invoice transaction succeeded { "eventId": "58b1922a-a959-43c3-aeea-784f6970586c", "type": "INVOICE_TRANSACTION_SUCCEEDED", "creationDate": "2024-01-08T12:31:48.444350+01:00", "object": { "additionalData": {}, "amount": 30000, "attemptCount": 0, "closed": true, "creationDate": "2024-01-08T12:31:18.264645+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "description": "ma description", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:30:46.131739+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItemId": "c911bfdd-3686-4e5b-8abf-d3c44fa369a3", "quantity": 3, "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "totalAmount": 30000, "type": "MANUAL" } ], "paid": true, "sddTransactions": [], "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "transactions": [ "67cfc05b-d06c-4f2b-8aec-2033e0c61478" ], "transfers": [], "type": "MANUAL" }, "requestId": "01fb7049-bd27-4ec0-846d-605c352bd2f9" } INVOICE_TRANSACTION_FAILEDWhen an invoice transaction failed { "eventId": "23ef2df3-0e6d-4397-b877-aba2acea2ed1", "type": "INVOICE_TRANSACTION_FAILED", "creationDate": "2024-01-15T11:59:55.647989+01:00", "object": { "additionalData": {}, "amount": 10000, "attemptCount": 1, "closed": false, "creationDate": "2024-01-15T11:59:53.614864+01:00", "currency": "EUR", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "invoiceId": "e0909ca3-a337-43ce-9769-d65e927b3a47", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-15T11:59:53.357382+01:00", "currency": "EUR", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "invoiceId": "e0909ca3-a337-43ce-9769-d65e927b3a47", "invoiceItemId": "0c153918-5128-4ecb-8570-7c9f71a500ec", "quantity": 1, "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "totalAmount": 10000, "type": "SUBSCRIPTION" } ], "nextTransactionAttempt": "2024-01-18T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "transactions": [ "19b41977-e973-4dd9-846e-5777459196a5" ], "transfers": [], "type": "SUBSCRIPTION" }, "requestId": "1c35bbaf-0f37-44e1-a7e5-c3f10be0a9a4" } The TRANSACTION object TRANSACTION_SUCCEEDEDWhen a transaction has been approved by the issuing bank { "eventId": "4774dddc-7163-40f9-a6e0-72cd52abad19", "type": "TRANSACTION_SUCCEEDED", "creationDate": "2024-01-05T14:43:21.487036+01:00", "object": { "additionalData": {}, "amount": 3600000, "amountCaptured": 3600000, "amountRefunded": 0, "archivingReference": "5MS7NOWFGWSR", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "0ee6bd7e-3e74-454d-a62b-120db043714d", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "browserAcceptLanguage": "en_US", "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36", "captureDate": "2024-01-05T14:43:21.355125+01:00", "captureStatus": "CAPTURED", "card": { "additionalData": {}, "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2", "cardType": "DEBIT", "cardholderEmail": "test@gmail.com", "cardholderName": "MARIE ANNE", "check": true, "commercialBrand": "MASTERCARD", "country": "FRA", "creationDate": "2024-01-05T12:52:41.054394+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f", "first6": "532509", "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5", "last4": "0008", "productType": "CORPORATE", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "country": "FRA", "creationDate": "2024-01-05T14:43:19.909652+01:00", "currency": "EUR", "customAcceptanceData": {}, "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "endUserIp": "245.100.1.15", "endUserLanguage": "fre", "fee": 0, "merchantCategoryCode": "1711", "movementId": "899287b0-a0a5-413c-8be8-bc3d794ba96a", "order": { "cardholderEmail": "GDU-Solon40@gmail.com", "country": "FRA" }, "partialAuthorization": false, "partialAuthorized": false, "payoutAmount": 3600000, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "GDU-Clemens7@yahoo.com", "refunded": false, "refunds": [], "residualAmount": 0, "source": "EC", "threeDSecure": false, "totalAmount": 3600000, "transactionId": "aa42bd28-5a34-47e4-87b0-3d25375be798", "transactionStatus": "SUCCESS", "transactiontransfers": [], "withCvv": true }, "requestId": "3d82de99-2346-4eef-a30b-68e7efe5acd1" } TRANSACTION_CANCELEDWhen a transaction is cancelled { "eventId": "2ed7535a-8d07-4502-aea8-d755c5584962", "type": "TRANSACTION_CANCELED", "creationDate": "2024-01-11T14:51:53.615072+01:00", "object": { "additionalData": { "key1": "value1", "key2": "value2" }, "amount": 10, "amountCaptured": 10, "amountRefunded": 0, "archivingReference": "TSMEGRM4XQSN", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "82dbefb7-2a49-4cf9-a10a-953e0fefd89b", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "cancelMovementId": "36238731-363a-4f30-913e-7a9b9defdd33", "captureCancellationDate": "2024-01-11T14:51:53.583865+01:00", "captureDate": "2024-01-11T14:50:33.400938+01:00", "captureStatus": "CANCELED", "card": { "additionalData": {}, "cardId": "0f72740b-3a97-436b-aa78-9ac30308d404", "cardType": "DEBIT", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-11T14:50:31.216307+01:00", "europeanEconomicArea": true, "expirationMonth": 12, "expirationYear": 2026, "fingerprint": "31e7053d8ee3f13b4f391c989d83aaaa7771450d", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-11T14:50:32.194359+01:00", "currency": "EUR", "customAcceptanceData": {}, "endUserIp": "245.100.1.15", "fee": 0, "merchantCategoryCode": "1711", "movementId": "36d934c8-de2f-43df-be49-a4f058c6c0ba", "order": { "addressLine1": "ADRESSE", "cardCountry": "FRA", "city": "PARIS", "country": "FRA", "firstName": "MANDATORY", "lastName": "MANDATORY" }, "partialAuthorization": false, "partialAuthorized": false, "payoutAmount": 10, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "refunded": false, "refunds": [], "residualAmount": 0, "source": "EC", "threeDSecure": false, "totalAmount": 10, "transactionId": "2fbdd1ad-99e1-4fb6-a5f9-06239d7ef1a1", "transactionStatus": "SUCCESS", "transactiontransfers": [ { "amount": 1, "destinationWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "escrowDate": "2024-01-15", "fee": 0, "merchantTransferId": "MRI_CODE" } ], "withCvv": true }, "requestId": "2631c3f5-65cb-441f-9cb7-14dcf2c8d128" } TRANSACTION_CAPTUREDWhen a transaction is sent to the clearing and will be debited { "eventId": "ecd3fead-ccb1-44e4-b41b-5806b78dc5a5", "type": "TRANSACTION_CAPTURED", "creationDate": "2024-01-05T14:43:21.513924+01:00", "object": { "additionalData": {}, "amount": 3600000, "amountCaptured": 3600000, "amountRefunded": 0, "archivingReference": "5MS7NOWFGWSR", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "0ee6bd7e-3e74-454d-a62b-120db043714d", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "browserAcceptLanguage": "en_US", "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36", "captureDate": "2024-01-05T14:43:21.355125+01:00", "captureStatus": "CAPTURED", "card": { "additionalData": {}, "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2", "cardType": "DEBIT", "cardholderEmail": "test@gmail.com", "cardholderName": "MARIE ANNE", "check": true, "commercialBrand": "MASTERCARD", "country": "FRA", "creationDate": "2024-01-05T12:52:41.054394+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f", "first6": "532509", "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5", "last4": "0008", "productType": "CORPORATE", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "country": "FRA", "creationDate": "2024-01-05T14:43:19.909652+01:00", "currency": "EUR", "customAcceptanceData": {}, "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "endUserIp": "245.100.1.15", "endUserLanguage": "fre", "fee": 0, "merchantCategoryCode": "1711", "movementId": "899287b0-a0a5-413c-8be8-bc3d794ba96a", "order": { "cardholderEmail": "GDU-Solon40@gmail.com", "country": "FRA" }, "partialAuthorization": false, "partialAuthorized": false, "payoutAmount": 3600000, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "GDU-Clemens7@yahoo.com", "refunded": false, "refunds": [], "residualAmount": 0, "source": "EC", "threeDSecure": false, "totalAmount": 3600000, "transactionId": "aa42bd28-5a34-47e4-87b0-3d25375be798", "transactionStatus": "SUCCESS", "transactiontransfers": [], "withCvv": true }, "requestId": "3d82de99-2346-4eef-a30b-68e7efe5acd1" } TRANSACTION_EXPIREDWhen a transaction is expired { "eventId": "9a93ea00-42cc-4555-ad29-24daa2ec5fbe", "type": "TRANSACTION_EXPIRED", "creationDate": "2024-02-01T00:30:07.148454+01:00", "object": { "transactionId": "87b40109-0de5-454d-acf4-dfa51f23d15b", "creationDate": "2024-01-30T14:20:47.062768+01:00", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "contractId": "a674d481-4805-4a66-915a-67956efca36f", "merchantTransactionId": null, "archivingReference": "YB6J5BGOC4TF", "transactionStatus": "SUCCESS", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "authorizationCode": "000000", "riskScore": null, "source": "EC", "description": null, "currency": "EUR", "payoutCurrency": "EUR", "payoutAmount": null, "commission": null, "fee": 0, "amount": 36000, "partialAuthorization": false, "partialAuthorized": false, "partialAuthorizedAmount": null, "totalAmount": 36000, "card": { "cardId": "4970cff8-a3eb-4b7a-9f8e-6a4156c08cec", "creationDate": "2024-01-30T14:20:45.679621+01:00", "customerId": null, "cardTokenId": null, "infoId": null, "merchantCardId": null, "commercialBrand": "VISA", "first6": "403203", "last4": "3001", "expirationMonth": 12, "expirationYear": 2025, "country": "FRA", "cardholderName": null, "cardholderEmail": null, "description": null, "fingerprint": "a90fedc230c187acb2e4d6b8a3e3237044931beb", "cardType": "UNKNOWN", "region": "EUROPE", "productType": "UNKNOWN", "europeanEconomicArea": true, "check": false, "additionalData": {} }, "cardMerchantToken": null, "captureStatus": "EXPIRED", "amountCaptured": 0, "refunded": true, "amountRefunded": 0, "refunds": [], "endUserIp": "8.8.8.8", "endUserLanguage": "fre", "browserUserAgent": null, "browserAcceptLanguage": null, "country": null, "receiptEmail": null, "transactiontransfers": [], "transferGroup": null, "residualAmount": null, "order": { "firstName": null, "lastName": null, "addressLine1": null, "addressLine2": null, "addressLine3": null, "addressLine4": null, "postalCode": null, "city": null, "country": null, "email": null, "phone": null, "cardCountry": "FRA", "cardholderName": null, "cardholderEmail": null }, "dispute": null, "cardPresent": { "cardSequenceNumber": null, "cardEntryMode": null, "pinEntryCapability": null, "transactionSequenceCounter": null, "uniqueTerminalId": null, "cardholderSignatureImage": null, "gpsLatitude": null, "gpsLongitude": null, "cardholderPhoto": null, "cardAcceptorTerminalId": null, "offlinePinIndicator": null, "ucatTerminalIndicator": null, "iccData": null, "iccDataResponse": null }, "clearingNumber": null, "merchantCategoryCode": "1711", "withCvv": true, "arn": "123456", "authorizationCancellationDate": null, "customerId": null, "captureDate": null, "clearingDate": null, "captureCancellationDate": null, "enrollmentId": null, "movementId": null, "authorizationMovementId": "258d16f5-3f5f-401d-8f5b-c9ff9d00f28d", "cancelMovementId": null, "paymentRequestBreakdownId": null, "paymentRequestId": null, "invoiceId": null, "installmentId": null, "customAcceptanceData": {}, "additionalData": { "key1": "value1", "key2": "value2" }, "3ds": false }, "requestId": "fcf800bb-1748-4d23-9ce7-121c5f14a51b" } TRANSACTION_UPDATEDWhen a transaction is updated { "eventId": "eaf9366e-cd66-4ab9-ad23-09ed2ec5972d", "type": "TRANSACTION_UPDATED", "creationDate": "2024-01-11T14:54:35.830032+01:00", "object": { "additionalData": { "key1": "value1", "key2": "value2" }, "amount": 10, "amountCaptured": 10, "amountRefunded": 0, "archivingReference": "FLS2TYH3HJ5G", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "02e0e9ec-77f6-4a75-9732-57a0d0844354", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "captureDate": "2024-01-11T14:53:18.688598+01:00", "captureStatus": "CAPTURED", "card": { "additionalData": {}, "cardId": "180c71b5-9384-4ea5-9452-b190d4afc542", "cardType": "DEBIT", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-11T14:53:17.634328+01:00", "europeanEconomicArea": true, "expirationMonth": 1, "expirationYear": 2024, "fingerprint": "9e6b6fc8e48c4ee716efb06762e726c0108e5e8d", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-11T14:53:17.576925+01:00", "currency": "EUR", "customAcceptanceData": {}, "endUserIp": "245.100.1.15", "fee": 0, "merchantCategoryCode": "1711", "movementId": "3dbd2c18-1110-496b-9cd2-1e7b7568fc00", "order": { "cardCountry": "FRA", "firstName": "MANDATORY", "lastName": "MANDATORY" }, "partialAuthorization": false, "partialAuthorized": false, "payoutAmount": 10, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "test@gmail.com", "refunded": false, "refunds": [], "residualAmount": 0, "source": "EC", "threeDSecure": false, "totalAmount": 10, "transactionId": "8d08a5b1-413e-46d8-8e8e-6da8c0d5025b", "transactionStatus": "SUCCESS", "transactiontransfers": [ { "amount": 1, "destinationWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "escrowDate": "2024-01-13", "fee": 0 } ], "withCvv": true }, "requestId": "6b85d1b7-853a-420e-a500-62aac18840c1", "objectBeforeUpdate": { "additionalData": { "key1": "value1", "key2": "value2" }, "amount": 10, "amountCaptured": 10, "amountRefunded": 0, "archivingReference": "FLS2TYH3HJ5G", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "02e0e9ec-77f6-4a75-9732-57a0d0844354", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "captureDate": "2024-01-11T14:53:18.688598+01:00", "captureStatus": "CAPTURED", "card": { "additionalData": {}, "cardId": "180c71b5-9384-4ea5-9452-b190d4afc542", "cardType": "DEBIT", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-11T14:53:17.634328+01:00", "europeanEconomicArea": true, "expirationMonth": 1, "expirationYear": 2024, "fingerprint": "9e6b6fc8e48c4ee716efb06762e726c0108e5e8d", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-11T14:53:17.576925+01:00", "currency": "EUR", "customAcceptanceData": {}, "endUserIp": "245.100.1.15", "fee": 0, "merchantCategoryCode": "1711", "movementId": "3dbd2c18-1110-496b-9cd2-1e7b7568fc00", "order": { "cardCountry": "FRA", "firstName": "MANDATORY", "lastName": "MANDATORY" }, "partialAuthorization": false, "partialAuthorized": false, "payoutAmount": 10, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "refunded": false, "refunds": [], "residualAmount": 0, "source": "EC", "threeDSecure": false, "totalAmount": 10, "transactionId": "8d08a5b1-413e-46d8-8e8e-6da8c0d5025b", "transactionStatus": "SUCCESS", "transactiontransfers": [ { "amount": 1, "destinationWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "escrowDate": "2024-01-13", "fee": 0 } ], "withCvv": true } } TRANSACTION_DISPUTEDWhen a transaction is turned to a chargeback { "eventId": "36e7853b-eecf-43d2-99ec-80aa5b26b46f", "type": "TRANSACTION_DISPUTED", "creationDate": "2024-01-05T15:16:28.316447+01:00", "object": { "additionalData": {}, "amount": 36000, "amountCaptured": 36000, "amountRefunded": 0, "archivingReference": "AULQKEG8VFZV", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "a7caf3b3-4d60-412e-9536-8b31e7fa2b99", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "browserAcceptLanguage": "en_US", "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36", "captureDate": "2024-01-04T15:04:14.560777+01:00", "captureStatus": "CLEARED", "card": { "additionalData": {}, "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2", "cardType": "DEBIT", "cardholderEmail": "test@gmail.com", "cardholderName": "MARIE ANNE", "check": true, "commercialBrand": "MASTERCARD", "country": "FRA", "creationDate": "2024-01-05T12:52:41.054394+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f", "first6": "532509", "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5", "last4": "0008", "productType": "CORPORATE", "region": "EUROPE" }, "cardPresent": {}, "clearingDate": "2024-01-05", "clearingNumber": "008194", "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "country": "FRA", "creationDate": "2024-01-05T15:04:13.275733+01:00", "currency": "EUR", "customAcceptanceData": {}, "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "dispute": { "additionalData": {}, "amount": 10, "creationDate": "2024-01-05T15:16:27.776882+01:00", "currency": "EUR", "disputeDate": "2021-03-18", "disputeId": "896304e9-b937-443a-ba59-3ccc99931b00", "fee": 0, "movementId": "09e2b390-a5a6-4926-a5ad-41c96bd38cea", "reason": "FRAUDULENT", "status": "CHARGEBACK_NOTICED", "transactionId": "8940d775-cb9c-46e4-ab5a-c5c3ea7c3116" }, "endUserIp": "245.100.1.15", "endUserLanguage": "fre", "fee": 0, "merchantCategoryCode": "1711", "movementId": "15560735-1636-4a01-9a15-89eab54ef9e1", "order": { "cardholderEmail": "GDU-Dasia77@hotmail.com", "country": "FRA" }, "partialAuthorization": false, "partialAuthorized": false, "payoutAmount": 36000, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "GDU-Benton_Hamill8@gmail.com", "refunded": false, "refunds": [], "residualAmount": 0, "source": "EC", "threeDSecure": false, "totalAmount": 36000, "transactionId": "8940d775-cb9c-46e4-ab5a-c5c3ea7c3116", "transactionStatus": "SUCCESS", "transactiontransfers": [], "withCvv": false }, "requestId": "29ae33a7-bcd3-405f-ab21-485729b980aa" } TRANSACTION_FAILEDWhen a transaction has been declined by the issuing bank { "eventId": "0eeacc49-8957-4910-925f-d633505f23b0", "type": "TRANSACTION_FAILED", "creationDate": "2024-01-05T14:46:59.392077+01:00", "object": { "additionalData": {}, "amount": 3600000, "amountCaptured": 0, "amountRefunded": 0, "archivingReference": "9GUGCIZEU0VN", "authorizationMovementId": "7ed9258a-ee75-4705-90f3-678973d2402e", "authorizationStatus": "FAILURE", "bankCode": "51", "bankMessage": "Simulation : Insufficient Funds", "browserAcceptLanguage": "en_US", "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36", "captureStatus": "UNCAPTURED", "card": { "additionalData": {}, "cardId": "30e49b6e-ed07-4b43-8862-2abd2f181678", "cardType": "DEBIT", "cardholderEmail": "gduhamel@centralpay.eu", "check": true, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-05T14:46:39.151564+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "7032968c1a882c155b3d8014297daabaa7133680", "first6": "400000", "infoId": "90eaf823-e2e7-4757-845a-b966bbab03c6", "last4": "0077", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "country": "FRA", "creationDate": "2024-01-05T14:46:58.190985+01:00", "currency": "EUR", "customAcceptanceData": {}, "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "endUserIp": "245.100.1.15", "endUserLanguage": "fre", "fee": 0, "merchantCategoryCode": "1711", "order": { "cardholderEmail": "GDU-Yvette5@hotmail.com", "country": "FRA" }, "partialAuthorization": false, "partialAuthorized": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "GDU-Buck_Gislason@hotmail.com", "refunded": false, "refunds": [], "source": "EC", "threeDSecure": false, "totalAmount": 3600000, "transactionId": "d530cdbe-b9fc-481b-b99d-8ce0db75deb4", "transactionStatus": "FAILURE", "transactiontransfers": [], "withCvv": true }, "requestId": "c120a3c0-764a-4c7e-a705-4721784212c7" } TRANSACTION_FRAUDULENTWhen a transaction is refused because it has meet a blacklist element (Email, IP, Card, …) { "eventId": "d489a6be-9b6d-43fa-86e3-c5d26437aac3", "type": "TRANSACTION_FRAUDULENT", "creationDate": "2024-01-05T16:34:30.947564+01:00", "object": { "additionalData": {}, "amount": 500, "amountCaptured": 0, "amountRefunded": 0, "authorizationStatus": "FRAUD", "bankMessage": "PAN in BLACKLIST [532509xxx0008]", "captureStatus": "UNCAPTURED", "card": { "additionalData": {}, "cardId": "4680d102-96b0-4fba-b00c-3375ee610fc7", "cardType": "DEBIT", "cardholderEmail": "gduhamel@centralpay.eu", "check": true, "commercialBrand": "MASTERCARD", "country": "FRA", "creationDate": "2024-01-05T16:33:13.699153+01:00", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f", "first6": "532509", "infoId": "dabeaee8-1f45-438e-b9c7-37bbce92315e", "last4": "0008", "productType": "CORPORATE", "region": "EUROPE" }, "cardPresent": {}, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T16:34:30.385545+01:00", "currency": "EUR", "customAcceptanceData": {}, "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "endUserIp": "245.100.1.15", "merchantTransactionId": "MIP_001", "order": { "cardCountry": "FRA", "cardholderEmail": "gduhamel@centralpay.eu", "email": "gduhamel@centralpay.eu", "firstName": "CECELIA", "lastName": "EBERT" }, "partialAuthorization": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "gduhamel@centralpay.eu", "refunded": false, "refunds": [], "source": "EC", "threeDSecure": false, "totalAmount": 500, "transactionId": "f061fa00-8494-4eca-b9d1-f54d36125d7d", "transactionStatus": "FRAUD", "transactiontransfers": [], "withCvv": true }, "requestId": "47c8329d-b686-4dc0-ad21-941e4ec2945d" } TRANSACTION_NOT_ACCEPTEDWhen a transaction is refused because entering an acceptance rule TRANSACTION_REFUNDEDWhen a transaction has been refunded to the card holder { "eventId": "21f8a3b1-1fab-4071-9f75-ef36d10a6572", "type": "TRANSACTION_REFUNDED", "creationDate": "2024-01-10T09:35:28.762354+01:00", "object": { "additionalData": {}, "amount": 36000, "amountCaptured": 36000, "amountRefunded": 36000, "archivingReference": "YNADK4W3G2EK", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "679d6b91-bba5-43fa-a444-b3aa7fb2ad2f", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "browserAcceptLanguage": "en_US", "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36", "captureDate": "2024-01-04T15:04:11.419479+01:00", "captureStatus": "CLEARED", "card": { "additionalData": {}, "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2", "cardType": "DEBIT", "cardholderEmail": "test@gmail.com", "cardholderName": "MARIE ANNE", "check": true, "commercialBrand": "MASTERCARD", "country": "FRA", "creationDate": "2024-01-05T12:52:41.054394+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f", "first6": "532509", "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5", "last4": "0008", "productType": "CORPORATE", "region": "EUROPE" }, "cardPresent": {}, "clearingDate": "2024-01-05", "clearingNumber": "008194", "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "country": "FRA", "creationDate": "2024-01-05T15:04:10.135397+01:00", "currency": "EUR", "customAcceptanceData": {}, "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "endUserIp": "245.100.1.15", "endUserLanguage": "fre", "fee": 0, "merchantCategoryCode": "1711", "movementId": "656895c7-e7a2-4b7d-8920-0bb78ea45f3a", "order": { "cardholderEmail": "GDU-Martina_Ondricka@hotmail.com", "country": "FRA" }, "partialAuthorization": false, "partialAuthorized": false, "payoutAmount": 36000, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "GDU-Justyn98@gmail.com", "refunded": true, "refunds": [ { "additionalData": {}, "amount": 36000, "commission": 0, "creationDate": "2024-01-10T09:35:28.448559+01:00", "currency": "EUR", "description": "GDU-testapi", "fee": 0, "movementId": "c42ea27a-6d74-4c4b-b170-e17762916c79", "payoutAmount": 36000, "payoutCurrency": "EUR", "refundId": "9bf06654-c023-4481-8e6a-138bb5f13777", "status": "UNCLEARED", "transactionId": "2a06bfae-51f5-4dd7-945b-47631c16cb9c" } ], "residualAmount": 0, "source": "EC", "threeDSecure": false, "totalAmount": 36000, "transactionId": "2a06bfae-51f5-4dd7-945b-47631c16cb9c", "transactionStatus": "SUCCESS", "transactiontransfers": [], "withCvv": false }, "requestId": "794c20b2-4a0c-4d9d-a580-af5544c11120" } TRANSACTION_RISKYWhen a transaction is refused because of its risk score exceed the limit TRANSACTION_THREEDS_AUTH_FAILEDWhen a transaction is declined because the card holder failed to authenticate himself during the 3DS process The TRANSFER REVERSAL object TRANSFERREVERSAL_SUCCEEDEDWhen a transfer reversal succeeded { "eventId": "9bd04039-7b33-4553-af86-64a6e925eef9", "type": "TRANSFERREVERSAL_SUCCEEDED", "creationDate": "2024-01-16T11:11:40.720817+01:00", "object": { "additionalData": {}, "amount": 140, "creationDate": "2024-01-16T11:11:40.611318+01:00", "currency": "EUR", "description": "Test", "fee": 0, "merchantTransferReversalId": "test", "movementId": "e34b6833-7b32-4fde-993a-b904f8f3aeae", "net": 140, "refundFee": true, "status": "TRANSFERRED", "transferId": "e3a45ca4-49a9-4681-bc06-be9ab6dd7d79", "transferReversalId": "bb47ad7b-4112-4ad5-abf3-489d5878d6fd" }, "requestId": "7e593b04-58c3-4e0d-b3c6-ec2a6887164e" } } TRANSFERREVERSAL_UPDATEDWhen a transfer reversal is updated { "eventId": "8317512a-d7d2-4d6d-a61a-644afb7537fb", "type": "TRANSFERREVERSAL_UPDATED", "creationDate": "2024-01-16T11:18:00.682451+01:00", "object": { "additionalData": {}, "amount": 140, "creationDate": "2024-01-16T11:11:40.611318+01:00", "currency": "EUR", "description": "Addeddata", "fee": 0, "merchantTransferReversalId": "test", "movementId": "e34b6833-7b32-4fde-993a-b904f8f3aeae", "net": 140, "refundFee": true, "status": "TRANSFERRED", "transferId": "e3a45ca4-49a9-4681-bc06-be9ab6dd7d79", "transferReversalId": "bb47ad7b-4112-4ad5-abf3-489d5878d6fd" }, "requestId": "3509acf1-39c9-45e5-b1b6-d58ee6639b8d" } The TRANSFER object TRANSFER_SUCCEEDEDWhen a transfer succeeded { { "eventId": "a1147178-8197-46d7-ba6d-433f71a1b7f5", "type": "TRANSFER_SUCCEEDED", "creationDate": "2024-01-08T14:33:25.439719+01:00", "object": { "additionalData": {}, "amount": 140, "creationDate": "2024-01-08T14:33:25.050153+01:00", "currency": "EUR", "description": "Vente de XxX", "destinationWalletId": "ccf841d8-b066-4e96-adc7-fa6414cfe598", "emissionWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "exchangedAmount": 140, "exchangedFee": 0, "exchangedNet": 140, "fee": 0, "merchantTransferId": "IDENTIFIANT_MRI", "movementId": "20452a9f-6055-462c-8da5-f351cc0a1437", "net": 140, "rate": 1, "reversed": false, "status": "TRANSFERRED", "toCurrency": "GTH", "transferId": "c8d751cc-da30-4dbe-9e57-acf7731bb3f5", "transferReversals": [] }, "requestId": "6d21911b-40bb-4259-aef9-39c616d60aa4" } } TRANSFER_UPDATEDWhen a transfer is updated { { "eventId": "356e4dff-4146-47d5-9db9-3226585cafc1", "type": "TRANSFER_UPDATED", "creationDate": "2024-01-08T14:38:40.555843+01:00", "object": { "additionalData": { "Key1": "val2" }, "amount": 140, "creationDate": "2024-01-08T14:33:25.050153+01:00", "currency": "EUR", "description": "transfer1", "destinationWalletId": "ccf841d8-b066-4e96-adc7-fa6414cfe598", "emissionWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "exchangedAmount": 140, "exchangedFee": 0, "exchangedNet": 140, "fee": 0, "merchantTransferId": "TEST_002", "movementId": "20452a9f-6055-462c-8da5-f351cc0a1437", "net": 140, "rate": 1, "reversed": false, "status": "TRANSFERRED", "toCurrency": "GTH", "transferGroup": "TransferGroup_0002", "transferId": "c8d751cc-da30-4dbe-9e57-acf7731bb3f5", "transferReversals": [] }, "requestId": "e7b6b976-a0ae-45dc-a018-f6c651a7f559", "objectBeforeUpdate": { "additionalData": {}, "amount": 140, "creationDate": "2024-01-08T14:33:25.050153+01:00", "currency": "EUR", "description": "Vente de XxX", "destinationWalletId": "ccf841d8-b066-4e96-adc7-fa6414cfe598", "emissionWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "exchangedAmount": 140, "exchangedFee": 0, "exchangedNet": 140, "fee": 0, "merchantTransferId": "IDENTIFIANT_MRI", "movementId": "20452a9f-6055-462c-8da5-f351cc0a1437", "net": 140, "rate": 1, "reversed": false, "status": "TRANSFERRED", "toCurrency": "GTH", "transferId": "c8d751cc-da30-4dbe-9e57-acf7731bb3f5", "transferReversals": [] } } } TRANSFER_CANCELEDWhen a transfer is cancelled { "eventId": "d1a35d33-87b7-4672-8e49-495cd117f45b", "type": "TRANSFER_CANCELED", "creationDate": "2024-01-16T11:34:40.698751+01:00", "object": { "additionalData": {}, "amount": 140, "cancelMovementId": "e66acfa2-60c4-4eec-8bfe-f1571318a667", "cancellationDate": "2024-01-16T11:34:40.691168+01:00", "creationDate": "2024-01-16T11:34:05.280812+01:00", "currency": "EUR", "description": "Vente de XxX", "destinationWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "emissionWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "escrowDate": "2035-12-23", "exchangedAmount": 140, "exchangedFee": 0, "exchangedNet": 140, "fee": 0, "merchantTransferId": "IDENTIFIANT_GDU", "movementId": "98c79326-53e5-4b71-8ef6-4b1344c428a4", "net": 140, "rate": 1, "reversed": false, "status": "CANCEL", "toCurrency": "EUR", "transferId": "fd4aa0f5-69d5-4b79-b6df-c99dab33d9ee", "transferReversals": [] }, "requestId": "35b87d6e-41dd-4a5e-b1a2-5347b6fa1eba" } The WIRETRANSFER object (Deprecated) WIRETRANSFER_CREATEDWhen a wire transfer is created WIRETRANSFER_UPDATEDWhen a wire transfer is updated WIRETRANSFER_RECEIVEDWhen a wire transfer is received WIRETRANSFER_CANCELEDWhen a wire transfer is cancelled Object status MERCHANT-ENROLLMENT status This page lists the possible values returned by the status field in the EnrollmentWorkflow object. These statuses indicate the current state of a merchant onboarding process initiated through CentralPay’s API or user portal. 📌 Status List StatusDescriptionAPI_CALLThe enrollment was initiated via API. The workflow has been created but no validation has occurred yet.VALIDATIONThe onboarding request is currently under validation (e.g., verifying provided data and uploaded documents).ON_GOINGThe process is ongoing. The merchant is expected to provide more information or complete additional steps.OVERRIDECentralPay has overridden a previous decision and resumed processing the enrollment.REFUSEDThe enrollment request has been refused. CentralPay may have detected a regulatory issue, risk, or missing eligibility requirement.ACCEPTEDThe merchant enrollment is complete and validated. The merchant can now use their CentralPay account. 🔁 Status Flow Overview ✅ Standard Status Flow API_CALL → VALIDATION → ON_GOING → ACCEPTED This is the default progression for a successful enrollment: API_CALL – The enrollment has been created via API. No validation has started yet. VALIDATION – CentralPay is verifying the submitted information and documents. ON_GOING – The merchant is expected to provide additional data or complete onboarding steps. ACCEPTED – The enrollment has been approved. The merchant can now use their CentralPay account. ❌ Alternative Flow – Rejection API_CALL → VALIDATION → REFUSED or API_CALL → VALIDATION → ON_GOING → REFUSED The enrollment is rejected during the process, either early on or after attempted completion. Common reasons include: Invalid or non-compliant documents Ineligible merchant activity Excessive financial or regulatory risk 🔁 Manual Override After Refusal REFUSED → OVERRIDE → VALIDATION / ON_GOING If new or corrected information is provided, a CentralPay operator may resume the process after an initial refusal. The OVERRIDE status indicates that a manual decision has been made to re-open the enrollment flow. 💬 Notes An Agent or DME may retrieve the enrollment status via API to track progress. CentralPay sends webhooks to the configured endpoint when the enrollment status changes (e.g., ACCEPTED, REFUSED). Once the enrollment is ACCEPTED, the merchant’s profile becomes active, and their account is ready for use. TRANSFER status This page lists and describes the status values associated with the Transfer object. These statuses reflect the progression of a fund transfer operation created via the /transfer endpoint in CentralPay’s API. Status values StatusDescriptionCREATEDThe transfer has been successfully created and registered. It has not yet been executed.SCHEDULEDThe transfer is scheduled for automatic execution at a defined date/time.PENDINGThe transfer is being processed. Execution is in progress but not yet finalized.CANCELLEDThe transfer was cancelled before execution. No movement of funds occurred.PROCESSEDThe transfer was processed by CentralPay. Funds have been deducted from the source wallet.DONEThe transfer was successfully completed and the funds have been credited to the target account or wallet.FAILEDThe transfer could not be executed due to an error. No debit occurred or the operation was reversed.REVERSEDThe transfer was previously executed but has since been reversed. Funds were returned to the source wallet. Status lifecycle ✅ Standard flow CREATED → SCHEDULED → PENDING → PROCESSED → DONE This is the typical status flow when the transfer is executed successfully. ⚠️ Alternative flow (error or cancellation) CREATED → CANCELLED If the transfer is cancelled before execution. CREATED → SCHEDULED → PENDING → FAILED If the transfer encounters an error during processing (e.g., insufficient funds, invalid wallet, technical issue). DONE → REVERSED If the transfer was previously executed but later reversed (e.g., manual operation or compliance reversal). Notes Only CREATED or SCHEDULED transfers may be cancelled manually. A FAILED status usually indicates validation errors (e.g. insufficient funds, inactive wallet, invalid beneficiary). The REVERSED status applies when a reversal is triggered using the /transferReversal endpoint. Status fields are returned in the status property of the Transfer JSON object and may be monitored using the API or relevant webhooks. TRANSFER REVERSAL status This page provides the list of statuses associated with the Transfer Reversal object, accessible via the /transferReversal endpoint. A Transfer Reversal allows you to cancel or refund a previously created transfer, typically used to revert funds between wallets when an operation is aborted or updated after execution. 📌 Status List StatusDescriptionPENDINGThe reversal has been requested but not yet processed.IN_PROGRESSThe reversal request is currently being executed.DONEThe reversal has been successfully completed.REFUSEDThe reversal has been refused. This may be due to authorization failure, insufficient funds, or policy restrictions.CANCELLEDThe reversal request was cancelled before being processed. These statuses are returned in the status field of the Transfer Reversal object and can be queried through the API to track reversal lifecycle. 🔁 Status Flow Overview ✅ Standard Status Flow PENDING → IN_PROGRESS → DONE This is the expected successful path for a properly submitted reversal. ❌ Alternate Outcomes Rejected during or after processing: PENDING → REFUSEDPENDING → IN_PROGRESS → REFUSED Cancellation before processing: PENDING → CANCELLED 🔍 Notes A reversal can only be initiated if the original transfer is eligible. Once DONE, the reversal is final and reflected in both wallets. Status changes can be tracked via webhook notifications if configured. PAYMENT REQUEST status Payment request status: ACTIVE CLOSED CANCELED Payment status : UNPAID ACCEPTED PARTIALLY_PAID PAID The following table explains every possible status combination and what they point out : Payment request statusPayment status ExplanationACTIVEUNPAIDPayment request created, waiting for the customer’s payment.ACTIVEPARTIALLY_PAIDThe customer has paid part of the total sum of the payment request that will stay ACTIVE while waiting for the remaining payment(s). ACTIVEACCEPTEDTemporary status that is exclusive for the SDD transactions, pre-authorization and deferred payments. The customer has done the required action and the operation is waiting for the processing.CLOSEDPAIDThe payment request has been fully paid.CLOSEDPARTIALLY_PAIDThe payment request has been partially paid and the merchant has manually closed it. This can be performed from the API or the user portal if the merchant is satisfied with this partial payment of the customer and allows to stop any automatic reminders.CANCELEDUNPAIDThe payment request was cancelled before the customer’s payment. This cancellation may be initiated by the merchant via API or via the User Portal (in the event of an error in the creation or cancellation of an order, for example), or carried out automatically if the link expires. This cancellation reason is visible from the User Portal. TRANSACTION status Status « Transaction » StatusDescriptionSUCCESSThe transaction is a « success » when an authorization request has been issued by the Bank and the bank return code is « 0 ».FRAUDThe status indicates that the transaction encountered a « blacklisted » item. This can come from an IP, phone number, email or card number.CAPTUREDA Success transaction must be « captured » within 7 calendar days in order to be charged to your Customer’s card.Note: by default, a transaction is automatically « captured ».FAILUREThe transaction is in « failure » when the authorization has not been issued by the Bank issuing the card.In addition, you receive a rejection code issued by the bank of the card issuer (bank code < 100).CANCELEDThis status reflects the cancellation of a « capture » request before it is cleared. It is possible to cancel a transaction between the « success » and « cleared » transaction status.THREEDS_AUTH_FAILURE3DS authentication failed. The cardholder submitted an incorrect code or did not submit it in time.CLEAREDA « Cleared » transaction indicates that a debit has been made on your customer’s card. At this point, you can no longer cancel the transaction, but you can refund it using the « refund » API object.NOT_ACCEPTEDThe transaction was declined as it encountered an element of denial of an acceptance rule. REFUND status Statuts « Refund » StatutDescriptionCLEAREDProcessed refund.UNCLEAREDRefund pending processing.FAILURERefund in error.CANCELEDRefund cancelled, either by you or by your customer via the customer portal. CREDIT status Status « Credit » StatusDescriptionCLEAREDCredit processed.UNCLEAREDCredit pending processingFAILURECredit in error.CANCELEDCredit cancelled, either by you or by your Customer via the customer portal. DISPUTES status Status « Disputes » StatutDescriptionRETRIEVAL_NOTICEDA request for information is sent to you in order to obtain information on the nature of the operation carried out. At this point, it is not a proven dispute. Depending on your response to this request, your client can turn it into a dispute.RETRIEVAL_CLOSENotification that the request for information is closed. The information provided has prevented the dispute.CHARGEBACK_NOTICEDA transaction dispute is sent by your customer. The amount of this transaction will be charged to refund your customer. Non-refundable fees also apply for each dispute received.Note : a Chargeback (dispute) is not necessarily preceded by a Retrieval (request for information).CHARGEBACK_WONYou were successful, the dispute was rejected. The amount of the transaction is refunded to you.CHARGEBACK_LOSTYour evidences are deemed insufficient, the challenge is upheld.TRANSACTION_REFUNDEDThe amount of the disputed transaction was refunded to you following a CHARGEBACK_WON. SUBSCRIPTION status Status « Subscription » StatusDescriptionACCEPTEDThe subscription is active and running (initial status when a subscription is successfully created).PENDINGStatus defined by the configuration you have chosen in case of repeated payment failures.REFUSEDStatus defined by the configuration you have chosen in case of repeated payment failures.CANCELLEDThe subscription has been cancelled either by you or by your Customer via the customer portal. INSTALLMENT status Status « Subscription » StatusDescriptionACTIVEThe installment is active and follows its course (initial status when an installment is created successfully).PAIDThe installment has been fully paid.FAILUREA payment attempt failed, there will be at least one more trial (The number of trials is configurable on the user portal).UNPAIDAll payment attempts failed, final status.CANCELEDThe installment has been cancelled by the merchant. SDD TRANSACTION status Statuts « SDD Transaction » StatutDescriptionACTIVEPending SDD transaction (similar to pending status – largely obsolete status since CentralPay CBK update).PENDINGPending SDD transaction.NOTICEDObsolete — This status is no longer used.CLEAREDProcessed SDD transaction.CANCELEDCancelled SDD transaction.REVERSEDSDD transaction refunded following a rejection of the customer’s bank, a customer dispute, or following a refund from you. MANDATE status Status « Mandate » StatusDescriptionACTIVEActive mandate, ready to use.PENDINGMandate pending validation.OBSOLETEInactive mandate, not usable. BANK ACCOUNT status StatusDescriptionACCEPTEDThe bank account has been accepted by the conformity service.PENDINGThe bank account is waiting the conformity service verification.REFUSEDThe bank account has been refused by the conformity service.CANCELLEDThe bank account is no longer usable (closed account, fraud, …). PAYOUT status StatusDescriptionPAIDThe payout has been paid.PENDINGPayout pending processing.CANCELLEDThe payout has been cancelled (only in pending).REVERSEDThe payout has been refused by the creditor bank, the amount will be credited again on the debtor wallet. SCT TRANSACTION status Status « SCT Transaction » StatusDescriptionPENDINGPending receipt of the SCT Transaction.RECEIVEDSCT Transaction received.CANCELEDSCT Transaction cancelled before receipt.REFUNDEDSCT Transaction refunded. Resources by type Codes HTTP Codes Find below the list of HTTP return codes: 200OKNote: The request was executed correctly400BAD REQUESTNote: Wrong parameter or rule401UNAUTHORIZEDNote: Login / password are missing for HTTP authentication402PAYMENT_REQUIREDNote: Authorization denied*403FORBIDDENNote: Wrong authentication404NOT FOUNDNote: Incorrect URL500INTERNAL SERVER ERRORNote: Server error (*) Only possible for the creation of a transaction Bank return codes List of codes returned by the issuer bank to CentralPay after an autorization request 00Transaction approved or successfully processed02Contact card issuer03Invalid acceptor04Keep card05Do not honor06Transaction invalid for terminal07Honor with ID08Time-Out09No original10Unable to reverse11Partial approval12Invalid transaction13Invalid amount14Invalid cardholder number15Unknown card issuer17Invalid capture date (terminal business date)19Repeat transaction later20No From Account21No To Account22Account not verified23Account not saved24No Credit Account25Unable to locate record in file26Record duplicated27 ‘Edit’ error in file update field28File access denied29File update not possible30Format error31Identifier of acquiring organization unknown32Transaction partially completed33Card validity date exceeded34Implausible card data38Number of PIN attempts exceeded39Transaction not allowed41Lost card42Special Pickup43Stolen card44Stolen card51Insufficient funds or overdraft54 Card expired55Incorrect PIN56 Card not on file57Transaction not authorized to this cardholder58Transaction prohibited at terminal59Suspected fraud60 the card acceptor must contact the buyer61Withdrawal amount over limit62Card use restricted63MAC Key Error65 Frequency limit exceeded66Acquirer limit reached67Card withheld68Response not received or received too late75Number of PIN attempts exceeded76Invalid Account77Issuer not participating in service78Function not available79Key validation error80Approved for purchase amount only81Unable to verify PIN82Invalid CVV83Not refused84Invalid transaction lifecycle85No key to use86KME synchronization error87PIN error88MAC synchronization error89Security violation90Temporary system shutdown91Card transmitter inaccessible92Card issuer unknown93Transacation cannot be finalized94Duplicate request95Contact acquirer96System malfunction97No Funds Transfer98Duplicate Reversal99Duplicate TransactionN3Cash Service Not AvailableN4Cash Back Request Exceeds Issuer LimitN7Declined for CVV2 failureR0Stop Payment OrderR1Revocation of Authorisation OrderR3Revocation of all Authorisations OrderA0Withdrawal in contact modeA1VADS fallback000Approved001Approve with ID002Partial approval (prepaid cards only)100Reject101Card expired / invalid expiry date106PIN attempts exceeded107Please call issuer109Invalid merchant110Invalid amount111Invalid account / Invalid MICR (traveler’s check)115Requested function not supported117Invalid PIN119Cardholder not registered / not authorized122Invalid card security code (alias CID, 4DBC, 4CSC)125Invalid effective date181Format error183Invalid currency code187Refuse – New card issued189Refuse – Merchant cancelled or closed / SE200Refuse – Pick up card900Accepted – ATC synchronization909System malfunction (cryptographic error)912Issuer not available Currency codes List of currency codes: AEDUAE DirhamCurrency code: 784AFNAfghaniCurrency code: 971ALLLekCurrency code: 008AMDArmenian DramCurrency code: 051ANGNetherlands Antillean GuilderCurrency code: 532AOAKwanzaCurrency code: 973ARSArgentine PesoCurrency code: 032AUDAustralian DollarCurrency code: 036AWGAruban FlorinCurrency code: 533AZNAzerbaijanian ManatCurrency code: 944BAMConvertible MarkCurrency code: 977BBDBarbados DollarCurrency code: 052BDTTakaCurrency code: 050BGNBulgarian LevCurrency code: 975BHDBahraini DinarCurrency code: 048BIFBurundi FrancCurrency code: 108BMDBermudian DollarCurrency code: 060BNDBrunei DollarCurrency code: 096BOBBolivianoCurrency code: 068BOVMvdolCurrency code: 984BRLBrazilian RealCurrency code: 986BSDBahamian DollarCurrency code: 044BTNNgultrumCurrency code: 064BWPPulaCurrency code: 072BYRBelarussian RubleCurrency code: 974BZDBelize DollarCurrency code: 084CADCanadian DollarCurrency code: 124CDFCongolese FrancCurrency code: 976CHEWIR EuroCurrency code: 947CHFSwiss FrancCurrency code: 756CHWWIR FrancCurrency code: 948CLFUnidad de FomentoCurrency code: 990CLPChilean PesoCurrency code: 152CNYYuan RenminbiCurrency code: 156COPColombian PesoCurrency code: 170COUUnidad de Valor RealCurrency code: 970CRCCosta Rican ColonCurrency code: 188CUCPeso ConvertibleCurrency code: 931CUPCuban PesoCurrency code: 192CVECabo Verde EscudoCurrency code: 132CZKCzech KorunaCurrency code: 203DJFDjibouti FrancCurrency code: 262DKKDanish KroneCurrency code: 208DOPDominican PesoCurrency code: 214DZDAlgerian DinarCurrency code: 012EGPEgyptian PoundCurrency code: 818ERNNakfaCurrency code: 232ETBEthiopian BirrCurrency code: 230EUREuroCurrency code: 978FJDFiji DollarCurrency code: 242FKPFalkland Islands PoundCurrency code: 238GBPPound SterlingCurrency code: 826GELLariCurrency code: 981GHSGhana CediCurrency code: 936GIPGibraltar PoundCurrency code: 292GMDDalasiCurrency code: 270GNFGuinea FrancCurrency code: 324GTQQuetzalCurrency code: 320GYDGuyana DollarCurrency code: 328HKDHong Kong DollarCurrency code: 344HNLLempiraCurrency code: 340HRKKunaCurrency code: 191HTGGourdeCurrency code: 332HUFForintCurrency code: 348IDRRupiahCurrency code: 360ILSNew Israeli SheqelCurrency code: 376INRIndian RupeeCurrency code: 356IQDIraqi DinarCurrency code: 368IRRIranian RialCurrency code: 364ISKIceland KronaCurrency code: 352JMDJamaican DollarCurrency code: 388JODJordanian DinarCurrency code: 400JPYYenCurrency code: 392KESKenyan ShillingCurrency code: 404KGSSomCurrency code: 417KHRRielCurrency code: 116KMFComoro FrancCurrency code: 174KPWNorth Korean WonCurrency code: 408KRWWonCurrency code: 410KWDKuwaiti DinarCurrency code: 414KYDCayman Islands DollarCurrency code: 136KZTTengeCurrency code: 398LAKKipCurrency code: 418LBPLebanese PoundCurrency code: 422LKRSri Lanka RupeeCurrency code: 144LRDLiberian DollarCurrency code: 430LSLLotiCurrency code: 426LYDLibyan DinarCurrency code: 434MADMoroccan DirhamCurrency code: 504MDLMoldovan LeuCurrency code: 498MGAMalagasy AriaryCurrency code: 969MKDDenarCurrency code: 807MMKKyatCurrency code: 104MNTTugrikCurrency code: 496MOPPatacaCurrency code: 446MROOuguiyaCurrency code: 478MURMauritius RupeeCurrency code: 480MVRRufiyaaCurrency code: 462MWKKwachaCurrency code: 454MXNMexican PesoCurrency code: 484MXVMexican Unidad de Inversion (UDI)Currency code: 979MYRMalaysian RinggitCurrency code: 458MZNMozambique MeticalCurrency code: 943NADNamibia DollarCurrency code: 516NGNNairaCurrency code: 566NIOCordoba OroCurrency code: 558NOKNorwegian KroneCurrency code: 578NPRNepalese RupeeCurrency code: 524NZDNew Zealand DollarCurrency code: 554OMRRial OmaniCurrency code: 512PABBalboaCurrency code: 590PENNuevo SolCurrency code: 604PGKKinaCurrency code: 598PHPPhilippine PesoCurrency code: 608PKRPakistan RupeeCurrency code: 586PLNZlotyCurrency code: 985PYGGuaraniCurrency code: 600QARQatari RialCurrency code: 634RONRomanian LeuCurrency code: 946RSDSerbian DinarCurrency code: 941RUBRussian RubleCurrency code: 643RWFRwanda FrancCurrency code: 646SARSaudi RiyalCurrency code: 682SBDSolomon Islands DollarCurrency code: 090SCRSeychelles RupeeCurrency code: 690SDGSudanese PoundCurrency code: 938SEKSwedish KronaCurrency code: 752SGDSingapore DollarCurrency code: 702SHPSaint Helena PoundCurrency code: 654SLLLeoneCurrency code: 694SOSSomali ShillingCurrency code: 706SRDSurinam DollarCurrency code: 968SSPSouth Sudanese PoundCurrency code: 728STDDobraCurrency code: 678SVCEl Salvador ColonCurrency code: 222SYPSyrian PoundCurrency code: 760SZLLilangeniCurrency code: 748THBBahtCurrency code: 764TJSSomoniCurrency code: 972TMTTurkmenistan New ManatCurrency code: 934TNDTunisian DinarCurrency code: 788TOPPa’angaCurrency code: 776TRYTurkish LiraCurrency code: 949TTDTrinidad and Tobago DollarCurrency code: 780TWDNew Taiwan DollarCurrency code: 901TZSTanzanian ShillingCurrency code: 834UAHHryvniaCurrency code: 980UGXUganda ShillingCurrency code: 800USDUS DollarCurrency code: 840USNUS Dollar (Next day)Currency code: 997UYIUruguay Peso en Unidades Indexadas (URUIURUI)Currency code: 940UYUPeso UruguayoCurrency code: 858UZSUzbekistan SumCurrency code: 860VEFBolivarCurrency code: 937VNDDongCurrency code: 704VUVVatuCurrency code: 548WSTTalaCurrency code: 882XAGSilverCurrency code: 961XAUGoldCurrency code: 959XBABond Markets Unit European Composite Unit (EURCO)Currency code: 955XBBBond Markets Unit European Monetary Unit (E.M.U.-6)Currency code: 956XBCBond Markets Unit European Unit of Account 9 (E.U.A.-9)Currency code: 957XBDBond Markets Unit European Unit of Account 17 (E.U.A.-17)Currency code: 958XCDEast Caribbean DollarCurrency code: 951XDRSDR (Special Drawing Right)Currency code: 960XOFCFA Franc BCEAOCurrency code: 952XPDPalladiumCurrency code: 964XPFCFP FrancCurrency code: 953XPTPlatinumCurrency code: 962XSUSucreCurrency code: 994XTSCodes specifically reserved for testing purposesCurrency code: 963XUAADB Unit of AccountCurrency code: 965XXXThe codes assigned for transactions where no currency is involvedCurrency code: 999YERYemeni RialCurrency code: 886ZARRandCurrency code: 710ZMWZambian KwachaCurrency code: 967ZWLZimbabwe DollarCurrency code: 932 Description of the certification « ISO 4217:2008 » is available at this url: http://www.iso.org/iso/home/standards/currency_codes.htm SDD return codes Return CodeDescriptionAB05Timeout Creditor AgentAB06Timeout Instructed AgentAB07Offline AgentAB08Offline Creditor AgentAB09Error Creditor AgentAB10Error Instructed AgentAC01Incorrect Account NumberAC03Invalid Creditor Account NumberAC04Account ClosedAC06Account blocked, reason not specifiedAC13Wrong Debtor accountAG01Forbidden on this type of accountAG02Operation/Transaction code incorrect, invalid file formatAG09Payment Not ReceivedAG10Agent SuspendedAG11Creditor Agent SuspendedAGNTIncorrect AgentAM02Not Allowed AmountAM04Insufficient FundsAM05Duplicate paymentAM09Wrong AmountAM23Amount Exceeds Settlement LimitARDTAlready a returned transactionBE04Account address invalidBE05Creditor Identifier incorrectCUSTCustomer decisionCURRIncorrect CurrencyCUTACancellation Upon Unable to ApplyCNORCreditor Bank is not RegisteredDNORDebtor Bank is not RegisteredDUPLDuplicate PaymentED05Settlement FailedERINERI Option Not SupportedFF01Invalid File FormatFOCRPositive answer to the recall or RfROFRADFraudulent originated credit transferLEGLLegal DecisionMD01No valid mandateMD02Mandate data missing or invalidMD06Refund Request By End CustomerMD07Beneficiary DeceasedMS02By order of the beneficiaryMS03Reason not specifiedNOASNo Answer From CustomerNOORNo Original Transaction ReceivedRC01Invalid BICRC07Invalid Creditor BIC IdentifierRR01Missing Debtor Account Or IdentificationRR02Missing Debtors Name Or AddressRR03Missing Creditors Name Or AddressRR04Regulatory ReasonSL01Specific service offered by debtor BankTECHTechnical problems resulting in erroneous SCT’sTM01Invalid Cut Off TimeUPAYUndue Payment Country codes List of country codes: 004AfghanistanAlpha2 code: AFAlpha3 code: AFG008AlbaniaAlpha2 code: ALAlpha3 code: ALB010AntarcticaAlpha2 code: AQAlpha3 code: ATA012AlgeriaAlpha2 code: DZAlpha3 code: DZA016American SamoaAlpha2 code: ASAlpha3 code: ASM020AndorraAlpha2 code: ADAlpha3 code: AND024AngolaAlpha2 code: AOAlpha3 code: AGO028Antigua and BarbudaAlpha2 code: AGAlpha3 code: ATG031AzerbaijanAlpha2 code: AZAlpha3 code: AZE032ArgentinaAlpha2 code: ARAlpha3 code: ARG036AustraliaAlpha2 code: AUAlpha3 code: AUS040AustriaAlpha2 code: ATAlpha3 code: AUT044Bahamas (the)Alpha2 code: BSAlpha3 code: BHS048BahrainAlpha2 code: BHAlpha3 code: BHR050BangladeshAlpha2 code: BDAlpha3 code: BGD051ArmeniaAlpha2 code: AMAlpha3 code: ARM052BarbadosAlpha2 code: BBAlpha3 code: BRB056BelgiumAlpha2 code: BEAlpha3 code: BEL060BermudaAlpha2 code: BMAlpha3 code: BMU064BhutanAlpha2 code: BTAlpha3 code: BTN068Bolivia, Plurinational State ofAlpha2 code: BOAlpha3 code: BOL070Bosnia and HerzegovinaAlpha2 code: BAAlpha3 code: BIH072BotswanaAlpha2 code: BWAlpha3 code: BWA074Bouvet IslandAlpha2 code: BVAlpha3 code: BVT076BrazilAlpha2 code: BRAlpha3 code: BRA084BelizeAlpha2 code: BZAlpha3 code: BLZ086British Indian Ocean Territory (the)Alpha2 code: IOAlpha3 code: IOT090Solomon Islands (the)Alpha2 code: SBAlpha3 code: SLB092Virgin Islands (British)Alpha2 code: VGAlpha3 code: VGB096Brunei DarussalamAlpha2 code: BNAlpha3 code: BRN100BulgariaAlpha2 code: BGAlpha3 code: BGR104MyanmarAlpha2 code: MMAlpha3 code: MMR108BurundiAlpha2 code: BIAlpha3 code: BDI112BelarusAlpha2 code: BYAlpha3 code: BLR116CambodiaAlpha2 code: KHAlpha3 code: KHM120CameroonAlpha2 code: CMAlpha3 code: CMR124CanadaAlpha2 code: CAAlpha3 code: CAN132Cape VerdeAlpha2 code: CVAlpha3 code: CPV136Cayman Islands (the)Alpha2 code: KYAlpha3 code: CYM140Central African Republic (the)Alpha2 code: CFAlpha3 code: CAF144Sri LankaAlpha2 code: LKAlpha3 code: LKA148ChadAlpha2 code: TDAlpha3 code: TCD152ChileAlpha2 code: CLAlpha3 code: CHL156ChinaAlpha2 code: CNAlpha3 code: CHN158Taiwan (Province of China)Alpha2 code: TWAlpha3 code: TWN162Christmas IslandAlpha2 code: CXAlpha3 code: CXR166Cocos (Keeling) Islands (the)Alpha2 code: CCAlpha3 code: CCK170ColombiaAlpha2 code: COAlpha3 code: COL174ComorosAlpha2 code: KMAlpha3 code: COM175MayotteAlpha2 code: YTAlpha3 code: MYT178CongoAlpha2 code: CGAlpha3 code: COG180Congo (the Democratic Republic of the)Alpha2 code: CDAlpha3 code: COD184Cook Islands (the)Alpha2 code: CKAlpha3 code: COK188Costa RicaAlpha2 code: CRAlpha3 code: CRI191CroatiaAlpha2 code: HRAlpha3 code: HRV192CubaAlpha2 code: CUAlpha3 code: CUB196CyprusAlpha2 code: CYAlpha3 code: CYP203Czech Republic (the)Alpha2 code: CZAlpha3 code: CZE204BeninAlpha2 code: BJAlpha3 code: BEN208DenmarkAlpha2 code: DKAlpha3 code: DNK212DominicaAlpha2 code: DMAlpha3 code: DMA214Dominican Republic (the)Alpha2 code: DOAlpha3 code: DOM218EcuadorAlpha2 code: ECAlpha3 code: ECU222El SalvadorAlpha2 code: SVAlpha3 code: SLV226Equatorial GuineaAlpha2 code: GQAlpha3 code: GNQ231EthiopiaAlpha2 code: ETAlpha3 code: ETH232EritreaAlpha2 code: ERAlpha3 code: ERI233EstoniaAlpha2 code: EEAlpha3 code: EST234Faroe Islands (the)Alpha2 code: FOAlpha3 code: FRO238Falkland Islands (the) [Malvinas]Alpha2 code: FKAlpha3 code: FLK239South Georgia and the South Sandwich IslandsAlpha2 code: GSAlpha3 code: SGS242FijiAlpha2 code: FJAlpha3 code: FJI246FinlandAlpha2 code: FIAlpha3 code: FIN248Ã…land IslandsAlpha2 code: AXAlpha3 code: ALA250FranceAlpha2 code: FRAlpha3 code: FRA254French GuianaAlpha2 code: GFAlpha3 code: GUF258French PolynesiaAlpha2 code: PFAlpha3 code: PYF260French Southern Territories (the)Alpha2 code: TFAlpha3 code: ATF262DjiboutiAlpha2 code: DJAlpha3 code: DJI266GabonAlpha2 code: GAAlpha3 code: GAB268GeorgiaAlpha2 code: GEAlpha3 code: GEO270Gambia (The)Alpha2 code: GMAlpha3 code: GMB275Palestine, State ofAlpha2 code: PSAlpha3 code: PSE276GermanyAlpha2 code: DEAlpha3 code: DEU288GhanaAlpha2 code: GHAlpha3 code: GHA292GibraltarAlpha2 code: GIAlpha3 code: GIB296KiribatiAlpha2 code: KIAlpha3 code: KIR300GreeceAlpha2 code: GRAlpha3 code: GRC304GreenlandAlpha2 code: GLAlpha3 code: GRL308GrenadaAlpha2 code: GDAlpha3 code: GRD312GuadeloupeAlpha2 code: GPAlpha3 code: GLP316GuamAlpha2 code: GUAlpha3 code: GUM320GuatemalaAlpha2 code: GTAlpha3 code: GTM324GuineaAlpha2 code: GNAlpha3 code: GIN328GuyanaAlpha2 code: GYAlpha3 code: GUY332HaitiAlpha2 code: HTAlpha3 code: HTI334Heard Island and McDonald IslandsAlpha2 code: HMAlpha3 code: HMD336Holy See (the) [Vatican City State]Alpha2 code: VAAlpha3 code: VAT340HondurasAlpha2 code: HNAlpha3 code: HND344Hong KongAlpha2 code: HKAlpha3 code: HKG348HungaryAlpha2 code: HUAlpha3 code: HUN352IcelandAlpha2 code: ISAlpha3 code: ISL356IndiaAlpha2 code: INAlpha3 code: IND360IndonesiaAlpha2 code: IDAlpha3 code: IDN364Iran (the Islamic Republic of)Alpha2 code: IRAlpha3 code: IRN368IraqAlpha2 code: IQAlpha3 code: IRQ372IrelandAlpha2 code: IEAlpha3 code: IRL376IsraelAlpha2 code: ILAlpha3 code: ISR380ItalyAlpha2 code: ITAlpha3 code: ITA384Ivory coastAlpha2 code: CIAlpha3 code: CIV388JamaicaAlpha2 code: JMAlpha3 code: JAM392JapanAlpha2 code: JPAlpha3 code: JPN398KazakhstanAlpha2 code: KZAlpha3 code: KAZ400JordanAlpha2 code: JOAlpha3 code: JOR404KenyaAlpha2 code: KEAlpha3 code: KEN408Korea (the Democratic People’s Republic of)Alpha2 code: KPAlpha3 code: PRK410Korea (the Republic of)Alpha2 code: KRAlpha3 code: KOR414KuwaitAlpha2 code: KWAlpha3 code: KWT417KyrgyzstanAlpha2 code: KGAlpha3 code: KGZ418Lao People’s Democratic Republic (the)Alpha2 code: LAAlpha3 code: LAO422LebanonAlpha2 code: LBAlpha3 code: LBN426LesothoAlpha2 code: LSAlpha3 code: LSO428LatviaAlpha2 code: LVAlpha3 code: LVA430LiberiaAlpha2 code: LRAlpha3 code: LBR434LibyaAlpha2 code: LYAlpha3 code: LBY438LiechtensteinAlpha2 code: LIAlpha3 code: LIE440LithuaniaAlpha2 code: LTAlpha3 code: LTU442LuxembourgAlpha2 code: LUAlpha3 code: LUX446MacaoAlpha2 code: MOAlpha3 code: MAC450MadagascarAlpha2 code: MGAlpha3 code: MDG454MalawiAlpha2 code: MWAlpha3 code: MWI458MalaysiaAlpha2 code: MYAlpha3 code: MYS462MaldivesAlpha2 code: MVAlpha3 code: MDV466MaliAlpha2 code: MLAlpha3 code: MLI470MaltaAlpha2 code: MTAlpha3 code: MLT474MartiniqueAlpha2 code: MQAlpha3 code: MTQ478MauritaniaAlpha2 code: MRAlpha3 code: MRT480MauritiusAlpha2 code: MUAlpha3 code: MUS484MexicoAlpha2 code: MXAlpha3 code: MEX492MonacoAlpha2 code: MCAlpha3 code: MCO496MongoliaAlpha2 code: MNAlpha3 code: MNG498Moldova (the Republic of)Alpha2 code: MDAlpha3 code: MDA499MontenegroAlpha2 code: MEAlpha3 code: MNE500MontserratAlpha2 code: MSAlpha3 code: MSR504MoroccoAlpha2 code: MAAlpha3 code: MAR508MozambiqueAlpha2 code: MZAlpha3 code: MOZ512OmanAlpha2 code: OMAlpha3 code: OMN516NamibiaAlpha2 code: NAAlpha3 code: NAM520NauruAlpha2 code: NRAlpha3 code: NRU524NepalAlpha2 code: NPAlpha3 code: NPL528Netherlands (the)Alpha2 code: NLAlpha3 code: NLD531CuracaoAlpha2 code: CWAlpha3 code: CUW533ArubaAlpha2 code: AWAlpha3 code: ABW534Sint Maarten (Dutch part)Alpha2 code: SXAlpha3 code: SXM535Bonaire, Sint Eustatius and SabaAlpha2 code: BQAlpha3 code: BES540New CaledoniaAlpha2 code: NCAlpha3 code: NCL548VanuatuAlpha2 code: VUAlpha3 code: VUT554New ZealandAlpha2 code: NZAlpha3 code: NZL558NicaraguaAlpha2 code: NIAlpha3 code: NIC562Niger (the)Alpha2 code: NEAlpha3 code: NER566NigeriaAlpha2 code: NGAlpha3 code: NGA570NiueAlpha2 code: NUAlpha3 code: NIU574Norfolk IslandAlpha2 code: NFAlpha3 code: NFK578NorwayAlpha2 code: NOAlpha3 code: NOR580Northern Mariana Islands (the)Alpha2 code: MPAlpha3 code: MNP581United States Minor Outlying Islands (the)Alpha2 code: UMAlpha3 code: UMI583Micronesia (the Federated States of)Alpha2 code: FMAlpha3 code: FSM584Marshall Islands (the)Alpha2 code: MHAlpha3 code: MHL585PalauAlpha2 code: PWAlpha3 code: PLW586PakistanAlpha2 code: PKAlpha3 code: PAK591PanamaAlpha2 code: PAAlpha3 code: PAN598Papua New GuineaAlpha2 code: PGAlpha3 code: PNG600ParaguayAlpha2 code: PYAlpha3 code: PRY604PeruAlpha2 code: PEAlpha3 code: PER608Philippines (the)Alpha2 code: PHAlpha3 code: PHL612PitcairnAlpha2 code: PNAlpha3 code: PCN616PolandAlpha2 code: PLAlpha3 code: POL620PortugalAlpha2 code: PTAlpha3 code: PRT624Guinea-BissauAlpha2 code: GWAlpha3 code: GNB626Timor-LesteAlpha2 code: TLAlpha3 code: TLS630Puerto RicoAlpha2 code: PRAlpha3 code: PRI634QatarAlpha2 code: QAAlpha3 code: QAT638RéunionAlpha2 code: REAlpha3 code: REU642RomaniaAlpha2 code: ROAlpha3 code: ROU643Russian Federation (the)Alpha2 code: RUAlpha3 code: RUS646RwandaAlpha2 code: RWAlpha3 code: RWA652Saint BarthélemyAlpha2 code: BLAlpha3 code: BLM654Saint Helena, Ascension and Tristan da CunhaAlpha2 code: SHAlpha3 code: SHN659Saint Kitts and NevisAlpha2 code: KNAlpha3 code: KNA660AnguillaAlpha2 code: AIAlpha3 code: AIA662Saint LuciaAlpha2 code: LCAlpha3 code: LCA663Saint Martin (French part)Alpha2 code: MFAlpha3 code: MAF666Saint Pierre and MiquelonAlpha2 code: PMAlpha3 code: SPM670Saint Vincent and the GrenadinesAlpha2 code: VCAlpha3 code: VCT674San MarinoAlpha2 code: SMAlpha3 code: SMR678Sao Tome and PrincipeAlpha2 code: STAlpha3 code: STP682Saudi ArabiaAlpha2 code: SAAlpha3 code: SAU686SenegalAlpha2 code: SNAlpha3 code: SEN688SerbiaAlpha2 code: RSAlpha3 code: SRB690SeychellesAlpha2 code: SCAlpha3 code: SYC694Sierra LeoneAlpha2 code: SLAlpha3 code: SLE702SingaporeAlpha2 code: SGAlpha3 code: SGP703SlovakiaAlpha2 code: SKAlpha3 code: SVK704Viet NamAlpha2 code: VNAlpha3 code: VNM705SloveniaAlpha2 code: SIAlpha3 code: SVN706SomaliaAlpha2 code: SOAlpha3 code: SOM710South AfricaAlpha2 code: ZAAlpha3 code: ZAF716ZimbabweAlpha2 code: ZWAlpha3 code: ZWE724SpainAlpha2 code: ESAlpha3 code: ESP728South SudanAlpha2 code: SSAlpha3 code: SSD729Sudan (the)Alpha2 code: SDAlpha3 code: SDN732Western SaharaAlpha2 code: EHAlpha3 code: ESH740SurinameAlpha2 code: SRAlpha3 code: SUR744Svalbard and Jan MayenAlpha2 code: SJAlpha3 code: SJM748SwazilandAlpha2 code: SZAlpha3 code: SWZ752SwedenAlpha2 code: SEAlpha3 code: SWE756SwitzerlandAlpha2 code: CHAlpha3 code: CHE760Syrian Arab Republic (the)Alpha2 code: SYAlpha3 code: SYR762TajikistanAlpha2 code: TJAlpha3 code: TJK764ThailandAlpha2 code: THAlpha3 code: THA768TogoAlpha2 code: TGAlpha3 code: TGO772TokelauAlpha2 code: TKAlpha3 code: TKL776TongaAlpha2 code: TOAlpha3 code: TON780Trinidad and TobagoAlpha2 code: TTAlpha3 code: TTO784United Arab Emirates (the)Alpha2 code: AEAlpha3 code: ARE788TunisiaAlpha2 code: TNAlpha3 code: TUN792TurkeyAlpha2 code: TRAlpha3 code: TUR795TurkmenistanAlpha2 code: TMAlpha3 code: TKM796Turks and Caicos Islands (the)Alpha2 code: TCAlpha3 code: TCA798TuvaluAlpha2 code: TVAlpha3 code: TUV800UgandaAlpha2 code: UGAlpha3 code: UGA804UkraineAlpha2 code: UAAlpha3 code: UKR807Macedonia (the former Yugoslav Republic of)Alpha2 code: MKAlpha3 code: MKD818EgyptAlpha2 code: EGAlpha3 code: EGY826United Kingdom (the)Alpha2 code: GBAlpha3 code: GBR831GuernseyAlpha2 code: GGAlpha3 code: GGY832JerseyAlpha2 code: JEAlpha3 code: JEY833Isle of ManAlpha2 code: IMAlpha3 code: IMN834Tanzania, United Republic ofAlpha2 code: TZAlpha3 code: TZA840United States (the)Alpha2 code: USAlpha3 code: USA850Virgin Islands (U.S.)Alpha2 code: VIAlpha3 code: VIR854Burkina FasoAlpha2 code: BFAlpha3 code: BFA858UruguayAlpha2 code: UYAlpha3 code: URY860UzbekistanAlpha2 code: UZAlpha3 code: UZB862Venezuela, Bolivarian Republic ofAlpha2 code: VEAlpha3 code: VEN876Wallis and FutunaAlpha2 code: WFAlpha3 code: WLF882SamoaAlpha2 code: WSAlpha3 code: WSM887YemenAlpha2 code: YEAlpha3 code: YEM894Zambia Alpha2 code: ZMAlpha3 code: ZMB Transfer purpose codes ACCT : AccountManagementADCS : AdvisoryDonationCopyrightServicesADMG : AdministrativeManagementADVA : AdvancePaymentAEMP : ActiveEmploymentPolicyAGRT : AgriculturalTransferAIRB : AirALLW : AllowanceALMY : AlimonyPaymentAMEX : AmexANNI : AnnuityANTS : AnesthesiaServicesAREN : AccountsReceivablesEntryAUCO : AuthenticatedCollectionsB112 : TrailerFeePaymentBBSC : BabyBonusSchemeBCDM : BearerChequeDomesticBCFG : BearerChequeForeignBECH : ChildBenefitBENE : UnemploymentDisabilityBenefitBEXP : BusinessExpensesBFWD : BondForwardBKDF : BankLoanDelayedDrawFundingBKFE : BankLoanFeesBKFM : BankLoanFundingMemoBKIP : BankLoanAccruedInterestPaymentBKPP : BankLoanPrincipalPaydownBLDM : BuildingMaintenanceBNET : BondForwardNettingBOCE : BackOfficeConversionEntryBOND : BondsBONU : BonusPayment.BR12 : TrailerFeeRebateBUSB : BusCABD : CorporateActions-BondsCAEQ : CorporateActions-EquitiesCAFI : CustodianManagementFeeInhouseCASH : CashManagementTransferCBCR : CreditCardCBFF : CapitalBuildingCBFR : CapitalBuildingRetirementCBLK : CardBulkClearingCBTV : CableTVBillCCHD : CashCompensationHelplessnessDisabilityCCIR : CrossCurrencyIRSCCPC : CCPClearedInitialMarginCCPM : CCPClearedVariationMarginCCRD : CreditCardPaymentCCSM : CCPClearedInitialMarginSegregatedCashCDBL : CreditCardBillCDCB : CardPaymentWithCashBackCDCD : CashDisbursementCashSettlementCDCS : CashDisbursementWithSurchargingCDDP : CardDeferredPaymentCDEP : CreditDefaultEventPaymentCDOC : OriginalCreditCDQC : QuasiCashCFDI : CapitalFallingDueInhouseCFEE : CancellationFeeCGDD : CardGeneratedDirectDebitCHAR : CharityPaymentCLPR : CarLoanPrincipalRepaymentCMDT : CommodityTransferCOLL : CollectionPaymentCOMC : CommercialPaymentCOMM : CommissionCOMP : CompensationPaymentCOMT : ConsumerThirdPartyConsolidatedPaymentCORT : TradeSettlementPaymentCOST : CostsCPEN : CashPenaltiesCPKC : CarparkChargesCPYR : CopyrightCRDS : CreditDefaultSwapCRPR : CrossProductCRSP : CreditSupportCRTL : CreditLineCSDB : CashDisbursementCashManagementCSLP : CompanySocialLoanPaymentToBankCVCF : ConvalescentCareFacilityDBCR : DebitCardDBTC : DebitCollectionPaymentDCRD : DebitCardPaymentDEBT : ChargesBorneByDebtorDEPD : DependentSupportPaymentDEPT : DepositDERI : DerivativesDICL : DinersDIVD : DividendDMEQ : DurableMedicaleEquipmentDNTS : DentalServicesDSMT : PrintedOrderDisbursementDVPM : DeliverAgainstPaymentECPG : GuaranteedEPaymentECPR : EPaymentReturnECPU : NonGuaranteedEPaymentEDUC : EducationEFTC : LowValueCreditEFTD : LowValueDebitELEC : ElectricityBillENRG : EnergiesEPAY : EpaymentEQPT : EquityOptionEQTS : EquitiesEQUS : EquitySwapESTX : EstateTaxETUP : EPurseTopUpEXPT : ExoticOptionEXTD : ExchangeTradedDerivativesFACT : FactorUpdateRelatedPaymentFAND : FinancialAidInCaseOfNaturalDisasterFCOL : FeeCollectionFCPM : LatePaymentOfFeesAndChargesFEES : PaymentOfFeesFERB : FerryFIXI : FixedIncomeFLCR : FleetCardFNET : FuturesNettingPaymentFORW : ForwardForeignExchangeFREX : ForeignExchangeFUTR : FuturesFWBC : ForwardBrokerOwnedCashCollateralFWCC : ForwardClientOwnedCashCollateralFWLV : ForeignWorkerLevyFWSB : ForwardBrokerOwnedCashCollateralSegregatedFWSC : ForwardClientOwnedSegregatedCashCollateralFXNT : ForeignExchangeRelatedNettingGAFA : GovernmentFamilyAllowanceGAHO : GovernmentHousingAllowanceGAMB : GamblingOrWageringPaymentGASB : GasBillGDDS : PurchaseSaleOfGoodsGDSV : PurchaseSaleOfGoodsAndServicesGFRP : GuaranteeFundRightsPaymentGIFT : GiftGOVI : GovernmentInsuranceGOVT : GovernmentPaymentGSCB : PurchaseSaleOfGoodsAndServicesWithCashBackGSTX : GoodsServicesTaxGVEA : AustrianGovernmentEmployeesCategoryAGVEB : AustrianGovernmentEmployeesCategoryBGVEC : AustrianGovernmentEmployeesCategoryCGVED : AustrianGovernmentEmployeesCategoryDGWLT : GovermentWarLegislationTransferHEDG : HedgingHLRP : PropertyLoanRepaymentHLST : PropertyLoanSettlementHLTC : HomeHealthCareHLTI : HealthInsuranceHREC : HousingRelatedContributionHSPC : HospitalCareHSTX : HousingTaxICCP : IrrevocableCreditCardPaymentICRF : IntermediateCareFacilityIDCP : IrrevocableDebitCardPaymentIHRP : InstalmentHirePurchaseAgreementINPC : InsurancePremiumCarINPR : InsurancePremiumRefundINSC : PaymentOfInsuranceClaimINSM : InstallmentINSU : InsurancePremiumINTC : IntraCompanyPaymentINTE : InterestINTP : IntraPartyPaymentINTX : IncomeTaxINVS : InvestmentAndSecuritiesIPAY : InstantPaymentsIPCA : InstantPaymentsCancellationIPDO : InstantPaymentsForDonationsIPEA : InstantPaymentsInECommerceWithoutAddressDataIPEC : InstantPaymentsInECommerceWithAddressDataIPEW : InstantPaymentsInECommerceIPPS : InstantPaymentsAtPOSIPRT : InstantPaymentsReturnIPU2 : InstantPaymentsUnattendedVendingMachineWith2FAIPUW : InstantPaymentsUnattendedVendingMachineWithout2FAIVPT : InvoicePaymentLBIN : LendingBuyInNettingLBRI : LaborInsuranceLCOL : LendingCashCollateralFreeMovementLFEE : LendingFeesLICF : LicenseFeeLIFI : LifeInsuranceLIMA : LiquidityManagementLMEQ : LendingEquityMarkedToMarketCashCollateralLMFI : LendingFixedIncomeMarkedToMarketCashCollateralLMRK : LendingUnspecifiedTypeOfMarkedToMarketCashCollateralLOAN : LoanLOAR : LoanRepaymentLOTT : LotteryPaymentLREB : LendingRebatePaymentsLREV : LendingRevenuePaymentsLSFL : LendingClaimPaymentLTCF : LongTermCareFacilityMAFC : MedicalAidFundContributionMARF : MedicalAidRefundMARG : DailyMarginOnListedDerivativesMBSB : MBSBrokerOwnedCashCollateralMBSC : MBSClientOwnedCashCollateralMCDM : MultiCurrenyChequeDomesticMCFG : MultiCurrenyChequeForeignMDCS : MedicalServicesMGCC : FuturesInitialMarginMGSC : FuturesInitialMarginClientOwnedSegregatedCashCollateralMOMA : MoneyMarketMP2B : MobileP2BPaymentMP2P : MobileP2PPaymentMSVC : MultipleServiceTypesMTUP : MobileTopUpNETT : NettingNITX : NetIncomeTaxNOWS : NotOtherwiseSpecifiedNWCH : NetworkChargeNWCM : NetworkCommunicationOCCC : ClientOwnedOCCPledgedCollateralOCDM : OrderChequeDomesticOCFG : OrderChequeForeignOFEE : OpeningFeeOPBC : OTCOptionBrokerOwnedCashCollateralOPCC : OTCOptionClientOwnedCashCollateralOPSB : OTCOptionBrokerOwnedSegregatedCashCollateralOPSC : OTCOptionClientOwnedCashSegregatedCashCollateralOPTN : FXOptionOTCD : OTCDerivativesOTHR : OtherOTLC : OtherTelecomRelatedBillPADD : PreauthorizedDebitPAYR : PayrollPCOM : PropertyCompletionPaymentPDEP : PropertyDepositPEFC : PensionFundContributionPENO : PaymentBasedOnEnforcementOrderPENS : PensionPaymentPHON : TelephoneBillPLDS : PropertyLoanDisbursementPLRF : PropertyLoanRefinancingPOPE : PointOfPurchaseEntryPPTI : PropertyInsurancePRCP : PricePaymentPRME : PreciousMetalPTSP : PaymentTermsPTXP : PropertyTaxRAPI : RapidPaymentInstructionRCKE : RepresentedCheckEntryRCPT : ReceiptPaymentRDTX : RoadTaxREBT : RebateREFU : RefundRELG : RentalLeaseGeneralRENT : RentREOD : AccountOverdraftRepaymentREPO : RepurchaseAgreementRETL : RetailPaymentRHBS : RehabilitationSupportRIMB : ReimbursementOfAPreviousErroneousTransactionRINP : RecurringInstallmentPaymentRLWY : RailwayROYA : RoyaltiesRPBC : BilateralRepoBrokerOwnedCollateralRPCC : RepoClientOwnedCollateralRPNT : BilateralRepoInternetNettingRPSB : BilateralRepoBrokerOwnedSegregatedCashCollateralRPSC : BilateralRepoClientOwnedSegregatedCashCollateralRRBN : RoundRobinRRCT : ReimbursementReceivedCreditTransferRRTP : RelatedRequestToPayRVPM : ReceiveAgainstPaymentRVPO : ReverseRepurchaseAgreementSALA : SalaryPaymentSASW : ATMSAVG : SavingsSBSC : SecuritiesBuySellSellBuyBackSCIE : SingleCurrencyIRSExoticSCIR : SingleCurrencyIRSSCRP : SecuritiesCrossProductsSCVE : PurchaseSaleOfServicesSECU : SecuritiesSEPI : SecuritiesPurchaseInhouseSERV : ServiceChargesSHBC : BrokerOwnedCollateralShortSaleSHCC : ClientOwnedCollateralShortSaleSHSL : ShortSellSLEB : SecuritiesLendingAndBorrowingSLOA : SecuredLoanSLPI : PaymentSlipInstructionSPLT : SplitPaymentsSPSP : SalaryPensionSumPaymentSSBE : SocialSecurityBenefitSTDY : StudySUBS : SubscriptionSUPP : SupplierPaymentSWBC : SwapBrokerOwnedCashCollateralSWCC : SwapClientOwnedCashCollateralSWFP : SwapContractFinalPaymentSWPP : SwapContractPartialPaymentSWPT : SwaptionSWRS : SwapContractResetPaymentSWSB : SwapsBrokerOwnedSegregatedCashCollateralSWSC : SwapsClientOwnedSegregatedCashCollateralSWUF : SwapContractUpfrontPaymentTAXR : TaxRefundTAXS : TaxPaymentTBAN : TBAPairOffNettingTBAS : ToBeAnnouncedTBBC : TBABrokerOwnedCashCollateralTBCC : TBAClientOwnedCashCollateralTBIL : TelecommunicationsBillTCSC : TownCouncilServiceChargesTELI : TelephoneInitiatedTransactionTLRF : NonUSMutualFundTrailerFeePaymentTLRR : NonUSMutualFundTrailerFeeRebatePaymentTMPG : TMPGClaimPaymentTPRI : TriPartyRepoInterestTPRP : TriPartyRepoNettingTRAD : CommercialTRCP : TreasuryCrossProductTREA : TreasuryPaymentTRFD : TrustFundTRNC : TruncatedPaymentSlipTRPT : RoadPricingTRVC : TravellerChequeUBIL : UtilitiesUNIT : UnitTrustPurchaseVATX : ValueAddedTaxPaymentVIEW : VisionCareWEBI : InternetInitiatedTransactionWHLD : WithHoldingWTER : WaterBill SDD purpose codes The categoryPurposeCode(1) and purposeCode(2) used in the SDDTransaction. SALA(1) (2)Salary PaymentTREA(1) (2)Treasury PaymentADVA(2)Advance PaymentAGRT(2)Agricultural TransferALMY(2)Alimony PaymentBECH(2)Child BenefitBENE(2)Unemployment Disability BenefitBONU(2)Bonus PaymentCASH(1) (2)Cash Management TransferCBFF(2)Capital BuildingCHAR(2)Charity PaymentCOLL(2)Collection PaymentCMDT(2)Commodity TransferCOMC(2)Commercial PaymentCOMM(2)CommissionCOST(2)CostsCPYR(2)CopyrightDIVI(1) (2)DividendFREX(2)Foreign ExchangeGDDS(2)Purchase Sale Of GoodsGOVT(1) (2)Gouvernment PaymentIHRP(2)Instalment Hire Purchase AgreementINTC(1) (2)Intra Company PaymentINSU(2)Insurance PremiumINTE(1) (2)InterestLIFC(2)Licence FeeLOAN(1) (2)LoanLOAR(2)Loan RepaymentNETT(2)NettingPAYR(2)Payment RollPENS(1) (2)PensionREFU (2)RefundRENT(2)RentROYA(2)RoyaltiesSCVE(2)Purchase Sale Of ServicesSECU(1) (2)SecuritiesSSBE(1) (2)Social Security BenefitSUBS(2)SubscriptionTAXS(1) (2)Tax PaymentCOMT(2)Consumer Third Party Consolidated PaymentDBTC(2)Debit Collection PaymentSUPP(1) (2)Supplier PaymentHEDG(1) (2)HedgingMSVC(2)Multiple Service TypesNOWS(2)Not Otherwise SpecifiedCARD(2)Card PaymentCDBL(2)Credit Card BillFERB(2)FerryAIRB(2)AirBUSB(2)BusRLWY(2)RailwayCVCF(2)Convalescent Care FacilityDNTS(2)Dental ServicesANTS(2)Anesthesia ServicesHLTC(2)Home Health CareHSPC(2)Hospital CareICRF(2)Intermediate Care FacilityLTCF(2)Long Term Care FacilityMDCS(2)Medical ServicesVIEW(2)Vision CareDMEQ(2)Durable Medicale EquipmentCBTV(2)Cable TV BillELEC(2)Electricity BillGASB(2)Gas BillPHON(2)Telephone BillOTLC(2)Other Telecom Related BillWTER(2)Water BillSTDY(2)StudyPRCP(2)Price PaymentINSM(2)InstallmentRINP(2)Recurring Installment PaymentOFEE(2)Opening FeeCFEE(2)Cancellation FeeGOVI(2)Government InsuranceINPC(2)Insurance Premium CarLBRI(2)Labor InsuranceLIFI(2)Life InsurancePPTI(2)Property InsuranceHLTI(2)Health InsuranceCLPR(2)Car Loan Principal RepaymentESTX(2)Estate TaxHLRP(2)Housing Loan RepaymentCSLP(2)Company Social Loan Payment To BankHSTX(2)Housing TaxINTX(2)Income TaxNITX(2)Net Income TaxNWCH(2)Network ChargeNWCM(2)Network CommunicationBEXP(2)Business ExpensesTRFD(2)Trust FundRCPT(2)ReceiptPTSP(2)Payment TermsOTHR(2)OtherWHLD(1)(2)With HoldingCORT(1)Trade Settlement PaymentVATX(1)Value Added Tax PaymentTRAD(1)Trade Error codes ErrorDetails ATTRIBUTESerrorCodeCode indicating the type of problem identified.errorComponentCode indicating the 3-D Secure component that identified the error.errorDescriptionText describing the problem identified.errorDetailAdditional detail regarding the problem identified. ErrorCode possible values101MESSAGE_RECEIVED_INVALID102MESSAGE_VERSION_NUMBER_NOT_SUPPORTED103SENT_MESSAGES_LIMIT_EXCEEDED201REQUIRED_ELEMENT_MISSING202CRITICAL_MESSAGE_EXTENSION_NOT_RECOGNIZED203FORMAT_ON_ONE_OR_MORE_ELEMENTS_INVALID_ACCORDING_SPECS204DUPLICATE_DATA_ELEMENT301TRANSACTION_ID_NOT_RECOGNIZED302DATA_DECRYPTION_FAILURE303ACCESS_DENIED_INVALID_ENDPOINT304ISO_CODE_NOT_VALID305TRANSACTION_DATA_NOT_VALID306MCC_NOT_VALID_FOR_PAYMENT_SYSTEM307SERIAL_NUMBER_NOT_VALID402TRANSACTION_TIMED_OUT403TRANSIENT_SYSTEM_FAILURE404PERMANENT_SYSTEM_FAILURE405SYSTEM_CONNECTION_FAILURE911DATA_FIELDS_RELEVANCE_CHECK_FAILURE912DUPLICATED_TRANSACTION_ID ErrorComponent possible values« C »THREE_DS_SDK« S »THREE_DS_SERVER« D »DIRECTORY_SERVER« A »ACCESS_CONTROL_SERVER Test values Test IBAN values Find below the list of HTTP return codes: DE91100000000123456789AXABFRPPAZ96AZEJ00000000001234567890AXABFRPPCY21002001950000357001234567AXABFRPPES7921000813610123456789AXABFRPPFR7630006000011234567890189AXABFRPPFO9264600123456789AXABFRPP Test cards Values You will find below a list of cards that you can use to test and check your integration. Visa Card numbers 4000 0000 0000 0051Card lost (41) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »4000 0000 0000 0069Fraud suspicion (59) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »4000 0000 0000 0077Insufficient funds (51) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »4000 0000 0000 0085To be refused (5) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »4556 5579 5572 6624Transaction successful (3DS) & Authentication = Y4916 9940 6425 2017Transaction successful (3DS) & Authentication = C4556 1041 6038 2032Transaction successful (NON 3DS) & Authentication = N4024 0071 7987 2394Transaction (NON 3DS) & Authentication = N4234 6319 8242 8908Transaction (3DS) & Authentication = I4234 6319 8242 8916Transaction successful (3DS) & Authentication = D : application flow4234 6319 8242 8924Transaction successful (3DS) & Authentication = D : browser flow4032 0389 8296 2700EEA=true ; region=EUROPE; productType=CONSUMER; cardType=DEBIT ;4032 0343 8883 4767EEA=true ; region=EUROPE; productType=CONSUMER; cardType=CREDIT ;4020 0280 0191 2012EEA=true ; region=EUROPE; productType=CONSUMER; cardType=UNKNOWN ;4032 0337 9569 2248EEA=true ; region=EUROPE; productType=CORPORATE; cardType=DEBIT ;4032 0368 1354 0364EEA=true ; region=EUROPE; productType=CORPORATE; cardType=CREDIT ;4032 0387 5662 0096EEA=true ; region=EUROPE; productType=CORPORATE; cardType=UNKNOWN ;4032 0358 5604 7592EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=DEBIT ;4032 0302 9068 3219EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=CREDIT ;4032 0377 5134 3001EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=UNKNOWN ;4032 0307 5488 6225EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=DEBIT ;4032 0310 2547 6341EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=CREDIT ;4032 0341 4311 3978EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=UNKNOWN ;4032 0309 5816 7398EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=DEBIT ;4032 0375 4480 7536EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=CREDIT ;4032 0366 9148 7225EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=UNKNOWN ;4032 0325 8917 3860EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=DEBIT ;4032 0388 0897 9557EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=CREDIT ;4032 0374 2147 1240EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=UNKNOWN ; Mastercard Card numbers 5333 2591 5564 3223Transaction successful (3DS) & Authentication = Y5306 8899 4283 3340Transaction successful (3DS) & Authentication = C5328 7203 8458 2224Transaction successful (NON 3DS) & Authentication = N5187 4346 4359 3002Transaction successful (NON 3DS) & Authentication = N5517 4500 0000 0168EEA=false ; region=US ; productType=CONSUMER ; cardType=CREDIT5223 8599 0000 0174EEA=false ; region=US ; productType=CORPORATE ; cardType=DEBIT5325 0900 0000 0115EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBIT5325 0900 0000 0008EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBIT5486 7467 7300 0005EEA=false ; region=EUROPE ; productType=CONSUMER ; cardType=DEBIT; Country=RUS5588 1000 0000 0007EEA=false ; region=CEMEA ; productType=CONSUMER ; cardType=DEBIT5122 9400 0000 0009EEA=false ; region=LATIN_AMERICA ; productType=CONSUMER ; cardType=DEBIT Amex Card numbers 3415 0209 8634 895Transaction successful (3DS) & Authentication = Y3486 3826 7931 507Transaction successful (3DS) & Authentication = C3456 9539 9207 589Transaction successful (NON 3DS) & Authentication = N3415 0209 8634 895EEA=false ; region=EUROPE ; productType=CONSUMER3486 3826 7931 507EEA=false ; region=EUROPE ; productType=CORPORATE3718 4294 2351 004EEA=false ; region=EUROPE ; productType=UNKNOWN3712 5311 3391 201EEA=false ; region=ASIA_PACIFIC ; productType=CONSUMER3423 1631 7472 410EEA=false ; region=ASIA_PACIFIC ; productType=CORPORATE3710 9829 7279 338EEA=false ; region=ASIA_PACIFIC ; productType=UNKNOWN CB Card numbers 4020 0235 6597 5380Transaction successful (NON 3DS), scheme : CB4020 0254 4041 8403Transaction successful (NON 3DS), scheme : CB_VISA5232 1035 2372 2651Transaction successful (NON 3DS), scheme : CB_MASTERCARD
Exports de données Vous pouvez réaliser plusieurs exports de votre compte aux formats CSV, EXCEL, ou JSON depuis votre Portail utilisateur. Pour cela, paramétrez votre recherche avec les filtres disponibles sur la page de l’export souhaité, cliquez sur « Rechercher » puis « Exporter ». En quelques secondes, vous recevrez le fichier par email et pourrez le télécharger à tout moment depuis votre Portail utilisateur Compte Exports 1. Export des transactions cartes Cet export vous permet d’obtenir le détail des transactions cartes que vous avez réalisées au cours d’une période donnée.Cet export simplifie la lecture de vos transactions carte en agrégeant les opérations d’autorisations et de débit, et présente des données complémentaires spécifiques aux transactions cartes. L’export contient les données suivantes : DénominationSignificationtransaction_creation_datedate de créationtransaction_ididentifiant de transactiontransaction_amountmontanttransaction_currencydevisetransaction_payout_amountvaleur de devise de règlementtransaction_payout_currencydevise de règlementtransaction_commision_amountfrais sur la transactiontransaction_commision_currencydevise des fraistransaction_fee_amountfrais fixes par transactiontransaction_3ds3DS (0=non, 1=oui)transaction_descriptiondescription définie par le marchandtransaction_sourceEC Ecommerce, DP Deposit, MO Mail ordertransaction_bank_coderetour autorisation banquetransaction_statusstatut de la transactiontransaction_authorization_statusstatut de l’autorisationtransaction_authorization_codecode d’autorisationtransaction_capture_statusstatut de la capturetransaction_capture_datedate de la capturetransaction_capture_amountmontant de la capturemerchant_transaction_ididentifiant de transaction marchandpoint_of_sale_ididentifiant du point de ventepoint_of_sale_namenom du point de ventemerchant_ididentifiant marchandmerchant_namenom du marchanddispute_amountmontant de la contestationdispute_currencydevise de la contestationdispute_datedate de la contestationrefund_amountmontant du remboursementrefund_currencydevise du remboursementrefund_datedate du remboursementcard_ididentifiant de la carte de paiementcard_first66 premiers chiffres de la cartecard_last44 derniers chiffres de la cartecard_cardholder_namenom du porteurcard_cardholder_emailemail du porteurcard_typetype de carte (crédit/débit/prepaid)card_productnom du produit carte (Infinite, Gold…)card_product_typecarte consumer ou corporatecard_commercial_brandréseau carte (VISA/Mastercard/CB)card_regioncontinent d’origine de la cartecard_countrypays d’origine de la cartecard_establishment_namenom de l’établissement qui fournit la cartecustomer_ididentifiant clientend_user_ipIP de l’utilisateurend_user_languagelangue de l’utilisateurbrowser_user_agentnavigateur de l’utilisateurreceipt_emailmail de réception de l’utilisateurclearing_numbernuméro de clearingmerchant_category_codeactivité du marchand Accès : Portail Utilisateur de RCT – Transactions Portail Utilisateur de PROD – Transaction 2. Export des remboursements cartes Cet export vous permet d’obtenir le détail des remboursements cartes que vous avez réalisées au cours d’une période donnée. Accès : Portail Utilisateur de RCT – Remboursements cartes Portail Utilisateur de PROD – Remboursements cartes 3. Export des contestations de transactions cartes Cet export vous permet d’obtenir le détail des contestations de transactions cartes (disputes/chargebacks) que vous avez reçues au cours d’une période donnée. Accès : Portail Utilisateur de RCT – Contestations cartes Portail Utilisateur de PROD – Contestations cartes 4. Export des abonnements (cartes et SDD) Cet export vous permet d’obtenir le détail des abonnements cartes et SDD que vous avez réalisés au cours d’une période donnée. Accès : Portail Utilisateur de RCT – Abonnements Portail Utilisateur de PROD – Abonnements
Créer des comptes Articles Informations générales Demande d'enrôlement Compléter un enrôlement Validation d'un enrôlement Compte de Monnaie Électronique limité Déplafonner un compte de Monnaie Électronique Retours, statuts et webhooks Informations générales Cette section explique le fonctionnement de la création de comptes CentralPay, qu’il s’agisse de comptes de paiement ou de comptes de monnaie électronique, ainsi que les méthodes disponibles pour initier un enrôlement utilisateur via nos outils (portail ou API), en fonction du modèle de partenariat. 🧾 Types de comptes CentralPay permet l’ouverture de deux types de comptes réglementés : Type de compteDescriptionExemples d’usageCompte de paiementCompte de paiement au sens de l’article L314-1 du Code monétaire et financier.Encaissement par carte, virement ou SEPA.Compte de monnaie électroniqueCompte prépayé en euros émis par CentralPay, selon les règles des Établissements de Monnaie Électronique.Wallets, marketplaces C2C, cashback, titres. L’attribution du type de compte dépend du modèle économique et du partenaire (marchand direct, partenaire DME, etc.). 🔄 Fonctionnement global de l’enrôlement L’ouverture d’un compte passe systématiquement par une procédure d’enrôlement incluant : La création d’une demande d’enrôlement : initiation d’un dossier contenant les premières informations (email, nom, prénom). La complétion de l’enrôlement : soumission par l’utilisateur des informations réglementaires et des justificatifs (KYC/KYB). La validation de l’enrôlement : analyse par CentralPay, pouvant aboutir à une ouverture de compte, une demande complémentaire ou un refus. 📥 Deux interfaces possibles InterfaceDescriptionPublic concernéPortail d’enrôlement CentralPayInterface hébergée par CentralPay, accessible via lien personnalisé.Tous types d’utilisateursAPI d’enrôlementInterface technique permettant à un partenaire d’initier ou compléter des enrôlements via API.Partenaires autorisés selon leur statut ⚠️ Conformité et réglementation Afin de respecter le cadre réglementaire applicable aux Prestataires de Services de Paiement, la répartition des rôles est strictement encadrée : CentralPay initie seul la contractualisation avec l’utilisateur. Le partenaire technique ne peut pas inciter, conseiller ni initier une ouverture de compte. Le partenaire technique n’intervient pas dans la collecte de justificatifs. Seuls les partenaires enregistrés comme MOBSP, Agent ou DME peuvent intervenir dans les étapes d’enrôlement élargies. Modèle partenairePeut initier une demande d’enrôlementPeut compléter un enrôlement (API)Peut transmettre des justificatifs KYCPartenaire TechniqueOui*❌ Non❌ NonPartenaire DMEOui, via API ou portail✅ Oui✅ OuiPartenaire AgentOui, via API ou portail✅ Oui✅ Oui (KYC Niveau 1 ou plus si mandat) * Le partenaire technique peut créer une demande d’enrôlement contenant uniquement les données de contact (email, nom, prénom, raison sociale), sans envoyer lui-même de lien d’enrôlement.CentralPay reste seul décideur de la suite du processus. Demande d'enrôlement Méthodes de création d’une demande d’enrôlement a. Depuis le portail utilisateur CentralPay Un utilisateur connecté au portail CentralPay peut initier une demande d’enrôlement depuis le menu : Plateforme > Enrôlements > CréerEn RCT : https://test-backoffice.centralpay.net/admin/onboarding/En PROD : https://backoffice.centralpay.net/admin/onboarding/ Il peut alors renseigner manuellement les champs décrits plus bas (dans le détail de l’appel API). Une fois la demande enregistrée, un lien de redirection vers le portail d’onboarding est généré automatiquement et peut être : envoyé automatiquement par e-mail via le Mailer CentralPay (sélectionner OUI dans le champ « Envoyer des emails à l’adresse ci-dessus »), ou copié manuellement pour un envoi par un autre canal (chat, SMS, etc.). b. Depuis l’API : POST /merchant-enrollments L’enrôlement peut aussi être initié automatiquement via l’API, en appelant : POST /merchant-enrollments L’appel permet de générer un identifiant d’enrôlement (uuid) et d’initier un parcours d’onboarding complet, qui pourra être poursuivi : soit via le portail utilisateur, soit entièrement via les endpoints API (voir partie “Compléter un enrôlement par API”). ⚠️ Aucun lien direct (enrollment_url) n’est retourné par l’API. Par défaut, la plateforme CentralPay envoie un e-mail à l’adresse définie dans profile[email][value].Pour désactiver cet envoi : "sendClaimEmail": falseSi vous désactivez l'envoi, vous pouvez transmettre manuellement l’URL d’accès à l’interface onboarding en reconstituant :En RCT : https://test-onboarding.centralpay.net/token/profile/[UUID]En PROD : https://onboarding.centralpay.net/token/profile/[UUID]Note : [UUID] est l’identifiant retourné dans la réponse à POST /merchant-enrollments. Créer une demande d’enrôlement depuis l’API (merchant-enrollment) 🇫🇷 Enrôlement simplifié via SIREN (France uniquement)CentralPay permet de pré-remplir automatiquement certaines informations pour les sociétés françaises disposant d’un numéro SIREN :1. Appeler l’endpoint : POST /api/legal-entity/siren2. Fournir le champ : { "siren": "123456789" }3. Si les informations sont valides, un uuid est retourné. Il doit être utilisé comme identityBadge dans la création d’enrôlement pour déclencher le parcours simplifié. Champs requis ChampTypeObligatoireDescriptionprofile[firstname][value]string (255)✅Prénom du titulaire. Validation : caractères alphabétiques et tirets (-). Depuis la version 1.15.0profile[lastname][value]string (255)✅Nom du titulaire. Validation : caractères alphabétiques et tirets (-). Depuis la version 1.15.0profile[email][value]string (255)✅Adresse email de contact. Depuis la version 1.15.0profile[phone][value]string✅Numéro de téléphone international. Depuis la version 1.15.0languagestring✅Langue préférée du marchand. Note : utilisez GET /api/locale pour les valeurs disponibles.accountTypeenum✅Type de compte à créer. Note : utilisez GET /api/merchant-enrollment/account-type.activitySectorUUID (36)✅Secteur d’activité du marchand. Note : utilisez GET /api/nauth/enrollment-claim/activity-sector.activityAgeUUID (36)✅ si type = LEGAL_ENTITY ou INDIVIDUAL_WITH_STATUSAncienneté de l’activité. Note : utilisez GET /api/nauth/enrollment-claim/activity-age.feeScheduleUUID (36)✅Grille tarifaire à appliquer. Note : obtenez les identifiants via POST /api/merchant-enrollment/fee-schedule.identityBadgeUUID✅ si enrôlement via SIRENIdentifiant SIREN (activant le parcours simplifié).contractUUID✅ si accountType = STANDARDContrat à appliquer. Note : utilisez GET /api/merchant-enrollment/contract. ⚙️ Champs avancés (optionnels) 🔧 Personnalisation du parcours ChampValeur par défautDescriptionworkflowModeSEQUENTIALMode de déroulement du parcours (seul le mode SEQUENTIAL est désormais disponible).Note : valeurs valides : SEQUENTIALtype—Type juridique : INDIVIDUAL, INDIVIDUAL_WITH_STATUS, LEGAL_ENTITY.Note : conditionne la structure du parcours.subType—Sous-type recommandé selon type.Note :Pour INDIVIDUAL_WITH_STATUS : SOLE_TRADER, MERCHANT, ARTISANPour LEGAL_ENTITY : ASSOCIATION, PUBLIC, COMMERCIAL, EIG, CIVILturnoverIsFixedfalseSi true, verrouille la déclaration de chiffre d’affaires.Note : facultatif 📫 Paramètres de communication ChampValeur par défautDescriptionsendClaimEmailtrueEnvoie l’e-mail d’enrôlement avec le lien portail.allowedEmailCommunicationtrueSi false, désactive tous les envois d’e-mails pendant le parcours d’onboarding.sendProfileCreationEmailfalseEnvoie un email à l’utilisateur une fois le profil complété.sendAccountCreationEmailtrueEnvoie un email une fois le compte CentralPay activé. 👤 Données personnelles Tous les champs ci-dessous sont facultatifs mais permettent de pré-renseigner la constitution du profil utilisateur du futur titulaire du compte. ChampTypeDescriptionprofile[nationality][country]string (3)Nationalité (format ISO 3166-1 alpha-3).profile[birthday][value]dateDate de naissance.Validation : ≥ 18 ans, ≤ 110 ansprofile[place_of_birth][value]stringLieu de naissance.profile[country_of_birth][country]string (3)Pays de naissance (ISO 3166-1 alpha-3).birthdayConfirmation[value]dateRequis uniquement si le marchand est affilié à un agent.Format : YYYY-MM-DD 🏠 Adresse (optionnelle) Ces champs peuvent être fournis pour pré-remplir l’adresse du titulaire. ChampTypeDescriptionprofile[address][nameLine1]string(255)Ligne 1 de l’adresse.Contraintes : ^[a-zA-Z0-9\\p{L} ´'\\-]{1,255}$profile[address][locality]string(255)Ville.profile[address][postalCode]string(20)Code postal.profile[address][country]string(3)Pays (ISO 3166-1 alpha-3). 📋 Autres options ChampTypeDescriptioncontractUUID (36)Contrat à appliquer.Obligatoire si accountType = STANDARD.Note : GET /api/merchant-enrollment/contractcguUUID (36)CGU à appliquer.Note : POST /api/merchant-enrollment/cguDepuis version 1.18.0customReferencestring (100)Référence personnalisée (usage interne).payoutProfileUUID (36)Profil de virement à associer.Note : POST /api/merchant-enrollment/payout-profileadministrativeContactstring (255)Contact administratif référent.Depuis version 1.18.0technicalContactstring (255)Contact technique.Depuis version 1.18.0financialContactstring (255)Contact financier.Depuis version 1.18.0addSecurityReferenceboolAffiche une référence de sécurité lors de la validation du contrat.Uniquement valable pour : STANDARD, PARTNER, RESELLER.Défaut : falsehookUUIDIdentifiant de webhook à notifier.Note : voir onglet Full API reference pour obtenir les valeurs possibles. Compléter un enrôlement Une fois la demande d’enrôlement créée, le titulaire du futur compte peut finaliser son parcours de deux manières : via le portail CentralPay ou par intégration complète à l’API. ✅ Option 1 – Compléter l’enrôlement via le portail CentralPay Le lien d’accès à l’onboarding (généré ou reconstruit lors de la création d’enrôlement) permet au futur titulaire de compte de renseigner ses informations et d’uploader les documents demandés depuis l’interface CentralPay, de manière autonome. Vous êtes notifié automatiquement à chaque étape de l’enrôlement ou uniquement à sa finalisation (selon votre paramétrage webhook). Une fois le parcours complété par l’utilisateur, les données sont transmises aux équipes conformité de CentralPay pour validation. Dans certains cas, des documents complémentaires pourront être requis par les analystes CentralPay. 🔧 Option 2 – Compléter l’enrôlement par API Il est également possible de piloter l’ensemble du parcours d’enrôlement via API, étape par étape. Le processus suit 4 grandes phases : Compléter le profil Déterminer le workflow Compléter le workflow Finaliser l’enrôlement 1. Compléter le profil 📌 Statut du profil Un profil commence toujours avec un statut workflow.status = "ON_GOING". Pour être considéré comme complété, ce statut doit devenir ACCEPTED. ⚠️ En mode SEQUENTIAL, ce statut peut revenir à ON_GOING lors du déblocage de questions supplémentaires. Il convient de le recontrôler à chaque étape. 🔁 Obtenir la première activité à compléter Récupérer l’activityUuid via : GET /api/nauth/merchant-enrollment/{enrollmentId} Parcourir : profile.workflow.activities[0].uuid Puis interroger : GET /api/nauth/profile/{activityUuid}/activity 📝 Soumettre les données Envoyer les données attendues via un formulaire : POST /api/nauth/profile/{activityUuid}/activityContent-Type: multipart/form-data Exemple de champs attendus (activité “Identity Informations”) : ChampTypeContraintesfirstname[value]string255 caractèreslastname[value]string255 caractèresmail[value]stringEmail validephone[value]stringNuméro international (min. 10 caractères)birthday[value]stringDate au format YYYY-MM-DD, entre 18 et 110 ansplace_of_birth[value]string—country_of_birth[country]stringISO 3166-1 alpha-3 Autres types d’activité possibles : Domiciliations : informations d’adresse Pièce d’identité : type (IDENTITY_CARD, PASSPORT) + documents (2 fichiers pour carte, 1 pour passeport) Répétez ce processus tant que le statut d’une activité reste "TODO". 2. Déterminer le workflow Cette étape débloque la suite du parcours (collecte de documents, justificatifs, etc.). POST /api/merchant-enrollment/{enrollmentUuid}/activity/{uuid} Payload attendu : ChampTypeObligatoireNotestypeEnum✅INDIVIDUAL, INDIVIDUAL_WITH_STATUS, LEGAL_ENTITYbankAccountInEEACountrybool✅—turnoverUUID (36)✅POST /api/nauth/enrollment-claim/turnovercompanyNamestring(255)Si LEGAL_ENTITY—activityAgeUUID (36)Si LEGAL_ENTITY ou INDIVIDUAL_WITH_STATUSGET /api/nauth/enrollment-claim/activity-agesubTypeENUMrecommandéDépend du type (voir détails ci-dessous)isCompanyboolSi LEGAL_ENTITY— ❗ Si vous avez utilisé un identityBadge (enrôlement via SIREN), cette étape est automatiquement sautée : le workflow est déjà déterminé. 3. Compléter le workflow Chaque étape du workflow suit la même logique que celle du profil. Types de step possibles : FORM : champs à renseigner via key[value] API_CALL : traitement externe VALIDATION : action manuelle par les équipes CentralPay ENDED : étape finalisée 📘 Exemple : pour le champ company_legal_status, il faut envoyer company_legal_status[value]. Les endpoints utilisés sont : POST /api/merchant-enrollment/{merchantUuid}/activity/{uuid}POST /api/merchant-enrollment/{uuid}/complete Validation d'un enrôlement Une fois toutes les étapes du profil et du workflow complétées (que ce soit via le portail d’onboarding CentralPay ou par API), l’enrôlement entre en phase de vérification par les équipes conformité de CentralPay. 🔍 Vérification par le service conformité Les analystes procèdent à une analyse complète des informations et documents collectés au cours du parcours. Cette étape peut mener à l’une des décisions suivantes : 🟢 Validation de l’enrôlement Si les éléments fournis sont complets, lisibles, et conformes aux obligations réglementaires, l’enrôlement est validé. CentralPay procède alors automatiquement à la création : du compte CentralPay (Merchant), du compte de paiement (Wallet), du profil utilisateur légal du compte CentralPay (BO User). 📌 Ces entités sont accessibles immédiatement depuis vos outils de supervision (portail ou API). 🟡 Demande de compléments Si certaines pièces sont manquantes, floues, expirées ou incohérentes, une demande de documents complémentaires peut être émise par le service conformité. Cette demande est : soit transmise par email directement au futur titulaire du compte, soit affichée dans le portail d’onboarding CentralPay, si la demande le permet. 🔁 L’utilisateur pourra compléter les pièces demandées pour relancer la vérification. 🔴 Refus de l’enrôlement Dans certains cas (documents non valides, identité invalide, incohérences non résolues, risque trop élevé), l’ouverture du compte peut être refusée. Aucune entité CentralPay (BO User, Wallet, Merchant) n’est alors créée. 🔔 Notifications via webhook Quel que soit le scénario de sortie (validation, complément ou refus), vous êtes notifié en temps réel via les webhooks configurés. Cela vous permet de : suivre les enrôlements au fil de l’eau, adapter votre UX si l’enrôlement est refusé ou en attente, déclencher des actions internes (création CRM, attribution, etc.). Compte de Monnaie Électronique limité CentralPay permet la création de comptes de monnaie électronique (ou Wallets) pour stocker et utiliser des valeurs numériques. Deux parcours complémentaires sont proposés : Création rapide d’un Wallet sans KYC (compte limité) : accessible immédiatement avec des plafonds réglementaires. Déplafonnement du Wallet via enrôlement KYC (compte vérifié) : levée des limites après vérification des documents. Ce fonctionnement est adapté aux parcours progressifs : un utilisateur peut créer un compte limité pour un premier usage, puis être invité à compléter son profil pour accéder à l’ensemble des fonctionnalités. Création d’un compte de Monnaie Électronique limité CentralPay permet la création de comptes de monnaie électronique utilisables immédiatement, sans collecte de documents, dans un cadre réglementaire strict. Les comptes de monnaie électronique limités sont réservés aux individuels (personnes physiques). Les personnes morales ne peuvent pas disposer de ce type de compte. 📋 Limites réglementaires Solde maximal : 150 € Encaissement glissant : 150 € sur 30 jours Ce seuil s’appuie sur les dispositions de l’article R561-16 du Code monétaire et financier concernant les comptes de monnaie électronique non vérifiés. ✅ Ce type de compte peut ensuite être déplafonné par enrôlement KYC (voir plus bas). 🧭 Étape 1 – Créer un Customer Le Wallet doit être rattaché à un objet Customer représentant l’utilisateur final. 👉 Documentation – Profils Clients 🧭 Étape 2 – Créer un Wallet POST /wallets ✅ Champs obligatoires ChampTypeDescriptionNotecustomerIdUUIDIdentifiant du CustomerRequis sauf si merchantId est fournicurrencystring (3)Devise du Wallet (ex. "EUR")ISO 4217 – format 3 lettres 📝 Champs optionnels ChampTypeDescriptionreferencestringRéférence métieractivationDatedateDate d’activationexpirationDatedateDate d’expirationadditionalDataobjectDonnées personnalisées (JSON) 🔁 Étapes complémentaires – Gérer un Wallet limité Une fois un Wallet créé, CentralPay vous permet de : le modifier (ex. : ajouter une date d’expiration, une référence, un Merchant) le consulter en détail lister les Wallets existants pour un Customer ou Merchant ✏️ Modifier un Wallet POST /wallets/{walletId} Ce service permet de mettre à jour certains attributs du Wallet sans le recréer. ✅ Champs obligatoires ChampTypeDescriptionNotewalletIdUUIDIdentifiant du Wallet à mettre à jourRequis dans l’URL et/ou le corps de requête 📝 Champs optionnels ChampTypeDescriptionNotereferencestringRéférence personnalisée du Wallet—expirationDatedateDate d’expiration du WalletYYYY-MM-DDactivationDatedateDate d’activation du WalletYYYY-MM-DDadditionalDataobjectDonnées métier structurées (clé/valeur JSON)—merchantIdUUIDPour rattacher un Wallet à un Merchant spécifiqueFacultatif – à ne pas confondre avec customerId 🔎 Consulter un Wallet GET /wallets/{walletId} Ce service permet de récupérer les informations détaillées d’un Wallet existant. ✅ Paramètres requis ChampTypeDescriptionNotewalletIdUUID (36)Identifiant du WalletLe Wallet doit appartenir au Merchant connecté ou à l’un de ses sous-marchands 📘 Description des champs ChampTypeDescriptionNotecurrencystringDevise du WalletISO 4217 (ex. EUR)available[].amountintSolde disponible en centimesEx. : 10500 = 105,00 €pending[].amountintSolde en attente (transactions en cours)—referencestringRéférence du WalletFacultatifadditionalDataobjectDonnées personnaliséesJSON libre 📚 Lister les Wallets d’un Customer GET /wallets Permet d’obtenir la liste des Wallets créés pour un même Customer. ✅ Paramètres requis ChampTypeDescriptioncustomerIdUUIDIdentifiant du CustomercurrencystringDevise (ex. "EUR") 📝 Paramètres optionnels ChampTypeDescriptionNoteafterstringNe retourner que les Wallets créés après cette dateFormat ISO 8601beforestringNe retourner que les Wallets créés avant cette dateFormat ISO 8601limitstringNombre d’éléments par pageDéfaut : 10pagestringIndex de la pageDéfaut : 1 Schéma de création d’un compte de ME limité Déplafonner un compte de Monnaie Électronique Un Wallet peut être converti en compte vérifié (limites levées) via un enrôlement complet, déclenché par l’API. 🧭 Étape 1 – Créer un enrôlement POST /merchant-enrollments Vous devez inclure le walletId du Wallet limité existant. ✅ Champs obligatoires ChampTypeDescriptionNotewalletIdUUIDLien avec le Wallet ME à déplafonnerUUID valideprofile[firstname][value]string (255)PrénomAlpha + -profile[lastname][value]string (255)NomAlpha + -profile[email][value]string (255)Email de contact—profile[phone][value]string (15)Téléphone international—profile[birthday][value]date (YYYY-MM-DD)Date de naissanceEntre 18 et 110 ansprofile[place_of_birth][value]string (255)Lieu de naissance—profile[country_of_birth][country]string (3)Pays de naissanceISO 3166-1 alpha-3languagestring (3)"fr" ou "en"—accountTypestring"BASIC"—typestring"INDIVIDUAL"—activitySectorUUID (36)Secteur d’activitéGET /api/nauth/enrollment-claim/activity-sectorfeeScheduleUUID (36)Grille tarifairePOST /api/merchant-enrollment/fee-scheduleturnoverUUID (36)CA annuel attenduPOST /api/nauth/enrollment-claim/turnoverworkflowDefinitionUUIDModèle de workflowfournie par CentralPayprofileWorkflowDefinitionUUIDModèle de profilfournie par CentralPayworkflowModestring"SEQUENTIAL"RequisallowedEmailCommunicationbooleanConsentement à recevoir des emailstrue ou false 📝 Champs facultatifs ChampTypeDescriptionsendClaimEmailbooleanEnvoi de l’e-mail d’enrôlement (défaut : true)sendProfileCreationEmailbooleanEmail après profil complétésendAccountCreationEmailbooleanEmail à l’ouverture du compte vérifiécustomReferencestringRéférence internetechnicalContact, administrativeContact, financialContactstring(255)Contacts métiersaddSecurityReferencebooleanAffiche une référence sécurité (pour STANDARD, PARTNER, RESELLER)hookUUIDHook techniquebirthdayConfirmation[value]dateSi affilié à un agent 🧭 Étape 2 – Compléter un enrôlement KYC (via autocomplete) Pour accélérer le processus d’enrôlement, vous pouvez compléter d’un seul coup toutes les données attendues en appelant : POST /merchant-enrollment/{uuid}/autocomplete 📍 Adresse de résidence ChampTypeObligatoireDescriptionNoteaddress[nameLine1]string✅Numéro et nom de rue—address[locality]string✅Ville de résidence—address[postalCode]string✅Code postal—address[country]string✅Pays de résidenceISO 3166-1 alpha-3 🪪 Document d’identité ChampTypeObligatoireDescriptionNoteidentityDocument[type]string✅Type de documentIDENTITY_CARD, PASSPORT, RESIDENCE_PERMIT, VISA, IDENTITY_DOCUMENT_RECEIPTidentityDocument[documents][0]fichier✅Recto ou scan principalJPG, JPEG ou PNGidentityDocument[documents][1]fichier✅ si IDENTITY_CARDVerso ou page complémentaireJPG, JPEG ou PNGidentityDocument[issuingCountry]string✅Pays émetteurISO 3166-1 alpha-3identityDocument[expiryDate]string❌Date d’expirationFormat YYYY-MM-DDidentityDocument[checkId]string❌ID de contrôle (Onfido)—identityDocument[documentNumber]string❌Numéro du document—identityDocument[mrzLine1]string❌Ligne MRZ 1—identityDocument[mrzLine2]string❌Ligne MRZ 2— Cas particuliers ChampObligatoireConditionDescriptionidentityDocument[proofOfIdentityDocument]✅si type = IDENTITY_DOCUMENT_RECEIPTJustificatif visuel du récépisséidentityDocument[proofOfIdentityDocuments][*]✅idemPlusieurs fichiers si applicableidentityDocument[proofOfIdentityDocumentExpiryDate]✅si fichier proofOfIdentityDocument fourniFormat YYYY-MM-DD 🏦 Données bancaires (facultatif mais recommandé) ChampTypeObligatoireDescriptionNoteiban[value]string❌IBAN à vérifierFormat IBAN validebic[value]string❌Code BIC/SWIFT—ibanDocument[document]fichier❌Justificatif bancaire (RIB, relevé)JPG, JPEG ou PNG 🧾 Données KYC complémentaires (riskData) Tous les champs suivants sont requis sauf mention contraire. ChampTypeObligatoireDescriptionNoteriskData[isPep]bool✅Personne politiquement exposée ?défaut : falseriskData[isInSanctionList]bool✅Appartient à une liste de sanctions ?défaut : falseriskData[residentAlpha3Code]string✅Pays de résidenceISO 3166-1 alpha-3riskData[isHighRiskResident]bool✅Pays de résidence à risque ?—riskData[nationalityAlpha3Code]string✅NationalitéISO 3166-1 alpha-3riskData[isHighRiskNationality]bool✅Nationalité à risque ?—riskData[isHighRiskMCCActivitySector]bool✅Secteur MCC à risque ?—riskData[MCCActivitySector]int✅Code MCC (NAF ou secteur)—riskData[monthlyLimit]int✅Limite mensuelle déclarée (en centimes)Ex. 150000 = 1500,00 €riskData[monthlyLimitCurrencyAlphabeticCode]string✅Devise (ex. EUR)ISO 4217riskData[isCrossBorderPayment]bool❌Paiements transfrontaliers ?Défaut : trueriskData[declaredMonthlyRevenue]int❌Revenus déclarés (en centimes)—riskData[verifiedMonthlyRevenue]int✅ si full KYCRevenus vérifiés— 📄 Documents complémentaires (si requis) ChampTypeObligatoireDescriptionNoteproofOfAddressDocument[documents][0]fichier✅ si profil à risqueJustificatif de domicileJPG, JPEG ou PNGincomeDocument[document]fichier✅ si full KYC requisJustificatif de revenus (1 doc)JPG, JPEG ou PNGincomeDocument[documents][*]fichier✅ si full KYC requisPlusieurs fichiers possiblesJPG, JPEG ou PNG 📎 Autres documents (si nécessaires à la levée de limite) ChampTypeDescriptionNotesadditionalDocuments[X]['type']stringType du document transmisEx. : UBO_DECLARATION, PROOF_OF_VAT_REGISTRATION, LICENSING_AGREEMENT, etc.additionalDocuments[X]['documents'][X]fichierFichier transmisFormat : JPG, JPEG, PNG 📘 La liste complète des types de document acceptés est documentée dans l'Open API. 🧩 Données libres (obligatoire même vide) ChampTypeObligatoireDescriptionmetaDataJSON object✅Métadonnées libres, au format {"key": "value"} (peut être vide) 🧭 Étape 3 – Corriger un enrôlement rejeté (autoupdate) Lorsque le service conformité refuse un ou plusieurs documents (ex. : carte d’identité floue, pièce expirée), vous pouvez soumettre uniquement les éléments refusés via une requête d’auto-mise à jour. POST /merchant-enrollment/{uuid}/autoupdate 🪪 Correction de document d’identité ChampTypeObligatoireDescriptionNoteidentityDocument[type]string✅Type de document à corrigerIDENTITY_CARD, PASSPORT, RESIDENCE_PERMIT, VISA, IDENTITY_DOCUMENT_RECEIPTidentityDocument[documents][0]fichier✅Recto du document (ou fichier unique)JPG, JPEG ou PNGidentityDocument[documents][1]fichier✅ si type = IDENTITY_CARDVerso de la CNIJPG, JPEG ou PNGidentityDocument[issuingCountry]string✅ si document transmisPays émetteurISO 3166-1 alpha-3 📄 Document d’identité complémentaire (si requis) ChampTypeObligatoireDescriptioncomplementaryIdentityDocument[documents][0]fichier✅ si exigéScan ou photo supplémentairecomplementaryIdentityDocument[expiryDate]string✅Date d’expiration (YYYY-MM-DD)complementaryIdentityDocument[documentNumber]string✅Numéro du documentcomplementaryIdentityDocument[mrzLine1]string✅MRZ ligne 1complementaryIdentityDocument[mrzLine2]string✅MRZ ligne 2complementaryIdentityDocument[issuingCountry]string✅Pays émetteur (ISO alpha-3) 🧾 Documents de revenus ChampTypeObligatoireDescriptionincomeDocument[document]fichier✅ si requisFichier unique JPG/JPEG/PNGincomeDocument[documents][*]fichier✅ si multiples attendusPlusieurs documents par index ([0], [1], etc.) 🗂 Compléments d’information personnelle ChampTypeObligatoireDescriptionprofile[firstname][value]string❌Prénomprofile[lastname][value]string❌Nomprofile[birthday][value]string❌Date de naissanceprofile[place_of_birth][value]string❌Lieu de naissanceprofile[country_of_birth][country]string❌Pays de naissance (ISO 3166-1 alpha-3) 🏠 Correction d’adresse (si refusée) ChampTypeObligatoireDescriptionprofile[address][nameLine1]string❌Adresse – ligne 1profile[address][postalCode]string❌Code postalprofile[address][country]string❌Pays (ISO alpha-3)profile[address][locality]string❌Ville 🔍 Mise à jour des données KYC (riskData) Tous les champs suivants sont requis sauf mention contraire. Ils doivent être renvoyés à l’identique ou mis à jour si modifiés dans le cadre de la correction. ChampTypeObligatoireDescriptionNoteriskData[isPep]boolean✅PEP ?défaut : falseriskData[isInSanctionList]boolean✅Sur une liste de sanctions ?défaut : falseriskData[residentAlpha3Code]string✅Pays de résidenceISO alpha-3riskData[isHighRiskResident]boolean✅Pays de résidence à risque ?—riskData[nationalityAlpha3Code]string✅NationalitéISO alpha-3riskData[isHighRiskNationality]boolean✅Nationalité à risque ?—riskData[isHighRiskMCCActivitySector]boolean✅Secteur à risque ?—riskData[MCCActivitySector]int✅Code MCC métier—riskData[monthlyLimit]int✅Limite mensuelle (en centimes)[0 ; 190000]riskData[monthlyLimitCurrencyAlphabeticCode]string✅Devise (ex. EUR)ISO 4217riskData[isCrossBorderPayment]boolean❌Paiements transfrontaliersdéfaut : trueriskData[declaredMonthlyRevenue]int❌Revenus déclarés—riskData[verifiedMonthlyRevenue]int✅ si full KYCRevenus vérifiés (centimes) 📁 Documents additionnels (optionnels ou exigés) ChampTypeObligatoireDescriptionadditionalDocuments[X]['type']string✅ si documents attendusType du justificatifadditionalDocuments[X]['documents'][X]fichier✅Fichiers associés (JPG, JPEG, PNG) 🧩 Autres champs ChampTypeObligatoireDescriptionfullKycboolean❌Permet d’imposer un KYC complet ou simplifié (true / false) 🧭 Étape 4 – Suivre le statut d’un enrôlement Une fois un enrôlement créé et complété, vous pouvez à tout moment interroger son statut pour : vérifier l’état d’avancement (ON_GOING, ACCEPTED, REFUSED) ; suivre les étapes en attente dans le workflow ; extraire les données de profil déjà soumises. 🔍 Récupérer un enrôlement GET /merchant-enrollment/{enrolmentId} ✅ Paramètres requis ChampTypeObligatoireDescriptionNoteenrolmentIdUUID (36)✅Identifiant de l’enrôlement retourné lors de la création (POST /merchant-enrollments)Format UUID standard 📌 L’enrôlement doit appartenir à l’espace autorisé par vos identifiants API (marchand ou sous-marchand). 🔎 Champs principaux de la réponse ChampTypeDescriptionuuidUUIDIdentifiant unique de l’enrôlementworkflow.statusstringStatut du processus (ON_GOING, ACCEPTED, REFUSED)workflow_modestring"SEQUENTIAL" ou "CONTINUAL"workflow.activities[]tableauListe des activités (étapes) encore à compléterprofile[...]objetDonnées de profil déjà soumises, avec leur statutconformity_statusstringÉtat de conformité global (ON_GOING, REVIEW, APPROVED, etc.)created_atdatetimeDate de création de l’enrôlementactivity_sector.namestringSecteur déclaré dans l’enrôlement 🧠 À surveiller Tant qu’une activité a un state = TODO, l’enrôlement est incomplet. Lorsqu’aucune activité n’est en attente et que le workflow.status = ACCEPTED, l’utilisateur est validé. En cas de workflow.status = REFUSED, aucun Wallet vérifié ne sera généré. Schéma de validation KYC d’un compte de ME Retours, statuts et webhooks 1. Codes de retour liés à la création de compte La création d’un compte marchand via l’API d’enrôlement déclenche un processus automatisé permettant à CentralPay de collecter et valider les informations nécessaires à l’ouverture du compte. En cas d’échec, une réponse d’erreur HTTP est retournée immédiatement à l’appel API, précisant le champ en erreur et la nature du rejet (donnée manquante, incohérente ou invalide). ⚠️ Il n’existe pas de table de codes de retour centralisée pour ces erreurs, car elles sont liées aux validations dynamiques effectuées par champ. L’erreur retournée est toujours structurée dans le corps de réponse et permet de corriger précisément le point bloquant. 2. Statuts liés aux enrôlements Consultez les Statuts Merchant Enrollment ➝ 3. Webhooks liés aux enrôlements Consultez les Webhooks d’Onboarding ➝
Onboarding Articles Create Enrollement Complete enrollment Update enrollment Search enrollement Enrollment Details E-money Misc Create Enrollement Complete enrollment Update enrollment Search enrollement Enrollment Details E-money Misc
Conditions générales d’utilisation L’utilisation des services CentralPay est encadrée par plusieurs documents contractuels que chaque titulaire de compte doit consulter et accepter avant l’activation de son compte. 🔗 Accès aux conditions générales Les dernières versions en vigueur des conditions générales CentralPay sont disponibles ici :👉 centralpay.com/fr/cgu ⚖️ Deux types de CGU applicables CentralPay propose deux catégories de comptes, soumises à des conditions générales distinctes en fonction du service souscrit : Type de compteConditions générales applicablesCompte de paiementConditions générales de service de paiementCompte de monnaie électroniqueConditions générales de service de monnaie électronique 🔐 Obligation d’acceptationCes conditions générales doivent être lues et acceptées électroniquement par le titulaire de chaque compte, qu’il soit ouvert directement par un marchand, ou via un partenaire CentralPay. 🧾 Contrat cadre pour les encaissements pour compte propre Dans le cas où un compte est utilisé pour encaisser des fonds pour compte propre (modèle marchand), CentralPay met également à disposition un modèle de contrat cadre dédié : Ce contrat précise les droits et obligations liés à l’utilisation du compte pour l’encaissement d’opérations commerciales, Il est signé électroniquement par le représentant légal ou par une personne habilitée (via délégation de pouvoir). 👉 centralpay.com/fr/cgu
Documentation Articles Guide de démarrage rapide > Le compte CentralPay Services liés au compte Liens de paiement Transaction par carte Transaction par virement Transaction prélèvement SEPA Paiements récurrents Authentification 3DS 2.2 Créer des comptes Transférer des paiements Plugin CMS Cas d'usages Guide de démarrage rapide > 1. Entrée en relation Pour commencer, découvrez nos offres et choisissez la méthode d’entrée en relation la plus adaptée à votre projet : Consultez nos offres tarifaires Présentez votre projet à notre équipe commerciale Choisissez le modèle d’entrée en relation adapté à votre activité Découvrez les étapes d’entrée en relation 2. Création de votre compte de test CentralPay met à votre disposition un environnement de test (RCT) pour développer et valider votre intégration : Compte de test Marchand : Pour tester uniquement la solution d’encaissement Smart Collection, demandez un compte de test via notre formulaire. Compte de test Partenaire : Pour tester l’encaissement (Smart Collection) et les transferts de fonds (Easy Wallet), contactez notre service client. Nous créerons et paramétrerons votre compte de test en conséquence. 3. Choix de votre méthode d’intégration Choisissez la méthode d’intégration qui correspond à vos besoins : Intégration Smart : Utilisez les demandes de paiement et la page de paiement CentralPay pour encaisser vos transactions. Les parcours clients sont préconfigurés, pour un déploiement rapide. Intégration Custom : Intégrez directement les services API pour les transactions par carte, par virement SEPA (SCT) et/ou par prélèvement SEPA (SDD). Cette approche vous permet de maîtriser entièrement l’expérience client, mais requiert un développement plus avancé. 4. Paramétrage de votre compte Votre compte CentralPay peut être configuré de manière autonome ou avec l’accompagnement de notre équipe support. Important : les paramétrages réalisés sur votre compte de test (RCT) ne sont pas automatiquement répliqués en production (PRD). Veillez à les reconfigurer une fois votre compte de production activé. Paramétrages principaux : Accès d’authentification API Déclaration des domaines autorisés (si intégration Custom) Comptes de paiement et comptes bancaires de sortie Utilisateurs du Portail Points de vente Webhooks Identifiant de Créancier SEPA (ICS) Paramétrages secondaires : Emails de contact du compte Règles d’acceptation Reversements Libellé de relevé bancaire Notifications automatiques Page de paiement SmartForm Profils de demandes de paiement Paramétrage des nouvelles tentatives automatiques pour les échecs de prélèvement carte Tentatives automatiques pour les échecs de prélèvement SEPA 5. Simuler des paiements Avant la mise en production, effectuez des simulations de paiement client dans votre compte de test (RCT) pour vérifier l’intégration : Carte : Utilisez nos cartes de test pour simuler différents statuts de transaction. Virement SEPA (SCT) : Créez une ou plusieurs transactions SCT puis demandez à notre support de simuler leur traitement. Prélèvement SEPA (SDD) : Utilisez un IBAN/BIC de test fourni dans notre documentation. 6. Mise en production Une fois vos tests validés en environnement RCT, préparez le passage en production (PRD). Rappel : aucun paramétrage n’est automatiquement copié de RCT vers PROD. Récupérer les credentials API pour l’environnement PROD Vérifier l’URL API de production Récupérer la merchantPublicKey pour générer des cardToken Informer CentralPay de toute mise en production ou évolution majeure Déclarer l’URL de votre site dans la configuration de votre point de vente Vérifier l’accès à la page support depuis le Portail utilisateur Vous pouvez ensuite effectuer une ou deux transactions réelles à 1 € pour vérifier le bon fonctionnement du paiement en production. Le compte CentralPay Compte CentralPay Le compte CentralPay est ouvert au nom d’une entité (personne physique ou morale) et permet d’accéder à nos services d’encaissement, de paiement ou de gestion de la monnaie électronique. Il constitue la base : Contractuelle : rattachement à une grille tarifaire, acceptation des CGU, contrat d’acceptation le cas échéant Technique : authentification, accès API, création des utilisateurs Fonctionnelle : paramétrage des points de vente, scénarios de notification, reversements, règles d’acceptation Réglementaire : gestion du KYC/KYB, conformité à la réglementation Un compte CentralPay peut contenir un ou plusieurs comptes de paiement ou comptes de monnaie électronique, selon les services activés. 1. Types de comptes selon le modèle d’intégration Chaque compte CentralPay est associé à un modèle d’utilisation précis. Pour plus de détails sur l’entrée en relation, consultez nos pages dédiées aux modèles d’intégration. Marchand Type : STANDARD Le Marchand est une entreprise ou un professionnel qui encaisse des paiements pour son propre compte. Il dispose d’un ou plusieurs comptes de paiement, d’un contrat d’acceptation, et peut accéder aux services CentralPay via API ou via un partenaire. 👉 En savoir plus sur le modèle Marchand Intégrateur Type : STANDARD L’Intégrateur accompagne plusieurs Marchands dans leur intégration technique avec CentralPay. Chaque Marchand dispose de son propre point de vente et d’un contrat individuel. L’Intégrateur utilise les accès API fournis par chaque Marchand, dans le cadre d’une relation contractuelle. Dispose d’un compte CentralPay type Marchand pour ses propres besoins Un point de vente distinct est créé pour chaque Marchand accompagné Peut initier des transactions techniques via les accès API du Marchand CentralPay facture chaque Marchand directement 👉 En savoir plus sur le modèle Intégrateur Intégrateur MOBSP Type : STANDARD + MOBSP L’Intégrateur MOBSP est un Intégrateur disposant d’un mandat réglementaire. Il peut initier une demande d’entrée en relation pour le compte d’un Marchand, et l’accompagner techniquement via l’API d’onboarding. Comme tout Intégrateur, il agit uniquement via les accès API fournis par le Marchand. Mêmes droits et fonctionnement qu’un Intégrateur Peut initier une demande d’enrôlement complète via API Peut accompagner le marchand durant l’enrôlement 👉 En savoir plus sur le modèle Intégrateur MOBSP Partenaire Technique Type : STANDARD Le Partenaire Technique développe une solution d’encaissement opérée depuis un point de vente unique, pour le compte de plusieurs Marchands ou Participants. Il utilise ses propres accès API pour superviser les opérations liées à cette structure centralisée. Un seul point de vente est utilisé pour regrouper les utilisateurs Accès API CentralPay propre au Partenaire Technique CentralPay facture le Partenaire Ne peut pas initier d’enrôlement ni agir au nom des utilisateurs 👉 En savoir plus sur le modèle Partenaire Technique Partenaire Technique MOBSP Type : STANDARD + MOBSP Le Partenaire Technique MOBSP est mandaté pour initier une demande d’entrée en relation au nom de ses utilisateurs. Il peut transmettre les informations nécessaires via l’API d’onboarding, mais n’intervient pas dans l’exécution des opérations de paiement. Même droit et fonctionnement qu’un Partenaire Technique Peut initier une demande d’enrôlement complète via API Peut accompagner le marchand durant l’enrôlement 👉 En savoir plus sur le modèle Partenaire Technique MOBSP Partenaire DME Type : DME Le Partenaire DME (Distributeur de Monnaie Électronique) transmet des instructions de chargement, de transfert ou de remboursement pour le compte de Participants. Il agit en tant qu’intermédiaire technique sur la monnaie électronique, et peut percevoir une commission sur les opérations. 👉 En savoir plus sur le modèle Partenaire DME Partenaire Agent Type : AGENT Le Partenaire Agent est un prestataire de services de paiement (PSP) enregistré auprès de l’ACPR. Il peut inscrire des sous-marchands (Participants), gérer le KYC/KYB, encaisser des paiements, piloter les reversements, et opérer un compte de collecte. Il agit au nom et pour le compte de CentralPay dans le cadre de services réglementés. 👉 En savoir plus sur le modèle Agent Participant et Sous-marchand Type : BASIC Les Participants sont des entités finales rattachées à un Partenaire (Technique, DME ou Agent). Ils disposent d’un compte de paiement ou de monnaie électronique pour recevoir des fonds, et peuvent accéder au Portail Utilisateur pour consulter leurs opérations et gérer leurs reversements. On distingue deux types de Participants selon leur finalité : Sous-marchand : agit à des fins commerciales (vente de biens ou de services) Participant non commercial : agit à des fins non commerciales (ex. chargement de wallet pour accès à un service, projet interne ou collaboratif…) Les Participants et Sous-marchands n’entrent pas directement en relation avec CentralPay. Leur cadre d’utilisation et leurs droits sont définis dans les modèles de Partenariat auxquels ils sont rattachés. 2. Paramétrage des emails de contact Vous pouvez personnaliser les adresses email de contact associées à votre compte pour que les notifications, relances ou échanges contractuels soient bien adressés aux bons interlocuteurs. Email contact : référent principal du compte Email administratif : en charge des sujets juridiques ou contractuels Email technique : en charge de l’intégration ou des incidents Email financier : en charge de la facturation ou des flux bancaires ℹ️ Par défaut, ces adresses sont initialisées avec l’email du titulaire du compte. Elles peuvent être modifiées à tout moment depuis le Portail Utilisateur. Accès à la configuration des emails de contact : Portail Utilisateur de RCT Portail Utilisateur de PROD Profils clients Les profils clients (ou « Customer ») unifient et sécurisent toutes vos données client pour en faciliter la gestion. Ils interagissent avec les autres services de CentralPay et permettent notamment de : Centraliser leur historique de paiements (tous canaux de vente et moyens de paiement confondus) Digitaliser et stocker de manière sécurisée leurs supports de paiement (cartes, mandats SEPA, IBAN virtuels) Suivre facilement leurs paiements récurrents (abonnements, paiements fractionnés) ou règlements en attente (demandes de paiement). Dans certains cas, ils peuvent également être associés à un compte de monnaie électronique permettant au client de recevoir et d’utiliser des fonds au sein du réseau du partenaire distributeur de cette monnaie électronique. Un Customer est obligatoirement identifié soit par son email, soit par son numéro de téléphone. Il est également possible de déclarer d’autres informations le concernant comme son nom, son prénom, sa langue, sa référence personnalisée, son moyen de paiement par défaut… 1. Utilisation La création d’un Customer est obligatoire pour la réalisation : D’abonnements ou de paiements fractionnés par carte ➝ De paiements en 1 clic par carte ➝ De paiements par prélèvement SEPA ➝ De paiements par virement SEPA avec IBAN Virtuel dédié à celui-ci ➝ De création d’un compte de monnaie électronique anonyme ➝ 2. Interfaces Vous pouvez consulter l’ensemble des Customers de votre compte depuis votre Portail utilisateur Compte Customers : Vos Customers disposent également d’un portail client leur permettant d’administrer les paiements réalisés avec votre entreprise. Accès : Portail Utilisateur de RCT – Customers Portail Utilisateur de PROD – Customers 3. Création d’un Customer Il existe deux méthodes pour créer un Customer : Créer un Customer depuis le service API dédié, permettant ensuite de créer une Card, de gérer un IBAN Virtuel pour ce Customer, d’initier une transaction, une demande de paiement… Créer un Customer via une demande de paiement CentralPay assure l’unicité des Customers : si vous initiez une demande de paiement avec création d’un Customer alors que son email ou son numéro de téléphone est déjà connu dans votre compte, CentralPay ne créera pas de nouveau Customer et associera la transaction au profil existant. Points de vente Les points de vente (« Point of Sales » ou « POS ») sont la représentation de vos différents sites web, boutiques, ou équipes de vente. Ils permettent de segmenter les opérations de votre compte CentralPay à des fins : Techniques : Vous pouvez réaliser des paramétrages différents par point de vente (notifications clients, notifications internes, nom expéditeur des emails de confirmation, logo affiché dans la page de paiement…) Administratives : Vous pouvez limiter les droits de consultation ou de modification de vos profils utilisateurs à certains points de ventes Comptables : Vous pouvez filtrer les opérations par point de vente dans votre Portail utilisateur ou dans vos exports de données Lors de la création de votre compte CentralPay, un premier Point de Vente est créé automatiquement. Vous pouvez ensuite vous rendre sur votre Portail utilisateur pour paramétrer ce dernier, ou en créer de nouveaux : Portail Utilisateur de RCT – Points de vente Portail Utilisateur de PROD – Points de vente 1. Paramétrages Les Points de Vente comprennent un certain nombre de paramétrages obligatoires : Paramètres généraux Nom : Nom du point de vente (visible par vos clients) URL du site : S’il s’agit d’un site e-commerce, renseignez l’URL de ce dernier. Sinon, renseigner l’URL de votre site vitrine. Pays du point de vente Configuration Type technique : Sélectionnez « Vente à distance » Utilisateurs API : Sélectionnez les utilisateurs API ayant un droit d’accès à ce Point de Vente Contrats : Sélectionnez le contrat VAD carte qui a été paramétré pour votre compte (en règle générale, vous n’aurez qu’un seul contrat à disposition) Contrat par défaut : Sélectionnez le contrat VAD carte qui sera utilisé par défaut (en règle générale, vous n’aurez qu’un seul contrat à disposition) Viban prioritaire : Si vous souhaitez que les IBAN Virtuels affichés dans les demandes de paiement soient ceux des Customers, alors sélectionnez « Client ». Si vous préférez afficher des IBAN Virtuels dédiés à chaque demande de paiement, alors sélectionnez « SCT ». Si besoin d’informations complémentaires, consultez notre rubrique sur les IBAN Virtuel D’autres paramétrages ne sont pas obligatoires, mais sont importants pour votre parcours de vente : Paramètres généraux Logo : Chargez le logo de votre entreprise ou celui dédié à votre point de vente. Il apparaitra dans la page de paiement générée par les demandes de paiement ID point de vente du marchand : Renseignez une référence personnalisée vous permettant d’identifier plus simplement le point de vente dans vos systèmes d’information Emails de confirmation Cocher « Activer l’email de confirmation de paiement » : En cochant cette case, vous activez l’envoi d’un email à vos clients lorsqu’ils réalisent un paiement par carte. Il s’agit d’un email standardisé non modifiable contenant un récapitulatif du paiement (raison sociale de votre compte, nom de votre point de vente, date du paiement, identifiant de la transaction CentralPay, référence marchand de la transaction, description marchand de la transaction, code d’autorisation du paiement, marque de la carte, 6 premiers et 4 derniers chiffres de la carte, montant de la transaction, état de la transaction). La langue et le pied de page de l’email peuvent être paramétrés depuis le Portail utilisateur Configuration Email confirmation paiement . Email de l’expéditeur : Si vous avez coché la case « Activer l’email de confirmation de paiement », vous pouvez personnaliser l’adresse expéditeur en utilisant l’une de vos adresses email (par exemple : no-reply@mondomaine.com). Attention, veillez à nous demander de vous communiquer nos clés SPF et DKIM afin que vous puissiez autoriser CentralPay à envoyer des emails depuis votre domaine Nom de l’expéditeur : Si vous avez coché la case « Activer l’email de confirmation de paiement », vous pouvez personnaliser le nom de l’expéditeur (par exemple : MonEntreprise) Coche « Recevoir une copie de la confirmation de paiement » : En cochant cette case, vous activez l’envoi d’une copie de l’email adressé à vos clients lorsqu’ils réalisent un paiement par carte. Cela peut vous permettre d’être informé facilement par email lorsqu’un client réalise un paiement Email du destinataire : si vous avez coché la case « Recevoir une copie de la confirmation de paiement », vous devez renseigner l’adresse email du destinataire de cette copie Enfin, d’autres paramètres secondaires sont disponibles : OTP Email de l’expéditeur OTP email : Email affiché en tant qu’expéditeur des emails de One Time Password (connexion à l’espace Administration du Portail Utilisateur…) Nom de l’expéditeur OTP email : Nom affiché en tant qu’expéditeur des emails de One Time Password (connexion à l’espace Administration du Portail Utilisateur…) Numéro de téléphone ou nom de l’expéditeur OTP SMS : Nom ou numéro de téléphone affiché en tant qu’expéditeur des SMS de One Time Password (validation de mandat SEPA…) Paramètres de communication : Ces paramètres sont appliqués aux mails ou SMS transmettant le lien vers le formulaire de paiement d’une demande de paiement (paymentRequest). Ils s’appliquent uniquement lorsque aucun scenario n’a été configuré sur la demande paiement. Expéditeur SMS : Nom du correspondant affiché sur le SMS Expéditeur Email : Email du correspondant affiché sur l’email Nom de l’expéditeur Email : Nom du correspondant affiché sur l’email Adresse de réponse Email : Email utilisé pour les réponses des emails envoyés (applicable prochainement) Pied de page de l’email : Pied de page des emails (applicable prochainement) Comptes de paiement Les comptes de paiement sont utilisés pour réaliser des opérations de paiement (collecte de paiements en devises ISO, reversement des fonds vers un compte bancaire…). Ils permettent de stocker des fonds dans une devise ISO (EUR, USD, CHF, GBP…) et possèdent un IBAN/BIC qui lui est propre. Un compte de paiement est, sauf exception, associé à un compte bancaire ayant le même titulaire, permettant à CentralPay de réaliser des reversements automatiques par virement SEPA. Si vous disposez de plusieurs comptes bancaires sur lesquels vos fonds doivent être reversés, vous pouvez demander à votre contact CentralPay de créer le même nombre de comptes de paiement dans votre compte CentralPay. Ainsi, chaque compte de paiement sera lié à un compte bancaire différent et adressera des reversements SEPA en conséquence. Il est également possible de créer plusieurs comptes de paiement à des fins de segmentation des fonds (avec un compte dédié aux opérations de commission ou de frais par exemple). Vous pouvez consulter le détail de vos comptes de paiements depuis ces accès : Portail Utilisateur de RCT – Comptes de paiement Portail Utilisateur de PROD – Comptes de paiement 1. Utilisation Les comptes de paiement sont systématiquement utilisés pour les opérations de paiement de notre plateforme, à l’exception des opérations de monnaie électronique. 2. Création de comptes de paiement Si vous êtes marchand CentralPay, vous pouvez adresser une demande par email aux équipes CentralPay pour la création de plusieurs comptes de paiement à votre nom. Cela afin de segmenter vos opérations ou d’ouvrir un compte dans une devise différente. Si vous êtes Partenaire MOBSP ou AGENT de CentralPay, vous pouvez créer des comptes pour vos sous-marchands en utilisant le service de création de comptes de paiement. Comptes de ME ℹ️ Uniquement réservé aux Partenaires DME et à leurs utilisateurs. Les comptes de ME (Monnaie Électronique) sont utilisés pour stocker et échanger des fonds dans une devise CUSTOM (devise dédiée à un partenaire DME). Un partenaire DME peut demander la création de comptes de ME pour les participants de son réseau puis réaliser des transferts de fonds en ME entre ces comptes. Le titulaire d’un compte de ME ne peut recevoir des paiements et utiliser sa monnaie électronique que par l’intermédiaire du partenaire DME. Il peut cependant demander le remboursement de sa monnaie électronique à tout moment et recevra ses fonds en devise ISO : soit sur son compte bancaire par virement SEPA, soit sur sa carte bancaire, selon les paramétrages de son compte. Vous pouvez consulter le détail de vos comptes de ME depuis ces accès : Portail Utilisateur de RCT – Comptes de monnaie électronique Portail Utilisateur de PROD – Comptes de monnaie électronique 1. Utilisation Les comptes de ME sont principalement utilisés pour permettre à des personnes physiques de recevoir et d’échanger facilement des fonds dans les contextes suivants : Marketplaces C2C de produits ou de services Stockage et utilisation de valeurs-cadeaux au sein d’un réseau de commerçants indépendants 2. Spécificités Le CMF (Code Monétaire et Financier) présente des conditions spécifiques pour la monnaie électronique. Ainsi, il existe deux types de comptes de ME chez CentralPay : Compte de ME anonyme : Ce compte peut être ouvert sans vérification d’identité du titulaire, à condition qu’il soit adressé à une personne physique et soit limité à 150 € de solde ou d’encaissement sur 30 jours. Ce type de compte est particulièrement utile dans le cadre d’une utilisation ponctuelle du compte par son titulaire, ou tout simplement pour simplifier l’entrée en relation avec le partenaire DME Compte de ME vérifié : Un compte anonyme peut être ensuite vérifié par les équipes conformité de CentralPay (procédure KYC) pour augmenter les limites qui lui étaient imposées, il devient ainsi « vérifié » 3. Création de comptes de ME Si vous êtes Partenaire DME de CentralPay, vous pouvez demander la création de comptes de ME pour vos participants. Services liés au compte Notifications email/sms Les notifications peuvent être adressées en fonction des évènements liés à certains objets API : Demande de paiement (PaymentRequest) Contestation carte (dispute) Paiement X fois (installment) Transaction carte (transaction) Reversement (payout) Remboursement carte (refund) Abonnement (subscription) Crédit carte (credit) Transaction SDD (sddTransaction) Transaction SDD inversée (sddTransactionReversal) Mandat (mandate) 1. Types de scénarios de notification Notifiez vos clients et alertez vos collaborateurs automatiquement lorsque certains évènements ont lieu sur votre compte CentralPay : encaissement d’un virement, contestation client, échec de règlement… Vous maitrisez le contenu de chaque notification depuis des templates personnalisés et définissez un mode d’envoi par email, par sms ou par Json. Vous automatisez ainsi le pointage de vos encaissements, les notifications clients, ou encore la mise à jour de votre système d’information. 2. Paramétrage des modèles de notification 2.1. Paramétrage des modèles (templates) Pour commencer le paramétrage de vos notifications, vous devez créer vos modèles de communication (email, sms ou hook) en renseignant les éléments demandés. Par exemple l’objet du mail, le nom et email de l’émetteur, le corps du texte… Vous pouvez intégrer des éléments dynamiques (tags) dans le corps du texte en tapant le caractère « # », qui fera apparaitre la liste des tags disponible pour le type de scénario de notification sélectionné. Attention, si vous utilisez les notifications emails, veillez à nous demander de vous communiquer nos clés SPF et DKIM afin que vous puissiez autoriser CentralPay à envoyer des emails depuis votre domaine. Concernant les SMS, veillez à calculer le nombre de caractères : vous serez facturés d’un SMS par 160 caractères (espaces inclus). Accès paramétrage de templates emails : Portail Utilisateur de RCT Portail Utilisateur de PROD Accès paramétrage de templates SMS : Portail Utilisateur de RCT Portail Utilisateur de PROD Accès paramétrage de templates hooks : Portail Utilisateur de RCT Portail Utilisateur de PROD 2.2. Paramétrage du header et footer pour templates emails En cas de création d’un template email, un « header » et un « footer » devront être créés. Vous pouvez par exemple intégrer votre logo en Header, et vos conditions de contact ou mentions légales en Footer. Accès paramétrage de l’en-tête d’email (header) : Portail Utilisateur de RCT Portail Utilisateur de PROD Accès paramétrage du pied de page d’email (footer) : Portail Utilisateur de RCT Portail Utilisateur de PROD 3. Paramétrage des scénarios de notification Pour spécifier à la plateforme les conditions d’envoi et destinataires de vos notifications, vous devez créer un scénario intégrant une ou plusieurs règles d’envoi. Après avoir choisi le type de scénario souhaité, vous pouvez créer une règle d’envoi. Cette règle est scindée en deux parties : le “QUAND” va permettre de définir l’évènement déclencheur de la notification tandis que le “ALORS” va permettre de choisir les actions qui seront effectuées lorsque l’évènement se produira. Accès paramétrage de scenarios de notification : Portail Utilisateur de RCT Portail Utilisateur de PROD 3.1. Dans la partie « QUAND » : Tapez « # » pour visualiser l’ensemble des attributs disponible pour votre scénario Utilisez des opérateurs logiques pour constituer votre règle : Pour les chaînes de caractères (doivent être entourés de guillemets « ») : = (égal) != (différent de) in (dans ce qui va suivre) not in (pas dans ce qui va suivre) Pour les nombres (attention les montants doivent être renseignés en centimes) : = (égal) != (différent de) < (plus petit que) <= (plus petit ou égal à) in (dans ce qui va suivre) not in (pas dans ce qui va suivre) Pour les boolean (affirmations en vrai ou faux) : = (égal à) != (différent de) Vous pouvez utiliser des conditions pour compléter votre règle : AND (pour ajouter une autre condition d’activation) OR (pour ajouter une autre possibilité d’activition) Il est possible de donner des priorités en mettant des parenthèses autour des conditions. Si vous utilisez les conditionnels AND et OR dans la même règle, il est nécessaire de prioriser. Si vous utilisez plusieurs fois AND ou plusieurs fois OR, il sera également nécessaire de prioriser chaque partie. Exemples de règles : #end_user_country in ('FRA', 'BE') #authorisation_status = 'FAILURE' or (#transaction_amount > 100000 and #context = 'TRANSACTION_RISKY' ) #transaction_amount > 100000 and ( #authorisation_status = 'FAILURE' or #context = 'TRANSACTION_RISKY' ) ((#transaction_amount > 100000 and #context = 'TRANSACTION_RISKY') or ( #authorisation_status = 'FAILURE' and #transaction_amount < 100000 )) and (#card_product_type = 'Consumer') Avant de pouvoir enregistrer une règle, il est obligatoire de d’abord tester sa règle avec le bouton « tester ». Cela va permettre de vérifier que votre règle est grammaticalement correcte. Attention, cela ne garantit pas que votre règle correspond à ce que vous souhaitiez faire. 3.2. Dans la partie « ALORS » : Le “ALORS” va permettre de choisir le destinataire et le template utilisé pour la notification. Vous n’avez accès qu’aux templates qui correspondent au type de template requis (SMS, Email, Hook) et qui correspond au type de scénario choisi (transaction carte, demande de paiement, remboursement …). Services anti-fraude 1. Organisation des services anti-fraude Les services anti-fraude sont segmentés en 4 outils : Liste blanche (whitelist)Le but de la « whitelist » est de rendre sélective l’application d’une règle d’acceptation. Elle définie devient inopérante pour des clients identifiés, VIP ou reconnus de confiance qui sont intégrés à une « whitelist ». Les « whitelists » portent sur les données spécifiques d’un client, comme le numéro de sa Carte Bancaire ou son adresse IP. Cette fonctionnalité permet d’être moins restrictif sur des populations d’utilisateurs. Liste noire (blacklist)Le service de « blacklist » permet de refuser les paiements. Tout comme pour les « whitelists », les « blacklists » portent sur les données propres au porteur de carte (Carte, IP, Tel, email). Règles d’acceptation des transactionsCet outil permet de construire les règles spécifiques définissant les conditions d’acceptation d’un paiement. Scoring anti-fraudeLe service de scoring permet de détecter les transactions potentiellement frauduleuses en se basant sur l’analyse croisée de plusieurs données liées aux paiements. Les phases de traitement des transactions sont toujours exécutées dans cet ordre. Dans le cas où les données d’entrée remplissent toutes les conditions des « whitelist » définies, le service de « blacklist » ne sera pas exécutée et la transaction sera opérée normalement. Dans le cas où les données d’entrée remplissent une des conditions des « blacklist » définies et ne figurent pas dans le service de « whitelist », la transaction sera refusée et le service « règle d’acceptation » ne sera pas exécutée. Chaque service est exécuté de façon descendante vis-à-vis de la hiérarchie des acteurs CentralPay, ce qui signifie qu’une plateforme peut appliquer les paramètres de ses services anti-fraude à ses marchands, mais que l’inverse n’est pas possible. 2. Outil de scoring de fraude CentralPay s’appuie sur un service de détection de fraude reposant sur des algorithmes de machine learning. Ce moteur prédictif est constitué depuis un large échantillon de données fourni par CentralPay au format JSON et issues des données TRANSACTION / REFUND / DISPUTE. Ce service s’appuie sur une classification comportementale liée au secteur d’activité du marchand. Le moteur retourne une action et un score. L’action invite le service de paiement à accepter ou refuser la transaction. Le score classifie le niveau de risque en fournissant un pourcentage de probabilité de fraude. Ce score est ensuite interprété dans le moteur de règle. Le score permet au marchand et à l’algorithme d’interagir ensemble pour s’améliorer. Les scores sont classifiés ainsi : De 0 à 19 = risque faibleTransaction acceptéePas d’action De 20 à 59 = risque moyenTransaction acceptéeAction : Envoi événement avec détail du score pour revue manuelle et apprentissage +60 = risque élevéTransaction refuséeAction : Envoi événement avec détail du score pour revue manuelle et apprentissage Ce service d’analyse d’exposition à la fraude analyse le contexte d’exposition au risque de fraude de chaque transaction. Ce service retourne un score qui permet de traiter automatiquement la réponse attendue dans le moteur de règle. Le score repose sur l’analyse croisée des données suivantes : Indice de risque IP Détection de Proxy Détection réseau TOR Vérification de l’adresse IP Confidence factors Email checks Address & phone checks Adresse d’expédition à haut risque Géolocalisation des adresses IP Identification des équipements utilisés Adresse e-mail Type de navigateur Discordances de pays Distance de l’adresse d’expédition Distance de l’adresse de facturation Domaine e-mail Heure Montant de la commande Pays Numéro de téléphone Titulaire IP Titulaire de l’e-mail Vérification adresse CB 3. Listes blanches et listes noires 3.1. Liste blanche (Whitelist) Le but de la « whitelist » est de rendre sélective l’application d’une règle d’acceptation. Cette règle devient inopérante pour des clients identifiés, VIP ou reconnus de confiance qui sont intégrés à une « whitelist ». Le service anti-fraude passe ainsi à l’étape suivante. Les « whitelists » portent sur les données spécifiques d’un client, comme le numéro de sa Carte Bancaire ou son adresse IP. Cette fonctionnalité permet d’être moins restrictif sur une population d’utilisateurs. 3.2. Liste noire (Blacklist) L’étape de la « blacklist » permet de refuser les paiements. Tout comme pour les « whitelists », les « blacklists » portent sur les données propres au porteur de carte : Pays Régions géographiques Numéros de carte Numéros de téléphone E-mail Adresses IP IBAN 4. Règles d’acceptation des transactions Le moteur de règles d’acceptation est une brique applicative puissante et modulaire qui permet d’adapter le comportement lié au traitement à réaliser sur chaque transaction comme : Accepter Refuser Alerter Ce service permet ainsi de définir des actions à réaliser sur chaque transaction depuis une large liste d’attributs disponibles : score de fraude, localisation du porteur, montant des ventes cumulées sur 7 ou 30 jours, client VIP whitelist, paramètre spécifique adressé par le marchand… Une règle d’acceptation est une condition logique. Elle permet : d’autoriser, de restreindre, et/ou d’interdire des transactions.Une règle se compose de 4 éléments : l’action, les attributs, les opérateurs, les valeurs. La syntaxe d’une règle est la suivante : « Action » « if » « Attribut » « Opérateur de comparaison » « Valeur de comparaison » Exemple : REFUSE if card_country != 'FRA' La règle présentée dans cet exemple permet de refuser automatiquement les paiements lorsque le pays de la carte n’est pas la France.La syntaxe de la grammaire choisie par la plateforme pour son moteur d’acceptation est très semblable à la syntaxe SQL (utilisée pour dialoguer avec les bases de données). 4.1. Les actions disponibles ALLOWAutorise le paiement REFUSERefuse le paiement ALERTAdresse une notification « webhook » de la transaction associée 4.2. Les attributs disponibles En tapant « # », les attributs disponibles sont affichés. Dans une règle, un attribut est toujours suivi d’un Opérateur de comparaison. Liste des attributs : AttributDescriptionType de valeursExemple#always Aucune #transactions[_état][_entité] [_temporalité]Quota du nombre de transactions [état] [entité] [temporalité]Entiers#transactions_amount[_état] [_entité][_temporalité]Quota du montant des transactions [état] [entité] [temporalité]Entiers#amountMontant de la transaction en centimesEntier#amount > 100#card_countryPays d’émission de la carteChaîne de caractères ISO 3166-1 alpha-3#card_country IN (‘FRA’, ‘USA’, ‘BEL’, ‘DEU’)#card_establishmentEtablissement de la carte #card_productType de carte‘gold’, ‘platinium’ #card_product_typeType de carte (perso ou corp.)CONSUMER CORPORATE#card_product_type = ‘CONSUMER’#card_regionRégion d’émission de la carte‘ASIA_PACIFIC »EUROPE »LATIN_AMERICA »MIDDLE_EAST_AND_AFRICA »USA_AND_CANADA »ANTARCTIQUE »UNKNOWN’#card_region NOT IN (‘ASIA_PACIFIC’, ‘LATIN_AMERICA’)#commercial_brandMarque de la carteVISA MASTERCARD AMEX OTHER#commercial_brand != ‘VISA’#currencyDevise de la transactionChaîne de caractères ISO 4217#currency = ‘EUR’#ip_countryPays de l’adresse IPChaîne de caractères ISO 3166-1 alpha-3#ip_country IN (‘FRA’, ‘USA’, ‘BEL’, ‘DEU’)#ip_regionRégion de l’adresse IP‘ASIA_PACIFIC »EUROPE »LATIN_AMERICA »MIDDLE_EAST_AND_AFRICA »USA_AND_CANADA »ANTARCTIQUE »UNKNOWN’#card_region NOT IN (‘ASIA_PACIFIC’, ‘LATIN_AMERICA’)#is_anonymous_ipEst une IP anonymeTRUE | FALSE#is_anonymous_ip = TRUE#is_three_d_secureEst une transaction 3D-SecureTRUE | FALSE#is_three_d_secure = TRUE#payout_amountMontant de reversementEntier#payout_amount > 100#payout_currencyDevise de reversementChaîne de caractères ISO 4217#payout_currency = ‘EUR’#risk_scoreScore d’antifraudeDouble#risk_score > 2,34#custom_acceptance_data[‘key’] = ‘value’champs customisékey : Regex [a-zA-Z0-9_-]value: Regex [a-zA-Z0-9_-]#custom_acceptance_data[‘product_category’] = ‘high’ Dans le cas du custom_acceptance_data[‘key’] = ‘value’, afin qu’il soit pris en compte il est nécessaire que l’exact même champs soit reporté dans la requête de l’objet visé. Les opérateurs logiques et parenthésage : Opérateurs logiques and et or La syntaxe utilisée pour définir les règles permet de créer plusieurs conditions au sein de la même règle. Les conditions resteront définies de la même manière, à la seule différence qu’un mot clé sera placé entre les conditions. Les mots clés sont and et or. Ils permettent de définir comment le moteur de règle va interpréter la succession de ces règles. Le « and » correspond à l’inclusion et le « or » à l’exclusion. Exemple : ALLOW if #amount < 1000 and #card_country = 'FRA' L’exemple précédent autorise les paiements dont le montant est inférieur à 10 ET dont la carte est française. Si l’une ou l’autre des conditions définies n’est pas remplie, l’action ne sera pas exécutée. Exemple : ALLOW if #amount < 1000 or #card_country = 'FRA' L’exemple précédent autorise les paiements dont le montant est inférieur à 10 OU dont la carte est française. Si l’une ou l’autre des conditions définies est remplie, l’action sera exécutée. Parenthèses L’utilisation des parenthèses dans la définition d’une règle multi-conditions permet de définir des blocs de conditions et les priorités entre ces blocs. Le principe est le même que celui des priorités pour les opérateurs mathématiques. Exemple : ALLOW if #amount < 1000 and (#card_country = 'FRA' or #currency = 'EUR') Dans l’exemple précédent, le moteur de règle va d’abord interpréter le bloc (#card_country = ‘FRA’ or #currency = ‘EUR’). C’est à dire que le paiement sera autorisé si (la carte est française ou que la devise est l’euro), ET que le montant est inférieur à 10. Ordre d’exécution des règles Les règles sont exécutées dans un ordre à définir. Cet ordre est important car dès qu’une transaction répond aux critères d’une règle, les règles suivantes ne seront pas traitées. Les règles sont exécutées dans l’ordre d’affichage de la liste de l’interface.Un indicateur de position est affiché dans chaque liste. Pour changer la position d’une règle, il suffit de la faire glisser à la position souhaitée. Exemples de règles : ALLOW if #amount < 1000 and #transactions_amount_daily < 10000 Explication : cet exemple autorise les transactions dont le montant est inférieur à 10 si la somme des montants des transactions de la journée est inférieur à 100. REFUSE if #risk_score > 3 or (#ip_regions = 'ASIA_PACIFIC' and #card_region = 'ASIA_ PACIFIC') Explication : cette règle bloque les paiements si le score de risque dépasse 3 ou que l’IP utilisée ainsi que la région d’émission de la carte correspondent à la zone ‘ASIA_PACIFIC’. THREE_D_SECURE if #card_country NOT IN ('FRA', 'USA', 'GBR') Explication : cette règle demande une transaction 3D Secure si le pays de la carte n’est pas la France, les Etats-Unis, ou la Grande Bretagne. ALLOW (#amount < 10000 and #transactions_amount_daily < 100000) or (#currency IN ('EUR', 'USD') and #transactions_amount_monthly < 1000000) Explication : cet exemple précédent AUTORISE les paiements SI le montant est INFÉRIEUR à 100 ET que la somme des montants des transactions du jour est INFÉRIEUR à 1000 OU que la devise est € ou $ ET que la somme des montants des transactions du mois est INFÉRIEURE à 10 000. Les opérateurs logiques « and » et « or » ne sont syntaxiquement correct qu’en minuscule. 4.3. Les opérateurs de comparaison disponibles = (égal) != (différent de) < (plus petit que) <= (plus petit ou égal à) in (dans ce qui va suivre) not in (pas dans ce qui va suivre) Les opérateurs de comparaison = , != , > , < , >= et <= doivent être suivis d’une valeur. Les opérateurs IN et NOT IN sont suivis d’une liste de valeurs de comparaison.Une liste de valeurs est entourée par des parenthèses et les valeurs à l’intérieur de la liste sont séparées par des virgules. Exemple : REFUSE if #currency NOT IN ('EUR', 'USD', 'GBP', 'CHF') L’exemple présenté ci-dessus permet de refuser tous les paiements dont la devise n’est pas l’Euro, le Dollar US, la Livre Sterling ou le Franc Suisse. Cette syntaxe évite d’écrire plusieurs règles ou plusieurs conditions dans la même règle. 4.4. Les valeurs disponibles : En fonction du type de valeur, la syntaxe permettant de définir la valeur ne sera pas la même : Entiers (valeur numérique sans décimale) : Syntaxe classique (ex : 100) Doubles (valeur numérique avec décimales) : La valeur est définie avec un point comme séparateur de décimale (ex : 12.32) Chaîne de caractères : La valeur est définie entre ‘quotes’ simples (ex : ‘FRA’) Booléens : La valeur est true ou false (ex : false) ℹ️ Les valeurs de "montants" doivent être renseignées en centimes (ex : pour 10 € on renseignera une valeur de 1000). 4.5. Les opérateurs logiques : Les opérateurs disponibles sont AND et OR. Ils permettent de définir comment le moteur de règle va interpréter la succession de ces règles. Le « AND » permet une inclusion tandis que le « OR » une exclusion. Exemple : REFUSE if #amount < 1000 and #card_country != 'FRA' L’exemple présenté ci-dessus permet de refuser les paiements dont le montant est inférieur à 10 € ET dont la carte n’est pas française. Si l’une ou l’autre des conditions définies n’est pas remplie, l’action ne sera pas exécutée. Reversement bancaire Les reversements bancaires (ou « Payout ») sont des virements sortant de votre compte de paiement CentralPay vers le compte bancaire qui y est associé. Ils peuvent être réalisés manuellement depuis le Portail utilisateur ou l’API Payment. Ils peuvent également être automatisés depuis le Portail utilisateur. Depuis le Portail utilisateur, seuls les profils utilisateurs titulaires du compte (dit « Legal ») peuvent paramétrer et réaliser les reversements. 1. Les deux modes de reversement 1.1. Reversement automatique Le titulaire du compte peut définir la périodicité : quotidien, hebdomadaire (choix du jour de la semaine, ex : chaque mardi) ou mensuel (choix du jour dans le mois, ex : le cinq du mois).Le service PAYOUT automatique exécutera automatiquement à 01h00 du jour donné un virement des fonds disponibles sur votre compte de paiement. Exemple : Cas d'un reversement hebdomadaire programmé le mardi : CentralPay exécutera la demande de création du virement (PAYOUT) le mardi matin avec les fonds disponibles (AVAILABLE) sur le compte de paiement jusqu'au mardi 01h00. 1.2. Reversement manuel (via BO ou API) Vous avez la possibilité d’exécuter des payouts manuellement depuis le Portail utilisateur ou l’API CentralPay. Vous pouvez déterminer le montant à reverser (avec en maximum le montant disponible sur votre compte). Attention, le PAYOUT ne sera exécuté immédiatement que s’il est effectué avant 05h00 le matin. À défaut, il sera exécuté le lendemain à 05h00 du matin également. 2. Délais de disponibilité des fonds Les reversements comprennent uniquement les fonds disponibles (ou « AVAILABLE ») de vos comptes de paiement. Les fonds issus d’une transaction par carte bancaire sont par exemple disponibles à J+2 : une transaction carte réalisée le lundi, apparaîtra en « Pending » le lundi, sera « Available » le mardi soir, le payout automatique sera effectué le mercredi matin à 00h05 et la réception du virement SEPA sur votre compte bancaire le jeudi. ℹ️ Le paramètre EscrowDate peut influer sur la date de disponibilité des fonds d'une transaction (concerne uniquement les partenaires AGENT). 3. Création d’un reversement manuel 3.1. Payout manuel par Portail utilisateur Depuis le Portail Utilisateur Administration Mon compte Reversements : cliquez sur « Transferts externes », sélectionnez le compte d’émission, le montant du reversement ainsi que l’IBAN destinataire, puis cliquez sur « confirmer le transfert ». Accès : Portail Utilisateur de RCT – Reversements Portail Utilisateur de PROD – Reversements 3.2. Payout manuel par API Consultez le détail dans la rubrique : Développeurs Payout 4. Reversement en euros ou devises via le réseau SWIFT Les virements bancaires internationaux sont gérés via le réseau SWIFT (contrairement au réseau SEPA pour les virements européens). Ces virements peuvent être émis depuis un très grand nombre de pays en EUROS ou dans d’autres devises. Si vous disposez d’un compte en devises ou n’étant pas accessible via le réseau SEPA, vous pouvez réaliser vos virements via le réseau SWIFT. Contactez CentralPay pour en savoir plus. ℹ️ Les virements bancaires du réseau SWIFT présentent des frais très largement supérieurs aux virements SEPA. Vous pouvez demander à CentralPay de paramétrer vos reversements automatiques afin qu'ils soient déclenchés à partir d'un certain seuil de fonds disponibles. 5. Retours, statuts et webhooks Consultez les statuts PAYOUT ➝ Consultez les webhooks PAYOUT ➝ Exports comptables Vous pouvez réaliser plusieurs exports de votre compte aux formats CSV, EXCEL, ou JSON depuis votre Portail utilisateur. Pour cela, paramétrez votre recherche avec les filtres disponibles sur la page de l’export souhaité, cliquez sur « Rechercher » puis « Exporter ». En quelques secondes, vous recevrez le fichier par email et pourrez le télécharger à tout moment depuis votre Portail utilisateur Compte Exports . 1. Export comptable des opérations du compte Cet export reprend l’ensemble des mouvements financiers débiteurs et créditeurs qui ont été réalisés sur votre compte : autorisations cartes, transactions cartes, transactions SDD, transactions SCT, transfers, payout, frais CentralPay… Vous disposerez du détail de chaque opération afin que vous puissiez le rapprocher facilement à vos factures ou vos dossiers. L’export contient les données suivantes : DénominationSignificationmovement_creation_datedate de l’opérationmovement_ididentifiant CentralPay de l’opérationmovement_gross_amountmontant brutmovement_gross_currencydevise du montant brutmovement_fee_amountmontant des frais CentralPaymovement_fee_currencydevise des fraismovement_net_amountmontant netmovement_net_currencydevise du montant netmovement_expected_availability_datedate de disponibilité des fonds estiméemovement_available_datedate de disponibilité des fonds réellemovement_statusstatut du mouvement (success, failed…)movement_source_typetype d’opération (transaction, transfert…)movement_source_uuididentifiant associé au type d’opération (transactionId, wireTransferId, transferId…)merchant_descriptiondescription définie par le marchandmerchant_reference_idréférence définie par le marchandcard_countrypays d’émission de la cartecard_regionzone d’émission de la carte (UE, hors UE)point_of_sale_idID CentralPay du point de vente Accès : Portail Utilisateur de RCT – Opérations Portail Utilisateur de PROD – Opérations 2. Télécharger le rapport financier mensuel Chaque début de mois, en plus de la facture, un rapport financier est généré, puis mis à disposition dans l’espace sécurisé de votre compte ( Administration compte documents Rapports financiers ). Il présente les montants totaux de crédit, de débit, de frais et de réserve de votre compte : Pour bien comprendre votre rapport financier :A) Le total des montants acquis / reçus sur votre compte au cours de la périodeB) Le montant net reçu sur votre compte, déduction faite de l’ensemble des frais selon le calcul « B = A – I »C) Le montant de la réserve détenue en garantie au jour de clôture de la périodeD) Le montant des fonds disponibles au jour de clôture de la périodeE) La valeur totale des fonds disponibles et en garantie enregistrée dans les livres de CentralPay au jour de clôture de la période selon la formule « E = C + D »F) La valeur totale des fonds retirés / transférés à la banque du marchand pendant la périodeG) Le total des frais de service et commissions facturées sur les transactions définies dans la grille tarifaireH) Total des frais d’opérations techniques : frais d’autorisation cartes, de contestation, de payout…I) Total des frais techniques et commissions ou « I = G + H » Accès : Portail Utilisateur de RCT – Documents Portail Utilisateur de PROD – Documents Exports de données Vous pouvez réaliser plusieurs exports de votre compte aux formats CSV, EXCEL, ou JSON depuis votre Portail utilisateur. Pour cela, paramétrez votre recherche avec les filtres disponibles sur la page de l’export souhaité, cliquez sur « Rechercher » puis « Exporter ». En quelques secondes, vous recevrez le fichier par email et pourrez le télécharger à tout moment depuis votre Portail utilisateur Compte Exports 1. Export des transactions cartes Cet export vous permet d’obtenir le détail des transactions cartes que vous avez réalisées au cours d’une période donnée.Cet export simplifie la lecture de vos transactions carte en agrégeant les opérations d’autorisations et de débit, et présente des données complémentaires spécifiques aux transactions cartes. L’export contient les données suivantes : DénominationSignificationtransaction_creation_datedate de créationtransaction_ididentifiant de transactiontransaction_amountmontanttransaction_currencydevisetransaction_payout_amountvaleur de devise de règlementtransaction_payout_currencydevise de règlementtransaction_commision_amountfrais sur la transactiontransaction_commision_currencydevise des fraistransaction_fee_amountfrais fixes par transactiontransaction_3ds3DS (0=non, 1=oui)transaction_descriptiondescription définie par le marchandtransaction_sourceEC Ecommerce, DP Deposit, MO Mail ordertransaction_bank_coderetour autorisation banquetransaction_statusstatut de la transactiontransaction_authorization_statusstatut de l’autorisationtransaction_authorization_codecode d’autorisationtransaction_capture_statusstatut de la capturetransaction_capture_datedate de la capturetransaction_capture_amountmontant de la capturemerchant_transaction_ididentifiant de transaction marchandpoint_of_sale_ididentifiant du point de ventepoint_of_sale_namenom du point de ventemerchant_ididentifiant marchandmerchant_namenom du marchanddispute_amountmontant de la contestationdispute_currencydevise de la contestationdispute_datedate de la contestationrefund_amountmontant du remboursementrefund_currencydevise du remboursementrefund_datedate du remboursementcard_ididentifiant de la carte de paiementcard_first66 premiers chiffres de la cartecard_last44 derniers chiffres de la cartecard_cardholder_namenom du porteurcard_cardholder_emailemail du porteurcard_typetype de carte (crédit/débit/prepaid)card_productnom du produit carte (Infinite, Gold…)card_product_typecarte consumer ou corporatecard_commercial_brandréseau carte (VISA/Mastercard/CB)card_regioncontinent d’origine de la cartecard_countrypays d’origine de la cartecard_establishment_namenom de l’établissement qui fournit la cartecustomer_ididentifiant clientend_user_ipIP de l’utilisateurend_user_languagelangue de l’utilisateurbrowser_user_agentnavigateur de l’utilisateurreceipt_emailmail de réception de l’utilisateurclearing_numbernuméro de clearingmerchant_category_codeactivité du marchand Accès : Portail Utilisateur de RCT – Transactions Portail Utilisateur de PROD – Transaction 2. Export des remboursements cartes Cet export vous permet d’obtenir le détail des remboursements cartes que vous avez réalisées au cours d’une période donnée. Accès : Portail Utilisateur de RCT – Remboursements cartes Portail Utilisateur de PROD – Remboursements cartes 3. Export des contestations de transactions cartes Cet export vous permet d’obtenir le détail des contestations de transactions cartes (disputes/chargebacks) que vous avez reçues au cours d’une période donnée. Accès : Portail Utilisateur de RCT – Contestations cartes Portail Utilisateur de PROD – Contestations cartes 4. Export des abonnements (cartes et SDD) Cet export vous permet d’obtenir le détail des abonnements cartes et SDD que vous avez réalisés au cours d’une période donnée. Accès : Portail Utilisateur de RCT – Abonnements Portail Utilisateur de PROD – Abonnements Webhooks Les webhooks permettent d’adresser des notifications HTTP sur les URL de votre choix en fonction des évènements (ou « Events ») qui surviennent sur votre compte CentralPay. Ces évènements correspondent à la création, au changement de donnée ou au changement de statut d’un objet des API CentralPay. Le service permet ainsi d’avertir en temps réel votre système d’information, dès qu’une opération est réalisée sur votre compte CentralPay. Par exemple, une transaction réussie ou échouée, la création d’une nouvelle souscription (abonnement), un nouveau client (Customer), la réception d’un impayé… Les webhooks sont classés en deux catégories : Liés aux Points de Vente « POS » Liés aux « Comptes » Le serveur distant doit confirmer la bonne réception de la requête en retournant un code 2XX. Dans le cas contraire, une nouvelle requête sera adressée toutes les 5 min pendant 2h. Pour s’assurer de la bonne réception des hooks, nous vous conseillons d’utiliser le service Webhook Site. Entrez l’URL donnée par le site et l’adresse mail, et effectuez vos tests. Une fois que vous êtes satisfait des réponses hooks, vous pouvez remplacer l’adresse mail et l’URL par les vôtres et effectuez un nouveau test. Consultez la liste des webhooks dans la rubrique : Développeurs Webhook notifications Liens de paiement Informations générales 1. Les deux modes d’intégration de Smart Collection La solution Smart Collection permet d’encaisser des paiements depuis divers moyens de paiement. Vous pouvez au choix : Créer et intégrer vos propres parcours de paiement (intégration CUSTOM), en consommant les services API de chaque moyen de paiement : Transaction par carte ➝ Transaction par virement ➝ Transaction par prélèvement SEPA ➝ Utiliser nos parcours de demande de paiement sécurisés (intégration SMART), grâce à notre service dédié : Demandes de paiement (PaymentRequest) ➝ Le paramètre EscrowDate peut influer sur la date de disponibilité des fonds d’une transaction (concerne uniquement les partenaires AGENT) ℹ️ Si vous choisissez l'intégration SMART, certaines fonctionnalités spécifiques comme les R-transactions, la gestion des libellés bancaires, la gestion des IBAN Virtuels… sont présentées dans la documentation dans les rubriques CUSTOM dédiées à chaque moyen de paiement. 2. À propos de l’intégration SMART La demande de paiement permet de générer un lien de paiement menant à une page de paiement hébergée par CentralPay. Votre client peut ainsi vous régler selon les conditions de règlement que vous avez déterminé (moyens et modes de paiement autorisés, délais de règlement…). Les transactions ainsi créées sont automatiquement liées à la demande de paiement et permettent d’actualiser son statut (non payé, partiellement payé, payé…). La demande de paiement doit être alimenté des conditions de règlement de votre panier ou de votre facture : Montant à régler Moyens de paiement acceptés (carte, virement, prélèvement, initiation de paiement) Modes de paiement acceptés (unitaire, par abonnement, paiement fractionné…) Référence de commande Description de commande Coordonnés clients Délais de règlement autorisé Délais d’expiration du lien … Le lien de paiement peut être adressé à vos clients depuis : Vos tunnels de vente ou interfaces web, Vos outils de communications (email, sms, courriers via QR code…) Le service de notifications email / sms de CentralPay La page de paiement permet ensuite au client de réaliser sa ou ses transactions : Visualisation des informations de la demande de paiement Sélection du moyen ou mode de paiement Renseignement des données clients Renseignement des coordonnées de paiement Demandes de paiement La demande de paiement (ou PaymentRequest) est le service vous permettant de générer des liens de paiement. Vous pouvez créer des demandes de paiement par API ou via le Portail utilisateur. La demande de paiement peut également être couplé au service de notification de CentralPay, vous permettant d’adresser facilement un lien de paiement par email ou sms à vos clients et de programmer des relances automatisées. 1. Création par API 1.1. Créer une PaymentRequest Vous trouverez ci-dessous les moyens de paiement disponibles et les valeurs API correspondantes dans le service PaymentRequest : Moyen ou mode de paiement souhaitéValeurs API à renseignerPaiements unitairesTransaction par cartepaymentMethod[]=TRANSACTIONPré-autorisation sur carte (réservé aux activités de locations)paymentMethod[]=TRANSACTION transaction[source]=DPVérification carte (transaction à 0 €)paymentMethod[]=TRANSACTION transaction[source]=RITransaction par virement bancairepaymentMethod[]=SCT_TRANSACTIONTransaction par prélèvement SEPApaymentMethod[]=SDDsdd[remittanceInformation]Transaction par initiation de paiementProchainementPaiements récurrentsAbonnement par cartepaymentMethod[]=SUBSCRIPTION subscriptionModel[subscriptionModelId]Abonnement par prélèvement SEPApaymentMethod[]=SUBSCRIPTIONsubscription[source]=SDDsubscriptionModel[subscriptionModelId]Paiement fractionné par cartepaymentMethod[]=INSTALLMENTintallment[intervalUnit]installment[intervalCount]installment [iterationCount]Paiement fractionné par prélèvement SEPApaymentMethod[]=INSTALLMENTinstallment[source]=SDDintallment[intervalUnit]installment[intervalCount]installment [iterationCount] Si vous souhaitez autoriser plusieurs moyens ou modes de paiement dans votre PaymentRequest, vous devez renseigner plusieurs fois l’objet paymentMethod. Exemple : paymentMethod[]=TRANSACTION paymentMethod[]=SCT_TRANSACTION Attention, certaines combinaisons de moyens ou modes de paiement peuvent rentrer en conflits et votre PaymentRequest pourra retourner une erreur. Par exemple, vous ne pouvez pas autoriser une TRANSACTION et une SUBSCRIPTION, cependant vous pouvez autoriser une TRANSACTION et un INSTALLMENT. Voici les informations principales concernant d’autres valeurs à renseigner lors de la création d’une PaymentRequest : DésignationDéfinitionamountMontant de la demande de paiement en centimesmerchantPaymentRequestIdRéférence personnalisée (votre numéro de commande ou facture par exemple) que vous pourrez utiliser pour rapprocher le paiement. Cette valeur sera visible par votre client dans la page de paiement.descriptionDescription personnalisée (nom du produit ou du service vendu). Cette valeur sera visible par votre client dans la page de paiement.additionalData[*]Donnée clé-valeur libre, vous permettant de transiter une ou plusieurs données (références de factures, numéro client etc…). N’est pas visible par votre client dans la page de paiement.createCustomerCréation TRUE / FALSE d’un compte Customer (permet notamment l’enregistrement du moyen de paiement client : carte, mandat SEPA, et création d’un IBAN virtuel dédié au Customer)breakdown[customerId]Sélection d’un Customer déjà existant ℹ️ Pour les transactions par virement SEPA, vous pouvez définir si vous souhaitez afficher l'IBAN Virtuel dédié au Customer ou générer un IBAN Virtuel à usage unique (SCT) depuis les paramètres de vos Points de Vente. 1.2. Envoyer une PaymentRequest par email / sms Lors de sa création, vous pouvez demander à CentralPay d’adresser la demande de paiement à votre client. Il existe deux méthodes d’envoi : Via le mailer par défaut des PaymentRequest : CentralPay adresse la demande de paiement depuis un modèle d’email/sms standardisé et depuis l’email expéditeur renseigné dans votre point de vente (ou à défaut l’email expéditeur de CentralPay « no-reply@centralpay.eu »). Pour cela vous devez [prochainement] Via le service de notification email/sms de CentralPay : CentralPay adresse la demande de paiement selon le scénario et les modèles de communication que vous avez paramétrés. Ce service permet notamment l’automatisation de relances clients, basés sur les paramètres de la demande de paiement (délais de paiement, avancement du paiement…). Pour cela vous devez [prochainement] 1.3. Fonctions spécifiques Envoyer une demande de paiement à montant libre (multi-moyens de paiements) Il est possible d’autoriser la modification du montant à régler (avec pour maximum le montant initial), afin que vos payeurs puissent régler la somme due depuis plusieurs moyens de paiements ou à des moments différents. Exemple : Cas d'une demande de paiement de 500€ :• Réglement de 250€ en virement, puis 250€ en carte• Ou 300€ avec une première carte, puis 200€ avec une autre• Ou réglemenet de 350€ avec une carte, puis revenir plus tard pour régler les 150€ restants avec cette même carte Pour ce faire, vous devez [prochainement] Envoyer une demande de paiement à plusieurs destinataires Il est possible d’adresser une demande de paiement à plusieurs destinataires avec un montant différent à régler pour chacun d’entre eux. Ainsi : Chaque participant reçoit une notification e-mail ou SMS détaillant l’objet du service à régler Les montants sont fixés par l’initiateur ou laissé libre à chaque participant qui règle le montant souhaité Les dates paramétrées à la demande (création, expiration…) permettent de générer des notifications vers chaque participant Pour ce faire vous devez [prochainement] 2. Création depuis le Portail Utilisateur 2.1. Création et types de demandes de paiement Vous pouvez créer une demande de paiement depuis le Portail utilisateur Demandes de paiement Liens de paiement Créer . Les demandes de paiement créées depuis le Portail utilisateur sont obligatoirement adressées à vos clients par CentralPay. En fonction de vos besoins, vous devrez choisir l’un des types de demandes suivant : Demande instantanée : Une demande simple, envoyée depuis les expéditeurs et les templates emails / sms standards de CentralPay Demande programmée : Une demande avancée, utilisant les modèles de communication, scénarios et règles d’envoi/de relance que vous aurez préalablement paramétrés depuis le service de notifications email/sms de CentralPay. Une demande programmée adressée sans avoir sélectionné de scénario de notification sera automatiquement requalifiée en demande instantanée Une fois créée, vous pouvez accéder à la page de paiement en cliquant sur le détail de la demande de paiement Formulaire de paiement . Ainsi, vous pourrez retransmettre à votre client l’URL de la page en cas d’erreur d’envoi. Accès : Portail Utilisateur de RCT – Demandes de paiement Portail Utilisateur de PROD – Demandes de paiement 2.2. Les profils de demandes de paiement Afin de faciliter la création de demandes de paiement, vous avez la possibilité de créer des profils prédéfinis intégrant les principaux paramétrages de la demande : Point de vente Devise Langue Moyens de paiement autorisés Limite de paiement (délais de paiement contractuel) Expiration du lien (délais avant expiration du lien) Scénarios de notification Reroutage de l’email de confirmation de paiement Règles d’affichage (paramètres de la page de paiement) Création de Customer Pièces jointes Vous pouvez ensuite utiliser ce profil lors de la création de vos demandes de paiement programmées via le Portail Utilisateur, ou via import de fichiers plats. 2.3. Création de demandes de paiements par import de fichiers plats Depuis le Portail utilisateur Demandes de paiement Liens de paiement Importer , vous pouvez déposer un fichier d’importation de demandes de paiement. Cette utilisation peut être recommandée pour les entreprises souhaitant adresser en fin de mois et relancer automatiquement une liste de créanciers. Téléchargez le modèle au format CSV➝ Téléchargez le modèle au format JSON ➝ Quelques informations importantes : DésginationDéfinitionprofil_uuid*UUID du profil de demande de paiementmerchant_payment_request_idRéférence personnalisée (votre numéro de commande ou facture par exemple) que vous pourrez utiliser pour rapprocher le paiement. Cette valeur sera visible par le payeur dans la page de paiement.descriptionDescription personnalisée (nom du produit ou du service vendu). Cette valeur sera visible par votre client dans la page de paiement.total_amount*Montant de la demande de paiement. À renseigner en doubles décimales avec un séparateur « . » (ex : 500.00 pour 500€).last_nameNom de famillefirst_namePrénomemail*Email du destinatairephoneTéléphone du destinataire au format international (ex : 33612345678). create_customerCréation d’un profil client « Customer » : renseigner « O » pour OUI ou « N » pour NONlink_expiration_dateDate d’expiration de la demande de paiement (date à laquelle le client ne pourra plus vous régler)deadlineDate limite de paiement (date à laquelle votre client doit vous avoir réglé, et à partir de laquelle il est en retard de paiement).receipt_emailEmail sur lequel vous souhaitez rerouter l’email de confirmation de paiementlanguage*Langue de la communication et de la page de paiement (FRE pour français, ENG pour anglais…)Les champs avec un * sont obligatoires. Page de paiement (SmartForm) La page de paiement (aussi appelée SmartForm) est une page hébergée et sécurisée par CentralPay destinée à la collecte des données clients et de leurs coordonnées de paiement. Générée via le service de demande de paiement, elle permet à vos clients de visualiser les détails de cette demande (montant, référence de commande…) et de sélectionner un moyen de paiement autorisé avant de passer à l’étape de règlement. 1. Paramétrage de la page Vous pouvez créer un ou plusieurs modèles de page afin de personnaliser votre parcours de paiement. Ci-dessous la liste des éléments paramétrables sur la page : DésignationDéfinitionNomNom du modèle de pageTemplate par défautCoche permettant de définir si ce modèle doit s’appliquer par défaut (les demandes de paiement créées sans modèle utiliseront ce dernier)Forcer la création du CustomerCoche permettant de forcer systématiquement la création d’un Customer à la création de la demande de paiement. Le paramètre de création du Customer renseigné sur les demandes de paiements sera ignoré. Note : CentralPay ne créera pas de nouveau Customer si son email ou son numéro de téléphone sont déjà utilisés par un autre Customer, et affectera la demande à ce dernier.URL de redirectionURL de redirection après paiement. URL fixe, vous pouvez cependant choisir d’alimenter dynamiquement cette valeur par API pour chaque PaymentRequest si tel est votre besoin.Délais de redirectionDélais de redirection vers l’URL de redirection après paiement. Champ vide : pas de redirection, 0 : redirection immédiate, autre valeur : nombre de secondes avant la redirectionURL d’annulationURL de redirection en cas d’annulation avant paiement. URL fixe, vous pouvez cependant choisir d’alimenter dynamiquement cette valeur par API pour chaque PaymentRequest si tel est votre besoin.Couleur du texteCouleur du texte de la page de paiementCouleur des boutonsCouleur des boutons de la page de paiementChamps supplémentairesChamps supplémentaires qu’il est possible d’ajouter aux parcours de paiement par carte (CB) ou par virement. Utilisé pour collecter des données clients complémentaires si nécessaire (adresse, nom, prénom…). Accès : Portail Utilisateur de RCT – Paramétrage formulaire Portail Utilisateur de PROD – Paramétrage formulaire 2. Personnalisation du logo affiché sur le SmartForm Le logo affiché sur le SmartForm est celui que vous aurez renseigné dans les paramètres du point de vente utilisé pour votre demande de paiement. Par défaut, le logo de CentralPay est affiché. Retours, statuts et hooks 1. Statuts liés aux demandes de paiement Consultez les Statuts Payment Request ➝ 2. Webhooks liés aux demandes de paiement Les demandes de paiement permettant indirectement la création de transactions cartes, SCT et SDD mais aussi d’autres objets comme les Customer, Subscription ou Installment, selon les cas d’usages, il peut être utile de suivre les webhooks associés. Consultez les Webhooks PaymentRequest ➝ Consultez les Webhooks Transaction ➝ Consultez les Webhooks SCT Transaction ➝ Consultez les Webhooks SDD Transaction ➝ Consultez les Webhooks Customer ➝ Consultez les Webhooks Subscription ➝ Consultez les Webhooks Installment ➝ Transaction par carte Informations générales 1. Fonctionnement Une transaction carte comprend une succession d’actions : 1. Authentification 3DS 2.0 Elle permet de s’assurer que la personne réalisant la transaction est bien le titulaire de la carte. La banque du client analyse les nombreux facteurs liés au paiement adressés par CentralPay (adresse IP, localisation, appareil utilisé…) et les compare aux données habituelles de son client : Si les données ne concordent pas ou que le montant de la transaction est important, elle requière une identification manuelle via un code adressé par SMS ou via son application bancaire (« authentification forte » ou « SCA ») Sinon, elle autorise directement le paiement (« Frictionless ») 2. Autorisation bancaire Demande effectuée par CentralPay à la banque du payeur permettant de vérifier la validité et la provision de sa carte. Les fonds « autorisés » sont bloqués jusqu’à la réalisation de la capture des fonds. Si aucune capture n’est réalisée sous un délai de 7 jours, les fonds « autorisés » sont libérés et le marchand devra renouveler son autorisation. Pour les activités éligibles (location, hôtellerie…), le service de « pré-autorisation » donne la possibilité au marchand d’étendre le délai d’autorisation jusqu’à 30 jours. 3. Capture La capture permet d’initier le débit de la carte sur la base d’une autorisation ou d’une pré-autorisation. Un marchand peut réaliser une capture complète ou partielle du montant autorisé. 2. Types et réseaux de cartes acceptés Les cartes de paiement sont émises par les banques ou les établissements de paiement agréés, elles peuvent être badgées par un ou plusieurs réseaux de carte (aussi nommés « Card Scheme »). Les réseaux acceptés par CentralPay sont : Carte Bancaire VISA MasterCard American Express En France, la majorité des cartes émises sont co-badgées CB et VISA ou CB et Mastercard. Dans ce cas, le client doit avoir la possibilité de choisir le réseau qu’il souhaite utiliser. Les cartes peuvent être de débit ou de débit différé / crédit (en France la majorité des cartes sont de débit), et peuvent être des cartes de particulier (dit « Consumer ») ou des cartes de professionnels (dit « Corporate »). À noter que ces paramètres impactent le coût de la transaction pour le marchand (interchange bancaire et frais de réseaux carte). Formulaire de paiement CUSTOM Le service API Transaction permet d’effectuer une autorisation suivie d’une capture des fonds sur la carte bancaire de votre client. Tous les modes de paiement par carte (paiement simple, récurrents, MoTo, etc.) sont gérés via ce service. Lorsqu’un client souhaite effectuer un premier paiement, ses données de carte doivent être collectées pour générer un cardTokenId, grâce au service de tokenisation « token.js » de CentralPay. Ce token temporaire permet ensuite de créer une ressource Card, identifiée par un cardId, pouvant être enregistrée dans un objet Customer. Ce rattachement est indispensable pour permettre des paiements ultérieurs sans redemander la carte (paiement en 1 clic, récurrents, etc.). ℹ️ Avec un formulaire de paiement personnalisé (CUSTOM FORM), l'intégration de l'authentification 3DS 2.2 est obligatoire avant d'exécuter une transaction. Schéma du flux de paiement avec cardTokenId : ℹ️ Si vous disposez d'une certification PCI-DSS de niveau 1 et que vous gérez les données de carte, vous pouvez directement créer un objet /card en envoyant les données (PAN, date d'expiration, CVC) à l'API, sans passer par token.js. 1. Prérequis 1.1 Déclarer vos domaines Avant d’utiliser le token.js, vous devez déclarer les domaines hébergeant vos formulaires Custom dans votre Portail Utilisateur. Allez dans Administration Mon compte Technique Modifier , puis complétez le champ Hosts Custom Forms autorisés. Accès : Portail Utilisateur de RCT – Administration Portail Utilisateur de PROD – Administration 1.2 Sécuriser votre formulaire Assurez-vous que vos pages de paiement utilisent le protocole HTTPS avec TLS 1.2 ou supérieur. 2.3 Conformité PCI-DSS L’utilisation de token.js implique que vous gérez vous-même l’affichage du formulaire et le déclenchement du token. Cette méthode impose de respecter les exigences PCI DSS SAQ A-EP. Téléchargez le formulaire A-EP ➝ 2. Intégration du formulaire de paiement 2.1 Créer un formulaire de paiement HTML Contrairement au Smart Form hébergé par CentralPay, le Custom Form est créé par vos soins, via votre propre code HTML. Vous devez implémenter les champs suivants : Numéro de carte : 16 chiffres pour CB/Visa/Mastercard, 15 pour American Express Date d’expiration : format MM/AAAA CVC : 3 chiffres (CB/Visa/Mastercard), 4 chiffres (Amex) Vous pouvez consulter nos exemples de formulaires Custom Form : Consultez l’exemple de formulaire Custom Form sans 3DS 2.2 ➝ Consultez l’exemple de formulaire Custom Form avec 3DS 2.2 ➝ 2.2 Intégration du script token.js Ajoutez dans votre page le script token.js pour générer un cardTokenId : <script src="https://js.centralpay.net/js/token.js"></script> Ajoutez ensuite votre clé publique marchand (MerchantPublicKey) dans un tag distinct : <script type="text/javascript"> window.Centralpay ? Centralpay.card.setMerchantPublicKey('VOTRE_CLE_PUBLIQUE') : alert('Error loading html form'); </script> Vous pouvez voir où retrouver votre MerchantPublicKey depuis la page Authentification de nos API. Intégration dans une application mobile Si vous utilisez une WebView dans votre application, vous pouvez intégrer soit un formulaire personnalisé avec token.js, soit un formulaire hébergé via le service PaymentRequest. Ces options vous permettent d’externaliser la collecte des données carte tout en offrant une expérience utilisateur fluide. Dans une application mobile native, le script token.js n’est pas compatible. Vous devez alors collecter les données de carte via les champs de l’application, puis appeler directement l’API cardToken en utilisant votre merchantPublicKey. L’appel à l’API cardToken doit inclure un en-tête HTTP Origin correspondant à une URL déclarée dans votre compte CentralPay (voir 2.1 Prérequis). Pour vos tests, vous pouvez utiliser l’Origin suivant : https://example.centralpay.net ℹ️ Pour les applications mobiles natives, les données de carte sont transmises directement depuis le device de l’utilisateur vers CentralPay, sans passer par les serveurs du marchand. Cependant, ce type d’intégration nécessite de veiller à respecter les exigences de sécurité et de conformité PCI-DSS applicables à la collecte et la transmission de données de carte dans un environnement natif. 2.3 Créer un Customer et rattacher une carte ℹ️ Le cardTokenId est un token à usage unique, dont le CVC est temporaire (10 minutes en production, 5 minutes en RCT). Passé ce délai, le token expire automatiquement (status=EXPIRED) et ne peut plus être utilisé, ce qui entraînera l’erreur suivante : "cardTokenId": "Card token already used". Que vous utilisiez la carte immédiatement (paiement simple) ou que vous souhaitiez la réutiliser plus tard (paiement en 1 clic, récurrent, etc.), il est recommandé de commencer par créer un objet Customer, puis d’enregistrer une Card à l’aide du cardTokenId. L’authentification 3DS 2.2 pouvant parfois allonger le délai de traitement, cette séquence permet d’éviter l’expiration du CVC associé au cardToken. Créez un objet customer via l’endpoint POST /customer ou récupérez le customerId s’il est déjà connu Créez une card en utilisant POST /card en spécifiant le cardTokenId émis par le token.js et le customerId Une fois la card rattachée à un customer, le CVC devient permanent et les transactions futures peuvent être initiées sans limite de temps. Si vous n'utilisez pas le token.js (certification PCI-DSS requise), vous pouvez directement créer une card sans passer par le cardToken en fournissant le PAN + expiration + CVC + customerId 3. Authentification 3DS 2.2 Avant d’initier une transaction par carte, vous devez vérifier l’identité du porteur via une authentification 3DS 2.2. Cette étape est obligatoire pour les transactions carte unitaire comme pour les transactions carte récurrente. ℹ️ Exception : Les transactions de type MoTo (Mail Order / Telephone Order) ne sont pas soumises à l’authentification 3DS. Vous pouvez créer la transaction directement après la création de la carte. Authentification 3DS 2.0 Le protocole 3D Secure 2.0 permet de s’assurer que la personne réalisant la transaction est bien le titulaire de la carte. La banque du client analyse les nombreux facteurs liés au paiement adressés par CentralPay (adresse IP, localisation, appareil utilisé…) et les compare aux données habituelles de son client : Si les données ne sont pas concordantes ou que le montant de la transaction est important, elle requière une identification manuelle via un code adressé par SMS ou via son application bancaire (« authentification forte » ou « SCA ») Sinon, elle autorise directement le paiement (« Frictionless ») Il existe deux types de 3DS, selon si vous souhaitez initier une transaction classique (pour laquelle le porteur est présent) ou si vous exécutez une échéance de paiement récurrent (pour laquelle le porteur n’est pas présent) : 1. Le 3DS 2 « BRW » ou « Browser Authentication » (porteur participant – 1ère transaction) Représente la majorité des intégrations de 3DS 2. Il requiert l’authentification du client afin de vérifier qu’il est bien le porteur légitime de la carte au moment de la transaction. Il déclenche si nécessaire un challenge qui vérifie l’identité du porteur de carte (SCA). Découvrez comment intégrer le 3DS 2.0 BRW ➝ 2. Le 3DS2 « 3RI Authentification » (porteur non participant – échéances de paiements récurrents) 3DS Requestor Initiated (3RI) Authentications, ou Authentification Initialisée par le marchand lorsque le porteur n’est pas présent ou non participant. 3RI offre la possibilité de générer les authentifications 3DS nécessaires sans que le client ne soit impliqué. Cela permet d’utiliser une authentification générée précédemment avec un client. Elle est utilisée dans les contextes suivants de paiements récurrents : Paiement fractionné, Abonnement, Refund, etc. Découvrez comment intégrer le 3DS 2.0 3RI ➝ Transaction carte Selon les besoins de votre activité, CentralPay propose divers modes de transactions unitaires via son service API Transaction. Attention, vous devez au préalable gérer la collecte des données carte de votre client en créant un formulaire de paiement Custom Form et intégrer l’authentification 3DS 2.0. Les principes de base d’une transaction carte sont décrits dans la rubrique informations générales. 1. Autorisation et capture instantanée Pour réaliser un paiement simple par carte (autorisation puis capture instantanée) : Réaliser une Transaction en renseignant le paramètre « source » avec la valeur « EC » 2. Autorisation et capture différée Ce mode de transaction peut être utile si vous souhaitez bloquer les fonds de votre client avant de le débiter définitivement, le temps de la validation de votre commande par exemple. Ainsi, vous pouvez annuler l’opération sans être soumis aux frais de transaction ou de remboursement. Pour réaliser un paiement par carte avec capture différée (autorisation puis capture différée), vous devez : Réaliser une autorisation en renseignant le paramètre « capture » de la Transaction avec la valeur « false ». Les fonds seront ainsi bloqués sur la carte du client Puis débiter le montant souhaité en initiant une capture sur le transactionId reçu en précisant le montant souhaité (« amount ») Vous avez 7 jours calendaires suivant l’autorisation pour réaliser la capture, à défaut les fonds du client seront libérés. 3. Pré-autorisation et capture différée Le service de pré-autorisation et capture différée (ou caution / PLBS) permet d’effectuer une pré-autorisation d’un certain montant, que vous pourrez ensuite capturer partiellement ou pleinement sous 30 jours. Durant cette période, les fonds vous sont garantis, ils sont donc bloqués sur la carte et ne peuvent être utilisés par votre client. Ce service n’est accessible qu’à certaines activités autorisées (locations de véhicules ou de matériels, hôtellerie…) Pour réaliser une pré-autorisation et capture différée, vous devez : Réaliser une pré-autorisation en renseignant le paramètre « source » de la Transaction avec la valeur « DP ». Les fonds seront ainsi bloqués sur la carte du client Puis débiter le montant souhaité en initiant une capture sur le « transactionId » reçu en précisant le montant souhaité (« amount ») Vous avez 30 jours calendaires suivant l’autorisation pour réaliser la capture, à défaut les fonds du client seront libérés. 4. Vérification carte (empreinte sécurisée) Le service d’empreinte & vérification carte permet d’effectuer une autorisation à 0€ avec authentification du porteur (3DS 2.0). Ainsi, vous disposerez des informations concernant la carte de votre client (carte de débit, de crédit, prépayée…), et vous vous assurerez qu’elle n’est pas frauduleuse (carte non volée, porteur identifié…). Ce service est généralement utilisé pour enregistrer une carte avec 3DS en vue d’un abonnement avec une date de démarrage différée. Pour réaliser une prise d’empreinte et une vérification carte (autorisation à 0€ sans capture), vous devez : Réaliser une Transaction en renseignant le paramètre « source » avec la valeur « RI » Nous vous recommandons également de créer un « customer » lors de la transaction, afin d’associer le « cardId » ainsi généré et de vous permettre un éventuel débit ultérieur de cette carte 5. Débit carte seul (MO/TO) Le service de paiement MOTO (Mail Order / Telephone Order) permet d’effectuer une autorisation puis une capture d’une carte, sans la présence de son porteur. Il est généralement utilisé par les hôtels pour le débit de services ou de consommations additionnelles en fin de séjour. Attention, ce service n’est accessible qu’à certaines activités autorisées (hôtellerie…), et apporte des résultats de conversion de moins en moins performants depuis la directive DSP2, car elle ne permet pas l’authentification du porteur de carte. Pour réaliser un paiement MOTO, vous devez : Réaliser une Transaction en renseignant le paramètre « source » avec la valeur « MO » (Mail Order) ou « TO » (Telephone Order) 6. Paiement par carte en 1 clic Le paiement par carte en 1 clic consiste à enregistrer les données cartes de votre client, afin qu’il puisse régler sa commande sans avoir à les ressaisir. La ou les cartes du client sont stockées de manière sécurisée dans le Customer CentralPay. Il est dans ce cadre nécessaire de permettre à votre client de sélectionner la carte qu’il souhaite utiliser ou d’ajouter une nouvelle carte. Pour réaliser un paiement par carte en 1 clic, vous devez : Sélectionner l’option « One-click » dans la configuration du point de vente Vous assurez que vos Customer ont une carte liée à leur profil Transaction carte récurrente Selon les besoins de votre activité, CentralPay propose plusieurs modes de transactions récurrentes : Abonnement depuis un modèle d’abonnementCentralPay gère le prélèvement des échéances selon un modèle d’abonnement que vous avez défini en amont. Abonnement depuis des transactions successivesVous pilotez le prélèvement de chaque échéance vous-même par API. Paiement fractionnéCentralPay fractionne une somme due en plusieurs transactions et gère leur prélèvement, selon les conditions de règlement que vous avez renseigné. Attention, vous devez au préalable gérer la collecte des données carte de votre client en créant un formulaire de paiement Custom Form, créer un profil Customer pour ce client, et intégrer les principes d’authentification 3DS 2.0. Les principes de base d’une transaction carte sont décrits dans la rubrique informations générales. Lors d’un paiement récurrent, votre client reçoit automatiquement un email contenant le détail de ses échéances. Ce mail contient également un lien vers notre Portail client qui lui permet de visualiser le statut de ses paiements récurrent, de changer sa carte bancaire et de résilier un abonnement si besoin est. 1. Abonnement depuis un modèle d’abonnement 1.1. Création Vous devez d’abord : Créer un formulaire de paiement Custom Form Créer un Customer contenant au moins une Card Et réaliser une authentification 3DS 2.0 BRW Ensuite, le service d’abonnement (Subscription) vous permettra d’initier facilement un paiement par abonnement en se basant sur un modèle d’abonnement créé en amont depuis l’API CentralPay ou le Portail utilisateur. 1.2. Cas d’intégration spécifiques Si le premier paiement de l’abonnement doit être d’un montant supérieur aux échéances suivantes (ex: frais d’inscription), vous pouvez d’abord initier une Transaction suivant votre authentification 3DS BRW, puis renseigner une date de démarrage (startingDate) dans l’objet Subscription Si vous souhaitez simplement faire démarrer un abonnement à une date précise, vous pouvez d’abord réaliser une empreinte carte vérifiée suivant votre authentification 3DS BRW, puis renseigner une date de démarrage (startingDate) dans l’objet Subscription 2. Abonnement depuis des transactions successives 2.1. Création Vous devez d’abord : Créer un formulaire de paiement Custom Form Créer un Customer contenant au moins une Card Réaliser une authentification 3DS 2.0 BRW Réaliser une première Transaction Ensuite, vous pourrez initier vous-même les prochaines Transactions en utilisant l’authentification 3DS 3RI. 2.2. Informations importantes Pour garantir un taux de conversion optimum, le montant de la première transaction doit être supérieur ou égal aux montants des transactions suivantes réalisées avec l’authentification 3DS 3RI La plateforme CentralPay ne considérera pas les transactions générées comme des « abonnements », ainsi les interfaces « Portail utilisateur » et « Portail client » afficheront ces opérations au même titre qu’une succession de transactions unitaires Avec ce modèle, le système d’automatisation des nouvelles tentatives ne s’appliquera pas en cas d’échec de prélèvement d’une de vos transactions 3. Paiement fractionné 3.1. Création Vous devez d’abord : Créer un formulaire de paiement Custom Form Créer un Customer contenant au moins une Card Et réaliser une authentification 3DS 2.0 BRW Ensuite, le service de paiement fractionné (Installment) vous permettra d’initier facilement un paiement fractionné en se basant sur les éléments renseignés dans votre requête. Transaction carte via wallet 1. Apple Pay (Custom Form) 1.1. Via token Apple Pay déchiffré CentralPay permet le traitement des paiements par carte effectués via Apple Pay, dans le cadre d’une intégration Custom (hors Smart Form). ℹ️ CentralPay ne prend actuellement en charge que les tokens Apple Pay déchiffrés. Prérequis 1. Créer un compte Apple Developer : Inscrivez-vous au programme Apple Developer Créez vos identifiants de marchand Apple Pay (Merchant ID) Générez votre certificat de traitement Apple Pay via le portail Apple Déclarez votre domaine (Apple Pay Merchant Domain) 2. Intégration côté device : Implémentez Apple Pay côté frontend via Apple Pay JS (pour les sites web) ou PassKit (pour les apps iOS) Collectez le token Apple Pay (ApplePayToken) après validation du paiement par l’utilisateur (Face ID, Touch ID…) Étape 1 : Déchiffrement du token Apple Pay Le déchiffrement du token Apple Pay doit être effectué sur votre backend, à l’aide de : Votre certificat de traitement Apple Pay Votre clé privée La documentation Apple : Payment Token Format Le résultat contiendra : { "applicationPrimaryAccountNumber": "5454********2664", "applicationExpirationDate": "YYMMDD", "paymentData": { "cryptogram": "base64-cryptogram", "eciIndicator": "05" }} Étape 2 : Création du cardToken CentralPay Utilisez l’endpoint POST /cardToken de l’API CentralPay ChampDescriptioncard[number]PAN de la carte extrait du token Apple Paycard[expirationMonth]Mois d’expiration de la carte (format MM)card[expirationYear]Année d’expiration de la carte (format YYYY)onlinePaymentCryptogramCryptogramme issu du token Apple Pay (CAVV)eciIndicatorIndice d’authentification issu du token Apple Pay (eci)applePayTransactionIdID de la transaction Apple PayamountMontant en centimes (ex : 2500 = 25,00 €)currencyCode alpha ISO (ex : EUR, USD, etc.)merchantPublicKeyClé publique fournie par CentralPay ℹ️ Où trouver la merchantPublicKey ?Connectez-vous à votre portail CentralPay Back Office Administration Technique Merchant Public Key Exemple : card[number]=5454696696312664card[expirationMonth]=12card[expirationYear]=2031onlinePaymentCryptogram=MGnp3S1LBgJxAANgdNCRAoABFIA=applePayTransactionId=3d2b17abed2696ca...amount=2500currency=EURmerchantPublicKey=abcdef123456... Le cardToken généré contient toutes les données nécessaires à l’authentification Apple Pay. Étape 3 : Création de la transaction CentralPay Utilisez l’endpoint POST /transaction de l’API CentralPay Champs requis : cardToken=...amount=2500currency=EURpointOfSaleId=...endUserIp=...merchantTransactionId=... Le cardToken encapsule déjà le contexte Apple Pay et les données d’authentification. Étape 4 : Testing avant mise en production L’environnement de test CentralPay permet de valider l’ensemble de votre intégration Apple Pay sans déclencher de véritables paiements. Il est fortement recommandé d’utiliser cet environnement pour toutes les phases de développement, de debug et de validation côté frontend comme backend. Portail de test API de test Cartes de test Différences entre environnement de test et de production : Les URLs des API sont différentes : Elles utilisent le préfixe test- Test : https://test-api.centralpay.net/v2/rest/transaction Production : https://api.centralpay.net/v2/rest/transaction Les identifiants API (login + secret) sont propres à l’environnement de testIls ne sont pas interchangeables avec ceux de production La clé publique Apple Pay (merchantPublicKey) est également spécifique à l’environnement 2.2. Via token ApplePay chiffré ℹ️ Au 18/04/2025, cette méthode n’est pas encore disponible chez CentralPay.Si cette méthode d’intégration vous intéresse, veuillez contacter le support CentralPay afin de connaître les livrables associés et les modalités d’accès. Création de CardToken avec votre token Apple pay chiffré. Lors de votre appel API, en plus des champs obligatoires, il faudra utiliser le champ « applePayToken« au format JSON comprenant votre token Apple Pay qui incluent les éléments « paymentData », « paymentMethod » et « transactionIdentifier ».Vous pourrez ensuite effectuer une transaction à l’aide de votre cardToken normalement. Création de Transaction avec votre token Apple pay chiffré. Lors de votre appel API, en plus des champs obligatoires, il faudra utiliser le champ « applePayToken » au format JSON comprenant votre token Apple Pay qui inclus les éléments « paymentData », « paymentMethod » et « transactionIdentifier ». 2. Google Pay (Custom Form) 2.1. Via token Google Pay déchiffré Pour pouvoir accepter les paiements Google Pay via CentralPay, vous devez configurer correctement votre compte marchand Google et gérer les clés de chiffrement nécessaires au déchiffrement des tokens. ℹ️ Cette méthode implique une responsabilité PCI-DSS importante de votre part. Renseignez-vous et assurez-vous d'être en conformité avant de développer ce mode d'intégration. Prérequis 1. Créer un compte Google Pay Business : Accédez au Google Pay Business Console Créez un Merchant Profile ou connectez-en un existant Renseignez vos coordonnées de société et d’activité 2. Enregistrer votre domaine : Dans la console Google Pay, allez dans l’onglet « Domains« Ajoutez votre domaine de production et de test (ex : example.com) Google vous demandera d’y héberger un fichier de vérification pour valider votre propriété 3. Générer votre paire de clés de chiffrement : Google Pay chiffre les tokens envoyés à votre site en utilisant une clé publique que vous fournissez. Générez votre paire de clés (exemple avec OpenSSL) # Générer la clé privéeopenssl ecparam -name prime256v1 -genkey -noout -out private-key.pem# Extraire la clé publiqueopenssl ec -in private-key.pem -pubout -out public-key.pem Convertissez la clé publique au format Google (base64 sans en-tête PEM) # Supprimer les lignes "-----BEGIN..." et "-----END..."# et ne garder que le bloc de contenu base64 4. Enregistrer votre clé publique dans Google Pay Dans la console Google Pay, allez dans “Payment Processing” Ajoutez un nouvel encrypting key Donnez-lui un nom, collez votre clé publique au format Base64, et sélectionnez le type : ECv2 Cette clé sera utilisée pour chiffrer tous les tokens envoyés à votre site Étape 1 : Déchiffrement du token Google Pay Une fois Google Pay intégré côté frontend (Google Pay JS ou Android), vous recevrez un token chiffré via : paymentData.tokenizationData.token Ce champ contient un JSON chiffré (pas un JWT), que vous devez déchiffrer sur votre backend à l’aide de la clé privée correspondant à la clé publique enregistrée chez Google. Google propose une bibliothèque de déchiffrement officielle en Java, mais des portages existent en Node.js, PHP, Python, etc. Consultez la documentation officielle (Payment Data Cryptography) ➝ Une fois déchiffré, vous obtiendrez une structure similaire à : { "pan": "4111111111111111", "expirationMonth": "12", "expirationYear": "2030", "cryptogram": "AgAAAAAAAIR8CQrXcIhbQAAAAAA=", "eciIndicator": "05"} Ce sont ces données que vous devrez envoyer à CentralPay pour créer un cardToken. Étape 2 : Création du cardToken via l’API CentralPay Utilisez l’endpoint POST/cardToken de l’API CentralPay ChampDescriptioncard[number]PAN de la carte extrait du token Google Paycard[expirationMonth]Mois d’expiration de la carte (format MM)card[expirationYear]Année d’expiration de la carte (format YYYY)onlinePaymentCryptogramCryptogramme issu du token Google Pay (CAVV)eciIndicatorIndice d’authentification issu du token Google Pay (eci)googlePayMessageIdID de la transaction Google PayamountMontant en centimes (ex : 2500 = 25,00 €)currencyCode alpha ISO (ex : EUR, USD, etc.)merchantPublicKeyClé publique fournie par CentralPay ℹ️ Où trouver la merchantPublicKey ?Connectez-vous à votre portail CentralPay Back Office Administration Technique Merchant Public Key Exemple : card[number]=5454696696312664card[expirationMonth]=12card[expirationYear]=2031onlinePaymentCryptogram=MGnp3S1LBgJxAANgdNCRAoABFIA=googlePayTransactionId=ABCD-EFGH-1234amount=2500currency=EURmerchantPublicKey=abcdef123456... Le cardToken généré contient toutes les données nécessaires à l’authentification Google Pay. Étape 3 : Création de la transaction CentralPay Utilisez l’endpoint POST/transaction de l’API CentralPay. Champs requis : cardToken=...amount=2500currency=EURpointOfSaleId=...endUserIp=...merchantTransactionId=... Le cardToken encapsule déjà le contexte Google Pay et les données d’authentification. Étape 4 : Testing avant mise en production L’environnement de test CentralPay permet de valider l’ensemble de votre intégration Apple Pay sans déclencher de véritables paiements. Il est fortement recommandé d’utiliser cet environnement pour toutes les phases de développement, de debug et de validation côté frontend comme backend. Portail de test API de test Cartes de test Différences entre environnement de test et de production : Les URLs des API sont différentes : elles utilisent le préfixe test- Test : https://test-api.centralpay.net/v2/rest/transaction Production : https://api.centralpay.net/v2/rest/transaction Les identifiants API (login + secret) sont propres à l’environnement de testIls ne sont pas interchangeables avec ceux de production La clé publique Apple Pay (merchantPublicKey) est également spécifique à l’environnement 2.2. Via token Google Pay chiffré CentralPay permet l’intégration directe de Google Pay via le mode “gateway” (passerelle de paiement), sans nécessiter de déchiffrement du token côté serveur. Dans ce mode, CentralPay est désigné comme prestataire (gateway) auprès de Google Pay, et gère la validation du token pour vous. Prérequis 1. Créer un compte Google Pay Business : Accédez au Google Pay Business Console Créez un Merchant Profile ou connectez-en un existant. Renseignez vos coordonnées de société et d’activité. 2. Enregistrer votre domaine : Dans la console Google Pay, allez dans l’onglet “Domains” Ajoutez votre domaine de production et de test (ex : example.com) Google vous demandera d’y héberger un fichier de vérification pour valider votre propriété 3. Réaliser votre intégration frontend Google Pay : Implémentez Google Pay côté frontend via Google Pay JS (pour les sites web) ou Google Pay API Android (pour les applications mobiles) Collectez le token Google Pay (tokenizationData.token) après validation du paiement par l’utilisateur (code PIN, empreinte digitale, reconnaissance faciale…). ℹ️ Google propose un tutoriel officiel pour cette intégration : Google Pay API | Google for Developers 4. Récupérez vos identifiants CentralPay : MerchantPublicKey : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Merchant Public Key Login API : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Identifiant API et copiez l’identifiant Pass API : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Cliquez sur votre Identifiant API → Modifier → Générer , copiez votre pass API et mettez à jour Étape 1: Configuration de Google Pay côté frontend 1. Définir la version de l’API : const baseRequest = { apiVersion: 2, apiVersionMinor: 0}; 2. Utiliser CentralPay comme passerelle de paiement : Configurez la tokenisation comme suit : const tokenizationSpecification = { type: 'PAYMENT_GATEWAY', parameters: { gateway: 'centralpay', gatewayMerchantId: 'YOUR_GATEWAY_MERCHANT_ID' }}; Remplacez YOUR_GATEWAY_MERCHANT_ID par votre MerchantPublicKey fourni par CentralPay. 3. Environnement de test ou production : // Environnement de testconst paymentsClient = new google.payments.api.PaymentsClient({ environment: 'TEST' });// Environnement de productionconst paymentsClient = new google.payments.api.PaymentsClient({ environment: 'PRODUCTION' }); Étape 2 : Récupération du token Google Pay Lorsqu’un utilisateur final valide un paiement via Google Pay, l’API retourne un token au format JSON dans : paymentData.paymentMethodData.tokenizationData.token Ce champ contient une chaîne JSON représentant un objet du type : { "signature": "MEYCIQDn...", "protocolVersion": "ECv2", "intermediateSigningKey": { "signedKey": "{...}", "signatures": ["MEUCID..."] }, "signedMessage": "{...}"} Ce bloc devra être transmis tel quel à l’API CentralPay lors de la création du cardToken dans le champ googlePayToken. Étape 3 : Envoi du token à CentralPay (création du cardToken) Faites un appel à l’endpoint POST /cardToken de CentralPay avec les paramètres suivants : Paramètres requis : ChampDescriptionamountMontant en centimes (ex : 2500 pour 25,00 €)currencyCode ISO alpha (ex : EUR, USD, etc.)googlePayTokenLe JSON complet retourné par Google Pay (tokenizationData.token)merchantPublicKeyClé publique CentralPay disponible dans le backoffice Exemple de requête (format x-www-form-urlencoded) : amount=2500currency=EURmerchantPublicKey=abcdef123456...googlePayToken={"signature":"MEYCIQDn...","protocolVersion":"ECv2",...} Ne déchiffrez pas le token vous-même : CentralPay s’occupe de sa validation côté serveur. Étape 4 : Création de la transaction Une fois que le cardToken est obtenu, vous pouvez déclencher une transaction de manière standard via l’endpoint POST /transaction. Exemple de paramètres : cardToken=...amount=2500currency=EURpointOfSaleId=...endUserIp=...merchantTransactionId=... Le cardToken contient déjà toutes les informations d’authentification : pas besoin d’ajouter de cryptogramme ou de champ CVV. Étape 5 : Testing avant mise en production L’environnement de test CentralPay permet de valider l’ensemble de votre intégration Apple Pay sans déclencher de véritables paiements. Il est fortement recommandé d’utiliser cet environnement pour toutes les phases de développement, de debug et de validation côté frontend comme backend. Portail de test API de test Cartes de test Différences entre environnement de test et de production : Les URLs des API sont différentes : elles utilisent le préfixe test- Test : https://test-api.centralpay.net/v2/rest/transaction Production : https://api.centralpay.net/v2/rest/transaction Les identifiants API (login + secret) sont propres à l’environnement de testIls ne sont pas interchangeables avec ceux de production La clé publique Apple Pay (merchantPublicKey) est également spécifique à l’environnement R-transaction carte 1. Remboursement Vous pouvez rembourser une Transaction si celle-ci est « Cleared » via le service Refund ou depuis le détail de la Transaction dans le Portail utilisateur. Vous pouvez initier un remboursement total ou partiel en renseignant un montant. Votre client recevra les fonds sur sa carte sous 3 à 5 jours ouvrés après l’opération. Votre compte de paiement est lui débité immédiatement, il doit donc être solvable pour pouvoir réaliser l’opération. Vous ne pouvez pas annuler un remboursement une fois celui-ci réalisé. 2. Crédit Vous pouvez créditer la carte d’un client sans transaction initiale depuis le service Credit. Pour cela, il existe plusieurs solutions : Tokeniser une carte via le service cardToken pour ensuite la renseigner dans le service Credit Créer ou rechercher un Customer disposant d’une carte valide, puis renseigner son « customerId » ainsi que son « cardId » dans le service Credit ℹ️ Ce service n'est disponible que pour des activités spécifiques, contactez CentralPay pour en savoir plus. 3. Contestation Pour tout paiement par carte, votre client a la possibilité de contester une transaction auprès de sa banque (opération nommée contestation, chargeback ou impayé) : Pendant 120 jours à compter de la transaction sur les réseaux « Visa » ou « Mastercard » Pendant 13 mois à compter de la date d’opération sur le réseau Français « Carte Bancaire » ℹ️ En France, une contestation n'est en principe autorisée que dans le cadre d'une utilisation frauduleuse de la carte (carte volée, prélèvements abusifs…). Cependant, dans d'autres pays européens, la contestation peut également être utilisée dans le cadre d'un litige commercial (service ou produit non rendu / non conforme). En cas de contestation, CentralPay en est informé et crée automatiquement sur votre compte une opération de Dispute liée à la transaction contestée. Le montant de cette transaction vous sera débité afin de rembourser votre client. Des frais non remboursables s’appliquent également pour chaque contestation reçue. À ce stade, le statut de la Dispute sera Chargeback_Noticed et vous pourrez consulter sur le Portail utilisateur ou via notre API le motif de contestation de votre client. Vous disposez ainsi d’un délai de 20 jours calendaires pour répondre en fournissant la preuve de livraison du service ou du produit. À défaut de réponse dans les délais impartis, il ne sera plus possible de répondre à la contestation. ℹ️ Notez que dans le cadre des transactions non authentifiées (sans 3DS), vous devez également justifier du consentement du titulaire de la carte. Vous devez à minima prouver que le nom et prénom de votre client est bien le même que celui qui est indiqué sur la carte de paiement. Une fois votre réponse émise, celle-ci est étudiée par la banque de votre client avant d’adresser son verdict : Vous avez obtenu gain de cause, la contestation a été rejetée. Le montant de la transaction vous est remboursé et le statut de la Dispute passe en Chargeback_Won. Vos preuves sont jugées insuffisantes, la contestation est maintenue. Le statut de la Dispute passe en Chargeback_Lost. ℹ️ Il est possible, en amont d'une contestation, qu'un client réalise une demande d'information sur une transaction afin d'en connaitre les détails. CentralPay créera une opération Dispute avec statut Retrieval_Noticed. Vous devez répondre dans les 7 jours en fournissant la nature du service délivré, la preuve de consentement du client et/ou la preuve de livraison. Si votre réponse est acceptée, le statut de la Dispute passera à Retrieval_Close. À défaut de réponse, votre client pourra déclencher une contestation auprès de sa banque. Email de confirmation Quand une transaction par carte a été réalisée avec succès, CentralPay peut adresser un email de confirmation de paiement à votre client. Pour cela, vous devez l’activer en renseignant les paramétrages de l’email de confirmation dans votre Point de Vente. Cet email est adressé par défaut à l’email du Customer associé à la transaction, mais vous pouvez renseigner la valeur receiptEmail de la transaction si vous souhaitez l’adresser à un autre. Paramétrage L’email de confirmation possède une mise en forme standardisée affichant les différentes informations de paiement, vous pouvez cependant configurer plusieurs paramètres depuis le Portail utilisateur. Adresse email de l’expéditeur : Paramètrage depuis le point de vente Nom de l’expéditeur : Paramètrage depuis le point de vente Votre logo : Paramètrage depuis le point de vente Nom du point de vente : Paramètrage depuis le point de vente Texte de pied de page : Paramétrage depuis l’entrrée Configuration Email confirmation paiement Créer Langue d’affichage : Renseigner la valeur « endUserLanguage » dans la requête de Transaction (anglais par défaut) Libellé relevé bancaire Le libellé de relevé bancaire correspond à la description qui sera affichée sur le relevé de compte bancaire de vos clients pour chacune de vos transactions par carte. Lorsqu’un compte CentralPay « marchand » ou « partenaire » est créé, un libellé de relevé bancaire est défini automatiquement en utilisant le nom de votre premier Point de Vente : CPAY*NomDuPointDeVente Vous pouvez demander à CentralPay de modifier votre libellé, cependant il doit permettre à vos clients de vous identifier clairement ou d’accéder à votre site de réclamation. Gestion des devises Dans le cadre d’une activité internationale, vos clients peuvent disposer d’une carte adossée à un compte bancaire en devises non Euros. Quelle que soit votre intégration, ces clients pourront vous régler en Euros grâce au système de conversion automatique des réseaux carte (Visa, Mastercard, American Express). Vos clients porteront l’ensemble des coûts de conversion des devises, et vous recevrez des Euros sur votre compte CentralPay. Dans certains cas, CentralPay peut vous permettre d’encaisser des transactions par carte bancaire dans différentes devises : Euros (EUR), Dollars (USD), Francs Suisses (CHF) et Livres (GBP). Contactez CentralPay si la gestion de transaction en devises est un enjeu pour votre activité. Notez que dans ce cas, les coûts d’acquisition en devises (hors EUROS) sont soumis à des frais complémentaires et seront déduits du montant de vos transactions. ℹ️ Les reversements (payout) par virement SEPA ne peuvent être réalisés que sur les valeurs disponibles en EUROS. Les valeurs hors EUROS sont reversées par virement SWIFT ayant des frais supérieurs. Il est cependant possible de programmer les reversements SWIFT afin qu'il ne soit réalisés qu'à partir d'un certain seuil, afin de mieux maitriser ses coûts de reversement. Gestion des cartes virtuelles (VCC) 1. Fonctionnement Les grands OTA que sont Booking.com, Expedia.com, hotels.com ou Agoda.com peuvent collecter les règlements lors de la réservation. Dans ce cas, ils fournissent aux hôteliers, non pas les données de la carte du client, mais une alias, qui est une carte virtuelle ou VCC. Une carte virtuelle ou VCC est généralement émise pour un usage encadré afin de limiter les risques de compromission. Une carte virtuelle représente en quelque sorte l’alias d’une carte existante qui ne pourra être utilisé qu’à partir d’une certaine date et depuis un MCC défini. En l’occurrence, dans le secteur du tourisme, il est nécessaire d’avoir un contrat avec le MCC 7011 (HOTELS) pour pouvoir la débiter. Ainsi, dans le cas où le numéro de carte tombait entre les mains d’une personne mal intentionnée, elle ne pourrait pas déclencher de débit sur la carte source. Étant donné la nature spéciale des cartes issues par ces OTA, il est en général impossible de réaliser des demandes d’autorisation, de pré-autorisation ou de vérification au moment de la commande. Si la carte n’est débitable que le jour de la réservation par un MCC 7011 par exemple, l’émetteur, en général MASTERCARD B2B PRODUCT, renverra un code d’erreur pour transaction invalide (12). ➡️ Cartes virtuelles Booking.comBooking.com utilise des cartes virtuelles sur certaines destinations. En fonction du paramétrage réalisé sur le site de l’hôtel, une réservation pourra être réalisée avec ou sans prise d’empreinte carte. Si l’hôtelier a choisi de demander un moyen de paiement, alors Booking.com génèrera une carte virtuelle et l’adressera à l’hôtelier ou à son prestataire technique. Suite à la crise du Covid 19, Booking.com n'autorise plus les débits de ses VCC qu'un jour après le checkin du client.En savoir plus sur le fonctionnement des cartes virtuelles de Booking.com ➝ ➡️ Cartes virtuelles Expedia.comChez Expedia, il est possible de laisser le visiteur choisir entre la possibilité de payer à l’hôtel (Hotel Collect) ou de payer directement lorsqu’il réalise la réservation (Expedia Collect). Cette option est appelée Expedia Traveler Preference (ETP). Si un client utilise la méthode Expedia Collect, une carte virtuelle sera alors générée.En savoir plus sur le fonctionnement des cartes virtuelles d'expedia.com ➝ 2. Gestion des cartes virtuelles avec CentralPay La meilleure méthode pour stocker une VCC et de pouvoir l’utiliser une fois disponible est de créer un « Customer » et de lui associer la carte concernée. Deux options sont ouvertes : Soit la carte est débitable au moment de la création et une demande de vérification est réalisable à la création du Customer Soit la carte n’est pas utilisable à la création du customer et la carte doit être créé sans vérification. Cela ne signifie pas qu’elle ne pourra pas être utilisée à terme. Cela veut simplement dire qu’elle ne doit être débitée qu’à une certaine date. En général, les OTA auront préalablement vérifié les données de la carte pour s’assurer qu’elle était débitable Ainsi, créer un Customer dans l’API CentralPay permet de tokeniser la carte virtuelle, sécuriser son stockage et de faciliter son utilisation lorsque les conditions d’acceptation initiales auront été réunies. Retours, statuts et hooks 1. Codes de retour banque liés aux transactions carte Lorsqu’une transaction carte (objet « Transaction ») est initiée, une demande d’autorisation est soumise à la banque émettrice de la carte. Cette dernière répond avec un code, permettant d’interpréter l’acceptation, le refus et la cause du refus de l’autorisation. La banque du titulaire de la carte (appelée également « banque émettrice ») exprime son refus en fonction de choix qui lui sont propres et totalement indépendants de CentralPay. CentralPay n’est en possession d’aucune information complémentaire si une carte est refusée et n’a aucun moyen d’en obtenir. Les principaux codes de retour banque : CodeDescriptionA1 – Repli VADSDSP2 et Soft declineLa banque refuse la transaction, car elle ne possède pas d’authentification forte (3DS 2.0).Il est nécessaire de repasser cette transaction en 3DS afin de ne plus avoir ce code.57, 3 et 5Refus générique de la banqueLa banque refuse sans donner de statut particulier.Cela peut être un code CVV erroné ou une autre décision que nous ne connaissons pas.Ce statut ne permet pas d’affirmer que la banque n’acceptera pas l’autorisation après d’autres tentatives.4, 7, 14, 15, 31, 33, 34, 41, 43, 54, 55, 56, 59, 63, 76Suspicion de fraude ou vol de la carteLa banque émettrice estime que son client n’est plus en possession de la carte et qu’il s’agit d’une usurpation.51, 61Provisions insuffisantes / plafond atteintLa carte a dépassé le montant du plafond autorisé ou ne dispose pas des fonds suffisants.La carte peut de nouveau être acceptée ultérieurement, les plafonds étant calculés sur 7 jours glissant, une transaction peut tout à fait être retentée le lendemain.12Transaction invalideLa banque refuse sans donner de statut particulier. Cela peut être :– Simplement une transaction invalide– Un code 75 de la part de la banque émettrice (le code PIN de la carte a été trop de fois incorrect).– Un CVV erroné (fournit par l’ACS lors d’une authentification 3DS)– Ou une autre décision que nous ne connaissons pas. Consultez la liste complète des codes de retour banque ➝ 2. Statuts liés aux transactions carte Consultez les Statuts Transaction ➝ Consultez les Statuts Refund ➝ Consultez les Statuts Credit ➝ Consultez les Statuts Disputes ➝ Consultez les Statuts Subscription ➝ Consultez les Statuts Installement ➝ 3. Webhooks liés aux transactions carte Consultez les Webhooks Transaction ➝ Consultez les Webhooks Card ➝ Consultez les Webhooks Refund ➝ Consultez les Webhooks Credit ➝ Consultez les Webhooks Customer ➝ Consultez les Webhooks Dispute ➝ Consultez les Webhooks Subscription ➝ Consultez les Statuts Installement ➝ Transaction par virement Informations générales 1. Fonctionnement Le virement bancaire est le moyen de paiement le plus répandu pour les règlements d’entreprises. Il consiste en un transfert direct des fonds d’un compte (bancaire ou de paiement) à un autre, sans utiliser de support additionnel comme une carte par exemple. La personne physique ou morale qui demande l’émission du virement est dénommée le donneur d’ordre (ou l’émetteur), celle qui reçoit l’argent le bénéficiaire. Contrairement à un paiement par carte ou par prélèvement SEPA, seul l’émetteur lui-même peut initier un virement. Il se rend ainsi sur l’espace personnel de sa banque, déclare les coordonnées bancaires du bénéficiaire (IBAN + BIC + Nom de titulaire), puis renseigne un montant et une référence de virement. Quelques informations importantes : Le délai de réception d’un virement classique chez CentralPay est de 4 à 24 heures ouvrées (contre 24 à 48 heures ouvrées chez la majorité des banques traditionnelles). Il sera également possible de recevoir des virements instantanés (réception <5 secondes) à partir d’octobre 2024 Le virement ne présente pas de risque financier majeur pour le marchand bénéficiaire, car l’émetteur s’authentifie fortement auprès de sa banque et ne peut donc pas contester cette opération Les banques émettrices accordent un plafond de règlement par virement nettement plus élevé que celui appliqué aux opérations de prélèvement SEPA ou de règlement par carte Selon les fonctionnalités proposées par sa banque, l’émetteur peut programmer un virement récurrent ou à date différée 2. Types de réseaux acceptés Il existe deux types de virements bancaires : Les virements SEPA (ou SEPA Credit Transfer) : Utilisés pour les opérations en EUROS réalisées entre deux pays membres de la zone SEPA (= 27 pays de l’Union européenne + Royaume-Uni, Monaco, Andorre, Vatican, Suisse, Liechtenstein, Norvège, Islande et Saint-Marin) Les virements internationaux : Utilisés pour les opérations internationales en EUROS ou en devises, via le réseau SWIFT Les frais applicables aux réseaux SEPA sont très largement favorables (à peine quelques dizaines de centimes contre plusieurs dizaines d’euros pour SWIFT). SWIFT permet cependant plusieurs options liées au règlement de ses frais : à la charge de l’émetteur, du bénéficiaire ou partagés. CentralPay est atteignable par toutes les banques de l’Espace Économique Européen utilisant les réseaux SEPA (via STEP2 pour les SCT/SDD, ainsi que TIPS et RT1 pour les « Instant SCT »). Seuls les virements de réseaux internationaux ou en devises hors EUROS ne sont pas recevables pour le moment (via réseau SWIFT par exemple). IBAN Virtuels Le paiement par virement bancaire impose une responsabilité au client émetteur : celle de renseigner les coordonnées bancaires (IBAN + BIC + Nom du titulaire), le montant du règlement mais aussi la référence de virement. Une absence ou un mauvais formatage de la référence (causé par le client ou par le système de sa banque) contraint le bénéficiaire d’analyser manuellement le virement reçu pour le rapprocher à la bonne facture et au bon poste client. CentralPay vous permet de présenter un IBAN virtuel différent à chacun de vos clients (Customer) ou dans chacune de vos factures (PaymentRequest). Ainsi lors de la réception d’un virement, CentralPay identifie automatiquement l’émetteur et peut rapprocher la facture pour vous, selon l’IBAN virtuel utilisé par votre client, même en cas d’erreur de référence. Un IBAN Virtuel est en tous points identique à un IBAN classique, ce qui rend le processus entièrement transparent pour vos clients. Ce service vous permettra notamment : D’être informé instantanément quand un client vous a réglé par virement D’automatiser vos alertes internes et vos relances clients (via le service de notifications) D’automatiser le rapprochement de vos paiements dans vos solutions comptables ou de facturations (ERP…) Pour les plateformes et marketplaces : d’identifier facilement le marchand bénéficiaire et de lui transférer les fonds Vous pourrez créer des IBAN Virtuels CentralPay depuis différents services de la plateforme : Depuis le service Customer Depuis le service SCT Transaction Depuis le service PaymentRequest Chaque compte de paiement ou de monnaie électronique dispose nativement d'un IBAN Virtuel dédié 1. Consulter l’IBAN Virtuel de ses comptes Vous pouvez retrouver l’IBAN Virtuel de vos comptes depuis le Portail utilisateur Administration Comptes IBAN/BIC : Il est également possible d’interroger l’API CentralPay avec le endpoint /bankAccount Accès : Portail Utilisateur de RCT – Comptes Portail Utilisateur de PROD – Comptes 2. Créer un IBAN Virtuel dédié à un Customer Vous pouvez créer un IBAN Virtuel dédié à un client lors de la création d’un nouveau Customer, ou via l’update d’un Customer existant. Pour cela, vous devez renseigner le champ « walletIdForIban » avec l’UUID du compte de paiement sur lequel vous souhaitez recevoir les fonds. Vous pouvez retrouver ce dernier depuis le Portail utilisateur Administration Comptes UUID : Accès : Portail Utilisateur de RCT – Comptes Portail Utilisateur de PROD – Comptes En retour, vous recevrez dans le champ « bankAccounts » les valeurs « iban » et « bic » constituant l’IBAN Virtuel de votre Customer. ℹ️ Le BIC des IBAN émis par CentralPay est CEAYFR22 3. Création d’un IBAN Virtuel dédié à une SCT Transaction Comme pour un Customer, vous pouvez créer un IBAN Virtuel dédié à une transaction par virement lors de la création d’une SCT Transaction. ℹ️ Pour rappel, une SCT Transaction est créée automatiquement par CentralPay lorsque vous recevez un virement sur votre IBAN Virtuel principal ou celui d'un Customer. Il est cependant possible de créer une SCT Transaction en amont afin de lui affecter un IBAN Virtuel dédié et une référence personnalisée par exemple. Pour cela, vous devez renseigner le champ « ibanWalletId » avec l’UUID du compte de paiement sur lequel vous souhaitez recevoir les fonds. Vous pouvez retrouver ce dernier depuis le Portail utilisateur Administration Comptes UUID : Accès : Portail Utilisateur de RCT – Comptes Portail Utilisateur de PROD – Comptes En retour, vous recevrez dans le champ « bankAccounts » les valeurs « iban » et « bic » constituant l’IBAN Virtuel de votre SCT Transaction. ℹ️ Un IBAN Virtuel dédié à une SCT Transaction n'est plus fonctionnel une fois que sa SCT Transaction a été entièrement réglée. Il est cependant possible de recevoir plusieurs virements d'un montant inférieur sur un même IBAN pour compléter le montant de la SCT Transaction.À noter que si un virement reçu dépasse le montant de la SCT Transaction, il sera tout de même accepté. Vous devrez réaliser un remboursement partiel pour reverser le trop perçu à votre client. 4. Utilisation des IBAN Virtuels depuis les demandes de paiement Il est possible d’utiliser des IBAN Virtuels Customer ou SCT Transaction depuis le service de demande de paiement, si vous acceptez le moyen de paiement « SCT Transaction ». Vous pouvez sélectionner le type d’IBAN Virtuel que vous souhaitez afficher dans vos demandes de paiement depuis le champ « Viban prioritaire » des paramétrages de votre point de vente. Si vous sélectionnez : SCT : La demande de paiement créera systématiquement un IBAN Virtuel dédié à la SCT Transaction Client : La demande de paiement utilisera l’IBAN Virtuel du Customer s’il en dispose déjà d’un, sinon elle en créera un automatiquement ℹ️ Dans le cas d'une demande de paiement avec vIBAN à la SCT Transaction uniquement : Si vous annulez la demande de paiement, le vIBAN associé ne sera plus atteignable. Ainsi, chaque virement reçu sur ce vIBAN sera automatiquement renvoyé à son émetteur. Transaction par virement 1. Fonctionnement Une SCT Transaction représente un virement bancaire reçu sur un de vos IBAN Virtuel CentralPay. Elle peut être créée de trois manières différentes : AutomatiquementSi vous adressez un IBAN Virtuel dédié à l’un de vos clients ou l’un de vos comptes de paiement, CentralPay créera la SCT Transaction automatiquement lors de la réception du virement. Vous pourrez ensuite rapprocher cette SCT Transaction à votre commande/facture en récupérant la valeur du champ « description » (correspondant à la référence renseignée par votre client dans son espace bancaire) Depuis le service SCT TransactionSi vous souhaitez automatiser le rapprochement du virement à la transaction, vous pouvez : Créer une SCT Transaction avec un IBAN Virtuel dédié : ce qui permettra un rapprochement sûr à 100% à votre transaction. Attention, dans ce cas vos clients devront déclarer un nouveau bénéficiaire dans leur espace bancaire à chaque virement qu’ils vous adresseront Créer une SCT Transaction en utilisant un IBAN Virtuel Customer et récupérer la référence courte générée par CentralPay pour cette transaction : ce qui permettra de rapprocher systématiquement le virement au profil client correspondant, et potentiellement jusqu’à la transaction si votre client a bien renseigné la référence dans son virement Depuis le service de demande de paiementSi vous souhaitez déléguer à CentralPay l’affichage des informations de règlement à vos clients (montant, IBAN, BIC, référence…), vous pouvez créer une Demande de paiement autorisant les paiements par SCT Transaction. Cette option permet également de gérer facilement les virements multiples ou les règlements clients depuis plusieurs moyens de paiement 2. Créer une SCT transaction Créer une SCT Transaction : Renseignez un montant en centimes (amount), et une devise (currency) Si vous souhaitez créer un IBAN Virtuel dédié à la SCT Transaction, renseignez le champ « ibanWalletId » avec l’UUID de votre compte de paiement sur lequel vous souhaitez recevoir les fonds. Vous pouvez retrouver ce dernier depuis le Portail utilisateur Administration Comptes UUID Si vous souhaitez utiliser un IBAN Virtuel existant (dédié à un Customer ou à un compte de paiement), renseignez le champ « iban » avec l’IBAN souhaité Vous pourrez ensuite récupérer la valeur « sepaReference » générée par CentralPay et la transmettre à votre client pour laisser CentralPay rapprocher le virement à votre transaction Ou renseigner la valeur « merchantSctTransactionId » avec votre propre référence personnalisée pour rapprocher vous-même le virement via nos exports d’opérations Pay by Bank - Initiation de paiement (PIS) 1. Fonctionnement Le service d’initiation de paiement (PIS – Payment Initiation Service) permet à vos clients de réaliser un virement bancaire directement depuis leur environnement bancaire, sans avoir à saisir manuellement les coordonnées du bénéficiaire. Cette fonctionnalité repose sur le protocole Open Banking, en conformité avec la DSP2. Chez CentralPay, ce service est proposé sous l’intitulé Pay by Bank et est actuellement accessible uniquement via le formulaire de paiement hébergé (SmartForm), dans le cadre de l’utilisation du service PaymentRequest. ℹ️ Le service est uniquement disponible via le Smart Form (PaymentRequest). Il n’est pas encore possible d’utiliser ce mode de paiement en tant que moyen unique, il est toujours présenté en complément du service de paiement par virement traditionnel. L’expérience de paiement dépend des interfaces de la banque du client payeur. 2. Activation du service L’initiation de paiement n’est pas activée par défaut. Pour en bénéficier, il est nécessaire d’en faire la demande auprès des équipes support de CentralPay. 3. Utilisation via PaymentRequest Pour permettre à vos clients d’initier un virement directement depuis le formulaire de paiement, vous devez : Créer une PaymentRequest selon les modalités habituelles. Inclure le moyen de paiement suivant dans la propriété payment_methods :• PIS Standard « payment_methods » : [« SCT_TRANSACTION_PIS »]• PIS IP « payment_methods » : [« SCT_TRANSACTION_PIS_IP »] Lorsque ce moyen de paiement est présent, le Smart Form proposera à l’utilisateur un choix entre : Le virement bancaire classique (affichage des coordonnées bancaires à recopier) L’initiation de paiement via son environnement bancaire (Pay by Bank) ℹ️ Il n’est pas possible à ce stade de forcer l’utilisation exclusive de l’initiation de paiement. Le formulaire affichera toujours l’alternative avec les coordonnées bancaires classiques. 4. Parcours utilisateur L’utilisateur sélectionne « Pay by Bank » dans le formulaire Il choisit sa banque dans la liste proposée Il est redirigé vers l’environnement de sa banque pour valider l’opération de virement Une fois le paiement initié, il est redirigé vers votre page de retour 5. Suivi et statuts Une fois la PaymentRequest créée, le statut du virement est disponible via l’API comme pour tout autre paiement : Le champ payment_method sera valorisé à SCT_TRANSACTION Le champ status indiquera la progression de l’initiation de paiement (par exemple pending, succeeded, failed) ℹ️ Comme pour les virements classiques, la finalisation du paiement dépend de l’exécution effective du virement par la banque du client. Le client peut choisir entre réaliser un virement standard (à J+1) ou un virement immédiat. 6. Liste des banques disponibles par pays ℹ️ En environnement de recette, une banque nommée "Connecteur de test" est affichée pour vous permettre de tester le parcours de bout en bout. Attention : le montant maximum autorisé sur ce connecteur de test est de 20€. Banques françaises : InstitutionStandardInstantanéAllianz Banque✅🚫Arkéa Banking Services✅🚫Arkéa Banque Entreprises et Institutionnels✅✅Arkéa Banque Privée✅✅AXA Banque✅✅Banque BCP✅✅Banque Chalus✅✅Banque de Savoie✅✅Banque des Territoires✅🚫Banque Européenne Crédit Mutuel✅✅Banque Populaire✅✅Banque Transatlantique✅✅BBVA (Non activé)🚫🚫BforBank✅🚫BNP Paribas✅✅BNP Paribas Entreprises✅🚫BNP Paribas Nouvelle-Calédonie (Non activé)🚫🚫BoursoBank✅✅BRED✅✅BTP Banque✅✅Caisse d’Épargne Particuliers✅✅Caisse d’Épargne Professionnels✅✅CCMDirect (Non activé)🚫🚫CIC✅✅CIC Banque Privée✅✅Crédit Agricole✅✅Crédit Coopératif✅✅Crédit Maritime✅✅Crédit Mutuel✅✅Crédit Mutuel de Bretagne✅✅Crédit Mutuel du Sud Ouest✅✅Fortuneo✅✅Hello bank!✅✅ING Wholesale Banking✅🚫La Banque Postale✅✅LCL✅✅Louvre Banque Privée✅✅Manager.one✅🚫Memo Bank✅✅Monabanq✅✅N26✅✅Nef Pro✅🚫Neuflize OBC (Non activé)🚫🚫Palatine✅✅Qonto✅🚫Revolut✅🚫Société Générale✅✅ Rapprochement à une demande de paiement CentralPay met à disposition un service nommé bankReconciliation permettant de lier une ou plusieurs SCT Transaction à une demande de paiement (PaymentRequest) si vous n’utilisez pas les IBAN Virtuel dédié aux SCT Transaction. 1. En cas d’erreur de référence par votre client Lorsque vous utilisez les demandes de paiement avec IBAN Virtuels dédiés à un Customer et que votre client ne renseigne pas correctement la « sepaReference » lors de l’émission de son virement ; CentralPay n’est pas en mesure de rapprocher automatiquement le virement à la demande de paiement. Vous pouvez donc utiliser le service bankReconciliation pour affecter la SCT Transaction reçue à la demande de paiement créée initialement : amount = montant du virement en centimes wireTransferID = ID de la SCT TRANSACTION (accessible dans le hook de la SCT TRANSACTION) paymentRequestBreakdownId = ID du breakdown de la PaymentRequest (accessible dans le hook de la PaymentRequest) 2. Si vous utilisez votre propre référence de commande Si vous souhaitez organiser vos créances clients dans CentralPay grâce au service de Demandes de paiement sans utiliser la page de paiement Smart Form, voici la démarche à suivre : Pour chaque client : Créer un Customer avec vIBAN, récupérer le vIBAN et l’afficher dans votre tunnel de vente avec votre référence de commande Créer en parallèle une paymentRequest contenant cette même référence de commande (dans le champ « merchantPaymentRequestId ») et le montant de commande Dès réception d’un virement client, vous identifiez la commande liée grâce au champ « description » de la SCT Transaction Vous recherchez ensuite une PaymentRequest avec la même référence dans « merchantPaymentRequestId » Si une PaymentRequest présente la même référence, vous l’associez avec le service « bankReconciliation » Si aucune PaymentRequest ne présente la même référence mais que le virement a été reçu sur un vIBAN Customer n’ayant qu’une seule PaymentRequest en attente ou d’un montant identique, vous pouvez faire en sorte de les rapprocher avec une bankReconciliation Si aucune PaymentRequest ne présente la même référence et que le Customer présente plusieurs PaymentRequest en attente de règlement ou d’un montant différent, levez une alerte dans votre système pour faire rapprocher le virement manuellement par votre service financier (qui l’associera manuellement à la bonne PaymentRequest via une bankReconciliation) Les virements non liés à une PaymentRequest seront ainsi facilement identifiables De même que les PaymentRequest non payées ou partiellement payées R-transaction SCT Vous pouvez rembourser une SCT Transaction si celle-ci est « RECEIVED » via le service Refund ou depuis le détail de la SCT Transaction dans le Portail utilisateur. Vous pouvez initier un remboursement total ou partiel en renseignant un montant. Votre client recevra les fonds sur son compte bancaire sous 24 à 48 heures ouvrés après l’opération. Votre compte de paiement est lui débité immédiatement, il doit donc être solvable pour pouvoir réaliser l’opération. Vous ne pouvez pas annuler un remboursement une fois celui-ci réalisé. Virements internationaux Les virements bancaires internationaux sont gérés via le réseau SWIFT (contrairement au réseau SEPA pour les virements européens). Ces virements peuvent être émis depuis un très grand nombre de pays en EUROS ou dans d’autres devises. Il sera prochainement possible d’accepter des virements internationaux via le service SCT Transaction. Veuillez contacter CentralPay si ce service est un enjeu pour le développement de votre activité. Retours, statuts et webhooks 1. Retours liés aux SCT Transactions Il n’existe pas de code retours pour les SCT Transactions. 2. Statuts liés aux SCT Transactions Consultez les Statuts Transaction ➝ Consultez les Statuts Refunds ➝ 3. Webhooks liés aux SCT Transactions Consultez les Webhooks SCT Transaction ➝ Consultez les Webhooks Refunds ➝ Consultez les Webhooks Customer ➝ Transaction prélèvement SEPA Informations générales Introduction Le prélèvement SEPA (SEPA Direct Debit ou « SDD » en anglais) permet à un créancier (marchand) de prélever un montant dû directement sur le compte de son débiteur (client). Il est principalement destiné aux règlements récurrents (abonnements ou paiements en plusieurs fois) mais peut-être dans certains cas utilisé pour des règlements ponctuels (par exemple pour le règlement de factures entre professionnels). Étant émis à l’initiative du créancier, il requiert la collecte préalable d’une autorisation de son débiteur. Le marchand édite ainsi un « Mandat SEPA » précisant les conditions de prélèvement et les coordonnées bancaires des deux parties que son débiteur devra signer. 1/ Les deux types de prélèvement SEPA Il existe deux types de prélèvements SEPA : Le prélèvement SEPA « CORE » : le plus répandu, il permet aux créanciers de débiter des comptes de particuliers comme de personnes morales. Le mandat SEPA est édité et signé entre les deux parties sans contraintes particulières. Le débiteur est cependant protégé et peut contester un prélèvement CORE sans motifs auprès de sa banque sous 8 semaines. Le prélèvement SEPA « B2B » : réservé aux prélèvements entre entreprises. Le mandat SEPA est édité, signé puis doit être transmis par le débiteur à sa banque. Le parcours de contractualisation requiert ainsi une action forte du débiteur et la validation de sa banque. Cependant, les prélèvements initiés depuis ce type de mandats ne sont pas contestables. CentralPay ne propose pas ce service de prélèvement SEPA type « B2B ». 2/ Risques de rejet et de contestation Le prélèvement SEPA étant un moyen de paiement dont les transactions sont initiées sans authentification forte du client, les risques de rejets et de contestations sont à prendre en considération. Consultez la rubrique « R-Transaction SDD » pour en savoir plus sur les rejets et contestations SDD. 3/ Informations importantes Le prélèvement SEPA est utilisable sur la vaste majorité des comptes bancaires « courants » des pays de la zone SEPA et certains de l’Espace Économique Européen hors SEPA. Cela dépend de la connectivité aux réseaux SEPA des banques des débiteurs. Les comptes spéciaux type « comptes épargnes » ne sont pas atteignables. Les opérations SEPA sont traitées en devise EUROS (€) uniquement. Les opérations SEPA sont traitées lors des jours ouvrés uniquement (hors weekend et jours fériés). Ainsi, le délai de réception des fonds varie entre 2 à 5 jours à compter de la date d’initiation de l’opération. Le débiteur doit être informé par le créancier des prélèvements à venir, au moins 14 jours avant la date, soit par l’envoi d’un échéancier, d’une notification ou d’une facture. La durée de validité d’un mandat SEPA est de 36 mois après la dernière transaction opérée sur ce mandat. Dans le cadre d’un prélèvement SEPA sur le compte bancaire d’une entreprise (personne morale), le créancier doit veiller à ce que le mandat SEPA soit adressé et signé par le dirigeant ou un responsable habilité (gérant, service comptabilité…). Le prélèvement SEPA est particulièrement adapté aux transactions récurrentes d’un montant situé entre 20 et 200 EUR pour les débiteurs particuliers, et entre 20 et 2 000 EUR pour les débiteurs personnes morales. Identifiant de Créancier SEPA L’Identifiant Créancier SEPA (ICS) est un numéro de référence unique qui identifie chaque émetteur de prélèvement. En France, il est composé de 13 caractères alphanumériques, dont les 2 premiers représentent le code pays ISO (FR pour la France). Disposer d’un ICS est un prérequis obligatoire pour réaliser des prélèvements. Le créancier doit faire la demande d’attribution de l’ICS auprès de sa banque. Le créancier conserve ensuite son ICS, même s’il change de banque. Communiquez votre ICS à CentralPay lors de votre entrée en relation afin que nos équipes puissent le déclarer dans votre compte. Déclaration du compte bancaire Pour réaliser une transaction par prélèvement SEPA, il faut d’abord créer le profil de votre client (le débiteur) et déclarer ses coordonnées bancaires sur la plateforme CentralPay. 1/ Créer un profil client « Customer » Collecter les informations de votre client (email, nom, prénom …) Créer un profil client Customer Récupérer la propriété « customerId » dans le retour de création du Customer 2/ Créer un compte bancaire « bankAccount » Collecter les coordonnées bancaires de votre client (IBAN, BIC, nom du titulaire du compte …) Créer un compte bancaire bankAccount en renseignant le « customerId » de votre client Récupérer le « bankAccountId » et le « identityId » dans le retour de création du bankAccount Création du mandat SEPA Après avoir déclaré le compte bancaire « bankAccount » du client et rattaché son profil client « Customer », vous pouvez créer un mandat SEPA « mandate » et collecter la signature électronique de votre client via un code (OTP) envoyé par SMS. Prérequis : vous devez récupérer le « creditorBankAccountId » de votre compte CentralPay correspondant à votre ICS. Vous pouvez le retrouver depuis votre Portail utilisateur en utilisant un profil avec des droits Admin : Administration Mon compte Comptes bancaires Identifiez la ligne présentant votre ICS dans la colonne « IBAN » puis copiez l’UUID associé. 1/ Création et signature d’un nouveau mandat SEPA Créez un mandat SEPA : Créez un « Mandate » Renseignez votre « creditorBankAccountId » Renseignez le « CustomerId » de votre client Renseignez votre Référence Unique de Mandat (RUM) Indiquez le type de mandat que vous souhaitez créer dans la propriété « paymentType » Renseignez le numéro de téléphone de votre client dans la propriété « debtorPhone » Renseignez l’email de votre client dans la propriété « debtorEmail » Indiquez le compte bancaire de votre client en renseignant son « bankAccountId » dans la propriété « debtorBankAccountId » Une fois le mandat SEPA créé : Un « mandateId » sera généré Le statut du mandat sera en « PENDING » Un code à 6 chiffres (OTP) sera envoyé à votre client par SMS (durée de vie 15 min). Vous pouvez renouveler l’envoi de l’OTP. Signez un mandat SEPA : Signez le « Mandate » Collectez le code à 6 chiffres auprès de votre client, et renseignez-le dans la propriété « otp » Renseignez le « mandateId » généré lors de la création du mandat Renseignez l’IP de votre client dans la propriété « endUserIp » Le statut du mandat passera ainsi en « ACTIVE » et le mandat SEPA au format PDF sera envoyé au client par email Schéma de déclaration du compte bancaire et création mandat 2/ Déclaration d’un mandat existant (migration) Dans le cadre d’une migration de mandats déjà créé auprès d’un autre prestataire de paiement, il est possible de désactiver la fonction de signature par OTP sms et d’envoi du mandat SEPA par email. Si c’est votre cas, contactez nos équipes afin d’obtenir plus de détails concernant cette procédure. Prérequis : Les mandats doivent avoir été créés avec votre Identifiant de Créancier SEPA (ICS) Les mandats doivent avoir été créés avec votre entité juridique actuelle Les mandats doivent avoir été dûment signés et acceptés par vos débiteurs Les mandats doivent être encore actifs (<36 mois depuis la dernière transaction) 3/ Modification d’un mandat SEPA existant 3.1 Modifications possibles sans nécessité de nouveau mandat Certaines données peuvent être mises à jour sans exiger la signature d’un nouveau mandat SEPA, sous réserve d’informer correctement le débiteur : Changement de nom du créancier (modification de la structure juridique prélevant) Changement de l’Identifiant Créancier SEPA (ICS) Changement de la Référence Unique de Mandat (RUM) Changement de compte / IBAN du débiteur au sein d’une même banque Changement de compte / IBAN du débiteur suite à un changement de banque Endpoints associés : Modifier un IBAN débiteurPOST /bankAccount/{bankAccountId}Permet de mettre à jour l’IBAN d’un compte bancaire débiteur lié à un mandat SEPA existant. Modifier une RUMCette opération n’est pas possible via les API CentralPay. Une modification de la RUM nécessite la création d’un nouveau mandat (migration). Modifier le nom du créancierEn cas de changement de la structure juridique réalisant les prélèvements, un nouveau Compte CentralPay (Merchant) doit être créé. Les mandats existants devront alors être redéclarés sous ce nouveau compte via un processus de migration. 3.2 Modifications nécessitant un nouveau mandat Les modifications suivantes imposent la création d’un nouveau mandat SEPA, car elles impliquent une nouvelle autorisation du débiteur : Changement de nom du débiteur Changement de la date de signature du mandat Changement de type de mandat : passage de SDD Core à SDD B2BNB : Ce cas d’usage n’est pas disponible dans les services CentralPay. Changement de la fréquence de prélèvement : passage de ponctuel à récurrent 3.3 Communication des modifications Les notifications de modifications doivent obligatoirement être transmises : Par le créancier au débiteur, pour toute modification initiée par le créancier (ICS, RUM, IBAN, etc.) Par le débiteur au créancier, avec présentation d’un justificatif (ex : RIB ou pièce d’identité) pour les changements d’IBAN ou de données personnelles. Transaction par prélèvement Une fois les étapes de création et de signature de mandat réalisées, vous pouvez créer une transaction en prélèvement SEPA (Transaction SDD). Chaque transaction SDD sera liée au mandat correspondant. Pour créer des transactions SDD, vous avez plusieurs possibilités : Créer des transactions SDD individuelles : pour réaliser une ou plusieurs transactions SDD par API en complète autonomie Créer des transactions SDD via les modèles d’abonnement « Subscription » : pour réaliser X transactions selon une fréquence définie par un modèle d’abonnement (exemple : 50 € par mois pendant 12 mois). Créer des transactions SDD via le service de paiement fractionné « Installment » : pour fractionner une créance client en plusieurs transactions (exemple : 1000 € à régler en 3 fois avec un acompte de 500 €). 1/ Transactions SDD individuelles Créez une « SDDTransaction » Renseignez l’identifiant du mandat SEPA « mandateId » Renseignez le montant de la transaction en centimes « amount » Renseignez la devise EUR dans la propriété « currency » Renseignez votre identifiant unique de transaction dans la propriété « endToEndIdentification » Renseignez la description de la transaction dans la propriété « remittanceInformation » (cette donnée apparaitra sur le relevé de compte de vos clients) Renseignez l’IP de votre client dans « endUserIp » Renseignez l’identifiant de votre point de vente CentralPay dans « pointOfSaleId » Renseignez la date souhaitée de la transaction dans « requestedCollectionDate » Vous pouvez ensuite répéter l’opération à chaque échéance de prélèvement de votre client. [Optionnel] Demander au client une validation par SMS Pour plus de sécurité, vous pouvez configurer un OTP pour la validation de chaque SDDTransaction : un OTP sera alors généré à la création et envoyé à votre client par SMS. Un sddTransactionId sera également généré à la création. Par défaut, la validation des SDDTransaction est automatique. Cette étape est nécessaire que si vous avez configuré une validation OTP pour la SDDTransaction Récupérer auprès de votre client son code secret Nous le transmettre, ainsi que le sddTransactionId. Par cette action, la SDDTransaction sera considéré comme validé et sera donc effectuée. 2/ Transactions SDD depuis les modèles d’abonnement « subscription » 2.1/ Création Vous devez d’abord créer un Customer contenant au moins un Mandate. Ensuite, le service d’abonnement (Subscription) vous permettra d’initier facilement un paiement par abonnement en se basant sur un modèle d’abonnement créé en amont depuis l’API CentralPay ou le Portail utilisateur. 2.2/ Cas d’intégration spécifiques Si le premier paiement de l’abonnement doit être d’un montant supérieur aux échéances suivantes (ex: frais d’inscription), vous pouvez d’abord initier une SDD Transaction seule, puis renseigner une date de démarrage (startingDate) dans l’objet Subscription. Si vous souhaitez simplement faire démarrer un abonnement à une date précise (ex : date d’entrée en vigueur de votre contrat), vous pouvez renseigner une date de démarrage (startingDate) dans l’objet Subscription. 3/ Transactions SDD en paiement fractionné « Installment » 3.1/ Création Vous devez d’abord créer un Customer contenant au moins un Mandate. Ensuite, le service de paiement fractionné (Installment) vous permettra d’initier facilement un paiement fractionné en se basant sur les éléments renseignés dans votre requête. R-transaction SDD 1/ Remboursement de prélèvement SEPA Vous pouvez rembourser une SDD Transaction si celle-ci est « CLEARED » via le service Refund ou depuis le détail de la SDD Transaction dans le Portail utilisateur. Vous pouvez initier un remboursement total ou partiel en renseignant un montant. Votre client recevra les fonds sur son compte bancaire sous 24 à 48 heures ouvrés après l’opération. Votre compte de paiement est lui débité immédiatement, il doit donc être solvable pour pouvoir réaliser l’opération. Vous ne pouvez pas annuler un remboursement une fois celui-ci réalisé. 2/ Rejet et contestations de prélèvement SEPA Les rejets et contestations de prélèvements SEPA sont émis par les banques de vos clients. Ils sont représentés dans votre compte CentralPay par les opérations « SDD Transaction Reversal ». Un rejet de prélèvement SEPA est émis par la banque avant la mise à disposition des fonds au créancier (sous 2 à 5 jours). Voici les principaux motifs de rejet des prélèvements SEPA Core : Provisions insuffisantes : le compte bancaire du débiteur ne dispose pas de fonds suffisants pour réaliser l’opération. Compte clôturé : le compte bancaire du débiteur a été fermé. Coordonnées bancaires incorrectes : l’IBAN ou BIC utilisé est incorrect, ou le compte n’est pas en devise EUROS. Une contestation de prélèvement SEPA peut être émise par le débiteur jusqu’à 13 mois après l’opération. C’est le principal facteur de risque financier de ce moyen de paiement. Voici les principaux motifs de contestation des prélèvements SEPA Core : Contestation de l’opération (sous 8 semaines max) : le mandat SEPA est valide, mais le client conteste l’opération auprès de sa banque pour quelconque motif. L’opération est entièrement remboursée et des frais de contestation sont applicables au créancier. Le délai est de 70 jours pour les banques hors de l’Union européenne ou de l’Espace Économique Européen. Contestation pour absence de mandat (sous 13 mois max) : le mandat SEPA n’est pas valide (absence de mandat, mauvais signataire…), le client conteste les opérations réalisées. Les opérations sont entièrement remboursées et des frais de contestation sont applicables au créancier. Pour en savoir plus, consultez la liste complète des codes de rejets et contestation de prélèvement SEPA : Codes de retour SDD Retours, statuts et webhooks 1/ Retours liés aux prélèvements SEPA Lorsqu’une transaction SDD (prélèvement SEPA) est rejetée, la banque de votre client adresse un code de rejet permettant d’en identifier la cause. Il faut principalement différencier les rejets (à l’initiative de la banque, ils sont reçus rapidement) des contestations (à l’initiative du client, elles peuvent être reçues plusieurs semaines ou mois après la transaction) : ContestationsMD06 Opération contestée par le débiteur (peut être reçu jusqu’à 8 semaines après la transaction)MD01 Contestation pour absence de mandat (peut être reçu jusqu’à 13 mois après la transaction)SL01 ICS marchand blacklisté par le client via sa banqueMS02Raison non communiquée (peut inclure des contestations ou des rejets)RejetsAM04 Provisions insuffisantesTout autre codeRejets techniques divers (compte clôturé, bloqué, IBAN non atteignable…) Consulter la liste complète des codes de rejet SDD 2/ Statuts liés aux prélèvements SEPA Statuts « SDD Transaction » Statuts SDD Transaction Statuts « Mandate » Statuts MANDATE Statuts « bankAccount » [à compléter] Statuts « Subscription » Statuts SUBSCRIPTION Statuts « Installment » Statuts INSTALLMENT 3/ Webhooks liés aux prélèvements SEPA Webhooks « SDD Transaction » Webhooks SDD Transaction Webhooks « Mandate » Webhooks Mandate Webhooks « Bank Account » Webhooks BankAccount Webhooks « Customer » Webhooks Customer Webhooks « Subscription » Webhooks Subscription Webhooks « Installment » Webhooks Installment Paiements récurrents Abonnement Introduction Le service d’abonnement vous permet se réaliser automatiquement des transactions récurrentes sur vos profils clients en se basant sur un modèle d’abonnement défini en amont depuis l’API CentralPay ou le Portail utilisateur. Il est ensuite possible d’ajouter des échéances ou de modifier leur montant à la volée depuis les services Invoice & Invoice Item. Ce service permet de générer soit des transactions carte, soit des transactions SDD (prélèvement SEPA). Définitions utiles pour cette section :– SubscriptionModel : modèle d’abonnement (définissant le montant et la fréquence d’abonnement)– Subscription : abonnement appliqué à un client– Invoice : facture, option à utiliser si vous devez modifier la valeur à l’intérieur d’un plan d’abonnement– InvoiceItem : ligne ou article inclus dans la facture. Une facture a potentiellement plusieurs lignes ou éléments Le service "Subscription" n'est pas le seul moyen de réaliser des transactions récurrentes. Consultez la page Transaction carte récurrente ou la page Transaction par prélèvement pour prendre connaissance du détail par moyen de paiement. 1/ Créer un modèle d’abonnement (subscriptionModel) Accès modèles d’abonnements – Portail utilisateur de RCT Accès modèles d’abonnements – Portail utilisateur de PROD Le subcriptionModel vous permet de pouvoir créer différents types d’abonnements en fonction de vos services proposés. Par exemple, si vous avez à votre disposition deux types d’offre d’abonnement, le premier en utilisant les caractéristiques de base de votre service et l’autre en utilisant les fonctionnalités avancées, vous allez devoir créer deux modèles : Un pour l’offre d’abonnement « basique » Un pour l’offre d’abonnement « avancé » Chaque « SubscriptionModel » possède un ID unique. Vous fournirez cet identifiant dans vos requêtes API lorsque vous souhaiterez appliquer un abonnement à un client sur la base de ce modèle. Vous pouvez utiliser les attributs suivants : amount : montant à renseigner en centimes intervalUnit : DAY / WEEK / MONTH / YEAR (jour / semaine / mois / année) intervalCount : nombre de « intervalUnit » entre deux échéances (ex : si intervalUnit = DAY et intervalCount = 10, alors il y aura une transaction tous les 10 jours). iterationCount : nombre d’échéances (attention la première transaction n’est pas comptabilisée dans ce paramètre, elle s’ajoute donc à ce nombre). Exemple : amount = 3000 intervalUnit = DAY intervalCount = 3 iterationCount = 3 Ainsi votre modèle d’abonnement sera configuré pour facturer à votre client 30,00 EUR tous les 3 jours pendant 4 échéances (pour un total d’un abonnement de 12 Jours). 2/ Créer un abonnement (subscription) Pour créer un abonnement, vous devez d’abord créer un Customer contenant au moins : une Card (si vous souhaitez opérer des transactions carte) ou un Mandate (si vous souhaitez opérer des transactions par prélèvement SEPA). Vous pouvez ensuite créer une Subscription : Selon le moyen de paiement souhaité : pour des transactions carte : renseignez l’identifiant du profil client « customerId » pour des transactions par prélèvement SEPA : renseignez l’identifiant du mandat SEPA « mandateId » et renseignez la date souhaitée de la transaction dans « requestedCollectionDate » pour des transactions entre comptes CentralPay : renseignez l’identifiant du compte émetteur « walletId » Renseignez l’identifiant du modèle d’abonnement « subscriptionModelId » Renseignez l’IP de votre client dans « endUserIp » Renseignez l’identifiant de votre point de vente CentralPay dans « pointOfSaleId » Notez qu’à la création d’un abonnement, votre client reçoit automatiquement un email contenant le détail de ses échéances. Cet email contient également un lien vers notre Portail client qui lui permet de visualiser le statut de ses paiements récurrent, de changer sa carte bancaire ou son mandat SEPA et de résilier un abonnement si besoin est. Un client pouvant à tout moment résilier son abonnement depuis le portail client mis à sa disposition. Veillez à vous inscrire aux webhooks d'annulation d'abonnement. Si votre abonnement comprend une période d'engagement, il est préférable d'utiliser la méthode d'abonnement par transactions successives, ou demander à CentralPay de ne pas diffuser le lien vers le portail client. 3/ Automatisation des nouvelles tentatives en cas d’échec En cas d’échec de prélèvement d’une échéance, CentralPay réalise de nouvelles tentatives de prélèvement selon les paramètres définis dans le Portail utilisateur. Accès paramétrages abonnements – Portail utilisateur de RCT Accès paramétrages abonnements – Portail utilisateur de PROD Comportement des champs : Heure de transaction : heure à laquelle les échéances de prélèvement seront réalisées par CentralPay Sélection d’une valeur de 4 à 23 1er échec de paiement de facture : comportement en cas d’un premier échec de prélèvement Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la transaction initiale Stop = le système appliquera directement l’action finale, sans prendre en compte les actions suivantes. 2nd échec de paiement de facture : comportement en cas d’un deuxième échec de prélèvement Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative Stop = le système appliquera directement l’action finale, sans prendre en compte les actions suivantes. 3eme échec de paiement de facture : comportement en cas d’un troisième échec de prélèvement Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative Stop = le système appliquera directement l’action finale, sans prendre en compte les actions suivantes. Action finale : comportement si les actions précédentes ont échoué CANCELED = Annulation de l’abonnement (modification du statut de l’abonnement en CANCELED) FAILURE = Échec de l’abonnement (modification du statut de l’abonnement en FAILURE) UNPAID = Abonnement impayé (modification du statut de l’abonnement en FAILURE + envoi de hook SUBSCRIPTION_UNPAID) 4/ Fonctions d’annulation des abonnements Il existe deux fonctions d’annulation d’abonnement depuis l’API, le Portail Utilisateur ou le Portail Client : Annuler : l’abonnement est annulé immédiatement Annuler en fin de période : l’abonnement sera annulé à la fin de l’échéance en cours (afin de laisser l’abonné bénéficier de votre service durant sa dernière période payée). Par API, vous devrez renseigner le champ « atPeriodEnd ». Note : Durant ce laps de temps, vous pouvez réactiver l’abonnement avec le service « reactivate » des Subscription. Les abonnements dont l'ensemble des échéances ont été réalisées passent automatiquement en statut CANCELED. 5/ Modifier le montant d’une échéance d’abonnement CentralPay crée un invoice pour chaque échéance d’un abonnement (Subscription), selon le modèle d’abonnement associé (subscriptionModel). Vous pouvez procéder à des actions manuelles à n’importe quel moment pour modifier les échéances (invoice) d’un abonnement (subscription). Vous trouverez ci-dessous une liste d’actions possibles : Modifier le montant d’une échéance : Le service invoiceItem vous permet de modifier le montant d’une échéance (invoice) en renseignant un montant positif ou négatif qui s’additionnera au montant initial de l’échéance. L’invoiceItem sera pris en compte lors de la prochaine échéance de l’abonnement, qu’elle soit créée manuellement ou automatiquement. Vous avez également la possibilité de spécifier une échéance donnée dans votre requête en renseignant un invoiceId. Créer une échéance supplémentaire : les échéances (invoice) dites « périodiques » sont créées automatiquement selon votre subscriptionModel. Vous avez la possibilité de créer d’autres échéances ponctuelles sur votre abonnement en créant une invoice. Supprimer un invoiceItem non traité : s’il n’est pas encore lié à une facture Fermer une échéance à venir : si vous souhaitez que CentralPay ne réalise pas le prélèvement d’une échéance (et/ou ses nouvelles tentatives automatiques), vous pouvez fermer cette dernière depuis le service « close » de l’invoice. Au besoin vous pourrez rouvrir cette échéance via le service « reopen » de l’invoice, si elle n’a pas été payée ou qu’il reste des nouvelles tentatives programmées. Forcer le paiement d’une échéance : les transactions sont effectuées automatiquement par le service d’abonnement, vous pouvez cependant initier la transaction en avance ou réaliser une nouvelle tentative manuellement avec le service « pay » de l’invoice. Ces paiements « manuels » ne sont pas comptabilisés par le système de nouvelles tentatives automatisées. Cette action peut être effectuée sur une facture fermée. 6/ Schéma complet de création d’un abonnement Fractionné Introduction Le paiement fractionné permet de découper le règlement d’une facture en plusieurs échéances. CentralPay prélève ensuite la carte du client selon un échéancier défini lors de la première transaction. Il peut être utilisé pour proposer un étalement de règlement à votre client ou pour automatiser un règlement type « acompte/solde ». Contrairement aux abonnements, un client ne peut pas résilier un paiement fractionné depuis le portail client. CentralPay vous aide à recouvrer les échéances dues par vos clients avec un système de nouvelles tentatives automatisées en cas d’échec de prélèvement. Cependant, CentralPay ne garantie pas les sommes dues à l’aide d’un crédit ou d’un système de financement de créances. Le service "Installment" n'est pas le seul moyen de réaliser des transactions récurrentes. Consultez la page Transaction carte récurrente ou la page Transaction par prélèvement pour prendre connaissance du détail par moyen de paiement. 1/ Créer un paiement fractionné Vous devez d’abord créer un Customer contenant au moins : une Card (si vous souhaitez opérer des transactions carte) ou un Mandate (si vous souhaitez opérer des transactions par prélèvement SEPA). Ensuite, le service Installment vous permettra de créer facilement un paiement fractionné en se basant sur les éléments renseignés dans votre requête. Vous pouvez ensuite créer un Installment: Selon le moyen de paiement souhaité : pour des transactions carte : renseignez l’identifiant du profil client « customerId » pour des transactions par prélèvement SEPA : renseignez l’identifiant du mandat SEPA « mandateId » et renseignez la date souhaitée de la transaction dans « requestedCollectionDate » Renseignez le montant en centimes « amount » Renseignez la devise en format ISO « currency » Renseignez l’IP de votre client dans « endUserIp » Renseignez les paramètres de fractionnement « iterationCount », « intervalCount » et « intervalUnit » Avec ce service, il est également possible : d’imputer des frais supplémentaires à votre client (feeAmount) : pour la mise à disposition de cet étalement des paiements de définir un montant d’acompte qui sera déduit du montant total (depositAmount). Cet acompte peut également être défini à une date spécifique (depositStartingDate). de définir une date de démarrage du paiement fractionné (startingDate) : si l’on souhaite par exemple que l’acompte soit réglé tout de suite, et que les premières échéances soient prélevées à partir d’une certaine date. Notez qu’à la création d’un paiement fractionné, votre client reçoit automatiquement un email contenant le détail de ses échéances. Cet email contient également un lien vers notre Portail client qui lui permet de visualiser le statut de ses paiements récurrent et de changer sa carte bancaire ou son mandat SEPA si besoin est. 2/ Exemple de paiement fractionné Vous souhaitez facturer à votre client 1 000 € divisés en 3 mois à partir du 05/07/2024, avec un acompte de 200 € le 28/06/2024 et ajouter un frais supplémentaire de 10 € : amount =100000 depositAmount = 20000 feeAmount = 1000 currency = EUR intervalUnit = MONTH intervalCount = 1 iterationCount = 3 depositStartingDate = 2024-06-28 startingDate = 2024-07-05 Le plan de fractionnement sera le suivant : 28/06/2024 = 200,00 € (acompte) 05/07/2024 = 276,68 € (premier fractionnement + ajustement arrondis + frais supplémentaires) 05/08/2024 = 276,66 € (deuxième fractionnement) 05/09/2024 = 276,66 € (troisième fractionnement) Les arrondis sont appliqués au premier paiement (hors acompte). 3/ Automatisation des nouvelles tentatives en cas d’échec En cas d’échec de prélèvement d’une échéance, CentralPay réalise de nouvelles tentatives de prélèvement selon les paramètres définis dans le Portail utilisateur : Accès paramétrages paiements fractionnés – Portail utilisateur de RCT Accès paramétrages paiements fractionnés – Portail utilisateur de PROD Comportement des champs : Heure de transaction : heure à laquelle les échéances de prélèvement seront réalisées par CentralPay Sélection d’une valeur de 4 à 23 1er échec de paiement : comportement en cas d’un premier échec de prélèvement Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la transaction initiale Stop = le système ne réalisera pas de nouvelle tentative de prélèvement. 2nd échec de paiement : comportement en cas d’un deuxième échec de prélèvement Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative Stop = le système ne réalisera pas de deuxième nouvelle tentative de prélèvement. 3eme échec de paiement : comportement en cas d’un troisième échec de prélèvement Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative Stop = le système ne réalisera pas de troisième nouvelle tentative de prélèvement. 4eme échec de paiement : comportement en cas d’un quatrième échec de prélèvement Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative Stop = le système ne réalisera pas de quatrième nouvelle tentative de prélèvement. Authentification 3DS 2.2 3DS 2.2 BRW (paiement unitaire) Téléchargement des sources 3DS 2.0 Vous pouvez télécharger les sources ici : 3ds2.zip Introduction Tout ce processus doit se dérouler sur la même page web (ceci est une contrainte du process bancaire). Les grandes étapes du 3D Secure 2.0 : Consultez un exemple de formulaire de paiement CUSTOM intégrant le 3DS 2.0 1) Versioning Cette étape consiste à adresser le PAN de la carte à l’API Centralpay. Exemple de code Curl : curl -v POST 'https://test-api.centralpay.net/v2/rest/3ds2/versioning' \ -h 'Content-Type: application/x-www-form-urlencoded' \ -u 'doctest:4I9HJRTd' \ -d 'acctNumber=4000001000000067' En réponse : Si la carte n’est pas 3DS 2.0, le versioning vous retournera une erreur 404. Cela signifie que la carte utilisée n’est pas enrôlée 3DS 2.0 et que la transaction ne peut pas se faire en 3DS 2.0. Si la carte est 3DS 2.0, vous recevrez un UUID identifiant l’opération jusqu’au résultat final + les données nécessaire pour réaliser le « 3DS Method » (URL + base64) Deux réponses au Versionning sont possibles si la carte est 3DS 2.0 : Version 1 (la plus fréquente) : { "threeDSServerTransID":"7d031b8e-7fb7-4215-b866-eaacb395002f", "threeDSMethodURL":"https://test-3dss-demo.centralpay.net/acs/3ds-method", "threeDSMethodDataForm":{ "threeDSMethodData":"eyJ0aHJlZURTTWV0aG9kTm90aWZ pY2F0aW9uVVJMIjoiaHR0cHM6Ly90ZXN0LTNkc3MuY2VudHJ hbHBheS5uZXQvM2RzLzNkcy1tZXRob2Qtbm90aWZpY2F0aW9 uLyIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiOWNjNmIzM2M tZGQzNS00ZmJkLTgxY2QtZmQ5Y2YwYWVlZDljIn0=" }, "errorDetails":null } Cette réponse est renvoyée quand la banque a besoin de l’acs url dans la requête de l’authentification. Le process 3DS Method est alors nécessaire, vous pouvez passer au point 2 : 3DS METHOD. Version 2 : { "threeDSServerTransID":"7d031b8e-7fb7-4215-b866-eaacb395002f", "threeDSMethodURL": null, "threeDSMethodDataForm": null, "errorDetails": null } Cette réponse est renvoyée quand la banque n’a pas besoin de l’acs url dans la requête de l’authentification.Le versioning renvoie une réponse où seul « threeDSServerTransID » possède une valeur non null. Le process 3DS Method n’est alors pas nécessaire, vous pouvez passer au point 3 : 3DS AUTHENTICATION BRW. 2) 3DS METHOD Lorsque le versioning renvoi les champs threeDSMethodURL et threeDSMethodDataForm en « Non Null », le process 3DS Method est alors nécessaire.Cette fonction a pour but de poster la donnée base64 reçue du versioning vers l’ACS.Le formulaire iframe doit être réalisée par le navigateur client vers la banque simultanément avec l’authentification.Il faut réaliser une iFrame cachée qui servira à poster la donnée base64 (threeDSMethodData) à l’URL reçue dans le versioning (threeDSMethodURL). 3) 3DS AUTHENTICATION BRW L’appel devra être adressé vers l’url suivante de l’API CentralPay : « 3ds2/authentication »Cette requête permet l’envoi des données contextuelles liées au porteur Exemple d’appel (curl code) : curl --location --request POST 'https://test-api.centralpay.net/v2/rest/3ds2/authentication' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA==' \ --data-urlencode 'threeDSServerTransID=7d031b8e-7fb7-4215-b866-eaacb395002f' \ --data-urlencode 'cardTokenId=5b9nb5cf-4470-4e58-b690-dd8965860eb8' \ --data-urlencode 'deviceChannel=02' \ --data-urlencode 'messageCategory=01' \ --data-urlencode 'purchaseAmount=1000' \ --data-urlencode 'purchaseCurrency=EUR' \ --data-urlencode 'threeDSRequestorAuthenticationInd=01' \ --data-urlencode 'browserJavaEnabled=true' \ --data-urlencode 'browserLanguage=fr-FR' \ --data-urlencode 'browserColorDepth=24' \ --data-urlencode 'browserScreenHeight=1052' \ --data-urlencode 'browserScreenWidth=1853' \ --data-urlencode 'browserTZ=120' \ --data-urlencode 'browserIP=127.0.0.1' \ --data-urlencode 'browserUserAgent=Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0' \ --data-urlencode 'browserAcceptHeader=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' \ --data-urlencode 'notificationURL=http://dev4.dev.centralpay.net:1101/requestor/challenge-notification' \ --data-urlencode 'threeDSRequestorURL=https://www.centralpay.eu' L’api va retourner un statut de transaction (« transStatus »), voici les valeurs et leurs significations : Pas d’autorisation (ne pas faire la transaction) : N = Non authentifié /Compte non vérifié. Transaction refusée. U = L’authentification/la vérification du compte n’a pas pu être effectuée. Problème technique ou autre, comme indiqué dans ARes ou RReq. R = Authentification/vérification du compte rejetée. l’émetteur rejette l’authentification/vérification et demande de ne pas tenter d’autorisation I = Information seulement. Reconnaissance de la préférence du demandeur pour le défi 3DS. Autorisation sans challenge : Y = Vérification de l’authentification réussie. A = Traitement des tentatives effectué. Non authentifié/vérifié, mais une preuve de tentative d’authentification/vérification est fournie. Autorisation après challenge : C = Challenge requis. Une authentification supplémentaire est requise en utilisant le CReq/CRes. D = Challenge requis. Authentification découplée confirmée. Exemples de réponses possibles : C = Challenge requis : {"threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f","transStatus": "C","acsURL": "https://test-3dss-demo.centralpay.net/acs/challenge","acsChallengeMandated": "Y","base64EncodedChallengeRequest": "eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImU2MDFlYjQ0LTU2N2MtNDM4Ny05MmZjLWU2ZjIzMjJiODIyYiIsImFjc1RyYW5zSUQiOiI3ZTQzZDI4ZC00M2RkLTRmM2MtYTcwOS00YjZkZDVlZjc5Y2QiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIn0=","contractId": "71602dd0-2790-4743-877b-e72530d7576d"} Le Challenge est nécessaire. Y = authentification réussie : { "threeDSServerTransID": "7d994177-32d8-43f7-87a4-3a3cd734cbfe", "transStatus": "Y", "authenticationValue": "MTIzNDU2Nzg5MDA5ODc2NTQzMjEa", "eci": "02", "contractId": "71602dd0-2790-4743-877b-e72530d7576d" } Le Challenge n’est pas nécessaire.Les champs requis au 3DS 2.0 sont dans la réponse (threeDSServerTransID, transStatus, authenticationValue (cavv), eci). Note : Le xid n’est pas fourni, car il s’agit d’une référence libre pour les marchands. N = Transaction refusée : { "threeDSServerTransID": "6396b832-3e5b-4143-bde6-f5r1c1e47da0", "transStatus": "N", "eci": "00", "contractId": "258128f3-5db9-4235-918a-f1d786f67c29" } Transaction refusée. 4) Challenge Lorsque la réponse de l’authentification est « C« , l’utilisateur doit effectuer un challenge, une Iframe doit alors soumettre un formulaire à l’url (acsURL) retournée par l’API lors de l’appel à « 3ds2/authentication ». Le seul paramètre envoyé est : creq qui comprend la valeur base64EncodedChallengeRequest qui provient de l’appel à « 3ds2/authentication ». A la fin du challenge, l’url configurée (paramètre notificationURL ) dans l’appel « 3ds2/authentication » est appelée. Voici ce que vous aurez dans notre environnement de test pour l’affichage du Challenge OTP (dans des conditions de PROD, la fenêtre affichée sera celle de l’ACS) : Voici les OTP en environnement test : 1234 retourne Y pour Challenge réussi 4444 retourne A pour Challenge réussi 1111 retourne N pour Challenge échoué 2222 retourne R pour Challenge échoué 3333 retourne U pour Challenge échoué 5) Réponse À l’issue du challenge, les informations concernant celui-ci sont disponibles dans la variable « finalCresValue » Pour récupérer les informations de cette valeur base 64 il faut la décoder, voici un exemple en php : $retour = json_decode(base64_decode($_POST['cres']), true) Si celui-ci est égal à Y ou A alors le client a effectué le challenge correctement et le paiement est autorisé, vous devrez alors appeler GET /results afin de connaitre les données nécessaire aux 3DS 2.0 pour votre transaction. Si le statut de transaction est égal à une autre valeur, alors le client n’a pas effectué le challenge correctement et le paiement est refusé. 6) Résultat Pour connaitre les données 3DS 2.0 à renseigner à la création d’une transaction 3DS 2.0, vous devrez adresser le threeDSServerTransID de l’authentification 3DS 2.0 préalablement effectuée. Rappel : Si vous avez obtenu un transStatus à « Y » en réponse de l’authentification, les données 3DS 2.0 sont déjà contenu dans celui-ci. Appel : curl --location -g --request GET 'https://test-api.centralpay.net/v2/rest/3ds2/results/{{threeDSServerTransID}}' \ --header 'Authorization: Basic e3tERUZBVUxUX1VTRVJ9fTp7e0RFRkFVTFRfUEFTU1dPUkR9fQ==' Réponse : { "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f", "transStatus": "Y", "authenticationValue": "JAmi21makAifmwqo2120cjq1AAA=", "eci": "01" } 7) Transaction Les données suivantes sont nécessaires afin de valider une transaction en 3DS 2.0 : 3ds[threeDSServerTransID] = threeDSServerTransID 3ds[status] = transStatus 3ds[cavv] = authenticationValue 3ds[eci] = eci (Obligatoire si disponible) 3ds[xid] = Paramètre Custom destiné aux marchands. Exemple d’une transaction 3DS 2.0 : curl --location --request POST 'https://test-api.centralpay.net/v2/rest/transaction' \ --header 'Origin: https://example.centralpay.net' \ --header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA==' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'currency=EUR' \ --data-urlencode 'amount=1500' \ --data-urlencode 'endUserIp=9.64.32.8' \ --data-urlencode 'endUserLanguage=ita' \ --data-urlencode 'merchantTransactionId=cpcg_12654de89ce44' \ --data-urlencode 'pointOfSaleId=1beb8574-cf4c-4b12-b065-d12b3f0eaa90' \ --data-urlencode 'browserUserAgent=Mozilla/5.0 (iPhone; CPU iPhone OS 16_1_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Mobile/15E148 Safari/604.1' \ --data-urlencode 'browserAcceptLanguage=it_IT' \ --data-urlencode 'paymentRequestBreakdownId=5485d7e6-60c3-753c-94d3-682eaaf9ae6e' \ --data-urlencode 'email=support@centralpay.eu' \ --data-urlencode 'receiptEmail=support@centralpay.eu' \ --data-urlencode 'capture=true' \ --data-urlencode 'cardTokenId=5b9nb5cf-4470-4e58-b690-dd8965860eb8' \ --data-urlencode 'order[cardholderEmail]=support@centralpay.eu' \ --data-urlencode 'order[firstName]=John' \ --data-urlencode 'order[lastName]=Doe' \ --data-urlencode 'source=EC' \ --data-urlencode '3ds[xid]=35876533346561303461' \ --data-urlencode '3ds[cavv]=JAmi21makAifmwqo2120cjq1AAA=' \ --data-urlencode '3ds[eci]=01' \ --data-urlencode '3ds[status]=Y' \ --data-urlencode '3ds[threeDSServerTransID]=7d031b8e-7fb7-4215-b866-eaacb395002f' 3DS 2.2 3RI (paiements récurrents) Prérequis Afin de réaliser une transaction en 3DS 2.0 3RI, il faut que l’utilisateur ait déjà réalisé une transaction 3DS 2.0 avec une authentification BRW.Une fois celle-ci effectuée, gardez le acsTransId qui est envoyé, il faudra le passer dans threeDSReqPriorRef. 1/ 3DS AUTHENTICATION RI L’appel devra être adressé vers l’URL suivante de l’API CentralPay : « 3ds2/authentication » Le acsTransId que vous avez gardé de l’authentification BRW doit être mis dans threeDSReqPriorRef. Si l’api vous retourne un statut de transaction (« transStatus ») à « Y » l’authentification 3RI est autorisé. Voici les valeurs possibles de transStatus et leur signification : Y = Vérification de l’authentification réussie. N = Non authentifié /Compte non vérifié. Transaction refusée. U = L’authentification/la vérification du compte n’a pas pu être effectuée. Problème technique ou autre, comme indiqué dans ARes ou RReq. A = Traitement des tentatives effectué. Non authentifié/vérifié, mais une preuve de tentative d’authentification/vérification est fournie. C = Challenge requis. Une authentification supplémentaire est requise en utilisant le CReq/CRes. D = Challenge requis. Authentification découplée confirmée. R = Authentification/vérification du compte rejetée. L’émetteur rejette l’authentification/vérification et demande de ne pas tenter d’autorisation. I = Information seulement. Reconnaissance de la préférence du demandeur pour le défi 3DS. Exemple d’appel 3RI (curl code) : curl --location --request POST 'https://test-api.centralpay.net/v2/rest/3ds2/authentication' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA==' \ --data-urlencode 'customerId=aae4d8c0-a555-4c2f-bfdf-18d5636b78a4' \ --data-urlencode 'cardId=44d0691b-b117-4799-ba07-31e0b02c5b08' \ --data-urlencode 'pointOfSaleId=08960d92-874b-4447-800b-aaa53fa976f5' \ --data-urlencode 'deviceChannel=03' \ --data-urlencode 'messageCategory=02' \ --data-urlencode 'acctType=03' \ --data-urlencode 'cardExpiryDate=9999' \ --data-urlencode 'purchaseAmount=4880' \ --data-urlencode 'purchaseCurrency=978' \ --data-urlencode 'purchaseExponent=2' \ --data-urlencode 'purchaseDate=20230101122345' \ --data-urlencode 'recurringExpiry=20330101' \ --data-urlencode 'recurringFrequency=0' \ --data-urlencode 'chAccAgeInd=03' \ --data-urlencode 'chAccChange=20220901' \ --data-urlencode 'chAccDate=20220901' \ --data-urlencode 'email=support@centralpay.eu' \ --data-urlencode 'nbPurchaseAccount=2' \ --data-urlencode 'paymentAccAge=20221001' \ --data-urlencode 'paymentAccInd=03' \ --data-urlencode 'threeDSReqPriorAuthMethod=02' \ --data-urlencode 'threeDSReqPriorAuthTimestamp=202209010123' \ --data-urlencode 'threeDSReqPriorRef=7d031b8e-7fb7-4215-b866-eaacb395002f' \ --data-urlencode 'threeDSRequestorDecReqInd=N' \ --data-urlencode 'threeDSRequestorAuthenticationInd=02' \ --data-urlencode 'threeDSRequestorChallengeInd=02' \ --data-urlencode 'threeRIInd=01' Explication de certains paramètres deviceChannel 03 -> 3DS Requestor Initiated (3RI) messageCategory 02 -> La valeur 02 force la transaction en 3RI. purchaseAmount -> Montant de l’achat courant purchaseCurrency -> Monnaie au format ISO purchaseExponent -> Unité mineure de la monnaie courante purchaseDate -> Date de l’achat recurringExpiry -> Date à laquelle il n’y aura plus d’autorisations qui pourront être effectuées recurringFrequency -> Nombre de jours minimums entre deux autorisations. acctType -> Debit chAccAgeInd -> Durée pendant laquelle le titulaire de la carte possède le compte auprès du demandeur 3DS. Les valeurs acceptées sont : 01 -> Pas de compte 02 -> Créé durant la transaction 03 -> Moins de 30 jours 04 -> Entre 30 et 60 jours 05 -> Plus de 60 jours. chAccChange -> Date à laquelle le compte du titulaire de la carte auprès du demandeur 3DS a été modifié pour la dernière fois. Format de la date = YYYYMMDD. chAccDate -> Date à laquelle le titulaire de la carte a ouvert le compte auprès du demandeur 3DS. Format de la date = YYYYMMDD. nbPurchaseAccount -> Nombre d’achats effectués avec ce compte de titulaire de carte au cours des six derniers mois. paymentAccAge -> Date à laquelle le compte de paiement a été inscrit sur le compte du titulaire de la carte auprès du demandeur 3DS. paymentAccInd -> Indique la durée pendant laquelle le compte de paiement a été inscrit sur le compte du titulaire de la carte auprès du demandeur 3DS. Les valeurs acceptées sont : 01 -> Pas de compte 02 -> Créé durant la transaction 03 -> Moins de 30 jours 04 -> Entre 30 et 60 jours 05 -> Plus de 60 jours. threeDSReqPriorAuthMethod 02 -> Vérification du porteur de carte effectué par l’ACS. threeDSReqPriorAuthTimestamp -> Date et heure en UTC de l’authentification précédente. Le format de date accepté est YYYYMMDDHHMM. threeDSReqPriorRef -> Le champ doit contenir la valeur « acsTransId » de la transaction 3DS BRW précédente. threeDSRequestorDecReqInd N -> Ne pas utiliser l’authentification découplée. threeDSRequestorAuthenticationInd 02 -> Transaction récurrente threeDSRequestorChallengeInd 02 -> Pas de Challenge requis threeRIInd 01 -> Transaction récurrente Exemple de réponse : { "threeDSServerTransID": "67dc456c-6c7a-987f-92cf-f68752525d0c", "transStatus": "Y", "eci": "02", "contractId": "fb8736a5-8741-19b6-9d38-ec135888e0bf" } 2/ Transaction Les données suivantes sont nécessaires afin de valider une transaction en 3DS 2.0 : 3ds[threeDSServerTransID] = threeDSServerTransID (ajouter le nouveau génerer par l’authentification 3RI) 3ds[status] = transStatus 3ds[eci] = eci (Obligatoire si disponible) 3ds[xid] = Paramètre Custom destiné aux marchands. Lors d’une transaction en 3RI, il ne faut pas envoyer le 3ds[cavv]. Exemple d’une transaction 3DS 2.0 : curl --location --request POST 'https://test-api.centralpay.net/v2/rest/transaction' \ --header 'Origin: https://example.centralpay.net' \ --header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA==' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'currency=EUR' \ --data-urlencode 'amount=1500' \ --data-urlencode 'endUserIp=9.64.32.8' \ --data-urlencode 'endUserLanguage=ita' \ --data-urlencode 'merchantTransactionId=cpcg_12654de89ce44' \ --data-urlencode 'pointOfSaleId=1beb8574-cf4c-4b12-b065-d12b3f0eaa90' \ --data-urlencode 'browserUserAgent=Mozilla/5.0 (iPhone; CPU iPhone OS 16_1_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Mobile/15E148 Safari/604.1' \ --data-urlencode 'browserAcceptLanguage=it_IT' \ --data-urlencode 'paymentRequestBreakdownId=5485d7e6-60c3-753c-94d3-682eaaf9ae6e' \ --data-urlencode 'email=support@centralpay.eu' \ --data-urlencode 'receiptEmail=support@centralpay.eu' \ --data-urlencode 'capture=true' \ --data-urlencode 'customerId=aae4d8c0-a555-4c2f-bfdf-18d5636b78a4' \ --data-urlencode 'cardId=44d0691b-b117-4799-ba07-31e0b02c5b08' \ --data-urlencode 'order[cardholderEmail]=support@centralpay.eu' \ --data-urlencode 'order[firstName]=John' \ --data-urlencode 'order[lastName]=Doe' \ --data-urlencode 'source=EC' \ --data-urlencode '3ds[xid]=35876533346561303461' \ --data-urlencode '3ds[eci]=02' \ --data-urlencode '3ds[status]=Y' \ --data-urlencode '3ds[threeDSServerTransID]=67dc456c-6c7a-987f-92cf-f68752525d0c' FAQ 3DS 2.2 Foire aux questions autour du 3-D Secure 2.0. Existe-t-il des cartes de test pour des transactions 3DS2 en environnement RCT ? Consultez la liste des cartes de tests de l’environnement de RCT Ma transaction a reçu le code retour banque 5, qu’est-ce que ça signifie ? Cela signifie, que la banque refuse sans donner de statut particulier.Cela peut être un code CVV erroné ou une autre décision que nous ne connaissons pas.Ce statut ne permet pas d’affirmer que la banque n’acceptera pas l’autorisation après d’autres tentatives. Ma transaction a reçu le code retour banque 12, qu’est-ce que ça signifie ? Cela signifie que la banque refuse sans donner de statut particulier.La raison peut être : – Simplement une transaction invalide – Un code 75 de la part de la banque émetteur (le code PIN de la carte a été trop de fois incorrecte) – Un CVV erroné (fournit par l’ACS lors d’une authentification 3DS) – Ou une autre décision que nous ne connaissons pas. L’API transaction me retourne une erreur « Soft Decline » pourtant le paramètre « threeDSServerTransID » est bien celui retourné par le cres.Comment devons-nous interpréter ce retour et que devons-nous faire ? Le soft decline est renvoyé par la banque lorsque que le 3DS n’est pas présent dans la transaction.Il faut vérifier s’il manque des champs présentés dans cette partie de la documentation : https://ref-api.centralpay.net/payment#106-3ds-sub-object Ma requête du Versioning me retourne une erreur « 404 » avec le message « Card account number not found in card ranges from Directory Server ».Qu’est-ce que ça signifie et que dois-je faire ? Cela signifie que la carte utilisée n’est pas enrôlée 3DS2.0 et que la transaction ne peut pas se faire en 3DS2.0.Pour ce cas, nous conseillons de prévoir un basculement vers un paiement en 3DS1 pour ce genre de carte. La réponse de la requête Result nous a renvoyé le transStatus à U.Comment devons-nous interpréter ce retour et que devons-nous faire dans ce cas ? La valeur U de transStatus en réponse de la requête result signifie que l’authentification ou la vérification n’a pas pu se faire suite à un problème technique ou autres problèmes.Du côté du smart form lors du challenge avec la requête result, seules les valeurs Y et A permettent de valider le challenge et continuer le paiement.Les autres valeurs font échouer le challenge et le paiement.Mais dans le cas d’un custom form le fonctionnement peut être différent, vous pouvez utiliser la valeur U pour faire une nouvelle tentative de challenge et si ça échoue encore alors le paiement passe en 3DS1 ou est refusé, ou alors pour directement retenter le paiement en 3DS1 ou le considérer comme un échec de paiement.Ces différents cas sont possibles à réaliser. Nous avons soumis le formulaire à l’URL retournée par l’authentication avec le base64EncodedChallengeRequest.Mais le client est aussitôt revenu sur notre site sans CRES mais avec un paramètre ERROR contenant la valeur « eyJ0aHJlZURTU…Mi4xLjAifQ== » ainsi que le paramètre « THREEDSSESSIONDATA » qui lui était vide.Comment devons-nous interpréter ce retour et que devons-nous faire dans ce cas ? Lorsque vous avez un retour de ce genre, il faut vérifier que votre processus du 3DS2 se déroule bien sûr une seule et même page avec la solution d’un iframe.Si le processus est conforme, alors contactez le support technique avec les informations nécessaires. Pour rappel, toutes les étapes du formulaire se réalisent sur une seule et même page sans redirection vers une page bancaire ou autre.Cela se fait grâce à la solution de l'Iframe.Toute la procédure du 3DS2.0 se passe sur la même page ! Nous avons reçu une erreur 303 : « acquirerBIN, acquirerMerchantID not recognized » lors d’un appel à l’authentication.Comment devons-nous interpréter ce retour et que devons-nous faire dans ce cas ? Il s’agit soit du contrat qui n’est pas 3DS2, soit d’autres problèmes.Dans le cas d’un autre problème, il faut alors contacter le support technique en fournissant le numéro de contrat monétique (si connu) et les autres informations pouvant être nécessaire. Sur l’étape d’authentication, nous avons eu une erreur 203 : « Validation of 3DS Requestor Authentication data failed.Data element not in the required format or value is invalid » pour le champ merchant.merchantName.Comment devons-nous interpréter ce retour et que devons-nous faire dans ce cas ? L’erreur 203 signifie qu’il y a un caractère invalide dans le paramètre « merchant.merchantName ». Lors d’un test d’appel de la fonction 3DS2 « authentication », l’erreur suivante est retournée dans la clé « card data » : « There is no unique source of card ».Qu’est-ce que cela signifie ? L’erreur « There is no unique source of card » est commune à toute la plateforme et est présent lorsque vous envoyez des informations de cartes deux fois : par exemple via un cardToken et un cardId ou un PAN et un cardToken etc… Créer des comptes Informations générales Cette section explique le fonctionnement de la création de comptes CentralPay, qu’il s’agisse de comptes de paiement ou de comptes de monnaie électronique, ainsi que les méthodes disponibles pour initier un enrôlement utilisateur via nos outils (portail ou API), en fonction du modèle de partenariat. 🧾 Types de comptes CentralPay permet l’ouverture de deux types de comptes réglementés : Type de compteDescriptionExemples d’usageCompte de paiementCompte de paiement au sens de l’article L314-1 du Code monétaire et financier.Encaissement par carte, virement ou SEPA.Compte de monnaie électroniqueCompte prépayé en euros émis par CentralPay, selon les règles des Établissements de Monnaie Électronique.Wallets, marketplaces C2C, cashback, titres. L’attribution du type de compte dépend du modèle économique et du partenaire (marchand direct, partenaire DME, etc.). 🔄 Fonctionnement global de l’enrôlement L’ouverture d’un compte passe systématiquement par une procédure d’enrôlement incluant : La création d’une demande d’enrôlement : initiation d’un dossier contenant les premières informations (email, nom, prénom). La complétion de l’enrôlement : soumission par l’utilisateur des informations réglementaires et des justificatifs (KYC/KYB). La validation de l’enrôlement : analyse par CentralPay, pouvant aboutir à une ouverture de compte, une demande complémentaire ou un refus. 📥 Deux interfaces possibles InterfaceDescriptionPublic concernéPortail d’enrôlement CentralPayInterface hébergée par CentralPay, accessible via lien personnalisé.Tous types d’utilisateursAPI d’enrôlementInterface technique permettant à un partenaire d’initier ou compléter des enrôlements via API.Partenaires autorisés selon leur statut ⚠️ Conformité et réglementation Afin de respecter le cadre réglementaire applicable aux Prestataires de Services de Paiement, la répartition des rôles est strictement encadrée : CentralPay initie seul la contractualisation avec l’utilisateur. Le partenaire technique ne peut pas inciter, conseiller ni initier une ouverture de compte. Le partenaire technique n’intervient pas dans la collecte de justificatifs. Seuls les partenaires enregistrés comme MOBSP, Agent ou DME peuvent intervenir dans les étapes d’enrôlement élargies. Modèle partenairePeut initier une demande d’enrôlementPeut compléter un enrôlement (API)Peut transmettre des justificatifs KYCPartenaire TechniqueOui*❌ Non❌ NonPartenaire DMEOui, via API ou portail✅ Oui✅ OuiPartenaire AgentOui, via API ou portail✅ Oui✅ Oui (KYC Niveau 1 ou plus si mandat) * Le partenaire technique peut créer une demande d’enrôlement contenant uniquement les données de contact (email, nom, prénom, raison sociale), sans envoyer lui-même de lien d’enrôlement.CentralPay reste seul décideur de la suite du processus. Demande d'enrôlement Méthodes de création d’une demande d’enrôlement a. Depuis le portail utilisateur CentralPay Un utilisateur connecté au portail CentralPay peut initier une demande d’enrôlement depuis le menu : Plateforme > Enrôlements > CréerEn RCT : https://test-backoffice.centralpay.net/admin/onboarding/En PROD : https://backoffice.centralpay.net/admin/onboarding/ Il peut alors renseigner manuellement les champs décrits plus bas (dans le détail de l’appel API). Une fois la demande enregistrée, un lien de redirection vers le portail d’onboarding est généré automatiquement et peut être : envoyé automatiquement par e-mail via le Mailer CentralPay (sélectionner OUI dans le champ « Envoyer des emails à l’adresse ci-dessus »), ou copié manuellement pour un envoi par un autre canal (chat, SMS, etc.). b. Depuis l’API : POST /merchant-enrollments L’enrôlement peut aussi être initié automatiquement via l’API, en appelant : POST /merchant-enrollments L’appel permet de générer un identifiant d’enrôlement (uuid) et d’initier un parcours d’onboarding complet, qui pourra être poursuivi : soit via le portail utilisateur, soit entièrement via les endpoints API (voir partie “Compléter un enrôlement par API”). ⚠️ Aucun lien direct (enrollment_url) n’est retourné par l’API. Par défaut, la plateforme CentralPay envoie un e-mail à l’adresse définie dans profile[email][value].Pour désactiver cet envoi : "sendClaimEmail": falseSi vous désactivez l'envoi, vous pouvez transmettre manuellement l’URL d’accès à l’interface onboarding en reconstituant :En RCT : https://test-onboarding.centralpay.net/token/profile/[UUID]En PROD : https://onboarding.centralpay.net/token/profile/[UUID]Note : [UUID] est l’identifiant retourné dans la réponse à POST /merchant-enrollments. Créer une demande d’enrôlement depuis l’API (merchant-enrollment) 🇫🇷 Enrôlement simplifié via SIREN (France uniquement)CentralPay permet de pré-remplir automatiquement certaines informations pour les sociétés françaises disposant d’un numéro SIREN :1. Appeler l’endpoint : POST /api/legal-entity/siren2. Fournir le champ : { "siren": "123456789" }3. Si les informations sont valides, un uuid est retourné. Il doit être utilisé comme identityBadge dans la création d’enrôlement pour déclencher le parcours simplifié. Champs requis ChampTypeObligatoireDescriptionprofile[firstname][value]string (255)✅Prénom du titulaire. Validation : caractères alphabétiques et tirets (-). Depuis la version 1.15.0profile[lastname][value]string (255)✅Nom du titulaire. Validation : caractères alphabétiques et tirets (-). Depuis la version 1.15.0profile[email][value]string (255)✅Adresse email de contact. Depuis la version 1.15.0profile[phone][value]string✅Numéro de téléphone international. Depuis la version 1.15.0languagestring✅Langue préférée du marchand. Note : utilisez GET /api/locale pour les valeurs disponibles.accountTypeenum✅Type de compte à créer. Note : utilisez GET /api/merchant-enrollment/account-type.activitySectorUUID (36)✅Secteur d’activité du marchand. Note : utilisez GET /api/nauth/enrollment-claim/activity-sector.activityAgeUUID (36)✅ si type = LEGAL_ENTITY ou INDIVIDUAL_WITH_STATUSAncienneté de l’activité. Note : utilisez GET /api/nauth/enrollment-claim/activity-age.feeScheduleUUID (36)✅Grille tarifaire à appliquer. Note : obtenez les identifiants via POST /api/merchant-enrollment/fee-schedule.identityBadgeUUID✅ si enrôlement via SIRENIdentifiant SIREN (activant le parcours simplifié).contractUUID✅ si accountType = STANDARDContrat à appliquer. Note : utilisez GET /api/merchant-enrollment/contract. ⚙️ Champs avancés (optionnels) 🔧 Personnalisation du parcours ChampValeur par défautDescriptionworkflowModeSEQUENTIALMode de déroulement du parcours (seul le mode SEQUENTIAL est désormais disponible).Note : valeurs valides : SEQUENTIALtype—Type juridique : INDIVIDUAL, INDIVIDUAL_WITH_STATUS, LEGAL_ENTITY.Note : conditionne la structure du parcours.subType—Sous-type recommandé selon type.Note :Pour INDIVIDUAL_WITH_STATUS : SOLE_TRADER, MERCHANT, ARTISANPour LEGAL_ENTITY : ASSOCIATION, PUBLIC, COMMERCIAL, EIG, CIVILturnoverIsFixedfalseSi true, verrouille la déclaration de chiffre d’affaires.Note : facultatif 📫 Paramètres de communication ChampValeur par défautDescriptionsendClaimEmailtrueEnvoie l’e-mail d’enrôlement avec le lien portail.allowedEmailCommunicationtrueSi false, désactive tous les envois d’e-mails pendant le parcours d’onboarding.sendProfileCreationEmailfalseEnvoie un email à l’utilisateur une fois le profil complété.sendAccountCreationEmailtrueEnvoie un email une fois le compte CentralPay activé. 👤 Données personnelles Tous les champs ci-dessous sont facultatifs mais permettent de pré-renseigner la constitution du profil utilisateur du futur titulaire du compte. ChampTypeDescriptionprofile[nationality][country]string (3)Nationalité (format ISO 3166-1 alpha-3).profile[birthday][value]dateDate de naissance.Validation : ≥ 18 ans, ≤ 110 ansprofile[place_of_birth][value]stringLieu de naissance.profile[country_of_birth][country]string (3)Pays de naissance (ISO 3166-1 alpha-3).birthdayConfirmation[value]dateRequis uniquement si le marchand est affilié à un agent.Format : YYYY-MM-DD 🏠 Adresse (optionnelle) Ces champs peuvent être fournis pour pré-remplir l’adresse du titulaire. ChampTypeDescriptionprofile[address][nameLine1]string(255)Ligne 1 de l’adresse.Contraintes : ^[a-zA-Z0-9\\p{L} ´'\\-]{1,255}$profile[address][locality]string(255)Ville.profile[address][postalCode]string(20)Code postal.profile[address][country]string(3)Pays (ISO 3166-1 alpha-3). 📋 Autres options ChampTypeDescriptioncontractUUID (36)Contrat à appliquer.Obligatoire si accountType = STANDARD.Note : GET /api/merchant-enrollment/contractcguUUID (36)CGU à appliquer.Note : POST /api/merchant-enrollment/cguDepuis version 1.18.0customReferencestring (100)Référence personnalisée (usage interne).payoutProfileUUID (36)Profil de virement à associer.Note : POST /api/merchant-enrollment/payout-profileadministrativeContactstring (255)Contact administratif référent.Depuis version 1.18.0technicalContactstring (255)Contact technique.Depuis version 1.18.0financialContactstring (255)Contact financier.Depuis version 1.18.0addSecurityReferenceboolAffiche une référence de sécurité lors de la validation du contrat.Uniquement valable pour : STANDARD, PARTNER, RESELLER.Défaut : falsehookUUIDIdentifiant de webhook à notifier.Note : voir onglet Full API reference pour obtenir les valeurs possibles. Compléter un enrôlement Une fois la demande d’enrôlement créée, le titulaire du futur compte peut finaliser son parcours de deux manières : via le portail CentralPay ou par intégration complète à l’API. ✅ Option 1 – Compléter l’enrôlement via le portail CentralPay Le lien d’accès à l’onboarding (généré ou reconstruit lors de la création d’enrôlement) permet au futur titulaire de compte de renseigner ses informations et d’uploader les documents demandés depuis l’interface CentralPay, de manière autonome. Vous êtes notifié automatiquement à chaque étape de l’enrôlement ou uniquement à sa finalisation (selon votre paramétrage webhook). Une fois le parcours complété par l’utilisateur, les données sont transmises aux équipes conformité de CentralPay pour validation. Dans certains cas, des documents complémentaires pourront être requis par les analystes CentralPay. 🔧 Option 2 – Compléter l’enrôlement par API Il est également possible de piloter l’ensemble du parcours d’enrôlement via API, étape par étape. Le processus suit 4 grandes phases : Compléter le profil Déterminer le workflow Compléter le workflow Finaliser l’enrôlement 1. Compléter le profil 📌 Statut du profil Un profil commence toujours avec un statut workflow.status = "ON_GOING". Pour être considéré comme complété, ce statut doit devenir ACCEPTED. ⚠️ En mode SEQUENTIAL, ce statut peut revenir à ON_GOING lors du déblocage de questions supplémentaires. Il convient de le recontrôler à chaque étape. 🔁 Obtenir la première activité à compléter Récupérer l’activityUuid via : GET /api/nauth/merchant-enrollment/{enrollmentId} Parcourir : profile.workflow.activities[0].uuid Puis interroger : GET /api/nauth/profile/{activityUuid}/activity 📝 Soumettre les données Envoyer les données attendues via un formulaire : POST /api/nauth/profile/{activityUuid}/activityContent-Type: multipart/form-data Exemple de champs attendus (activité “Identity Informations”) : ChampTypeContraintesfirstname[value]string255 caractèreslastname[value]string255 caractèresmail[value]stringEmail validephone[value]stringNuméro international (min. 10 caractères)birthday[value]stringDate au format YYYY-MM-DD, entre 18 et 110 ansplace_of_birth[value]string—country_of_birth[country]stringISO 3166-1 alpha-3 Autres types d’activité possibles : Domiciliations : informations d’adresse Pièce d’identité : type (IDENTITY_CARD, PASSPORT) + documents (2 fichiers pour carte, 1 pour passeport) Répétez ce processus tant que le statut d’une activité reste "TODO". 2. Déterminer le workflow Cette étape débloque la suite du parcours (collecte de documents, justificatifs, etc.). POST /api/merchant-enrollment/{enrollmentUuid}/activity/{uuid} Payload attendu : ChampTypeObligatoireNotestypeEnum✅INDIVIDUAL, INDIVIDUAL_WITH_STATUS, LEGAL_ENTITYbankAccountInEEACountrybool✅—turnoverUUID (36)✅POST /api/nauth/enrollment-claim/turnovercompanyNamestring(255)Si LEGAL_ENTITY—activityAgeUUID (36)Si LEGAL_ENTITY ou INDIVIDUAL_WITH_STATUSGET /api/nauth/enrollment-claim/activity-agesubTypeENUMrecommandéDépend du type (voir détails ci-dessous)isCompanyboolSi LEGAL_ENTITY— ❗ Si vous avez utilisé un identityBadge (enrôlement via SIREN), cette étape est automatiquement sautée : le workflow est déjà déterminé. 3. Compléter le workflow Chaque étape du workflow suit la même logique que celle du profil. Types de step possibles : FORM : champs à renseigner via key[value] API_CALL : traitement externe VALIDATION : action manuelle par les équipes CentralPay ENDED : étape finalisée 📘 Exemple : pour le champ company_legal_status, il faut envoyer company_legal_status[value]. Les endpoints utilisés sont : POST /api/merchant-enrollment/{merchantUuid}/activity/{uuid}POST /api/merchant-enrollment/{uuid}/complete Validation d'un enrôlement Une fois toutes les étapes du profil et du workflow complétées (que ce soit via le portail d’onboarding CentralPay ou par API), l’enrôlement entre en phase de vérification par les équipes conformité de CentralPay. 🔍 Vérification par le service conformité Les analystes procèdent à une analyse complète des informations et documents collectés au cours du parcours. Cette étape peut mener à l’une des décisions suivantes : 🟢 Validation de l’enrôlement Si les éléments fournis sont complets, lisibles, et conformes aux obligations réglementaires, l’enrôlement est validé. CentralPay procède alors automatiquement à la création : du compte CentralPay (Merchant), du compte de paiement (Wallet), du profil utilisateur légal du compte CentralPay (BO User). 📌 Ces entités sont accessibles immédiatement depuis vos outils de supervision (portail ou API). 🟡 Demande de compléments Si certaines pièces sont manquantes, floues, expirées ou incohérentes, une demande de documents complémentaires peut être émise par le service conformité. Cette demande est : soit transmise par email directement au futur titulaire du compte, soit affichée dans le portail d’onboarding CentralPay, si la demande le permet. 🔁 L’utilisateur pourra compléter les pièces demandées pour relancer la vérification. 🔴 Refus de l’enrôlement Dans certains cas (documents non valides, identité invalide, incohérences non résolues, risque trop élevé), l’ouverture du compte peut être refusée. Aucune entité CentralPay (BO User, Wallet, Merchant) n’est alors créée. 🔔 Notifications via webhook Quel que soit le scénario de sortie (validation, complément ou refus), vous êtes notifié en temps réel via les webhooks configurés. Cela vous permet de : suivre les enrôlements au fil de l’eau, adapter votre UX si l’enrôlement est refusé ou en attente, déclencher des actions internes (création CRM, attribution, etc.). Compte de Monnaie Électronique limité CentralPay permet la création de comptes de monnaie électronique (ou Wallets) pour stocker et utiliser des valeurs numériques. Deux parcours complémentaires sont proposés : Création rapide d’un Wallet sans KYC (compte limité) : accessible immédiatement avec des plafonds réglementaires. Déplafonnement du Wallet via enrôlement KYC (compte vérifié) : levée des limites après vérification des documents. Ce fonctionnement est adapté aux parcours progressifs : un utilisateur peut créer un compte limité pour un premier usage, puis être invité à compléter son profil pour accéder à l’ensemble des fonctionnalités. Création d’un compte de Monnaie Électronique limité CentralPay permet la création de comptes de monnaie électronique utilisables immédiatement, sans collecte de documents, dans un cadre réglementaire strict. Les comptes de monnaie électronique limités sont réservés aux individuels (personnes physiques). Les personnes morales ne peuvent pas disposer de ce type de compte. 📋 Limites réglementaires Solde maximal : 150 € Encaissement glissant : 150 € sur 30 jours Ce seuil s’appuie sur les dispositions de l’article R561-16 du Code monétaire et financier concernant les comptes de monnaie électronique non vérifiés. ✅ Ce type de compte peut ensuite être déplafonné par enrôlement KYC (voir plus bas). 🧭 Étape 1 – Créer un Customer Le Wallet doit être rattaché à un objet Customer représentant l’utilisateur final. 👉 Documentation – Profils Clients 🧭 Étape 2 – Créer un Wallet POST /wallets ✅ Champs obligatoires ChampTypeDescriptionNotecustomerIdUUIDIdentifiant du CustomerRequis sauf si merchantId est fournicurrencystring (3)Devise du Wallet (ex. "EUR")ISO 4217 – format 3 lettres 📝 Champs optionnels ChampTypeDescriptionreferencestringRéférence métieractivationDatedateDate d’activationexpirationDatedateDate d’expirationadditionalDataobjectDonnées personnalisées (JSON) 🔁 Étapes complémentaires – Gérer un Wallet limité Une fois un Wallet créé, CentralPay vous permet de : le modifier (ex. : ajouter une date d’expiration, une référence, un Merchant) le consulter en détail lister les Wallets existants pour un Customer ou Merchant ✏️ Modifier un Wallet POST /wallets/{walletId} Ce service permet de mettre à jour certains attributs du Wallet sans le recréer. ✅ Champs obligatoires ChampTypeDescriptionNotewalletIdUUIDIdentifiant du Wallet à mettre à jourRequis dans l’URL et/ou le corps de requête 📝 Champs optionnels ChampTypeDescriptionNotereferencestringRéférence personnalisée du Wallet—expirationDatedateDate d’expiration du WalletYYYY-MM-DDactivationDatedateDate d’activation du WalletYYYY-MM-DDadditionalDataobjectDonnées métier structurées (clé/valeur JSON)—merchantIdUUIDPour rattacher un Wallet à un Merchant spécifiqueFacultatif – à ne pas confondre avec customerId 🔎 Consulter un Wallet GET /wallets/{walletId} Ce service permet de récupérer les informations détaillées d’un Wallet existant. ✅ Paramètres requis ChampTypeDescriptionNotewalletIdUUID (36)Identifiant du WalletLe Wallet doit appartenir au Merchant connecté ou à l’un de ses sous-marchands 📘 Description des champs ChampTypeDescriptionNotecurrencystringDevise du WalletISO 4217 (ex. EUR)available[].amountintSolde disponible en centimesEx. : 10500 = 105,00 €pending[].amountintSolde en attente (transactions en cours)—referencestringRéférence du WalletFacultatifadditionalDataobjectDonnées personnaliséesJSON libre 📚 Lister les Wallets d’un Customer GET /wallets Permet d’obtenir la liste des Wallets créés pour un même Customer. ✅ Paramètres requis ChampTypeDescriptioncustomerIdUUIDIdentifiant du CustomercurrencystringDevise (ex. "EUR") 📝 Paramètres optionnels ChampTypeDescriptionNoteafterstringNe retourner que les Wallets créés après cette dateFormat ISO 8601beforestringNe retourner que les Wallets créés avant cette dateFormat ISO 8601limitstringNombre d’éléments par pageDéfaut : 10pagestringIndex de la pageDéfaut : 1 Schéma de création d’un compte de ME limité Déplafonner un compte de Monnaie Électronique Un Wallet peut être converti en compte vérifié (limites levées) via un enrôlement complet, déclenché par l’API. 🧭 Étape 1 – Créer un enrôlement POST /merchant-enrollments Vous devez inclure le walletId du Wallet limité existant. ✅ Champs obligatoires ChampTypeDescriptionNotewalletIdUUIDLien avec le Wallet ME à déplafonnerUUID valideprofile[firstname][value]string (255)PrénomAlpha + -profile[lastname][value]string (255)NomAlpha + -profile[email][value]string (255)Email de contact—profile[phone][value]string (15)Téléphone international—profile[birthday][value]date (YYYY-MM-DD)Date de naissanceEntre 18 et 110 ansprofile[place_of_birth][value]string (255)Lieu de naissance—profile[country_of_birth][country]string (3)Pays de naissanceISO 3166-1 alpha-3languagestring (3)"fr" ou "en"—accountTypestring"BASIC"—typestring"INDIVIDUAL"—activitySectorUUID (36)Secteur d’activitéGET /api/nauth/enrollment-claim/activity-sectorfeeScheduleUUID (36)Grille tarifairePOST /api/merchant-enrollment/fee-scheduleturnoverUUID (36)CA annuel attenduPOST /api/nauth/enrollment-claim/turnoverworkflowDefinitionUUIDModèle de workflowfournie par CentralPayprofileWorkflowDefinitionUUIDModèle de profilfournie par CentralPayworkflowModestring"SEQUENTIAL"RequisallowedEmailCommunicationbooleanConsentement à recevoir des emailstrue ou false 📝 Champs facultatifs ChampTypeDescriptionsendClaimEmailbooleanEnvoi de l’e-mail d’enrôlement (défaut : true)sendProfileCreationEmailbooleanEmail après profil complétésendAccountCreationEmailbooleanEmail à l’ouverture du compte vérifiécustomReferencestringRéférence internetechnicalContact, administrativeContact, financialContactstring(255)Contacts métiersaddSecurityReferencebooleanAffiche une référence sécurité (pour STANDARD, PARTNER, RESELLER)hookUUIDHook techniquebirthdayConfirmation[value]dateSi affilié à un agent 🧭 Étape 2 – Compléter un enrôlement KYC (via autocomplete) Pour accélérer le processus d’enrôlement, vous pouvez compléter d’un seul coup toutes les données attendues en appelant : POST /merchant-enrollment/{uuid}/autocomplete 📍 Adresse de résidence ChampTypeObligatoireDescriptionNoteaddress[nameLine1]string✅Numéro et nom de rue—address[locality]string✅Ville de résidence—address[postalCode]string✅Code postal—address[country]string✅Pays de résidenceISO 3166-1 alpha-3 🪪 Document d’identité ChampTypeObligatoireDescriptionNoteidentityDocument[type]string✅Type de documentIDENTITY_CARD, PASSPORT, RESIDENCE_PERMIT, VISA, IDENTITY_DOCUMENT_RECEIPTidentityDocument[documents][0]fichier✅Recto ou scan principalJPG, JPEG ou PNGidentityDocument[documents][1]fichier✅ si IDENTITY_CARDVerso ou page complémentaireJPG, JPEG ou PNGidentityDocument[issuingCountry]string✅Pays émetteurISO 3166-1 alpha-3identityDocument[expiryDate]string❌Date d’expirationFormat YYYY-MM-DDidentityDocument[checkId]string❌ID de contrôle (Onfido)—identityDocument[documentNumber]string❌Numéro du document—identityDocument[mrzLine1]string❌Ligne MRZ 1—identityDocument[mrzLine2]string❌Ligne MRZ 2— Cas particuliers ChampObligatoireConditionDescriptionidentityDocument[proofOfIdentityDocument]✅si type = IDENTITY_DOCUMENT_RECEIPTJustificatif visuel du récépisséidentityDocument[proofOfIdentityDocuments][*]✅idemPlusieurs fichiers si applicableidentityDocument[proofOfIdentityDocumentExpiryDate]✅si fichier proofOfIdentityDocument fourniFormat YYYY-MM-DD 🏦 Données bancaires (facultatif mais recommandé) ChampTypeObligatoireDescriptionNoteiban[value]string❌IBAN à vérifierFormat IBAN validebic[value]string❌Code BIC/SWIFT—ibanDocument[document]fichier❌Justificatif bancaire (RIB, relevé)JPG, JPEG ou PNG 🧾 Données KYC complémentaires (riskData) Tous les champs suivants sont requis sauf mention contraire. ChampTypeObligatoireDescriptionNoteriskData[isPep]bool✅Personne politiquement exposée ?défaut : falseriskData[isInSanctionList]bool✅Appartient à une liste de sanctions ?défaut : falseriskData[residentAlpha3Code]string✅Pays de résidenceISO 3166-1 alpha-3riskData[isHighRiskResident]bool✅Pays de résidence à risque ?—riskData[nationalityAlpha3Code]string✅NationalitéISO 3166-1 alpha-3riskData[isHighRiskNationality]bool✅Nationalité à risque ?—riskData[isHighRiskMCCActivitySector]bool✅Secteur MCC à risque ?—riskData[MCCActivitySector]int✅Code MCC (NAF ou secteur)—riskData[monthlyLimit]int✅Limite mensuelle déclarée (en centimes)Ex. 150000 = 1500,00 €riskData[monthlyLimitCurrencyAlphabeticCode]string✅Devise (ex. EUR)ISO 4217riskData[isCrossBorderPayment]bool❌Paiements transfrontaliers ?Défaut : trueriskData[declaredMonthlyRevenue]int❌Revenus déclarés (en centimes)—riskData[verifiedMonthlyRevenue]int✅ si full KYCRevenus vérifiés— 📄 Documents complémentaires (si requis) ChampTypeObligatoireDescriptionNoteproofOfAddressDocument[documents][0]fichier✅ si profil à risqueJustificatif de domicileJPG, JPEG ou PNGincomeDocument[document]fichier✅ si full KYC requisJustificatif de revenus (1 doc)JPG, JPEG ou PNGincomeDocument[documents][*]fichier✅ si full KYC requisPlusieurs fichiers possiblesJPG, JPEG ou PNG 📎 Autres documents (si nécessaires à la levée de limite) ChampTypeDescriptionNotesadditionalDocuments[X]['type']stringType du document transmisEx. : UBO_DECLARATION, PROOF_OF_VAT_REGISTRATION, LICENSING_AGREEMENT, etc.additionalDocuments[X]['documents'][X]fichierFichier transmisFormat : JPG, JPEG, PNG 📘 La liste complète des types de document acceptés est documentée dans l'Open API. 🧩 Données libres (obligatoire même vide) ChampTypeObligatoireDescriptionmetaDataJSON object✅Métadonnées libres, au format {"key": "value"} (peut être vide) 🧭 Étape 3 – Corriger un enrôlement rejeté (autoupdate) Lorsque le service conformité refuse un ou plusieurs documents (ex. : carte d’identité floue, pièce expirée), vous pouvez soumettre uniquement les éléments refusés via une requête d’auto-mise à jour. POST /merchant-enrollment/{uuid}/autoupdate 🪪 Correction de document d’identité ChampTypeObligatoireDescriptionNoteidentityDocument[type]string✅Type de document à corrigerIDENTITY_CARD, PASSPORT, RESIDENCE_PERMIT, VISA, IDENTITY_DOCUMENT_RECEIPTidentityDocument[documents][0]fichier✅Recto du document (ou fichier unique)JPG, JPEG ou PNGidentityDocument[documents][1]fichier✅ si type = IDENTITY_CARDVerso de la CNIJPG, JPEG ou PNGidentityDocument[issuingCountry]string✅ si document transmisPays émetteurISO 3166-1 alpha-3 📄 Document d’identité complémentaire (si requis) ChampTypeObligatoireDescriptioncomplementaryIdentityDocument[documents][0]fichier✅ si exigéScan ou photo supplémentairecomplementaryIdentityDocument[expiryDate]string✅Date d’expiration (YYYY-MM-DD)complementaryIdentityDocument[documentNumber]string✅Numéro du documentcomplementaryIdentityDocument[mrzLine1]string✅MRZ ligne 1complementaryIdentityDocument[mrzLine2]string✅MRZ ligne 2complementaryIdentityDocument[issuingCountry]string✅Pays émetteur (ISO alpha-3) 🧾 Documents de revenus ChampTypeObligatoireDescriptionincomeDocument[document]fichier✅ si requisFichier unique JPG/JPEG/PNGincomeDocument[documents][*]fichier✅ si multiples attendusPlusieurs documents par index ([0], [1], etc.) 🗂 Compléments d’information personnelle ChampTypeObligatoireDescriptionprofile[firstname][value]string❌Prénomprofile[lastname][value]string❌Nomprofile[birthday][value]string❌Date de naissanceprofile[place_of_birth][value]string❌Lieu de naissanceprofile[country_of_birth][country]string❌Pays de naissance (ISO 3166-1 alpha-3) 🏠 Correction d’adresse (si refusée) ChampTypeObligatoireDescriptionprofile[address][nameLine1]string❌Adresse – ligne 1profile[address][postalCode]string❌Code postalprofile[address][country]string❌Pays (ISO alpha-3)profile[address][locality]string❌Ville 🔍 Mise à jour des données KYC (riskData) Tous les champs suivants sont requis sauf mention contraire. Ils doivent être renvoyés à l’identique ou mis à jour si modifiés dans le cadre de la correction. ChampTypeObligatoireDescriptionNoteriskData[isPep]boolean✅PEP ?défaut : falseriskData[isInSanctionList]boolean✅Sur une liste de sanctions ?défaut : falseriskData[residentAlpha3Code]string✅Pays de résidenceISO alpha-3riskData[isHighRiskResident]boolean✅Pays de résidence à risque ?—riskData[nationalityAlpha3Code]string✅NationalitéISO alpha-3riskData[isHighRiskNationality]boolean✅Nationalité à risque ?—riskData[isHighRiskMCCActivitySector]boolean✅Secteur à risque ?—riskData[MCCActivitySector]int✅Code MCC métier—riskData[monthlyLimit]int✅Limite mensuelle (en centimes)[0 ; 190000]riskData[monthlyLimitCurrencyAlphabeticCode]string✅Devise (ex. EUR)ISO 4217riskData[isCrossBorderPayment]boolean❌Paiements transfrontaliersdéfaut : trueriskData[declaredMonthlyRevenue]int❌Revenus déclarés—riskData[verifiedMonthlyRevenue]int✅ si full KYCRevenus vérifiés (centimes) 📁 Documents additionnels (optionnels ou exigés) ChampTypeObligatoireDescriptionadditionalDocuments[X]['type']string✅ si documents attendusType du justificatifadditionalDocuments[X]['documents'][X]fichier✅Fichiers associés (JPG, JPEG, PNG) 🧩 Autres champs ChampTypeObligatoireDescriptionfullKycboolean❌Permet d’imposer un KYC complet ou simplifié (true / false) 🧭 Étape 4 – Suivre le statut d’un enrôlement Une fois un enrôlement créé et complété, vous pouvez à tout moment interroger son statut pour : vérifier l’état d’avancement (ON_GOING, ACCEPTED, REFUSED) ; suivre les étapes en attente dans le workflow ; extraire les données de profil déjà soumises. 🔍 Récupérer un enrôlement GET /merchant-enrollment/{enrolmentId} ✅ Paramètres requis ChampTypeObligatoireDescriptionNoteenrolmentIdUUID (36)✅Identifiant de l’enrôlement retourné lors de la création (POST /merchant-enrollments)Format UUID standard 📌 L’enrôlement doit appartenir à l’espace autorisé par vos identifiants API (marchand ou sous-marchand). 🔎 Champs principaux de la réponse ChampTypeDescriptionuuidUUIDIdentifiant unique de l’enrôlementworkflow.statusstringStatut du processus (ON_GOING, ACCEPTED, REFUSED)workflow_modestring"SEQUENTIAL" ou "CONTINUAL"workflow.activities[]tableauListe des activités (étapes) encore à compléterprofile[...]objetDonnées de profil déjà soumises, avec leur statutconformity_statusstringÉtat de conformité global (ON_GOING, REVIEW, APPROVED, etc.)created_atdatetimeDate de création de l’enrôlementactivity_sector.namestringSecteur déclaré dans l’enrôlement 🧠 À surveiller Tant qu’une activité a un state = TODO, l’enrôlement est incomplet. Lorsqu’aucune activité n’est en attente et que le workflow.status = ACCEPTED, l’utilisateur est validé. En cas de workflow.status = REFUSED, aucun Wallet vérifié ne sera généré. Schéma de validation KYC d’un compte de ME Retours, statuts et webhooks 1. Codes de retour liés à la création de compte La création d’un compte marchand via l’API d’enrôlement déclenche un processus automatisé permettant à CentralPay de collecter et valider les informations nécessaires à l’ouverture du compte. En cas d’échec, une réponse d’erreur HTTP est retournée immédiatement à l’appel API, précisant le champ en erreur et la nature du rejet (donnée manquante, incohérente ou invalide). ⚠️ Il n’existe pas de table de codes de retour centralisée pour ces erreurs, car elles sont liées aux validations dynamiques effectuées par champ. L’erreur retournée est toujours structurée dans le corps de réponse et permet de corriger précisément le point bloquant. 2. Statuts liés aux enrôlements Consultez les Statuts Merchant Enrollment ➝ 3. Webhooks liés aux enrôlements Consultez les Webhooks d’Onboarding ➝ Transférer des paiements Informations générales La solution Easy Wallet permet aux plateformes d’encaisser des paiements et de les transférer à des tiers tout en respectant la réglementation européenne. Pour ce faire, le module comprend deux principaux services : L’inscription, permettant la création de comptes de paiement et de monnaie électronique pour les marchands ou participants d’une plateforme Le transfert, permettant le transfert des transactions vers ces comptes de paiement et de monnaie électronique Selon le modèle de partenariat CentralPay, les possibilités d’inscription et de transferts sont différentes. 1. Les types de transferts Selon le modèle de partenariat établi avec CentralPay, le transfert des paiements est réalisé différemment : Partenaires MOBSP : Vous devez utiliser le service de transfert via transaction Agents PSP : Vous pouvez utiliser le service de transfert libre ou transfert via transaction Distributeurs de ME : Vous devez utiliser le service de transfert via transaction pour la phase d’encaissement en devise. Ensuite, vous pouvez utiliser le service de transfert libre uniquement pour mouvementer la monnaie électronique entre les comptes de vos participants Pour connaitre votre modèle de partenariat, veuillez vous rapprocher de votre contact CentralPay. Transfert indépendant 🧾 Créer un transfert (Create a Transfer) La fonction Create a Transfer permet aux partenaires régulés (Agents ou DME, selon le type de compte) de transférer des fonds entre deux comptes de leurs sous-marchands (Participants). Ce transfert peut être initié : Par un Agent lorsque les wallets sont des comptes de paiement. Par un DME lorsque les wallets sont des comptes de monnaie électronique. Cas d’usage Ce mécanisme permet, par exemple : à un Agent d’orchestrer des reversements de fonds entre sous-marchands, ou vers des comptes destinataires définis ; à un DME d’opérer des transferts de monnaie électronique entre utilisateurs d’une place de marché. CentralPay reste en charge de l’exécution effective des opérations, dans le cadre de la relation contractuelle avec les sous-marchands. 📥 Paramètres requis ChampTypeObligatoireDescriptiondestinationWalletIdUUID✅Identifiant du wallet destinataire (appartenant à un sous-marchand).amountInteger (en cents)✅Montant du transfert. Doit être strictement supérieur à 0.sourceIdUUID✅ si sourceType est renseignéIdentifiant de la source de fonds (ex. : transaction, virement, crédit, SDD).sourceTypeEnum✅ si sourceId est renseignéSource du transfert : TRANSACTION, SCT_TRANSACTION, CREDIT, SDD. 🔧 Paramètres optionnels ChampTypeDescriptionemissionWalletIdUUIDWallet émetteur si différent du wallet principal du partenaire.currencyCode ISODevise du transfert (si différente de celle du wallet).feeIntegerMontant de la commission prélevée par le partenaire, déduite du montant. Par défaut : 0.escrowDateDate ISODate à partir de laquelle le transfert devient effectif. Peut être utilisée pour définir une période de blocage temporaire.merchantTransferIdStringRéférence métier du partenaire (max 100 caractères).transferGroupStringGroupe de rattachement pour regrouper plusieurs transferts.descriptionStringDescription libre (max 256 caractères).additionalDataKey/ValueDonnées complémentaires sous forme de paires clé/valeur (max 256 caractères par valeur).metaDataJSONMétadonnées complémentaires structurées.purposeCode / purposeMessageEnum / StringFinalité du transfert, selon une nomenclature standard. Voir la liste des codes. 🔒 Règles de validation Le destinationWalletId doit correspondre à un wallet valide d’un sous-marchand du partenaire. Le sourceId ne peut être utilisé que si l’objet lié est dans un statut accepté (CAPTURED, CLEARED, etc.). Le montant autorisé dépend du solde disponible ou des fonds liés à la source (transaction, virement, etc.). 🔄 Fonctions complémentaires liées aux transferts Les partenaires régulés (Agent ou DME) disposent de plusieurs fonctions de gestion post-création d’un transfert, leur permettant d’ajuster, consulter ou annuler une opération, sous conditions. 🛠 Modifier un transfert (Update a Transfer) Cette fonction permet de modifier certains paramètres d’un transfert existant, à condition qu’il ne soit pas encore exécuté (statut PENDING). Paramètres disponibles : ChampTypeObligatoireDescriptiontransferIdUUID✅Identifiant du transfert à modifier.merchantTransferIdString❌Référence partenaire.escrowDateDate ISO❌Nouvelle date d’exécution différée.transferGroupString❌Regroupement de transferts.descriptionString❌Description libre (max 256 caractères).additionalDataKey/Value❌Données complémentaires.metaDataJSON❌Métadonnées structurées. 💡 La modification de la date d’escrow est notamment utile dans les flux conditionnés (e.g. : marketplace, délais de rétractation…). ❌ Annuler un transfert (Cancel a Transfer) Un transfert peut être annulé tant qu’il n’a pas encore été exécuté (statut PENDING). Cette annulation est irréversible : l’opération apparaîtra comme CANCEL dans les historiques du wallet. Paramètres : ChampTypeObligatoireDescriptiontransferIdUUID✅Identifiant du transfert à annuler. ⚠️ Une fois que les fonds sont disponibles (TRANSFERRED), cette fonction n’est plus accessible. Il faudra alors utiliser un TransferReversal. 🔍 Consulter un transfert (Retrieve a Transfer) Permet d’obtenir l’ensemble des détails d’un transfert via son identifiant CentralPay. ChampTypeObligatoireDescriptiontransferIdUUID✅Identifiant du transfert. 📂 Rechercher plusieurs transferts (List Transfers) Permet de rechercher une liste de transferts selon plusieurs critères. Tous les paramètres sont optionnels. ParamètreTypeDescriptionmerchantTransferIdString (100)Référence partenaire.destinationWalletIdUUIDWallet destinataire.transferGroupStringGroupe de transferts.statusEnumPENDING, TRANSFERRED, CANCEL.after / beforeDate ISOFiltrer par date de création.limitIntegerNombre de résultats par page.pageIntegerIndex de la page de résultats. 🔁 Retourner un transfert exécuté (TransferReversal) Une fois un transfert exécuté (status = TRANSFERRED), il ne peut plus être annulé via la fonction Cancel. Il est alors nécessaire de passer par une opération dédiée appelée TransferReversal. Elle ne supprime pas le transfert d’origine : celui-ci reste visible, historisé et traçable. Cette fonction est accessible uniquement aux partenaires régulés (Agent pour les comptes de paiement, DME pour les comptes de monnaie électronique), et doit respecter les règles de disponibilité des fonds. ✅ Conditions d’utilisation Le transfert initial doit : Être dans le statut TRANSFERRED Avoir des fonds disponibles dans le wallet destinataire Ne pas avoir déjà été remboursé dans sa totalité via des opérations de reversal Le montant retourné doit être : Inférieur ou égal au solde disponible du wallet destinataire Inférieur ou égal à la somme initialement transférée Diminué des éventuels reversals déjà effectués sur le transfert concerné ▶️ Créer un TransferReversal Permet de retourner un montant vers le wallet émetteur d’origine. ChampTypeObligatoireDescriptiontransferIdUUID✅Identifiant du transfert d’origine.amountInteger✅Montant à rembourser (en centimes).merchantTransferReversalIdString❌Référence partenaire pour le suivi.refundFeeBoolean❌Indique si les frais du transfert initial sont remboursés (par défaut : true).feeInteger❌Montant des frais associés au reversal.descriptionString❌Texte libre explicatif (max. 256 caractères).escrowDateDate ISO❌Date d’exécution différée si applicable.additionalDataKey/Value❌Paires clé/valeur pour les besoins métier. 💡 Si le champ refundFee est défini à false, le montant des frais initiaux reste acquis et n’est pas restitué au Wallet source. ⚠️ Règles importantes L’opération est visible dans les mouvements du wallet (débit du wallet destinataire, crédit du wallet d’origine). Plusieurs reversals peuvent être effectués sur un même transfert, dans la limite du montant total initial. Si les fonds ne sont pas disponibles, l’appel est rejeté avec une erreur explicite (insuffisance de solde ou montant trop élevé). 🧩 Fonctions complémentaires (TransferReversal) Ces fonctions permettent de gérer et consulter les opérations de retour de transfert exécuté (TransferReversal), une fois créées. ✏️ Modifier un TransferReversal (Update) Permet de modifier certaines informations sur un TransferReversal déjà créé. ChampTypeObligatoireDescriptiontransferReversalIdUUID✅Identifiant du TransferReversal à modifiermerchantTransferReversalIdString❌Référence partenaire pour le suividescriptionString❌Texte explicatif libre (256 caractères max)escrowDateDate (ISO)❌Nouvelle date différée d’exécution, si applicableadditionalDataKey/Value❌Paires clé/valeur pour usage métier spécifique 🔒 Cette fonction est accessible uniquement au niveau PARTNER ou supérieur. 🔍 Consulter un TransferReversal (Retrieve) Permet de consulter les détails d’un TransferReversal à partir de son identifiant. ChampTypeObligatoireDescriptiontransferReversalIdUUID✅Identifiant du TransferReversal à consulter 🛈 L’objet retourné contient l’intégralité des informations métier, y compris : montant, date, statut, wallet concerné, et historique de l’opération. 📄 Rechercher des TransferReversals (List) Permet d’interroger l’historique des TransferReversal selon plusieurs critères. ParamètreTypeObligatoireDescriptionmerchantTransferReversalIdString❌Référence partenaireafterDate ISO❌Retourne les éléments créés après cette datebeforeDate ISO❌Retourne les éléments créés avant cette datelimitInteger❌Nombre d’éléments à retourner (par défaut : 10)pageInteger❌Index de la page à retourner (par défaut : 1) Cette fonction permet un suivi complet des opérations de reversal liées à une activité donnée, y compris les cas de multiples retours partiels. Transfert via Transaction ou PaymentRequest Contrairement aux transferts indépendants, réservés aux Agents (pour les comptes de paiement) et aux Distributeurs de Monnaie Électronique (DME) (pour les comptes de monnaie électronique), les transferts via transaction sont accessibles à l’ensemble des modèles de partenariat, y compris aux Partenaires Techniques non régulés. Dans ce cadre, le partenaire transmet à CentralPay, au moment de la création d’une transaction (par carte, virement ou prélèvement), des données commerciales contextualisées (ex. : montant du panier, commission, identifiants des wallets destinataires…) L’appel API ne crée pas directement le mouvement financier :👉 CentralPay instruit le transfert de manière autonome, après validation effective de la transaction (capture d’une opération carte, réception d’un virement, ou exécution d’un prélèvement SEPA). Le modèle de transfert conditionné permet de réaliser un mouvement de fonds à l’issue d’une transaction : carte, virement (SCT), ou prélèvement (SDD). Dans ce cas, le transfert est directement paramétré lors de la création de la transaction, via un champ dédié transfer[]. Cette méthode ne passe pas par l’endpoint /transfer, mais s’appuie sur les endpoints spécifiques des transactions concernées : /transaction pour les paiements par carte : Voir comment créer une transaction CARD ➝ /sctTransaction pour les virements reçus : Voir comment créer une transaction SCT ➝ /sddTransaction pour les prélèvements SEPA : Voir comment créer une transaction SDD ➝ /paymentRequest pour les demandes de paiement : Voir comment créer une demande de paiement ➝ Ce mode de fonctionnement garantit que les fonds sont uniquement transférés si la transaction est réussie. Le transfert devient alors une étape automatisée et synchronisée. ✅ Conditions d’utilisation Le transfert est créé en même temps que la transaction (pas d’appel distinct). Il n’est exécuté qu’en cas de succès de la transaction source. Il respecte les contraintes de la source (statut, solde disponible, date…). Il peut être instantané ou différé via le champ escrowDate. ▶️ Paramétrer un transfert dans une transaction Dans les quatres cas de figure, la logique est identique : un tableau transfer[] est renseigné dans le corps de la requête lors de l’appel POST de création de la transaction. Les champs acceptés dans transfer[] sont les suivants : ChampTypeObligatoireDescriptiondestinationWalletIdUUID✅Wallet bénéficiaire. Doit appartenir à un sous-marchand autorisé.amountInteger✅Montant du transfert en centimes.currencyString❌Devise du transfert (si différente de la devise de la transaction).merchantTransferIdString❌Référence partenaire.feeInteger❌Frais applicables (prélevés sur le montant brut).escrowDateDate ISO❌Date différée d’exécution (si applicable).transferGroupString❌Identifiant de groupe pour les suivis agrégés.descriptionString❌Libellé du transfert visible sur les relevés.additionalDataKV pairs❌Données métier structurées (clé/valeur). ⚠️ Les règles de disponibilité des fonds (notamment après délai de capture ou de validation) doivent être respectées. Si la transaction est annulée ou échoue, aucun transfert n’est déclenché. Reversement bancaire pour tiers Le reversement bancaire pour un tiers permet de transférer des fonds depuis un compte de paiement ou monnaie électronique CentralPay vers le compte bancaire d’un marchand (ou sous-marchand), en tant que partenaire Agent ou DME. Les partenaires techniques ou MOBSP n’ont pas accès à cette fonction. 1. Objectif et périmètre Ce service permet de : Déclencher des reversements manuels ou automatisés pour des sous-marchands ou des participants, Cibler un compte bancaire autorisé par le sous-marchand ou le participant, Utiliser un wallet CentralPay comme source des fonds. 📌 Le partenaire régulé reste à l’initiative technique du reversement, mais les fonds sont toujours détenus et transférés par CentralPay, qui conserve la responsabilité de l’exécution. 2. Méthodes disponibles 🔁 L’API CentralPay Endpoint : /payout/byThirdParty➡️ Voir détails ci-dessous. 🧑💼 Le Portail utilisateur CentralPay Accessible pour les comptes disposant des droits adéquats (Agent ou DME). Étapes : Accéder à Comptes liés. Sélectionner le marchand concerné. Accéder à l’onglet Comptes bancaires. Choisir le compte cible et déclencher le payout. 3. Endpoint API : /payout/byThirdParty Ce service permet d’envoyer une instruction à CentralPay pour reverser une somme définie vers un compte bancaire rattaché à un Participant. ✅ Limites d’usage 1 reversement / jour / Participant / devise. Compte bancaire cible validé par le Participant. Reversement uniquement sur fonds disponibles. 🔧 Paramètres API (BODY) ParamètreTypeRequisDescriptioncurrencyISO 4217✅ OuiDevise du reversement (doit correspondre au compte bancaire).destinationBankAccountIdUUID✅ OuiCompte bancaire bénéficiaire (lié au Participant).walletIdUUID❌ NonWallet source des fonds.amountInteger (en cents)❌ NonMontant à reverser. Si vide : solde maximum.merchantPayoutIdString❌ NonID de référence interne.descriptionString❌ NonTexte libre, visible dans le reporting.payoutReferenceString (max 35)❌ NonRéférence bancaire (visible sur l’opération bancaire).additionalDataMap❌ NonDonnées complémentaires (ex. : ID commande, segment, etc.).transitionWalletUUID❌ Non(cas avancé) wallet transitoire.customerIdUUID❌ NonIdentifiant client si cible non marchande. 4. Suivi des reversements Récupérer un payout Endpoint : /payout/byThirdParty/retrieveParamètre : payoutId (UUID) Lister les payouts Endpoint : /payout/byThirdParty/listParamètre : walletId (UUID) Statuts possibles : StatutSignificationPENDINGReversement en cours de traitementPAIDReversement exécuté avec succèsCANCELReversement annulé manuellement 5. Contraintes réglementaires Seuls les Agents et Distributeurs de Monnaie Électronique (DME) déclarés à l’ACPR via CentralPay peuvent initier ces reversements. Les partenaires doivent garantir que les données envoyées sont conformes à leur cadre contractuel et réglementaire. CentralPay se réserve le droit de refuser un reversement ou d’exiger des documents justificatifs en cas de doute sur l’opération. Retours, statuts et webhooks 1. Codes de retour liés aux transferts Les transferts réalisés via l’API CentralPay (objet Transfer ou Transfer Reversal) sont des opérations internes entre deux porteurs de comptes CentralPay (ex. : marchands, clients, partenaires). Ces opérations sont exécutées de manière synchrone ou quasi-immédiate. Contrairement aux transactions cartes ou virements bancaires, il n’y a pas de codes de retour bancaire associés à ces transferts internes. En cas d’échec, l’API retourne une erreur HTTP décrivant la cause du rejet (ex. : solde insuffisant, compte inactif, devise incompatible…). Ces erreurs ne sont pas des statuts métier, mais des contrôles d’entrée empêchant la création du transfert. Une fois le transfert accepté, il suit un cycle de vie propre. 2. Statuts liés aux transferts Consultez les Statuts Transfer ➝ Consultez les Statuts Transfer Reversal ➝ Consultez les Statuts Payout (valables également pour PayoutByThirdParty) ➝ 3. Webhooks liés aux transferts Consultez les Webhooks Transfer ➝ Consultez les Webhooks Transfer Reversal ➝ Consultez les Webhooks Payout (valables également pour PayoutByThirdParty) ➝ Plugin CMS WooCommerce Ce guide vous accompagne dans l’installation, la configuration et l’utilisation du plugin de paiement CentralPay pour WooCommerce (WordPress). ℹ️ La plateforme CentralPay prend en charge différents moyens de paiement (carte, virement SEPA, prélèvement SEPA, initiation de paiement) et plusieurs modes de paiement (paiement en une fois, abonnement, en plusieurs fois, etc.). Ce plugin WooCommerce permet uniquement l’encaissement de transactions cartes unitaires. Si vous souhaitez demander une évolution du plugin, rendez-vous sur https://support.centralpay.com : Support & Paramétrage Suggérer une nouvelle fonctionnalité 1. Téléchargement du plugin Téléchargez l’archive ZIP du plugin CentralPay en cliquant ici. Vous ne devez pas la décompresser manuellement. 2. Installation sur WordPress Connectez-vous à votre interface d’administration WordPress Allez dans Extensions > Ajouter Cliquez sur Téléverser une extension Sélectionnez le fichier centralpay220.zip et cliquez sur Installer maintenant Une fois l’installation terminée, cliquez sur Activer l’extension 3. Configuration du module Allez dans WooCommerce > Réglages > Paiements Cliquez sur CentralPay pour accéder à la configuration Renseignez les champs suivants puis cliquez sur Enregistrer les modifications : ChampDescriptionAccès à la donnéeIdentifiant marchandIl s’agit de votre Merchant Public Key. Ne pas confondre avec le Merchant UUID.Portail utilisateur CentralPay > Administration > Technique > Copier « Merchant Public Key »Login APIIdentifiant de votre utilisateur API CentralPayPortail utilisateur CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »Mot de passe APIMot de passe de votre utilisateur API CentralPayPortail utilisateur CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Modifier > Générer un mot de passe > Copier le mot de passe > cliquer sur « Mettre à jour »ID du point de venteIdentifiant unique de votre point de vente (UUID)Portail utilisateur CentralPay > Configuration > Points de ventes > Copiez l’ID du point de vente concernéMode test / productionActivez le mode test si vous souhaitez utiliser l’environnement sandbox (les logins et identifiants doivent être ceux de votre compte de test CentralPay)./URL de redirectionRedirige vos clients vers une page personnalisée après paiement sur notre formulaire.Renseignez l’URL de votre page de confirmation de paiement. 4. Statut de commande Le plugin WooCommerce de CentralPay intègre automatiquement une URL de retour (return_url) dans le lien du formulaire de paiement. Cette URL permet de rediriger le client vers la page de confirmation de commande (/checkout/order-received/) et d’actualiser le statut de la commande en fonction du résultat du paiement. Si le client final ferme la fenêtre de paiement avant d’être redirigé, la mise à jour de la commande peut ne pas se déclencher correctement côté WooCommerce. Pour garantir la mise à jour fiable du statut de commande, nous recommandons de mettre en place un Hook (callback serveur à serveur) dans votre Backoffice CentralPay. Étapes de configuration : Accédez à :Production : https://backoffice.centralpay.net/admin/hook/Test : https://test-backoffice.centralpay.net/admin/hook/ Créez un Hook avec les paramètres suivants : Événement : Point de Vente > TRANSACTION_SUCCEDEED Affecté au Point de Vente : sélectionnez votre Point de Vente WooCommerce URL : https://votre-site-woocommerce.com/?wc-api=cpay_validation (Remplacez par l’URL de votre site WooCommerce.) Sauvegardez le Hook. Le paramètre /?wc-api=cpay_validation est nécessaire pour que le plugin WooCommerce de CentralPay reconnaisse la notification et déclenche la mise à jour du statut de la commande. Cette configuration doit être réalisée à la fois dans votre environnement de test et sur votre compte de production. 5. Personnalisation du logo Vous pouvez également personnaliser l’interface de paiement en ajoutant le logo de votre site via le Backoffice : Accédez à : https://backoffice.centralpay.net/admin/point_of_sale/ Dans le détail de votre Point de Vente, cliquez sur Modifier Importez votre logo dans la section Logo Ce logo sera affiché directement dans le formulaire de paiement pour une expérience utilisateur plus cohérente. 6. Mode test Activez le mode test dans la configuration (attention, vous devez disposer d’un compte de test CentralPay et renseigner les identifiants de ce compte de test) Utilisez les cartes de test fournies par CentralPay pour simuler des paiements Vérifiez le bon fonctionnement : Du formulaire de paiement Des redirections Des statuts de commande 7. Suivi des paiements Retrouvez tous vos paiements dans WooCommerce > Commandes Le plugin CentralPay met à jour automatiquement les statuts des commandes En cas de besoin, un journal des événements est disponible dans le fichier error.log du plugin 8. Langues disponibles Le plugin est disponible en : 🇫🇷 Français 🇬🇧 Anglais Vous pouvez modifier ou ajouter vos propres traductions via les fichiers .po présents dans le dossier /languages, ou en utilisant un plugin comme Loco Translate. 9. Désinstallation Pour désinstaller le plugin : Désactivez-le via le menu des extensions Cliquez sur Supprimer Le script de désinstallation supprimera les paramètres du plugin 10. Support Pour toute question ou assistance, contactez notre support technique depuis https://support.centralpay.com.Merci d’indiquer votre identifiant marchand, l’URL de votre site et le plus de détails possible sur votre besoin. PrestaShop La solution CentralPay propose un module d’encaissement par carte bancaire pour les boutiques Prestashop. Deux versions du module sont disponibles selon la version de votre CMS : Pour Prestashop 1.6 ➝ Télécharger le module 1.6 Pour Prestashop 1.7 ➝ Télécharger le module 1.7 1. Installation du module Prestashop v1.6 Connectez-vous au back-office Prestashop. Menu Modules > Modules. Cliquez sur « Ajouter un nouveau module ». Chargez l’archive .zip puis cliquez sur « Installer ». Prestashop v1.7 Connectez-vous à l’administration de Prestashop. Menu Modules > Modules Manager > Upload a module. Déposez l’archive .zip ou cliquez pour la charger. Terminez l’installation en suivant l’assistant. 2. Configuration du module Après installation, accédez à la page de configuration du module : Modules > Modules installés > CentralPay > Configurer Les champs suivants sont requis : ChampDescriptionOù trouver cette information ?Merchant Public KeyClé publique d’authentification APIPortail utilisateur CentralPay > Administration > Technique > Copier « Merchant Public Key »Login APIIdentifiant de votre utilisateur API CentralPayPortail utilisateur CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »Secret Key (passeword API)Clé secrète API (à ne jamais diffuser)Portail utilisateur CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Modifier > Générer un mot de passe > Copier le mot de passe > cliquer sur « Mettre à jour »ID du point de venteIdentifiant unique de votre point de vente (UUID)Portail utilisateur CentralPay > Configuration > Points de ventes > Copiez l’ID du point de vente concernéEndpointURL de l’API CentralPayEn environnement de test : https://test-api.centralpay.net/En production : https://api.centralpay.net/DeviseDevise des paiements acceptésÀ configurer selon la boutique (EUR recommandé)Mode de paiementMode d’intégration technique du paiementLaisser la valeur par défaut « Direct Post »Affichage du formulaireAffichage du formulaire sur page dédiée ou dans la page panierChoisir l’affichage souhaité (conseillé : page dédiée pour la sécurité)Statut de commande après paiement réussiStatut que prendra la commande après une validation du paiement« Paiement accepté » (ou tout autre statut configuré dans Prestashop) ⚠️ Veillez à bien copier-coller la Merchant Public Key sans espaces ni caractères parasites. 3. Fonctionnement Lorsqu’un client choisit CentralPay comme moyen de paiement : Il est redirigé vers une page sécurisée (hébergée ou intégrée). Il saisit ses informations de carte bancaire. Le paiement est autorisé par la banque (3D Secure inclus). La commande est validée dans Prestashop avec le statut défini. Un webhook notifie automatiquement CentralPay et Prestashop de l’issue du paiement. 4. Mode test / production En mode test, vous pouvez utiliser les cartes de test disponibles dans la documentation développeur. En mode production, seuls les marchands activés (KYC validé) peuvent encaisser. Le switch de mode s’effectue en modifiant l’Endpoint dans la configuration du module. 5. Support Pour toute question : Contactez le support CentralPay via le Portail utilisateur > Aide & Support. Ou directement via support.centralpay.com Magento 📦 1. Téléchargement du module Téléchargez le plugin CentralPay pour Magento à partir du lien suivant : 👉 Télécharger le plugin Magento CentralPay (v1.0) Ce module est compatible avec Magento 1.7+ ⚙️ 2. Installation du plugin A. Décompresser l’archive Décompressez le fichier .zip téléchargé. Vous obtiendrez les dossiers suivants : app/ js/ skin/ centralpay.sql (fichier SQL à exécuter) B. Copier les fichiers Copiez l’ensemble des dossiers (app, js, skin) à la racine de votre instance Magento. Ils viendront automatiquement s’intégrer dans l’arborescence existante. C. Exécuter le script SQL Exécutez le fichier centralpay.sql sur la base de données de votre site Magento. 💡 Utilisez phpMyAdmin ou tout autre outil de gestion de base pour importer ce fichier.⚠️ Pensez à sauvegarder votre base avant exécution. 🔧 3. Configuration du module Une fois le module installé, connectez-vous à votre interface d’administration Magento pour renseigner les paramètres CentralPay. A. Accéder à la configuration Dans le menu d’administration Magento, rendez-vous dans :Stores > Configuration > Sales > Payment Methods > CentralPay B. Paramètres à renseigner Champ dans MagentoDescriptionObligatoireAccès à la donnéeActiver CentralPayActive le module dans l’environnement Magento.✅MagentoTitreNom du moyen de paiement visible côté client.✅MagentoIdentifiant Marchand (merchantLogin)Identifiant d’API fourni par CentralPay.✅Portail utilisateur CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »Mot de passe API (merchantPassword)Mot de passe API associé à l’identifiant.✅Portail utilisateur CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Modifier > Générer un mot de passe > Copier le mot de passe > cliquer sur « Mettre à jour »Clé publique Marchand (merchantPublicKey)Clé de chiffrement utilisée pour sécuriser les données de carte.✅Portail utilisateur CentralPay > Administration > Technique > Copier « Merchant Public Key »ID du point de venteIdentifiant unique de votre point de vente (UUID)❌Portail utilisateur CentralPay > Configuration > Points de ventes > Copiez l’ID du point de vente concernéURL de retour (returnUrl)Permet de rediriger le client vers Magento après paiement. Peut être laissé vide pour utiliser la redirection automatique.❌MagentoMode Test (sandbox)Permet d’utiliser l’environnement de test CentralPay.❌MagentoCommande en attenteStatut Magento utilisé si le paiement est en cours ou en attente (ex. : 3DS).❌MagentoCommande validéeStatut Magento utilisé si le paiement est accepté.❌Magento 🧪 4. Mode test et environnement de recette Le module propose une option de sandbox activable dans l’administration Magento. 🧪 Utilisez l’environnement sandbox CentralPay pour simuler des paiements avant passage en production. N’oubliez pas d’utiliser les identifiants API de test (login, password, clé publique) fournis par CentralPay. 💳 5. Expérience client Le client ajoute ses articles au panier et passe à la caisse. Au moment du paiement, il choisit CentralPay comme méthode de paiement. Il est redirigé vers l’interface de paiement CentralPay sécurisée. Une fois le paiement effectué (ou refusé), il est redirigé vers votre site Magento. Le statut de la commande est mis à jour automatiquement. 🧾 6. Suivi des paiements Depuis Magento : vous pouvez consulter le statut des commandes et des paiements dans le back-office standard. Depuis CentralPay : toutes les opérations sont également visibles dans votre interface CentralPay (transactions, remboursements, rejets, etc.). 🆘 7. Support technique Pour toute question : Consultez la documentation technique CentralPay : docs.centralpay.com Contactez notre support : support.centralpay.com 🔧 Assistance disponible en français et en anglais. Cas d'usages Marketplace C2C Prochainement
Terminologies CentralPay DésignationDescriptionActeurToute entité identifiée sur la plateforme CentralPay. Peut-être un marchand, un partenaire, un point de vente, un établissement tiers, ou même CentralPay.Autorisation carteOpération d’interrogation de disponibilité des fonds d’une carte bancaire, puis de blocage en prévision d’une transaction carte (7 jours max).Elle est représentée par l’objet « Transaction » dans l’API CentralPay.Compte CentralPay Ouvert pour une entité (personne physique ou morale), il est le support de : – Sa contractualisation : Grille tarifaire, CGU… – Son administration : Credentials, profils utilisateurs… – Sa configuration : Scenario de notification, points de vente, règles d’acceptations… – Sa conformité : KYC/KYB, accréditations…Le compte CentralPay contient un ou plusieurs comptes de paiement ou de monnaie électronique.Il est représenté par l’objet « Merchant » dans l’API CentralPay.Compte de paiementCompte ouvert dans un Établissement de Paiement. Ce compte est utilisé exclusivement pour la réalisation d’opérations de paiement (collecte de paiements en devises ISO, reversement des fonds vers un compte bancaire…).Il est représenté par l’objet « Wallet » dans l’API CentralPay.Compte de monnaie électroniqueCompte ouvert dans un Établissement de Monnaie Électronique. Ce compte est utilisé exclusivement pour le stockage et l’échange de valeurs en monnaie électronique au sein du réseau du distributeur (devises CUSTOM).Il est représenté par l’objet « Wallet » dans l’API CentralPay.Compte de commissionCompte de paiement secondaire d’un marchand ou partenaire permettant d’isoler les opérations liées aux frais CentralPay du reste des opérations de paiement.Si utilisation par un partenaire, ce compte permet également de collecter ses propres commissions imputées aux transactions de ses sous-marchands.Il est représenté par l’objet « Wallet » dans l’API CentralPay.Compte de réserveCompte de paiement secondaire d’un marchand ou partenaire permettant d’isoler ses fonds de réserve Centralpay (pied de compte, collatéral ou réserve glissante). N’est pas autorisé à réaliser de Payout.Il est représenté par l’objet « Wallet » dans l’API CentralPay.Compte de collecte « Agent »Compte de paiement ouvert dans les livres de CentralPay au nom de l’Agent. Il est dédié à la réception des fonds du partenaire Agent avant leur transfert vers les comptes de paiement de ses sous-marchands. N’est pas autorisé à réaliser de Payout.Il est représenté par l’objet « Wallet » dans l’API CentralPay.Compte CentralisateurLe Compte Centralisateur est un compte technique mise à disposition par CentralPay au Partenaire pour lui permettre de visualiser les instructions technique transmises. Il est donc uniquement dédié à la centralisation des opérations d’un partenaire avant leur transfert vers les comptes de paiement de ses titulaires concernés.MarchandPersonne morale ou autoentreprise réalisant des opérations d’encaissement pour compte propre (vente de biens ou de services). Dispose d’un compte CentralPay en droits « Standard ».Partenaire MOBSPPersonne morale, porteur d’un projet impliquant la mise en relation d’un marchand à CentralPay. Partenaire DMEPersonne morale déclarée comme Distributeur de Monnaie Électronique par CentralPay auprès de l’ACPR (Banque de France). Porteur d’un projet impliquant la réalisation d’opérations d’émission et d’échange de Monnaie Électronique. Dispose des droits API « DME Partner ».Partenaire AgentPersonne morale agréée comme Agent Prestataire de Services de Paiement de CentralPay auprès de l’ACPR (Banque de France). Réalisant notamment des opérations d’encaissement pour compte de tiers à destination de ses Participants. Dispose des droits API « Agent Partner ».Sous-marchandPersonne morale ou physique agissant à des fins commerciales ou dans le cadre d’une activité LMNP. Obligatoirement lié à un Partenaire. Dispose d’un compte CentralPay en droits « Basic ».ParticipantPersonne physique ou morale agissant à des fins non commerciales (exemple : chargement d’un compte de paiement ou de monnaie électronique dans le but de participer au projet d’un partenaire). Obligatoirement lié à un Partenaire. Dispose d’un compte CentralPay en droits « Basic ».IntégrateurPersonne morale, généralement une société de développement informatique, ayant intégré tout ou partie des API CentralPay dans sa propre plateforme technique. Il permet ainsi à ses clients disposant d’un compte CentralPay d’accéder aux services CentralPay dans le contexte de sa plateforme. L’intégrateur ne commercialise pas les services de CentralPay.Utilisateur BOPersonne physique disposant d’un accès à un ou plusieurs comptes CentralPay. Dispose d’un type « Legal » s’il est représentant légal du compte, sinon dispose d’un type « Natural ».Utilisateur APIEntité créée via la plateforme CentralPay permettant d’identifier l’utilisateur réalisant les appels API sur un compte CentralPay.Client / PayeurClient d’un marchand ou d’un partenaire ayant émis un paiement vers un compte CentralPay. Peut disposer d’un profil client CentralPay ou non.Frais CentralPayEnsemble des frais dus à CentralPay déduits des opérations correspondantes, prélevés sur un compte de commission dédié ou facturés en fin de mois.Devises ISODevises conventionnelles aux normes ISO 4217 (exemple : EUR, USD, CHF, GBP…)Devise CUSTOMDevise de Monnaie Électronique créée pour un Partenaire DME de CentralPay. La valeur de la devise CUSTOM est toujours adossée à celle d’une devise ISO comme l’EURO par exemple.Compte bancaireCompte bancaire externe lié à un compte CentralPay pour réaliser des reversements (payout) ou à un profil client pour réaliser des prélèvements SEPA.Il est représenté par l’objet « BankAccount » dans l’API CentralPay.Reversement bancaireVirement sortant d’un compte CentralPay vers un compte bancaire lié. Peut-être réalisé par SEPA ou SWIFT.Il est représenté par l’objet « Payout » dans l’API CentralPay.Transaction carteOpération de débit d’une carte bancaire, au crédit d’un compte CentralPay.Elle est représentée par l’objet « Transaction » dans l’API CentralPay.Transaction SCTOpération de réception d’un virement SEPA ou SWIFT, au crédit d’un compte CentralPay.Elle est représentée par l’objet « SctTransaction » dans l’API CentralPay.Transaction SDDOpération de débit d’un compte bancaire, au crédit d’un compte CentralPay.Elle est représentée par l’objet « SddTransaction » dans l’API CentralPay.
Webhooks Les webhooks permettent d’adresser des notifications HTTP sur les URL de votre choix en fonction des évènements (ou « Events ») qui surviennent sur votre compte CentralPay. Ces évènements correspondent à la création, au changement de donnée ou au changement de statut d’un objet des API CentralPay. Le service permet ainsi d’avertir en temps réel votre système d’information, dès qu’une opération est réalisée sur votre compte CentralPay. Par exemple, une transaction réussie ou échouée, la création d’une nouvelle souscription (abonnement), un nouveau client (Customer), la réception d’un impayé… Les webhooks sont classés en deux catégories : Liés aux Points de Vente « POS » Liés aux « Comptes » Le serveur distant doit confirmer la bonne réception de la requête en retournant un code 2XX. Dans le cas contraire, une nouvelle requête sera adressée toutes les 5 min pendant 2h. Pour s’assurer de la bonne réception des hooks, nous vous conseillons d’utiliser le service Webhook Site. Entrez l’URL donnée par le site et l’adresse mail, et effectuez vos tests. Une fois que vous êtes satisfait des réponses hooks, vous pouvez remplacer l’adresse mail et l’URL par les vôtres et effectuez un nouveau test. Consultez la liste des webhooks dans la rubrique : Développeurs Webhook notifications
Transférer des paiements Articles Informations générales Transfert indépendant Transfert via Transaction ou PaymentRequest Reversement bancaire pour tiers Retours, statuts et webhooks Informations générales La solution Easy Wallet permet aux plateformes d’encaisser des paiements et de les transférer à des tiers tout en respectant la réglementation européenne. Pour ce faire, le module comprend deux principaux services : L’inscription, permettant la création de comptes de paiement et de monnaie électronique pour les marchands ou participants d’une plateforme Le transfert, permettant le transfert des transactions vers ces comptes de paiement et de monnaie électronique Selon le modèle de partenariat CentralPay, les possibilités d’inscription et de transferts sont différentes. 1. Les types de transferts Selon le modèle de partenariat établi avec CentralPay, le transfert des paiements est réalisé différemment : Partenaires MOBSP : Vous devez utiliser le service de transfert via transaction Agents PSP : Vous pouvez utiliser le service de transfert libre ou transfert via transaction Distributeurs de ME : Vous devez utiliser le service de transfert via transaction pour la phase d’encaissement en devise. Ensuite, vous pouvez utiliser le service de transfert libre uniquement pour mouvementer la monnaie électronique entre les comptes de vos participants Pour connaitre votre modèle de partenariat, veuillez vous rapprocher de votre contact CentralPay. Transfert indépendant 🧾 Créer un transfert (Create a Transfer) La fonction Create a Transfer permet aux partenaires régulés (Agents ou DME, selon le type de compte) de transférer des fonds entre deux comptes de leurs sous-marchands (Participants). Ce transfert peut être initié : Par un Agent lorsque les wallets sont des comptes de paiement. Par un DME lorsque les wallets sont des comptes de monnaie électronique. Cas d’usage Ce mécanisme permet, par exemple : à un Agent d’orchestrer des reversements de fonds entre sous-marchands, ou vers des comptes destinataires définis ; à un DME d’opérer des transferts de monnaie électronique entre utilisateurs d’une place de marché. CentralPay reste en charge de l’exécution effective des opérations, dans le cadre de la relation contractuelle avec les sous-marchands. 📥 Paramètres requis ChampTypeObligatoireDescriptiondestinationWalletIdUUID✅Identifiant du wallet destinataire (appartenant à un sous-marchand).amountInteger (en cents)✅Montant du transfert. Doit être strictement supérieur à 0.sourceIdUUID✅ si sourceType est renseignéIdentifiant de la source de fonds (ex. : transaction, virement, crédit, SDD).sourceTypeEnum✅ si sourceId est renseignéSource du transfert : TRANSACTION, SCT_TRANSACTION, CREDIT, SDD. 🔧 Paramètres optionnels ChampTypeDescriptionemissionWalletIdUUIDWallet émetteur si différent du wallet principal du partenaire.currencyCode ISODevise du transfert (si différente de celle du wallet).feeIntegerMontant de la commission prélevée par le partenaire, déduite du montant. Par défaut : 0.escrowDateDate ISODate à partir de laquelle le transfert devient effectif. Peut être utilisée pour définir une période de blocage temporaire.merchantTransferIdStringRéférence métier du partenaire (max 100 caractères).transferGroupStringGroupe de rattachement pour regrouper plusieurs transferts.descriptionStringDescription libre (max 256 caractères).additionalDataKey/ValueDonnées complémentaires sous forme de paires clé/valeur (max 256 caractères par valeur).metaDataJSONMétadonnées complémentaires structurées.purposeCode / purposeMessageEnum / StringFinalité du transfert, selon une nomenclature standard. Voir la liste des codes. 🔒 Règles de validation Le destinationWalletId doit correspondre à un wallet valide d’un sous-marchand du partenaire. Le sourceId ne peut être utilisé que si l’objet lié est dans un statut accepté (CAPTURED, CLEARED, etc.). Le montant autorisé dépend du solde disponible ou des fonds liés à la source (transaction, virement, etc.). 🔄 Fonctions complémentaires liées aux transferts Les partenaires régulés (Agent ou DME) disposent de plusieurs fonctions de gestion post-création d’un transfert, leur permettant d’ajuster, consulter ou annuler une opération, sous conditions. 🛠 Modifier un transfert (Update a Transfer) Cette fonction permet de modifier certains paramètres d’un transfert existant, à condition qu’il ne soit pas encore exécuté (statut PENDING). Paramètres disponibles : ChampTypeObligatoireDescriptiontransferIdUUID✅Identifiant du transfert à modifier.merchantTransferIdString❌Référence partenaire.escrowDateDate ISO❌Nouvelle date d’exécution différée.transferGroupString❌Regroupement de transferts.descriptionString❌Description libre (max 256 caractères).additionalDataKey/Value❌Données complémentaires.metaDataJSON❌Métadonnées structurées. 💡 La modification de la date d’escrow est notamment utile dans les flux conditionnés (e.g. : marketplace, délais de rétractation…). ❌ Annuler un transfert (Cancel a Transfer) Un transfert peut être annulé tant qu’il n’a pas encore été exécuté (statut PENDING). Cette annulation est irréversible : l’opération apparaîtra comme CANCEL dans les historiques du wallet. Paramètres : ChampTypeObligatoireDescriptiontransferIdUUID✅Identifiant du transfert à annuler. ⚠️ Une fois que les fonds sont disponibles (TRANSFERRED), cette fonction n’est plus accessible. Il faudra alors utiliser un TransferReversal. 🔍 Consulter un transfert (Retrieve a Transfer) Permet d’obtenir l’ensemble des détails d’un transfert via son identifiant CentralPay. ChampTypeObligatoireDescriptiontransferIdUUID✅Identifiant du transfert. 📂 Rechercher plusieurs transferts (List Transfers) Permet de rechercher une liste de transferts selon plusieurs critères. Tous les paramètres sont optionnels. ParamètreTypeDescriptionmerchantTransferIdString (100)Référence partenaire.destinationWalletIdUUIDWallet destinataire.transferGroupStringGroupe de transferts.statusEnumPENDING, TRANSFERRED, CANCEL.after / beforeDate ISOFiltrer par date de création.limitIntegerNombre de résultats par page.pageIntegerIndex de la page de résultats. 🔁 Retourner un transfert exécuté (TransferReversal) Une fois un transfert exécuté (status = TRANSFERRED), il ne peut plus être annulé via la fonction Cancel. Il est alors nécessaire de passer par une opération dédiée appelée TransferReversal. Elle ne supprime pas le transfert d’origine : celui-ci reste visible, historisé et traçable. Cette fonction est accessible uniquement aux partenaires régulés (Agent pour les comptes de paiement, DME pour les comptes de monnaie électronique), et doit respecter les règles de disponibilité des fonds. ✅ Conditions d’utilisation Le transfert initial doit : Être dans le statut TRANSFERRED Avoir des fonds disponibles dans le wallet destinataire Ne pas avoir déjà été remboursé dans sa totalité via des opérations de reversal Le montant retourné doit être : Inférieur ou égal au solde disponible du wallet destinataire Inférieur ou égal à la somme initialement transférée Diminué des éventuels reversals déjà effectués sur le transfert concerné ▶️ Créer un TransferReversal Permet de retourner un montant vers le wallet émetteur d’origine. ChampTypeObligatoireDescriptiontransferIdUUID✅Identifiant du transfert d’origine.amountInteger✅Montant à rembourser (en centimes).merchantTransferReversalIdString❌Référence partenaire pour le suivi.refundFeeBoolean❌Indique si les frais du transfert initial sont remboursés (par défaut : true).feeInteger❌Montant des frais associés au reversal.descriptionString❌Texte libre explicatif (max. 256 caractères).escrowDateDate ISO❌Date d’exécution différée si applicable.additionalDataKey/Value❌Paires clé/valeur pour les besoins métier. 💡 Si le champ refundFee est défini à false, le montant des frais initiaux reste acquis et n’est pas restitué au Wallet source. ⚠️ Règles importantes L’opération est visible dans les mouvements du wallet (débit du wallet destinataire, crédit du wallet d’origine). Plusieurs reversals peuvent être effectués sur un même transfert, dans la limite du montant total initial. Si les fonds ne sont pas disponibles, l’appel est rejeté avec une erreur explicite (insuffisance de solde ou montant trop élevé). 🧩 Fonctions complémentaires (TransferReversal) Ces fonctions permettent de gérer et consulter les opérations de retour de transfert exécuté (TransferReversal), une fois créées. ✏️ Modifier un TransferReversal (Update) Permet de modifier certaines informations sur un TransferReversal déjà créé. ChampTypeObligatoireDescriptiontransferReversalIdUUID✅Identifiant du TransferReversal à modifiermerchantTransferReversalIdString❌Référence partenaire pour le suividescriptionString❌Texte explicatif libre (256 caractères max)escrowDateDate (ISO)❌Nouvelle date différée d’exécution, si applicableadditionalDataKey/Value❌Paires clé/valeur pour usage métier spécifique 🔒 Cette fonction est accessible uniquement au niveau PARTNER ou supérieur. 🔍 Consulter un TransferReversal (Retrieve) Permet de consulter les détails d’un TransferReversal à partir de son identifiant. ChampTypeObligatoireDescriptiontransferReversalIdUUID✅Identifiant du TransferReversal à consulter 🛈 L’objet retourné contient l’intégralité des informations métier, y compris : montant, date, statut, wallet concerné, et historique de l’opération. 📄 Rechercher des TransferReversals (List) Permet d’interroger l’historique des TransferReversal selon plusieurs critères. ParamètreTypeObligatoireDescriptionmerchantTransferReversalIdString❌Référence partenaireafterDate ISO❌Retourne les éléments créés après cette datebeforeDate ISO❌Retourne les éléments créés avant cette datelimitInteger❌Nombre d’éléments à retourner (par défaut : 10)pageInteger❌Index de la page à retourner (par défaut : 1) Cette fonction permet un suivi complet des opérations de reversal liées à une activité donnée, y compris les cas de multiples retours partiels. Transfert via Transaction ou PaymentRequest Contrairement aux transferts indépendants, réservés aux Agents (pour les comptes de paiement) et aux Distributeurs de Monnaie Électronique (DME) (pour les comptes de monnaie électronique), les transferts via transaction sont accessibles à l’ensemble des modèles de partenariat, y compris aux Partenaires Techniques non régulés. Dans ce cadre, le partenaire transmet à CentralPay, au moment de la création d’une transaction (par carte, virement ou prélèvement), des données commerciales contextualisées (ex. : montant du panier, commission, identifiants des wallets destinataires…) L’appel API ne crée pas directement le mouvement financier :👉 CentralPay instruit le transfert de manière autonome, après validation effective de la transaction (capture d’une opération carte, réception d’un virement, ou exécution d’un prélèvement SEPA). Le modèle de transfert conditionné permet de réaliser un mouvement de fonds à l’issue d’une transaction : carte, virement (SCT), ou prélèvement (SDD). Dans ce cas, le transfert est directement paramétré lors de la création de la transaction, via un champ dédié transfer[]. Cette méthode ne passe pas par l’endpoint /transfer, mais s’appuie sur les endpoints spécifiques des transactions concernées : /transaction pour les paiements par carte : Voir comment créer une transaction CARD ➝ /sctTransaction pour les virements reçus : Voir comment créer une transaction SCT ➝ /sddTransaction pour les prélèvements SEPA : Voir comment créer une transaction SDD ➝ /paymentRequest pour les demandes de paiement : Voir comment créer une demande de paiement ➝ Ce mode de fonctionnement garantit que les fonds sont uniquement transférés si la transaction est réussie. Le transfert devient alors une étape automatisée et synchronisée. ✅ Conditions d’utilisation Le transfert est créé en même temps que la transaction (pas d’appel distinct). Il n’est exécuté qu’en cas de succès de la transaction source. Il respecte les contraintes de la source (statut, solde disponible, date…). Il peut être instantané ou différé via le champ escrowDate. ▶️ Paramétrer un transfert dans une transaction Dans les quatres cas de figure, la logique est identique : un tableau transfer[] est renseigné dans le corps de la requête lors de l’appel POST de création de la transaction. Les champs acceptés dans transfer[] sont les suivants : ChampTypeObligatoireDescriptiondestinationWalletIdUUID✅Wallet bénéficiaire. Doit appartenir à un sous-marchand autorisé.amountInteger✅Montant du transfert en centimes.currencyString❌Devise du transfert (si différente de la devise de la transaction).merchantTransferIdString❌Référence partenaire.feeInteger❌Frais applicables (prélevés sur le montant brut).escrowDateDate ISO❌Date différée d’exécution (si applicable).transferGroupString❌Identifiant de groupe pour les suivis agrégés.descriptionString❌Libellé du transfert visible sur les relevés.additionalDataKV pairs❌Données métier structurées (clé/valeur). ⚠️ Les règles de disponibilité des fonds (notamment après délai de capture ou de validation) doivent être respectées. Si la transaction est annulée ou échoue, aucun transfert n’est déclenché. Reversement bancaire pour tiers Le reversement bancaire pour un tiers permet de transférer des fonds depuis un compte de paiement ou monnaie électronique CentralPay vers le compte bancaire d’un marchand (ou sous-marchand), en tant que partenaire Agent ou DME. Les partenaires techniques ou MOBSP n’ont pas accès à cette fonction. 1. Objectif et périmètre Ce service permet de : Déclencher des reversements manuels ou automatisés pour des sous-marchands ou des participants, Cibler un compte bancaire autorisé par le sous-marchand ou le participant, Utiliser un wallet CentralPay comme source des fonds. 📌 Le partenaire régulé reste à l’initiative technique du reversement, mais les fonds sont toujours détenus et transférés par CentralPay, qui conserve la responsabilité de l’exécution. 2. Méthodes disponibles 🔁 L’API CentralPay Endpoint : /payout/byThirdParty➡️ Voir détails ci-dessous. 🧑💼 Le Portail utilisateur CentralPay Accessible pour les comptes disposant des droits adéquats (Agent ou DME). Étapes : Accéder à Comptes liés. Sélectionner le marchand concerné. Accéder à l’onglet Comptes bancaires. Choisir le compte cible et déclencher le payout. 3. Endpoint API : /payout/byThirdParty Ce service permet d’envoyer une instruction à CentralPay pour reverser une somme définie vers un compte bancaire rattaché à un Participant. ✅ Limites d’usage 1 reversement / jour / Participant / devise. Compte bancaire cible validé par le Participant. Reversement uniquement sur fonds disponibles. 🔧 Paramètres API (BODY) ParamètreTypeRequisDescriptioncurrencyISO 4217✅ OuiDevise du reversement (doit correspondre au compte bancaire).destinationBankAccountIdUUID✅ OuiCompte bancaire bénéficiaire (lié au Participant).walletIdUUID❌ NonWallet source des fonds.amountInteger (en cents)❌ NonMontant à reverser. Si vide : solde maximum.merchantPayoutIdString❌ NonID de référence interne.descriptionString❌ NonTexte libre, visible dans le reporting.payoutReferenceString (max 35)❌ NonRéférence bancaire (visible sur l’opération bancaire).additionalDataMap❌ NonDonnées complémentaires (ex. : ID commande, segment, etc.).transitionWalletUUID❌ Non(cas avancé) wallet transitoire.customerIdUUID❌ NonIdentifiant client si cible non marchande. 4. Suivi des reversements Récupérer un payout Endpoint : /payout/byThirdParty/retrieveParamètre : payoutId (UUID) Lister les payouts Endpoint : /payout/byThirdParty/listParamètre : walletId (UUID) Statuts possibles : StatutSignificationPENDINGReversement en cours de traitementPAIDReversement exécuté avec succèsCANCELReversement annulé manuellement 5. Contraintes réglementaires Seuls les Agents et Distributeurs de Monnaie Électronique (DME) déclarés à l’ACPR via CentralPay peuvent initier ces reversements. Les partenaires doivent garantir que les données envoyées sont conformes à leur cadre contractuel et réglementaire. CentralPay se réserve le droit de refuser un reversement ou d’exiger des documents justificatifs en cas de doute sur l’opération. Retours, statuts et webhooks 1. Codes de retour liés aux transferts Les transferts réalisés via l’API CentralPay (objet Transfer ou Transfer Reversal) sont des opérations internes entre deux porteurs de comptes CentralPay (ex. : marchands, clients, partenaires). Ces opérations sont exécutées de manière synchrone ou quasi-immédiate. Contrairement aux transactions cartes ou virements bancaires, il n’y a pas de codes de retour bancaire associés à ces transferts internes. En cas d’échec, l’API retourne une erreur HTTP décrivant la cause du rejet (ex. : solde insuffisant, compte inactif, devise incompatible…). Ces erreurs ne sont pas des statuts métier, mais des contrôles d’entrée empêchant la création du transfert. Une fois le transfert accepté, il suit un cycle de vie propre. 2. Statuts liés aux transferts Consultez les Statuts Transfer ➝ Consultez les Statuts Transfer Reversal ➝ Consultez les Statuts Payout (valables également pour PayoutByThirdParty) ➝ 3. Webhooks liés aux transferts Consultez les Webhooks Transfer ➝ Consultez les Webhooks Transfer Reversal ➝ Consultez les Webhooks Payout (valables également pour PayoutByThirdParty) ➝
Plugin CMS Articles WooCommerce PrestaShop Magento WooCommerce Ce guide vous accompagne dans l’installation, la configuration et l’utilisation du plugin de paiement CentralPay pour WooCommerce (WordPress). ℹ️ La plateforme CentralPay prend en charge différents moyens de paiement (carte, virement SEPA, prélèvement SEPA, initiation de paiement) et plusieurs modes de paiement (paiement en une fois, abonnement, en plusieurs fois, etc.). Ce plugin WooCommerce permet uniquement l’encaissement de transactions cartes unitaires. Si vous souhaitez demander une évolution du plugin, rendez-vous sur https://support.centralpay.com : Support & Paramétrage Suggérer une nouvelle fonctionnalité 1. Téléchargement du plugin Téléchargez l’archive ZIP du plugin CentralPay en cliquant ici. Vous ne devez pas la décompresser manuellement. 2. Installation sur WordPress Connectez-vous à votre interface d’administration WordPress Allez dans Extensions > Ajouter Cliquez sur Téléverser une extension Sélectionnez le fichier centralpay220.zip et cliquez sur Installer maintenant Une fois l’installation terminée, cliquez sur Activer l’extension 3. Configuration du module Allez dans WooCommerce > Réglages > Paiements Cliquez sur CentralPay pour accéder à la configuration Renseignez les champs suivants puis cliquez sur Enregistrer les modifications : ChampDescriptionAccès à la donnéeIdentifiant marchandIl s’agit de votre Merchant Public Key. Ne pas confondre avec le Merchant UUID.Portail utilisateur CentralPay > Administration > Technique > Copier « Merchant Public Key »Login APIIdentifiant de votre utilisateur API CentralPayPortail utilisateur CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »Mot de passe APIMot de passe de votre utilisateur API CentralPayPortail utilisateur CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Modifier > Générer un mot de passe > Copier le mot de passe > cliquer sur « Mettre à jour »ID du point de venteIdentifiant unique de votre point de vente (UUID)Portail utilisateur CentralPay > Configuration > Points de ventes > Copiez l’ID du point de vente concernéMode test / productionActivez le mode test si vous souhaitez utiliser l’environnement sandbox (les logins et identifiants doivent être ceux de votre compte de test CentralPay)./URL de redirectionRedirige vos clients vers une page personnalisée après paiement sur notre formulaire.Renseignez l’URL de votre page de confirmation de paiement. 4. Statut de commande Le plugin WooCommerce de CentralPay intègre automatiquement une URL de retour (return_url) dans le lien du formulaire de paiement. Cette URL permet de rediriger le client vers la page de confirmation de commande (/checkout/order-received/) et d’actualiser le statut de la commande en fonction du résultat du paiement. Si le client final ferme la fenêtre de paiement avant d’être redirigé, la mise à jour de la commande peut ne pas se déclencher correctement côté WooCommerce. Pour garantir la mise à jour fiable du statut de commande, nous recommandons de mettre en place un Hook (callback serveur à serveur) dans votre Backoffice CentralPay. Étapes de configuration : Accédez à :Production : https://backoffice.centralpay.net/admin/hook/Test : https://test-backoffice.centralpay.net/admin/hook/ Créez un Hook avec les paramètres suivants : Événement : Point de Vente > TRANSACTION_SUCCEDEED Affecté au Point de Vente : sélectionnez votre Point de Vente WooCommerce URL : https://votre-site-woocommerce.com/?wc-api=cpay_validation (Remplacez par l’URL de votre site WooCommerce.) Sauvegardez le Hook. Le paramètre /?wc-api=cpay_validation est nécessaire pour que le plugin WooCommerce de CentralPay reconnaisse la notification et déclenche la mise à jour du statut de la commande. Cette configuration doit être réalisée à la fois dans votre environnement de test et sur votre compte de production. 5. Personnalisation du logo Vous pouvez également personnaliser l’interface de paiement en ajoutant le logo de votre site via le Backoffice : Accédez à : https://backoffice.centralpay.net/admin/point_of_sale/ Dans le détail de votre Point de Vente, cliquez sur Modifier Importez votre logo dans la section Logo Ce logo sera affiché directement dans le formulaire de paiement pour une expérience utilisateur plus cohérente. 6. Mode test Activez le mode test dans la configuration (attention, vous devez disposer d’un compte de test CentralPay et renseigner les identifiants de ce compte de test) Utilisez les cartes de test fournies par CentralPay pour simuler des paiements Vérifiez le bon fonctionnement : Du formulaire de paiement Des redirections Des statuts de commande 7. Suivi des paiements Retrouvez tous vos paiements dans WooCommerce > Commandes Le plugin CentralPay met à jour automatiquement les statuts des commandes En cas de besoin, un journal des événements est disponible dans le fichier error.log du plugin 8. Langues disponibles Le plugin est disponible en : 🇫🇷 Français 🇬🇧 Anglais Vous pouvez modifier ou ajouter vos propres traductions via les fichiers .po présents dans le dossier /languages, ou en utilisant un plugin comme Loco Translate. 9. Désinstallation Pour désinstaller le plugin : Désactivez-le via le menu des extensions Cliquez sur Supprimer Le script de désinstallation supprimera les paramètres du plugin 10. Support Pour toute question ou assistance, contactez notre support technique depuis https://support.centralpay.com.Merci d’indiquer votre identifiant marchand, l’URL de votre site et le plus de détails possible sur votre besoin. PrestaShop La solution CentralPay propose un module d’encaissement par carte bancaire pour les boutiques Prestashop. Deux versions du module sont disponibles selon la version de votre CMS : Pour Prestashop 1.6 ➝ Télécharger le module 1.6 Pour Prestashop 1.7 ➝ Télécharger le module 1.7 1. Installation du module Prestashop v1.6 Connectez-vous au back-office Prestashop. Menu Modules > Modules. Cliquez sur « Ajouter un nouveau module ». Chargez l’archive .zip puis cliquez sur « Installer ». Prestashop v1.7 Connectez-vous à l’administration de Prestashop. Menu Modules > Modules Manager > Upload a module. Déposez l’archive .zip ou cliquez pour la charger. Terminez l’installation en suivant l’assistant. 2. Configuration du module Après installation, accédez à la page de configuration du module : Modules > Modules installés > CentralPay > Configurer Les champs suivants sont requis : ChampDescriptionOù trouver cette information ?Merchant Public KeyClé publique d’authentification APIPortail utilisateur CentralPay > Administration > Technique > Copier « Merchant Public Key »Login APIIdentifiant de votre utilisateur API CentralPayPortail utilisateur CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »Secret Key (passeword API)Clé secrète API (à ne jamais diffuser)Portail utilisateur CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Modifier > Générer un mot de passe > Copier le mot de passe > cliquer sur « Mettre à jour »ID du point de venteIdentifiant unique de votre point de vente (UUID)Portail utilisateur CentralPay > Configuration > Points de ventes > Copiez l’ID du point de vente concernéEndpointURL de l’API CentralPayEn environnement de test : https://test-api.centralpay.net/En production : https://api.centralpay.net/DeviseDevise des paiements acceptésÀ configurer selon la boutique (EUR recommandé)Mode de paiementMode d’intégration technique du paiementLaisser la valeur par défaut « Direct Post »Affichage du formulaireAffichage du formulaire sur page dédiée ou dans la page panierChoisir l’affichage souhaité (conseillé : page dédiée pour la sécurité)Statut de commande après paiement réussiStatut que prendra la commande après une validation du paiement« Paiement accepté » (ou tout autre statut configuré dans Prestashop) ⚠️ Veillez à bien copier-coller la Merchant Public Key sans espaces ni caractères parasites. 3. Fonctionnement Lorsqu’un client choisit CentralPay comme moyen de paiement : Il est redirigé vers une page sécurisée (hébergée ou intégrée). Il saisit ses informations de carte bancaire. Le paiement est autorisé par la banque (3D Secure inclus). La commande est validée dans Prestashop avec le statut défini. Un webhook notifie automatiquement CentralPay et Prestashop de l’issue du paiement. 4. Mode test / production En mode test, vous pouvez utiliser les cartes de test disponibles dans la documentation développeur. En mode production, seuls les marchands activés (KYC validé) peuvent encaisser. Le switch de mode s’effectue en modifiant l’Endpoint dans la configuration du module. 5. Support Pour toute question : Contactez le support CentralPay via le Portail utilisateur > Aide & Support. Ou directement via support.centralpay.com Magento 📦 1. Téléchargement du module Téléchargez le plugin CentralPay pour Magento à partir du lien suivant : 👉 Télécharger le plugin Magento CentralPay (v1.0) Ce module est compatible avec Magento 1.7+ ⚙️ 2. Installation du plugin A. Décompresser l’archive Décompressez le fichier .zip téléchargé. Vous obtiendrez les dossiers suivants : app/ js/ skin/ centralpay.sql (fichier SQL à exécuter) B. Copier les fichiers Copiez l’ensemble des dossiers (app, js, skin) à la racine de votre instance Magento. Ils viendront automatiquement s’intégrer dans l’arborescence existante. C. Exécuter le script SQL Exécutez le fichier centralpay.sql sur la base de données de votre site Magento. 💡 Utilisez phpMyAdmin ou tout autre outil de gestion de base pour importer ce fichier.⚠️ Pensez à sauvegarder votre base avant exécution. 🔧 3. Configuration du module Une fois le module installé, connectez-vous à votre interface d’administration Magento pour renseigner les paramètres CentralPay. A. Accéder à la configuration Dans le menu d’administration Magento, rendez-vous dans :Stores > Configuration > Sales > Payment Methods > CentralPay B. Paramètres à renseigner Champ dans MagentoDescriptionObligatoireAccès à la donnéeActiver CentralPayActive le module dans l’environnement Magento.✅MagentoTitreNom du moyen de paiement visible côté client.✅MagentoIdentifiant Marchand (merchantLogin)Identifiant d’API fourni par CentralPay.✅Portail utilisateur CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »Mot de passe API (merchantPassword)Mot de passe API associé à l’identifiant.✅Portail utilisateur CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Modifier > Générer un mot de passe > Copier le mot de passe > cliquer sur « Mettre à jour »Clé publique Marchand (merchantPublicKey)Clé de chiffrement utilisée pour sécuriser les données de carte.✅Portail utilisateur CentralPay > Administration > Technique > Copier « Merchant Public Key »ID du point de venteIdentifiant unique de votre point de vente (UUID)❌Portail utilisateur CentralPay > Configuration > Points de ventes > Copiez l’ID du point de vente concernéURL de retour (returnUrl)Permet de rediriger le client vers Magento après paiement. Peut être laissé vide pour utiliser la redirection automatique.❌MagentoMode Test (sandbox)Permet d’utiliser l’environnement de test CentralPay.❌MagentoCommande en attenteStatut Magento utilisé si le paiement est en cours ou en attente (ex. : 3DS).❌MagentoCommande validéeStatut Magento utilisé si le paiement est accepté.❌Magento 🧪 4. Mode test et environnement de recette Le module propose une option de sandbox activable dans l’administration Magento. 🧪 Utilisez l’environnement sandbox CentralPay pour simuler des paiements avant passage en production. N’oubliez pas d’utiliser les identifiants API de test (login, password, clé publique) fournis par CentralPay. 💳 5. Expérience client Le client ajoute ses articles au panier et passe à la caisse. Au moment du paiement, il choisit CentralPay comme méthode de paiement. Il est redirigé vers l’interface de paiement CentralPay sécurisée. Une fois le paiement effectué (ou refusé), il est redirigé vers votre site Magento. Le statut de la commande est mis à jour automatiquement. 🧾 6. Suivi des paiements Depuis Magento : vous pouvez consulter le statut des commandes et des paiements dans le back-office standard. Depuis CentralPay : toutes les opérations sont également visibles dans votre interface CentralPay (transactions, remboursements, rejets, etc.). 🆘 7. Support technique Pour toute question : Consultez la documentation technique CentralPay : docs.centralpay.com Contactez notre support : support.centralpay.com 🔧 Assistance disponible en français et en anglais.
Informations générales Articles Contacter CentralPay > L'établissement CentralPay Ouvrir un compte CentralPay Glossaire API et interfaces Modèles contractuels Tarifs Logos et visuels Contacter CentralPay > CentralPay s’emploie à une croissance saine, permettant à nos utilisateurs d’être quotidiennement accompagnés par des équipes stables et expertes dans leur domaine (conformité, monétique, sécurité…). Ainsi, nos services client et support sont joignables du lundi au vendredi depuis l’espace « Aide & Support » de votre Portail utilisateur, par email ou par visioconférence sur rendez-vous. 1. Avant d’adresser une demande technique Quelques points que vous pouvez vérifier préalablement : Authentification : Êtes-vous correctement authentifié ? Environnement : Êtes-vous sur le bon environnement du Portail utilisateur et de l’API (RCT ou PROD) ? Autorisation : Avez-vous les autorisations nécessaires pour réaliser cette opération ? L’erreur HTTP 403 signale une erreur d’autorisation. Erreur HTTP : Consultez la signification des codes d’erreurs HTTP CentralPay. Si vous recevez un code erreur HTTP 500, veuillez contacter immédiatement le support technique. 2. Informations à communiquer pour toutes demandes techniques Les dates et heures précises des évènements concernés Le lien (URL) de la page concernée Une ou des capture(s) d’écran, idéalement une vidéo (Cloudapp permet de faire une vidéo d’une page du navigateur Google Chrome) Un UUID (ou id) de l’opération concernée et son type (transaction carte, remboursements, demande de paiement…) L’environnement sur lequel vous travaillez (recette RCT ou production PROD) Une description précise du problème rencontré ou de votre interrogation Ces informations nous permettrons de vous accompagner et d’analyser votre situation plus efficacement. Vos demandes seront traitées de façon prioritaire si elles sont envoyées depuis l’espace « Aide et Support » du Portail Utilisateur : Portail Utilisateur de RCT – Aide et support Portail Utilisateur de PROD – Aide et support L'établissement CentralPay Certifications et agréments CentralPay propose des solutions de paiement modulaires permettant l’unification des flux d’encaissement pour compte propre et l’automatisation des reversements pour le compte de tiers. La typologie de services et d’opérations proposées par CentralPay varie en fonction des besoins et de l’activité de ses marchands et partenaires. CentralPay est une société indépendante, entièrement propriétaire de sa technologie et de ses agréments. Garantissant la meilleure autonomie possible dans ses choix de partenariats et de son évolution. CentralPay est autorisé à entrer en relation d’affaires avec les entreprises enregistrées dans l’Espace Économique Européen. ACPR (Banque de France)Établissement de Monnaie Électronique : CentralPay est un Établissement de Monnaie Électronique régulé par la Banque de France à travers son autorité de contrôle prudentiel et de résolution, l’ACPR (CIB 17138).DSP2 : CentralPay est conforme à la 2ème Directive sur les Services de Paiements qui impose notamment des exigences en matière d’authentification forte et de protection des données.PCI-DSS : CentralPay obtient annuellement la certification la plus élevée possible en matière de sécurisation des données bancaires et prévention de la fraude ; la norme PCI DSS de niveau 1.EBA CLEARING & EPC : En qualité de membre de l’European Payment Council et sa connexion à l’EBA CLEARING, CentralPay intègre les schémas européens des règlements SEPA afin d’émettre et de recevoir des virements et des prélèvements depuis ses propres IBAN et IBAN virtuels.SWIFT : Connecté au réseau SWIFT, messagerie la plus acceptée à l’échelle mondiale, CentralPay est en mesure d’échanger des flux financiers internationaux avec la plupart des banques et des institutions financières participantes.Visa, Mastercard, Cartes bancaires, American Express : CentralPay est accrédité auprès des grands réseaux de cartes, afin d’optimiser les parcours et la conversion des paiements de tous ses utilisateurs. Sécurité et hébergement CentralPay exploite ses services depuis deux Datacenter français. Les équipements et services exploités sur ces deux sites sont entièrement redondés. 1. Un hébergement hautement résilient Deux Datacenter de conception TIER III basés à Tours Environnement actif/actif entre les deux sites Des engagements contractuels (SLA) de 99.9 % Des normes reconnues : ISO27001, PCI-DSS, Code of Conduct 2. Une infrastructure garante de la sécurité de vos données Cœur de réseau allant jusqu’à 10 Gb/s Réseau électrique entièrement redondé, densité électrique allant de 600 mA à 32 A Système de contrôle d’accès avec double authentification (badge & code personnel) Vidéo-surveillance et alarme reliée 24h/7j à notre télésurveillance Système d’extinction d’incendie par aérosol FirePro Engagements de disponibilité CentralPay garantit une disponibilité annuelle de ses services (SLA & PCA) selon les barèmes suivants : CPAY APITraitement des opérations de paiementCPAY PORTALSPortails d’inscription, client et utilisateur99,9 %sur une base annuelle99,5 %sur une base annuelleLe critère d’atteinte de cette garantie correspond à la disponibilité de l’API de paiement.Le critère d’atteinte de cette garantie correspond à la disponibilité des portails de l’environnement de production. Évolution de la plateforme Les API de CentralPay reposent sur une architecture en micro services apportant un maximum de flexibilité. Notre approche modulaire permet de faire constamment évoluer nos solutions afin d’apporter toujours plus de services et de fonctionnalités. Ces évolutions sont réalisées après des analyses d’impact poussées afin de ne pas provoquer de changement dans les intégrations de nos utilisateurs. Dans de très rares cas, celles-ci peuvent appeler des modifications mineures ou plus importantes lorsque des changements de régulations surviennent, comme ce fut le cas pour l’évolution vers la version 2.0 du 3DS par exemple. En cas d’évolution de la plateforme ou de modifications des attentes concernant la consommation de ses APIs, CentralPay s’engage à vous prévenir dans un délai correspondant à l’ampleur des actions à mener : Modifications mineures nécessitant aucune action du marchand ou partenaire :Remise d’information simple Modifications mineures avec action nécessaire par le marchand ou partenaire :2 mois minimum de délai de prévenance + accompagnement à la réalisation Modifications majeures avec action nécessaire par le marchand ou partenaire :6 mois minimum de délai de prévenance + accompagnement à la réalisation À noter que les modifications nécessitant une action de nos marchands ou partenaires sont qualifiées d’exceptionnelles à inexistantes et que toutes les précautions sont prises pour éviter tout impact sur leur activité. Ouvrir un compte CentralPay Parcours d'entrée en relation CentralPay propose plusieurs modes d’entrée en relation, selon votre situation : Vous êtes un marchand en relation directe avec CentralPay ; Vous êtes un partenaire technologique ou commercial ; Vous êtes un marchand rattaché à un partenaire utilisant la solution CentralPay. 👉 Ce guide détaille les différentes étapes, selon votre profil. Certaines étapes peuvent être adaptées ou simplifiées selon les modalités de votre intégration. 🔹 Marchands en direct ou partenaires Le parcours d’entrée en relation comporte six étapes principales. 1. 🧭 Qualification de votre projet Nos équipes commerciales échangent avec vous pour analyser votre projet : Parcours de paiement envisagé (web, mobile, point de vente, récurrent…), Moyens de paiement souhaités (carte, virement, SEPA, Pay By Bank…), Méthodes d’intégration (API, portail, connecteur), Typologie de vos clients finaux (B2B, B2C, abonnements…), Volumétrie estimée (fréquence et montants). 2. 🔎 Pré-analyse conformité de votre projet Sur la base des informations fournies, notre service conformité effectue une pré-analyse réglementaire visant à : Vérifier la compatibilité de votre activité avec notre cadre réglementaire, Identifier les points de vigilance potentiels (secteur sensible, flux complexes…), Prédéfinir les éventuelles garanties ou conditions particulières. 3. 🖋️ Signature du contrat cadre Une fois cette pré-analyse validée, vous êtes invité à signer le contrat cadre de services de paiement ou de monnaie électronique. 🔗 Voir le contrat cadre de services de paiement Un représentant légal peut désigner un mandataire pour signer à sa place (modèle de délégation disponible sur demande). 4. 🧑💻 Lancement de l’intégration Après signature du contrat : Vous recevez vos accès à l’environnement de test, Vous accédez aux documentations techniques CentralPay. 📌 Si vous bénéficiez d’un accompagnement personnalisé, une réunion d’onboarding est organisée pour configurer vos premiers paramétrages (notifications, reversements, droits utilisateurs, etc.). 5. 🧾 Création du compte CentralPay Le représentant légal reçoit un lien d’inscription sécurisé pour créer le compte : Il complète les informations juridiques, Il valide les Conditions Générales d’Utilisation, L’analyse de conformité complète est alors déclenchée. 🛡️ Cette analyse peut donner lieu à : Des demandes de documents complémentaires (KYC/KYB, contrats, justificatifs…), Un refus d’ouverture si les critères réglementaires ne sont pas remplis, Une validation du compte, menant à son ouverture. 6. ✅ Mise en production Une fois l’ensemble des étapes validées, y compris l’intégration et les éventuelles factures initiales : Une date de mise en production est convenue, Votre compte est débloqué, Vous pouvez encaisser vos premières transactions. 🔹 Marchands liés à un partenaire Si vous êtes un marchand intégré via un partenaire technologique ou commercial de CentralPay, le parcours est simplifié. Vous entrez directement à l’étape 5 : Création du compte CentralPay. ➤ Étape unique : Création du compte et validation réglementaire Vous recevez un lien d’inscription transmis par votre partenaire ou directement par CentralPay. Ce lien vous permet de : Compléter les informations relatives à votre structure, Décrire précisément votre activité, la typologie de vos clients finaux et la volumétrie estimée de vos opérations, Valider les Conditions Générales d’Utilisation et signer le contrat cadre. 💡 Les aspects techniques (intégration, parcours, moyens de paiement) sont déjà définis dans le cadre de la convention signée avec votre partenaire.L’analyse de conformité complète de CentralPay reste obligatoire avant validation du compte. Pièces justificatives : KYC / KYB Introduction Cette page présente les documents que CentralPay est susceptible de demander à ses utilisateurs et partenaires lors de l’ouverture d’un compte. Les pièces à fournir varient selon : Le type de structure (particulier, société, association, organisme public…) Le profil de risque (faible, moyen, élevé) Le type d’activité exercée. Ces exigences répondent aux obligations réglementaires en matière de lutte contre le blanchiment des capitaux et le financement du terrorisme (LCB-FT). 📝 1. Documents communs (socle KYC) Quel que soit le profil, les documents de base à fournir sont : Une pièce d’identité valide : Utilisateur de l’Espace Economique Européen (EEE) : Carte Nationale d’Identité (CNI), passeport, carte de séjour. Récépissé de renouvellement de titre de séjour (accompagné du titre de séjour périmé) accepté pour les utilisateurs « personnes physiques ». Récépissé de demande de 1er titre de séjour non accepté. Utilisateur hors EEE : uniquement le passeport (passeports issus d’un pays sur liste noire GAFI non acceptés) Un justificatif de domicile de moins de 3 mois : Facture d’énergie ou d’eau (moins de 3 mois). Facture de téléphonie fixe / box internet (moins de 3 mois). Avis d’imposition, taxe foncière ou d’habitation (moins de 3 mois). Quittance de loyer d’un organisme public (moins de 3 mois). Attestation d’hébergement accompagnée de : Pièce d’identité de l’hébergeur. Justificatif de domicile de l’hébergeur (moins de 3 mois). Pour les clients étrangers : Extrait de relevé bancaire de moins de 3 mois. Relevé d’Identité Bancaire (RIB) au nom du client. Déclaration de l’activité exercée et des canaux de commercialisation. Des documents complémentaires peuvent être demandés selon le niveau de risque et l’activité. 🧩 2. Exigences selon le type d’utilisateur 📊 Personnes Physiques (KYC) Type d’utilisateurDocuments systématiquesDocuments complémentaires demandés selon risque / activitéPersonne Physique (🇫🇷 et 🌍)➡️Un document d’identité valide : ↳ CNI (🇪🇺)↳ Passeport↳ Carte de séjour (🇪🇺)↳ Récépissé de renouvellement de titre de séjour, accompagné du titre de séjour périmé (🇪🇺)➡️RIB (Relevé d’Identité Bancaire) à son nom➡️ Déclaration d’activité et de revenus ➡️ Justificatif de domicile (<3 mois)➡️ Justificatifs de revenus : fiche de paie, relevé bancaire, avis d’imposition ➡️ Pour activité de location : taxe foncière ou titre de propriété, attestation de propriétéPersonne Physique (🇫🇷 et 🌍)via workflow d’inscription automatique➡️Un document d’identité valide : ↳ CNI (🇪🇺)↳ Passeport↳ Carte de séjour (🇪🇺)↳ Récépissé de renouvellement de titre de séjour, accompagné du titre de séjour périmé (🇪🇺)➡️Un premier chargement du compte depuis un moyen de paiement dont l’utilisateur est titulaire (virement bancaire ou carte)➡️ RIB (Relevé d’Identité Bancaire) à son nom en cas de premier chargement par carte (pour réaliser des reversements SEPA)➡️ Déclaration d’activité et de revenus ➡️ Justificatif de domicile (<3 mois)➡️ Justificatifs de revenus : fiche de paie, relevé bancaire, avis d’imposition ➡️ Pour activité de location : taxe foncière ou titre de propriété, attestation de propriété 🏢 Personnes morales (KYB) Qui peut créer un compte pour une entreprise ? La création d’un compte CentralPay pour une société, association ou toute autre personne morale doit être réalisée par l’un de ses dirigeants officiellement enregistrés (ex. : gérant, président), figurant dans un registre officiel (type extrait Kbis ou équivalent). Le dirigeant peut toutefois désigner une autre personne (mandataire) pour effectuer la création du compte à sa place. Dans ce cas : Une délégation de pouvoir rédigée par le dirigeant ou, à défaut, le modèle de procuration CentralPay devra être complété et signé. Lors du processus de création, les documents suivants seront requis : La pièce d’identité du mandataire ; La pièce d’identité du dirigeant (mandant). 💡 Ce dispositif permet de sécuriser la procédure tout en vous offrant une gestion souple et conforme à la réglementation. Cas particulier : société dirigée par une autre société Si la société pour laquelle le compte est créé est elle-même dirigée par une autre personne morale, CentralPay doit identifier toutes les entités intermédiaires, jusqu’à la personne physique exerçant un contrôle effectif (ex. : détention de plus de 25% du capital). Dans ce cadre : Des documents KYC/KYB seront demandés pour chaque société intermédiaire ; La personne physique réalisant l’enrôlement doit figurer sur un registre officiel, ou fournir une délégation de pouvoir valide ou une procuration CentralPay signée. Type d’utilisateurDocuments systématiquesDocuments complémentaires demandés selon risque / activitéCompte en indivision (🇫🇷) ➡️CNI / Passeport de tous les indivisaires➡️ Acte d’indivision➡️ Autorisation de gestion ou location signée par tous les indivisaires➡️ RIB au nom de l’indivision➡️ Justificatif de revenus➡️ Historique bancaire➡️ Contrôle des revenus à 33% max➡️ Documents supplémentaires en cas d’activité jugée importanteAuto-entreprise (🇫🇷 et 🌍)➡️ CNI / Passeport➡️ Identification de l’entité :↳ 🇫🇷 : Numéro de SIRENE (récupération automatique du KBIS auprès du greffe)↳ 🌍 : Extrait d’immatriculation (registre local)➡️ RIB de l’auto-entreprise➡️ Avis d’imposition ou justificatif de domicile ➡️ Déclaration d’activitéAssociation loi 1901 (🇫🇷)➡️ CNI / Passeport du Président➡️ Statuts de l’association (certifiés conforme <3 mois)➡️ PV d’Assemblée Générale (PV AG)➡️ Immatriculation ↳ RNA ou SIRENE↳ ou à défaut avis de situation au répertoire SIRENE ou déclaration préfectorale➡️ RIB de l’association➡️ RBE – Registre des Bénéficiaires Effectifs (BE = Administrateurs, trésorier, secrétaire général)↳ ou déclaration équivalente signée par le Président Organisme public (🇫🇷) : Mairie/Département/Région)➡️ CNI / Passeport du représentant➡️ Numéro de SIRENE (récupération automatique du KBIS auprès du greffe) ↳ ou à défaut Avis SIRENE / Infogreffe➡️ RIB au nom de l’organismeSociété cotée / agréée (🇫🇷 et 🌍)➡️ CNI / Passeport du représentant➡️ Identification de l’entité :↳ 🇫🇷 : Numéro de SIRENE (récupération automatique du KBIS auprès du greffe)↳ 🌍 : Extrait d’immatriculation (registre local ou INSEE pour activité libérale)➡️ RIB de la société➡️ Statuts et objet social (<3 mois)Société française (🇫🇷) : SAS, SARL, etc. ➡️ CNI / Passeport du représentant➡️ Identification de l’entité :↳ 🇫🇷 : Numéro de SIRENE (récupération automatique du KBIS auprès du greffe)↳ Si informations non accessibles, extrait d’immatriculation (KBIS)➡️ RIB de la société➡️ RBE (Registre des Bénéficiaires Effectifs, via INPI, CERFA ou Statuts certifiés conformes de <3 mois)➡️ Justificatif de domicile du représentant et des BE ‣ Avis d’imposition du représentant➡️ CNI/Passeport des Bénéficiaires Effectifs (>25% capital) ➡️ Statuts certifiés conformes de <3 mois➡️ Documents sur société mère si contrôle étrangerSociété européenne ou étrangère (🌍)➡️ CNI / Passeport du représentant➡️ Extrait d’immatriculation locale (équivalent KBIS – traduction assermentée demandée si le document n’est pas présenté en alphabet latin)➡️ RIB de la société➡️ RBE local (Registre des Bénéficiaires Effectifs) ou déclaration certifiée conforme <3 mois➡️ Statuts certifiés conforme <3 mois (traduction assermentée demandée si le document n’est pas présenté en alphabet latin) ➡️ Justificatifs de domicile (<3 mois) des BE et représentants 📄 3. Formats de fichiers acceptés et exigences techniques ✅ Formats de fichiers acceptés Pour garantir la lisibilité et le bon traitement de vos documents, nous acceptons uniquement les formats suivants : PDF : recommandé pour les documents multipages (ex : avis d’imposition, statuts) et les Relevés d’Identités Bancaires (RIB). JPEG / JPG / PNG / PDF : pour les photos d’identité, captures d’écran ou documents scannés. 📏 Poids et résolution des fichiers Taille maximale par fichier : 10 Mo. Résolution minimale recommandée : 300 DPI. Pour les photos prises avec un smartphone : privilégiez le mode « document » ou « scanner » si disponible. 🚫 Documents non acceptés Les documents suivants seront systématiquement refusés : Documents expirés. Photos floues, mal cadrées ou illisibles. Documents coupés ou tronqués (informations ou bords manquants). Scans en noir et blanc. Fichiers compressés ou d’archives (.zip, .rar…). Documents retouchés ou modifiés numériquement. ℹ️ Conseils pour une soumission réussie Vérifiez la netteté et la lisibilité avant l’envoi. Évitez les reflets et ombres sur les documents photographiés. Adressez des copies numériques en couleur (scan ou photo nette). N’envoyez pas de documents à travers des captures d’écran d’ordinateur. Assurez-vous que le document est à jour et en cours de validité. Pays autorisés CentralPay et ses partenaires sont autorisés à entrer en relation d’affaires et à ouvrir des comptes de paiement ou de Monnaie Électronique pour des personnes physiques ou morales résidant ou établies dans les pays suivants : 🌐 Zone🏳️ Pays ou territoireEspace Économique Européen🇩🇪 Allemagne🇦🇹 Autriche🇧🇪 Belgique🇧🇬 Bulgarie🇨🇾 Chypre🇭🇷 Croatie🇩🇰 Danemark🇪🇸 Espagne🇪🇪 Estonie🇫🇮 Finlande🇫🇷 France🇬🇵 Guadeloupe🇬🇫 Guyane française🇲🇶 Martinique🇾🇹 Mayotte🇵🇫 Polynésie française🇷🇪 La Réunion🇧🇱 Saint-Barthélemy🇲🇫 Saint-Martin (partie française)🇵🇲 Saint-Pierre-et-Miquelon🇼🇫 Wallis-et-Futuna🇬🇷 Grèce🇭🇺 Hongrie🇮🇪 Irlande🇮🇸 Islande🇮🇹 Italie🇱🇻 Lettonie🇱🇹 Lituanie🇱🇮 Liechtenstein🇱🇺 Luxembourg🇲🇹 Malte🇳🇴 Norvège🇳🇱 Pays-Bas🇵🇱 Pologne🇵🇹 Portugal🇨🇿 République tchèque🇷🇴 Roumanie🇸🇰 Slovaquie🇸🇮 Slovénie🇸🇪 SuèdeAutres pays autorisés🇬🇧 Royaume-Uni🇨🇭 Suisse 📝 Remarques L’ouverture de compte est conditionnée à l’analyse du dossier par les équipes conformité. Pour les territoires d’outre-mer, l’éligibilité s’applique uniquement aux zones sous souveraineté française. Activités interdites Pour garantir la conformité réglementaire, la sécurité des opérations et la réputation de ses services, CentralPay interdit formellement certaines activités. Toute personne ou entité souhaitant ouvrir un compte CentralPay doit s’assurer que son activité est conforme aux exigences ci-dessous. L’exercice de l’une des activités suivantes peut entraîner le refus d’entrée en relation, la suspension du compte ou sa clôture immédiate. ❌ Activités interdites de manière absolue CatégorieExemples d’activités interditesActivités illicitesVente de drogues, de produits illicites ou de substances interditesBlanchiment d’argent, financement du terrorismeProstitutionProduits interdits ou réglementés sans autorisationVente de médicaments ou produits pharmaceutiques sans agrémentVente d’alcool, de tabac ou de jeux d’argent sans licenceVente d’armes, d’explosifs ou de dispositifs de piratageContenus et comportements illégauxDiffusion de contenus à caractère pornographique ou extrêmeActivités incitant à la haine, au racisme ou faisant l’apologie du terrorismeDiffusion d’images contraires à l’ordre publicFraudes ou pratiques commerciales interditesUsurpation d’identité, fraude documentaireVente de produits contrefaits ou de marques non autoriséesSites de phishing ou logiciels espionsRéseaux à risque ou non coopératifsOrganisations sectaires ou mouvements ultra-radicauxRéseaux opérant dans des juridictions sous sanction ou non coopératives (ex. paradis fiscaux non reconnus) ⚠️ Activités soumises à conditions strictes Certaines activités peuvent être envisagées sous réserve d’une analyse renforcée par les équipes conformité et de la fourniture de justificatifs réglementaires valides : Jeux en ligne ou paris (avec licence délivrée par l’autorité compétente) Vente d’alcool ou de tabac (avec autorisation légale) Plateformes de streaming ou d’abonnement (sous conditions anti-fraude) 🛡️ En cas de doute… CentralPay se réserve le droit d’interprétation et de décision unilatérale en matière d’acceptation ou de rejet d’une activité, y compris en cas d’évolution réglementaire. Pour toute activité atypique ou présentant des risques, une analyse renforcée peut être demandée, avec obligation de transparence sur les flux, les bénéficiaires, et les clients finaux. 📩 Contactez votre interlocuteur CentralPay si vous avez des questions sur l’éligibilité d’un projet. Principes de réserve La réserve représente les sommes qui sont maintenues sur votre compte CentralPay afin de permettre de couvrir les R-transactions (rejets, refus, retours, remboursements, contestations, impayés) liés à des opérations de paiement. Ses paramètres sont définis en fonction du profil de risque financier de votre compte et sont actualisés en fonction de l’analyse de vos R-transactions sur une période suffisante. Les transactions récurrentes par prélèvement SEPA et par carte bancaire sont particulièrement sujettes au risque de R-transactions. CentralPay possède 3 types de garanties de protection qui peuvent s’appliquer aux marchands, en fonction de la nature de leur contrat : 1. Le collatéral Il représente la somme fixe versée en début de relation, servant à couvrir le risque de crédit dans le cas où le marchand ne pourrait pas satisfaire ses obligations de remboursement envers ses clients. Le détail du collatéral est visible depuis le Portail utilisateur : Administration Reversements Somme des cautions 2. Le pied de compte En l’absence de collatéral, une somme fixe peut être prélevée directement sur les opérations afin de garantir le remboursement des clients en cas de besoin. Le wallet doit donc dépasser la valeur du pied de compte pour autoriser les reversements (payout). Le détail du pied de compte est visible depuis le Portail utilisateur : Administration Reversements Seuil fixe 3. La réserve glissante Selon le secteur d’activité et les processus de règlement du compte, une réserve glissante (« rolling réserve » en anglais) peut être automatiquement ouverte. Il s’agit d’une garantie de protection supplémentaire qui permet de maintenir un certain pourcentage du volume d’encaissement marchand sur le compte CentralPay afin de permettre l’initiation de remboursements automatiques en cas de contestation de transaction, de fraude ou encore afin de couvrir d’éventuels frais opérationnels. Cette somme appartient à la trésorerie du marchand, elle est gardée un nombre défini de jours avant d’être libérée (généralement entre 90 à 180 jours). Par exemple, le seuil variable de la réserve glissante est de 5 % du volume d’encaissement sur 90 jours. Le calcul quotidien du montant de réserve est le suivant : montant des transactions encaissées lors des 90 derniers jours * 5 % Le détail de la réserve glissante est visible depuis le Portail utilisateur : Administration Reversements Seuil variable Conditions générales d’utilisation L’utilisation des services CentralPay est encadrée par plusieurs documents contractuels que chaque titulaire de compte doit consulter et accepter avant l’activation de son compte. 🔗 Accès aux conditions générales Les dernières versions en vigueur des conditions générales CentralPay sont disponibles ici :👉 centralpay.com/fr/cgu ⚖️ Deux types de CGU applicables CentralPay propose deux catégories de comptes, soumises à des conditions générales distinctes en fonction du service souscrit : Type de compteConditions générales applicablesCompte de paiementConditions générales de service de paiementCompte de monnaie électroniqueConditions générales de service de monnaie électronique 🔐 Obligation d’acceptationCes conditions générales doivent être lues et acceptées électroniquement par le titulaire de chaque compte, qu’il soit ouvert directement par un marchand, ou via un partenaire CentralPay. 🧾 Contrat cadre pour les encaissements pour compte propre Dans le cas où un compte est utilisé pour encaisser des fonds pour compte propre (modèle marchand), CentralPay met également à disposition un modèle de contrat cadre dédié : Ce contrat précise les droits et obligations liés à l’utilisation du compte pour l’encaissement d’opérations commerciales, Il est signé électroniquement par le représentant légal ou par une personne habilitée (via délégation de pouvoir). 👉 centralpay.com/fr/cgu Glossaire Terminologies CentralPay DésignationDescriptionActeurToute entité identifiée sur la plateforme CentralPay. Peut-être un marchand, un partenaire, un point de vente, un établissement tiers, ou même CentralPay.Autorisation carteOpération d’interrogation de disponibilité des fonds d’une carte bancaire, puis de blocage en prévision d’une transaction carte (7 jours max).Elle est représentée par l’objet « Transaction » dans l’API CentralPay.Compte CentralPay Ouvert pour une entité (personne physique ou morale), il est le support de : – Sa contractualisation : Grille tarifaire, CGU… – Son administration : Credentials, profils utilisateurs… – Sa configuration : Scenario de notification, points de vente, règles d’acceptations… – Sa conformité : KYC/KYB, accréditations…Le compte CentralPay contient un ou plusieurs comptes de paiement ou de monnaie électronique.Il est représenté par l’objet « Merchant » dans l’API CentralPay.Compte de paiementCompte ouvert dans un Établissement de Paiement. Ce compte est utilisé exclusivement pour la réalisation d’opérations de paiement (collecte de paiements en devises ISO, reversement des fonds vers un compte bancaire…).Il est représenté par l’objet « Wallet » dans l’API CentralPay.Compte de monnaie électroniqueCompte ouvert dans un Établissement de Monnaie Électronique. Ce compte est utilisé exclusivement pour le stockage et l’échange de valeurs en monnaie électronique au sein du réseau du distributeur (devises CUSTOM).Il est représenté par l’objet « Wallet » dans l’API CentralPay.Compte de commissionCompte de paiement secondaire d’un marchand ou partenaire permettant d’isoler les opérations liées aux frais CentralPay du reste des opérations de paiement.Si utilisation par un partenaire, ce compte permet également de collecter ses propres commissions imputées aux transactions de ses sous-marchands.Il est représenté par l’objet « Wallet » dans l’API CentralPay.Compte de réserveCompte de paiement secondaire d’un marchand ou partenaire permettant d’isoler ses fonds de réserve Centralpay (pied de compte, collatéral ou réserve glissante). N’est pas autorisé à réaliser de Payout.Il est représenté par l’objet « Wallet » dans l’API CentralPay.Compte de collecte « Agent »Compte de paiement ouvert dans les livres de CentralPay au nom de l’Agent. Il est dédié à la réception des fonds du partenaire Agent avant leur transfert vers les comptes de paiement de ses sous-marchands. N’est pas autorisé à réaliser de Payout.Il est représenté par l’objet « Wallet » dans l’API CentralPay.Compte CentralisateurLe Compte Centralisateur est un compte technique mise à disposition par CentralPay au Partenaire pour lui permettre de visualiser les instructions technique transmises. Il est donc uniquement dédié à la centralisation des opérations d’un partenaire avant leur transfert vers les comptes de paiement de ses titulaires concernés.MarchandPersonne morale ou autoentreprise réalisant des opérations d’encaissement pour compte propre (vente de biens ou de services). Dispose d’un compte CentralPay en droits « Standard ».Partenaire MOBSPPersonne morale, porteur d’un projet impliquant la mise en relation d’un marchand à CentralPay. Partenaire DMEPersonne morale déclarée comme Distributeur de Monnaie Électronique par CentralPay auprès de l’ACPR (Banque de France). Porteur d’un projet impliquant la réalisation d’opérations d’émission et d’échange de Monnaie Électronique. Dispose des droits API « DME Partner ».Partenaire AgentPersonne morale agréée comme Agent Prestataire de Services de Paiement de CentralPay auprès de l’ACPR (Banque de France). Réalisant notamment des opérations d’encaissement pour compte de tiers à destination de ses Participants. Dispose des droits API « Agent Partner ».Sous-marchandPersonne morale ou physique agissant à des fins commerciales ou dans le cadre d’une activité LMNP. Obligatoirement lié à un Partenaire. Dispose d’un compte CentralPay en droits « Basic ».ParticipantPersonne physique ou morale agissant à des fins non commerciales (exemple : chargement d’un compte de paiement ou de monnaie électronique dans le but de participer au projet d’un partenaire). Obligatoirement lié à un Partenaire. Dispose d’un compte CentralPay en droits « Basic ».IntégrateurPersonne morale, généralement une société de développement informatique, ayant intégré tout ou partie des API CentralPay dans sa propre plateforme technique. Il permet ainsi à ses clients disposant d’un compte CentralPay d’accéder aux services CentralPay dans le contexte de sa plateforme. L’intégrateur ne commercialise pas les services de CentralPay.Utilisateur BOPersonne physique disposant d’un accès à un ou plusieurs comptes CentralPay. Dispose d’un type « Legal » s’il est représentant légal du compte, sinon dispose d’un type « Natural ».Utilisateur APIEntité créée via la plateforme CentralPay permettant d’identifier l’utilisateur réalisant les appels API sur un compte CentralPay.Client / PayeurClient d’un marchand ou d’un partenaire ayant émis un paiement vers un compte CentralPay. Peut disposer d’un profil client CentralPay ou non.Frais CentralPayEnsemble des frais dus à CentralPay déduits des opérations correspondantes, prélevés sur un compte de commission dédié ou facturés en fin de mois.Devises ISODevises conventionnelles aux normes ISO 4217 (exemple : EUR, USD, CHF, GBP…)Devise CUSTOMDevise de Monnaie Électronique créée pour un Partenaire DME de CentralPay. La valeur de la devise CUSTOM est toujours adossée à celle d’une devise ISO comme l’EURO par exemple.Compte bancaireCompte bancaire externe lié à un compte CentralPay pour réaliser des reversements (payout) ou à un profil client pour réaliser des prélèvements SEPA.Il est représenté par l’objet « BankAccount » dans l’API CentralPay.Reversement bancaireVirement sortant d’un compte CentralPay vers un compte bancaire lié. Peut-être réalisé par SEPA ou SWIFT.Il est représenté par l’objet « Payout » dans l’API CentralPay.Transaction carteOpération de débit d’une carte bancaire, au crédit d’un compte CentralPay.Elle est représentée par l’objet « Transaction » dans l’API CentralPay.Transaction SCTOpération de réception d’un virement SEPA ou SWIFT, au crédit d’un compte CentralPay.Elle est représentée par l’objet « SctTransaction » dans l’API CentralPay.Transaction SDDOpération de débit d’un compte bancaire, au crédit d’un compte CentralPay.Elle est représentée par l’objet « SddTransaction » dans l’API CentralPay. Lexique des paiements DésignationDéfinitionIdentifiant de Créancier SEPA (ICS)L’ICS est un numéro de référence unique qui identifie chaque émetteur de prélèvement. En France, il est composé de 13 caractères alphanumériques, dont les 2 premiers représentent le code pays ISO (FR pour la France).Disposer d’un ICS est un prérequis obligatoire pour réaliser des prélèvements. Le créancier doit faire la demande d’attribution de l’ICS auprès de sa banque. Le créancier conserve ensuite son ICS, même s’il change de banque ou s’il est multi-bancarisé.DébiteurPersonne physique ou morale qui doit une somme d’argent à une autre, appelée créancier, que ce soit dans le cadre de transactions commerciales, de prêts ou d’autres obligations financières.CréancierPersonne physique ou morale à qui une somme d’argent est due par une autre, appelée débiteur. Les créanciers (banques, entreprises ou particuliers qui ont prêté de l’argent ou fourni des biens ou services à crédit) ont le droit légal de réclamer le paiement de la dette, généralement formalisé par un contrat ou une autre forme d’accord.Émetteur (ou donneur d’ordre)Le payeur, c’est-à-dire la personne physique ou morale qui va émettre les fonds d’une transaction financière.BénéficiaireLe destinataire, autrement dit la personne physique ou morale qui va percevoir les fonds d’une transaction financière.Autorisation bancairePropre aux transactions par carte. Interrogation de l’acquéreur vers la banque du porteur de carte concernant le montant de la transaction. Suite au « code de retour banque », l’acquéreur est en mesure de savoir si la somme demandée est disponible, et si non pourquoi (fonds insuffisants, carte volée…). Une autorisation valide assure au marchand la possibilité de capturer la somme demandée jusqu’à 7 jours.Passerelle de paiement (ou Payment Gateway)Technologie agissant comme intermédiaire entre le site du marchand et le réseau de paiement qui permet d’assurer la transmission sécurisée d’informations liées aux paiements. Les passerelles vérifient également la disponibilité des fonds et autorisent les paiements, tout en offrant des fonctionnalités telles que la gestion des paiements récurrents et la détection de la fraude.Prestataire de Services de Paiement (ou PSP)Établissement financier qui fournit des services liés à l’acceptation et au traitement des paiements aux marchands. Ces services incluent également la gestion des comptes de paiements ouverts, la sécurité des transactions ainsi que la conformité réglementaire.KYB (Know your Business)Le KYB (Know Your Business) est un protocole d’authentification de l’identité et de la conformité des personnes morales, avant la création de leur compte de paiement. Imposée par le régulateur, cette vérification permet d’évaluer le niveau de risque marchand de ces dernières afin de prévenir toutes activités illégales telles que le blanchiment d’argent, la fraude et le financement du terrorisme (LCB-FT).Ce processus inclut la collecte et la vérification de documents tels que les statuts de l’entreprise, les informations sur les propriétaires et les dirigeants, les justificatifs d’adresse et les informations financières.KYC (Know your Customer)Le KYC (Know Your Customer) est un protocole d’authentification de l’identité et de la conformité des personnes physiques, avant la création de leur compte de paiement. Imposée par le régulateur, cette vérification permet d’évaluer le niveau de risque marchand de ces dernières afin de prévenir toutes activités illégales telles que le blanchiment d’argent, la fraude et le financement du terrorisme (LCB-FT).Ce processus inclut la collecte et la vérification de documents tels que les pièces d’identité, les preuves de domicile et les informations sur les activités professionnelles.Rapprochement d’un virementProcessus de vérification et de correspondance des factures émises enregistrées dans le compte de l’entreprise avec les paiements reçus. Ce traitement permet de s’assurer que toutes les transactions prévues ont bien été exécutées, de détecter toute anomalie ou erreur et de maintenir l’exactitude des enregistrements financiers de l’entreprise.Frais d’interchangeFrais payés par la banque du marchand (banque acquéreur) à la banque de l’acheteur (banque émettrice) lors d’une transaction par carte, afin de couvrir les coûts et les risques associés à la gestion des paiements. Ils varient en fonction de plusieurs facteurs, tels que le type de carte utilisée, le type de transaction et le pays dans lequel la transaction est effectuée.Frais de réseaux carteFrais facturés par les réseaux de cartes (CB, Visa, Mastercard…) aux banques et PSP qui traitent des paiements par carte. Ces frais couvrent les coûts liés à l’utilisation du réseau de paiement, notamment l’infrastructure technologique, la sécurité des transactions et le traitement des paiements.Interchange++Somme des commissions prélevées sur les opérations de paiement en ligne du marchand. Il est composé de :– Frais d’Interchange– Frais de réseaux de carte– Frais de services, facturés par le PSP qui assure le fonctionnement de la plateforme de paiement et des services associésCe calcul permet de déterminer le coût de revient exact de chacune des transactions.Open BankingEncouragé par la DSP2, l’Open Banking est une pratique financière permettant aux banques de partager de manière sécurisée les données financières de leurs clients avec des tiers autorisés, tels que des fintechs, à travers des API (interfaces de programmation applicative). Ce système bancaire ouvert vise à stimuler l’innovation et la concurrence dans le secteur financier, en permettant le développement de nouvelles applications et services qui peuvent offrir des expériences client améliorées, une gestion financière plus efficace et des offres personnalisées.Exemple : Initiation de paiementImpayé carte (ou chargeback / contestation / litige)Processus par lequel un titulaire de carte signale une transaction suspecte ou non autorisée à l’émetteur, en vue d’un remboursement ou d’une rétrofacturation. Les motifs de contestation peuvent inclure des transactions frauduleuses, des erreurs de facturation, des biens ou des services non reçus ou d’autres problèmes liés à l’utilisation de la carte.Rejet de prélèvement SEPAUn rejet de prélèvement se produit lorsqu’une demande de prélèvement est refusée par la banque du débiteur. Les raisons d’un rejet peuvent inclure des fonds insuffisants sur le compte du débiteur, des informations bancaires incorrectes, un mandat de prélèvement expiré ou non valide, ou une opposition au prélèvement de la part du débiteur.Lorsqu’un prélèvement est rejeté, les fonds ne sont pas transférés, et le créancier est informé du rejet pour qu’il puisse prendre les mesures appropriées.RIB (Relevé d’Identité Bancaire)Document fourni par une banque qui contient les informations nécessaires à l’identification d’un compte bancaire, afin de faciliter les opérations de virement ou de prélèvement. Le RIB inclut le numéro de compte, le code banque, le code guichet, l’IBAN (International Bank Account Number) ainsi que le BIC (Bank Identifier Code) de la banque.EEE (Espace Économique Européen)Zone économique composée des 27 pays membres de l’Union Européenne (UE) ainsi que de la Norvège, l’Islande et le Liechtenstein. L’EEE permet aux États membres de participer au marché unique de l’UE, offrant la libre circulation des biens, des services, des capitaux et des personnes. API et interfaces Utilisation des API CentralPay L’API utilise un protocole HTTP pour transporter et renvoyer toutes les réponses formatées en JSON. Les API CentralPay sont des API REST permettant de faciliter l’intégration de nos services de paiement. CentralPay mets à disposition de ses utilisateurs deux API : L’API « Core Payment » : Pour toutes les fonctions liées aux opérations de paiement L’API « Onboarding » : Pour toutes les fonctions liées à la création de comptes de paiement et de monnaie électronique (accessibles aux partenaires uniquement) 1. Fonctions Toutes les fonctions utilisent les types « MIME » : « application/x-www-form-urlencoded » et « multipart/form-data ». Les fonctions utilisent les méthodes suivantes : Méthode HTTP POST pour la création ou la mise à jour d’un objet Méthode HTTP GET pour la recherche d’objets Méthode HTTP DELETE pour supprimer des objets 2. Authentification L’API de CentralPay utilise l’authentification de base HTTP pour l’authentification. Toutes les demandes adressées à notre API doivent être authentifiées (intégrant le nom d’utilisateur et le mot de passe fournis par la plateforme) et doivent être effectuées via HTTPS. Vous pouvez récupérer vos identifiants API depuis votre Portail utilisateur : Administration Mon compte Technique Cliquez ensuite sur Identifiant API Modifier Générer Copiez le mot de passe API Mettre à jour ℹ️ Certains services comme le cardToken requièrent la déclaration de votre MerchantPublicKey, également disponibles depuis les liens présentés ci-dessus. Accès : Compte Technique – Portail Utilisateur de RCT Compte Technique – Portail Utilisateur de PROD MerchantPublicKey La MerchantPublicKey permet de s’authentifier sur le service API cardToken qui ne nécessite pas d’autre type d’authentification et permet d’identifier un marchand.Cette clé est trouvable dans l’onglet Technique des détails de votre compte sur notre portail utilisateur : 3. HTTP Request Toujours utiliser HTTP-Header pour les formats de sérialisation (user_agent…) Le Content-Type (application/x-www-form-urlencoded ou multipart/form-data) doit être renseigné pour toutes les requêtes dans l’en-tête. L’utilisation du champ Idempotence-Key dans l’en-tête HTTP permet d’identifier la requête qui a été envoyée. Si la même valeur Idempotence-Key est envoyée à nouveau, la demande sera considérée comme déjà traitée et ne sera pas relancée. Ce contrôle permet au commerçant d’éviter d’envoyer des entrées en double. Cette clé doit être construite avec un hachage sha1 des paramètres de la demande (sans date) concaténés comme ceci : Idempotence-Key = sha1(card[number] + card[cvc] + card[expirationMonth] + card[expirationYear] + card[check] + merchantPublicKey) ℹ️ La clé "Idempotence-Key" est valable 24 heures. 4. HTTP Response Dans chaque réponse HTTP, le champ Request-Id est inscrit dans l’en-tête HTTP. ℹ️ Si vous avez une demande spécifique à envoyer via l'API REST de CentralPay, veuillez contacter le support ou votre référent CentralPay. Portail Marchand Le Portail utilisateur est une interface web connectée aux APIs de CentralPay. Il permet de consulter l’activité et d’administrer votre compte CentralPay. Les comptes ayant des droits « Partenaires » peuvent également consulter l’activité des comptes de leurs sous-marchands. Accès : Portail Utilisateur de recette (RCT) Portail Utilisateur de production (PROD) 1. Fonctionnalités Le Portail utilisateur permet notamment : De consulter les opérations comptables du compte De consulter les paiements par carte (« transaction ») De consulter les paiements par virement SEPA (« sctTransaction ») De consulter les paiements par prélèvement SEPA (« sddTransaction ») De créer et de consulter les demandes de paiement (« paymentRequest ») De créer et de paramétrer les profils clients (« customer ») De créer et de paramétrer les points de vente (« pointOfSale ») De paramétrer les notifications Smart Push (templates, scénarios …) D’initier et de gérer les paramètres de reversement (« payout ») De générer des exports et de télécharger les rapports financiers mensuels Pour les comptes « Partenaires » uniquement : De créer et de consulter les demandes d’onboarding (« merchant-enrollment ») De consulter les opérations et de paramétrer les comptes de leurs sous-marchands ℹ️ Les comptes ayant des droits "Participant" (sous-marchands/participants de partenaires) peuvent uniquement consulter les opérations dont ils sont bénéficiaires ("transfer") et gérer leurs paramètres de reversement ("payout"). 2. Les profils utilisateurs du Portail Ils représentent des personnes physiques pouvant accéder à un ou plusieurs comptes CentralPay ainsi qu’à tout ou partie des services du Portail utilisateur. 2.1. Gestion des profils utilisateurs « Legal » et « Natural » Lors de la création du compte CentralPay, le responsable ayant réalisé l’onboarding (dirigeant ou personne physique disposant d’une délégation de pouvoir) se voit attribuer un profil utilisateur dit « Legal ». Il dispose ainsi de tous les droits administrateur du compte, mais également de droits légaux permettant de paramétrer les éléments les plus sensibles du compte : Paramètres du compte de paiement : Changement d’IBAN de sortie (payout) Changement des conditions de reversements sur compte bancaire Mise à jour des documents de société Paramètres des utilisateurs : Création de nouveaux utilisateurs « Legal » Prochainement Une fois le compte créé, vous avez la possibilité de créer autant de profils utilisateurs que nécessaire en renseignant leur nom, leur prénom, leur email et leur rôle utilisateur (définissant les droits qu’ils auront sur le compte). Les profils ainsi créés sont nommés « Natural ». ℹ️ Si vous disposez de plusieurs comptes CentralPay et que vos équipes doivent avoir accès à ces différents comptes, créez leur profil utilisateur depuis l’un d’entre eux, puis demander à CentralPay d’affecter leur profil à vos autres comptes. Ils bénéficieront ainsi d’un unique centralisé pour tous ces comptes. Accès : Portail Utilisateur de RCT – Gestion des profils utilisateurs BO Portail Utilisateur de PROD – Gestion des profils utilisateurs BO 2.2. Gestion des rôles et droits des profils utilisateurs « Natural » Les droits des profils utilisateurs « Natural » sont régis par leur rôle utilisateur. Le rôle comprend une liste de droits (lecture seule, création, modification, suppression) paramétrables par service (transaction, demandes de paiement, règles d’acceptation…). Ces droits peuvent être différents en fonction des services sélectionnés. Les utilisateurs disposant des droits nécessaires peuvent créer des rôles pour chaque équipe de leur entreprise, cependant des rôles préétablis sont disponibles nativement : Standard Admin : Accès complet à toutes les fonctionnalités du Portail utilisateur (excepté les fonctionnalités admin). Attention, ce rôle comprend des accès à des services sensibles comme les règles d’acceptation, les whitelists, les blacklists, les créations d’utilisateurs Portail utilisateur, les créations de rôles utilisateurs du Portail, la création et la gestion d’utilisateurs API… Standard read only : Prochainement Prochainement Contactez le service client CentralPay si vous avez besoin d’aide pour la création de rôles personnalisés. Quelques précisions importantes concernant les rôles : Les rôles sont cumulables, un utilisateur peut ainsi se voir assigner plusieurs rôles Les droits des rôles sont héritables, ainsi un utilisateur ayant le droit de créer d’autres profils utilisateurs ne pourra affecter qu’un rôle similaire ou inférieur au sien Accès : Portail Utilisateur de RCT – Gestion des rôles utilisateurs BO Portail Utilisateur de PROD – Gestion des rôles utilisateurs BO 2.3. Gestion des catégories de point de vente Si vous avez le besoin de limiter l’accès d’utilisateurs à certains points de ventes, vous pouvez créer des catégories, les affecter à vos points de ventes puis les affecter à vos profils utilisateurs. Exemple : Un utilisateur ayant des droits de création de demandes de paiement ne pourra le faire que sur les points de ventes de sa catégorie. Il ne pourra également visualiser que les demandes de paiement émises via les points de vente de sa catégorie. Contactez le service client CentralPay si vous avez besoin d’aide pour la création de catégories de point de vente personnalisées. Accès : Portail Utilisateur de RCT – Gestion des catégories de point de vente Portail Utilisateur de PROD – Gestion des catégories de point de vente 3. Liste des types d’opérations visibles sur le Portail utilisateur Type d’objetValeurFonctionAUTHORIZATIONDébitAutorisation de blocage d’un montant d’une carte bancaireTRANSACTIONCréditTransaction carteTRANSACTION_CANCELDébitAnnulation de transaction carteREFUNDCréditRemboursement transaction carteREFUND_CANCELDébitAnnulation d’un remboursement transaction carteDISPUTEDébitImpayé suite à la contestation d’une transaction carteDISPUTE_WONCréditAnnulation d’un impayé carteTRANSFERDébitTransfert de fonds entre comptes CentralPayTRANSFER_CANCELCréditAnnulation transfert en attenteTRANSFER_REVERSALCréditRetour d’un transfert validéPAYOUTDébitVirement sortant du compte CentralPayPAYOUT_CANCELCréditAnnulation d’un virement sortantPAYOUT_REVERSALCréditRetour d’un virement sortant validéSCT_TRANSACTIONCréditVirement entrantSCT_TRANSACTION_CANCELDébitAnnulation virement entrant avant son arrivéeSCT_TRANSACTION_REFUNDDébitAnnulation virement entrant après son arrivée par le marchandSCT_TRANSACTION_REVERSALDébitAnnulation virement entrant après son arrivée par CentralPayCREDITDébitCrédit sur carte non lié à une transactionCREDIT_CANCELCréditAnnulation d’un crédit sur carteSDD_TRANSACTIONCréditPrélèvement SEPA d’un compte bancaire externeSDD_TRANSACTION_CANCELDébitAnnulation d’un prélèvement d’un compte externe avant son arrivéeSDD_TRANSACTION_REVERSALDébitRemboursement d’un prélèvement d’un compte externe après son arrivéeDEPOSITCréditChargement d’une somme sur un compte CentralPay Portail Débiteur Le portail client CentralPay est l’interface des profils clients (Customer). Il permet à vos clients de : Consulter leur historique de paiement, D’administrer leurs opérations en cours (mise à jour de leur moyen de paiement par défaut, résiliation d’abonnement…) Mais aussi d’interagir avec vous en cas de question concernant une opération (formulaire de contact). Ce portail est principalement utilisé pour l’administration des paiements récurrents par les clients. Les équipes conformité de CentralPay peuvent requérir que l’URL de ce portail soit intégrée dans le pied de page ou les conditions générales de votre site marchand. Pour s’y connecter, vos clients ont deux options : Soit via la page d’accueil du portail Client, en renseignant les informations d’un de leurs paiements opéré avec votre compte CentralPay : Portail Client de recette (RCT) Portail Client de production (PROD) Ou en direct via le lien communiqué dans les emails automatique de création d’abonnement / de paiement fractionné, ou en intégrant le CustomerID visible dans votre Portail Utilisateur : Compte Customer Détail CustomerId Portail Client de RCT : Prochainement Portail Client de PROD : Prochainement Portail d'inscription Le portail d’inscription de CentralPay permet la création d’un Compte CentralPay et d’un compte de paiement : de la création du profil utilisateur, jusqu’à la contractualisation, en passant par la collecte du KYC/KYB. Il interagit avec l’API Onboarding de CentralPay. Pour les comptes « Partenaires », il permet donc de créer des sous-marchands facilement depuis un portail hébergé par CentralPay, et d’ainsi éviter une intégration complète de l’API Onboarding. Pour adresser un lien d’onboarding à l’un de vos futurs sous-marchands, vous pouvez utiliser le service de création de compte de paiement. Accès : Portail d’Inscription de RCT Portail d’Inscription de PROD Modèles contractuels Modèle Marchand Le modèle Marchand s’adresse aux entreprises (personnes morales) qui souhaitent utiliser la plateforme CentralPay pour encaisser des paiements pour leur propre compte dans le cadre d’une activité de vente de biens ou de services. 1. 🧩 Description du modèle Ce modèle vous donne accès à l’ensemble des services de Smart Collection, la solution d’encaissement complète proposée par CentralPay. 🔗 Plus d’informations sur Smart Collection Les fonctionnalités incluses sont les suivantes : 🏦 Le compte CentralPayUn compte de paiement dédié à votre activité, avec IBAN individuel, suivi des opérations et reversements. 🧰 Les services liés au compteOutils de gestion, profils utilisateurs, accès API, notifications, reporting… 💡 Le service d’encaissement SmartCentralisation de vos flux, routage automatisé, gestion des statuts et des reversements. 💳 Transactions par carte bancaireAcceptation Visa/Mastercard, 3D Secure, Apple Pay/Google Pay, gestion des remboursements et des contestations. 💶 Transactions par virementGénération d’IBAN virtuels, notifications de réception, rapprochements automatiques. 🧾 Transactions par prélèvement SEPADébits ponctuels ou récurrents, gestion des mandats, suivi des rejets. 2. 💰 Frais et commissions Le modèle Marchand donne lieu à deux types de frais : 🔹 Forfait plateforme Un forfait mensuel fixe est appliqué pour l’accès à la plateforme et aux services associés. Ce forfait peut être : Prélevé automatiquement par SEPA mensuel, Facturé annuellement par virement SEPA, Déduit de votre compte CentralPay selon les modalités prévues dans votre contrat. 🔹 Frais de service Des commissions variables sont appliquées en fonction des opérations réalisées (transactions, reversements, rejets, etc.). Les frais sont débités : Soit directement de votre compte de paiement principal, Soit depuis un compte de commission dédié, si celui-ci est activé. 📌 En cas de solde insuffisant, CentralPay pourra procéder à un prélèvement SEPA ou vous adresser une demande de virement complémentaire. Modèle Intégrateur / Partenaire Technique CentralPay propose deux modèles distincts pour les acteurs qui souhaitent accompagner des marchands dans leur intégration technique : le Partenaire Technique et l’Intégrateur. Ces deux modèles permettent de connecter plusieurs marchands à la plateforme CentralPay, selon des modalités d’encadrement différentes. Ils peuvent chacun, s’ils le souhaitent, être déclarés MOBSP (Mandataires d’Opérations de Banque et de Services de Paiement) auprès de l’ORIAS, pour accompagner les marchands durant leur entrée en relation avec CentralPay. 🔹 1. Modèle Intégrateur L’Intégrateur est un prestataire technique mandaté par un ou plusieurs marchands. Il intervient en leur nom et pour leur compte, afin de faciliter leur connexion aux services CentralPay. Chaque marchand dispose de son propre point de vente (POS), de son propre compte CentralPay, et signe directement un contrat avec CentralPay. L’Intégrateur ne détient aucun droit contractuel sur les comptes ou fonds du marchand. Responsabilités et fonctionnement : L’Intégrateur utilise les accès API fournis par chaque marchand, dans le cadre d’un mandat contractuel. Il peut déclencher des opérations techniques (paiements, notifications…), mais uniquement via les accès API délégués par le marchand, dans le cadre du contrat unissant ce dernier à CentralPay. Il n’intervient jamais en son nom propre. Les opérations sont réalisées en 1 pour 1 : un payeur règle un seul marchand. Facturation : Chaque marchand est facturé directement par CentralPay. L’Intégrateur n’intervient à aucun moment dans les flux financiers. Pour aller plus loin sur le modèle Intégrateur L’intégrateur intervient exclusivement en soutien technique des marchands, sans jamais agir comme intermédiaire de paiement ni représentant de CentralPay. Son rôle se limite à l’intégration, au support fonctionnel de niveau 1 et à la maintenance des interfaces. Chaque marchand conserve l’entière maîtrise de son compte CentralPay : encaissements, reversements, solde, paramétrage des accès API, gestion documentaire et contractuelle. L’intégrateur accède à un espace CentralPay lui permettant de consulter une vue consolidée des opérations réalisées via les accès API qui lui sont délégués. Il peut également consulter la documentation technique, utiliser les environnements de test, et suivre les évolutions d’API. Cet accès ne permet pas d’exécuter de paiements. Pour permettre la connexion, le marchand crée un accès API dédié à l’intégrateur, avec des droits strictement limités et révocables à tout moment. Toutes les opérations techniques sont réalisées via cet accès, sous le contrôle du marchand. Si l’intégrateur est déclaré Mandataire d’Opérations de Banque et de Services de Paiement (MOBSP) auprès de l’Orias, il peut : initier une demande d’enrôlement pour le compte d’un marchand, guider ce dernier dans la constitution de son dossier, et transmettre un lien d’enrôlement personnalisé CentralPay. Le statut MOBSP ne permet ni l’exécution d’opérations ni l’accès aux fonds, mais encadre juridiquement l’accompagnement du marchand dans son entrée en relation. ➡️ Si l’intégrateur n’est pas déclaré MOBSP, c’est au marchand de contacter directement CentralPay pour initier sa demande d’ouverture de compte, en précisant l’identité de l’intégrateur avec lequel il collabore afin de permettre son rattachement technique. 🔹 2. Modèle Partenaire Technique Le Partenaire Technique est un acteur qui développe une solution mutualisée (ex : marketplace, plateforme SaaS), à destination de plusieurs marchands ou participants. Il opère depuis un ou plusieurs points de vente dont il est le titulaire. Les opérations sont ensuite traitées par CentralPay depuis un compte centralisateur, également détenu par CentralPay. Cela permet au Partenaire d’avoir une visibilité sur les flux, sans jamais en détenir la maîtrise ni les initier. Responsabilités et fonctionnement : Le Partenaire Technique dispose de ses propres accès API, délivrés par CentralPay. Il peut consulter les transactions réalisées pour les marchands affiliés à ses points de vente. Il n’initie aucun paiement et ne peut accéder aux soldes ou effectuer de reversements. Toutes les opérations sont exécutées exclusivement par CentralPay. Dans ce cadre, CentralPay peut gérer des paiements en mode 1 pour X : un payeur peut régler plusieurs marchands simultanément. Facturation : Le Partenaire est facturé directement par CentralPay. Les commissions qu’il perçoit sont prélevées par CentralPay sur les comptes de paiement des marchands, puis créditées sur son compte de commission. Pour aller plus loin sur le modèle Partenaire Technique Le partenaire technique développe une solution mutualisée (ex. marketplace, plateforme SaaS) intégrant CentralPay. Il opère depuis un ou plusieurs points de vente ouverts à son nom, qui accueillent les transactions des marchands affiliés. Chaque marchand affilié contracte directement avec CentralPay et détient son propre compte CentralPay. Il signe les Conditions Générales de Compte de Paiement et est soumis aux mêmes obligations réglementaires que tout utilisateur professionnel. Le partenaire transmet à CentralPay les données commerciales des transactions (montant, référence, commission…) recueillies sur sa plateforme. CentralPay analyse ces informations, puis instruit et exécute l’opération pour le compte du marchand concerné. Les paiements sont crédités sur le compte CentralPay du marchand. Si une commission est prévue, CentralPay la prélève automatiquement et la reverse sur le compte de commission du partenaire, selon les conditions fixées dans les CGU du partenaire. Le partenaire ne détient jamais de fonds de tiers, ne donne aucune instruction de paiement, et ne peut intervenir dans les reversements ou la tenue de compte. Il n’agit ni pour compte de tiers ni au nom de CentralPay. L’accès au compte centralisateur de CentralPay mis à disposition du partenaire est à usage purement informatif : il permet de visualiser les transactions, mais n’offre aucun droit d’exécution ou d’accès aux soldes. En cas d’enregistrement MOBSP, le partenaire peut accompagner ses marchands dans leur entrée en relation (enrôlement via API, transmission du lien d’inscription, assistance documentaire), sous réserve de validation préalable par CentralPay. ➡️ Si le partenaire n’est pas MOBSP, chaque marchand doit initier lui-même sa demande de création de compte ou son rattachement à la plateforme, en précisant l’identité du partenaire concerné afin d’activer les bons droits techniques. 🟩 3. Règles de conformité communes Pour les deux modèles : Le Partenaire ou Intégrateur n’est jamais habilité à transmettre d’instructions de paiement. Il ne détient aucun fonds et n’agit jamais en son nom propre pour l’exécution de services de paiement. Les comptes bancaires, les reversements et la détention de fonds de tiers sont strictement encadrés par CentralPay. Aucune délégation réglementaire d’exécution de service de paiement n’est accordée à ces acteurs. 🟨 4. Déclaration MOBSP (Mandataire d’Opérations de Banque et Services de Paiement) Un Intégrateur ou un Partenaire Technique peut, s’il le souhaite, être déclaré en tant que MOBSP auprès de l’ORIAS, sous la supervision de CentralPay. Cette déclaration permet : D’initier une demande d’entrée en relation pour le compte du marchand ; De collecter et transmettre les pièces justificatives via l’API Onboarding CentralPay ; D’assister le marchand dans ses démarches contractuelles, techniques et documentaires. Le statut de MOBSP ne modifie en rien les restrictions précédemment énoncées. Il ne confère aucun droit supplémentaire sur les fonds ou les opérations de paiement, mais autorise la présentation commerciale et l’accompagnement réglementé du marchand dans sa relation avec CentralPay. Déclaration MOBSP (Orias) ℹ️ Avant de lire cette page, veuillez consulter la rubrique dédiée à l'entrée en relation pour les partenaires. Les partenaires CentralPay basés en France opèrent avec le statut d’intermédiaires en opérations de banque et en service de paiement (IOBSP), plus précisément en tant que Mandataires en Opérations de Banques et Services de Paiement (MOBSP). Pour devenir partenaire MOBSP de CentralPay, vous devez vous déclarer à l’ORIAS. CentralPay devra ensuite vous déclarer en tant que son mandataire. Votre partie peut être réalisée en quelques heures, celle de CentralPay prend quelques jours. L’ORIAS peut quant à elle prendre jusqu’à deux mois pour examiner votre demande. Bien que ce processus vous incombe, CentralPay peut vous assister en cas de besoin. Contactez notre service client en cas de besoin. 1. Préparez vos données 1.1. Obtenez votre attestation de mandat Après avoir signé votre contrat de partenariat avec CentralPay : Envoyez un e-mail à notre service client qui inclut votre raison sociale et votre numéro SIREN CentralPay vous répondra avec votre attestation de mandat. Vous aurez besoin de ce document pour l’étape 3.3. 1.2. Préparez vos documents justificatifs Lors de l’étape 3.3 du processus d’inscription, vous devrez fournir les pièces justificatives suivantes : KBIS datant de moins de trois mois Justificatif d’aptitude professionnelle : diplôme dans une école de commerce ou de gestion agréée ou certification RNCP (NCF 122, 128, 313 ou 314, niveaux 7 à 5) ou reconnaissance par le CIEP pour les diplômes étrangers Si vous ne disposez pas d’un justificatif d’aptitude professionnelle accepté par l’Orias, envoyez un email à notre service client. CentralPay peut vous aider à suivre la formation nécessaire. Voir l’image ci-jointe, faisant référence à la catégorie Niveau III – IOBSP (niveau 3). 2. Créez votre compte ORIAS 2.1. Accéder au formulaire Allez sur le site de l’ORIAS Faites défiler vers le bas jusqu’à voir la section Comment ça marche ? Cliquez sur S’inscrire Vous serez redirigé vers le formulaire d’inscription. 2.2. Saisir les informations Entrez votre numéro SIREN Saisissez les informations sur votre entreprise. Assurez-vous de vous inscrire en tant que personne morale / entité juridique Saisissez les informations de votre représentant légal Saisissez les coordonnées de votre représentant légal Saisissez les coordonnées de votre entreprise, y compris votre site web si vous en avez un Entrez l’adresse de votre entreprise Vérifiez toutes les informations que vous avez saisies, puis cliquez sur Valider 2.3. Connectez-vous à votre compte ORIAS Vérifiez votre boîte de réception pour un email de l’ORIAS (no-reply-orias@orias.fr). L’email contient votre identifiant et un mot de passe provisoire. Retournez sur le site de l’ORIAS Cliquez sur Connexion / Login Saisissez votre identifiant et votre mot de passe provisoire depuis votre email Suivez les instructions sur votre écran pour modifier votre mot de passe, puis enregistrez-le Après avoir enregistré votre nouveau mot de passe, vous serez redirigé vers votre espace compte ORIAS 3. Réalisez une nouvelle demande d’inscription 3.1. Enregistrez votre entreprise Cliquez sur Nouvelle inscription pour démarrer votre inscription, un formulaire apparaît Choisissez Activité IOB Choisissez ensuite Mandataire non-exclusif en opérations de banque et en services de paiement (MOBSP) Cliquez sur Soumettre 3.2. Fournissez des informations complémentaires Sélectionnez la case précisant que vous complétez votre inscription à titre de Mandataire non exclusif en opérations de banque et en services de paiement Si un autre type d’inscription est spécifié, utilisez le bouton Précédent de votre navigateur pour revenir à la page précédente et réessayez. Pour la première question, choisissez la réponse : Je déclare que l’on ne me confie pas de fonds Pour la deuxième question, choisissez la réponse : Accessoire, indiquant à l’ORIAS que les services financiers ne sont pas l’activité principale de votre entreprise Pour la troisième question, choisissez la réponse : Oui, indiquant à l’ORIAS que votre entreprise propose du crédit (ou d’autres services bancaires et de paiement) uniquement à titre de service secondaire Cliquez sur Aller à l’étape « Pièces justificatives » 3.3. Fournissez vos documents justificatifs Soumettez votre KBIS Soumettez votre mandat d’attestation, qui est le certificat de mandat de l’étape 1.1 Soumettez votre Capacité professionnelle pour « vous » (Niveau I IOBSP), qui constitue votre preuve d’aptitude professionnelle de l’étape 1.2. Cliquez sur Aller à l’étape suivante 3.4. Payez votre inscription La dernière étape consiste à payer votre inscription. Notez que vous payez pour l’enregistrement de Mandataire non exclusif en opérations de banque et en services de paiement. Sans payer les frais, votre inscription ne peut être finalisée Choisissez de payer avec votre Carte bancaire, ou cliquez sur Choisir un autre mode de paiement pour payer par Virement (virement) ou Chèque (chèque) Après avoir payé, cliquez sur Télécharger la facture pour télécharger votre reçu Cliquez sur Terminer la demande d’inscription pour finaliser votre inscription Vous recevrez votre numéro d’inscription ORIAS par e-mail, confirmant que votre inscription est terminée. Envoyez ce numéro au service client de CentralPay par email 4. CentralPay vous enregistre en tant que MOBSP Après avoir envoyé à CentralPay votre numéro d’enregistrement Orias par email, CentralPay vous enregistre en tant que Mandataire non exclusif en opérations de banque et en services de paiement (MOBSP). 5. L’ORIAS examine votre candidature L’ORIAS examine vos documents et votre candidature pour s’assurer que votre dossier est entièrement conforme. L’ORIAS vous informera de sa décision finale par email. Si elle est approuvée, l’e-mail contient également la date à laquelle votre statut de MOBSP prendra effet. N’hésitez pas à contacter l’ORIAS par téléphone (09.69.32.59.73) ou par email (contact@orias.fr) si vous ne recevez pas à temps les informations concernant votre candidature. 6. Mettez à jour vos mentions légales Après avoir reçu l’agrément de l’ORIAS et être devenu MOBSP, assurez-vous de mettre à jour vos mentions légales. Ajoutez quelque chose de similaire à l’exemple suivant au pied de page de votre site Web, dans votre page de mentions légales et partout où vous distribuez ou vendez des services de paiement. [Raison sociale], société immatriculée au RCS de [ville d’enregistrement] sous le numéro [numéro RCS], et inscrite au Registre unique des Intermédiaires en Assurance, Banque et Finance sous le numéro d’immatriculation [numéro d’enregistrement ORIAS] en qualité de Mandataire non exclusif en opérations de banque et en services de paiement. Modèle Partenaire avec statut Distributeur de Monnaie Électronique (DME) ou Agent de Services de Paiement (Agent PSP) Certains projets nécessitent un cadre réglementaire spécifique permettant à des partenaires d’agir au nom de CentralPay, établissement agréé par l’ACPR. Deux statuts sont prévus par la réglementation française : Le Distributeur de Monnaie Électronique (DME), pour la gestion de valeur stockée dans des projets de type plateformes C2C, titres prépayés, réseaux fermés, etc. L’Agent de Prestataire de Services de Paiement (Agent PSP), pour les projets nécessitant une gestion active des flux de paiement (encaissements, transferts, reversements). Ces modèles permettent une plus grande autonomie du partenaire, mais s’accompagnent de contraintes réglementaires fortes, sous la responsabilité de CentralPay. 🟣 1. Partenaire Distributeur de Monnaie Électronique (DME) ➤ Cas d’usage typique Plateformes de vente entre particuliers (C2C), Réseaux d’enseignes prépayées ou de bons cadeaux, Programmes de fidélité à valeur monétaire stockée. ✅ Rôle du DME Le distributeur agit pour le compte de CentralPay dans la mise à disposition et la gestion de la monnaie électronique. Fonctionnalités : Mise en relation de CentralPay avec les utilisateurs finaux (les “Participants”), Transmission à CentralPay des instructions de chargement (montant, bénéficiaire, commission), Visualisation et suivi des opérations via un compte centralisateur dédié, Transfert de valeur entre utilisateurs (comptes de monnaie électronique), Remboursement de la monnaie électronique à la demande de l’utilisateur, Détention d’un compte de commission pour percevoir les frais définis dans ses CGU. ⚠️ Limites fonctionnelles Le DME ne détient jamais les fonds, Il n’intervient pas sur les services de paiement régulés (ex : virements SEPA, carte, prélèvements), Il ne peut pas sous-traiter son activité, sauf accord explicite de CentralPay. 📋 Contraintes réglementaires Signature d’un contrat de distribution avec CentralPay, Dépôt d’un dossier de demande d’enregistrement à l’ACPR, sur initiative de CentralPay, Mise en conformité organisationnelle : dispositifs internes de sécurité, confidentialité, gestion des incidents, continuité d’activité, Supervision permanente par CentralPay, incluant : Contrôle de l’usage de l’API, Reporting régulier sur l’activité, Formation obligatoire des équipes du DME, Validation des CGU utilisées auprès des Participants. 🔵 2. Partenaire Agent de Services de Paiement (Agent PSP) ➤ Cas d’usage typique Plateformes B2B avec flux financiers complexes, Outils de gestion financière ou de trésorerie pour tiers, Solutions SaaS intégrant l’encaissement et le reversement. ✅ Rôle de l’Agent L’Agent PSP agit en tant que représentant réglementaire de CentralPay pour la fourniture de services de paiement. Fonctionnalités : Collecte de données KYC/KYB des utilisateurs (niveau 1), Accompagnement à l’ouverture de comptes CentralPay, Détention d’un compte de collecte, utilisé pour encaisser les paiements des utilisateurs finaux, Gestion des transferts de fonds vers les comptes de paiement CentralPay de chaque bénéficiaire, Pilotage des reversements (PAYOUT) vers les comptes bancaires externes, Détention d’un compte de commission, Éventuellement, utilisation d’un compte de paiement propre pour ses propres encaissements. 🛡️ CentralPay reste responsable CentralPay reste pleinement responsable des services fournis à l’utilisateur final, L’agent agit dans le strict cadre du mandat qui lui est confié, Toute opération réalisée via la plateforme est auditable, traçable, et documentée. 📋 Contraintes réglementaires Signature d’un contrat d’agent, Enregistrement officiel sur le registre des agents de l’ACPR (via CentralPay), Évaluation stricte de la capacité organisationnelle du partenaire, Exigences renforcées en matière de : Contrôle LCB-FT, Protection des données, Traçabilité des flux financiers, Reporting périodique à CentralPay sur : Le volume d’activité, Les incidents, Le respect des procédures, Possibilité d’audit sur pièce ou sur site, Formations obligatoires pour les équipes opérationnelles. Déclaration Agent PSP (ACPR) Rôle de l’ACPR L’ACPR (Autorité de Contrôle Prudentiel et de Résolution), organe de la Banque de France, est le seul régulateur compétent pour valider les déclarations d’Agents d’un Établissement de Paiement ou de Monnaie Électronique comme CentralPay. L’ACPR traite uniquement avec les Établissements régulés, sans contact direct possible pour le futur Agent. Étapes de déclaration d’un Agent ÉtapeDescription1. Constitution du dossierRéalisée par CentralPay avec le concours du futur Agent.2. Réponses aux demandes ACPRPilotées par CentralPay avec l’aide du futur Agent.3. Décision de l’ACPRCommuniquée à CentralPay. 1. Responsabilités de l’Agent CentralPay prend en charge les obligations complexes ou techniques. Toutefois, l’Agent doit garantir un haut niveau de vigilance en matière de LCB-FT (Lutte Contre le Blanchiment de Capitaux et le Financement du Terrorisme). L’Agent est notamment responsable de : La compréhension de l’activité de ses sous-marchands ; La vérification de la réalité économique des opérations ; La lutte contre la fraude. L’Agent doit signer : Un Contrat Cadre d’Agent de Paiement avec CentralPay ; Des Conditions Générales d’Utilisation spécifiques aux vendeurs. Si l’Agent internalise certaines fonctions critiques (ex. vérification KYC), un Contrat d’Externalisation de Prestations Essentielles doit également être signé. 2. Devenir Partenaire Agent CentralPay Le processus d’enregistrement comme Agent s’étale sur plusieurs mois et suit les étapes suivantes : 2.1. Résumé des étapes ÉtapeDétails1. Compréhension du modèle– Explication des services rendus par l’Agent– Définition du modèle d’affaires– Validation par les services Juridique et Conformité de CentralPay2. Offre commerciale– Présentation par CentralPay3. Validation– Validation juridique et conformité– Accord sur l’offre commerciale et les tarifs4. Test & Intégration– Accès à la sandbox– Réunion projet avec l’équipe technique- Intégration technique5. Instruction ACPR– Collecte des éléments réglementaires– Constitution et dépôt du dossier auprès de l’ACPR6. Mise en production– Tests en environnement de recette– Passage en production 2.2. Pièces à fournir à CentralPay Phase 1 – Pré-constitution du dossier CGU du service de paiement Définition des activités régulées, services associés, modèle d’affaires Organigramme (y compris répartition des effectifs par service) Structure de l’actionnariat Flux prévisionnels sur 3 ans confiés à CentralPay Nombre d’enrôlements prévisionnels sur 3 ans Cas de reprise de KYC existant (migration) Préparation du contrat d’Agent Phase 2 – Déclaration auprès du régulateur Signature du contrat d’Agent CentralPay collecte et dépose les pièces suivantes : Kbis < 3 mois de la société et des sociétés gérantes Statuts à jour signés de la société et des sociétés gérantes Pièce d’identité couleur des dirigeants CV des dirigeants datés et signés Casier judiciaire des dirigeants Déclaration de non-condamnation des dirigeants Répartition de la détention des parts Kbis des personnes morales actionnaires (si applicable) Organigramme du Groupe (si applicable) PV d’AG récents (fusion, perte > 50% du capital, changement direction, etc.) Peuvent également être demandés par l’ACPR : Bilans et comptes de résultat récents États financiers en cours ou de l’année précédente Toute pièce jugée utile par le régulateur 2.3. Délais d’instruction Instruction par CentralPay : ~2 semaines après réception complète des pièces Délai de l’ACPR : jusqu’à 2 mois, avec premières questions sous 30 jours en général 2.4. Fin d’instruction Dès validation du dossier, l’Agent peut démarrer l’activité avec CentralPay Il est référencé dans les registres publics de l’ACPR avec un numéro d’enregistrement obligatoire dans les CGU et communications officielles 2.5. Particularité – Agents Télécom SVA (numéros surtaxés) Obligation de fournir un récapitulatif des minutes téléphoniques par opérateur Transmission du détail de répartition des encaissements à CentralPay Le service Conformité CentralPay s’assure que les marchands sont correctement crédités Déclaration Distributeur ME (ACPR) Les Établissements émetteurs de monnaie électronique comme CentralPay peuvent mandater des Distributeurs de Monnaie Électronique (DME) afin de collecter des fonds et d’assurer les échanges permettant l’achat et le remboursement de ME dans un réseau de participants défini. La déclaration d’un Distributeur de Monnaie Électronique se déroule en deux étapes : Le montage du dossier de déclaration : réalisé par CentralPay avec l’aide de son futur DME L’instruction du dossier à l’ACPR : réalisé par CentralPay. Elle ne nécessite pas de validation particulière de l’ACPR 1. Responsabilité du partenaire DME CentralPay réalise tous les processus complexes ou nécessitant de fortes compétences. Néanmoins, vous êtes toujours garant de la tenue d’un haut niveau d’exigence dans le suivi et l’application des règles de LCB-FT (Lutte Contre le Blanchiment et le Financement du Terrorisme). À ce titre, vous devez apporter à CentralPay des certitudes sur les conditions de réalisation des opérations qui passent par votre intermédiaire, notamment : La réalité économique de l’opération La lutte contre la fraude Les Établissements régulés qui font appel à des distributeurs restent responsables des opérations réalisées par ces derniers. Un cadre juridique précis est donc mis en place. Un statut de Distributeur de Monnaie Électronique passe par : La contractualisation d’un contrat Cadre de Distribution de Monnaie Électronique qui définit les relations entre les parties Des CGU d’utilisation de Monnaie Électronique Dans le cas où un DME internalise certaines fonctions dévolues à CentralPay dans le cadre de ses obligations règlementaires, un contrat de Prestations de Services Essentiels Externalisées devra être signé. C’est par exemple le cas si l’agent internalise la gestion des KYC ou réalise des interfaces de gestion qui ne permettrait pas à CentralPay d’assurer l’exécution du service sans le concours du PSEE. 2. Devenir partenaire DME Devenir Distributeur de CentralPay nécessite le suivi d’étapes qui s’étalent sur plusieurs semaines. Voici un guide qui permet de mieux comprendre les enjeux liés à l’acceptation, puis à l’instruction des dossiers de déclaration des Distributeurs. 2.1. Résumé des étapes Compréhension du modèle Explication des services apportés par le partenaire Définition de son modèle d’affaires Validation par le service Risque & Conformité de CentralPay Offre Commerciale Présentation Validation Validation du Partenaire par le service Risque & Conformité de CentralPay Validation de la proposition commerciale et des conditions tarifaires par le Partenaire Test & Intégration Mise en place de la sandbox Réunion de lancement de projet avec l’équipe technique Phase d’intégration technique Instruction du dossier ACPR Collecte des éléments nécessaires à la constitution du dossier Préparation du dossier Présentation du dossier Mise en production Validation de la recette Mise en production 2.2. Pièces à fournir à CentralPay Prochainement Tarifs Offres commerciales CentralPay propose 2 modèles d’offres commerciales : Les offres Starter et Medium, intégrant un forfait mensuel fixe et des frais par transaction simplifiés (ou « blind rate ») Les offres Major, intégrant également un forfait mensuel fixe, mais avec des frais par transaction plus détaillés (ou « interchange++ ») Dans ces deux modèles, les offres CentralPay intègrent les frais d’interchange et de réseaux cartes qui sont facturés par les banques. Vous n’avez donc aucun surcoût à prévoir. Consultez le tarif des offres CentralPay ➝ Frais d'interchange et réseaux cartes L’interchange correspond à la valeur chargée par l’établissement émetteur d’une carte de paiement (la banque de votre client) à l’établissement acquéreur (la banque du marchand). Les frais de réseaux carte (ou « Card Scheme Fees ») correspondent aux frais pris par les réseaux carte (Visa, Mastercard, CB) pour faire fonctionner le service. Des termes ont été définis pour désigner l’assemblage de ces frais : Interchange+Les frais d’Interchange + les frais des réseaux cartes (card scheme fees) Interchange++Les frais d’Interchange + les frais des réseaux cartes (card scheme fees) + les frais de service de l’établissement (CentralPay) Toutes les offres commerciales de CentralPay intègrent les frais d’Interchange+ ainsi que nos propres frais de service, vous n’avez donc aucun frais bancaire supplémentaire à prévoir pour réaliser vos transactions. Sauf mention contraire, des frais minimum de perception de 0.15 € sont prélevés sur l’IC++. 1. Frais d’interchange et réseaux carte (E-commerce) Type de carteInterchange Intrarégional (EEE)Interchange Interrégional (hors EEE)Carte de débit ou prépayéCB, VISA, MASTERCARD0,2 %1,15 %Carte de crédit ou débit différéCB, VISA, MASTERCARD0,3 %1,5 %Carte professionnelleCB0,9 %/Carte professionnelleVISA1,45 %2 %Carte professionnelleMASTERCARD1,45 %2 %Toutes cartesAMERICAN EXPRESSAucunAucun Réseau carteFrais de réseaux carte Intrarégional (EEE)Frais de réseaux carte Interrégional (hors EEE)Réseau CB (Cartes bancaires)0,030 %/Réseau VISA0,110 %0,700 %Réseau MASTERCARD0,390 %0,950 %Réseau AMERICAN EXPRESS1,600 %2,400 % 2. Frais d’interchange et réseaux carte (paiement de proximité) Type de carteInterchange Intrarégional (EEE)Interchange Interrégional (hors EEE)Carte de débit ou prépayéCB, VISA, MASTERCARD0,2 %1,15 %Carte de crédit ou débit différéCB, VISA, MASTERCARD0,3 %1,5 %Carte professionnelleCB0,9 %/Carte professionnelleVISA1,45 %2 %Carte professionnelleMASTERCARD1,45 %2 %Toutes cartesAMERICAN EXPRESSAucunAucun Réseau carteFrais de réseaux carte Intrarégional (EEE)Frais de réseaux carte Interrégional (hors EEE)Réseau CB (Cartes bancaires)0,030 %/Réseau VISA0,110 %0,700 %Réseau MASTERCARD0,390 %0,950 %Réseau AMERICAN EXPRESS1,600 %2,400 % Forfaits d'accompagnement Les forfaits d’accompagnement permettent une mise en service rapide, guidée par nos équipes support intégration (SI) et service client (SC). Les heures d’accompagnement vous permettent de déléguer certains paramétrages de votre compte et de solliciter des échanges visio : avec le SI pour les sujets techniques, avec le SC pour ceux d’ordre administratif / fonctionnels. 1. Accompagnement à l’intégration Smart Collection Accompagnement à l’intégration, au choixFrais (HT)En autonomie2 heures d’accompagnement équipe Service ClientInclus (offres Starter, Medium et Major Company)Accompagnement standardAnalyse technique du projet par équipe Service Intégration 2 heures d’accompagnement équipe Service Intégration 2 heures d’accompagnement équipe Service Client490 €Accompagnement avancéAnalyse technique et suivi par Responsable Service Intégration dédié3 heures d’accompagnement par Responsable Service Intégration dédié3 heures d’accompagnement par Responsable Service Client dédié1 990 € 2. Accompagnement à l’intégration Smart Collection et Easy Wallet Accompagnement à l’intégration, au choixFrais (HT)En autonomie3 heures d’accompagnement équipe Service ClientInclus(offres Medium et Major Partner)Accompagnement standardAnalyse technique du projet par équipe Service Intégration5 heures d’accompagnement équipe Service Intégration5 heures d’accompagnement équipe Service Client990 €Accompagnement avancéAnalyse technique et suivi par Responsable Service Intégration dédié10 heures d’accompagnement par Responsable Service Intégration dédié10 heures d’accompagnement par Responsable Service Client dédié2 990 € 3. Forfaits d’accompagnement horaire par le service client Accompagnement horaire au choix, utilisable pour déléguer des paramétrages de comptes, des interventions avec tests, des analyses spécifiques…Frais (HT)Forfait d’accompagnement 2 h2 heures d’accompagnement équipe Service Client, consommables par périodes de 30 minutes.250 €Forfait d’accompagnement 5 h5 heures d’accompagnement équipe Service Client, consommables par périodes de 30 minutes.490 €Forfait d’accompagnement 10 h10 heures d’accompagnement équipe Service Client, consommables par périodes de 30 minutes.890 € Logos et visuels Logos CentralPay Logo CentralPay SVG Logo CentralPay blanc SVG Logo CentralPay PNG Logo CentralPay blanc PNG Logos PaySecure 1. Logos Logo PaySecure classique PNG Logo PaySecure blanc PNG Logo PaySecure classique JPG 2. Visuels de réassurance (FR/EN) Réassurance – fond blanc Réassurance – fond transparent Réassurance – blanc Réassurance – fond blanc Réassurance – fond transparent Réassurance – blanc Visuels de réassurance (FR/EN) Intégrez un de ces visuels en dessous de votre formulaire de paiement CustomForm, ou simplement dans le footer de votre site afin de rassurer vos clients concernant la sécurité de leurs données de paiement. 1. Version française Réassurance 1 – classique Réassurance 1 – fond blanc Réassurance 1 – blanc Réassurance 2 – classique Réassurance 2 – fond blanc Réassurance 2 – blanc Réassurance 3 – classique Réassurance 3 – fond blanc Réassurance 3 – blanc Réassurance 4 – Avec Amex Réassurance 4 – Amex fond blanc Réassurance 4 – Amex blanc Réassurance 5 – Avec Amex Réassurance 5 – Amex fond blanc Réassurance 5 – Amex blanc Réassurance 6 – Avec Amex Réassurance 6 – Amex fond blanc Réassurance 6 – Amex blanc 2. Version anglaise Réassurance 1 – classique Réassurance 1 – fond blanc Réassurance 1 – blanc Réassurance 2 – classique Réassurance 2 – fond blanc Réassurance 2 – blanc Réassurance 3 – classique Réassurance 3 – fond blanc Réassurance 3 – blanc Réassurance 4 – Avec Amex Réassurance 4 – Amex fond blanc Réassurance 4 – Amex blanc Réassurance 5 – Avec Amex Réassurance 5 – Amex fond blanc Réassurance 5 – Amex blanc Réassurance 6 – Avec Amex Réassurance 6 – Amex fond blanc Réassurance 6 – Amex blanc
Lexique des paiements DésignationDéfinitionIdentifiant de Créancier SEPA (ICS)L’ICS est un numéro de référence unique qui identifie chaque émetteur de prélèvement. En France, il est composé de 13 caractères alphanumériques, dont les 2 premiers représentent le code pays ISO (FR pour la France).Disposer d’un ICS est un prérequis obligatoire pour réaliser des prélèvements. Le créancier doit faire la demande d’attribution de l’ICS auprès de sa banque. Le créancier conserve ensuite son ICS, même s’il change de banque ou s’il est multi-bancarisé.DébiteurPersonne physique ou morale qui doit une somme d’argent à une autre, appelée créancier, que ce soit dans le cadre de transactions commerciales, de prêts ou d’autres obligations financières.CréancierPersonne physique ou morale à qui une somme d’argent est due par une autre, appelée débiteur. Les créanciers (banques, entreprises ou particuliers qui ont prêté de l’argent ou fourni des biens ou services à crédit) ont le droit légal de réclamer le paiement de la dette, généralement formalisé par un contrat ou une autre forme d’accord.Émetteur (ou donneur d’ordre)Le payeur, c’est-à-dire la personne physique ou morale qui va émettre les fonds d’une transaction financière.BénéficiaireLe destinataire, autrement dit la personne physique ou morale qui va percevoir les fonds d’une transaction financière.Autorisation bancairePropre aux transactions par carte. Interrogation de l’acquéreur vers la banque du porteur de carte concernant le montant de la transaction. Suite au « code de retour banque », l’acquéreur est en mesure de savoir si la somme demandée est disponible, et si non pourquoi (fonds insuffisants, carte volée…). Une autorisation valide assure au marchand la possibilité de capturer la somme demandée jusqu’à 7 jours.Passerelle de paiement (ou Payment Gateway)Technologie agissant comme intermédiaire entre le site du marchand et le réseau de paiement qui permet d’assurer la transmission sécurisée d’informations liées aux paiements. Les passerelles vérifient également la disponibilité des fonds et autorisent les paiements, tout en offrant des fonctionnalités telles que la gestion des paiements récurrents et la détection de la fraude.Prestataire de Services de Paiement (ou PSP)Établissement financier qui fournit des services liés à l’acceptation et au traitement des paiements aux marchands. Ces services incluent également la gestion des comptes de paiements ouverts, la sécurité des transactions ainsi que la conformité réglementaire.KYB (Know your Business)Le KYB (Know Your Business) est un protocole d’authentification de l’identité et de la conformité des personnes morales, avant la création de leur compte de paiement. Imposée par le régulateur, cette vérification permet d’évaluer le niveau de risque marchand de ces dernières afin de prévenir toutes activités illégales telles que le blanchiment d’argent, la fraude et le financement du terrorisme (LCB-FT).Ce processus inclut la collecte et la vérification de documents tels que les statuts de l’entreprise, les informations sur les propriétaires et les dirigeants, les justificatifs d’adresse et les informations financières.KYC (Know your Customer)Le KYC (Know Your Customer) est un protocole d’authentification de l’identité et de la conformité des personnes physiques, avant la création de leur compte de paiement. Imposée par le régulateur, cette vérification permet d’évaluer le niveau de risque marchand de ces dernières afin de prévenir toutes activités illégales telles que le blanchiment d’argent, la fraude et le financement du terrorisme (LCB-FT).Ce processus inclut la collecte et la vérification de documents tels que les pièces d’identité, les preuves de domicile et les informations sur les activités professionnelles.Rapprochement d’un virementProcessus de vérification et de correspondance des factures émises enregistrées dans le compte de l’entreprise avec les paiements reçus. Ce traitement permet de s’assurer que toutes les transactions prévues ont bien été exécutées, de détecter toute anomalie ou erreur et de maintenir l’exactitude des enregistrements financiers de l’entreprise.Frais d’interchangeFrais payés par la banque du marchand (banque acquéreur) à la banque de l’acheteur (banque émettrice) lors d’une transaction par carte, afin de couvrir les coûts et les risques associés à la gestion des paiements. Ils varient en fonction de plusieurs facteurs, tels que le type de carte utilisée, le type de transaction et le pays dans lequel la transaction est effectuée.Frais de réseaux carteFrais facturés par les réseaux de cartes (CB, Visa, Mastercard…) aux banques et PSP qui traitent des paiements par carte. Ces frais couvrent les coûts liés à l’utilisation du réseau de paiement, notamment l’infrastructure technologique, la sécurité des transactions et le traitement des paiements.Interchange++Somme des commissions prélevées sur les opérations de paiement en ligne du marchand. Il est composé de :– Frais d’Interchange– Frais de réseaux de carte– Frais de services, facturés par le PSP qui assure le fonctionnement de la plateforme de paiement et des services associésCe calcul permet de déterminer le coût de revient exact de chacune des transactions.Open BankingEncouragé par la DSP2, l’Open Banking est une pratique financière permettant aux banques de partager de manière sécurisée les données financières de leurs clients avec des tiers autorisés, tels que des fintechs, à travers des API (interfaces de programmation applicative). Ce système bancaire ouvert vise à stimuler l’innovation et la concurrence dans le secteur financier, en permettant le développement de nouvelles applications et services qui peuvent offrir des expériences client améliorées, une gestion financière plus efficace et des offres personnalisées.Exemple : Initiation de paiementImpayé carte (ou chargeback / contestation / litige)Processus par lequel un titulaire de carte signale une transaction suspecte ou non autorisée à l’émetteur, en vue d’un remboursement ou d’une rétrofacturation. Les motifs de contestation peuvent inclure des transactions frauduleuses, des erreurs de facturation, des biens ou des services non reçus ou d’autres problèmes liés à l’utilisation de la carte.Rejet de prélèvement SEPAUn rejet de prélèvement se produit lorsqu’une demande de prélèvement est refusée par la banque du débiteur. Les raisons d’un rejet peuvent inclure des fonds insuffisants sur le compte du débiteur, des informations bancaires incorrectes, un mandat de prélèvement expiré ou non valide, ou une opposition au prélèvement de la part du débiteur.Lorsqu’un prélèvement est rejeté, les fonds ne sont pas transférés, et le créancier est informé du rejet pour qu’il puisse prendre les mesures appropriées.RIB (Relevé d’Identité Bancaire)Document fourni par une banque qui contient les informations nécessaires à l’identification d’un compte bancaire, afin de faciliter les opérations de virement ou de prélèvement. Le RIB inclut le numéro de compte, le code banque, le code guichet, l’IBAN (International Bank Account Number) ainsi que le BIC (Bank Identifier Code) de la banque.EEE (Espace Économique Européen)Zone économique composée des 27 pays membres de l’Union Européenne (UE) ainsi que de la Norvège, l’Islande et le Liechtenstein. L’EEE permet aux États membres de participer au marché unique de l’UE, offrant la libre circulation des biens, des services, des capitaux et des personnes.
Informations générales 1. Les deux modes d’intégration de Smart Collection La solution Smart Collection permet d’encaisser des paiements depuis divers moyens de paiement. Vous pouvez au choix : Créer et intégrer vos propres parcours de paiement (intégration CUSTOM), en consommant les services API de chaque moyen de paiement : Transaction par carte ➝ Transaction par virement ➝ Transaction par prélèvement SEPA ➝ Utiliser nos parcours de demande de paiement sécurisés (intégration SMART), grâce à notre service dédié : Demandes de paiement (PaymentRequest) ➝ Le paramètre EscrowDate peut influer sur la date de disponibilité des fonds d’une transaction (concerne uniquement les partenaires AGENT) ℹ️ Si vous choisissez l'intégration SMART, certaines fonctionnalités spécifiques comme les R-transactions, la gestion des libellés bancaires, la gestion des IBAN Virtuels… sont présentées dans la documentation dans les rubriques CUSTOM dédiées à chaque moyen de paiement. 2. À propos de l’intégration SMART La demande de paiement permet de générer un lien de paiement menant à une page de paiement hébergée par CentralPay. Votre client peut ainsi vous régler selon les conditions de règlement que vous avez déterminé (moyens et modes de paiement autorisés, délais de règlement…). Les transactions ainsi créées sont automatiquement liées à la demande de paiement et permettent d’actualiser son statut (non payé, partiellement payé, payé…). La demande de paiement doit être alimenté des conditions de règlement de votre panier ou de votre facture : Montant à régler Moyens de paiement acceptés (carte, virement, prélèvement, initiation de paiement) Modes de paiement acceptés (unitaire, par abonnement, paiement fractionné…) Référence de commande Description de commande Coordonnés clients Délais de règlement autorisé Délais d’expiration du lien … Le lien de paiement peut être adressé à vos clients depuis : Vos tunnels de vente ou interfaces web, Vos outils de communications (email, sms, courriers via QR code…) Le service de notifications email / sms de CentralPay La page de paiement permet ensuite au client de réaliser sa ou ses transactions : Visualisation des informations de la demande de paiement Sélection du moyen ou mode de paiement Renseignement des données clients Renseignement des coordonnées de paiement
Refund > See more about Refund for Card Transaction See more about Refund for SCT Transaction See more about Refund for SDD Transaction
Utilisation des API CentralPay L’API utilise un protocole HTTP pour transporter et renvoyer toutes les réponses formatées en JSON. Les API CentralPay sont des API REST permettant de faciliter l’intégration de nos services de paiement. CentralPay mets à disposition de ses utilisateurs deux API : L’API « Core Payment » : Pour toutes les fonctions liées aux opérations de paiement L’API « Onboarding » : Pour toutes les fonctions liées à la création de comptes de paiement et de monnaie électronique (accessibles aux partenaires uniquement) 1. Fonctions Toutes les fonctions utilisent les types « MIME » : « application/x-www-form-urlencoded » et « multipart/form-data ». Les fonctions utilisent les méthodes suivantes : Méthode HTTP POST pour la création ou la mise à jour d’un objet Méthode HTTP GET pour la recherche d’objets Méthode HTTP DELETE pour supprimer des objets 2. Authentification L’API de CentralPay utilise l’authentification de base HTTP pour l’authentification. Toutes les demandes adressées à notre API doivent être authentifiées (intégrant le nom d’utilisateur et le mot de passe fournis par la plateforme) et doivent être effectuées via HTTPS. Vous pouvez récupérer vos identifiants API depuis votre Portail utilisateur : Administration Mon compte Technique Cliquez ensuite sur Identifiant API Modifier Générer Copiez le mot de passe API Mettre à jour ℹ️ Certains services comme le cardToken requièrent la déclaration de votre MerchantPublicKey, également disponibles depuis les liens présentés ci-dessus. Accès : Compte Technique – Portail Utilisateur de RCT Compte Technique – Portail Utilisateur de PROD MerchantPublicKey La MerchantPublicKey permet de s’authentifier sur le service API cardToken qui ne nécessite pas d’autre type d’authentification et permet d’identifier un marchand.Cette clé est trouvable dans l’onglet Technique des détails de votre compte sur notre portail utilisateur : 3. HTTP Request Toujours utiliser HTTP-Header pour les formats de sérialisation (user_agent…) Le Content-Type (application/x-www-form-urlencoded ou multipart/form-data) doit être renseigné pour toutes les requêtes dans l’en-tête. L’utilisation du champ Idempotence-Key dans l’en-tête HTTP permet d’identifier la requête qui a été envoyée. Si la même valeur Idempotence-Key est envoyée à nouveau, la demande sera considérée comme déjà traitée et ne sera pas relancée. Ce contrôle permet au commerçant d’éviter d’envoyer des entrées en double. Cette clé doit être construite avec un hachage sha1 des paramètres de la demande (sans date) concaténés comme ceci : Idempotence-Key = sha1(card[number] + card[cvc] + card[expirationMonth] + card[expirationYear] + card[check] + merchantPublicKey) ℹ️ La clé "Idempotence-Key" est valable 24 heures. 4. HTTP Response Dans chaque réponse HTTP, le champ Request-Id est inscrit dans l’en-tête HTTP. ℹ️ Si vous avez une demande spécifique à envoyer via l'API REST de CentralPay, veuillez contacter le support ou votre référent CentralPay.
Demandes de paiement La demande de paiement (ou PaymentRequest) est le service vous permettant de générer des liens de paiement. Vous pouvez créer des demandes de paiement par API ou via le Portail utilisateur. La demande de paiement peut également être couplé au service de notification de CentralPay, vous permettant d’adresser facilement un lien de paiement par email ou sms à vos clients et de programmer des relances automatisées. 1. Création par API 1.1. Créer une PaymentRequest Vous trouverez ci-dessous les moyens de paiement disponibles et les valeurs API correspondantes dans le service PaymentRequest : Moyen ou mode de paiement souhaitéValeurs API à renseignerPaiements unitairesTransaction par cartepaymentMethod[]=TRANSACTIONPré-autorisation sur carte (réservé aux activités de locations)paymentMethod[]=TRANSACTION transaction[source]=DPVérification carte (transaction à 0 €)paymentMethod[]=TRANSACTION transaction[source]=RITransaction par virement bancairepaymentMethod[]=SCT_TRANSACTIONTransaction par prélèvement SEPApaymentMethod[]=SDDsdd[remittanceInformation]Transaction par initiation de paiementProchainementPaiements récurrentsAbonnement par cartepaymentMethod[]=SUBSCRIPTION subscriptionModel[subscriptionModelId]Abonnement par prélèvement SEPApaymentMethod[]=SUBSCRIPTIONsubscription[source]=SDDsubscriptionModel[subscriptionModelId]Paiement fractionné par cartepaymentMethod[]=INSTALLMENTintallment[intervalUnit]installment[intervalCount]installment [iterationCount]Paiement fractionné par prélèvement SEPApaymentMethod[]=INSTALLMENTinstallment[source]=SDDintallment[intervalUnit]installment[intervalCount]installment [iterationCount] Si vous souhaitez autoriser plusieurs moyens ou modes de paiement dans votre PaymentRequest, vous devez renseigner plusieurs fois l’objet paymentMethod. Exemple : paymentMethod[]=TRANSACTION paymentMethod[]=SCT_TRANSACTION Attention, certaines combinaisons de moyens ou modes de paiement peuvent rentrer en conflits et votre PaymentRequest pourra retourner une erreur. Par exemple, vous ne pouvez pas autoriser une TRANSACTION et une SUBSCRIPTION, cependant vous pouvez autoriser une TRANSACTION et un INSTALLMENT. Voici les informations principales concernant d’autres valeurs à renseigner lors de la création d’une PaymentRequest : DésignationDéfinitionamountMontant de la demande de paiement en centimesmerchantPaymentRequestIdRéférence personnalisée (votre numéro de commande ou facture par exemple) que vous pourrez utiliser pour rapprocher le paiement. Cette valeur sera visible par votre client dans la page de paiement.descriptionDescription personnalisée (nom du produit ou du service vendu). Cette valeur sera visible par votre client dans la page de paiement.additionalData[*]Donnée clé-valeur libre, vous permettant de transiter une ou plusieurs données (références de factures, numéro client etc…). N’est pas visible par votre client dans la page de paiement.createCustomerCréation TRUE / FALSE d’un compte Customer (permet notamment l’enregistrement du moyen de paiement client : carte, mandat SEPA, et création d’un IBAN virtuel dédié au Customer)breakdown[customerId]Sélection d’un Customer déjà existant ℹ️ Pour les transactions par virement SEPA, vous pouvez définir si vous souhaitez afficher l'IBAN Virtuel dédié au Customer ou générer un IBAN Virtuel à usage unique (SCT) depuis les paramètres de vos Points de Vente. 1.2. Envoyer une PaymentRequest par email / sms Lors de sa création, vous pouvez demander à CentralPay d’adresser la demande de paiement à votre client. Il existe deux méthodes d’envoi : Via le mailer par défaut des PaymentRequest : CentralPay adresse la demande de paiement depuis un modèle d’email/sms standardisé et depuis l’email expéditeur renseigné dans votre point de vente (ou à défaut l’email expéditeur de CentralPay « no-reply@centralpay.eu »). Pour cela vous devez [prochainement] Via le service de notification email/sms de CentralPay : CentralPay adresse la demande de paiement selon le scénario et les modèles de communication que vous avez paramétrés. Ce service permet notamment l’automatisation de relances clients, basés sur les paramètres de la demande de paiement (délais de paiement, avancement du paiement…). Pour cela vous devez [prochainement] 1.3. Fonctions spécifiques Envoyer une demande de paiement à montant libre (multi-moyens de paiements) Il est possible d’autoriser la modification du montant à régler (avec pour maximum le montant initial), afin que vos payeurs puissent régler la somme due depuis plusieurs moyens de paiements ou à des moments différents. Exemple : Cas d'une demande de paiement de 500€ :• Réglement de 250€ en virement, puis 250€ en carte• Ou 300€ avec une première carte, puis 200€ avec une autre• Ou réglemenet de 350€ avec une carte, puis revenir plus tard pour régler les 150€ restants avec cette même carte Pour ce faire, vous devez [prochainement] Envoyer une demande de paiement à plusieurs destinataires Il est possible d’adresser une demande de paiement à plusieurs destinataires avec un montant différent à régler pour chacun d’entre eux. Ainsi : Chaque participant reçoit une notification e-mail ou SMS détaillant l’objet du service à régler Les montants sont fixés par l’initiateur ou laissé libre à chaque participant qui règle le montant souhaité Les dates paramétrées à la demande (création, expiration…) permettent de générer des notifications vers chaque participant Pour ce faire vous devez [prochainement] 2. Création depuis le Portail Utilisateur 2.1. Création et types de demandes de paiement Vous pouvez créer une demande de paiement depuis le Portail utilisateur Demandes de paiement Liens de paiement Créer . Les demandes de paiement créées depuis le Portail utilisateur sont obligatoirement adressées à vos clients par CentralPay. En fonction de vos besoins, vous devrez choisir l’un des types de demandes suivant : Demande instantanée : Une demande simple, envoyée depuis les expéditeurs et les templates emails / sms standards de CentralPay Demande programmée : Une demande avancée, utilisant les modèles de communication, scénarios et règles d’envoi/de relance que vous aurez préalablement paramétrés depuis le service de notifications email/sms de CentralPay. Une demande programmée adressée sans avoir sélectionné de scénario de notification sera automatiquement requalifiée en demande instantanée Une fois créée, vous pouvez accéder à la page de paiement en cliquant sur le détail de la demande de paiement Formulaire de paiement . Ainsi, vous pourrez retransmettre à votre client l’URL de la page en cas d’erreur d’envoi. Accès : Portail Utilisateur de RCT – Demandes de paiement Portail Utilisateur de PROD – Demandes de paiement 2.2. Les profils de demandes de paiement Afin de faciliter la création de demandes de paiement, vous avez la possibilité de créer des profils prédéfinis intégrant les principaux paramétrages de la demande : Point de vente Devise Langue Moyens de paiement autorisés Limite de paiement (délais de paiement contractuel) Expiration du lien (délais avant expiration du lien) Scénarios de notification Reroutage de l’email de confirmation de paiement Règles d’affichage (paramètres de la page de paiement) Création de Customer Pièces jointes Vous pouvez ensuite utiliser ce profil lors de la création de vos demandes de paiement programmées via le Portail Utilisateur, ou via import de fichiers plats. 2.3. Création de demandes de paiements par import de fichiers plats Depuis le Portail utilisateur Demandes de paiement Liens de paiement Importer , vous pouvez déposer un fichier d’importation de demandes de paiement. Cette utilisation peut être recommandée pour les entreprises souhaitant adresser en fin de mois et relancer automatiquement une liste de créanciers. Téléchargez le modèle au format CSV➝ Téléchargez le modèle au format JSON ➝ Quelques informations importantes : DésginationDéfinitionprofil_uuid*UUID du profil de demande de paiementmerchant_payment_request_idRéférence personnalisée (votre numéro de commande ou facture par exemple) que vous pourrez utiliser pour rapprocher le paiement. Cette valeur sera visible par le payeur dans la page de paiement.descriptionDescription personnalisée (nom du produit ou du service vendu). Cette valeur sera visible par votre client dans la page de paiement.total_amount*Montant de la demande de paiement. À renseigner en doubles décimales avec un séparateur « . » (ex : 500.00 pour 500€).last_nameNom de famillefirst_namePrénomemail*Email du destinatairephoneTéléphone du destinataire au format international (ex : 33612345678). create_customerCréation d’un profil client « Customer » : renseigner « O » pour OUI ou « N » pour NONlink_expiration_dateDate d’expiration de la demande de paiement (date à laquelle le client ne pourra plus vous régler)deadlineDate limite de paiement (date à laquelle votre client doit vous avoir réglé, et à partir de laquelle il est en retard de paiement).receipt_emailEmail sur lequel vous souhaitez rerouter l’email de confirmation de paiementlanguage*Langue de la communication et de la page de paiement (FRE pour français, ENG pour anglais…)Les champs avec un * sont obligatoires.
MERCHANT-ENROLLMENT status This page lists the possible values returned by the status field in the EnrollmentWorkflow object. These statuses indicate the current state of a merchant onboarding process initiated through CentralPay’s API or user portal. 📌 Status List StatusDescriptionAPI_CALLThe enrollment was initiated via API. The workflow has been created but no validation has occurred yet.VALIDATIONThe onboarding request is currently under validation (e.g., verifying provided data and uploaded documents).ON_GOINGThe process is ongoing. The merchant is expected to provide more information or complete additional steps.OVERRIDECentralPay has overridden a previous decision and resumed processing the enrollment.REFUSEDThe enrollment request has been refused. CentralPay may have detected a regulatory issue, risk, or missing eligibility requirement.ACCEPTEDThe merchant enrollment is complete and validated. The merchant can now use their CentralPay account. 🔁 Status Flow Overview ✅ Standard Status Flow API_CALL → VALIDATION → ON_GOING → ACCEPTED This is the default progression for a successful enrollment: API_CALL – The enrollment has been created via API. No validation has started yet. VALIDATION – CentralPay is verifying the submitted information and documents. ON_GOING – The merchant is expected to provide additional data or complete onboarding steps. ACCEPTED – The enrollment has been approved. The merchant can now use their CentralPay account. ❌ Alternative Flow – Rejection API_CALL → VALIDATION → REFUSED or API_CALL → VALIDATION → ON_GOING → REFUSED The enrollment is rejected during the process, either early on or after attempted completion. Common reasons include: Invalid or non-compliant documents Ineligible merchant activity Excessive financial or regulatory risk 🔁 Manual Override After Refusal REFUSED → OVERRIDE → VALIDATION / ON_GOING If new or corrected information is provided, a CentralPay operator may resume the process after an initial refusal. The OVERRIDE status indicates that a manual decision has been made to re-open the enrollment flow. 💬 Notes An Agent or DME may retrieve the enrollment status via API to track progress. CentralPay sends webhooks to the configured endpoint when the enrollment status changes (e.g., ACCEPTED, REFUSED). Once the enrollment is ACCEPTED, the merchant’s profile becomes active, and their account is ready for use.
Portail Marchand Le Portail utilisateur est une interface web connectée aux APIs de CentralPay. Il permet de consulter l’activité et d’administrer votre compte CentralPay. Les comptes ayant des droits « Partenaires » peuvent également consulter l’activité des comptes de leurs sous-marchands. Accès : Portail Utilisateur de recette (RCT) Portail Utilisateur de production (PROD) 1. Fonctionnalités Le Portail utilisateur permet notamment : De consulter les opérations comptables du compte De consulter les paiements par carte (« transaction ») De consulter les paiements par virement SEPA (« sctTransaction ») De consulter les paiements par prélèvement SEPA (« sddTransaction ») De créer et de consulter les demandes de paiement (« paymentRequest ») De créer et de paramétrer les profils clients (« customer ») De créer et de paramétrer les points de vente (« pointOfSale ») De paramétrer les notifications Smart Push (templates, scénarios …) D’initier et de gérer les paramètres de reversement (« payout ») De générer des exports et de télécharger les rapports financiers mensuels Pour les comptes « Partenaires » uniquement : De créer et de consulter les demandes d’onboarding (« merchant-enrollment ») De consulter les opérations et de paramétrer les comptes de leurs sous-marchands ℹ️ Les comptes ayant des droits "Participant" (sous-marchands/participants de partenaires) peuvent uniquement consulter les opérations dont ils sont bénéficiaires ("transfer") et gérer leurs paramètres de reversement ("payout"). 2. Les profils utilisateurs du Portail Ils représentent des personnes physiques pouvant accéder à un ou plusieurs comptes CentralPay ainsi qu’à tout ou partie des services du Portail utilisateur. 2.1. Gestion des profils utilisateurs « Legal » et « Natural » Lors de la création du compte CentralPay, le responsable ayant réalisé l’onboarding (dirigeant ou personne physique disposant d’une délégation de pouvoir) se voit attribuer un profil utilisateur dit « Legal ». Il dispose ainsi de tous les droits administrateur du compte, mais également de droits légaux permettant de paramétrer les éléments les plus sensibles du compte : Paramètres du compte de paiement : Changement d’IBAN de sortie (payout) Changement des conditions de reversements sur compte bancaire Mise à jour des documents de société Paramètres des utilisateurs : Création de nouveaux utilisateurs « Legal » Prochainement Une fois le compte créé, vous avez la possibilité de créer autant de profils utilisateurs que nécessaire en renseignant leur nom, leur prénom, leur email et leur rôle utilisateur (définissant les droits qu’ils auront sur le compte). Les profils ainsi créés sont nommés « Natural ». ℹ️ Si vous disposez de plusieurs comptes CentralPay et que vos équipes doivent avoir accès à ces différents comptes, créez leur profil utilisateur depuis l’un d’entre eux, puis demander à CentralPay d’affecter leur profil à vos autres comptes. Ils bénéficieront ainsi d’un unique centralisé pour tous ces comptes. Accès : Portail Utilisateur de RCT – Gestion des profils utilisateurs BO Portail Utilisateur de PROD – Gestion des profils utilisateurs BO 2.2. Gestion des rôles et droits des profils utilisateurs « Natural » Les droits des profils utilisateurs « Natural » sont régis par leur rôle utilisateur. Le rôle comprend une liste de droits (lecture seule, création, modification, suppression) paramétrables par service (transaction, demandes de paiement, règles d’acceptation…). Ces droits peuvent être différents en fonction des services sélectionnés. Les utilisateurs disposant des droits nécessaires peuvent créer des rôles pour chaque équipe de leur entreprise, cependant des rôles préétablis sont disponibles nativement : Standard Admin : Accès complet à toutes les fonctionnalités du Portail utilisateur (excepté les fonctionnalités admin). Attention, ce rôle comprend des accès à des services sensibles comme les règles d’acceptation, les whitelists, les blacklists, les créations d’utilisateurs Portail utilisateur, les créations de rôles utilisateurs du Portail, la création et la gestion d’utilisateurs API… Standard read only : Prochainement Prochainement Contactez le service client CentralPay si vous avez besoin d’aide pour la création de rôles personnalisés. Quelques précisions importantes concernant les rôles : Les rôles sont cumulables, un utilisateur peut ainsi se voir assigner plusieurs rôles Les droits des rôles sont héritables, ainsi un utilisateur ayant le droit de créer d’autres profils utilisateurs ne pourra affecter qu’un rôle similaire ou inférieur au sien Accès : Portail Utilisateur de RCT – Gestion des rôles utilisateurs BO Portail Utilisateur de PROD – Gestion des rôles utilisateurs BO 2.3. Gestion des catégories de point de vente Si vous avez le besoin de limiter l’accès d’utilisateurs à certains points de ventes, vous pouvez créer des catégories, les affecter à vos points de ventes puis les affecter à vos profils utilisateurs. Exemple : Un utilisateur ayant des droits de création de demandes de paiement ne pourra le faire que sur les points de ventes de sa catégorie. Il ne pourra également visualiser que les demandes de paiement émises via les points de vente de sa catégorie. Contactez le service client CentralPay si vous avez besoin d’aide pour la création de catégories de point de vente personnalisées. Accès : Portail Utilisateur de RCT – Gestion des catégories de point de vente Portail Utilisateur de PROD – Gestion des catégories de point de vente 3. Liste des types d’opérations visibles sur le Portail utilisateur Type d’objetValeurFonctionAUTHORIZATIONDébitAutorisation de blocage d’un montant d’une carte bancaireTRANSACTIONCréditTransaction carteTRANSACTION_CANCELDébitAnnulation de transaction carteREFUNDCréditRemboursement transaction carteREFUND_CANCELDébitAnnulation d’un remboursement transaction carteDISPUTEDébitImpayé suite à la contestation d’une transaction carteDISPUTE_WONCréditAnnulation d’un impayé carteTRANSFERDébitTransfert de fonds entre comptes CentralPayTRANSFER_CANCELCréditAnnulation transfert en attenteTRANSFER_REVERSALCréditRetour d’un transfert validéPAYOUTDébitVirement sortant du compte CentralPayPAYOUT_CANCELCréditAnnulation d’un virement sortantPAYOUT_REVERSALCréditRetour d’un virement sortant validéSCT_TRANSACTIONCréditVirement entrantSCT_TRANSACTION_CANCELDébitAnnulation virement entrant avant son arrivéeSCT_TRANSACTION_REFUNDDébitAnnulation virement entrant après son arrivée par le marchandSCT_TRANSACTION_REVERSALDébitAnnulation virement entrant après son arrivée par CentralPayCREDITDébitCrédit sur carte non lié à une transactionCREDIT_CANCELCréditAnnulation d’un crédit sur carteSDD_TRANSACTIONCréditPrélèvement SEPA d’un compte bancaire externeSDD_TRANSACTION_CANCELDébitAnnulation d’un prélèvement d’un compte externe avant son arrivéeSDD_TRANSACTION_REVERSALDébitRemboursement d’un prélèvement d’un compte externe après son arrivéeDEPOSITCréditChargement d’une somme sur un compte CentralPay
Page de paiement (SmartForm) La page de paiement (aussi appelée SmartForm) est une page hébergée et sécurisée par CentralPay destinée à la collecte des données clients et de leurs coordonnées de paiement. Générée via le service de demande de paiement, elle permet à vos clients de visualiser les détails de cette demande (montant, référence de commande…) et de sélectionner un moyen de paiement autorisé avant de passer à l’étape de règlement. 1. Paramétrage de la page Vous pouvez créer un ou plusieurs modèles de page afin de personnaliser votre parcours de paiement. Ci-dessous la liste des éléments paramétrables sur la page : DésignationDéfinitionNomNom du modèle de pageTemplate par défautCoche permettant de définir si ce modèle doit s’appliquer par défaut (les demandes de paiement créées sans modèle utiliseront ce dernier)Forcer la création du CustomerCoche permettant de forcer systématiquement la création d’un Customer à la création de la demande de paiement. Le paramètre de création du Customer renseigné sur les demandes de paiements sera ignoré. Note : CentralPay ne créera pas de nouveau Customer si son email ou son numéro de téléphone sont déjà utilisés par un autre Customer, et affectera la demande à ce dernier.URL de redirectionURL de redirection après paiement. URL fixe, vous pouvez cependant choisir d’alimenter dynamiquement cette valeur par API pour chaque PaymentRequest si tel est votre besoin.Délais de redirectionDélais de redirection vers l’URL de redirection après paiement. Champ vide : pas de redirection, 0 : redirection immédiate, autre valeur : nombre de secondes avant la redirectionURL d’annulationURL de redirection en cas d’annulation avant paiement. URL fixe, vous pouvez cependant choisir d’alimenter dynamiquement cette valeur par API pour chaque PaymentRequest si tel est votre besoin.Couleur du texteCouleur du texte de la page de paiementCouleur des boutonsCouleur des boutons de la page de paiementChamps supplémentairesChamps supplémentaires qu’il est possible d’ajouter aux parcours de paiement par carte (CB) ou par virement. Utilisé pour collecter des données clients complémentaires si nécessaire (adresse, nom, prénom…). Accès : Portail Utilisateur de RCT – Paramétrage formulaire Portail Utilisateur de PROD – Paramétrage formulaire 2. Personnalisation du logo affiché sur le SmartForm Le logo affiché sur le SmartForm est celui que vous aurez renseigné dans les paramètres du point de vente utilisé pour votre demande de paiement. Par défaut, le logo de CentralPay est affiché.
SCT Transaction Articles SCT Transaction SCT Transaction Reversal Bank Reconciliation Bank Reconciliation external SCT Transaction See more about SCT Transaction SCT Transaction Reversal See more about SCT Transaction Reversal Bank Reconciliation See more about Bank Reconciliation Bank Reconciliation external See more about Bank Reconciliation
Portail Débiteur Le portail client CentralPay est l’interface des profils clients (Customer). Il permet à vos clients de : Consulter leur historique de paiement, D’administrer leurs opérations en cours (mise à jour de leur moyen de paiement par défaut, résiliation d’abonnement…) Mais aussi d’interagir avec vous en cas de question concernant une opération (formulaire de contact). Ce portail est principalement utilisé pour l’administration des paiements récurrents par les clients. Les équipes conformité de CentralPay peuvent requérir que l’URL de ce portail soit intégrée dans le pied de page ou les conditions générales de votre site marchand. Pour s’y connecter, vos clients ont deux options : Soit via la page d’accueil du portail Client, en renseignant les informations d’un de leurs paiements opéré avec votre compte CentralPay : Portail Client de recette (RCT) Portail Client de production (PROD) Ou en direct via le lien communiqué dans les emails automatique de création d’abonnement / de paiement fractionné, ou en intégrant le CustomerID visible dans votre Portail Utilisateur : Compte Customer Détail CustomerId Portail Client de RCT : Prochainement Portail Client de PROD : Prochainement
Retours, statuts et hooks 1. Statuts liés aux demandes de paiement Consultez les Statuts Payment Request ➝ 2. Webhooks liés aux demandes de paiement Les demandes de paiement permettant indirectement la création de transactions cartes, SCT et SDD mais aussi d’autres objets comme les Customer, Subscription ou Installment, selon les cas d’usages, il peut être utile de suivre les webhooks associés. Consultez les Webhooks PaymentRequest ➝ Consultez les Webhooks Transaction ➝ Consultez les Webhooks SCT Transaction ➝ Consultez les Webhooks SDD Transaction ➝ Consultez les Webhooks Customer ➝ Consultez les Webhooks Subscription ➝ Consultez les Webhooks Installment ➝
SDD Transaction Articles Mandate SDD Transaction SDD Transaction Reversal Mandate See more about Mandate SDD Transaction See more about SDD Transaction SDD Transaction Reversal See more about SDD Transaction Reversal
TRANSFER status This page lists and describes the status values associated with the Transfer object. These statuses reflect the progression of a fund transfer operation created via the /transfer endpoint in CentralPay’s API. Status values StatusDescriptionCREATEDThe transfer has been successfully created and registered. It has not yet been executed.SCHEDULEDThe transfer is scheduled for automatic execution at a defined date/time.PENDINGThe transfer is being processed. Execution is in progress but not yet finalized.CANCELLEDThe transfer was cancelled before execution. No movement of funds occurred.PROCESSEDThe transfer was processed by CentralPay. Funds have been deducted from the source wallet.DONEThe transfer was successfully completed and the funds have been credited to the target account or wallet.FAILEDThe transfer could not be executed due to an error. No debit occurred or the operation was reversed.REVERSEDThe transfer was previously executed but has since been reversed. Funds were returned to the source wallet. Status lifecycle ✅ Standard flow CREATED → SCHEDULED → PENDING → PROCESSED → DONE This is the typical status flow when the transfer is executed successfully. ⚠️ Alternative flow (error or cancellation) CREATED → CANCELLED If the transfer is cancelled before execution. CREATED → SCHEDULED → PENDING → FAILED If the transfer encounters an error during processing (e.g., insufficient funds, invalid wallet, technical issue). DONE → REVERSED If the transfer was previously executed but later reversed (e.g., manual operation or compliance reversal). Notes Only CREATED or SCHEDULED transfers may be cancelled manually. A FAILED status usually indicates validation errors (e.g. insufficient funds, inactive wallet, invalid beneficiary). The REVERSED status applies when a reversal is triggered using the /transferReversal endpoint. Status fields are returned in the status property of the Transfer JSON object and may be monitored using the API or relevant webhooks.
Portail d'inscription Le portail d’inscription de CentralPay permet la création d’un Compte CentralPay et d’un compte de paiement : de la création du profil utilisateur, jusqu’à la contractualisation, en passant par la collecte du KYC/KYB. Il interagit avec l’API Onboarding de CentralPay. Pour les comptes « Partenaires », il permet donc de créer des sous-marchands facilement depuis un portail hébergé par CentralPay, et d’ainsi éviter une intégration complète de l’API Onboarding. Pour adresser un lien d’onboarding à l’un de vos futurs sous-marchands, vous pouvez utiliser le service de création de compte de paiement. Accès : Portail d’Inscription de RCT Portail d’Inscription de PROD
Informations générales 1. Fonctionnement Une transaction carte comprend une succession d’actions : 1. Authentification 3DS 2.0 Elle permet de s’assurer que la personne réalisant la transaction est bien le titulaire de la carte. La banque du client analyse les nombreux facteurs liés au paiement adressés par CentralPay (adresse IP, localisation, appareil utilisé…) et les compare aux données habituelles de son client : Si les données ne concordent pas ou que le montant de la transaction est important, elle requière une identification manuelle via un code adressé par SMS ou via son application bancaire (« authentification forte » ou « SCA ») Sinon, elle autorise directement le paiement (« Frictionless ») 2. Autorisation bancaire Demande effectuée par CentralPay à la banque du payeur permettant de vérifier la validité et la provision de sa carte. Les fonds « autorisés » sont bloqués jusqu’à la réalisation de la capture des fonds. Si aucune capture n’est réalisée sous un délai de 7 jours, les fonds « autorisés » sont libérés et le marchand devra renouveler son autorisation. Pour les activités éligibles (location, hôtellerie…), le service de « pré-autorisation » donne la possibilité au marchand d’étendre le délai d’autorisation jusqu’à 30 jours. 3. Capture La capture permet d’initier le débit de la carte sur la base d’une autorisation ou d’une pré-autorisation. Un marchand peut réaliser une capture complète ou partielle du montant autorisé. 2. Types et réseaux de cartes acceptés Les cartes de paiement sont émises par les banques ou les établissements de paiement agréés, elles peuvent être badgées par un ou plusieurs réseaux de carte (aussi nommés « Card Scheme »). Les réseaux acceptés par CentralPay sont : Carte Bancaire VISA MasterCard American Express En France, la majorité des cartes émises sont co-badgées CB et VISA ou CB et Mastercard. Dans ce cas, le client doit avoir la possibilité de choisir le réseau qu’il souhaite utiliser. Les cartes peuvent être de débit ou de débit différé / crédit (en France la majorité des cartes sont de débit), et peuvent être des cartes de particulier (dit « Consumer ») ou des cartes de professionnels (dit « Corporate »). À noter que ces paramètres impactent le coût de la transaction pour le marchand (interchange bancaire et frais de réseaux carte).
Subscription Articles Subscription Model Subscription Invoice & invoiceItem Subscription Model See more about Subscription Model Subscription See more about Subscription Invoice & invoiceItem See more about Invoice & invoiceItem
TRANSFER REVERSAL status This page provides the list of statuses associated with the Transfer Reversal object, accessible via the /transferReversal endpoint. A Transfer Reversal allows you to cancel or refund a previously created transfer, typically used to revert funds between wallets when an operation is aborted or updated after execution. 📌 Status List StatusDescriptionPENDINGThe reversal has been requested but not yet processed.IN_PROGRESSThe reversal request is currently being executed.DONEThe reversal has been successfully completed.REFUSEDThe reversal has been refused. This may be due to authorization failure, insufficient funds, or policy restrictions.CANCELLEDThe reversal request was cancelled before being processed. These statuses are returned in the status field of the Transfer Reversal object and can be queried through the API to track reversal lifecycle. 🔁 Status Flow Overview ✅ Standard Status Flow PENDING → IN_PROGRESS → DONE This is the expected successful path for a properly submitted reversal. ❌ Alternate Outcomes Rejected during or after processing: PENDING → REFUSEDPENDING → IN_PROGRESS → REFUSED Cancellation before processing: PENDING → CANCELLED 🔍 Notes A reversal can only be initiated if the original transfer is eligible. Once DONE, the reversal is final and reflected in both wallets. Status changes can be tracked via webhook notifications if configured.
Modèle Marchand Le modèle Marchand s’adresse aux entreprises (personnes morales) qui souhaitent utiliser la plateforme CentralPay pour encaisser des paiements pour leur propre compte dans le cadre d’une activité de vente de biens ou de services. 1. 🧩 Description du modèle Ce modèle vous donne accès à l’ensemble des services de Smart Collection, la solution d’encaissement complète proposée par CentralPay. 🔗 Plus d’informations sur Smart Collection Les fonctionnalités incluses sont les suivantes : 🏦 Le compte CentralPayUn compte de paiement dédié à votre activité, avec IBAN individuel, suivi des opérations et reversements. 🧰 Les services liés au compteOutils de gestion, profils utilisateurs, accès API, notifications, reporting… 💡 Le service d’encaissement SmartCentralisation de vos flux, routage automatisé, gestion des statuts et des reversements. 💳 Transactions par carte bancaireAcceptation Visa/Mastercard, 3D Secure, Apple Pay/Google Pay, gestion des remboursements et des contestations. 💶 Transactions par virementGénération d’IBAN virtuels, notifications de réception, rapprochements automatiques. 🧾 Transactions par prélèvement SEPADébits ponctuels ou récurrents, gestion des mandats, suivi des rejets. 2. 💰 Frais et commissions Le modèle Marchand donne lieu à deux types de frais : 🔹 Forfait plateforme Un forfait mensuel fixe est appliqué pour l’accès à la plateforme et aux services associés. Ce forfait peut être : Prélevé automatiquement par SEPA mensuel, Facturé annuellement par virement SEPA, Déduit de votre compte CentralPay selon les modalités prévues dans votre contrat. 🔹 Frais de service Des commissions variables sont appliquées en fonction des opérations réalisées (transactions, reversements, rejets, etc.). Les frais sont débités : Soit directement de votre compte de paiement principal, Soit depuis un compte de commission dédié, si celui-ci est activé. 📌 En cas de solde insuffisant, CentralPay pourra procéder à un prélèvement SEPA ou vous adresser une demande de virement complémentaire.
Formulaire de paiement CUSTOM Le service API Transaction permet d’effectuer une autorisation suivie d’une capture des fonds sur la carte bancaire de votre client. Tous les modes de paiement par carte (paiement simple, récurrents, MoTo, etc.) sont gérés via ce service. Lorsqu’un client souhaite effectuer un premier paiement, ses données de carte doivent être collectées pour générer un cardTokenId, grâce au service de tokenisation « token.js » de CentralPay. Ce token temporaire permet ensuite de créer une ressource Card, identifiée par un cardId, pouvant être enregistrée dans un objet Customer. Ce rattachement est indispensable pour permettre des paiements ultérieurs sans redemander la carte (paiement en 1 clic, récurrents, etc.). ℹ️ Avec un formulaire de paiement personnalisé (CUSTOM FORM), l'intégration de l'authentification 3DS 2.2 est obligatoire avant d'exécuter une transaction. Schéma du flux de paiement avec cardTokenId : ℹ️ Si vous disposez d'une certification PCI-DSS de niveau 1 et que vous gérez les données de carte, vous pouvez directement créer un objet /card en envoyant les données (PAN, date d'expiration, CVC) à l'API, sans passer par token.js. 1. Prérequis 1.1 Déclarer vos domaines Avant d’utiliser le token.js, vous devez déclarer les domaines hébergeant vos formulaires Custom dans votre Portail Utilisateur. Allez dans Administration Mon compte Technique Modifier , puis complétez le champ Hosts Custom Forms autorisés. Accès : Portail Utilisateur de RCT – Administration Portail Utilisateur de PROD – Administration 1.2 Sécuriser votre formulaire Assurez-vous que vos pages de paiement utilisent le protocole HTTPS avec TLS 1.2 ou supérieur. 2.3 Conformité PCI-DSS L’utilisation de token.js implique que vous gérez vous-même l’affichage du formulaire et le déclenchement du token. Cette méthode impose de respecter les exigences PCI DSS SAQ A-EP. Téléchargez le formulaire A-EP ➝ 2. Intégration du formulaire de paiement 2.1 Créer un formulaire de paiement HTML Contrairement au Smart Form hébergé par CentralPay, le Custom Form est créé par vos soins, via votre propre code HTML. Vous devez implémenter les champs suivants : Numéro de carte : 16 chiffres pour CB/Visa/Mastercard, 15 pour American Express Date d’expiration : format MM/AAAA CVC : 3 chiffres (CB/Visa/Mastercard), 4 chiffres (Amex) Vous pouvez consulter nos exemples de formulaires Custom Form : Consultez l’exemple de formulaire Custom Form sans 3DS 2.2 ➝ Consultez l’exemple de formulaire Custom Form avec 3DS 2.2 ➝ 2.2 Intégration du script token.js Ajoutez dans votre page le script token.js pour générer un cardTokenId : <script src="https://js.centralpay.net/js/token.js"></script> Ajoutez ensuite votre clé publique marchand (MerchantPublicKey) dans un tag distinct : <script type="text/javascript"> window.Centralpay ? Centralpay.card.setMerchantPublicKey('VOTRE_CLE_PUBLIQUE') : alert('Error loading html form'); </script> Vous pouvez voir où retrouver votre MerchantPublicKey depuis la page Authentification de nos API. Intégration dans une application mobile Si vous utilisez une WebView dans votre application, vous pouvez intégrer soit un formulaire personnalisé avec token.js, soit un formulaire hébergé via le service PaymentRequest. Ces options vous permettent d’externaliser la collecte des données carte tout en offrant une expérience utilisateur fluide. Dans une application mobile native, le script token.js n’est pas compatible. Vous devez alors collecter les données de carte via les champs de l’application, puis appeler directement l’API cardToken en utilisant votre merchantPublicKey. L’appel à l’API cardToken doit inclure un en-tête HTTP Origin correspondant à une URL déclarée dans votre compte CentralPay (voir 2.1 Prérequis). Pour vos tests, vous pouvez utiliser l’Origin suivant : https://example.centralpay.net ℹ️ Pour les applications mobiles natives, les données de carte sont transmises directement depuis le device de l’utilisateur vers CentralPay, sans passer par les serveurs du marchand. Cependant, ce type d’intégration nécessite de veiller à respecter les exigences de sécurité et de conformité PCI-DSS applicables à la collecte et la transmission de données de carte dans un environnement natif. 2.3 Créer un Customer et rattacher une carte ℹ️ Le cardTokenId est un token à usage unique, dont le CVC est temporaire (10 minutes en production, 5 minutes en RCT). Passé ce délai, le token expire automatiquement (status=EXPIRED) et ne peut plus être utilisé, ce qui entraînera l’erreur suivante : "cardTokenId": "Card token already used". Que vous utilisiez la carte immédiatement (paiement simple) ou que vous souhaitiez la réutiliser plus tard (paiement en 1 clic, récurrent, etc.), il est recommandé de commencer par créer un objet Customer, puis d’enregistrer une Card à l’aide du cardTokenId. L’authentification 3DS 2.2 pouvant parfois allonger le délai de traitement, cette séquence permet d’éviter l’expiration du CVC associé au cardToken. Créez un objet customer via l’endpoint POST /customer ou récupérez le customerId s’il est déjà connu Créez une card en utilisant POST /card en spécifiant le cardTokenId émis par le token.js et le customerId Une fois la card rattachée à un customer, le CVC devient permanent et les transactions futures peuvent être initiées sans limite de temps. Si vous n'utilisez pas le token.js (certification PCI-DSS requise), vous pouvez directement créer une card sans passer par le cardToken en fournissant le PAN + expiration + CVC + customerId 3. Authentification 3DS 2.2 Avant d’initier une transaction par carte, vous devez vérifier l’identité du porteur via une authentification 3DS 2.2. Cette étape est obligatoire pour les transactions carte unitaire comme pour les transactions carte récurrente. ℹ️ Exception : Les transactions de type MoTo (Mail Order / Telephone Order) ne sont pas soumises à l’authentification 3DS. Vous pouvez créer la transaction directement après la création de la carte.
Authentification 3DS 2.0 Le protocole 3D Secure 2.0 permet de s’assurer que la personne réalisant la transaction est bien le titulaire de la carte. La banque du client analyse les nombreux facteurs liés au paiement adressés par CentralPay (adresse IP, localisation, appareil utilisé…) et les compare aux données habituelles de son client : Si les données ne sont pas concordantes ou que le montant de la transaction est important, elle requière une identification manuelle via un code adressé par SMS ou via son application bancaire (« authentification forte » ou « SCA ») Sinon, elle autorise directement le paiement (« Frictionless ») Il existe deux types de 3DS, selon si vous souhaitez initier une transaction classique (pour laquelle le porteur est présent) ou si vous exécutez une échéance de paiement récurrent (pour laquelle le porteur n’est pas présent) : 1. Le 3DS 2 « BRW » ou « Browser Authentication » (porteur participant – 1ère transaction) Représente la majorité des intégrations de 3DS 2. Il requiert l’authentification du client afin de vérifier qu’il est bien le porteur légitime de la carte au moment de la transaction. Il déclenche si nécessaire un challenge qui vérifie l’identité du porteur de carte (SCA). Découvrez comment intégrer le 3DS 2.0 BRW ➝ 2. Le 3DS2 « 3RI Authentification » (porteur non participant – échéances de paiements récurrents) 3DS Requestor Initiated (3RI) Authentications, ou Authentification Initialisée par le marchand lorsque le porteur n’est pas présent ou non participant. 3RI offre la possibilité de générer les authentifications 3DS nécessaires sans que le client ne soit impliqué. Cela permet d’utiliser une authentification générée précédemment avec un client. Elle est utilisée dans les contextes suivants de paiements récurrents : Paiement fractionné, Abonnement, Refund, etc. Découvrez comment intégrer le 3DS 2.0 3RI ➝
Modèle Intégrateur / Partenaire Technique CentralPay propose deux modèles distincts pour les acteurs qui souhaitent accompagner des marchands dans leur intégration technique : le Partenaire Technique et l’Intégrateur. Ces deux modèles permettent de connecter plusieurs marchands à la plateforme CentralPay, selon des modalités d’encadrement différentes. Ils peuvent chacun, s’ils le souhaitent, être déclarés MOBSP (Mandataires d’Opérations de Banque et de Services de Paiement) auprès de l’ORIAS, pour accompagner les marchands durant leur entrée en relation avec CentralPay. 🔹 1. Modèle Intégrateur L’Intégrateur est un prestataire technique mandaté par un ou plusieurs marchands. Il intervient en leur nom et pour leur compte, afin de faciliter leur connexion aux services CentralPay. Chaque marchand dispose de son propre point de vente (POS), de son propre compte CentralPay, et signe directement un contrat avec CentralPay. L’Intégrateur ne détient aucun droit contractuel sur les comptes ou fonds du marchand. Responsabilités et fonctionnement : L’Intégrateur utilise les accès API fournis par chaque marchand, dans le cadre d’un mandat contractuel. Il peut déclencher des opérations techniques (paiements, notifications…), mais uniquement via les accès API délégués par le marchand, dans le cadre du contrat unissant ce dernier à CentralPay. Il n’intervient jamais en son nom propre. Les opérations sont réalisées en 1 pour 1 : un payeur règle un seul marchand. Facturation : Chaque marchand est facturé directement par CentralPay. L’Intégrateur n’intervient à aucun moment dans les flux financiers. Pour aller plus loin sur le modèle Intégrateur L’intégrateur intervient exclusivement en soutien technique des marchands, sans jamais agir comme intermédiaire de paiement ni représentant de CentralPay. Son rôle se limite à l’intégration, au support fonctionnel de niveau 1 et à la maintenance des interfaces. Chaque marchand conserve l’entière maîtrise de son compte CentralPay : encaissements, reversements, solde, paramétrage des accès API, gestion documentaire et contractuelle. L’intégrateur accède à un espace CentralPay lui permettant de consulter une vue consolidée des opérations réalisées via les accès API qui lui sont délégués. Il peut également consulter la documentation technique, utiliser les environnements de test, et suivre les évolutions d’API. Cet accès ne permet pas d’exécuter de paiements. Pour permettre la connexion, le marchand crée un accès API dédié à l’intégrateur, avec des droits strictement limités et révocables à tout moment. Toutes les opérations techniques sont réalisées via cet accès, sous le contrôle du marchand. Si l’intégrateur est déclaré Mandataire d’Opérations de Banque et de Services de Paiement (MOBSP) auprès de l’Orias, il peut : initier une demande d’enrôlement pour le compte d’un marchand, guider ce dernier dans la constitution de son dossier, et transmettre un lien d’enrôlement personnalisé CentralPay. Le statut MOBSP ne permet ni l’exécution d’opérations ni l’accès aux fonds, mais encadre juridiquement l’accompagnement du marchand dans son entrée en relation. ➡️ Si l’intégrateur n’est pas déclaré MOBSP, c’est au marchand de contacter directement CentralPay pour initier sa demande d’ouverture de compte, en précisant l’identité de l’intégrateur avec lequel il collabore afin de permettre son rattachement technique. 🔹 2. Modèle Partenaire Technique Le Partenaire Technique est un acteur qui développe une solution mutualisée (ex : marketplace, plateforme SaaS), à destination de plusieurs marchands ou participants. Il opère depuis un ou plusieurs points de vente dont il est le titulaire. Les opérations sont ensuite traitées par CentralPay depuis un compte centralisateur, également détenu par CentralPay. Cela permet au Partenaire d’avoir une visibilité sur les flux, sans jamais en détenir la maîtrise ni les initier. Responsabilités et fonctionnement : Le Partenaire Technique dispose de ses propres accès API, délivrés par CentralPay. Il peut consulter les transactions réalisées pour les marchands affiliés à ses points de vente. Il n’initie aucun paiement et ne peut accéder aux soldes ou effectuer de reversements. Toutes les opérations sont exécutées exclusivement par CentralPay. Dans ce cadre, CentralPay peut gérer des paiements en mode 1 pour X : un payeur peut régler plusieurs marchands simultanément. Facturation : Le Partenaire est facturé directement par CentralPay. Les commissions qu’il perçoit sont prélevées par CentralPay sur les comptes de paiement des marchands, puis créditées sur son compte de commission. Pour aller plus loin sur le modèle Partenaire Technique Le partenaire technique développe une solution mutualisée (ex. marketplace, plateforme SaaS) intégrant CentralPay. Il opère depuis un ou plusieurs points de vente ouverts à son nom, qui accueillent les transactions des marchands affiliés. Chaque marchand affilié contracte directement avec CentralPay et détient son propre compte CentralPay. Il signe les Conditions Générales de Compte de Paiement et est soumis aux mêmes obligations réglementaires que tout utilisateur professionnel. Le partenaire transmet à CentralPay les données commerciales des transactions (montant, référence, commission…) recueillies sur sa plateforme. CentralPay analyse ces informations, puis instruit et exécute l’opération pour le compte du marchand concerné. Les paiements sont crédités sur le compte CentralPay du marchand. Si une commission est prévue, CentralPay la prélève automatiquement et la reverse sur le compte de commission du partenaire, selon les conditions fixées dans les CGU du partenaire. Le partenaire ne détient jamais de fonds de tiers, ne donne aucune instruction de paiement, et ne peut intervenir dans les reversements ou la tenue de compte. Il n’agit ni pour compte de tiers ni au nom de CentralPay. L’accès au compte centralisateur de CentralPay mis à disposition du partenaire est à usage purement informatif : il permet de visualiser les transactions, mais n’offre aucun droit d’exécution ou d’accès aux soldes. En cas d’enregistrement MOBSP, le partenaire peut accompagner ses marchands dans leur entrée en relation (enrôlement via API, transmission du lien d’inscription, assistance documentaire), sous réserve de validation préalable par CentralPay. ➡️ Si le partenaire n’est pas MOBSP, chaque marchand doit initier lui-même sa demande de création de compte ou son rattachement à la plateforme, en précisant l’identité du partenaire concerné afin d’activer les bons droits techniques. 🟩 3. Règles de conformité communes Pour les deux modèles : Le Partenaire ou Intégrateur n’est jamais habilité à transmettre d’instructions de paiement. Il ne détient aucun fonds et n’agit jamais en son nom propre pour l’exécution de services de paiement. Les comptes bancaires, les reversements et la détention de fonds de tiers sont strictement encadrés par CentralPay. Aucune délégation réglementaire d’exécution de service de paiement n’est accordée à ces acteurs. 🟨 4. Déclaration MOBSP (Mandataire d’Opérations de Banque et Services de Paiement) Un Intégrateur ou un Partenaire Technique peut, s’il le souhaite, être déclaré en tant que MOBSP auprès de l’ORIAS, sous la supervision de CentralPay. Cette déclaration permet : D’initier une demande d’entrée en relation pour le compte du marchand ; De collecter et transmettre les pièces justificatives via l’API Onboarding CentralPay ; D’assister le marchand dans ses démarches contractuelles, techniques et documentaires. Le statut de MOBSP ne modifie en rien les restrictions précédemment énoncées. Il ne confère aucun droit supplémentaire sur les fonds ou les opérations de paiement, mais autorise la présentation commerciale et l’accompagnement réglementé du marchand dans sa relation avec CentralPay. Articles Déclaration MOBSP (Orias) Déclaration MOBSP (Orias) ℹ️ Avant de lire cette page, veuillez consulter la rubrique dédiée à l'entrée en relation pour les partenaires. Les partenaires CentralPay basés en France opèrent avec le statut d’intermédiaires en opérations de banque et en service de paiement (IOBSP), plus précisément en tant que Mandataires en Opérations de Banques et Services de Paiement (MOBSP). Pour devenir partenaire MOBSP de CentralPay, vous devez vous déclarer à l’ORIAS. CentralPay devra ensuite vous déclarer en tant que son mandataire. Votre partie peut être réalisée en quelques heures, celle de CentralPay prend quelques jours. L’ORIAS peut quant à elle prendre jusqu’à deux mois pour examiner votre demande. Bien que ce processus vous incombe, CentralPay peut vous assister en cas de besoin. Contactez notre service client en cas de besoin. 1. Préparez vos données 1.1. Obtenez votre attestation de mandat Après avoir signé votre contrat de partenariat avec CentralPay : Envoyez un e-mail à notre service client qui inclut votre raison sociale et votre numéro SIREN CentralPay vous répondra avec votre attestation de mandat. Vous aurez besoin de ce document pour l’étape 3.3. 1.2. Préparez vos documents justificatifs Lors de l’étape 3.3 du processus d’inscription, vous devrez fournir les pièces justificatives suivantes : KBIS datant de moins de trois mois Justificatif d’aptitude professionnelle : diplôme dans une école de commerce ou de gestion agréée ou certification RNCP (NCF 122, 128, 313 ou 314, niveaux 7 à 5) ou reconnaissance par le CIEP pour les diplômes étrangers Si vous ne disposez pas d’un justificatif d’aptitude professionnelle accepté par l’Orias, envoyez un email à notre service client. CentralPay peut vous aider à suivre la formation nécessaire. Voir l’image ci-jointe, faisant référence à la catégorie Niveau III – IOBSP (niveau 3). 2. Créez votre compte ORIAS 2.1. Accéder au formulaire Allez sur le site de l’ORIAS Faites défiler vers le bas jusqu’à voir la section Comment ça marche ? Cliquez sur S’inscrire Vous serez redirigé vers le formulaire d’inscription. 2.2. Saisir les informations Entrez votre numéro SIREN Saisissez les informations sur votre entreprise. Assurez-vous de vous inscrire en tant que personne morale / entité juridique Saisissez les informations de votre représentant légal Saisissez les coordonnées de votre représentant légal Saisissez les coordonnées de votre entreprise, y compris votre site web si vous en avez un Entrez l’adresse de votre entreprise Vérifiez toutes les informations que vous avez saisies, puis cliquez sur Valider 2.3. Connectez-vous à votre compte ORIAS Vérifiez votre boîte de réception pour un email de l’ORIAS (no-reply-orias@orias.fr). L’email contient votre identifiant et un mot de passe provisoire. Retournez sur le site de l’ORIAS Cliquez sur Connexion / Login Saisissez votre identifiant et votre mot de passe provisoire depuis votre email Suivez les instructions sur votre écran pour modifier votre mot de passe, puis enregistrez-le Après avoir enregistré votre nouveau mot de passe, vous serez redirigé vers votre espace compte ORIAS 3. Réalisez une nouvelle demande d’inscription 3.1. Enregistrez votre entreprise Cliquez sur Nouvelle inscription pour démarrer votre inscription, un formulaire apparaît Choisissez Activité IOB Choisissez ensuite Mandataire non-exclusif en opérations de banque et en services de paiement (MOBSP) Cliquez sur Soumettre 3.2. Fournissez des informations complémentaires Sélectionnez la case précisant que vous complétez votre inscription à titre de Mandataire non exclusif en opérations de banque et en services de paiement Si un autre type d’inscription est spécifié, utilisez le bouton Précédent de votre navigateur pour revenir à la page précédente et réessayez. Pour la première question, choisissez la réponse : Je déclare que l’on ne me confie pas de fonds Pour la deuxième question, choisissez la réponse : Accessoire, indiquant à l’ORIAS que les services financiers ne sont pas l’activité principale de votre entreprise Pour la troisième question, choisissez la réponse : Oui, indiquant à l’ORIAS que votre entreprise propose du crédit (ou d’autres services bancaires et de paiement) uniquement à titre de service secondaire Cliquez sur Aller à l’étape « Pièces justificatives » 3.3. Fournissez vos documents justificatifs Soumettez votre KBIS Soumettez votre mandat d’attestation, qui est le certificat de mandat de l’étape 1.1 Soumettez votre Capacité professionnelle pour « vous » (Niveau I IOBSP), qui constitue votre preuve d’aptitude professionnelle de l’étape 1.2. Cliquez sur Aller à l’étape suivante 3.4. Payez votre inscription La dernière étape consiste à payer votre inscription. Notez que vous payez pour l’enregistrement de Mandataire non exclusif en opérations de banque et en services de paiement. Sans payer les frais, votre inscription ne peut être finalisée Choisissez de payer avec votre Carte bancaire, ou cliquez sur Choisir un autre mode de paiement pour payer par Virement (virement) ou Chèque (chèque) Après avoir payé, cliquez sur Télécharger la facture pour télécharger votre reçu Cliquez sur Terminer la demande d’inscription pour finaliser votre inscription Vous recevrez votre numéro d’inscription ORIAS par e-mail, confirmant que votre inscription est terminée. Envoyez ce numéro au service client de CentralPay par email 4. CentralPay vous enregistre en tant que MOBSP Après avoir envoyé à CentralPay votre numéro d’enregistrement Orias par email, CentralPay vous enregistre en tant que Mandataire non exclusif en opérations de banque et en services de paiement (MOBSP). 5. L’ORIAS examine votre candidature L’ORIAS examine vos documents et votre candidature pour s’assurer que votre dossier est entièrement conforme. L’ORIAS vous informera de sa décision finale par email. Si elle est approuvée, l’e-mail contient également la date à laquelle votre statut de MOBSP prendra effet. N’hésitez pas à contacter l’ORIAS par téléphone (09.69.32.59.73) ou par email (contact@orias.fr) si vous ne recevez pas à temps les informations concernant votre candidature. 6. Mettez à jour vos mentions légales Après avoir reçu l’agrément de l’ORIAS et être devenu MOBSP, assurez-vous de mettre à jour vos mentions légales. Ajoutez quelque chose de similaire à l’exemple suivant au pied de page de votre site Web, dans votre page de mentions légales et partout où vous distribuez ou vendez des services de paiement. [Raison sociale], société immatriculée au RCS de [ville d’enregistrement] sous le numéro [numéro RCS], et inscrite au Registre unique des Intermédiaires en Assurance, Banque et Finance sous le numéro d’immatriculation [numéro d’enregistrement ORIAS] en qualité de Mandataire non exclusif en opérations de banque et en services de paiement.
Transaction carte Selon les besoins de votre activité, CentralPay propose divers modes de transactions unitaires via son service API Transaction. Attention, vous devez au préalable gérer la collecte des données carte de votre client en créant un formulaire de paiement Custom Form et intégrer l’authentification 3DS 2.0. Les principes de base d’une transaction carte sont décrits dans la rubrique informations générales. 1. Autorisation et capture instantanée Pour réaliser un paiement simple par carte (autorisation puis capture instantanée) : Réaliser une Transaction en renseignant le paramètre « source » avec la valeur « EC » 2. Autorisation et capture différée Ce mode de transaction peut être utile si vous souhaitez bloquer les fonds de votre client avant de le débiter définitivement, le temps de la validation de votre commande par exemple. Ainsi, vous pouvez annuler l’opération sans être soumis aux frais de transaction ou de remboursement. Pour réaliser un paiement par carte avec capture différée (autorisation puis capture différée), vous devez : Réaliser une autorisation en renseignant le paramètre « capture » de la Transaction avec la valeur « false ». Les fonds seront ainsi bloqués sur la carte du client Puis débiter le montant souhaité en initiant une capture sur le transactionId reçu en précisant le montant souhaité (« amount ») Vous avez 7 jours calendaires suivant l’autorisation pour réaliser la capture, à défaut les fonds du client seront libérés. 3. Pré-autorisation et capture différée Le service de pré-autorisation et capture différée (ou caution / PLBS) permet d’effectuer une pré-autorisation d’un certain montant, que vous pourrez ensuite capturer partiellement ou pleinement sous 30 jours. Durant cette période, les fonds vous sont garantis, ils sont donc bloqués sur la carte et ne peuvent être utilisés par votre client. Ce service n’est accessible qu’à certaines activités autorisées (locations de véhicules ou de matériels, hôtellerie…) Pour réaliser une pré-autorisation et capture différée, vous devez : Réaliser une pré-autorisation en renseignant le paramètre « source » de la Transaction avec la valeur « DP ». Les fonds seront ainsi bloqués sur la carte du client Puis débiter le montant souhaité en initiant une capture sur le « transactionId » reçu en précisant le montant souhaité (« amount ») Vous avez 30 jours calendaires suivant l’autorisation pour réaliser la capture, à défaut les fonds du client seront libérés. 4. Vérification carte (empreinte sécurisée) Le service d’empreinte & vérification carte permet d’effectuer une autorisation à 0€ avec authentification du porteur (3DS 2.0). Ainsi, vous disposerez des informations concernant la carte de votre client (carte de débit, de crédit, prépayée…), et vous vous assurerez qu’elle n’est pas frauduleuse (carte non volée, porteur identifié…). Ce service est généralement utilisé pour enregistrer une carte avec 3DS en vue d’un abonnement avec une date de démarrage différée. Pour réaliser une prise d’empreinte et une vérification carte (autorisation à 0€ sans capture), vous devez : Réaliser une Transaction en renseignant le paramètre « source » avec la valeur « RI » Nous vous recommandons également de créer un « customer » lors de la transaction, afin d’associer le « cardId » ainsi généré et de vous permettre un éventuel débit ultérieur de cette carte 5. Débit carte seul (MO/TO) Le service de paiement MOTO (Mail Order / Telephone Order) permet d’effectuer une autorisation puis une capture d’une carte, sans la présence de son porteur. Il est généralement utilisé par les hôtels pour le débit de services ou de consommations additionnelles en fin de séjour. Attention, ce service n’est accessible qu’à certaines activités autorisées (hôtellerie…), et apporte des résultats de conversion de moins en moins performants depuis la directive DSP2, car elle ne permet pas l’authentification du porteur de carte. Pour réaliser un paiement MOTO, vous devez : Réaliser une Transaction en renseignant le paramètre « source » avec la valeur « MO » (Mail Order) ou « TO » (Telephone Order) 6. Paiement par carte en 1 clic Le paiement par carte en 1 clic consiste à enregistrer les données cartes de votre client, afin qu’il puisse régler sa commande sans avoir à les ressaisir. La ou les cartes du client sont stockées de manière sécurisée dans le Customer CentralPay. Il est dans ce cadre nécessaire de permettre à votre client de sélectionner la carte qu’il souhaite utiliser ou d’ajouter une nouvelle carte. Pour réaliser un paiement par carte en 1 clic, vous devez : Sélectionner l’option « One-click » dans la configuration du point de vente Vous assurez que vos Customer ont une carte liée à leur profil
Transaction carte récurrente Selon les besoins de votre activité, CentralPay propose plusieurs modes de transactions récurrentes : Abonnement depuis un modèle d’abonnementCentralPay gère le prélèvement des échéances selon un modèle d’abonnement que vous avez défini en amont. Abonnement depuis des transactions successivesVous pilotez le prélèvement de chaque échéance vous-même par API. Paiement fractionnéCentralPay fractionne une somme due en plusieurs transactions et gère leur prélèvement, selon les conditions de règlement que vous avez renseigné. Attention, vous devez au préalable gérer la collecte des données carte de votre client en créant un formulaire de paiement Custom Form, créer un profil Customer pour ce client, et intégrer les principes d’authentification 3DS 2.0. Les principes de base d’une transaction carte sont décrits dans la rubrique informations générales. Lors d’un paiement récurrent, votre client reçoit automatiquement un email contenant le détail de ses échéances. Ce mail contient également un lien vers notre Portail client qui lui permet de visualiser le statut de ses paiements récurrent, de changer sa carte bancaire et de résilier un abonnement si besoin est. 1. Abonnement depuis un modèle d’abonnement 1.1. Création Vous devez d’abord : Créer un formulaire de paiement Custom Form Créer un Customer contenant au moins une Card Et réaliser une authentification 3DS 2.0 BRW Ensuite, le service d’abonnement (Subscription) vous permettra d’initier facilement un paiement par abonnement en se basant sur un modèle d’abonnement créé en amont depuis l’API CentralPay ou le Portail utilisateur. 1.2. Cas d’intégration spécifiques Si le premier paiement de l’abonnement doit être d’un montant supérieur aux échéances suivantes (ex: frais d’inscription), vous pouvez d’abord initier une Transaction suivant votre authentification 3DS BRW, puis renseigner une date de démarrage (startingDate) dans l’objet Subscription Si vous souhaitez simplement faire démarrer un abonnement à une date précise, vous pouvez d’abord réaliser une empreinte carte vérifiée suivant votre authentification 3DS BRW, puis renseigner une date de démarrage (startingDate) dans l’objet Subscription 2. Abonnement depuis des transactions successives 2.1. Création Vous devez d’abord : Créer un formulaire de paiement Custom Form Créer un Customer contenant au moins une Card Réaliser une authentification 3DS 2.0 BRW Réaliser une première Transaction Ensuite, vous pourrez initier vous-même les prochaines Transactions en utilisant l’authentification 3DS 3RI. 2.2. Informations importantes Pour garantir un taux de conversion optimum, le montant de la première transaction doit être supérieur ou égal aux montants des transactions suivantes réalisées avec l’authentification 3DS 3RI La plateforme CentralPay ne considérera pas les transactions générées comme des « abonnements », ainsi les interfaces « Portail utilisateur » et « Portail client » afficheront ces opérations au même titre qu’une succession de transactions unitaires Avec ce modèle, le système d’automatisation des nouvelles tentatives ne s’appliquera pas en cas d’échec de prélèvement d’une de vos transactions 3. Paiement fractionné 3.1. Création Vous devez d’abord : Créer un formulaire de paiement Custom Form Créer un Customer contenant au moins une Card Et réaliser une authentification 3DS 2.0 BRW Ensuite, le service de paiement fractionné (Installment) vous permettra d’initier facilement un paiement fractionné en se basant sur les éléments renseignés dans votre requête.
Transaction carte via wallet 1. Apple Pay (Custom Form) 1.1. Via token Apple Pay déchiffré CentralPay permet le traitement des paiements par carte effectués via Apple Pay, dans le cadre d’une intégration Custom (hors Smart Form). ℹ️ CentralPay ne prend actuellement en charge que les tokens Apple Pay déchiffrés. Prérequis 1. Créer un compte Apple Developer : Inscrivez-vous au programme Apple Developer Créez vos identifiants de marchand Apple Pay (Merchant ID) Générez votre certificat de traitement Apple Pay via le portail Apple Déclarez votre domaine (Apple Pay Merchant Domain) 2. Intégration côté device : Implémentez Apple Pay côté frontend via Apple Pay JS (pour les sites web) ou PassKit (pour les apps iOS) Collectez le token Apple Pay (ApplePayToken) après validation du paiement par l’utilisateur (Face ID, Touch ID…) Étape 1 : Déchiffrement du token Apple Pay Le déchiffrement du token Apple Pay doit être effectué sur votre backend, à l’aide de : Votre certificat de traitement Apple Pay Votre clé privée La documentation Apple : Payment Token Format Le résultat contiendra : { "applicationPrimaryAccountNumber": "5454********2664", "applicationExpirationDate": "YYMMDD", "paymentData": { "cryptogram": "base64-cryptogram", "eciIndicator": "05" }} Étape 2 : Création du cardToken CentralPay Utilisez l’endpoint POST /cardToken de l’API CentralPay ChampDescriptioncard[number]PAN de la carte extrait du token Apple Paycard[expirationMonth]Mois d’expiration de la carte (format MM)card[expirationYear]Année d’expiration de la carte (format YYYY)onlinePaymentCryptogramCryptogramme issu du token Apple Pay (CAVV)eciIndicatorIndice d’authentification issu du token Apple Pay (eci)applePayTransactionIdID de la transaction Apple PayamountMontant en centimes (ex : 2500 = 25,00 €)currencyCode alpha ISO (ex : EUR, USD, etc.)merchantPublicKeyClé publique fournie par CentralPay ℹ️ Où trouver la merchantPublicKey ?Connectez-vous à votre portail CentralPay Back Office Administration Technique Merchant Public Key Exemple : card[number]=5454696696312664card[expirationMonth]=12card[expirationYear]=2031onlinePaymentCryptogram=MGnp3S1LBgJxAANgdNCRAoABFIA=applePayTransactionId=3d2b17abed2696ca...amount=2500currency=EURmerchantPublicKey=abcdef123456... Le cardToken généré contient toutes les données nécessaires à l’authentification Apple Pay. Étape 3 : Création de la transaction CentralPay Utilisez l’endpoint POST /transaction de l’API CentralPay Champs requis : cardToken=...amount=2500currency=EURpointOfSaleId=...endUserIp=...merchantTransactionId=... Le cardToken encapsule déjà le contexte Apple Pay et les données d’authentification. Étape 4 : Testing avant mise en production L’environnement de test CentralPay permet de valider l’ensemble de votre intégration Apple Pay sans déclencher de véritables paiements. Il est fortement recommandé d’utiliser cet environnement pour toutes les phases de développement, de debug et de validation côté frontend comme backend. Portail de test API de test Cartes de test Différences entre environnement de test et de production : Les URLs des API sont différentes : Elles utilisent le préfixe test- Test : https://test-api.centralpay.net/v2/rest/transaction Production : https://api.centralpay.net/v2/rest/transaction Les identifiants API (login + secret) sont propres à l’environnement de testIls ne sont pas interchangeables avec ceux de production La clé publique Apple Pay (merchantPublicKey) est également spécifique à l’environnement 2.2. Via token ApplePay chiffré ℹ️ Au 18/04/2025, cette méthode n’est pas encore disponible chez CentralPay.Si cette méthode d’intégration vous intéresse, veuillez contacter le support CentralPay afin de connaître les livrables associés et les modalités d’accès. Création de CardToken avec votre token Apple pay chiffré. Lors de votre appel API, en plus des champs obligatoires, il faudra utiliser le champ « applePayToken« au format JSON comprenant votre token Apple Pay qui incluent les éléments « paymentData », « paymentMethod » et « transactionIdentifier ».Vous pourrez ensuite effectuer une transaction à l’aide de votre cardToken normalement. Création de Transaction avec votre token Apple pay chiffré. Lors de votre appel API, en plus des champs obligatoires, il faudra utiliser le champ « applePayToken » au format JSON comprenant votre token Apple Pay qui inclus les éléments « paymentData », « paymentMethod » et « transactionIdentifier ». 2. Google Pay (Custom Form) 2.1. Via token Google Pay déchiffré Pour pouvoir accepter les paiements Google Pay via CentralPay, vous devez configurer correctement votre compte marchand Google et gérer les clés de chiffrement nécessaires au déchiffrement des tokens. ℹ️ Cette méthode implique une responsabilité PCI-DSS importante de votre part. Renseignez-vous et assurez-vous d'être en conformité avant de développer ce mode d'intégration. Prérequis 1. Créer un compte Google Pay Business : Accédez au Google Pay Business Console Créez un Merchant Profile ou connectez-en un existant Renseignez vos coordonnées de société et d’activité 2. Enregistrer votre domaine : Dans la console Google Pay, allez dans l’onglet « Domains« Ajoutez votre domaine de production et de test (ex : example.com) Google vous demandera d’y héberger un fichier de vérification pour valider votre propriété 3. Générer votre paire de clés de chiffrement : Google Pay chiffre les tokens envoyés à votre site en utilisant une clé publique que vous fournissez. Générez votre paire de clés (exemple avec OpenSSL) # Générer la clé privéeopenssl ecparam -name prime256v1 -genkey -noout -out private-key.pem# Extraire la clé publiqueopenssl ec -in private-key.pem -pubout -out public-key.pem Convertissez la clé publique au format Google (base64 sans en-tête PEM) # Supprimer les lignes "-----BEGIN..." et "-----END..."# et ne garder que le bloc de contenu base64 4. Enregistrer votre clé publique dans Google Pay Dans la console Google Pay, allez dans “Payment Processing” Ajoutez un nouvel encrypting key Donnez-lui un nom, collez votre clé publique au format Base64, et sélectionnez le type : ECv2 Cette clé sera utilisée pour chiffrer tous les tokens envoyés à votre site Étape 1 : Déchiffrement du token Google Pay Une fois Google Pay intégré côté frontend (Google Pay JS ou Android), vous recevrez un token chiffré via : paymentData.tokenizationData.token Ce champ contient un JSON chiffré (pas un JWT), que vous devez déchiffrer sur votre backend à l’aide de la clé privée correspondant à la clé publique enregistrée chez Google. Google propose une bibliothèque de déchiffrement officielle en Java, mais des portages existent en Node.js, PHP, Python, etc. Consultez la documentation officielle (Payment Data Cryptography) ➝ Une fois déchiffré, vous obtiendrez une structure similaire à : { "pan": "4111111111111111", "expirationMonth": "12", "expirationYear": "2030", "cryptogram": "AgAAAAAAAIR8CQrXcIhbQAAAAAA=", "eciIndicator": "05"} Ce sont ces données que vous devrez envoyer à CentralPay pour créer un cardToken. Étape 2 : Création du cardToken via l’API CentralPay Utilisez l’endpoint POST/cardToken de l’API CentralPay ChampDescriptioncard[number]PAN de la carte extrait du token Google Paycard[expirationMonth]Mois d’expiration de la carte (format MM)card[expirationYear]Année d’expiration de la carte (format YYYY)onlinePaymentCryptogramCryptogramme issu du token Google Pay (CAVV)eciIndicatorIndice d’authentification issu du token Google Pay (eci)googlePayMessageIdID de la transaction Google PayamountMontant en centimes (ex : 2500 = 25,00 €)currencyCode alpha ISO (ex : EUR, USD, etc.)merchantPublicKeyClé publique fournie par CentralPay ℹ️ Où trouver la merchantPublicKey ?Connectez-vous à votre portail CentralPay Back Office Administration Technique Merchant Public Key Exemple : card[number]=5454696696312664card[expirationMonth]=12card[expirationYear]=2031onlinePaymentCryptogram=MGnp3S1LBgJxAANgdNCRAoABFIA=googlePayTransactionId=ABCD-EFGH-1234amount=2500currency=EURmerchantPublicKey=abcdef123456... Le cardToken généré contient toutes les données nécessaires à l’authentification Google Pay. Étape 3 : Création de la transaction CentralPay Utilisez l’endpoint POST/transaction de l’API CentralPay. Champs requis : cardToken=...amount=2500currency=EURpointOfSaleId=...endUserIp=...merchantTransactionId=... Le cardToken encapsule déjà le contexte Google Pay et les données d’authentification. Étape 4 : Testing avant mise en production L’environnement de test CentralPay permet de valider l’ensemble de votre intégration Apple Pay sans déclencher de véritables paiements. Il est fortement recommandé d’utiliser cet environnement pour toutes les phases de développement, de debug et de validation côté frontend comme backend. Portail de test API de test Cartes de test Différences entre environnement de test et de production : Les URLs des API sont différentes : elles utilisent le préfixe test- Test : https://test-api.centralpay.net/v2/rest/transaction Production : https://api.centralpay.net/v2/rest/transaction Les identifiants API (login + secret) sont propres à l’environnement de testIls ne sont pas interchangeables avec ceux de production La clé publique Apple Pay (merchantPublicKey) est également spécifique à l’environnement 2.2. Via token Google Pay chiffré CentralPay permet l’intégration directe de Google Pay via le mode “gateway” (passerelle de paiement), sans nécessiter de déchiffrement du token côté serveur. Dans ce mode, CentralPay est désigné comme prestataire (gateway) auprès de Google Pay, et gère la validation du token pour vous. Prérequis 1. Créer un compte Google Pay Business : Accédez au Google Pay Business Console Créez un Merchant Profile ou connectez-en un existant. Renseignez vos coordonnées de société et d’activité. 2. Enregistrer votre domaine : Dans la console Google Pay, allez dans l’onglet “Domains” Ajoutez votre domaine de production et de test (ex : example.com) Google vous demandera d’y héberger un fichier de vérification pour valider votre propriété 3. Réaliser votre intégration frontend Google Pay : Implémentez Google Pay côté frontend via Google Pay JS (pour les sites web) ou Google Pay API Android (pour les applications mobiles) Collectez le token Google Pay (tokenizationData.token) après validation du paiement par l’utilisateur (code PIN, empreinte digitale, reconnaissance faciale…). ℹ️ Google propose un tutoriel officiel pour cette intégration : Google Pay API | Google for Developers 4. Récupérez vos identifiants CentralPay : MerchantPublicKey : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Merchant Public Key Login API : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Identifiant API et copiez l’identifiant Pass API : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Cliquez sur votre Identifiant API → Modifier → Générer , copiez votre pass API et mettez à jour Étape 1: Configuration de Google Pay côté frontend 1. Définir la version de l’API : const baseRequest = { apiVersion: 2, apiVersionMinor: 0}; 2. Utiliser CentralPay comme passerelle de paiement : Configurez la tokenisation comme suit : const tokenizationSpecification = { type: 'PAYMENT_GATEWAY', parameters: { gateway: 'centralpay', gatewayMerchantId: 'YOUR_GATEWAY_MERCHANT_ID' }}; Remplacez YOUR_GATEWAY_MERCHANT_ID par votre MerchantPublicKey fourni par CentralPay. 3. Environnement de test ou production : // Environnement de testconst paymentsClient = new google.payments.api.PaymentsClient({ environment: 'TEST' });// Environnement de productionconst paymentsClient = new google.payments.api.PaymentsClient({ environment: 'PRODUCTION' }); Étape 2 : Récupération du token Google Pay Lorsqu’un utilisateur final valide un paiement via Google Pay, l’API retourne un token au format JSON dans : paymentData.paymentMethodData.tokenizationData.token Ce champ contient une chaîne JSON représentant un objet du type : { "signature": "MEYCIQDn...", "protocolVersion": "ECv2", "intermediateSigningKey": { "signedKey": "{...}", "signatures": ["MEUCID..."] }, "signedMessage": "{...}"} Ce bloc devra être transmis tel quel à l’API CentralPay lors de la création du cardToken dans le champ googlePayToken. Étape 3 : Envoi du token à CentralPay (création du cardToken) Faites un appel à l’endpoint POST /cardToken de CentralPay avec les paramètres suivants : Paramètres requis : ChampDescriptionamountMontant en centimes (ex : 2500 pour 25,00 €)currencyCode ISO alpha (ex : EUR, USD, etc.)googlePayTokenLe JSON complet retourné par Google Pay (tokenizationData.token)merchantPublicKeyClé publique CentralPay disponible dans le backoffice Exemple de requête (format x-www-form-urlencoded) : amount=2500currency=EURmerchantPublicKey=abcdef123456...googlePayToken={"signature":"MEYCIQDn...","protocolVersion":"ECv2",...} Ne déchiffrez pas le token vous-même : CentralPay s’occupe de sa validation côté serveur. Étape 4 : Création de la transaction Une fois que le cardToken est obtenu, vous pouvez déclencher une transaction de manière standard via l’endpoint POST /transaction. Exemple de paramètres : cardToken=...amount=2500currency=EURpointOfSaleId=...endUserIp=...merchantTransactionId=... Le cardToken contient déjà toutes les informations d’authentification : pas besoin d’ajouter de cryptogramme ou de champ CVV. Étape 5 : Testing avant mise en production L’environnement de test CentralPay permet de valider l’ensemble de votre intégration Apple Pay sans déclencher de véritables paiements. Il est fortement recommandé d’utiliser cet environnement pour toutes les phases de développement, de debug et de validation côté frontend comme backend. Portail de test API de test Cartes de test Différences entre environnement de test et de production : Les URLs des API sont différentes : elles utilisent le préfixe test- Test : https://test-api.centralpay.net/v2/rest/transaction Production : https://api.centralpay.net/v2/rest/transaction Les identifiants API (login + secret) sont propres à l’environnement de testIls ne sont pas interchangeables avec ceux de production La clé publique Apple Pay (merchantPublicKey) est également spécifique à l’environnement
Modèle Partenaire avec statut Distributeur de Monnaie Électronique (DME) ou Agent de Services de Paiement (Agent PSP) Certains projets nécessitent un cadre réglementaire spécifique permettant à des partenaires d’agir au nom de CentralPay, établissement agréé par l’ACPR. Deux statuts sont prévus par la réglementation française : Le Distributeur de Monnaie Électronique (DME), pour la gestion de valeur stockée dans des projets de type plateformes C2C, titres prépayés, réseaux fermés, etc. L’Agent de Prestataire de Services de Paiement (Agent PSP), pour les projets nécessitant une gestion active des flux de paiement (encaissements, transferts, reversements). Ces modèles permettent une plus grande autonomie du partenaire, mais s’accompagnent de contraintes réglementaires fortes, sous la responsabilité de CentralPay. 🟣 1. Partenaire Distributeur de Monnaie Électronique (DME) ➤ Cas d’usage typique Plateformes de vente entre particuliers (C2C), Réseaux d’enseignes prépayées ou de bons cadeaux, Programmes de fidélité à valeur monétaire stockée. ✅ Rôle du DME Le distributeur agit pour le compte de CentralPay dans la mise à disposition et la gestion de la monnaie électronique. Fonctionnalités : Mise en relation de CentralPay avec les utilisateurs finaux (les “Participants”), Transmission à CentralPay des instructions de chargement (montant, bénéficiaire, commission), Visualisation et suivi des opérations via un compte centralisateur dédié, Transfert de valeur entre utilisateurs (comptes de monnaie électronique), Remboursement de la monnaie électronique à la demande de l’utilisateur, Détention d’un compte de commission pour percevoir les frais définis dans ses CGU. ⚠️ Limites fonctionnelles Le DME ne détient jamais les fonds, Il n’intervient pas sur les services de paiement régulés (ex : virements SEPA, carte, prélèvements), Il ne peut pas sous-traiter son activité, sauf accord explicite de CentralPay. 📋 Contraintes réglementaires Signature d’un contrat de distribution avec CentralPay, Dépôt d’un dossier de demande d’enregistrement à l’ACPR, sur initiative de CentralPay, Mise en conformité organisationnelle : dispositifs internes de sécurité, confidentialité, gestion des incidents, continuité d’activité, Supervision permanente par CentralPay, incluant : Contrôle de l’usage de l’API, Reporting régulier sur l’activité, Formation obligatoire des équipes du DME, Validation des CGU utilisées auprès des Participants. 🔵 2. Partenaire Agent de Services de Paiement (Agent PSP) ➤ Cas d’usage typique Plateformes B2B avec flux financiers complexes, Outils de gestion financière ou de trésorerie pour tiers, Solutions SaaS intégrant l’encaissement et le reversement. ✅ Rôle de l’Agent L’Agent PSP agit en tant que représentant réglementaire de CentralPay pour la fourniture de services de paiement. Fonctionnalités : Collecte de données KYC/KYB des utilisateurs (niveau 1), Accompagnement à l’ouverture de comptes CentralPay, Détention d’un compte de collecte, utilisé pour encaisser les paiements des utilisateurs finaux, Gestion des transferts de fonds vers les comptes de paiement CentralPay de chaque bénéficiaire, Pilotage des reversements (PAYOUT) vers les comptes bancaires externes, Détention d’un compte de commission, Éventuellement, utilisation d’un compte de paiement propre pour ses propres encaissements. 🛡️ CentralPay reste responsable CentralPay reste pleinement responsable des services fournis à l’utilisateur final, L’agent agit dans le strict cadre du mandat qui lui est confié, Toute opération réalisée via la plateforme est auditable, traçable, et documentée. 📋 Contraintes réglementaires Signature d’un contrat d’agent, Enregistrement officiel sur le registre des agents de l’ACPR (via CentralPay), Évaluation stricte de la capacité organisationnelle du partenaire, Exigences renforcées en matière de : Contrôle LCB-FT, Protection des données, Traçabilité des flux financiers, Reporting périodique à CentralPay sur : Le volume d’activité, Les incidents, Le respect des procédures, Possibilité d’audit sur pièce ou sur site, Formations obligatoires pour les équipes opérationnelles. Articles Déclaration Agent PSP (ACPR) Déclaration Distributeur ME (ACPR) Déclaration Agent PSP (ACPR) Rôle de l’ACPR L’ACPR (Autorité de Contrôle Prudentiel et de Résolution), organe de la Banque de France, est le seul régulateur compétent pour valider les déclarations d’Agents d’un Établissement de Paiement ou de Monnaie Électronique comme CentralPay. L’ACPR traite uniquement avec les Établissements régulés, sans contact direct possible pour le futur Agent. Étapes de déclaration d’un Agent ÉtapeDescription1. Constitution du dossierRéalisée par CentralPay avec le concours du futur Agent.2. Réponses aux demandes ACPRPilotées par CentralPay avec l’aide du futur Agent.3. Décision de l’ACPRCommuniquée à CentralPay. 1. Responsabilités de l’Agent CentralPay prend en charge les obligations complexes ou techniques. Toutefois, l’Agent doit garantir un haut niveau de vigilance en matière de LCB-FT (Lutte Contre le Blanchiment de Capitaux et le Financement du Terrorisme). L’Agent est notamment responsable de : La compréhension de l’activité de ses sous-marchands ; La vérification de la réalité économique des opérations ; La lutte contre la fraude. L’Agent doit signer : Un Contrat Cadre d’Agent de Paiement avec CentralPay ; Des Conditions Générales d’Utilisation spécifiques aux vendeurs. Si l’Agent internalise certaines fonctions critiques (ex. vérification KYC), un Contrat d’Externalisation de Prestations Essentielles doit également être signé. 2. Devenir Partenaire Agent CentralPay Le processus d’enregistrement comme Agent s’étale sur plusieurs mois et suit les étapes suivantes : 2.1. Résumé des étapes ÉtapeDétails1. Compréhension du modèle– Explication des services rendus par l’Agent– Définition du modèle d’affaires– Validation par les services Juridique et Conformité de CentralPay2. Offre commerciale– Présentation par CentralPay3. Validation– Validation juridique et conformité– Accord sur l’offre commerciale et les tarifs4. Test & Intégration– Accès à la sandbox– Réunion projet avec l’équipe technique- Intégration technique5. Instruction ACPR– Collecte des éléments réglementaires– Constitution et dépôt du dossier auprès de l’ACPR6. Mise en production– Tests en environnement de recette– Passage en production 2.2. Pièces à fournir à CentralPay Phase 1 – Pré-constitution du dossier CGU du service de paiement Définition des activités régulées, services associés, modèle d’affaires Organigramme (y compris répartition des effectifs par service) Structure de l’actionnariat Flux prévisionnels sur 3 ans confiés à CentralPay Nombre d’enrôlements prévisionnels sur 3 ans Cas de reprise de KYC existant (migration) Préparation du contrat d’Agent Phase 2 – Déclaration auprès du régulateur Signature du contrat d’Agent CentralPay collecte et dépose les pièces suivantes : Kbis < 3 mois de la société et des sociétés gérantes Statuts à jour signés de la société et des sociétés gérantes Pièce d’identité couleur des dirigeants CV des dirigeants datés et signés Casier judiciaire des dirigeants Déclaration de non-condamnation des dirigeants Répartition de la détention des parts Kbis des personnes morales actionnaires (si applicable) Organigramme du Groupe (si applicable) PV d’AG récents (fusion, perte > 50% du capital, changement direction, etc.) Peuvent également être demandés par l’ACPR : Bilans et comptes de résultat récents États financiers en cours ou de l’année précédente Toute pièce jugée utile par le régulateur 2.3. Délais d’instruction Instruction par CentralPay : ~2 semaines après réception complète des pièces Délai de l’ACPR : jusqu’à 2 mois, avec premières questions sous 30 jours en général 2.4. Fin d’instruction Dès validation du dossier, l’Agent peut démarrer l’activité avec CentralPay Il est référencé dans les registres publics de l’ACPR avec un numéro d’enregistrement obligatoire dans les CGU et communications officielles 2.5. Particularité – Agents Télécom SVA (numéros surtaxés) Obligation de fournir un récapitulatif des minutes téléphoniques par opérateur Transmission du détail de répartition des encaissements à CentralPay Le service Conformité CentralPay s’assure que les marchands sont correctement crédités Déclaration Distributeur ME (ACPR) Les Établissements émetteurs de monnaie électronique comme CentralPay peuvent mandater des Distributeurs de Monnaie Électronique (DME) afin de collecter des fonds et d’assurer les échanges permettant l’achat et le remboursement de ME dans un réseau de participants défini. La déclaration d’un Distributeur de Monnaie Électronique se déroule en deux étapes : Le montage du dossier de déclaration : réalisé par CentralPay avec l’aide de son futur DME L’instruction du dossier à l’ACPR : réalisé par CentralPay. Elle ne nécessite pas de validation particulière de l’ACPR 1. Responsabilité du partenaire DME CentralPay réalise tous les processus complexes ou nécessitant de fortes compétences. Néanmoins, vous êtes toujours garant de la tenue d’un haut niveau d’exigence dans le suivi et l’application des règles de LCB-FT (Lutte Contre le Blanchiment et le Financement du Terrorisme). À ce titre, vous devez apporter à CentralPay des certitudes sur les conditions de réalisation des opérations qui passent par votre intermédiaire, notamment : La réalité économique de l’opération La lutte contre la fraude Les Établissements régulés qui font appel à des distributeurs restent responsables des opérations réalisées par ces derniers. Un cadre juridique précis est donc mis en place. Un statut de Distributeur de Monnaie Électronique passe par : La contractualisation d’un contrat Cadre de Distribution de Monnaie Électronique qui définit les relations entre les parties Des CGU d’utilisation de Monnaie Électronique Dans le cas où un DME internalise certaines fonctions dévolues à CentralPay dans le cadre de ses obligations règlementaires, un contrat de Prestations de Services Essentiels Externalisées devra être signé. C’est par exemple le cas si l’agent internalise la gestion des KYC ou réalise des interfaces de gestion qui ne permettrait pas à CentralPay d’assurer l’exécution du service sans le concours du PSEE. 2. Devenir partenaire DME Devenir Distributeur de CentralPay nécessite le suivi d’étapes qui s’étalent sur plusieurs semaines. Voici un guide qui permet de mieux comprendre les enjeux liés à l’acceptation, puis à l’instruction des dossiers de déclaration des Distributeurs. 2.1. Résumé des étapes Compréhension du modèle Explication des services apportés par le partenaire Définition de son modèle d’affaires Validation par le service Risque & Conformité de CentralPay Offre Commerciale Présentation Validation Validation du Partenaire par le service Risque & Conformité de CentralPay Validation de la proposition commerciale et des conditions tarifaires par le Partenaire Test & Intégration Mise en place de la sandbox Réunion de lancement de projet avec l’équipe technique Phase d’intégration technique Instruction du dossier ACPR Collecte des éléments nécessaires à la constitution du dossier Préparation du dossier Présentation du dossier Mise en production Validation de la recette Mise en production 2.2. Pièces à fournir à CentralPay Prochainement
R-transaction carte 1. Remboursement Vous pouvez rembourser une Transaction si celle-ci est « Cleared » via le service Refund ou depuis le détail de la Transaction dans le Portail utilisateur. Vous pouvez initier un remboursement total ou partiel en renseignant un montant. Votre client recevra les fonds sur sa carte sous 3 à 5 jours ouvrés après l’opération. Votre compte de paiement est lui débité immédiatement, il doit donc être solvable pour pouvoir réaliser l’opération. Vous ne pouvez pas annuler un remboursement une fois celui-ci réalisé. 2. Crédit Vous pouvez créditer la carte d’un client sans transaction initiale depuis le service Credit. Pour cela, il existe plusieurs solutions : Tokeniser une carte via le service cardToken pour ensuite la renseigner dans le service Credit Créer ou rechercher un Customer disposant d’une carte valide, puis renseigner son « customerId » ainsi que son « cardId » dans le service Credit ℹ️ Ce service n'est disponible que pour des activités spécifiques, contactez CentralPay pour en savoir plus. 3. Contestation Pour tout paiement par carte, votre client a la possibilité de contester une transaction auprès de sa banque (opération nommée contestation, chargeback ou impayé) : Pendant 120 jours à compter de la transaction sur les réseaux « Visa » ou « Mastercard » Pendant 13 mois à compter de la date d’opération sur le réseau Français « Carte Bancaire » ℹ️ En France, une contestation n'est en principe autorisée que dans le cadre d'une utilisation frauduleuse de la carte (carte volée, prélèvements abusifs…). Cependant, dans d'autres pays européens, la contestation peut également être utilisée dans le cadre d'un litige commercial (service ou produit non rendu / non conforme). En cas de contestation, CentralPay en est informé et crée automatiquement sur votre compte une opération de Dispute liée à la transaction contestée. Le montant de cette transaction vous sera débité afin de rembourser votre client. Des frais non remboursables s’appliquent également pour chaque contestation reçue. À ce stade, le statut de la Dispute sera Chargeback_Noticed et vous pourrez consulter sur le Portail utilisateur ou via notre API le motif de contestation de votre client. Vous disposez ainsi d’un délai de 20 jours calendaires pour répondre en fournissant la preuve de livraison du service ou du produit. À défaut de réponse dans les délais impartis, il ne sera plus possible de répondre à la contestation. ℹ️ Notez que dans le cadre des transactions non authentifiées (sans 3DS), vous devez également justifier du consentement du titulaire de la carte. Vous devez à minima prouver que le nom et prénom de votre client est bien le même que celui qui est indiqué sur la carte de paiement. Une fois votre réponse émise, celle-ci est étudiée par la banque de votre client avant d’adresser son verdict : Vous avez obtenu gain de cause, la contestation a été rejetée. Le montant de la transaction vous est remboursé et le statut de la Dispute passe en Chargeback_Won. Vos preuves sont jugées insuffisantes, la contestation est maintenue. Le statut de la Dispute passe en Chargeback_Lost. ℹ️ Il est possible, en amont d'une contestation, qu'un client réalise une demande d'information sur une transaction afin d'en connaitre les détails. CentralPay créera une opération Dispute avec statut Retrieval_Noticed. Vous devez répondre dans les 7 jours en fournissant la nature du service délivré, la preuve de consentement du client et/ou la preuve de livraison. Si votre réponse est acceptée, le statut de la Dispute passera à Retrieval_Close. À défaut de réponse, votre client pourra déclencher une contestation auprès de sa banque.
Offres commerciales CentralPay propose 2 modèles d’offres commerciales : Les offres Starter et Medium, intégrant un forfait mensuel fixe et des frais par transaction simplifiés (ou « blind rate ») Les offres Major, intégrant également un forfait mensuel fixe, mais avec des frais par transaction plus détaillés (ou « interchange++ ») Dans ces deux modèles, les offres CentralPay intègrent les frais d’interchange et de réseaux cartes qui sont facturés par les banques. Vous n’avez donc aucun surcoût à prévoir. Consultez le tarif des offres CentralPay ➝
Webhook notifications Articles The MERCHANT-ENROLLMENT object The WALLETS object The BANKACCOUNT object The CARD object The CREDIT object The CUSTOMER object The DEPOSIT object The DISPUTE object The INSTALLMENT object The ONBOARDING object The PAYMENT REQUEST object The PAYOUT object The REFUND object The SCT Transaction object The SDD TRANSACTION object The MANDATE object The SUBSCRIPTION object The TRANSACTION object The TRANSFER REVERSAL object The TRANSFER object The WIRETRANSFER object (Deprecated) The MERCHANT-ENROLLMENT object Prochainement The WALLETS object Prochainement The BANKACCOUNT object BANKACCOUNT_ACCEPTEDWhen a Bank account is accepted { "eventId": "e9229c2d-43f3-47aa-a2d4-09b2cd8afeef", "type": "BANKACCOUNT_ACCEPTED", "creationDate": "2024-01-05T12:44:06.262837+01:00", "object": { "attachments": [], "bankAccountId": "e6337e4f-6067-42ca-b7f0-9b7bce77c21e", "bic": "AXABFRPP", "creationDate": "2024-01-05T12:44:06.044772+01:00", "currency": "EUR", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "iban": "FR7612548029980000000150086", "name": "GAUTHIER REF API", "ownerAddress": "142 RUE DE LA REFAPI", "ownerCity": "TOURS", "ownerCountry": "FRA", "ownerName": "GAUTHIER REFAPI", "ownerPostalCode": "37000", "type": "CUSTOMER_ACCOUNT" }, "requestId": "0062091d-0377-4a47-bc95-b5717636825f" } BANKACCOUNT_PENDINGWhen a Bank account is pending { "eventId": "601c64e9-b65e-4369-8f70-5d32ce853073", "type": "BANKACCOUNT_PENDING", "creationDate": "2024-01-15T14:26:17.381461+01:00", "object": { "attachments": [], "bankAccountId": "2377f038-d798-42b2-ac46-113105166bd4", "bic": "AXABFRPP", "creationDate": "2024-01-15T14:26:17.189030+01:00", "currency": "EUR", "iban": "DE91100000000123456789", "merchantId": "e962cfc2-1d4f-4f4f-8688-71c38920ca6b", "name": "GAUTHIER REF API", "ownerAddress": "142 RUE DE LA REFAPI", "ownerCity": "TOURS", "ownerCountry": "FRA", "ownerName": "GAUTHIER REFAPI", "ownerPostalCode": "37000", "type": "MERCHANT_ACCOUNT" }, "requestId": "0965a4a6-e353-47ad-b844-40f7feca3ef0" } BANKACCOUNT_UPDATEDWhen a Bank account is updated { "name": "GAUTHIER REF API", "description": null, "ownerName": "GAUTHIER REFAPI", "ownerAddress": "142 RUE DE LA REFAPI", "ownerDescription": null, "ownerPostalCode": "37000", "ownerCity": "TOURS", "ownerCountry": "FRA", "iban": "FR7612548029980000000150086", "bic": "AXABFRPP", "currency": "EUR", "type": "CUSTOMER_ACCOUNT", "bankAccountId": "e6337e4f-6067-42ca-b7f0-9b7bce77c21e", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "merchantId": null, "creationDate": "2024-01-05T12:44:06.044772+01:00", "attachments": [] } The CARD object CARD_UPDATEDWhen a card is updated { "eventId": "5f037905-d0f2-4171-bc6f-fbab3b3e56e2", "type": "CARD_UPDATED", "creationDate": "2024-01-05T12:55:39.727533+01:00", "object": { "additionalData": {}, "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2", "cardType": "DEBIT", "cardholderEmail": "test@gmail.com", "cardholderName": "MARIE ANNE", "check": true, "commercialBrand": "MASTERCARD", "country": "FRA", "creationDate": "2024-01-05T12:52:41.054394+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f", "first6": "532509", "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5", "last4": "0008", "productType": "CORPORATE", "region": "EUROPE" }, "requestId": "296311d9-1f68-4f1f-a9bf-7879afb92c7b", "objectBeforeUpdate": { "additionalData": {}, "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2", "cardType": "DEBIT", "cardholderEmail": "gduhamel@centralpay.eu", "check": true, "commercialBrand": "MASTERCARD", "country": "FRA", "creationDate": "2024-01-05T12:52:41.054394+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f", "first6": "532509", "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5", "last4": "0008", "productType": "CORPORATE", "region": "EUROPE" } CARDTOKEN_CREATEDWhen a card token is created { "eventId": "3973ea45-d327-48d7-b74a-08cbffc821e9", "type": "CARDTOKEN_CREATED", "creationDate": "2024-01-05T14:23:41.971425+01:00", "object": { "card": { "additionalData": {}, "cardId": "81e54dd0-512e-47c0-91f3-54e81b74a3ea", "cardTokenId": "a3d37fd6-2ad7-4e9d-a4a0-b0b1aff44b50", "cardType": "DEBIT", "cardholderEmail": "Conner44@yahoo.com", "cardholderName": "GAUTHIER REFAPI", "check": true, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-05T14:23:41.881571+01:00", "europeanEconomicArea": true, "expirationMonth": 12, "expirationYear": 2025, "fingerprint": "edb9f9757c4be415db6616f94a04706a6b92dcd1", "first6": "403203", "last4": "2700", "productType": "CONSUMER", "region": "EUROPE" }, "cardTokenId": "a3d37fd6-2ad7-4e9d-a4a0-b0b1aff44b50", "creationDate": "2024-01-05T14:23:41.881571+01:00", "endUserIp": "54.86.50.139", "status": "UNUSED" }, "requestId": "f55ea9cb-595a-4e5d-b9ba-52198b5b3a16" } The CREDIT object CREDIT_CREATEDWhen a credit is created { "eventId": "b0ea7273-7421-4f3d-b9b6-27c1f521386b", "type": "CREDIT_CREATED", "creationDate": "2024-01-05T14:51:48.090154+01:00", "object": { "additionalData": { "key1": "value1" }, "amount": 100, "card": { "additionalData": {}, "cardId": "5ba4a451-e3ba-4555-b6f1-955b1531cbed", "cardTokenId": "39e38277-d68d-4970-b7ef-2f3e65e3ba1c", "cardType": "DEBIT", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-05T14:51:46.753895+01:00", "europeanEconomicArea": true, "expirationMonth": 12, "expirationYear": 2026, "fingerprint": "31e7053d8ee3f13b4f391c989d83aaaa7771450d", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T14:51:47.744817+01:00", "creditId": "a0184f13-cb58-4db2-9c02-f7ecdaf61909", "currency": "EUR", "fee": 0, "merchantCreditId": "MCID-01", "movementId": "304a16a4-f3f1-4e14-ab3b-2e9b4cee2f20", "order": { "addressLine1": "142 RUE DE LA REFAPI", "cardCountry": "FRA", "city": "BRIANNEBURY", "country": "FRA", "firstName": "MANDATORY", "lastName": "MANDATORY" }, "payoutAmount": 100, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "status": "UNCLEARED", "transactionTransfers": [] }, "requestId": "d4cf4f9b-83bc-4877-8d2a-c84a7183c666" } CREDIT_CANCELEDWhen a credit is cancelled { "eventId": "df668650-b893-462e-aa1a-f232bed383da", "type": "CREDIT_CANCELED", "creationDate": "2024-01-05T14:53:29.028715+01:00", "object": { "additionalData": { "key1": "value1", "test": "test" }, "amount": 100, "cancelMovementId": "1555e13a-0344-403a-a01c-6d435c598659", "cancellationDate": "2024-01-05T14:53:29.015180+01:00", "card": { "additionalData": {}, "cardId": "5ba4a451-e3ba-4555-b6f1-955b1531cbed", "cardType": "DEBIT", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-05T14:51:46.753895+01:00", "europeanEconomicArea": true, "expirationMonth": 12, "expirationYear": 2026, "fingerprint": "31e7053d8ee3f13b4f391c989d83aaaa7771450d", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T14:51:47.744817+01:00", "creditId": "a0184f13-cb58-4db2-9c02-f7ecdaf61909", "currency": "EUR", "fee": 0, "merchantCreditId": "MCID-01", "movementId": "304a16a4-f3f1-4e14-ab3b-2e9b4cee2f20", "order": { "addressLine1": "142 RUE DE LA REFAPI", "cardCountry": "FRA", "city": "BRIANNEBURY", "country": "FRA", "firstName": "MANDATORY", "lastName": "MANDATORY" }, "payoutAmount": 100, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "status": "CANCELED", "transactionTransfers": [] }, "requestId": "dca78a74-22f1-4fd8-a6bb-fc4be4735838" } CREDIT_UPDATEDWhen a credit is updated { "eventId": "b51f11be-c535-49a4-8a70-6241afd75654", "type": "CREDIT_UPDATED", "creationDate": "2024-01-05T14:52:49.329773+01:00", "object": { "additionalData": { "key1": "value1", "test": "test" }, "amount": 100, "card": { "additionalData": {}, "cardId": "5ba4a451-e3ba-4555-b6f1-955b1531cbed", "cardType": "DEBIT", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-05T14:51:46.753895+01:00", "europeanEconomicArea": true, "expirationMonth": 12, "expirationYear": 2026, "fingerprint": "31e7053d8ee3f13b4f391c989d83aaaa7771450d", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T14:51:47.744817+01:00", "creditId": "a0184f13-cb58-4db2-9c02-f7ecdaf61909", "currency": "EUR", "fee": 0, "merchantCreditId": "MCID-01", "movementId": "304a16a4-f3f1-4e14-ab3b-2e9b4cee2f20", "order": { "addressLine1": "142 RUE DE LA REFAPI", "cardCountry": "FRA", "city": "BRIANNEBURY", "country": "FRA", "firstName": "MANDATORY", "lastName": "MANDATORY" }, "payoutAmount": 100, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "status": "UNCLEARED", "transactionTransfers": [] }, "requestId": "300fdb28-2e74-4512-a7e9-f3fa843c8a7c", "objectBeforeUpdate": { "additionalData": { "key1": "value1" }, "amount": 100, "card": { "additionalData": {}, "cardId": "5ba4a451-e3ba-4555-b6f1-955b1531cbed", "cardType": "DEBIT", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-05T14:51:46.753895+01:00", "europeanEconomicArea": true, "expirationMonth": 12, "expirationYear": 2026, "fingerprint": "31e7053d8ee3f13b4f391c989d83aaaa7771450d", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T14:51:47.744817+01:00", "creditId": "a0184f13-cb58-4db2-9c02-f7ecdaf61909", "currency": "EUR", "fee": 0, "merchantCreditId": "MCID-01", "movementId": "304a16a4-f3f1-4e14-ab3b-2e9b4cee2f20", "order": { "addressLine1": "142 RUE DE LA REFAPI", "cardCountry": "FRA", "city": "BRIANNEBURY", "country": "FRA", "firstName": "MANDATORY", "lastName": "MANDATORY" }, "payoutAmount": 100, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "status": "UNCLEARED", "transactionTransfers": [] } } The CUSTOMER object CUSTOMER_CREATEDWhen a customer is created { "eventId": "8af1b16e-f78a-42ae-9304-69624a4023fc", "type": "CUSTOMER_CREATED", "creationDate": "2024-01-05T12:29:58.808367+01:00", "object": { "additionalData": {}, "bankAccounts": [], "cardMerchants": [], "cards": [], "creationDate": "2024-01-05T12:29:58.736339+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "email": "gduhamel@centralpay.eu", "fee": 0, "firstName": "JOCELYN", "installmentPayments": [], "language": "fre", "lastName": "WISOKY", "merchantCustomerId": "1704454198-GDU", "movementId": "c5408b8a-43d0-4191-9cb2-f3ec6d610649", "otpExpired": false, "subscriptions": [], "totalCharge": 0, "wallets": [] } CUSTOMER_UPDATEDWhen a customer is updated { "eventId": "94683d87-5919-4d4a-a547-21dbc7e7af1d", "type": "CUSTOMER_UPDATED", "creationDate": "2024-01-05T12:36:29.492916+01:00", "object": { "additionalData": {}, "bankAccounts": [], "cardMerchants": [], "cards": [], "creationDate": "2024-01-05T12:29:58.736339+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "email": "gduhamel@centralpay.eu", "fee": 0, "firstName": "JOCELYN", "installmentPayments": [], "language": "fre", "lastName": "WISOKY", "merchantCustomerId": "1704454198-GDU", "movementId": "c5408b8a-43d0-4191-9cb2-f3ec6d610649", "otpExpired": false, "subscriptions": [], "totalCharge": 0, "wallets": [] }, "requestId": "ca336699-db00-46c6-a797-228c320e351b", "objectBeforeUpdate": { "additionalData": {}, "bankAccounts": [], "cardMerchants": [], "cards": [], "creationDate": "2024-01-05T12:29:58.736339+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "email": "gduhamel@centralpay.eu", "fee": 0, "firstName": "JOCELYN", "installmentPayments": [], "language": "fre", "lastName": "WISOKY", "merchantCustomerId": "1704454198-GDU", "movementId": "c5408b8a-43d0-4191-9cb2-f3ec6d610649", "otpExpired": false, "subscriptions": [], "totalCharge": 0, "wallets": [] }} CUSTOMER_OTPWhen a Customer OTP is received to confirm a transaction { "eventId": "7404acb7-6000-4059-9da2-97581df00dc8", "type": "CUSTOMER_OTP", "creationDate": "2024-01-26T12:02:55.839650+01:00", "object": { "additionalData": {}, "bankAccounts": [], "cardMerchants": [], "cards": [ { "additionalData": {}, "cardId": "a361cbf0-c334-4422-b4e8-4d96f6b72799", "cardType": "DEBIT", "cardholderEmail": "gduhamel@centralpay.eu", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-26T11:59:38.763535+01:00", "customerId": "bac11130-43c2-4351-9c52-f1f7603282ee", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "8e9302793aa37b661f9ec57013d105ad72f1bc86", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" } ], "creationDate": "2024-01-26T11:59:38.569182+01:00", "customerId": "bac11130-43c2-4351-9c52-f1f7603282ee", "email": "gduhamel@centralpay.eu", "fee": 0, "firstName": "BEULAH", "installmentPayments": [], "language": "fre", "lastName": "PROSACCO", "merchantCustomerId": "1706266777-GDU", "movementId": "9afa479b-0859-4712-a614-2b1f38b81f9c", "otpExpirationDate": "2024-01-26T12:17:55.731546+01:00", "otpExpired": false, "subscriptions": [], "totalCharge": 0, "wallets": [] }, "requestId": "5329117d-5f7f-471b-a8d7-832627252670", "objectBeforeUpdate": { "additionalData": {}, "bankAccounts": [], "cardMerchants": [], "cards": [ { "additionalData": {}, "cardId": "a361cbf0-c334-4422-b4e8-4d96f6b72799", "cardType": "DEBIT", "cardholderEmail": "gduhamel@centralpay.eu", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-26T11:59:38.763535+01:00", "customerId": "bac11130-43c2-4351-9c52-f1f7603282ee", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "8e9302793aa37b661f9ec57013d105ad72f1bc86", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" } ], "creationDate": "2024-01-26T11:59:38.569182+01:00", "customerId": "bac11130-43c2-4351-9c52-f1f7603282ee", "email": "gduhamel@centralpay.eu", "fee": 0, "firstName": "BEULAH", "installmentPayments": [], "language": "fre", "lastName": "PROSACCO", "merchantCustomerId": "1706266777-GDU", "movementId": "9afa479b-0859-4712-a614-2b1f38b81f9c", "otpExpired": false, "subscriptions": [], "totalCharge": 0, "wallets": [] } } The DEPOSIT object DEPOSIT_CREATEDWhen a deposit is created { "depositId": "f63ea558-6e50-4dba-a7e7-eb8676144ea0", "creationDate": "2020-11-16T10:55:11.163214+01:00", "description": null, "amount": 1500000, "currency": "EUR", "sepaReference": null, "movementId": "9612fe9b-e226-4e9f-a0dc-8539a24ba748", "merchantId": "0055bff7-566c-4688-818c-85caf3601785", "destinationBankAccountId": "d9952704-5054-47fc-a068-c6865a9d00fd" } DEPOSIT_UPDATEDWhen a deposit is updated The DISPUTE object DISPUTE_UPDATEDWhen a dispute is updated { "eventId": "91986115-56ed-442a-ace7-2207c7f7cfa1", "type": "DISPUTE_UPDATED", "creationDate": "2024-01-05T15:22:33.233092+01:00", "object": { "additionalData": {}, "amount": 10, "creationDate": "2024-01-05T15:16:27.776882+01:00", "currency": "EUR", "description": "ma description", "disputeDate": "2021-03-18", "disputeId": "896304e9-b937-443a-ba59-3ccc99931b00", "fee": 0, "movementId": "09e2b390-a5a6-4926-a5ad-41c96bd38cea", "reason": "FRAUDULENT", "status": "CHARGEBACK_WON", "transactionId": "8940d775-cb9c-46e4-ab5a-c5c3ea7c3116", "wonMovementId": "569d7143-7357-4171-91ac-c03721a8ee30" }, "requestId": "750fdf73-0782-482b-97f6-2dbfb809b563", "objectBeforeUpdate": { "additionalData": {}, "amount": 10, "creationDate": "2024-01-05T15:16:27.776882+01:00", "currency": "EUR", "disputeDate": "2021-03-18", "disputeId": "896304e9-b937-443a-ba59-3ccc99931b00", "fee": 0, "movementId": "09e2b390-a5a6-4926-a5ad-41c96bd38cea", "reason": "FRAUDULENT", "status": "CHARGEBACK_NOTICED", "transactionId": "8940d775-cb9c-46e4-ab5a-c5c3ea7c3116" } } DISPUTE_CREATEDWhen a dispute is created The INSTALLMENT object INSTALLMENTPAYMENT_CREATEDWhen an installment is created { "eventId": "ab0c4d87-336d-4f1d-94ac-8a19e91c90df", "type": "INSTALLMENTPAYMENT_CREATED", "creationDate": "2024-01-05T16:47:16.962837+01:00", "object": { "additionalData": { "Key1": "val1" }, "amount": 1000, "card": { "commercialBrand": "MASTERCARD", "first6": "532509", "last4": "0008", "uuid": "4680d102-96b0-4fba-b00c-3375ee610fc7" }, "cardId": "4680d102-96b0-4fba-b00c-3375ee610fc7", "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T16:47:14.425730+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "depositAmount": 0, "endUserIp": "245.100.1.15", "feeAmount": 0, "installmentPaymentId": "1da9892e-d71c-40a9-8637-c259d3076582", "installments": [ { "amount": 500, "attemptCount": 1, "creationDate": "2024-01-05T16:47:14.425041+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "d70bceea-1b4b-454f-ae04-3cfa5e877e01", "installmentPaymentId": "1da9892e-d71c-40a9-8637-c259d3076582", "paid": true, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-05T16:47:15.250593+01:00", "uuid": "8b1b6eb7-c492-4a3f-913e-46c84836b50d" } ], "transactions": [ "8b1b6eb7-c492-4a3f-913e-46c84836b50d" ], "type": "INSTALLMENT" }, { "amount": 500, "attemptCount": 0, "creationDate": "2024-01-05T16:47:14.425434+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "8a2fea18-7ce7-4320-a398-3aec7c7cd7e9", "installmentPaymentId": "1da9892e-d71c-40a9-8637-c259d3076582", "nextTransactionAttempt": "2024-02-05T04:00+01:00", "paid": false, "sddTransactions": [], "transactions": [], "type": "INSTALLMENT" } ], "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "merchantInstallmentPaymentId": "MIP_001", "pointOfSale": { "name": "Corben Dallas", "uuid": "7d99a970-cc26-4de8-aa5d-d9ebf4088247" }, "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "startingDate": "2024-01-05", "status": "ACTIVE" }, "requestId": "66ec59e5-3f88-4cbd-a01f-b6be126084bf" } INSTALLMENTPAYMENT_FAILEDWhen an installment failed { "eventId": "4e1bbe68-906d-4e33-923d-dfee760a2261", "type": "INSTALLMENTPAYMENT_FAILED", "creationDate": "2024-01-05T16:34:31.349325+01:00", "object": { "additionalData": { "Key1": "val1" }, "amount": 1000, "card": { "commercialBrand": "MASTERCARD", "first6": "532509", "last4": "0008", "uuid": "4680d102-96b0-4fba-b00c-3375ee610fc7" }, "cardId": "4680d102-96b0-4fba-b00c-3375ee610fc7", "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T16:34:29.520817+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "depositAmount": 0, "endUserIp": "245.100.1.15", "feeAmount": 0, "installmentPaymentId": "0453a075-211f-4d0a-8947-e05cd6bd33fc", "installments": [ { "amount": 500, "attemptCount": 1, "creationDate": "2024-01-05T16:34:29.520151+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "6fe13fbd-10d6-406d-93af-31f5d682db99", "installmentPaymentId": "0453a075-211f-4d0a-8947-e05cd6bd33fc", "paid": false, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-05T16:34:30.385545+01:00", "uuid": "f061fa00-8494-4eca-b9d1-f54d36125d7d" } ], "transactions": [ "f061fa00-8494-4eca-b9d1-f54d36125d7d" ], "type": "INSTALLMENT" }, { "amount": 500, "attemptCount": 0, "creationDate": "2024-01-05T16:34:29.520525+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "9d1fdd64-a45c-4f30-afb2-36734fdfbf39", "installmentPaymentId": "0453a075-211f-4d0a-8947-e05cd6bd33fc", "paid": false, "sddTransactions": [], "transactions": [], "type": "INSTALLMENT" } ], "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "merchantInstallmentPaymentId": "MIP_001", "pointOfSale": { "name": "Corben Dallas", "uuid": "7d99a970-cc26-4de8-aa5d-d9ebf4088247" }, "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "startingDate": "2024-01-05", "status": "CANCELED" }, "requestId": "60a91f69-2549-4652-96ee-25fb58f48f56" } INSTALLMENTPAYMENT_UPDATEDWhen an installment is updated { "installmentPaymentId": "2351a31a-3c84-4681-8a83-cd5f260d78ab", "creationDate": "2021-09-09T09:49:00.941254+02:00", "pointOfSaleId": "cfc0b3c7-e666-4c52-b77a-96f234b873fe", "contractId": "71602dd0-2790-4743-877b-e72530d7576d", "customerId": "3036e768-071e-4119-abd8-57d50581c371", "cardId": "06a45250-8e22-41aa-a97a-284c225419a5", "paymentRequestBreakdownId": "6e5ba89d-d275-4174-8cfd-9418dc6bd303", "paymentRequestId": "c796df20-258e-4645-90d8-aad70349c547", "mandateId": "f65ea8ce-5171-4c1e-8b8f-69654e0acf4e", "depositStartingDate": null, "startingDate": "2021-09-09", "requestedCollectionDate": null, "merchantInstallmentPaymentId": null, "endUserIp": "92.154.127.221", "endUserLanguage": null, "amount": 300, "depositAmount": 0, "feeAmount": 0, "currency": "EUR", "description": null, "intervalUnit": "WEEK", "intervalCount": 1, "iterationCount": 3, "status": "ACTIVE", "endToEndIdentification": null, "remittanceInformation": "BCDEB2DEEB6E", "installments": [ { "installmentId": "ee6f170c-710a-4a9d-a79f-c163de336530", "creationDate": "2021-09-09T09:49:00.940625+02:00", "installmentPaymentId": "2351a31a-3c84-4681-8a83-cd5f260d78ab", "customerId": "3036e768-071e-4119-abd8-57d50581c371", "mandateId": "f65ea8ce-5171-4c1e-8b8f-69654e0acf4e", "amount": 100, "currency": "EUR", "attemptCount": 1, "paid": true, "type": "INSTALLMENT", "nextTransactionAttempt": null, "transactions": [], "sddTransactions": [ "116adfc1-7996-4bd7-9678-d4a2b1a77762" ] }, { "installmentId": "26d5e572-4740-4c30-bbb8-5d2251e13e1d", "creationDate": "2021-09-09T09:49:00.941206+02:00", "installmentPaymentId": "2351a31a-3c84-4681-8a83-cd5f260d78ab", "customerId": "3036e768-071e-4119-abd8-57d50581c371", "mandateId": "f65ea8ce-5171-4c1e-8b8f-69654e0acf4e", "amount": 100, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-09-16T08:00+02:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "afe58afd-712d-415f-adf5-70e980c73b57", "creationDate": "2021-09-09T09:49:00.941224+02:00", "installmentPaymentId": "2351a31a-3c84-4681-8a83-cd5f260d78ab", "customerId": "3036e768-071e-4119-abd8-57d50581c371", "mandateId": "f65ea8ce-5171-4c1e-8b8f-69654e0acf4e", "amount": 100, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-09-23T08:00+02:00", "transactions": [], "sddTransactions": [] } ], "additionalData": [] } INSTALLMENTPAYMENT_CANCELEDWhen an installment is cancelled { "eventId": "47253f14-814e-4cf8-9582-be869145a80f", "type": "INSTALLMENTPAYMENT_CANCELED", "creationDate": "2024-01-05T16:34:31.276257+01:00", "object": { "additionalData": { "Key1": "val1" }, "amount": 1000, "card": { "commercialBrand": "MASTERCARD", "first6": "532509", "last4": "0008", "uuid": "4680d102-96b0-4fba-b00c-3375ee610fc7" }, "cardId": "4680d102-96b0-4fba-b00c-3375ee610fc7", "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T16:34:29.520817+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "depositAmount": 0, "endUserIp": "245.100.1.15", "feeAmount": 0, "installmentPaymentId": "0453a075-211f-4d0a-8947-e05cd6bd33fc", "installments": [ { "amount": 500, "attemptCount": 1, "creationDate": "2024-01-05T16:34:29.520151+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "6fe13fbd-10d6-406d-93af-31f5d682db99", "installmentPaymentId": "0453a075-211f-4d0a-8947-e05cd6bd33fc", "paid": false, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-05T16:34:30.385545+01:00", "uuid": "f061fa00-8494-4eca-b9d1-f54d36125d7d" } ], "transactions": [ "f061fa00-8494-4eca-b9d1-f54d36125d7d" ], "type": "INSTALLMENT" }, { "amount": 500, "attemptCount": 0, "creationDate": "2024-01-05T16:34:29.520525+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "9d1fdd64-a45c-4f30-afb2-36734fdfbf39", "installmentPaymentId": "0453a075-211f-4d0a-8947-e05cd6bd33fc", "paid": false, "sddTransactions": [], "transactions": [], "type": "INSTALLMENT" } ], "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "merchantInstallmentPaymentId": "MIP_001", "pointOfSale": { "name": "Corben Dallas", "uuid": "7d99a970-cc26-4de8-aa5d-d9ebf4088247" }, "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "startingDate": "2024-01-05", "status": "CANCELED" }, "requestId": "1bac71b6-6d40-4618-b772-95c926cbeab2" } INSTALLMENTPAYMENT_ACTIVATEDWhen an installment is activated INSTALLMENTPAYMENT_FAILUREWhen an installment failed to be paid INSTALLMENTPAYMENT_PAIDWhen an installment is paid { "eventId": "17198557-e18a-4e75-a88f-d23ea841a641", "type": "INSTALLMENTPAYMENT_PAID", "creationDate": "2024-01-30T12:19:22.324713+01:00", "object": { "additionalData": {}, "amount": 100000, "card": { "commercialBrand": "VISA", "first6": "403203", "last4": "2700", "uuid": "7af37b48-4c0a-4e5d-81ec-0ecd6758ee82" }, "cardId": "7af37b48-4c0a-4e5d-81ec-0ecd6758ee82", "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-15T12:40:35.818249+01:00", "currency": "EUR", "customerId": "1d281559-80b2-45c0-9930-6fb94651d6b7", "depositAmount": 0, "endUserIp": "91.229.230.41", "endUserLanguage": "eng", "feeAmount": 0, "installmentPaymentId": "78e28b54-708c-45a7-a6ef-d3c1672ffe49", "installments": [ { "amount": 50000, "attemptCount": 1, "creationDate": "2024-01-15T12:40:35.818185+01:00", "currency": "EUR", "customerId": "1d281559-80b2-45c0-9930-6fb94651d6b7", "installmentId": "c3c2eb3c-9935-4eb1-a9bd-42f62f1c035c", "installmentPaymentId": "78e28b54-708c-45a7-a6ef-d3c1672ffe49", "paid": true, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-15T12:40:36.418127+01:00", "uuid": "7f642ab2-5c15-4420-b85a-a97cb819844d" } ], "transactions": [ "7f642ab2-5c15-4420-b85a-a97cb819844d" ], "type": "INSTALLMENT" }, { "amount": 50000, "attemptCount": 1, "creationDate": "2024-01-15T12:40:35.818207+01:00", "currency": "EUR", "customerId": "1d281559-80b2-45c0-9930-6fb94651d6b7", "installmentId": "6eaf48a5-d0df-40d2-bd62-a297444d37d2", "installmentPaymentId": "78e28b54-708c-45a7-a6ef-d3c1672ffe49", "paid": true, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-30T12:19:20.941639+01:00", "uuid": "ea71af48-6048-46e0-8703-7cb3e0a24b65" } ], "transactions": [ "ea71af48-6048-46e0-8703-7cb3e0a24b65" ], "type": "INSTALLMENT" } ], "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "paymentRequestBreakdownId": "b665743f-6671-4749-9727-f801c0d9915a", "paymentRequestId": "3192c6e1-89e6-4d5a-9d96-3208b37f5c3f", "pointOfSale": { "name": "Corben Dallas", "uuid": "7d99a970-cc26-4de8-aa5d-d9ebf4088247" }, "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "startingDate": "2023-12-15", "status": "PAID" }, "requestId": "7ef61f64-e4e9-4021-8d29-c4b449b762f8" } INSTALLMENTPAYMENT_UNPAIDWhen an installment is unpaid { "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "creationDate": "2021-09-03T10:38:16.811541+02:00", "pointOfSaleId": "cfc0b3c7-e666-4c52-b77a-96f234b873fe", "contractId": "71602dd0-2790-4743-877b-e72530d7576d", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "cardId": "d3143e10-9660-48bb-b6a6-b2e1100ecf6f", "paymentRequestBreakdownId": null, "paymentRequestId": null, "mandateId": null, "depositStartingDate": "2021-09-03", "startingDate": "2021-09-17", "requestedCollectionDate": null, "merchantInstallmentPaymentId": "testInstall", "endUserIp": "91.229.230.41", "endUserLanguage": "fre", "amount": 550000, "depositAmount": 50000, "feeAmount": 0, "currency": "EUR", "description": null, "intervalUnit": "WEEK", "intervalCount": 2, "iterationCount": 10, "status": "UNPAID", "endToEndIdentification": null, "remittanceInformation": null, "installments": [ { "installmentId": "1a123952-cc30-47c2-8f2e-1b6182fd25a6", "creationDate": "2021-09-03T10:38:16.809510+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 1, "paid": false, "type": "DEPOSIT", "nextTransactionAttempt": "2021-09-03T08:00+02:00", "transactions": [ "91c604d8-a63c-483c-87aa-f03181a634b5" ], "sddTransactions": [] }, { "installmentId": "28754849-1b22-491b-bc15-7f38d0c9a988", "creationDate": "2021-09-03T10:38:16.810529+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-09-17T08:00+02:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "666f0320-7766-464e-949b-e7ce9997a173", "creationDate": "2021-09-03T10:38:16.810564+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-10-01T08:00+02:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "1b88ddcc-5c9e-4b43-a3cc-6792d9162ea4", "creationDate": "2021-09-03T10:38:16.810582+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-10-15T08:00+02:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "1f25ec3c-d846-4f9c-80e9-c5b86adef8eb", "creationDate": "2021-09-03T10:38:16.810595+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-10-29T08:00+02:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "9d206cee-565d-4181-9987-d65f82a0ffaa", "creationDate": "2021-09-03T10:38:16.810609+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-11-12T07:00+01:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "4fecfcf0-7b4a-4241-a716-a56bc840bd20", "creationDate": "2021-09-03T10:38:16.810621+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-11-26T07:00+01:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "703d1c4f-f1a6-4e30-9a8c-83cd9916f42e", "creationDate": "2021-09-03T10:38:16.810634+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-12-10T07:00+01:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "4c98d99f-f321-43bf-a37e-801a85d03200", "creationDate": "2021-09-03T10:38:16.810646+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-12-24T07:00+01:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "893c6120-7f51-4616-9f18-7880c76747fb", "creationDate": "2021-09-03T10:38:16.810658+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2022-01-07T07:00+01:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "8bf4e146-8737-4260-84f5-1a95653d1e24", "creationDate": "2021-09-03T10:38:16.810671+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2022-01-21T07:00+01:00", "transactions": [], "sddTransactions": [] } ], "additionalData": [] } INSTALLMENT_TRANSACTION_SUCCEEDEDWhen a transaction of an installment is make { "eventId": "a4bb53ba-c913-4077-bf75-5b3d91c0f026", "type": "INSTALLMENT_TRANSACTION_SUCCEEDED", "creationDate": "2024-01-05T16:47:16.914769+01:00", "object": { "amount": 500, "attemptCount": 1, "creationDate": "2024-01-05T16:47:14.425041+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "d70bceea-1b4b-454f-ae04-3cfa5e877e01", "installmentPaymentId": "1da9892e-d71c-40a9-8637-c259d3076582", "paid": true, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-05T16:47:15.250593+01:00", "uuid": "8b1b6eb7-c492-4a3f-913e-46c84836b50d" } ], "transactions": [ "8b1b6eb7-c492-4a3f-913e-46c84836b50d" ], "type": "INSTALLMENT" }, "requestId": "05809a07-9e49-44be-91c2-4ca357f2a7cc" } INSTALLMENT_TRANSACTION_FAILEDWhen a transaction of an installment is failed { "eventId": "2518ae0a-7e88-4458-86cb-3ef2a71f07bf", "type": "INSTALLMENT_TRANSACTION_FAILED", "creationDate": "2024-01-05T16:34:31.034977+01:00", "object": { "amount": 500, "attemptCount": 1, "creationDate": "2024-01-05T16:34:29.520151+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "6fe13fbd-10d6-406d-93af-31f5d682db99", "installmentPaymentId": "0453a075-211f-4d0a-8947-e05cd6bd33fc", "nextTransactionAttempt": "2024-01-08T04:00+01:00", "paid": false, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-05T16:34:30.385545+01:00", "uuid": "f061fa00-8494-4eca-b9d1-f54d36125d7d" } ], "transactions": [ "f061fa00-8494-4eca-b9d1-f54d36125d7d" ], "type": "INSTALLMENT" }, "requestId": "89cb89a8-618a-46f6-8971-c8f84a57f61e" } The ONBOARDING object ONBOARDING_ENROLLMENT_CREATEDWhen the onboarding request has been accept. You will receive an enrollementId associated to you custom reference. { "eventId": "8eb9f549-325d-4451-8e98-d90f1bf5635a", "type": "ONBOARDING_ENROLLMENT_CREATED", "creationDate": "2024-01-10T09:14:51.488392+01:00", "object": { "workflow": { "uuid": "b1161973-7ec2-4dd0-a23e-abb788b68844", "status": "ON_GOING", "activities": [ { "step_elements": [], "uuid": "e08b0baf-c947-4b82-bd69-f98a2a67c511", "name": "ContractValiA", "state": "TODO", "category": "validation", "created_at": "2024-01-10T09:14:51" } ], "additional_documents": [] }, "identity_badge": null, "representatives_list": null, "inactive_representatives_list": [], "infogreffe_identity": null, "language": "fr", "risk_score": { "activity": 2, "activity_age": null, "turnover": 1, "bank_account": 0, "total": null }, "additional_document_need_upload": false, "uuid": "c2e03650-2427-4c25-aa31-016c63f7261b", "risk_points": null, "created_at": "2024-01-10T09:14:51", "last_updated_at": null, "turnover_is_fixed": false, "workflow_mode": "SEQUENTIAL", "risk_level": "LOW", "type": "INDIVIDUAL", "is_canceled": false, "enrollment_account": null, "profile": { "birthname": { "status": "ON_GOING", "uuid": "a60a7930-38ce-4585-bc15-bad4e4d8c9fa", "value": null, "element-type": "birthname" }, "uuid": "805a41ad-bd70-4841-a0d4-91f9082860dd", "workflow": { "uuid": "24d6e160-5f16-4e60-81a2-f5b6942ce629", "status": "ON_GOING", "activities": [ { "step_elements": [ { "status": "COMPLETED", "uuid": "76fa0a86-7b3e-44e5-aa8a-f6ccd06d3df9", "value": "Carmelo", "element-type": "firstname" }, { "status": "COMPLETED", "uuid": "f01070cd-01c8-4e22-929a-7988c2c0dac0", "value": "Littel", "element-type": "lastname" }, { "status": "COMPLETED", "uuid": "41449fa2-079e-4f1e-81b2-a4fed78c1d5b", "value": "verna11@yahoo.com", "element-type": "email" }, { "status": "COMPLETED", "uuid": "8899cbdc-f074-4730-9f9e-44a144517a39", "value": "+3300000000", "element-type": "phone" }, { "status": "COMPLETED", "uuid": "9ce4c8fb-3c39-4e42-bc81-45a78760d8ff", "value": "1993-01-01T00:00:00", "element-type": "birthday" }, { "status": "COMPLETED", "uuid": "37ec9115-e88f-4bd7-a36e-77c4204f5058", "value": "Tours", "element-type": "place-of-birth" }, { "status": "COMPLETED", "uuid": "898c972f-be5f-4209-b9a6-4b06ed8e17f9", "country": "FRA", "element-type": "country-of-birth" } ], "uuid": "adf915df-d11f-4862-b76d-1c1e4e06994d", "name": "identityInfos", "state": "TODO", "category": "identity", "created_at": "2024-01-10T09:14:51" } ], "additional_documents": [] }, "firstname": { "status": "COMPLETED", "uuid": "76fa0a86-7b3e-44e5-aa8a-f6ccd06d3df9", "value": "Carmelo", "element-type": "firstname" }, "lastname": { "status": "COMPLETED", "uuid": "f01070cd-01c8-4e22-929a-7988c2c0dac0", "value": "Littel", "element-type": "lastname" }, "usename": { "status": "ON_GOING", "uuid": "a60a7930-38ce-4585-bc15-bad4e4d8c9fa", "value": null, "element-type": "birthname" }, "email": { "status": "COMPLETED", "uuid": "41449fa2-079e-4f1e-81b2-a4fed78c1d5b", "value": "verna11@yahoo.com", "element-type": "email" }, "language": { "status": "ON_GOING", "uuid": "78daf0f6-4659-461f-a817-72c4b233cd70", "locale": { "identifier": "fr" }, "element-type": "language" }, "phone": { "status": "COMPLETED", "uuid": "8899cbdc-f074-4730-9f9e-44a144517a39", "value": "+3300000000", "element-type": "phone" }, "birthday": { "status": "COMPLETED", "uuid": "9ce4c8fb-3c39-4e42-bc81-45a78760d8ff", "value": "1993-01-01T00:00:00", "element-type": "birthday" }, "login": null, "bo_user_uuid": null }, "activity_sector": { "name": "Artisans (plumber, electricians, ...)" }, "data": { "type": "PARTICULAR", "company_name": null, "history": [], "turnover": { "name": "Less than 20k EUR" }, "activity_age": null }, "custom_reference": null, "is_converted": false, "conformity_status": "ON_GOING", "conformity_status_level_two": null, "comments_level_two": null, "validator_level_one": null, "validator_level_two": null, "merchant_uuid": null, "validation_date": null, "validation_date_level_two": null, "sub_type": null, "api_infogreffe_attempt": 0, "next_step": 0, "full_kyc": false }, "requestId": "b59cf6d0-4180-4a0e-b26d-8d2e34759c46" } ONBOARDING_ENROLLMENT_STATUS_UPDATEDAn ongoing onboarding has been updated. { "eventId": "e4e42e20-1819-49d3-af96-9a7ecb978a5d", "type": "ONBOARDING_ENROLLMENT_STATUS_UPDATED", "creationDate": "2024-01-10T09:16:02.927117+01:00", "object": { "workflow": { "uuid": "b1161973-7ec2-4dd0-a23e-abb788b68844", "status": "ON_GOING", "activities": [ { "step_elements": [], "uuid": "e08b0baf-c947-4b82-bd69-f98a2a67c511", "name": "ContractValiA", "state": "TODO", "category": "validation", "created_at": "2024-01-10T09:14:51" } ], "additional_documents": [] }, "identity_badge": null, "representatives_list": null, "inactive_representatives_list": [], "infogreffe_identity": null, "language": "fr", "risk_score": { "activity": 2, "activity_age": null, "turnover": 1, "bank_account": 0, "total": null }, "additional_document_need_upload": false, "uuid": "c2e03650-2427-4c25-aa31-016c63f7261b", "risk_points": null, "created_at": "2024-01-10T09:14:51", "last_updated_at": "2024-01-10T09:16:02", "turnover_is_fixed": false, "workflow_mode": "SEQUENTIAL", "risk_level": "LOW", "type": "INDIVIDUAL", "is_canceled": false, "enrollment_account": null, "profile": { "birthname": { "status": "ON_GOING", "uuid": "a60a7930-38ce-4585-bc15-bad4e4d8c9fa", "value": null, "element-type": "birthname" }, "uuid": "805a41ad-bd70-4841-a0d4-91f9082860dd", "workflow": { "uuid": "24d6e160-5f16-4e60-81a2-f5b6942ce629", "status": "ACCEPTED", "activities": [ { "step_elements": [ { "status": "COMPLETED", "uuid": "76fa0a86-7b3e-44e5-aa8a-f6ccd06d3df9", "value": "Carmelo", "element-type": "firstname" }, { "status": "COMPLETED", "uuid": "898c972f-be5f-4209-b9a6-4b06ed8e17f9", "country": "FRA", "element-type": "country-of-birth" }, { "status": "COMPLETED", "uuid": "9ce4c8fb-3c39-4e42-bc81-45a78760d8ff", "value": "1993-01-01T00:00:00", "element-type": "birthday" }, { "status": "COMPLETED", "uuid": "8899cbdc-f074-4730-9f9e-44a144517a39", "value": "+3300000000", "element-type": "phone" }, { "status": "COMPLETED", "uuid": "f01070cd-01c8-4e22-929a-7988c2c0dac0", "value": "Littel", "element-type": "lastname" }, { "status": "COMPLETED", "uuid": "37ec9115-e88f-4bd7-a36e-77c4204f5058", "value": "Tours", "element-type": "place-of-birth" }, { "status": "COMPLETED", "uuid": "41449fa2-079e-4f1e-81b2-a4fed78c1d5b", "value": "verna11@yahoo.com", "element-type": "email" }, { "status": "COMPLETED", "uuid": "76fa0a86-7b3e-44e5-aa8a-f6ccd06d3df9", "value": "Carmelo", "element-type": "firstname" }, { "status": "COMPLETED", "uuid": "f01070cd-01c8-4e22-929a-7988c2c0dac0", "value": "Littel", "element-type": "lastname" }, { "status": "COMPLETED", "uuid": "41449fa2-079e-4f1e-81b2-a4fed78c1d5b", "value": "verna11@yahoo.com", "element-type": "email" }, { "status": "COMPLETED", "uuid": "8899cbdc-f074-4730-9f9e-44a144517a39", "value": "+3300000000", "element-type": "phone" }, { "status": "COMPLETED", "uuid": "9ce4c8fb-3c39-4e42-bc81-45a78760d8ff", "value": "1993-01-01T00:00:00", "element-type": "birthday" }, { "status": "COMPLETED", "uuid": "37ec9115-e88f-4bd7-a36e-77c4204f5058", "value": "Tours", "element-type": "place-of-birth" }, { "status": "COMPLETED", "uuid": "898c972f-be5f-4209-b9a6-4b06ed8e17f9", "country": "FRA", "element-type": "country-of-birth" }, { "status": "COMPLETED", "uuid": "08942994-180a-469e-9139-fa2fa09375ec", "documents": [ { "file_check": null } ], "type": "PASSPORT", "proof_of_identity_document": null, "expiry_date": null, "document_number": null, "mrz_line1": null, "mrz_line2": null, "issuing_country": null, "element-type": "identity-document" }, { "status": "COMPLETED", "uuid": "01994746-c538-4387-a07d-af53b40e797d", "name_line1": "rue du bois", "name_line2": null, "name_line3": null, "name_line4": null, "locality": "Tours", "postal_code": "37000", "country": "FRA", "element-type": "address" } ], "uuid": "adf915df-d11f-4862-b76d-1c1e4e06994d", "name": "identityInfos", "state": "OK", "category": "identity", "created_at": "2024-01-10T09:14:51" }, { "step_elements": [], "uuid": null, "name": "finished", "state": "OK", "category": null, "created_at": null } ], "additional_documents": [] }, "firstname": { "status": "COMPLETED", "uuid": "76fa0a86-7b3e-44e5-aa8a-f6ccd06d3df9", "value": "Carmelo", "element-type": "firstname" }, "lastname": { "status": "COMPLETED", "uuid": "f01070cd-01c8-4e22-929a-7988c2c0dac0", "value": "Littel", "element-type": "lastname" }, "usename": { "status": "ON_GOING", "uuid": "a60a7930-38ce-4585-bc15-bad4e4d8c9fa", "value": null, "element-type": "birthname" }, "email": { "status": "COMPLETED", "uuid": "41449fa2-079e-4f1e-81b2-a4fed78c1d5b", "value": "verna11@yahoo.com", "element-type": "email" }, "language": { "status": "ON_GOING", "uuid": "78daf0f6-4659-461f-a817-72c4b233cd70", "locale": { "identifier": "fr" }, "element-type": "language" }, "phone": { "status": "COMPLETED", "uuid": "8899cbdc-f074-4730-9f9e-44a144517a39", "value": "+3300000000", "element-type": "phone" }, "birthday": { "status": "COMPLETED", "uuid": "9ce4c8fb-3c39-4e42-bc81-45a78760d8ff", "value": "1993-01-01T00:00:00", "element-type": "birthday" }, "login": null, "bo_user_uuid": null }, "activity_sector": { "name": "Hotels & holiday rentals" }, "data": { "type": "PARTICULAR", "company_name": null, "history": [], "turnover": { "name": "Less than 20k EUR" }, "activity_age": null }, "custom_reference": null, "is_converted": false, "conformity_status": "ON_GOING", "conformity_status_level_two": null, "comments_level_two": null, "validator_level_one": null, "validator_level_two": null, "merchant_uuid": null, "validation_date": null, "validation_date_level_two": null, "sub_type": null, "api_infogreffe_attempt": 0, "next_step": 0, "full_kyc": false }, "requestId": "e2324dd3-59e4-44e2-a0d7-fe7df9c4a690" } ONBOARDING_ENROLLMENT_INVALID_DOCUMENTSSome documents are regarded as invalid by the Centralpay conformity { "uuid": "bc0fac82-xxxx-xxxx-8107-80b12cae168b", "activities": [ { "uuid": "ffd29ae2-xxxx-xxxx-b6cc-a368c664f224", "name": "identityInfos", "step_elements": [ { "uuid": "ac1c8f9c-xxxx-xxxx-a10b-1e26937942fc", "field": "IdentityDocument", "comment": "Le document est expiré", "reasons": [ { "reason": "OTHER", "comment": null } ] } ] } ] } ONBOARDING_ENROLLMENT_VALID_DOCUMENTSSome documents are regarded as valid by the Centralpay conformity { "uuid": "c5ed5ac3-xxxx-xxxx-909a-e7e8fde6ab0e", "risk_level": "MEDIUM", "merchant_block_configuration_status": "NONE" } ONBOARDING_PAYMENT_ACCOUNT_CREATEDThe account has been created. { "eventId": "69d19eb6-5b4d-4658-8149-526d779328a4", "type": "ONBOARDING_PAYMENT_ACCOUNT_CREATED", "creationDate": "2024-01-10T09:17:04.318216+01:00", "object": { "merchantEnrollmentId": "c2e03650-2427-4c25-aa31-016c63f7261b", "merchantEnrollmentCustomReference": null, "merchantEnrollmentType": "BASIC", "merchantId": "cac4f315-4dbf-45da-bb3c-4c9b64fe81c1", "merchantName": "Carmelo Littel", "merchantWalletId": "9a8fc3a1-bece-4ef2-a92a-d6341f8799e0", "creationDate": "2024-01-10T09:17:03+0100", "merchantBlockConfigurationStatus": "NONE" }, "requestId": "abd91f96-78c3-4277-8eea-b2a4e323efd3" } ONBOARDING_PAYMENT_ACCOUNT_UPDATEDThe account has been update. You receive those elements ONBOARDING_ADDITIONAL_DOCUMENT_REQUESTEDAdditionnal documents or information have been request on one ongoing onboarding. { "uuid": "1ad91002-fcad-4056-a41f-82ab63687af2", "additional_documents": { "uuid": "eb0b568a-a619-4d80-b35a-846144ef1925", "created_at": "2021-03-23T17:30:35+01:00", "type": "AUDITED_FINANCIAL_REPORT", "additional_documents_history": [ { "uuid": "1a330b31-9150-45cd-9fc3-bb3bed751b7b", "created_at": "2021-03-23T17:30:35+01:00", "status": "NOT_UPLOADED", "comment": "en couleur de moins de 3 mois", "additional_document_history_status": [ { "changed_at": "2021-03-23T17:30:35+01:00", "value": "NOT_UPLOADED" } ] } ] } } ONBOARDING_ADDITIONAL_DOCUMENT_UPDATEDAdditionnal documents or information have been provided by the account holder in one ongoing onboarding. ONBOARDING_ENROLLMENT_WORKFLOW_RESETThe workflow has returned to it’s initial state { "eventId": "4fa7e538-9e45-4ba2-8c22-25bdb931ff19", "type": "ONBOARDING_ENROLLMENT_WORKFLOW_RESET", "creationDate": "2024-01-25T12:24:32.450115+01:00", "object": { "workflow": { "uuid": "cc91fb6c-55c0-48b3-82de-549d1061edf9", "status": "ON_GOING", "activities": [ { "step_elements": [], "uuid": "49ff33c2-d4e8-4eec-ad1c-43ebe822706b", "name": "ContractValiA", "state": "TODO", "category": "validation", "created_at": "2024-01-25T12:24:32" }, { "step_elements": [], "uuid": "49ff33c2-d4e8-4eec-ad1c-43ebe822706b", "name": "ContractValiA", "state": "TODO", "category": "validation", "created_at": "2024-01-25T12:24:32" } ], "additional_documents": [] }, "identity_badge": null, "representatives_list": null, "inactive_representatives_list": [], "infogreffe_identity": null, "language": "fr", "risk_score": { "activity": 2, "activity_age": null, "turnover": 1, "bank_account": 0, "total": null }, "additional_document_need_upload": false, "uuid": "b7fa53f5-1cc7-4524-8a41-364b6e85f6b4", "risk_points": null, "created_at": "2024-01-25T12:21:11", "last_updated_at": null, "turnover_is_fixed": false, "workflow_mode": "SEQUENTIAL", "risk_level": "LOW", "type": "INDIVIDUAL", "is_canceled": false, "enrollment_account": null, "profile": { "birthname": { "status": "ON_GOING", "uuid": "a404d8cf-d4f5-412a-b0a2-fc8843fbe7ed", "value": null, "element-type": "birthname" }, "uuid": "c8e69bcf-cd2a-4dd5-85a6-252ba8ef2fa2", "workflow": { "uuid": "512c94e7-f470-446f-b030-65729b681d41", "status": "ON_GOING", "activities": [ { "step_elements": [ { "status": "COMPLETED", "uuid": "e3832733-a07c-4f29-999a-945854cae097", "value": "Alejandra", "element-type": "firstname" }, { "status": "COMPLETED", "uuid": "6f2bf419-ada4-4967-b6ff-4c02dee109f4", "value": "Walter", "element-type": "lastname" }, { "status": "COMPLETED", "uuid": "a691c5d5-a62a-4cd9-97b1-b68c1e612d0f", "value": "+3300000000", "element-type": "phone" }, { "status": "COMPLETED", "uuid": "e077ba27-5cfe-4a5b-ada9-cbf043d50cb5", "value": "Tours", "element-type": "place-of-birth" }, { "status": "COMPLETED", "uuid": "faec075e-d17c-4c7d-ad2d-8e9ee573f840", "value": "1993-01-01T00:00:00", "element-type": "birthday" }, { "status": "COMPLETED", "uuid": "d052f4da-c670-4075-8d29-d55fdae732a5", "country": "FRA", "element-type": "country-of-birth" }, { "status": "COMPLETED", "uuid": "96693dd5-4463-402a-aea7-e034b414825a", "value": "tessie_ebert@gmail.com", "element-type": "email" } ], "uuid": "b77d7bf7-ab6f-4cb0-ad18-22ac66a50a3b", "name": "identityInfos", "state": "TODO", "category": "identity", "created_at": "2024-01-25T12:21:11" } ], "additional_documents": [] }, "firstname": { "status": "COMPLETED", "uuid": "e3832733-a07c-4f29-999a-945854cae097", "value": "Alejandra", "element-type": "firstname" }, "lastname": { "status": "COMPLETED", "uuid": "6f2bf419-ada4-4967-b6ff-4c02dee109f4", "value": "Walter", "element-type": "lastname" }, "usename": { "status": "ON_GOING", "uuid": "a404d8cf-d4f5-412a-b0a2-fc8843fbe7ed", "value": null, "element-type": "birthname" }, "email": { "status": "COMPLETED", "uuid": "96693dd5-4463-402a-aea7-e034b414825a", "value": "tessie_ebert@gmail.com", "element-type": "email" }, "language": { "status": "ON_GOING", "uuid": "232259eb-02cf-48af-9693-d678fecd9dc1", "locale": { "identifier": "fr" }, "element-type": "language" }, "phone": { "status": "COMPLETED", "uuid": "a691c5d5-a62a-4cd9-97b1-b68c1e612d0f", "value": "+3300000000", "element-type": "phone" }, "birthday": { "status": "COMPLETED", "uuid": "faec075e-d17c-4c7d-ad2d-8e9ee573f840", "value": "1993-01-01T00:00:00", "element-type": "birthday" }, "login": null, "bo_user_uuid": null }, "activity_sector": { "name": "Artisans (plumber, electricians, ...)" }, "data": { "type": "PARTICULAR", "company_name": null, "history": [], "turnover": { "name": "Less than 20k EUR" }, "activity_age": null }, "custom_reference": null, "is_converted": false, "conformity_status": "ON_GOING", "conformity_status_level_two": null, "comments_level_two": null, "validator_level_one": null, "validator_level_two": null, "merchant_uuid": null, "validation_date": null, "validation_date_level_two": null, "sub_type": null, "api_infogreffe_attempt": 0, "next_step": 0, "full_kyc": false, "auto_updated_data": false }, "requestId": "3ca496d0-bd87-4457-8460-fc1e502d4962" } ONBOARDING_PEP_SANCTION_SEARCH_RESULTThe PEP Sanction search has return result, you receive those elements { "eventId": "a427366c-eb0b-4d68-9d81-22f406162024", "type": "ONBOARDING_PEP_SANCTION_SEARCH_RESULT", "creationDate": "2024-01-10T09:16:09.771127+01:00", "object": { "enrollment_uuid": "c2e03650-2427-4c25-aa31-016c63f7261b", "enrollment_url": "https://test-backoffice.centralpay.net/admin/onboarding/c2e03650-2427-4c25-aa31-016c63f7261b/show", "profile": { "pep_validation": { "created_at": "2024-01-10 09:16:04", "status": "ACCEPTED", "reference": "1704874567-MMSug5fh", "client_ref": "225cab33-3c8d-4bc7-b6d8-7f7d7448b49d", "review_url": "https://api.complyadvantage.com1704874567-MMSug5fh" }, "sanction_validation": { "created_at": "2024-01-10 09:16:04", "status": "ACCEPTED", "reference": "1704874567-MMSug5fh", "client_ref": "225cab33-3c8d-4bc7-b6d8-7f7d7448b49d", "review_url": "https://api.complyadvantage.com1704874567-MMSug5fh" } } }, "requestId": "d995a82d-ff33-4c20-af58-2546f3ef4c09" } ENROLLMENT_CREATEDWhen an enrollement is created The PAYMENT REQUEST object PAYMENTREQUEST_CREATEDHappen when a payment request is created { "eventId": "75b8f668-c5ce-40c8-ba51-2423004b04d2", "type": "PAYMENTREQUEST_CREATED", "creationDate": "2024-01-08T11:47:27.515437+01:00", "object": { "additionalData": {}, "attachments": [], "breakdowns": [ { "amount": 29000, "email": "gduhamel@centralpay.eu", "endpoint": "https://test-form.centralpay.net/446ae220-96f7-40ec-bd9b-9c8b83e0919b", "entered": false, "firstName": "Corben", "initiator": true, "lastName": "DALLAS", "paid": false, "paymentAttempted": false, "paymentRequestBreakdownId": "548c4ce7-d14f-486d-b9ac-b3caa3a9f5b6", "payments": [], "status": "UNPAID", "view": 0 } ], "createCustomer": false, "creationDate": "2024-01-08T11:47:27.494330+01:00", "currency": "EUR", "installments": [], "language": "fre", "linkExpirationDate": "2025-01-07T11:47:27.393093+01:00", "merchantPaymentRequestId": "Facture 12334", "notificationEmails": [], "paymentMethods": [ "TRANSACTION", "SCT_TRANSACTION" ], "paymentRequestId": "1c3d2a38-5f0e-41d4-a177-cf87fb5da617", "paymentRequestStatus": "ACTIVE", "paymentStatus": "UNPAID", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "scenarios": [], "subscriptions": [], "totalAmount": 29000, "transaction": { "capture": true, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "customAcceptanceData": {}, "paymentRequestTransactionId": "94977411-0b77-4792-b4cb-efd133911f66", "source": "EC" }, "transfers": [], "wireTransfer": { "paymentRequestWireTransferId": "329c9d8f-53de-4797-b6fc-d75ce3bf2466" } }, "requestId": "7dc393fc-f32a-4c4e-945e-f4f231610a47" } PAYMENTREQUEST_CANCELEDHappen when a payment request is cancelled { "eventId": "092b72f8-67a3-489c-af21-684eef115c65", "type": "PAYMENTREQUEST_CANCELED", "creationDate": "2024-01-08T11:50:28.640892+01:00", "object": { "additionalData": {}, "attachments": [], "breakdowns": [ { "amount": 29000, "email": "gduhamel@centralpay.eu", "endpoint": "https://test-form.centralpay.net/446ae220-96f7-40ec-bd9b-9c8b83e0919b", "entered": true, "firstName": "Corben", "initiator": true, "lastName": "DALLAS", "paid": false, "paymentAttempted": false, "paymentRequestBreakdownId": "548c4ce7-d14f-486d-b9ac-b3caa3a9f5b6", "payments": [], "status": "UNPAID", "view": 0 } ], "createCustomer": false, "creationDate": "2024-01-08T11:47:27.494330+01:00", "currency": "EUR", "endingDate": "2024-01-08T11:50:28.619151+01:00", "installments": [], "language": "fre", "linkExpirationDate": "2025-01-07T11:47:27.393093+01:00", "merchantPaymentRequestId": "Facture 12334", "notificationEmails": [], "paymentMethods": [ "SCT_TRANSACTION", "TRANSACTION" ], "paymentRequestId": "1c3d2a38-5f0e-41d4-a177-cf87fb5da617", "paymentRequestStatus": "CANCELED", "paymentStatus": "UNPAID", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "scenarios": [], "subscriptions": [], "totalAmount": 29000, "transaction": { "capture": true, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "customAcceptanceData": {}, "paymentRequestTransactionId": "94977411-0b77-4792-b4cb-efd133911f66", "source": "EC" }, "transfers": [], "wireTransfer": { "paymentRequestWireTransferId": "329c9d8f-53de-4797-b6fc-d75ce3bf2466" } }, "requestId": "ff7f8976-a2fe-4a90-8bf1-55eb6a1abf5f" } PAYMENTREQUEST_CLOSEDHappen when a payment request is closed { "eventId": "f06c4263-7708-476e-89c8-c6c52213d034", "type": "PAYMENTREQUEST_CLOSED", "creationDate": "2024-01-08T11:51:37.271485+01:00", "object": { "additionalData": {}, "attachments": [], "breakdowns": [ { "amount": 29000, "email": "gduhamel@centralpay.eu", "endpoint": "https://test-form.centralpay.net/7c9b8626-c7b1-46dc-9efa-7f7c994839e6", "entered": true, "firstName": "Corben", "initiator": true, "lastName": "DALLAS", "paid": false, "paymentAttempted": false, "paymentRequestBreakdownId": "82ad8194-10e6-4639-8011-8cacd285f465", "payments": [], "status": "UNPAID", "view": 0 } ], "createCustomer": false, "creationDate": "2024-01-08T11:51:25.123940+01:00", "currency": "EUR", "endingDate": "2024-01-08T11:51:37.249097+01:00", "installments": [], "language": "fre", "linkExpirationDate": "2025-01-07T11:51:25.039807+01:00", "merchantPaymentRequestId": "Facture 12334", "notificationEmails": [], "paymentMethods": [ "SCT_TRANSACTION", "TRANSACTION" ], "paymentRequestId": "af2d283a-eec1-4d55-9fa9-82ae6a3a1212", "paymentRequestStatus": "CLOSED", "paymentStatus": "UNPAID", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "scenarios": [], "subscriptions": [], "totalAmount": 29000, "transaction": { "capture": true, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "customAcceptanceData": {}, "paymentRequestTransactionId": "49d7fa4f-88d8-43bf-8ed1-2ac68a093953", "source": "EC" }, "transfers": [], "wireTransfer": { "paymentRequestWireTransferId": "a26099e7-af23-4b71-baa0-24608bb10f0e" } }, "requestId": "19ae9e22-5c4b-4c2b-a94c-a2fd41c3dcd2" } PAYMENTREQUEST_PAIDHappen when a payment request is paid { "eventId": "04feded6-e56b-4980-903f-3f15d89405aa", "type": "PAYMENTREQUEST_PAID", "creationDate": "2024-01-15T12:36:33.155085+01:00", "object": { "additionalData": {}, "attachments": [], "breakdowns": [ { "amount": 100000, "email": "gduhamel@centralpay.eu", "endpoint": "https://test-form.centralpay.net/6afa376b-976a-4b79-8320-5baf16681b79", "entered": true, "initiator": true, "paid": false, "paymentAttempted": false, "paymentRequestBreakdownId": "75b6d330-948e-4aef-8967-d88d2acc7190", "payments": [ { "creationDate": "2024-01-15T12:36:11.311665+01:00", "paymentMethod": "TRANSACTION", "uuid": "73d16504-a1d7-488a-8e0a-b350972f754d" }, { "creationDate": "2024-01-15T12:36:31.689550+01:00", "paymentMethod": "TRANSACTION", "uuid": "f80eee11-a633-46c2-bf08-f31d33d3107a" } ], "status": "PAID", "view": 0 } ], "createCustomer": false, "creationDate": "2024-01-15T12:34:44.362675+01:00", "currency": "EUR", "endingDate": "2024-01-15T12:36:33.036207+01:00", "installment": { "depositAmount": 0, "feeAmount": 0, "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "paymentRequestInstallmentId": "979caed1-430b-4984-8697-7f85eecaf482", "source": "CARD", "startingDate": "2024-01-15" }, "installments": [ { "depositAmount": 0, "feeAmount": 0, "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "paymentRequestInstallmentId": "979caed1-430b-4984-8697-7f85eecaf482", "source": "CARD", "startingDate": "2024-01-15" } ], "language": "eng", "linkExpirationDate": "2025-01-14T12:34:44.285879+01:00", "notificationEmails": [], "paymentMethods": [ "INSTALLMENT", "TRANSACTION" ], "paymentRequestId": "2bfc4ab4-f878-46b8-8a12-3263d2d28842", "paymentRequestStatus": "CLOSED", "paymentStatus": "PAID", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "scenarios": [], "subscriptions": [], "totalAmount": 100000, "transaction": { "capture": true, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "customAcceptanceData": {}, "paymentRequestTransactionId": "75b7c505-c546-475a-88ee-c169073d05b1", "source": "EC" }, "transfers": [] }, "requestId": "6847ced8-92ab-45df-9f1d-1069112b98e1" } PAYMENTREQUEST_INSTALLMENT_FAILEDHappen when the installment of the payment request failed { "eventId": "36650db2-3f36-479f-9518-16699a289467", "type": "PAYMENTREQUEST_INSTALLMENT_FAILED", "creationDate": "2024-01-15T12:43:18.344841+01:00", "object": { "additionalData": {}, "amount": 100000, "card": { "commercialBrand": "VISA", "first6": "400000", "last4": "0069", "uuid": "3f3114d8-03eb-464d-9b0c-15200caa6d2d" }, "cardId": "3f3114d8-03eb-464d-9b0c-15200caa6d2d", "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-15T12:43:16.467780+01:00", "currency": "EUR", "customerId": "ddf4aa07-5fd3-4ce1-bbaa-cdaafdb821d5", "depositAmount": 0, "endUserIp": "91.229.230.41", "endUserLanguage": "eng", "feeAmount": 0, "installmentPaymentId": "e9ea4684-1277-4928-b6f0-6df6bccdb275", "installments": [ { "amount": 50000, "attemptCount": 1, "creationDate": "2024-01-15T12:43:16.467716+01:00", "currency": "EUR", "customerId": "ddf4aa07-5fd3-4ce1-bbaa-cdaafdb821d5", "installmentId": "54c40fa5-e25e-451b-9c5f-7a6d715c449c", "installmentPaymentId": "e9ea4684-1277-4928-b6f0-6df6bccdb275", "nextTransactionAttempt": "2024-01-18T04:00+01:00", "paid": false, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-15T12:43:17.074117+01:00", "uuid": "70ccb90d-3b1a-43d2-b1ee-146e65cf4906" } ], "transactions": [ "70ccb90d-3b1a-43d2-b1ee-146e65cf4906" ], "type": "INSTALLMENT" }, { "amount": 50000, "attemptCount": 0, "creationDate": "2024-01-15T12:43:16.467738+01:00", "currency": "EUR", "customerId": "ddf4aa07-5fd3-4ce1-bbaa-cdaafdb821d5", "installmentId": "1db9808f-cbd9-4498-8d35-497ff341c473", "installmentPaymentId": "e9ea4684-1277-4928-b6f0-6df6bccdb275", "nextTransactionAttempt": "2024-02-15T04:00+01:00", "paid": false, "sddTransactions": [], "transactions": [], "type": "INSTALLMENT" } ], "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "paymentRequestBreakdownId": "fbd3f414-f1dc-416a-a4cd-d7bf76d21b77", "paymentRequestId": "b4a010bb-8e3f-4261-af97-4993bede753f", "pointOfSale": { "name": "Corben Dallas", "uuid": "7d99a970-cc26-4de8-aa5d-d9ebf4088247" }, "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "startingDate": "2024-01-15", "status": "FAILURE" }, "requestId": "e217a158-fc58-4b43-8c5d-6f23f7cc7977" } PAYMENTREQUEST_INSTALLMENT_SUCCEEDEDHappen when the installment of the payment request succeeded { "eventId": "8f744f4e-4101-4df4-805f-22be1620b4e7", "type": "PAYMENTREQUEST_INSTALLMENT_SUCCEEDED", "creationDate": "2024-01-15T12:40:38.091171+01:00", "object": { "additionalData": {}, "amount": 100000, "card": { "commercialBrand": "VISA", "first6": "403203", "last4": "2700", "uuid": "7af37b48-4c0a-4e5d-81ec-0ecd6758ee82" }, "cardId": "7af37b48-4c0a-4e5d-81ec-0ecd6758ee82", "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-15T12:40:35.818249+01:00", "currency": "EUR", "customerId": "1d281559-80b2-45c0-9930-6fb94651d6b7", "depositAmount": 0, "endUserIp": "91.229.230.41", "endUserLanguage": "eng", "feeAmount": 0, "installmentPaymentId": "78e28b54-708c-45a7-a6ef-d3c1672ffe49", "installments": [ { "amount": 50000, "attemptCount": 1, "creationDate": "2024-01-15T12:40:35.818185+01:00", "currency": "EUR", "customerId": "1d281559-80b2-45c0-9930-6fb94651d6b7", "installmentId": "c3c2eb3c-9935-4eb1-a9bd-42f62f1c035c", "installmentPaymentId": "78e28b54-708c-45a7-a6ef-d3c1672ffe49", "paid": true, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-15T12:40:36.418127+01:00", "uuid": "7f642ab2-5c15-4420-b85a-a97cb819844d" } ], "transactions": [ "7f642ab2-5c15-4420-b85a-a97cb819844d" ], "type": "INSTALLMENT" }, { "amount": 50000, "attemptCount": 0, "creationDate": "2024-01-15T12:40:35.818207+01:00", "currency": "EUR", "customerId": "1d281559-80b2-45c0-9930-6fb94651d6b7", "installmentId": "6eaf48a5-d0df-40d2-bd62-a297444d37d2", "installmentPaymentId": "78e28b54-708c-45a7-a6ef-d3c1672ffe49", "nextTransactionAttempt": "2024-02-15T04:00+01:00", "paid": false, "sddTransactions": [], "transactions": [], "type": "INSTALLMENT" } ], "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "paymentRequestBreakdownId": "b665743f-6671-4749-9727-f801c0d9915a", "paymentRequestId": "3192c6e1-89e6-4d5a-9d96-3208b37f5c3f", "pointOfSale": { "name": "Corben Dallas", "uuid": "7d99a970-cc26-4de8-aa5d-d9ebf4088247" }, "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "startingDate": "2024-01-15", "status": "ACTIVE" }, "requestId": "b843a04a-cb43-4883-a584-7adc52142c55" } PAYMENTREQUEST_SUBSCRIPTION_FAILEDHappen when the subscription of the payment request failed { "subscriptionId": "26815c6a-19fe-49bd-b619-f14719f3e4ba", "creationDate": "2021-09-08T09:39:06.212604+02:00", "walletId": null, "customerId": "4e06b1e7-c24c-4927-a2da-f9c2dd3d4660", "cardId": "63afa65e-5674-49bf-9ac3-a98b82d16e92", "mandateId": null, "startingDate": "2021-09-08", "endingDate": null, "expectedEndingDate": "2022-09-07", "currentPeriodStart": "2021-09-08", "currentPeriodEnd": "2021-10-07", "requestedCollectionDate": null, "cancellationDate": null, "paymentRequestBreakdownId": null, "paymentRequestId": null, "merchantSubscriptionId": null, "subscriptionModel": { "subscriptionModelId": "01c3f578-a589-4ef7-9bb6-d855ff0fa121", "creationDate": "2021-09-08T09:39:06.137368+02:00", "pointOfSaleId": "cfc0b3c7-e666-4c52-b77a-96f234b873fe", "contractId": "71602dd0-2790-4743-877b-e72530d7576d", "merchantSubscriptionModelId": null, "amount": 10000, "currency": "EUR", "name": "Test Abo", "description": null, "intervalUnit": "MONTH", "intervalCount": 1, "iterationCount": 12, "additionalData": [] }, "quantity": 1, "status": "ACTIVE", "cancelAtPeriodEnd": null, "lastInvoice": { "invoiceId": "da0622d1-723b-4567-ad40-917a92a84e05", "creationDate": "2021-09-08T09:39:06.562016+02:00", "subscriptionId": "26815c6a-19fe-49bd-b619-f14719f3e4ba", "customerId": "4e06b1e7-c24c-4927-a2da-f9c2dd3d4660", "walletId": null, "mandateId": null, "merchantInvoiceId": null, "amount": 10000, "currency": "EUR", "closed": true, "invoiceItems": [ { "invoiceItemId": "e8b03ea3-85ca-4e85-ab3d-6b1c83122508", "creationDate": "2021-09-08T09:39:06.469080+02:00", "invoiceId": "da0622d1-723b-4567-ad40-917a92a84e05", "subscriptionId": "26815c6a-19fe-49bd-b619-f14719f3e4ba", "customerId": "4e06b1e7-c24c-4927-a2da-f9c2dd3d4660", "walletId": null, "mandateId": null, "merchantInvoiceItemId": null, "quantity": 1, "amount": 10000, "totalAmount": 10000, "currency": "EUR", "description": null, "type": "SUBSCRIPTION", "additionalData": [] } ], "description": null, "attemptCount": 1, "paid": true, "type": "SUBSCRIPTION", "nextTransactionAttempt": null, "transactions": [ "d0bcd686-1b6b-45aa-bf8a-c4cedab81127" ], "transfers": [], "sddTransactions": [], "eventReceivedDate": null, "additionalData": [] }, "endUserIp": "245.100.1.15", "endUserLanguage": null, "endToEndIdentification": null, "remittanceInformation": null, "redirect": null, "additionalData": [] } PAYMENTREQUEST_SUBSCRIPTION_SUCCEEDEDHappen when the subscription of the payment request succeeded { "subscriptionId": "da6a4622-4e5d-4da5-8d29-6c49d4052b69", "creationDate": "2021-09-09T10:32:15.675280+02:00", "walletId": null, "customerId": "2f2e6ce9-e0bb-4377-8eb9-6a8506c0baa4", "cardId": null, "mandateId": "b08bb9e0-72e4-426a-9998-585f083338fc", "startingDate": "2021-09-09", "endingDate": null, "expectedEndingDate": null, "currentPeriodStart": "2021-09-09", "currentPeriodEnd": "2021-10-08", "requestedCollectionDate": "2021-09-15", "cancellationDate": null, "paymentRequestBreakdownId": "825c03a4-fa3e-4df0-812d-f3d094f88ca3", "paymentRequestId": "ef4bf0e4-c77c-42a3-910e-b85e84b3c92b", "merchantSubscriptionId": null, "subscriptionModel": { "subscriptionModelId": "b1561842-46c1-422c-84a6-69ea8e1c8051", "creationDate": "2017-05-10T09:20:14.268+02:00", "pointOfSaleId": "cfc0b3c7-e666-4c52-b77a-96f234b873fe", "contractId": "71602dd0-2790-4743-877b-e72530d7576d", "merchantSubscriptionModelId": "a00e2d1b-87a1-4fb2-8e15-5d6132006d5b", "amount": 2000, "currency": "EUR", "name": "premium", "description": "abbonnement premium", "intervalUnit": "MONTH", "intervalCount": 1, "iterationCount": null, "additionalData": [] }, "quantity": 1, "status": "ACTIVE", "cancelAtPeriodEnd": null, "lastInvoice": { "invoiceId": "e257896b-86a1-41cf-865b-ac0531e2ea4a", "creationDate": "2021-09-09T10:32:16.072897+02:00", "subscriptionId": "da6a4622-4e5d-4da5-8d29-6c49d4052b69", "customerId": "2f2e6ce9-e0bb-4377-8eb9-6a8506c0baa4", "walletId": null, "mandateId": "b08bb9e0-72e4-426a-9998-585f083338fc", "merchantInvoiceId": null, "amount": 2000, "currency": "EUR", "closed": true, "invoiceItems": [ { "invoiceItemId": "0dabd4f2-6e36-4731-989a-d00bdf93e748", "creationDate": "2021-09-09T10:32:15.860404+02:00", "invoiceId": "e257896b-86a1-41cf-865b-ac0531e2ea4a", "subscriptionId": "da6a4622-4e5d-4da5-8d29-6c49d4052b69", "customerId": "2f2e6ce9-e0bb-4377-8eb9-6a8506c0baa4", "walletId": null, "mandateId": "b08bb9e0-72e4-426a-9998-585f083338fc", "merchantInvoiceItemId": null, "quantity": 1, "amount": 2000, "totalAmount": 2000, "currency": "EUR", "description": null, "type": "SUBSCRIPTION", "additionalData": [] } ], "description": null, "attemptCount": 1, "paid": true, "type": "SUBSCRIPTION", "nextTransactionAttempt": null, "transactions": [], "transfers": [], "sddTransactions": [ "0fd0d6cb-076a-4df5-9e89-7a62b74791e8" ], "eventReceivedDate": null, "additionalData": [] }, "endUserIp": "92.154.127.221", "endUserLanguage": null, "endToEndIdentification": null, "remittanceInformation": "PREMIUM", "redirect": null, "additionalData": [] } PAYMENTREQUEST_TRANSACTION_FAILEDHappen when the transaction of the payment request failed { "eventId": "66f20401-7ca6-47bd-95f1-830628171cf8", "type": "PAYMENTREQUEST_TRANSACTION_FAILED", "creationDate": "2024-01-05T14:46:59.418489+01:00", "object": { "additionalData": {}, "amount": 3600000, "amountCaptured": 0, "amountRefunded": 0, "archivingReference": "9GUGCIZEU0VN", "authorizationMovementId": "7ed9258a-ee75-4705-90f3-678973d2402e", "authorizationStatus": "FAILURE", "bankCode": "51", "bankMessage": "Simulation : Insufficient Funds", "browserAcceptLanguage": "en_US", "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36", "captureStatus": "UNCAPTURED", "card": { "additionalData": {}, "cardId": "30e49b6e-ed07-4b43-8862-2abd2f181678", "cardType": "DEBIT", "cardholderEmail": "gduhamel@centralpay.eu", "check": true, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-05T14:46:39.151564+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "7032968c1a882c155b3d8014297daabaa7133680", "first6": "400000", "infoId": "90eaf823-e2e7-4757-845a-b966bbab03c6", "last4": "0077", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "country": "FRA", "creationDate": "2024-01-05T14:46:58.190985+01:00", "currency": "EUR", "customAcceptanceData": {}, "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "endUserIp": "245.100.1.15", "endUserLanguage": "fre", "fee": 0, "merchantCategoryCode": "1711", "order": { "cardholderEmail": "GDU-Yvette5@hotmail.com", "country": "FRA" }, "partialAuthorization": false, "partialAuthorized": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "GDU-Buck_Gislason@hotmail.com", "refunded": false, "refunds": [], "source": "EC", "threeDSecure": false, "totalAmount": 3600000, "transactionId": "d530cdbe-b9fc-481b-b99d-8ce0db75deb4", "transactionStatus": "FAILURE", "transactiontransfers": [], "withCvv": true }, "requestId": "c120a3c0-764a-4c7e-a705-4721784212c7" } PAYMENTREQUEST_TRANSACTION_SUCCEEDEDHappen when the transaction of the payment request succeeded { "eventId": "11a2d5b6-b8da-4e83-8182-5bd417b0b6b6", "type": "PAYMENTREQUEST_TRANSACTION_SUCCEEDED", "creationDate": "2024-01-15T12:36:33.122848+01:00", "object": { "additionalData": {}, "amount": 100000, "amountCaptured": 100000, "amountRefunded": 0, "archivingReference": "3GZD1KYRDSHP", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "656d9ee5-8ccb-45d9-a8fe-c830adf69dfd", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "browserAcceptLanguage": "en_US", "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "captureDate": "2024-01-15T12:36:33.020554+01:00", "captureStatus": "CAPTURED", "card": { "additionalData": {}, "cardId": "5e6269c2-b8a7-4ced-ad12-4c6cfdeda11b", "cardTokenId": "0211ff3d-1e71-4772-8bdb-8c7e23905f86", "cardType": "DEBIT", "cardholderEmail": "gduhamel@centralpay.eu", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-15T12:36:29.312152+01:00", "europeanEconomicArea": true, "expirationMonth": 5, "expirationYear": 2025, "fingerprint": "9ede6a38739c3ce76c59bee1083409937d497e7a", "first6": "403203", "last4": "2700", "productType": "CONSUMER", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-15T12:36:31.689550+01:00", "currency": "EUR", "customAcceptanceData": {}, "endUserIp": "91.229.230.41", "endUserLanguage": "eng", "fee": 0, "merchantCategoryCode": "1711", "movementId": "455d5abf-4076-4b14-8804-87fc9a9ece8d", "order": { "cardholderEmail": "gduhamel@centralpay.eu" }, "partialAuthorization": false, "partialAuthorized": false, "paymentRequestBreakdownId": "75b6d330-948e-4aef-8967-d88d2acc7190", "paymentRequestId": "2bfc4ab4-f878-46b8-8a12-3263d2d28842", "payoutAmount": 100000, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "gduhamel@centralpay.eu", "refunded": false, "refunds": [], "residualAmount": 0, "source": "EC", "threeDSecure": true, "totalAmount": 100000, "transactionId": "f80eee11-a633-46c2-bf08-f31d33d3107a", "transactionStatus": "SUCCESS", "transactiontransfers": [], "withCvv": true }, "requestId": "6847ced8-92ab-45df-9f1d-1069112b98e1" } PAYMENTREQUEST_SDDTRANSACTION_SUCCEEDEDHappen when the SDD transaction of the payment request succeeded { "additionalData": [], "amount": 9500, "automaticValidation": true, "commission": 0, "creationDate": "2025-05-22T04:01:54.502927+02:00", "currency": "EUR", "endToEndIdentification": "SDD-1F9EF68A-F1E6-4632-BF6A", "endUserIp": "91.206.156.116", "fee": 0, "mandateId": "062572aa-e4c6-4759-a470-f4e7042464d2", "movementId": "a92a5dc6-7b29-49b3-b608-89f9d2ee0b30", "otpExpired": false, "paymentRequestBreakdownId": "f2e668b1-5718-4c82-87c1-9d361e426f01", "payoutAmount": 9500, "payoutCurrency": "EUR", "pointOfSaleId": "358a1ef4-1954-4c12-9900-7365fbaf194c", "remittanceInformation": "670646D49F3A", "requestedCollectionDate": "2025-05-23", "sddTransactionId": "53fd1a29-8a85-495c-951b-7a03fd7cbfa9", "sequenceType": "RCUR", "status": "CLEARED", "transactionTransfers": [], "validationDate": "2025-05-22T04:01:54.504469+02:00", "walletId": "23d3c9b0-ad0f-4cd5-a48e-32315827b1fa" } PAYMENTREQUEST_SCT_TRANSACTION_SUCCEEDEDHappen when the SCT transaction of the payment request succeeded { "additionalData": [], "amount": 9500, "automaticValidation": true, "commission": 0, "creationDate": "2025-05-22T04:01:54.502927+02:00", "currency": "EUR", "endToEndIdentification": "SDD-1F9EF68A-F1E6-4632-BF6A", "endUserIp": "91.206.156.116", "fee": 0, "mandateId": "062572aa-e4c6-4759-a470-f4e7042464d2", "movementId": "a92a5dc6-7b29-49b3-b608-89f9d2ee0b30", "otpExpired": false, "paymentRequestBreakdownId": "f2e668b1-5718-4c82-87c1-9d361e426f01", "payoutAmount": 9500, "payoutCurrency": "EUR", "pointOfSaleId": "358a1ef4-1954-4c12-9900-7365fbaf194c", "remittanceInformation": "670646D49F3A", "requestedCollectionDate": "2025-05-23", "sddTransactionId": "53fd1a29-8a85-495c-951b-7a03fd7cbfa9", "sequenceType": "RCUR", "status": "CLEARED", "transactionTransfers": [], "validationDate": "2025-05-22T04:01:54.504469+02:00", "walletId": "23d3c9b0-ad0f-4cd5-a48e-32315827b1fa" } The PAYOUT object PAYOUT_CREATEDWhen a payout will be asked. { "eventId": "da2e06e2-c6d5-416e-91b8-3fd398e216aa", "type": "PAYOUT_CREATED", "creationDate": "2024-01-15T15:05:36.401305+01:00", "object": { "additionalData": {}, "amount": 1, "automatic": false, "creationDate": "2024-01-15T15:05:36.280515+01:00", "currency": "EUR", "description": "ma description", "destinationBankAccountId": "2377f038-d798-42b2-ac46-113105166bd4", "expectedArrivalDate": "2024-01-17", "fee": 0, "movementId": "e1715d31-d403-4ec5-85e4-7e41d0a3c69b", "net": 1, "payoutId": "d7cd6f62-1e56-4779-a48d-18977cdc643d", "payoutReference": "PAYOUT-20240115150536-a00f7a69", "payoutType": "SCT", "status": "PENDING", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "9d99d793-ef34-4e4f-aefd-627da4b77fbc" } PAYOUT_UPDATEDWhen an ongoing payout has been updated. { "eventId": "e1e8725c-eb98-400f-b3df-8f799a3ba165", "type": "PAYOUT_UPDATED", "creationDate": "2024-01-15T15:06:51.827583+01:00", "object": { "additionalData": {}, "amount": 1, "automatic": false, "creationDate": "2024-01-15T15:05:36.280515+01:00", "currency": "EUR", "description": "ma description", "destinationBankAccountId": "2377f038-d798-42b2-ac46-113105166bd4", "expectedArrivalDate": "2024-01-17", "fee": 0, "merchantPayoutId": "Up_Test_Doc", "movementId": "e1715d31-d403-4ec5-85e4-7e41d0a3c69b", "net": 1, "payoutId": "d7cd6f62-1e56-4779-a48d-18977cdc643d", "payoutReference": "PAYOUT-20240115150536-a00f7a69", "payoutType": "SCT", "status": "PENDING", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "a39650ab-ddcf-4da7-965e-a0e5d44949ab", "objectBeforeUpdate": { "additionalData": {}, "amount": 1, "automatic": false, "creationDate": "2024-01-15T15:05:36.280515+01:00", "currency": "EUR", "description": "ma description", "destinationBankAccountId": "2377f038-d798-42b2-ac46-113105166bd4", "expectedArrivalDate": "2024-01-17", "fee": 0, "movementId": "e1715d31-d403-4ec5-85e4-7e41d0a3c69b", "net": 1, "payoutId": "d7cd6f62-1e56-4779-a48d-18977cdc643d", "payoutReference": "PAYOUT-20240115150536-a00f7a69", "payoutType": "SCT", "status": "PENDING", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" } } PAYOUT_CANCELEDWhen an ongoing payout has been canceled. { "eventId": "9630cef4-e1f4-4f5d-811d-e361c4c30c78", "type": "PAYOUT_CANCELED", "creationDate": "2024-01-08T15:15:55.576036+01:00", "object": { "additionalData": {}, "amount": 1, "automatic": false, "cancelMovementId": "258e7c45-1d4f-48fc-a026-bebb8c10014e", "cancellationDate": "2024-01-08T15:15:55.562863+01:00", "creationDate": "2024-01-08T15:15:22.435232+01:00", "currency": "EUR", "description": "ma description", "destinationBankAccountId": "d33c400b-9338-4916-a4ca-e8affcfd9ebc", "expectedArrivalDate": "2024-01-10", "fee": 0, "merchantPayoutId": "Up_Test_Doc", "movementId": "3d8c5417-2cc9-4c7d-9504-5446cac24e87", "net": 1, "payoutId": "d68c9005-8954-4d17-96f5-8435a81ace20", "payoutReference": "PAYOUT-20240108151522-a00f7a69", "payoutType": "SCT", "status": "CANCEL", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "7b69dbff-59eb-489f-ac0a-9df343f2bd2a" } PAYOUT_PAIDWhen an ongoing payout has been properly executed. { "eventId": "9a1df5b8-6b24-4274-ad52-1295999f4a6c", "type": "PAYOUT_PAID", "creationDate": "2024-01-30T11:29:15.965095+01:00", "object": { "additionalData": {}, "amount": 100, "arrivalDate": "2024-01-30", "automatic": true, "creationDate": "2024-01-26T16:56:15.147347+01:00", "currency": "EUR", "destinationBankAccountId": "2377f038-d798-42b2-ac46-113105166bd4", "expectedArrivalDate": "2024-01-28", "fee": 0, "movementId": "b4fafbb7-e73a-4a98-bc6b-f4c7dfee7104", "net": 100, "payoutId": "f88cab14-b73e-44fc-adcf-9cb1f4f4c43b", "payoutReference": "PAYOUT-20240126165615-a00f7a69", "payoutType": "SCT", "status": "PAID", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "ceffc00e-a708-45fd-bc16-fe0999455e06" } PAYOUT_REVERSAL_CREATEDWhen a payout reversal has been created The REFUND object REFUND_CREATEDWhen a refund is created { "refundId": "3c349da5-c144-424b-bbdd-6f756b43c4ee", "creationDate": "2021-09-08T09:40:42.140717+02:00", "transactionId": "9c6ffb50-11cf-418c-9c9f-57a3fba20c20", "clearingDate": null, "cancellationDate": null, "merchantRefundId": null, "currency": "EUR", "amount": 1, "payoutCurrency": "EUR", "payoutAmount": 1, "commission": 0, "fee": 0, "description": "ma description", "status": "UNCLEARED", "movementId": "8981c46d-1e9e-4501-b78c-2d3e6e313fda", "cancelMovementId": null, "additionalData": [] } REFUND_CANCELEDWhen a refund is cancelled { "refundId": "3c349da5-c144-424b-bbdd-6f756b43c4ee", "creationDate": "2021-09-08T09:40:42.140717+02:00", "transactionId": "9c6ffb50-11cf-418c-9c9f-57a3fba20c20", "clearingDate": null, "cancellationDate": "2021-09-08T09:40:42.646025+02:00", "merchantRefundId": null, "currency": "EUR", "amount": 1, "payoutCurrency": "EUR", "payoutAmount": 1, "commission": 0, "fee": 0, "description": "ma description", "status": "CANCELED", "movementId": "8981c46d-1e9e-4501-b78c-2d3e6e313fda", "cancelMovementId": "b315d96f-8dc0-437d-af5f-729a8c0bb502", "additionalData": [] } REFUND_UPDATEDWhen a refund is updated The SCT Transaction object SCT_TRANSACTION_CREATEDWhen a sct transaction is created { "eventId": "283cb3c2-ddfd-4db2-aef7-df47e642d6b2", "type": "SCT_TRANSACTION_CREATED", "creationDate": "2024-01-08T16:03:10.536372+01:00", "object": { "additionalData": {}, "amount": 12345, "bankAccount": { "bic": "AXABFRPP", "iban": "FR7612548029980000000150086" }, "bic": "AXABFRPP", "creationDate": "2024-01-08T16:03:10.516099+01:00", "currency": "EUR", "destinationBankAccountId": "ae909782-18d2-42dc-b9b7-9e3c38dac167", "iban": "FR7612548029980000000150086", "order": { "firstName": "CORBEN", "lastName": "DALLAS" }, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "refunds": [], "sctTransactionId": "5b6ffc2f-126d-434f-bf3d-fd0364017192", "sepaReference": "TOKWTB", "status": "PENDING", "transactionTransfers": [] }, "requestId": "f3ccb2bd-df53-4b50-b64a-5d503dda7440" } SCT_TRANSACTION_UPDATEDWhen a sct transaction is updated { "eventId": "8057c6df-86d2-45e0-8cc9-9d2d7163ab99", "type": "SCT_TRANSACTION_UPDATED", "creationDate": "2024-01-08T16:03:44.760244+01:00", "object": { "additionalData": {}, "amount": 12345, "bankAccount": { "bic": "AXABFRPP", "iban": "FR7612548029980000000150086" }, "bic": "AXABFRPP", "creationDate": "2024-01-08T16:03:10.516099+01:00", "currency": "EUR", "description": "ma description", "destinationBankAccountId": "ae909782-18d2-42dc-b9b7-9e3c38dac167", "iban": "FR7612548029980000000150086", "order": { "firstName": "CORBEN", "lastName": "DALLAS" }, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "processed": false, "refunds": [], "sctTransactionId": "5b6ffc2f-126d-434f-bf3d-fd0364017192", "sepaReference": "TOKWTB ", "status": "PENDING", "transactionTransfers": [] }, "requestId": "a40ff9c2-3285-4b1b-aee2-de5b21402ad1", "objectBeforeUpdate": { "additionalData": {}, "amount": 12345, "bankAccount": { "bic": "AXABFRPP", "iban": "FR7612548029980000000150086" }, "bic": "AXABFRPP", "creationDate": "2024-01-08T16:03:10.516099+01:00", "currency": "EUR", "destinationBankAccountId": "ae909782-18d2-42dc-b9b7-9e3c38dac167", "iban": "FR7612548029980000000150086", "order": { "firstName": "CORBEN", "lastName": "DALLAS" }, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "processed": false, "refunds": [], "sctTransactionId": "5b6ffc2f-126d-434f-bf3d-fd0364017192", "sepaReference": "TOKWTB ", "status": "PENDING", "transactionTransfers": [] } } SCT_TRANSACTION_RECEIVEDWhen a sct transaction is received { "eventId": "b6fef094-77d5-4230-8526-baa0fb4b10d6", "type": "SCT_TRANSACTION_RECEIVED", "creationDate": "2024-01-10T12:39:40.146639+01:00", "object": { "additionalData": {}, "amount": 12345, "bankAccount": { "bic": "CEAYFR22", "iban": "FR7699999000019761523040665" }, "bic": "CEAYFR22", "commission": 0, "creationDate": "2024-01-10T12:32:39.516605+01:00", "currency": "EUR", "debtorInfo": { "address": { "addressLines": [ "Direccion del ordenante", "08010 BARCELONA" ], "country": "ES" }, "name": "GUILLAUME MAXIMILIEN JACQUES PONSARD" }, "destinationBankAccountId": "ae909782-18d2-42dc-b9b7-9e3c38dac167", "fee": 0, "iban": "FR7699999000019761523040665", "merchantSctTransactionId": "8srWEcIiIW", "movementId": "25d7a3f4-a421-4dc7-8554-486bf801bade", "order": { "firstName": "CORBEN", "lastName": "DALLAS" }, "payoutAmount": 12345, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "processed": true, "processedDate": "2024-01-10T12:39:40.099911+01:00", "receiptDate": "2024-01-10T12:39:40.099911+01:00", "sctTransactionId": "4cbd9866-b723-4a3a-9bf8-b30382b91909", "sepaReference": "ZCPTDW ", "status": "RECEIVED", "transactionTransfers": [] }, "requestId": "4be1b982-107d-4133-bdb2-377afd4d7ae4" } SCT_TRANSACTION_CANCELEDWhen a sct transaction is cancelled { { "eventId": "66cedcb4-091a-4023-beb8-d64f86438c73", "type": "SCT_TRANSACTION_CANCELED", "creationDate": "2024-01-08T16:03:57.125156+01:00", "object": { "additionalData": {}, "amount": 12345, "bankAccount": { "bic": "AXABFRPP", "iban": "FR7612548029980000000150086" }, "bic": "AXABFRPP", "cancellationDate": "2024-01-08T16:03:57.119857+01:00", "creationDate": "2024-01-08T16:03:10.516099+01:00", "currency": "EUR", "description": "ma description", "destinationBankAccountId": "ae909782-18d2-42dc-b9b7-9e3c38dac167", "iban": "FR7612548029980000000150086", "order": { "firstName": "CORBEN", "lastName": "DALLAS" }, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "processed": false, "refunds": [], "sctTransactionId": "5b6ffc2f-126d-434f-bf3d-fd0364017192", "sepaReference": "TOKWTB ", "status": "CANCELED", "transactionTransfers": [] }, "requestId": "8aa84040-e72b-4e78-9149-0e5478d74b10" } } SCT_TRANSACTION_REVERSAL_CREATEDWhen a sct transaction reversal is created { "eventId": "80544b1c-a167-4dd5-b493-166642e543fd", "type": "SCT_TRANSACTION_REVERSAL_CREATED", "creationDate": "2024-01-11T11:48:24.125374+01:00", "object": { "amount": 12345, "creationDate": "2024-01-11T11:48:24.116525+01:00", "currency": "EUR", "description": "Remboursement du client", "sctTransactionId": "2cf657da-9431-4da2-9720-4b877a9b44ef", "sctTransactionReversalId": "d5a11ee9-a598-4457-9ed8-e9a7961baaf7", "status": "PENDING" }, "requestId": "9ea9af82-921f-4b41-9de8-e461bc284849" }} SCT_TRANSACTION_REVERSAL_RECEIVEDWhen a sct transaction reversal is received { "eventId": "180bfcfd-a46c-40e3-8d9c-e1eeb380d84f", "type": "SCT_TRANSACTION_REVERSAL_RECEIVED", "creationDate": "2024-01-30T12:38:45.221820+01:00", "object": { "amount": 12345, "creationDate": "2024-01-11T11:48:24.116525+01:00", "currency": "EUR", "description": "Remboursement du client", "expectedAvailabilityDate": "2024-01-30", "movementId": "ec5a1db6-af35-47ad-9387-9b37e7cc6053", "sctTransactionId": "2cf657da-9431-4da2-9720-4b877a9b44ef", "sctTransactionReversalId": "d5a11ee9-a598-4457-9ed8-e9a7961baaf7", "status": "RECEIVED" }, "requestId": "20319064-8dfb-453f-ab0b-d621055606d7" } SCT_TRANSACTION_REFUNDED_CANCELEDWhen a sct transaction refund is cancelled SCT_TRANSACTION_REFUNDED_RECEIVED,When a sct transaction refund is received SCT_TRANSACTION_REFUNDEDWhen a sct transaction reversal is created The SDD TRANSACTION object SDDTRANSACTION_CREATEDWhen a SDD Transaction is created { "eventId": "bc6cb3b3-2960-4833-88a4-ddce9335fcbe", "type": "SDDTRANSACTION_CREATED", "creationDate": "2024-01-11T13:02:56.629960+01:00", "object": { "additionalData": {}, "amount": 12, "automaticValidation": false, "creationDate": "2024-01-11T13:02:56.373932+01:00", "currency": "EUR", "endToEndIdentification": "M6C+XE3H5", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpirationDate": "2024-01-11T13:17:56.374014+01:00", "otpExpired": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-12", "sddTransactionId": "96747d6a-e6e3-4d8e-97cf-22f3e407a57e", "sequenceType": "RCUR", "status": "PENDING", "transactionTransfers": [], "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "27dd69d1-3789-4abc-9e9c-d6644c436f9b" } SDDTRANSACTION_CLEAREDWhen a SDD Transaction is received { "eventId": "e54db468-ee08-4f61-83b2-c91b7c6a0c05", "type": "SDDTRANSACTION_CLEARED", "creationDate": "2024-01-11T14:30:59.249935+01:00", "object": { "additionalData": {}, "amount": 12, "automaticValidation": false, "commission": 0, "creationDate": "2024-01-11T14:28:41.754664+01:00", "currency": "EUR", "endToEndIdentification": "84J4ZDNEW", "endUserIp": "245.100.1.15", "fee": 0, "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "movementId": "0a6ffbe5-f067-4c03-9f62-672cb46e312c", "otpExpirationDate": "2024-01-11T14:43:46.129105+01:00", "otpExpired": false, "payoutAmount": 12, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-12", "sddTransactionId": "f6f5ddbc-1e4c-499c-bee2-0aaa6190a698", "sequenceType": "RCUR", "status": "CLEARED", "transactionTransfers": [], "validationDate": "2024-01-11T14:30:56.448356+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "5a2c73f8-1a46-451c-9444-608cb8a1f92d" } SDDTRANSACTION_VALIDATEDWhen a SDD Transaction is validated { "eventId": "2a21fd0e-19f2-469e-a80d-0300398f7d40", "type": "SDDTRANSACTION_VALIDATED", "creationDate": "2024-01-11T13:03:17.335248+01:00", "object": { "additionalData": {}, "amount": 12, "automaticValidation": false, "creationDate": "2024-01-11T13:02:56.373932+01:00", "currency": "EUR", "endToEndIdentification": "M6C+XE3H5", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpirationDate": "2024-01-11T13:17:56.374014+01:00", "otpExpired": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-12", "sddTransactionId": "96747d6a-e6e3-4d8e-97cf-22f3e407a57e", "sequenceType": "RCUR", "status": "ACTIVE", "transactionTransfers": [], "validationDate": "2024-01-11T13:03:17.329335+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "3af961bc-140f-4630-bdda-cff9854484b0" } SDDTRANSACTION_CANCELEDWhen a SDD Transaction is cancelled { "eventId": "894cf6da-e9d6-41b4-8504-d541c13dd7e5", "type": "SDDTRANSACTION_CANCELED", "creationDate": "2024-01-11T12:46:20.865252+01:00", "object": { "additionalData": {}, "amount": 12, "automaticValidation": true, "cancellationDate": "2024-01-11T12:46:20.844829+01:00", "creationDate": "2024-01-11T12:46:04.839313+01:00", "currency": "EUR", "endToEndIdentification": "2(OSAI,:P", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpired": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-23", "sddTransactionId": "a5530b31-ef60-4511-adeb-18843f61ef81", "sequenceType": "RCUR", "status": "CANCELED", "transactionTransfers": [], "validationDate": "2024-01-11T12:46:04.839337+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "3f82090d-f76b-4c3a-9d12-4befb22313e5" } SDDTRANSACTION_RENEWOTPWhen a request for an OTP renewal has been sent for an SSD transaction { "eventId": "fd352df9-2abc-43b8-a761-07e28375d4ff", "type": "SDDTRANSACTION_RENEWOTP", "creationDate": "2024-01-11T14:28:46.213454+01:00", "object": { "additionalData": {}, "amount": 12, "automaticValidation": false, "creationDate": "2024-01-11T14:28:41.754664+01:00", "currency": "EUR", "endToEndIdentification": "84J4ZDNEW", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpirationDate": "2024-01-11T14:43:46.129105+01:00", "otpExpired": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-12", "sddTransactionId": "f6f5ddbc-1e4c-499c-bee2-0aaa6190a698", "sequenceType": "RCUR", "status": "PENDING", "transactionTransfers": [], "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "85a68830-fa0f-41c9-8c80-d5c578f998f9" } SDDTRANSACTION_REVERSED_CREATEDWhen a SDD Transaction reversal is created The MANDATE object MANDATE_CREATEDWhen a mandate is created { "eventId": "ba739034-7e86-4280-9e19-b8d3be3f683c", "type": "MANDATE_CREATED", "creationDate": "2024-01-11T12:41:18.209916+01:00", "object": { "additionalData": {}, "creationDate": "2024-01-11T12:41:17.403384+01:00", "creditorBankAccountId": "d33c400b-9338-4916-a4ca-e8affcfd9ebc", "customerId": "78497f3c-baf4-42ae-92e2-cc0cfdd69c2c", "debtorBankAccountId": "053c0160-9b62-4424-aaf7-6f74e6d5f7f6", "debtorEmail": "gduhamel@centralpay.eu", "debtorPhone": "+33600000000", "description": "ma description", "language": "fre", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpirationDate": "2024-01-11T12:56:17.403395+01:00", "otpExpired": false, "paymentType": "PUCT", "rum": "GT20KDMVN", "sddTransactions": [], "status": "PENDING", "ultimateCreditorIdentityId": "2df8d9cd-afcc-47dd-8593-560028b66f50" }, "requestId": "800c83a7-d37b-4c33-9907-8874d5c7fa87" } MANDATE_SIGNEDWhen a mandate is signed { "eventId": "d60f35d6-c20a-4317-9ea9-dc90fd4bcd1b", "type": "MANDATE_SIGNED", "creationDate": "2024-01-11T12:43:07.337387+01:00", "object": { "additionalData": {}, "creationDate": "2024-01-11T12:41:17.403384+01:00", "creditorBankAccountId": "d33c400b-9338-4916-a4ca-e8affcfd9ebc", "customerId": "78497f3c-baf4-42ae-92e2-cc0cfdd69c2c", "debtorBankAccountId": "053c0160-9b62-4424-aaf7-6f74e6d5f7f6", "debtorEmail": "gduhamel@centralpay.eu", "debtorPhone": "+33600000000", "description": "ma description", "language": "fre", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpirationDate": "2024-01-11T12:56:17.403395+01:00", "otpExpired": false, "paymentType": "PUCT", "pdfFileId": "7b8d75bd-8f09-400d-af9c-c8787a0858fc", "rum": "GT20KDMVN", "sddTransactions": [], "signatureCity": "TOURS", "signatureDate": "2024-01-11T12:43:06.838810+01:00", "signatureIpAddress": "245.100.1.15", "status": "ACTIVE", "ultimateCreditorIdentityId": "2df8d9cd-afcc-47dd-8593-560028b66f50" }, "requestId": "4c40f8ba-94fd-433c-b7eb-71bbad68f51a" } MANDATE_OBSOLETEDWhen a mandate is obsolete { "eventId": "8961d9a3-1b38-4275-9ef7-1c3f9dc993e9", "type": "MANDATE_OBSOLETED", "creationDate": "2024-01-11T14:34:29.346268+01:00", "object": { "additionalData": {}, "creationDate": "2024-01-11T12:41:17.403384+01:00", "creditorBankAccountId": "d33c400b-9338-4916-a4ca-e8affcfd9ebc", "customerId": "78497f3c-baf4-42ae-92e2-cc0cfdd69c2c", "debtorBankAccountId": "053c0160-9b62-4424-aaf7-6f74e6d5f7f6", "debtorEmail": "gduhamel@centralpay.eu", "debtorPhone": "+3300000000", "description": "ma description", "language": "fre", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "obsolescenceDate": "2024-01-11T14:34:29.315888+01:00", "otpExpirationDate": "2024-01-11T12:56:17.403395+01:00", "otpExpired": true, "paymentType": "PUCT", "pdfFileId": "7b8d75bd-8f09-400d-af9c-c8787a0858fc", "rum": "GT20KDMVN", "sddTransactions": [ { "additionalData": {}, "amount": 12, "automaticValidation": true, "cancellationDate": "2024-01-11T12:46:20.844829+01:00", "creationDate": "2024-01-11T12:46:04.839313+01:00", "currency": "EUR", "endToEndIdentification": "2(OSAI,:P", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpired": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-23", "sddTransactionId": "a5530b31-ef60-4511-adeb-18843f61ef81", "sequenceType": "RCUR", "status": "CANCELED", "transactionTransfers": [], "validationDate": "2024-01-11T12:46:04.839337+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, { "additionalData": {}, "amount": 12, "automaticValidation": true, "creationDate": "2024-01-11T12:46:27.952977+01:00", "currency": "EUR", "endToEndIdentification": "MUPXTJXVK", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpired": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-23", "sddTransactionId": "3b781c44-ca15-4cbf-a529-f73e9c9fb0cf", "sequenceType": "RCUR", "status": "ACTIVE", "transactionTransfers": [], "validationDate": "2024-01-11T12:46:27.953004+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, { "additionalData": {}, "amount": 12, "automaticValidation": true, "creationDate": "2024-01-11T12:53:09.201843+01:00", "currency": "EUR", "endToEndIdentification": "7C28543RZ", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpired": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-12", "sddTransactionId": "af2e9240-d58f-478d-8e64-d8041ac882e0", "sequenceType": "RCUR", "status": "ACTIVE", "transactionTransfers": [], "validationDate": "2024-01-11T12:53:09.201871+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, { "additionalData": {}, "amount": 12, "automaticValidation": false, "creationDate": "2024-01-11T13:02:56.373932+01:00", "currency": "EUR", "endToEndIdentification": "M6C+XE3H5", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpirationDate": "2024-01-11T13:17:56.374014+01:00", "otpExpired": true, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-12", "sddTransactionId": "96747d6a-e6e3-4d8e-97cf-22f3e407a57e", "sequenceType": "RCUR", "status": "ACTIVE", "transactionTransfers": [], "validationDate": "2024-01-11T13:03:17.329335+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, { "additionalData": {}, "amount": 12, "automaticValidation": false, "commission": 0, "creationDate": "2024-01-11T14:28:41.754664+01:00", "currency": "EUR", "endToEndIdentification": "84J4ZDNEW", "endUserIp": "245.100.1.15", "fee": 0, "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "movementId": "0a6ffbe5-f067-4c03-9f62-672cb46e312c", "otpExpirationDate": "2024-01-11T14:43:46.129105+01:00", "otpExpired": false, "payoutAmount": 12, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-12", "sddTransactionId": "f6f5ddbc-1e4c-499c-bee2-0aaa6190a698", "sequenceType": "RCUR", "status": "CLEARED", "transactionTransfers": [], "validationDate": "2024-01-11T14:30:56.448356+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" } ], "signatureCity": "TOURS", "signatureDate": "2024-01-11T12:43:06.838810+01:00", "signatureIpAddress": "245.100.1.15", "status": "OBSOLETE", "ultimateCreditorIdentityId": "2df8d9cd-afcc-47dd-8593-560028b66f50" }, "requestId": "8d56fb75-1ce2-458b-b057-e8722ec22427" } MANDATE_RENEWOTPWhen a request for an OTP renewal has been sent for an mandate { "eventId": "8f103a2e-8e05-4af7-9b57-a76dc3fe1b48", "type": "MANDATE_RENEWOTP", "creationDate": "2024-01-11T14:34:56.606277+01:00", "object": { "additionalData": {}, "creationDate": "2024-01-11T14:34:36.412083+01:00", "creditorBankAccountId": "d33c400b-9338-4916-a4ca-e8affcfd9ebc", "customerId": "78497f3c-baf4-42ae-92e2-cc0cfdd69c2c", "debtorBankAccountId": "053c0160-9b62-4424-aaf7-6f74e6d5f7f6", "debtorEmail": "gduhamel@centralpay.eu", "debtorPhone": "+3300000000", "description": "ma description", "language": "fre", "mandateId": "ffc24f5a-f43a-4e9f-b4f9-1d7d1b87a46c", "otpExpirationDate": "2024-01-11T14:49:56.133201+01:00", "otpExpired": false, "paymentType": "PUCT", "rum": "YRHCV3K37", "sddTransactions": [], "status": "PENDING", "ultimateCreditorIdentityId": "2df8d9cd-afcc-47dd-8593-560028b66f50" }, "requestId": "a427c5b9-dbf4-4cb2-b9a5-bdf76418901b" } The SUBSCRIPTION object SUBSCRIPTIONMODEL_CREATEDWhen a Subscription model is created { "eventId": "396d5bf8-f494-4ba6-91ef-29bd6be595b1", "type": "SUBSCRIPTIONMODEL_CREATED", "creationDate": "2024-01-08T11:56:53.360135+01:00", "object": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T11:56:53.353430+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test Abo", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "50eeed1d-b908-4fc3-8863-466a733b272c" }, "requestId": "9dd48255-2b54-40bb-bd38-dfeac5d0535b" } SUBSCRIPTIONMODEL_UPDATEDWhen a Subscription model is updated { "eventId": "d00f3f00-b2d6-4de4-8c41-a106b88054b9", "type": "SUBSCRIPTIONMODEL_UPDATED", "creationDate": "2024-01-08T11:58:22.826908+01:00", "object": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T11:56:53.353430+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "CPMInnn", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "50eeed1d-b908-4fc3-8863-466a733b272c" }, "requestId": "4bc97650-9a0e-4032-ba46-8088c1e31b0b", "objectBeforeUpdate": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T11:56:53.353430+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test Abo", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "50eeed1d-b908-4fc3-8863-466a733b272c" } } SUBSCRIPTION_CREATEDWhen a Subscription is created { "eventId": "f87999fa-ab71-4a57-bc1f-b360670ef593", "type": "SUBSCRIPTION_CREATED", "creationDate": "2024-01-08T12:24:12.821583+01:00", "object": { "additionalData": {}, "cardId": "8750301a-f2ae-4447-8a3a-62e37675e1ca", "creationDate": "2024-01-08T12:24:12.700858+01:00", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "endUserIp": "245.100.1.15", "expectedEndingDate": "2025-01-09", "merchantSubscriptionId": "Gauthier refapi", "quantity": 1, "startingDate": "2024-01-10", "status": "ACTIVE", "subscriptionId": "c64ba2e5-a0b1-43e2-867a-27555c355331", "subscriptionModel": { "additionalData": {}, "amount": 100, "creationDate": "2024-01-08T12:20:23.305903+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test refapi", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "e16a35bf-ca34-48b7-9726-139c15e89fa9" } }, "requestId": "c66d38ac-5f7d-4a52-840c-ebadade3bf4f" } SUBSCRIPTION_FAILEDWhen a Subscription failed { "eventId": "3c8ca51e-aa44-41ca-ad24-872a86ed35ee", "type": "SUBSCRIPTION_FAILED", "creationDate": "2024-01-15T11:59:56.223023+01:00", "object": { "additionalData": {}, "cancelAtPeriodEnd": false, "cancellationDate": "2024-01-15T11:59:55.877297+01:00", "cardId": "0a6b2fdc-85e4-4ffa-bffa-0ae276e11aa3", "creationDate": "2024-01-15T11:59:52.983206+01:00", "currentPeriodEnd": "2024-01-15", "currentPeriodStart": "2024-01-15", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "endUserIp": "245.100.1.15", "endingDate": "2024-01-15", "expectedEndingDate": "2025-01-14", "lastInvoice": { "additionalData": {}, "amount": 10000, "attemptCount": 1, "closed": true, "creationDate": "2024-01-15T11:59:53.614864+01:00", "currency": "EUR", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "invoiceId": "e0909ca3-a337-43ce-9769-d65e927b3a47", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-15T11:59:53.357382+01:00", "currency": "EUR", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "invoiceId": "e0909ca3-a337-43ce-9769-d65e927b3a47", "invoiceItemId": "0c153918-5128-4ecb-8570-7c9f71a500ec", "quantity": 1, "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "totalAmount": 10000, "type": "SUBSCRIPTION" } ], "nextTransactionAttempt": "2024-01-18T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "transactions": [ "19b41977-e973-4dd9-846e-5777459196a5" ], "transfers": [], "type": "SUBSCRIPTION" }, "merchantSubscriptionId": "Test refapi gogo", "quantity": 1, "startingDate": "2024-01-15", "status": "CANCELED", "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "subscriptionModel": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-11T15:02:53.061463+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test Abo", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "7cd1b504-bed3-4435-84be-2e19f2c8e2f6" } }, "requestId": "ac2cae53-8d39-4e5a-8098-bcf0ab55a7cc" } SUBSCRIPTION_UPDATEDWhen a Subscription is updated { "eventId": "3da295c6-403e-4080-9398-9cebf7efbc37", "type": "SUBSCRIPTION_UPDATED", "creationDate": "2024-01-08T12:25:27.579680+01:00", "object": { "additionalData": {}, "cardId": "8750301a-f2ae-4447-8a3a-62e37675e1ca", "creationDate": "2024-01-08T12:24:12.700858+01:00", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "endUserIp": "245.100.1.15", "expectedEndingDate": "2025-01-09", "merchantSubscriptionId": "TEST001", "quantity": 1, "startingDate": "2024-01-10", "status": "ACTIVE", "subscriptionId": "c64ba2e5-a0b1-43e2-867a-27555c355331", "subscriptionModel": { "additionalData": {}, "amount": 100, "creationDate": "2024-01-08T12:20:23.305903+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test refapi", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "e16a35bf-ca34-48b7-9726-139c15e89fa9" } }, "requestId": "10797b88-f4ff-48f5-bc79-c417333b92d5", "objectBeforeUpdate": { "additionalData": {}, "cardId": "8750301a-f2ae-4447-8a3a-62e37675e1ca", "creationDate": "2024-01-08T12:24:12.700858+01:00", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "endUserIp": "245.100.1.15", "expectedEndingDate": "2025-01-09", "merchantSubscriptionId": "Gauthier refapi", "quantity": 1, "startingDate": "2024-01-10", "status": "ACTIVE", "subscriptionId": "c64ba2e5-a0b1-43e2-867a-27555c355331", "subscriptionModel": { "additionalData": {}, "amount": 100, "creationDate": "2024-01-08T12:20:23.305903+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test refapi", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "e16a35bf-ca34-48b7-9726-139c15e89fa9" } } } SUBSCRIPTION_CANCELEDWhen a Subscription is cancelled { "eventId": "298e5eae-4447-4981-932e-633adbb97e5f", "type": "SUBSCRIPTION_CANCELED", "creationDate": "2024-01-08T12:26:46.705238+01:00", "object": { "additionalData": {}, "cancelAtPeriodEnd": false, "cancellationDate": "2024-01-08T12:26:46.701626+01:00", "cardId": "8750301a-f2ae-4447-8a3a-62e37675e1ca", "creationDate": "2024-01-08T12:24:12.700858+01:00", "currentPeriodEnd": "2024-01-08", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "endUserIp": "245.100.1.15", "endingDate": "2024-01-08", "expectedEndingDate": "2025-01-09", "merchantSubscriptionId": "TEST001", "quantity": 1, "startingDate": "2024-01-10", "status": "CANCELED", "subscriptionId": "c64ba2e5-a0b1-43e2-867a-27555c355331", "subscriptionModel": { "additionalData": {}, "amount": 100, "creationDate": "2024-01-08T12:20:23.305903+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test refapi", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "e16a35bf-ca34-48b7-9726-139c15e89fa9" } }, "requestId": "bd8f1a27-bae3-4cfd-8471-7f6e878c6dc7" } SUBSCRIPTION_ACTIVEWhen a Subscription is active SUBSCRIPTION_FAILUREWhen a Subscription failed to be paid { "eventId": "22c7c038-2aa4-4550-9fd0-27e5395c250d", "type": "SUBSCRIPTION_FAILURE", "creationDate": "2024-01-15T11:59:55.661209+01:00", "object": { "additionalData": {}, "cardId": "0a6b2fdc-85e4-4ffa-bffa-0ae276e11aa3", "creationDate": "2024-01-15T11:59:52.983206+01:00", "currentPeriodEnd": "2024-02-14", "currentPeriodStart": "2024-01-15", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "endUserIp": "245.100.1.15", "expectedEndingDate": "2025-01-14", "lastInvoice": { "additionalData": {}, "amount": 10000, "attemptCount": 1, "closed": false, "creationDate": "2024-01-15T11:59:53.614864+01:00", "currency": "EUR", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "invoiceId": "e0909ca3-a337-43ce-9769-d65e927b3a47", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-15T11:59:53.357382+01:00", "currency": "EUR", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "invoiceId": "e0909ca3-a337-43ce-9769-d65e927b3a47", "invoiceItemId": "0c153918-5128-4ecb-8570-7c9f71a500ec", "quantity": 1, "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "totalAmount": 10000, "type": "SUBSCRIPTION" } ], "nextTransactionAttempt": "2024-01-18T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "transactions": [ "19b41977-e973-4dd9-846e-5777459196a5" ], "transfers": [], "type": "SUBSCRIPTION" }, "merchantSubscriptionId": "Test refapi gogo", "quantity": 1, "startingDate": "2024-01-15", "status": "FAILURE", "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "subscriptionModel": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-11T15:02:53.061463+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test Abo", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "7cd1b504-bed3-4435-84be-2e19f2c8e2f6" } }, "requestId": "1c35bbaf-0f37-44e1-a7e5-c3f10be0a9a4" } SUBSCRIPTION_UNPAIDWhen a Subscription is unpaid SUBSCRIPTION_REACTIVATEDWhen a Subscription is reactivated { "eventId": "536eb70e-cb79-44a6-be28-4384445583c2", "type": "SUBSCRIPTION_REACTIVATED", "creationDate": "2024-01-11T15:12:05.092897+01:00", "object": { "additionalData": {}, "cardId": "7d5f52b0-ef15-4a04-9c06-c4a9ac76f4bf", "creationDate": "2024-01-11T15:11:29.487853+01:00", "currentPeriodEnd": "2024-02-10", "currentPeriodStart": "2024-01-11", "customerId": "dc9623bd-3f3a-4d79-8ae2-0e6b3ebe367d", "endUserIp": "245.100.1.15", "lastInvoice": { "additionalData": {}, "amount": 10000, "attemptCount": 1, "closed": true, "creationDate": "2024-01-11T15:11:30.057522+01:00", "currency": "EUR", "customerId": "dc9623bd-3f3a-4d79-8ae2-0e6b3ebe367d", "invoiceId": "94185799-1ac6-4206-8df2-006043d0e2a9", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-11T15:11:29.798622+01:00", "currency": "EUR", "customerId": "dc9623bd-3f3a-4d79-8ae2-0e6b3ebe367d", "invoiceId": "94185799-1ac6-4206-8df2-006043d0e2a9", "invoiceItemId": "cd4325ca-4f61-4886-98c6-a524682ee0e2", "quantity": 1, "subscriptionId": "cb2a2422-2a4d-4818-9647-02107e69f98b", "totalAmount": 10000, "type": "SUBSCRIPTION" } ], "paid": true, "sddTransactions": [], "subscriptionId": "cb2a2422-2a4d-4818-9647-02107e69f98b", "transactions": [ "3f462466-4a71-480c-b062-e2023ee99b17" ], "transfers": [], "type": "SUBSCRIPTION" }, "merchantSubscriptionId": "Test refapi gogo", "quantity": 1, "startingDate": "2024-01-11", "status": "ACTIVE", "subscriptionId": "cb2a2422-2a4d-4818-9647-02107e69f98b", "subscriptionModel": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-11T15:02:53.061463+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test Abo", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "7cd1b504-bed3-4435-84be-2e19f2c8e2f6" } }, "requestId": "69ac4f1d-059b-4065-adc2-90f0eb6a98ab" } INVOICEITEM_CREATEDWhen an invoice item is created { "eventId": "6167d379-fb95-4425-8e9b-af74f4235bfc", "type": "INVOICEITEM_CREATED", "creationDate": "2024-01-08T12:30:46.157764+01:00", "object": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:30:46.131739+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceItemId": "c911bfdd-3686-4e5b-8abf-d3c44fa369a3", "quantity": 3, "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "totalAmount": 30000, "type": "MANUAL" }, "requestId": "d7cd40bd-88de-4956-9c42-baf5a0549f1b" } INVOICEITEM_UPDATEDWhen an invoice item is updated { "eventId": "353dd2fd-934e-4a20-9f12-b47bf213a35c", "type": "INVOICEITEM_UPDATED", "creationDate": "2024-01-15T10:59:30.750004+01:00", "object": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:44:49.815091+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "invoiceItemId": "292c516b-e320-4391-995a-b4a1205e0e47", "quantity": 2, "subscriptionId": "5b217597-213f-4bf3-b94b-6749e499cf98", "totalAmount": 20000, "type": "MANUAL" }, "requestId": "9678a75a-aa0c-4023-8d2a-56b56dfeae87", "objectBeforeUpdate": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:44:49.815091+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "invoiceItemId": "292c516b-e320-4391-995a-b4a1205e0e47", "quantity": 3, "subscriptionId": "5b217597-213f-4bf3-b94b-6749e499cf98", "totalAmount": 30000, "type": "MANUAL" } } INVOICEITEM_DELETEDWhen an invoice item is deleted { "eventId": "ae992cbd-d82f-495a-b7b7-4627dc9806e8", "type": "INVOICEITEM_DELETED", "creationDate": "2024-01-15T11:00:04.748878+01:00", "object": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:44:49.815091+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "invoiceItemId": "292c516b-e320-4391-995a-b4a1205e0e47", "quantity": 2, "subscriptionId": "5b217597-213f-4bf3-b94b-6749e499cf98", "totalAmount": 20000, "type": "MANUAL" }, "requestId": "fe0e462f-81d9-4640-abbd-ce6c914432b6" } INVOICE_CREATEDWhen an invoice is created { "eventId": "59df2504-3ab7-46c3-8469-0957d579b014", "type": "INVOICE_CREATED", "creationDate": "2024-01-08T12:31:18.271671+01:00", "object": { "additionalData": {}, "amount": 30000, "attemptCount": 0, "closed": false, "creationDate": "2024-01-08T12:31:18.264645+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:30:46.131739+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItemId": "c911bfdd-3686-4e5b-8abf-d3c44fa369a3", "quantity": 3, "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "totalAmount": 30000, "type": "MANUAL" } ], "nextTransactionAttempt": "2024-01-09T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "transactions": [], "transfers": [], "type": "MANUAL" }, "requestId": "1b51631e-d6d7-4632-bc8f-c67bd6f52729" } INVOICE_UPDATEDWhen an invoice is updated { { "eventId": "3c63e5da-1bce-4c5c-9dfc-1a206fda69a7", "type": "INVOICE_UPDATED", "creationDate": "2024-01-08T12:31:25.469957+01:00", "object": { "additionalData": {}, "amount": 30000, "attemptCount": 0, "closed": false, "creationDate": "2024-01-08T12:31:18.264645+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "description": "ma description", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:30:46.131739+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItemId": "c911bfdd-3686-4e5b-8abf-d3c44fa369a3", "quantity": 3, "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "totalAmount": 30000, "type": "MANUAL" } ], "nextTransactionAttempt": "2024-01-09T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "transactions": [], "transfers": [], "type": "MANUAL" }, "requestId": "176cf4e9-4669-473c-a9cb-f102fd6aa2ab", "objectBeforeUpdate": { "additionalData": {}, "amount": 30000, "attemptCount": 0, "closed": false, "creationDate": "2024-01-08T12:31:18.264645+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:30:46.131739+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItemId": "c911bfdd-3686-4e5b-8abf-d3c44fa369a3", "quantity": 3, "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "totalAmount": 30000, "type": "MANUAL" } ], "nextTransactionAttempt": "2024-01-09T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "transactions": [], "transfers": [], "type": "MANUAL" } } } INVOICE_CLOSEDWhen an invoice is closed { "eventId": "32cc898a-112f-43fd-921e-be8613d85b73", "type": "INVOICE_CLOSED", "creationDate": "2024-01-08T12:31:33.554755+01:00", "object": { "additionalData": {}, "amount": 30000, "attemptCount": 0, "closed": true, "creationDate": "2024-01-08T12:31:18.264645+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "description": "ma description", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:30:46.131739+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItemId": "c911bfdd-3686-4e5b-8abf-d3c44fa369a3", "quantity": 3, "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "totalAmount": 30000, "type": "MANUAL" } ], "nextTransactionAttempt": "2024-01-09T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "transactions": [], "transfers": [], "type": "MANUAL" }, "requestId": "36e1f1c0-b08b-41e1-a35b-bc0942b084f7" } INVOICE_REOPENWhen an invoice is reopen { "eventId": "c3e22524-8677-447f-9c70-caee15bdb31a", "type": "INVOICE_REOPEN", "creationDate": "2024-01-08T12:31:38.069325+01:00", "object": { "additionalData": {}, "amount": 30000, "attemptCount": 0, "closed": false, "creationDate": "2024-01-08T12:31:18.264645+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "description": "ma description", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:30:46.131739+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItemId": "c911bfdd-3686-4e5b-8abf-d3c44fa369a3", "quantity": 3, "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "totalAmount": 30000, "type": "MANUAL" } ], "nextTransactionAttempt": "2024-01-09T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "transactions": [], "transfers": [], "type": "MANUAL" }, "requestId": "7ef43ab1-2249-43b2-834e-dcad31d609a5" } INVOICE_TRANSACTION_SUCCEEDEDWhen an invoice transaction succeeded { "eventId": "58b1922a-a959-43c3-aeea-784f6970586c", "type": "INVOICE_TRANSACTION_SUCCEEDED", "creationDate": "2024-01-08T12:31:48.444350+01:00", "object": { "additionalData": {}, "amount": 30000, "attemptCount": 0, "closed": true, "creationDate": "2024-01-08T12:31:18.264645+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "description": "ma description", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:30:46.131739+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItemId": "c911bfdd-3686-4e5b-8abf-d3c44fa369a3", "quantity": 3, "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "totalAmount": 30000, "type": "MANUAL" } ], "paid": true, "sddTransactions": [], "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "transactions": [ "67cfc05b-d06c-4f2b-8aec-2033e0c61478" ], "transfers": [], "type": "MANUAL" }, "requestId": "01fb7049-bd27-4ec0-846d-605c352bd2f9" } INVOICE_TRANSACTION_FAILEDWhen an invoice transaction failed { "eventId": "23ef2df3-0e6d-4397-b877-aba2acea2ed1", "type": "INVOICE_TRANSACTION_FAILED", "creationDate": "2024-01-15T11:59:55.647989+01:00", "object": { "additionalData": {}, "amount": 10000, "attemptCount": 1, "closed": false, "creationDate": "2024-01-15T11:59:53.614864+01:00", "currency": "EUR", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "invoiceId": "e0909ca3-a337-43ce-9769-d65e927b3a47", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-15T11:59:53.357382+01:00", "currency": "EUR", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "invoiceId": "e0909ca3-a337-43ce-9769-d65e927b3a47", "invoiceItemId": "0c153918-5128-4ecb-8570-7c9f71a500ec", "quantity": 1, "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "totalAmount": 10000, "type": "SUBSCRIPTION" } ], "nextTransactionAttempt": "2024-01-18T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "transactions": [ "19b41977-e973-4dd9-846e-5777459196a5" ], "transfers": [], "type": "SUBSCRIPTION" }, "requestId": "1c35bbaf-0f37-44e1-a7e5-c3f10be0a9a4" } The TRANSACTION object TRANSACTION_SUCCEEDEDWhen a transaction has been approved by the issuing bank { "eventId": "4774dddc-7163-40f9-a6e0-72cd52abad19", "type": "TRANSACTION_SUCCEEDED", "creationDate": "2024-01-05T14:43:21.487036+01:00", "object": { "additionalData": {}, "amount": 3600000, "amountCaptured": 3600000, "amountRefunded": 0, "archivingReference": "5MS7NOWFGWSR", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "0ee6bd7e-3e74-454d-a62b-120db043714d", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "browserAcceptLanguage": "en_US", "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36", "captureDate": "2024-01-05T14:43:21.355125+01:00", "captureStatus": "CAPTURED", "card": { "additionalData": {}, "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2", "cardType": "DEBIT", "cardholderEmail": "test@gmail.com", "cardholderName": "MARIE ANNE", "check": true, "commercialBrand": "MASTERCARD", "country": "FRA", "creationDate": "2024-01-05T12:52:41.054394+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f", "first6": "532509", "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5", "last4": "0008", "productType": "CORPORATE", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "country": "FRA", "creationDate": "2024-01-05T14:43:19.909652+01:00", "currency": "EUR", "customAcceptanceData": {}, "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "endUserIp": "245.100.1.15", "endUserLanguage": "fre", "fee": 0, "merchantCategoryCode": "1711", "movementId": "899287b0-a0a5-413c-8be8-bc3d794ba96a", "order": { "cardholderEmail": "GDU-Solon40@gmail.com", "country": "FRA" }, "partialAuthorization": false, "partialAuthorized": false, "payoutAmount": 3600000, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "GDU-Clemens7@yahoo.com", "refunded": false, "refunds": [], "residualAmount": 0, "source": "EC", "threeDSecure": false, "totalAmount": 3600000, "transactionId": "aa42bd28-5a34-47e4-87b0-3d25375be798", "transactionStatus": "SUCCESS", "transactiontransfers": [], "withCvv": true }, "requestId": "3d82de99-2346-4eef-a30b-68e7efe5acd1" } TRANSACTION_CANCELEDWhen a transaction is cancelled { "eventId": "2ed7535a-8d07-4502-aea8-d755c5584962", "type": "TRANSACTION_CANCELED", "creationDate": "2024-01-11T14:51:53.615072+01:00", "object": { "additionalData": { "key1": "value1", "key2": "value2" }, "amount": 10, "amountCaptured": 10, "amountRefunded": 0, "archivingReference": "TSMEGRM4XQSN", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "82dbefb7-2a49-4cf9-a10a-953e0fefd89b", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "cancelMovementId": "36238731-363a-4f30-913e-7a9b9defdd33", "captureCancellationDate": "2024-01-11T14:51:53.583865+01:00", "captureDate": "2024-01-11T14:50:33.400938+01:00", "captureStatus": "CANCELED", "card": { "additionalData": {}, "cardId": "0f72740b-3a97-436b-aa78-9ac30308d404", "cardType": "DEBIT", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-11T14:50:31.216307+01:00", "europeanEconomicArea": true, "expirationMonth": 12, "expirationYear": 2026, "fingerprint": "31e7053d8ee3f13b4f391c989d83aaaa7771450d", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-11T14:50:32.194359+01:00", "currency": "EUR", "customAcceptanceData": {}, "endUserIp": "245.100.1.15", "fee": 0, "merchantCategoryCode": "1711", "movementId": "36d934c8-de2f-43df-be49-a4f058c6c0ba", "order": { "addressLine1": "ADRESSE", "cardCountry": "FRA", "city": "PARIS", "country": "FRA", "firstName": "MANDATORY", "lastName": "MANDATORY" }, "partialAuthorization": false, "partialAuthorized": false, "payoutAmount": 10, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "refunded": false, "refunds": [], "residualAmount": 0, "source": "EC", "threeDSecure": false, "totalAmount": 10, "transactionId": "2fbdd1ad-99e1-4fb6-a5f9-06239d7ef1a1", "transactionStatus": "SUCCESS", "transactiontransfers": [ { "amount": 1, "destinationWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "escrowDate": "2024-01-15", "fee": 0, "merchantTransferId": "MRI_CODE" } ], "withCvv": true }, "requestId": "2631c3f5-65cb-441f-9cb7-14dcf2c8d128" } TRANSACTION_CAPTUREDWhen a transaction is sent to the clearing and will be debited { "eventId": "ecd3fead-ccb1-44e4-b41b-5806b78dc5a5", "type": "TRANSACTION_CAPTURED", "creationDate": "2024-01-05T14:43:21.513924+01:00", "object": { "additionalData": {}, "amount": 3600000, "amountCaptured": 3600000, "amountRefunded": 0, "archivingReference": "5MS7NOWFGWSR", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "0ee6bd7e-3e74-454d-a62b-120db043714d", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "browserAcceptLanguage": "en_US", "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36", "captureDate": "2024-01-05T14:43:21.355125+01:00", "captureStatus": "CAPTURED", "card": { "additionalData": {}, "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2", "cardType": "DEBIT", "cardholderEmail": "test@gmail.com", "cardholderName": "MARIE ANNE", "check": true, "commercialBrand": "MASTERCARD", "country": "FRA", "creationDate": "2024-01-05T12:52:41.054394+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f", "first6": "532509", "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5", "last4": "0008", "productType": "CORPORATE", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "country": "FRA", "creationDate": "2024-01-05T14:43:19.909652+01:00", "currency": "EUR", "customAcceptanceData": {}, "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "endUserIp": "245.100.1.15", "endUserLanguage": "fre", "fee": 0, "merchantCategoryCode": "1711", "movementId": "899287b0-a0a5-413c-8be8-bc3d794ba96a", "order": { "cardholderEmail": "GDU-Solon40@gmail.com", "country": "FRA" }, "partialAuthorization": false, "partialAuthorized": false, "payoutAmount": 3600000, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "GDU-Clemens7@yahoo.com", "refunded": false, "refunds": [], "residualAmount": 0, "source": "EC", "threeDSecure": false, "totalAmount": 3600000, "transactionId": "aa42bd28-5a34-47e4-87b0-3d25375be798", "transactionStatus": "SUCCESS", "transactiontransfers": [], "withCvv": true }, "requestId": "3d82de99-2346-4eef-a30b-68e7efe5acd1" } TRANSACTION_EXPIREDWhen a transaction is expired { "eventId": "9a93ea00-42cc-4555-ad29-24daa2ec5fbe", "type": "TRANSACTION_EXPIRED", "creationDate": "2024-02-01T00:30:07.148454+01:00", "object": { "transactionId": "87b40109-0de5-454d-acf4-dfa51f23d15b", "creationDate": "2024-01-30T14:20:47.062768+01:00", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "contractId": "a674d481-4805-4a66-915a-67956efca36f", "merchantTransactionId": null, "archivingReference": "YB6J5BGOC4TF", "transactionStatus": "SUCCESS", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "authorizationCode": "000000", "riskScore": null, "source": "EC", "description": null, "currency": "EUR", "payoutCurrency": "EUR", "payoutAmount": null, "commission": null, "fee": 0, "amount": 36000, "partialAuthorization": false, "partialAuthorized": false, "partialAuthorizedAmount": null, "totalAmount": 36000, "card": { "cardId": "4970cff8-a3eb-4b7a-9f8e-6a4156c08cec", "creationDate": "2024-01-30T14:20:45.679621+01:00", "customerId": null, "cardTokenId": null, "infoId": null, "merchantCardId": null, "commercialBrand": "VISA", "first6": "403203", "last4": "3001", "expirationMonth": 12, "expirationYear": 2025, "country": "FRA", "cardholderName": null, "cardholderEmail": null, "description": null, "fingerprint": "a90fedc230c187acb2e4d6b8a3e3237044931beb", "cardType": "UNKNOWN", "region": "EUROPE", "productType": "UNKNOWN", "europeanEconomicArea": true, "check": false, "additionalData": {} }, "cardMerchantToken": null, "captureStatus": "EXPIRED", "amountCaptured": 0, "refunded": true, "amountRefunded": 0, "refunds": [], "endUserIp": "8.8.8.8", "endUserLanguage": "fre", "browserUserAgent": null, "browserAcceptLanguage": null, "country": null, "receiptEmail": null, "transactiontransfers": [], "transferGroup": null, "residualAmount": null, "order": { "firstName": null, "lastName": null, "addressLine1": null, "addressLine2": null, "addressLine3": null, "addressLine4": null, "postalCode": null, "city": null, "country": null, "email": null, "phone": null, "cardCountry": "FRA", "cardholderName": null, "cardholderEmail": null }, "dispute": null, "cardPresent": { "cardSequenceNumber": null, "cardEntryMode": null, "pinEntryCapability": null, "transactionSequenceCounter": null, "uniqueTerminalId": null, "cardholderSignatureImage": null, "gpsLatitude": null, "gpsLongitude": null, "cardholderPhoto": null, "cardAcceptorTerminalId": null, "offlinePinIndicator": null, "ucatTerminalIndicator": null, "iccData": null, "iccDataResponse": null }, "clearingNumber": null, "merchantCategoryCode": "1711", "withCvv": true, "arn": "123456", "authorizationCancellationDate": null, "customerId": null, "captureDate": null, "clearingDate": null, "captureCancellationDate": null, "enrollmentId": null, "movementId": null, "authorizationMovementId": "258d16f5-3f5f-401d-8f5b-c9ff9d00f28d", "cancelMovementId": null, "paymentRequestBreakdownId": null, "paymentRequestId": null, "invoiceId": null, "installmentId": null, "customAcceptanceData": {}, "additionalData": { "key1": "value1", "key2": "value2" }, "3ds": false }, "requestId": "fcf800bb-1748-4d23-9ce7-121c5f14a51b" } TRANSACTION_UPDATEDWhen a transaction is updated { "eventId": "eaf9366e-cd66-4ab9-ad23-09ed2ec5972d", "type": "TRANSACTION_UPDATED", "creationDate": "2024-01-11T14:54:35.830032+01:00", "object": { "additionalData": { "key1": "value1", "key2": "value2" }, "amount": 10, "amountCaptured": 10, "amountRefunded": 0, "archivingReference": "FLS2TYH3HJ5G", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "02e0e9ec-77f6-4a75-9732-57a0d0844354", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "captureDate": "2024-01-11T14:53:18.688598+01:00", "captureStatus": "CAPTURED", "card": { "additionalData": {}, "cardId": "180c71b5-9384-4ea5-9452-b190d4afc542", "cardType": "DEBIT", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-11T14:53:17.634328+01:00", "europeanEconomicArea": true, "expirationMonth": 1, "expirationYear": 2024, "fingerprint": "9e6b6fc8e48c4ee716efb06762e726c0108e5e8d", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-11T14:53:17.576925+01:00", "currency": "EUR", "customAcceptanceData": {}, "endUserIp": "245.100.1.15", "fee": 0, "merchantCategoryCode": "1711", "movementId": "3dbd2c18-1110-496b-9cd2-1e7b7568fc00", "order": { "cardCountry": "FRA", "firstName": "MANDATORY", "lastName": "MANDATORY" }, "partialAuthorization": false, "partialAuthorized": false, "payoutAmount": 10, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "test@gmail.com", "refunded": false, "refunds": [], "residualAmount": 0, "source": "EC", "threeDSecure": false, "totalAmount": 10, "transactionId": "8d08a5b1-413e-46d8-8e8e-6da8c0d5025b", "transactionStatus": "SUCCESS", "transactiontransfers": [ { "amount": 1, "destinationWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "escrowDate": "2024-01-13", "fee": 0 } ], "withCvv": true }, "requestId": "6b85d1b7-853a-420e-a500-62aac18840c1", "objectBeforeUpdate": { "additionalData": { "key1": "value1", "key2": "value2" }, "amount": 10, "amountCaptured": 10, "amountRefunded": 0, "archivingReference": "FLS2TYH3HJ5G", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "02e0e9ec-77f6-4a75-9732-57a0d0844354", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "captureDate": "2024-01-11T14:53:18.688598+01:00", "captureStatus": "CAPTURED", "card": { "additionalData": {}, "cardId": "180c71b5-9384-4ea5-9452-b190d4afc542", "cardType": "DEBIT", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-11T14:53:17.634328+01:00", "europeanEconomicArea": true, "expirationMonth": 1, "expirationYear": 2024, "fingerprint": "9e6b6fc8e48c4ee716efb06762e726c0108e5e8d", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-11T14:53:17.576925+01:00", "currency": "EUR", "customAcceptanceData": {}, "endUserIp": "245.100.1.15", "fee": 0, "merchantCategoryCode": "1711", "movementId": "3dbd2c18-1110-496b-9cd2-1e7b7568fc00", "order": { "cardCountry": "FRA", "firstName": "MANDATORY", "lastName": "MANDATORY" }, "partialAuthorization": false, "partialAuthorized": false, "payoutAmount": 10, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "refunded": false, "refunds": [], "residualAmount": 0, "source": "EC", "threeDSecure": false, "totalAmount": 10, "transactionId": "8d08a5b1-413e-46d8-8e8e-6da8c0d5025b", "transactionStatus": "SUCCESS", "transactiontransfers": [ { "amount": 1, "destinationWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "escrowDate": "2024-01-13", "fee": 0 } ], "withCvv": true } } TRANSACTION_DISPUTEDWhen a transaction is turned to a chargeback { "eventId": "36e7853b-eecf-43d2-99ec-80aa5b26b46f", "type": "TRANSACTION_DISPUTED", "creationDate": "2024-01-05T15:16:28.316447+01:00", "object": { "additionalData": {}, "amount": 36000, "amountCaptured": 36000, "amountRefunded": 0, "archivingReference": "AULQKEG8VFZV", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "a7caf3b3-4d60-412e-9536-8b31e7fa2b99", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "browserAcceptLanguage": "en_US", "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36", "captureDate": "2024-01-04T15:04:14.560777+01:00", "captureStatus": "CLEARED", "card": { "additionalData": {}, "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2", "cardType": "DEBIT", "cardholderEmail": "test@gmail.com", "cardholderName": "MARIE ANNE", "check": true, "commercialBrand": "MASTERCARD", "country": "FRA", "creationDate": "2024-01-05T12:52:41.054394+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f", "first6": "532509", "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5", "last4": "0008", "productType": "CORPORATE", "region": "EUROPE" }, "cardPresent": {}, "clearingDate": "2024-01-05", "clearingNumber": "008194", "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "country": "FRA", "creationDate": "2024-01-05T15:04:13.275733+01:00", "currency": "EUR", "customAcceptanceData": {}, "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "dispute": { "additionalData": {}, "amount": 10, "creationDate": "2024-01-05T15:16:27.776882+01:00", "currency": "EUR", "disputeDate": "2021-03-18", "disputeId": "896304e9-b937-443a-ba59-3ccc99931b00", "fee": 0, "movementId": "09e2b390-a5a6-4926-a5ad-41c96bd38cea", "reason": "FRAUDULENT", "status": "CHARGEBACK_NOTICED", "transactionId": "8940d775-cb9c-46e4-ab5a-c5c3ea7c3116" }, "endUserIp": "245.100.1.15", "endUserLanguage": "fre", "fee": 0, "merchantCategoryCode": "1711", "movementId": "15560735-1636-4a01-9a15-89eab54ef9e1", "order": { "cardholderEmail": "GDU-Dasia77@hotmail.com", "country": "FRA" }, "partialAuthorization": false, "partialAuthorized": false, "payoutAmount": 36000, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "GDU-Benton_Hamill8@gmail.com", "refunded": false, "refunds": [], "residualAmount": 0, "source": "EC", "threeDSecure": false, "totalAmount": 36000, "transactionId": "8940d775-cb9c-46e4-ab5a-c5c3ea7c3116", "transactionStatus": "SUCCESS", "transactiontransfers": [], "withCvv": false }, "requestId": "29ae33a7-bcd3-405f-ab21-485729b980aa" } TRANSACTION_FAILEDWhen a transaction has been declined by the issuing bank { "eventId": "0eeacc49-8957-4910-925f-d633505f23b0", "type": "TRANSACTION_FAILED", "creationDate": "2024-01-05T14:46:59.392077+01:00", "object": { "additionalData": {}, "amount": 3600000, "amountCaptured": 0, "amountRefunded": 0, "archivingReference": "9GUGCIZEU0VN", "authorizationMovementId": "7ed9258a-ee75-4705-90f3-678973d2402e", "authorizationStatus": "FAILURE", "bankCode": "51", "bankMessage": "Simulation : Insufficient Funds", "browserAcceptLanguage": "en_US", "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36", "captureStatus": "UNCAPTURED", "card": { "additionalData": {}, "cardId": "30e49b6e-ed07-4b43-8862-2abd2f181678", "cardType": "DEBIT", "cardholderEmail": "gduhamel@centralpay.eu", "check": true, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-05T14:46:39.151564+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "7032968c1a882c155b3d8014297daabaa7133680", "first6": "400000", "infoId": "90eaf823-e2e7-4757-845a-b966bbab03c6", "last4": "0077", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "country": "FRA", "creationDate": "2024-01-05T14:46:58.190985+01:00", "currency": "EUR", "customAcceptanceData": {}, "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "endUserIp": "245.100.1.15", "endUserLanguage": "fre", "fee": 0, "merchantCategoryCode": "1711", "order": { "cardholderEmail": "GDU-Yvette5@hotmail.com", "country": "FRA" }, "partialAuthorization": false, "partialAuthorized": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "GDU-Buck_Gislason@hotmail.com", "refunded": false, "refunds": [], "source": "EC", "threeDSecure": false, "totalAmount": 3600000, "transactionId": "d530cdbe-b9fc-481b-b99d-8ce0db75deb4", "transactionStatus": "FAILURE", "transactiontransfers": [], "withCvv": true }, "requestId": "c120a3c0-764a-4c7e-a705-4721784212c7" } TRANSACTION_FRAUDULENTWhen a transaction is refused because it has meet a blacklist element (Email, IP, Card, …) { "eventId": "d489a6be-9b6d-43fa-86e3-c5d26437aac3", "type": "TRANSACTION_FRAUDULENT", "creationDate": "2024-01-05T16:34:30.947564+01:00", "object": { "additionalData": {}, "amount": 500, "amountCaptured": 0, "amountRefunded": 0, "authorizationStatus": "FRAUD", "bankMessage": "PAN in BLACKLIST [532509xxx0008]", "captureStatus": "UNCAPTURED", "card": { "additionalData": {}, "cardId": "4680d102-96b0-4fba-b00c-3375ee610fc7", "cardType": "DEBIT", "cardholderEmail": "gduhamel@centralpay.eu", "check": true, "commercialBrand": "MASTERCARD", "country": "FRA", "creationDate": "2024-01-05T16:33:13.699153+01:00", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f", "first6": "532509", "infoId": "dabeaee8-1f45-438e-b9c7-37bbce92315e", "last4": "0008", "productType": "CORPORATE", "region": "EUROPE" }, "cardPresent": {}, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T16:34:30.385545+01:00", "currency": "EUR", "customAcceptanceData": {}, "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "endUserIp": "245.100.1.15", "merchantTransactionId": "MIP_001", "order": { "cardCountry": "FRA", "cardholderEmail": "gduhamel@centralpay.eu", "email": "gduhamel@centralpay.eu", "firstName": "CECELIA", "lastName": "EBERT" }, "partialAuthorization": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "gduhamel@centralpay.eu", "refunded": false, "refunds": [], "source": "EC", "threeDSecure": false, "totalAmount": 500, "transactionId": "f061fa00-8494-4eca-b9d1-f54d36125d7d", "transactionStatus": "FRAUD", "transactiontransfers": [], "withCvv": true }, "requestId": "47c8329d-b686-4dc0-ad21-941e4ec2945d" } TRANSACTION_NOT_ACCEPTEDWhen a transaction is refused because entering an acceptance rule TRANSACTION_REFUNDEDWhen a transaction has been refunded to the card holder { "eventId": "21f8a3b1-1fab-4071-9f75-ef36d10a6572", "type": "TRANSACTION_REFUNDED", "creationDate": "2024-01-10T09:35:28.762354+01:00", "object": { "additionalData": {}, "amount": 36000, "amountCaptured": 36000, "amountRefunded": 36000, "archivingReference": "YNADK4W3G2EK", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "679d6b91-bba5-43fa-a444-b3aa7fb2ad2f", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "browserAcceptLanguage": "en_US", "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36", "captureDate": "2024-01-04T15:04:11.419479+01:00", "captureStatus": "CLEARED", "card": { "additionalData": {}, "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2", "cardType": "DEBIT", "cardholderEmail": "test@gmail.com", "cardholderName": "MARIE ANNE", "check": true, "commercialBrand": "MASTERCARD", "country": "FRA", "creationDate": "2024-01-05T12:52:41.054394+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f", "first6": "532509", "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5", "last4": "0008", "productType": "CORPORATE", "region": "EUROPE" }, "cardPresent": {}, "clearingDate": "2024-01-05", "clearingNumber": "008194", "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "country": "FRA", "creationDate": "2024-01-05T15:04:10.135397+01:00", "currency": "EUR", "customAcceptanceData": {}, "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "endUserIp": "245.100.1.15", "endUserLanguage": "fre", "fee": 0, "merchantCategoryCode": "1711", "movementId": "656895c7-e7a2-4b7d-8920-0bb78ea45f3a", "order": { "cardholderEmail": "GDU-Martina_Ondricka@hotmail.com", "country": "FRA" }, "partialAuthorization": false, "partialAuthorized": false, "payoutAmount": 36000, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "GDU-Justyn98@gmail.com", "refunded": true, "refunds": [ { "additionalData": {}, "amount": 36000, "commission": 0, "creationDate": "2024-01-10T09:35:28.448559+01:00", "currency": "EUR", "description": "GDU-testapi", "fee": 0, "movementId": "c42ea27a-6d74-4c4b-b170-e17762916c79", "payoutAmount": 36000, "payoutCurrency": "EUR", "refundId": "9bf06654-c023-4481-8e6a-138bb5f13777", "status": "UNCLEARED", "transactionId": "2a06bfae-51f5-4dd7-945b-47631c16cb9c" } ], "residualAmount": 0, "source": "EC", "threeDSecure": false, "totalAmount": 36000, "transactionId": "2a06bfae-51f5-4dd7-945b-47631c16cb9c", "transactionStatus": "SUCCESS", "transactiontransfers": [], "withCvv": false }, "requestId": "794c20b2-4a0c-4d9d-a580-af5544c11120" } TRANSACTION_RISKYWhen a transaction is refused because of its risk score exceed the limit TRANSACTION_THREEDS_AUTH_FAILEDWhen a transaction is declined because the card holder failed to authenticate himself during the 3DS process The TRANSFER REVERSAL object TRANSFERREVERSAL_SUCCEEDEDWhen a transfer reversal succeeded { "eventId": "9bd04039-7b33-4553-af86-64a6e925eef9", "type": "TRANSFERREVERSAL_SUCCEEDED", "creationDate": "2024-01-16T11:11:40.720817+01:00", "object": { "additionalData": {}, "amount": 140, "creationDate": "2024-01-16T11:11:40.611318+01:00", "currency": "EUR", "description": "Test", "fee": 0, "merchantTransferReversalId": "test", "movementId": "e34b6833-7b32-4fde-993a-b904f8f3aeae", "net": 140, "refundFee": true, "status": "TRANSFERRED", "transferId": "e3a45ca4-49a9-4681-bc06-be9ab6dd7d79", "transferReversalId": "bb47ad7b-4112-4ad5-abf3-489d5878d6fd" }, "requestId": "7e593b04-58c3-4e0d-b3c6-ec2a6887164e" } } TRANSFERREVERSAL_UPDATEDWhen a transfer reversal is updated { "eventId": "8317512a-d7d2-4d6d-a61a-644afb7537fb", "type": "TRANSFERREVERSAL_UPDATED", "creationDate": "2024-01-16T11:18:00.682451+01:00", "object": { "additionalData": {}, "amount": 140, "creationDate": "2024-01-16T11:11:40.611318+01:00", "currency": "EUR", "description": "Addeddata", "fee": 0, "merchantTransferReversalId": "test", "movementId": "e34b6833-7b32-4fde-993a-b904f8f3aeae", "net": 140, "refundFee": true, "status": "TRANSFERRED", "transferId": "e3a45ca4-49a9-4681-bc06-be9ab6dd7d79", "transferReversalId": "bb47ad7b-4112-4ad5-abf3-489d5878d6fd" }, "requestId": "3509acf1-39c9-45e5-b1b6-d58ee6639b8d" } The TRANSFER object TRANSFER_SUCCEEDEDWhen a transfer succeeded { { "eventId": "a1147178-8197-46d7-ba6d-433f71a1b7f5", "type": "TRANSFER_SUCCEEDED", "creationDate": "2024-01-08T14:33:25.439719+01:00", "object": { "additionalData": {}, "amount": 140, "creationDate": "2024-01-08T14:33:25.050153+01:00", "currency": "EUR", "description": "Vente de XxX", "destinationWalletId": "ccf841d8-b066-4e96-adc7-fa6414cfe598", "emissionWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "exchangedAmount": 140, "exchangedFee": 0, "exchangedNet": 140, "fee": 0, "merchantTransferId": "IDENTIFIANT_MRI", "movementId": "20452a9f-6055-462c-8da5-f351cc0a1437", "net": 140, "rate": 1, "reversed": false, "status": "TRANSFERRED", "toCurrency": "GTH", "transferId": "c8d751cc-da30-4dbe-9e57-acf7731bb3f5", "transferReversals": [] }, "requestId": "6d21911b-40bb-4259-aef9-39c616d60aa4" } } TRANSFER_UPDATEDWhen a transfer is updated { { "eventId": "356e4dff-4146-47d5-9db9-3226585cafc1", "type": "TRANSFER_UPDATED", "creationDate": "2024-01-08T14:38:40.555843+01:00", "object": { "additionalData": { "Key1": "val2" }, "amount": 140, "creationDate": "2024-01-08T14:33:25.050153+01:00", "currency": "EUR", "description": "transfer1", "destinationWalletId": "ccf841d8-b066-4e96-adc7-fa6414cfe598", "emissionWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "exchangedAmount": 140, "exchangedFee": 0, "exchangedNet": 140, "fee": 0, "merchantTransferId": "TEST_002", "movementId": "20452a9f-6055-462c-8da5-f351cc0a1437", "net": 140, "rate": 1, "reversed": false, "status": "TRANSFERRED", "toCurrency": "GTH", "transferGroup": "TransferGroup_0002", "transferId": "c8d751cc-da30-4dbe-9e57-acf7731bb3f5", "transferReversals": [] }, "requestId": "e7b6b976-a0ae-45dc-a018-f6c651a7f559", "objectBeforeUpdate": { "additionalData": {}, "amount": 140, "creationDate": "2024-01-08T14:33:25.050153+01:00", "currency": "EUR", "description": "Vente de XxX", "destinationWalletId": "ccf841d8-b066-4e96-adc7-fa6414cfe598", "emissionWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "exchangedAmount": 140, "exchangedFee": 0, "exchangedNet": 140, "fee": 0, "merchantTransferId": "IDENTIFIANT_MRI", "movementId": "20452a9f-6055-462c-8da5-f351cc0a1437", "net": 140, "rate": 1, "reversed": false, "status": "TRANSFERRED", "toCurrency": "GTH", "transferId": "c8d751cc-da30-4dbe-9e57-acf7731bb3f5", "transferReversals": [] } } } TRANSFER_CANCELEDWhen a transfer is cancelled { "eventId": "d1a35d33-87b7-4672-8e49-495cd117f45b", "type": "TRANSFER_CANCELED", "creationDate": "2024-01-16T11:34:40.698751+01:00", "object": { "additionalData": {}, "amount": 140, "cancelMovementId": "e66acfa2-60c4-4eec-8bfe-f1571318a667", "cancellationDate": "2024-01-16T11:34:40.691168+01:00", "creationDate": "2024-01-16T11:34:05.280812+01:00", "currency": "EUR", "description": "Vente de XxX", "destinationWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "emissionWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "escrowDate": "2035-12-23", "exchangedAmount": 140, "exchangedFee": 0, "exchangedNet": 140, "fee": 0, "merchantTransferId": "IDENTIFIANT_GDU", "movementId": "98c79326-53e5-4b71-8ef6-4b1344c428a4", "net": 140, "rate": 1, "reversed": false, "status": "CANCEL", "toCurrency": "EUR", "transferId": "fd4aa0f5-69d5-4b79-b6df-c99dab33d9ee", "transferReversals": [] }, "requestId": "35b87d6e-41dd-4a5e-b1a2-5347b6fa1eba" } The WIRETRANSFER object (Deprecated) WIRETRANSFER_CREATEDWhen a wire transfer is created WIRETRANSFER_UPDATEDWhen a wire transfer is updated WIRETRANSFER_RECEIVEDWhen a wire transfer is received WIRETRANSFER_CANCELEDWhen a wire transfer is cancelled
Email de confirmation Quand une transaction par carte a été réalisée avec succès, CentralPay peut adresser un email de confirmation de paiement à votre client. Pour cela, vous devez l’activer en renseignant les paramétrages de l’email de confirmation dans votre Point de Vente. Cet email est adressé par défaut à l’email du Customer associé à la transaction, mais vous pouvez renseigner la valeur receiptEmail de la transaction si vous souhaitez l’adresser à un autre. Paramétrage L’email de confirmation possède une mise en forme standardisée affichant les différentes informations de paiement, vous pouvez cependant configurer plusieurs paramètres depuis le Portail utilisateur. Adresse email de l’expéditeur : Paramètrage depuis le point de vente Nom de l’expéditeur : Paramètrage depuis le point de vente Votre logo : Paramètrage depuis le point de vente Nom du point de vente : Paramètrage depuis le point de vente Texte de pied de page : Paramétrage depuis l’entrrée Configuration Email confirmation paiement Créer Langue d’affichage : Renseigner la valeur « endUserLanguage » dans la requête de Transaction (anglais par défaut)
Frais d'interchange et réseaux cartes L’interchange correspond à la valeur chargée par l’établissement émetteur d’une carte de paiement (la banque de votre client) à l’établissement acquéreur (la banque du marchand). Les frais de réseaux carte (ou « Card Scheme Fees ») correspondent aux frais pris par les réseaux carte (Visa, Mastercard, CB) pour faire fonctionner le service. Des termes ont été définis pour désigner l’assemblage de ces frais : Interchange+Les frais d’Interchange + les frais des réseaux cartes (card scheme fees) Interchange++Les frais d’Interchange + les frais des réseaux cartes (card scheme fees) + les frais de service de l’établissement (CentralPay) Toutes les offres commerciales de CentralPay intègrent les frais d’Interchange+ ainsi que nos propres frais de service, vous n’avez donc aucun frais bancaire supplémentaire à prévoir pour réaliser vos transactions. Sauf mention contraire, des frais minimum de perception de 0.15 € sont prélevés sur l’IC++. 1. Frais d’interchange et réseaux carte (E-commerce) Type de carteInterchange Intrarégional (EEE)Interchange Interrégional (hors EEE)Carte de débit ou prépayéCB, VISA, MASTERCARD0,2 %1,15 %Carte de crédit ou débit différéCB, VISA, MASTERCARD0,3 %1,5 %Carte professionnelleCB0,9 %/Carte professionnelleVISA1,45 %2 %Carte professionnelleMASTERCARD1,45 %2 %Toutes cartesAMERICAN EXPRESSAucunAucun Réseau carteFrais de réseaux carte Intrarégional (EEE)Frais de réseaux carte Interrégional (hors EEE)Réseau CB (Cartes bancaires)0,030 %/Réseau VISA0,110 %0,700 %Réseau MASTERCARD0,390 %0,950 %Réseau AMERICAN EXPRESS1,600 %2,400 % 2. Frais d’interchange et réseaux carte (paiement de proximité) Type de carteInterchange Intrarégional (EEE)Interchange Interrégional (hors EEE)Carte de débit ou prépayéCB, VISA, MASTERCARD0,2 %1,15 %Carte de crédit ou débit différéCB, VISA, MASTERCARD0,3 %1,5 %Carte professionnelleCB0,9 %/Carte professionnelleVISA1,45 %2 %Carte professionnelleMASTERCARD1,45 %2 %Toutes cartesAMERICAN EXPRESSAucunAucun Réseau carteFrais de réseaux carte Intrarégional (EEE)Frais de réseaux carte Interrégional (hors EEE)Réseau CB (Cartes bancaires)0,030 %/Réseau VISA0,110 %0,700 %Réseau MASTERCARD0,390 %0,950 %Réseau AMERICAN EXPRESS1,600 %2,400 %
Object status Articles MERCHANT-ENROLLMENT status TRANSFER status TRANSFER REVERSAL status PAYMENT REQUEST status TRANSACTION status REFUND status CREDIT status DISPUTES status SUBSCRIPTION status INSTALLMENT status SDD TRANSACTION status MANDATE status BANK ACCOUNT status PAYOUT status SCT TRANSACTION status MERCHANT-ENROLLMENT status This page lists the possible values returned by the status field in the EnrollmentWorkflow object. These statuses indicate the current state of a merchant onboarding process initiated through CentralPay’s API or user portal. 📌 Status List StatusDescriptionAPI_CALLThe enrollment was initiated via API. The workflow has been created but no validation has occurred yet.VALIDATIONThe onboarding request is currently under validation (e.g., verifying provided data and uploaded documents).ON_GOINGThe process is ongoing. The merchant is expected to provide more information or complete additional steps.OVERRIDECentralPay has overridden a previous decision and resumed processing the enrollment.REFUSEDThe enrollment request has been refused. CentralPay may have detected a regulatory issue, risk, or missing eligibility requirement.ACCEPTEDThe merchant enrollment is complete and validated. The merchant can now use their CentralPay account. 🔁 Status Flow Overview ✅ Standard Status Flow API_CALL → VALIDATION → ON_GOING → ACCEPTED This is the default progression for a successful enrollment: API_CALL – The enrollment has been created via API. No validation has started yet. VALIDATION – CentralPay is verifying the submitted information and documents. ON_GOING – The merchant is expected to provide additional data or complete onboarding steps. ACCEPTED – The enrollment has been approved. The merchant can now use their CentralPay account. ❌ Alternative Flow – Rejection API_CALL → VALIDATION → REFUSED or API_CALL → VALIDATION → ON_GOING → REFUSED The enrollment is rejected during the process, either early on or after attempted completion. Common reasons include: Invalid or non-compliant documents Ineligible merchant activity Excessive financial or regulatory risk 🔁 Manual Override After Refusal REFUSED → OVERRIDE → VALIDATION / ON_GOING If new or corrected information is provided, a CentralPay operator may resume the process after an initial refusal. The OVERRIDE status indicates that a manual decision has been made to re-open the enrollment flow. 💬 Notes An Agent or DME may retrieve the enrollment status via API to track progress. CentralPay sends webhooks to the configured endpoint when the enrollment status changes (e.g., ACCEPTED, REFUSED). Once the enrollment is ACCEPTED, the merchant’s profile becomes active, and their account is ready for use. TRANSFER status This page lists and describes the status values associated with the Transfer object. These statuses reflect the progression of a fund transfer operation created via the /transfer endpoint in CentralPay’s API. Status values StatusDescriptionCREATEDThe transfer has been successfully created and registered. It has not yet been executed.SCHEDULEDThe transfer is scheduled for automatic execution at a defined date/time.PENDINGThe transfer is being processed. Execution is in progress but not yet finalized.CANCELLEDThe transfer was cancelled before execution. No movement of funds occurred.PROCESSEDThe transfer was processed by CentralPay. Funds have been deducted from the source wallet.DONEThe transfer was successfully completed and the funds have been credited to the target account or wallet.FAILEDThe transfer could not be executed due to an error. No debit occurred or the operation was reversed.REVERSEDThe transfer was previously executed but has since been reversed. Funds were returned to the source wallet. Status lifecycle ✅ Standard flow CREATED → SCHEDULED → PENDING → PROCESSED → DONE This is the typical status flow when the transfer is executed successfully. ⚠️ Alternative flow (error or cancellation) CREATED → CANCELLED If the transfer is cancelled before execution. CREATED → SCHEDULED → PENDING → FAILED If the transfer encounters an error during processing (e.g., insufficient funds, invalid wallet, technical issue). DONE → REVERSED If the transfer was previously executed but later reversed (e.g., manual operation or compliance reversal). Notes Only CREATED or SCHEDULED transfers may be cancelled manually. A FAILED status usually indicates validation errors (e.g. insufficient funds, inactive wallet, invalid beneficiary). The REVERSED status applies when a reversal is triggered using the /transferReversal endpoint. Status fields are returned in the status property of the Transfer JSON object and may be monitored using the API or relevant webhooks. TRANSFER REVERSAL status This page provides the list of statuses associated with the Transfer Reversal object, accessible via the /transferReversal endpoint. A Transfer Reversal allows you to cancel or refund a previously created transfer, typically used to revert funds between wallets when an operation is aborted or updated after execution. 📌 Status List StatusDescriptionPENDINGThe reversal has been requested but not yet processed.IN_PROGRESSThe reversal request is currently being executed.DONEThe reversal has been successfully completed.REFUSEDThe reversal has been refused. This may be due to authorization failure, insufficient funds, or policy restrictions.CANCELLEDThe reversal request was cancelled before being processed. These statuses are returned in the status field of the Transfer Reversal object and can be queried through the API to track reversal lifecycle. 🔁 Status Flow Overview ✅ Standard Status Flow PENDING → IN_PROGRESS → DONE This is the expected successful path for a properly submitted reversal. ❌ Alternate Outcomes Rejected during or after processing: PENDING → REFUSEDPENDING → IN_PROGRESS → REFUSED Cancellation before processing: PENDING → CANCELLED 🔍 Notes A reversal can only be initiated if the original transfer is eligible. Once DONE, the reversal is final and reflected in both wallets. Status changes can be tracked via webhook notifications if configured. PAYMENT REQUEST status Payment request status: ACTIVE CLOSED CANCELED Payment status : UNPAID ACCEPTED PARTIALLY_PAID PAID The following table explains every possible status combination and what they point out : Payment request statusPayment status ExplanationACTIVEUNPAIDPayment request created, waiting for the customer’s payment.ACTIVEPARTIALLY_PAIDThe customer has paid part of the total sum of the payment request that will stay ACTIVE while waiting for the remaining payment(s). ACTIVEACCEPTEDTemporary status that is exclusive for the SDD transactions, pre-authorization and deferred payments. The customer has done the required action and the operation is waiting for the processing.CLOSEDPAIDThe payment request has been fully paid.CLOSEDPARTIALLY_PAIDThe payment request has been partially paid and the merchant has manually closed it. This can be performed from the API or the user portal if the merchant is satisfied with this partial payment of the customer and allows to stop any automatic reminders.CANCELEDUNPAIDThe payment request was cancelled before the customer’s payment. This cancellation may be initiated by the merchant via API or via the User Portal (in the event of an error in the creation or cancellation of an order, for example), or carried out automatically if the link expires. This cancellation reason is visible from the User Portal. TRANSACTION status Status « Transaction » StatusDescriptionSUCCESSThe transaction is a « success » when an authorization request has been issued by the Bank and the bank return code is « 0 ».FRAUDThe status indicates that the transaction encountered a « blacklisted » item. This can come from an IP, phone number, email or card number.CAPTUREDA Success transaction must be « captured » within 7 calendar days in order to be charged to your Customer’s card.Note: by default, a transaction is automatically « captured ».FAILUREThe transaction is in « failure » when the authorization has not been issued by the Bank issuing the card.In addition, you receive a rejection code issued by the bank of the card issuer (bank code < 100).CANCELEDThis status reflects the cancellation of a « capture » request before it is cleared. It is possible to cancel a transaction between the « success » and « cleared » transaction status.THREEDS_AUTH_FAILURE3DS authentication failed. The cardholder submitted an incorrect code or did not submit it in time.CLEAREDA « Cleared » transaction indicates that a debit has been made on your customer’s card. At this point, you can no longer cancel the transaction, but you can refund it using the « refund » API object.NOT_ACCEPTEDThe transaction was declined as it encountered an element of denial of an acceptance rule. REFUND status Statuts « Refund » StatutDescriptionCLEAREDProcessed refund.UNCLEAREDRefund pending processing.FAILURERefund in error.CANCELEDRefund cancelled, either by you or by your customer via the customer portal. CREDIT status Status « Credit » StatusDescriptionCLEAREDCredit processed.UNCLEAREDCredit pending processingFAILURECredit in error.CANCELEDCredit cancelled, either by you or by your Customer via the customer portal. DISPUTES status Status « Disputes » StatutDescriptionRETRIEVAL_NOTICEDA request for information is sent to you in order to obtain information on the nature of the operation carried out. At this point, it is not a proven dispute. Depending on your response to this request, your client can turn it into a dispute.RETRIEVAL_CLOSENotification that the request for information is closed. The information provided has prevented the dispute.CHARGEBACK_NOTICEDA transaction dispute is sent by your customer. The amount of this transaction will be charged to refund your customer. Non-refundable fees also apply for each dispute received.Note : a Chargeback (dispute) is not necessarily preceded by a Retrieval (request for information).CHARGEBACK_WONYou were successful, the dispute was rejected. The amount of the transaction is refunded to you.CHARGEBACK_LOSTYour evidences are deemed insufficient, the challenge is upheld.TRANSACTION_REFUNDEDThe amount of the disputed transaction was refunded to you following a CHARGEBACK_WON. SUBSCRIPTION status Status « Subscription » StatusDescriptionACCEPTEDThe subscription is active and running (initial status when a subscription is successfully created).PENDINGStatus defined by the configuration you have chosen in case of repeated payment failures.REFUSEDStatus defined by the configuration you have chosen in case of repeated payment failures.CANCELLEDThe subscription has been cancelled either by you or by your Customer via the customer portal. INSTALLMENT status Status « Subscription » StatusDescriptionACTIVEThe installment is active and follows its course (initial status when an installment is created successfully).PAIDThe installment has been fully paid.FAILUREA payment attempt failed, there will be at least one more trial (The number of trials is configurable on the user portal).UNPAIDAll payment attempts failed, final status.CANCELEDThe installment has been cancelled by the merchant. SDD TRANSACTION status Statuts « SDD Transaction » StatutDescriptionACTIVEPending SDD transaction (similar to pending status – largely obsolete status since CentralPay CBK update).PENDINGPending SDD transaction.NOTICEDObsolete — This status is no longer used.CLEAREDProcessed SDD transaction.CANCELEDCancelled SDD transaction.REVERSEDSDD transaction refunded following a rejection of the customer’s bank, a customer dispute, or following a refund from you. MANDATE status Status « Mandate » StatusDescriptionACTIVEActive mandate, ready to use.PENDINGMandate pending validation.OBSOLETEInactive mandate, not usable. BANK ACCOUNT status StatusDescriptionACCEPTEDThe bank account has been accepted by the conformity service.PENDINGThe bank account is waiting the conformity service verification.REFUSEDThe bank account has been refused by the conformity service.CANCELLEDThe bank account is no longer usable (closed account, fraud, …). PAYOUT status StatusDescriptionPAIDThe payout has been paid.PENDINGPayout pending processing.CANCELLEDThe payout has been cancelled (only in pending).REVERSEDThe payout has been refused by the creditor bank, the amount will be credited again on the debtor wallet. SCT TRANSACTION status Status « SCT Transaction » StatusDescriptionPENDINGPending receipt of the SCT Transaction.RECEIVEDSCT Transaction received.CANCELEDSCT Transaction cancelled before receipt.REFUNDEDSCT Transaction refunded.
Libellé relevé bancaire Le libellé de relevé bancaire correspond à la description qui sera affichée sur le relevé de compte bancaire de vos clients pour chacune de vos transactions par carte. Lorsqu’un compte CentralPay « marchand » ou « partenaire » est créé, un libellé de relevé bancaire est défini automatiquement en utilisant le nom de votre premier Point de Vente : CPAY*NomDuPointDeVente Vous pouvez demander à CentralPay de modifier votre libellé, cependant il doit permettre à vos clients de vous identifier clairement ou d’accéder à votre site de réclamation.
Forfaits d'accompagnement Les forfaits d’accompagnement permettent une mise en service rapide, guidée par nos équipes support intégration (SI) et service client (SC). Les heures d’accompagnement vous permettent de déléguer certains paramétrages de votre compte et de solliciter des échanges visio : avec le SI pour les sujets techniques, avec le SC pour ceux d’ordre administratif / fonctionnels. 1. Accompagnement à l’intégration Smart Collection Accompagnement à l’intégration, au choixFrais (HT)En autonomie2 heures d’accompagnement équipe Service ClientInclus (offres Starter, Medium et Major Company)Accompagnement standardAnalyse technique du projet par équipe Service Intégration 2 heures d’accompagnement équipe Service Intégration 2 heures d’accompagnement équipe Service Client490 €Accompagnement avancéAnalyse technique et suivi par Responsable Service Intégration dédié3 heures d’accompagnement par Responsable Service Intégration dédié3 heures d’accompagnement par Responsable Service Client dédié1 990 € 2. Accompagnement à l’intégration Smart Collection et Easy Wallet Accompagnement à l’intégration, au choixFrais (HT)En autonomie3 heures d’accompagnement équipe Service ClientInclus(offres Medium et Major Partner)Accompagnement standardAnalyse technique du projet par équipe Service Intégration5 heures d’accompagnement équipe Service Intégration5 heures d’accompagnement équipe Service Client990 €Accompagnement avancéAnalyse technique et suivi par Responsable Service Intégration dédié10 heures d’accompagnement par Responsable Service Intégration dédié10 heures d’accompagnement par Responsable Service Client dédié2 990 € 3. Forfaits d’accompagnement horaire par le service client Accompagnement horaire au choix, utilisable pour déléguer des paramétrages de comptes, des interventions avec tests, des analyses spécifiques…Frais (HT)Forfait d’accompagnement 2 h2 heures d’accompagnement équipe Service Client, consommables par périodes de 30 minutes.250 €Forfait d’accompagnement 5 h5 heures d’accompagnement équipe Service Client, consommables par périodes de 30 minutes.490 €Forfait d’accompagnement 10 h10 heures d’accompagnement équipe Service Client, consommables par périodes de 30 minutes.890 €
Resources by type Articles Codes Test values Codes HTTP Codes Find below the list of HTTP return codes: 200OKNote: The request was executed correctly400BAD REQUESTNote: Wrong parameter or rule401UNAUTHORIZEDNote: Login / password are missing for HTTP authentication402PAYMENT_REQUIREDNote: Authorization denied*403FORBIDDENNote: Wrong authentication404NOT FOUNDNote: Incorrect URL500INTERNAL SERVER ERRORNote: Server error (*) Only possible for the creation of a transaction Bank return codes List of codes returned by the issuer bank to CentralPay after an autorization request 00Transaction approved or successfully processed02Contact card issuer03Invalid acceptor04Keep card05Do not honor06Transaction invalid for terminal07Honor with ID08Time-Out09No original10Unable to reverse11Partial approval12Invalid transaction13Invalid amount14Invalid cardholder number15Unknown card issuer17Invalid capture date (terminal business date)19Repeat transaction later20No From Account21No To Account22Account not verified23Account not saved24No Credit Account25Unable to locate record in file26Record duplicated27 ‘Edit’ error in file update field28File access denied29File update not possible30Format error31Identifier of acquiring organization unknown32Transaction partially completed33Card validity date exceeded34Implausible card data38Number of PIN attempts exceeded39Transaction not allowed41Lost card42Special Pickup43Stolen card44Stolen card51Insufficient funds or overdraft54 Card expired55Incorrect PIN56 Card not on file57Transaction not authorized to this cardholder58Transaction prohibited at terminal59Suspected fraud60 the card acceptor must contact the buyer61Withdrawal amount over limit62Card use restricted63MAC Key Error65 Frequency limit exceeded66Acquirer limit reached67Card withheld68Response not received or received too late75Number of PIN attempts exceeded76Invalid Account77Issuer not participating in service78Function not available79Key validation error80Approved for purchase amount only81Unable to verify PIN82Invalid CVV83Not refused84Invalid transaction lifecycle85No key to use86KME synchronization error87PIN error88MAC synchronization error89Security violation90Temporary system shutdown91Card transmitter inaccessible92Card issuer unknown93Transacation cannot be finalized94Duplicate request95Contact acquirer96System malfunction97No Funds Transfer98Duplicate Reversal99Duplicate TransactionN3Cash Service Not AvailableN4Cash Back Request Exceeds Issuer LimitN7Declined for CVV2 failureR0Stop Payment OrderR1Revocation of Authorisation OrderR3Revocation of all Authorisations OrderA0Withdrawal in contact modeA1VADS fallback000Approved001Approve with ID002Partial approval (prepaid cards only)100Reject101Card expired / invalid expiry date106PIN attempts exceeded107Please call issuer109Invalid merchant110Invalid amount111Invalid account / Invalid MICR (traveler’s check)115Requested function not supported117Invalid PIN119Cardholder not registered / not authorized122Invalid card security code (alias CID, 4DBC, 4CSC)125Invalid effective date181Format error183Invalid currency code187Refuse – New card issued189Refuse – Merchant cancelled or closed / SE200Refuse – Pick up card900Accepted – ATC synchronization909System malfunction (cryptographic error)912Issuer not available Currency codes List of currency codes: AEDUAE DirhamCurrency code: 784AFNAfghaniCurrency code: 971ALLLekCurrency code: 008AMDArmenian DramCurrency code: 051ANGNetherlands Antillean GuilderCurrency code: 532AOAKwanzaCurrency code: 973ARSArgentine PesoCurrency code: 032AUDAustralian DollarCurrency code: 036AWGAruban FlorinCurrency code: 533AZNAzerbaijanian ManatCurrency code: 944BAMConvertible MarkCurrency code: 977BBDBarbados DollarCurrency code: 052BDTTakaCurrency code: 050BGNBulgarian LevCurrency code: 975BHDBahraini DinarCurrency code: 048BIFBurundi FrancCurrency code: 108BMDBermudian DollarCurrency code: 060BNDBrunei DollarCurrency code: 096BOBBolivianoCurrency code: 068BOVMvdolCurrency code: 984BRLBrazilian RealCurrency code: 986BSDBahamian DollarCurrency code: 044BTNNgultrumCurrency code: 064BWPPulaCurrency code: 072BYRBelarussian RubleCurrency code: 974BZDBelize DollarCurrency code: 084CADCanadian DollarCurrency code: 124CDFCongolese FrancCurrency code: 976CHEWIR EuroCurrency code: 947CHFSwiss FrancCurrency code: 756CHWWIR FrancCurrency code: 948CLFUnidad de FomentoCurrency code: 990CLPChilean PesoCurrency code: 152CNYYuan RenminbiCurrency code: 156COPColombian PesoCurrency code: 170COUUnidad de Valor RealCurrency code: 970CRCCosta Rican ColonCurrency code: 188CUCPeso ConvertibleCurrency code: 931CUPCuban PesoCurrency code: 192CVECabo Verde EscudoCurrency code: 132CZKCzech KorunaCurrency code: 203DJFDjibouti FrancCurrency code: 262DKKDanish KroneCurrency code: 208DOPDominican PesoCurrency code: 214DZDAlgerian DinarCurrency code: 012EGPEgyptian PoundCurrency code: 818ERNNakfaCurrency code: 232ETBEthiopian BirrCurrency code: 230EUREuroCurrency code: 978FJDFiji DollarCurrency code: 242FKPFalkland Islands PoundCurrency code: 238GBPPound SterlingCurrency code: 826GELLariCurrency code: 981GHSGhana CediCurrency code: 936GIPGibraltar PoundCurrency code: 292GMDDalasiCurrency code: 270GNFGuinea FrancCurrency code: 324GTQQuetzalCurrency code: 320GYDGuyana DollarCurrency code: 328HKDHong Kong DollarCurrency code: 344HNLLempiraCurrency code: 340HRKKunaCurrency code: 191HTGGourdeCurrency code: 332HUFForintCurrency code: 348IDRRupiahCurrency code: 360ILSNew Israeli SheqelCurrency code: 376INRIndian RupeeCurrency code: 356IQDIraqi DinarCurrency code: 368IRRIranian RialCurrency code: 364ISKIceland KronaCurrency code: 352JMDJamaican DollarCurrency code: 388JODJordanian DinarCurrency code: 400JPYYenCurrency code: 392KESKenyan ShillingCurrency code: 404KGSSomCurrency code: 417KHRRielCurrency code: 116KMFComoro FrancCurrency code: 174KPWNorth Korean WonCurrency code: 408KRWWonCurrency code: 410KWDKuwaiti DinarCurrency code: 414KYDCayman Islands DollarCurrency code: 136KZTTengeCurrency code: 398LAKKipCurrency code: 418LBPLebanese PoundCurrency code: 422LKRSri Lanka RupeeCurrency code: 144LRDLiberian DollarCurrency code: 430LSLLotiCurrency code: 426LYDLibyan DinarCurrency code: 434MADMoroccan DirhamCurrency code: 504MDLMoldovan LeuCurrency code: 498MGAMalagasy AriaryCurrency code: 969MKDDenarCurrency code: 807MMKKyatCurrency code: 104MNTTugrikCurrency code: 496MOPPatacaCurrency code: 446MROOuguiyaCurrency code: 478MURMauritius RupeeCurrency code: 480MVRRufiyaaCurrency code: 462MWKKwachaCurrency code: 454MXNMexican PesoCurrency code: 484MXVMexican Unidad de Inversion (UDI)Currency code: 979MYRMalaysian RinggitCurrency code: 458MZNMozambique MeticalCurrency code: 943NADNamibia DollarCurrency code: 516NGNNairaCurrency code: 566NIOCordoba OroCurrency code: 558NOKNorwegian KroneCurrency code: 578NPRNepalese RupeeCurrency code: 524NZDNew Zealand DollarCurrency code: 554OMRRial OmaniCurrency code: 512PABBalboaCurrency code: 590PENNuevo SolCurrency code: 604PGKKinaCurrency code: 598PHPPhilippine PesoCurrency code: 608PKRPakistan RupeeCurrency code: 586PLNZlotyCurrency code: 985PYGGuaraniCurrency code: 600QARQatari RialCurrency code: 634RONRomanian LeuCurrency code: 946RSDSerbian DinarCurrency code: 941RUBRussian RubleCurrency code: 643RWFRwanda FrancCurrency code: 646SARSaudi RiyalCurrency code: 682SBDSolomon Islands DollarCurrency code: 090SCRSeychelles RupeeCurrency code: 690SDGSudanese PoundCurrency code: 938SEKSwedish KronaCurrency code: 752SGDSingapore DollarCurrency code: 702SHPSaint Helena PoundCurrency code: 654SLLLeoneCurrency code: 694SOSSomali ShillingCurrency code: 706SRDSurinam DollarCurrency code: 968SSPSouth Sudanese PoundCurrency code: 728STDDobraCurrency code: 678SVCEl Salvador ColonCurrency code: 222SYPSyrian PoundCurrency code: 760SZLLilangeniCurrency code: 748THBBahtCurrency code: 764TJSSomoniCurrency code: 972TMTTurkmenistan New ManatCurrency code: 934TNDTunisian DinarCurrency code: 788TOPPa’angaCurrency code: 776TRYTurkish LiraCurrency code: 949TTDTrinidad and Tobago DollarCurrency code: 780TWDNew Taiwan DollarCurrency code: 901TZSTanzanian ShillingCurrency code: 834UAHHryvniaCurrency code: 980UGXUganda ShillingCurrency code: 800USDUS DollarCurrency code: 840USNUS Dollar (Next day)Currency code: 997UYIUruguay Peso en Unidades Indexadas (URUIURUI)Currency code: 940UYUPeso UruguayoCurrency code: 858UZSUzbekistan SumCurrency code: 860VEFBolivarCurrency code: 937VNDDongCurrency code: 704VUVVatuCurrency code: 548WSTTalaCurrency code: 882XAGSilverCurrency code: 961XAUGoldCurrency code: 959XBABond Markets Unit European Composite Unit (EURCO)Currency code: 955XBBBond Markets Unit European Monetary Unit (E.M.U.-6)Currency code: 956XBCBond Markets Unit European Unit of Account 9 (E.U.A.-9)Currency code: 957XBDBond Markets Unit European Unit of Account 17 (E.U.A.-17)Currency code: 958XCDEast Caribbean DollarCurrency code: 951XDRSDR (Special Drawing Right)Currency code: 960XOFCFA Franc BCEAOCurrency code: 952XPDPalladiumCurrency code: 964XPFCFP FrancCurrency code: 953XPTPlatinumCurrency code: 962XSUSucreCurrency code: 994XTSCodes specifically reserved for testing purposesCurrency code: 963XUAADB Unit of AccountCurrency code: 965XXXThe codes assigned for transactions where no currency is involvedCurrency code: 999YERYemeni RialCurrency code: 886ZARRandCurrency code: 710ZMWZambian KwachaCurrency code: 967ZWLZimbabwe DollarCurrency code: 932 Description of the certification « ISO 4217:2008 » is available at this url: http://www.iso.org/iso/home/standards/currency_codes.htm SDD return codes Return CodeDescriptionAB05Timeout Creditor AgentAB06Timeout Instructed AgentAB07Offline AgentAB08Offline Creditor AgentAB09Error Creditor AgentAB10Error Instructed AgentAC01Incorrect Account NumberAC03Invalid Creditor Account NumberAC04Account ClosedAC06Account blocked, reason not specifiedAC13Wrong Debtor accountAG01Forbidden on this type of accountAG02Operation/Transaction code incorrect, invalid file formatAG09Payment Not ReceivedAG10Agent SuspendedAG11Creditor Agent SuspendedAGNTIncorrect AgentAM02Not Allowed AmountAM04Insufficient FundsAM05Duplicate paymentAM09Wrong AmountAM23Amount Exceeds Settlement LimitARDTAlready a returned transactionBE04Account address invalidBE05Creditor Identifier incorrectCUSTCustomer decisionCURRIncorrect CurrencyCUTACancellation Upon Unable to ApplyCNORCreditor Bank is not RegisteredDNORDebtor Bank is not RegisteredDUPLDuplicate PaymentED05Settlement FailedERINERI Option Not SupportedFF01Invalid File FormatFOCRPositive answer to the recall or RfROFRADFraudulent originated credit transferLEGLLegal DecisionMD01No valid mandateMD02Mandate data missing or invalidMD06Refund Request By End CustomerMD07Beneficiary DeceasedMS02By order of the beneficiaryMS03Reason not specifiedNOASNo Answer From CustomerNOORNo Original Transaction ReceivedRC01Invalid BICRC07Invalid Creditor BIC IdentifierRR01Missing Debtor Account Or IdentificationRR02Missing Debtors Name Or AddressRR03Missing Creditors Name Or AddressRR04Regulatory ReasonSL01Specific service offered by debtor BankTECHTechnical problems resulting in erroneous SCT’sTM01Invalid Cut Off TimeUPAYUndue Payment Country codes List of country codes: 004AfghanistanAlpha2 code: AFAlpha3 code: AFG008AlbaniaAlpha2 code: ALAlpha3 code: ALB010AntarcticaAlpha2 code: AQAlpha3 code: ATA012AlgeriaAlpha2 code: DZAlpha3 code: DZA016American SamoaAlpha2 code: ASAlpha3 code: ASM020AndorraAlpha2 code: ADAlpha3 code: AND024AngolaAlpha2 code: AOAlpha3 code: AGO028Antigua and BarbudaAlpha2 code: AGAlpha3 code: ATG031AzerbaijanAlpha2 code: AZAlpha3 code: AZE032ArgentinaAlpha2 code: ARAlpha3 code: ARG036AustraliaAlpha2 code: AUAlpha3 code: AUS040AustriaAlpha2 code: ATAlpha3 code: AUT044Bahamas (the)Alpha2 code: BSAlpha3 code: BHS048BahrainAlpha2 code: BHAlpha3 code: BHR050BangladeshAlpha2 code: BDAlpha3 code: BGD051ArmeniaAlpha2 code: AMAlpha3 code: ARM052BarbadosAlpha2 code: BBAlpha3 code: BRB056BelgiumAlpha2 code: BEAlpha3 code: BEL060BermudaAlpha2 code: BMAlpha3 code: BMU064BhutanAlpha2 code: BTAlpha3 code: BTN068Bolivia, Plurinational State ofAlpha2 code: BOAlpha3 code: BOL070Bosnia and HerzegovinaAlpha2 code: BAAlpha3 code: BIH072BotswanaAlpha2 code: BWAlpha3 code: BWA074Bouvet IslandAlpha2 code: BVAlpha3 code: BVT076BrazilAlpha2 code: BRAlpha3 code: BRA084BelizeAlpha2 code: BZAlpha3 code: BLZ086British Indian Ocean Territory (the)Alpha2 code: IOAlpha3 code: IOT090Solomon Islands (the)Alpha2 code: SBAlpha3 code: SLB092Virgin Islands (British)Alpha2 code: VGAlpha3 code: VGB096Brunei DarussalamAlpha2 code: BNAlpha3 code: BRN100BulgariaAlpha2 code: BGAlpha3 code: BGR104MyanmarAlpha2 code: MMAlpha3 code: MMR108BurundiAlpha2 code: BIAlpha3 code: BDI112BelarusAlpha2 code: BYAlpha3 code: BLR116CambodiaAlpha2 code: KHAlpha3 code: KHM120CameroonAlpha2 code: CMAlpha3 code: CMR124CanadaAlpha2 code: CAAlpha3 code: CAN132Cape VerdeAlpha2 code: CVAlpha3 code: CPV136Cayman Islands (the)Alpha2 code: KYAlpha3 code: CYM140Central African Republic (the)Alpha2 code: CFAlpha3 code: CAF144Sri LankaAlpha2 code: LKAlpha3 code: LKA148ChadAlpha2 code: TDAlpha3 code: TCD152ChileAlpha2 code: CLAlpha3 code: CHL156ChinaAlpha2 code: CNAlpha3 code: CHN158Taiwan (Province of China)Alpha2 code: TWAlpha3 code: TWN162Christmas IslandAlpha2 code: CXAlpha3 code: CXR166Cocos (Keeling) Islands (the)Alpha2 code: CCAlpha3 code: CCK170ColombiaAlpha2 code: COAlpha3 code: COL174ComorosAlpha2 code: KMAlpha3 code: COM175MayotteAlpha2 code: YTAlpha3 code: MYT178CongoAlpha2 code: CGAlpha3 code: COG180Congo (the Democratic Republic of the)Alpha2 code: CDAlpha3 code: COD184Cook Islands (the)Alpha2 code: CKAlpha3 code: COK188Costa RicaAlpha2 code: CRAlpha3 code: CRI191CroatiaAlpha2 code: HRAlpha3 code: HRV192CubaAlpha2 code: CUAlpha3 code: CUB196CyprusAlpha2 code: CYAlpha3 code: CYP203Czech Republic (the)Alpha2 code: CZAlpha3 code: CZE204BeninAlpha2 code: BJAlpha3 code: BEN208DenmarkAlpha2 code: DKAlpha3 code: DNK212DominicaAlpha2 code: DMAlpha3 code: DMA214Dominican Republic (the)Alpha2 code: DOAlpha3 code: DOM218EcuadorAlpha2 code: ECAlpha3 code: ECU222El SalvadorAlpha2 code: SVAlpha3 code: SLV226Equatorial GuineaAlpha2 code: GQAlpha3 code: GNQ231EthiopiaAlpha2 code: ETAlpha3 code: ETH232EritreaAlpha2 code: ERAlpha3 code: ERI233EstoniaAlpha2 code: EEAlpha3 code: EST234Faroe Islands (the)Alpha2 code: FOAlpha3 code: FRO238Falkland Islands (the) [Malvinas]Alpha2 code: FKAlpha3 code: FLK239South Georgia and the South Sandwich IslandsAlpha2 code: GSAlpha3 code: SGS242FijiAlpha2 code: FJAlpha3 code: FJI246FinlandAlpha2 code: FIAlpha3 code: FIN248Ã…land IslandsAlpha2 code: AXAlpha3 code: ALA250FranceAlpha2 code: FRAlpha3 code: FRA254French GuianaAlpha2 code: GFAlpha3 code: GUF258French PolynesiaAlpha2 code: PFAlpha3 code: PYF260French Southern Territories (the)Alpha2 code: TFAlpha3 code: ATF262DjiboutiAlpha2 code: DJAlpha3 code: DJI266GabonAlpha2 code: GAAlpha3 code: GAB268GeorgiaAlpha2 code: GEAlpha3 code: GEO270Gambia (The)Alpha2 code: GMAlpha3 code: GMB275Palestine, State ofAlpha2 code: PSAlpha3 code: PSE276GermanyAlpha2 code: DEAlpha3 code: DEU288GhanaAlpha2 code: GHAlpha3 code: GHA292GibraltarAlpha2 code: GIAlpha3 code: GIB296KiribatiAlpha2 code: KIAlpha3 code: KIR300GreeceAlpha2 code: GRAlpha3 code: GRC304GreenlandAlpha2 code: GLAlpha3 code: GRL308GrenadaAlpha2 code: GDAlpha3 code: GRD312GuadeloupeAlpha2 code: GPAlpha3 code: GLP316GuamAlpha2 code: GUAlpha3 code: GUM320GuatemalaAlpha2 code: GTAlpha3 code: GTM324GuineaAlpha2 code: GNAlpha3 code: GIN328GuyanaAlpha2 code: GYAlpha3 code: GUY332HaitiAlpha2 code: HTAlpha3 code: HTI334Heard Island and McDonald IslandsAlpha2 code: HMAlpha3 code: HMD336Holy See (the) [Vatican City State]Alpha2 code: VAAlpha3 code: VAT340HondurasAlpha2 code: HNAlpha3 code: HND344Hong KongAlpha2 code: HKAlpha3 code: HKG348HungaryAlpha2 code: HUAlpha3 code: HUN352IcelandAlpha2 code: ISAlpha3 code: ISL356IndiaAlpha2 code: INAlpha3 code: IND360IndonesiaAlpha2 code: IDAlpha3 code: IDN364Iran (the Islamic Republic of)Alpha2 code: IRAlpha3 code: IRN368IraqAlpha2 code: IQAlpha3 code: IRQ372IrelandAlpha2 code: IEAlpha3 code: IRL376IsraelAlpha2 code: ILAlpha3 code: ISR380ItalyAlpha2 code: ITAlpha3 code: ITA384Ivory coastAlpha2 code: CIAlpha3 code: CIV388JamaicaAlpha2 code: JMAlpha3 code: JAM392JapanAlpha2 code: JPAlpha3 code: JPN398KazakhstanAlpha2 code: KZAlpha3 code: KAZ400JordanAlpha2 code: JOAlpha3 code: JOR404KenyaAlpha2 code: KEAlpha3 code: KEN408Korea (the Democratic People’s Republic of)Alpha2 code: KPAlpha3 code: PRK410Korea (the Republic of)Alpha2 code: KRAlpha3 code: KOR414KuwaitAlpha2 code: KWAlpha3 code: KWT417KyrgyzstanAlpha2 code: KGAlpha3 code: KGZ418Lao People’s Democratic Republic (the)Alpha2 code: LAAlpha3 code: LAO422LebanonAlpha2 code: LBAlpha3 code: LBN426LesothoAlpha2 code: LSAlpha3 code: LSO428LatviaAlpha2 code: LVAlpha3 code: LVA430LiberiaAlpha2 code: LRAlpha3 code: LBR434LibyaAlpha2 code: LYAlpha3 code: LBY438LiechtensteinAlpha2 code: LIAlpha3 code: LIE440LithuaniaAlpha2 code: LTAlpha3 code: LTU442LuxembourgAlpha2 code: LUAlpha3 code: LUX446MacaoAlpha2 code: MOAlpha3 code: MAC450MadagascarAlpha2 code: MGAlpha3 code: MDG454MalawiAlpha2 code: MWAlpha3 code: MWI458MalaysiaAlpha2 code: MYAlpha3 code: MYS462MaldivesAlpha2 code: MVAlpha3 code: MDV466MaliAlpha2 code: MLAlpha3 code: MLI470MaltaAlpha2 code: MTAlpha3 code: MLT474MartiniqueAlpha2 code: MQAlpha3 code: MTQ478MauritaniaAlpha2 code: MRAlpha3 code: MRT480MauritiusAlpha2 code: MUAlpha3 code: MUS484MexicoAlpha2 code: MXAlpha3 code: MEX492MonacoAlpha2 code: MCAlpha3 code: MCO496MongoliaAlpha2 code: MNAlpha3 code: MNG498Moldova (the Republic of)Alpha2 code: MDAlpha3 code: MDA499MontenegroAlpha2 code: MEAlpha3 code: MNE500MontserratAlpha2 code: MSAlpha3 code: MSR504MoroccoAlpha2 code: MAAlpha3 code: MAR508MozambiqueAlpha2 code: MZAlpha3 code: MOZ512OmanAlpha2 code: OMAlpha3 code: OMN516NamibiaAlpha2 code: NAAlpha3 code: NAM520NauruAlpha2 code: NRAlpha3 code: NRU524NepalAlpha2 code: NPAlpha3 code: NPL528Netherlands (the)Alpha2 code: NLAlpha3 code: NLD531CuracaoAlpha2 code: CWAlpha3 code: CUW533ArubaAlpha2 code: AWAlpha3 code: ABW534Sint Maarten (Dutch part)Alpha2 code: SXAlpha3 code: SXM535Bonaire, Sint Eustatius and SabaAlpha2 code: BQAlpha3 code: BES540New CaledoniaAlpha2 code: NCAlpha3 code: NCL548VanuatuAlpha2 code: VUAlpha3 code: VUT554New ZealandAlpha2 code: NZAlpha3 code: NZL558NicaraguaAlpha2 code: NIAlpha3 code: NIC562Niger (the)Alpha2 code: NEAlpha3 code: NER566NigeriaAlpha2 code: NGAlpha3 code: NGA570NiueAlpha2 code: NUAlpha3 code: NIU574Norfolk IslandAlpha2 code: NFAlpha3 code: NFK578NorwayAlpha2 code: NOAlpha3 code: NOR580Northern Mariana Islands (the)Alpha2 code: MPAlpha3 code: MNP581United States Minor Outlying Islands (the)Alpha2 code: UMAlpha3 code: UMI583Micronesia (the Federated States of)Alpha2 code: FMAlpha3 code: FSM584Marshall Islands (the)Alpha2 code: MHAlpha3 code: MHL585PalauAlpha2 code: PWAlpha3 code: PLW586PakistanAlpha2 code: PKAlpha3 code: PAK591PanamaAlpha2 code: PAAlpha3 code: PAN598Papua New GuineaAlpha2 code: PGAlpha3 code: PNG600ParaguayAlpha2 code: PYAlpha3 code: PRY604PeruAlpha2 code: PEAlpha3 code: PER608Philippines (the)Alpha2 code: PHAlpha3 code: PHL612PitcairnAlpha2 code: PNAlpha3 code: PCN616PolandAlpha2 code: PLAlpha3 code: POL620PortugalAlpha2 code: PTAlpha3 code: PRT624Guinea-BissauAlpha2 code: GWAlpha3 code: GNB626Timor-LesteAlpha2 code: TLAlpha3 code: TLS630Puerto RicoAlpha2 code: PRAlpha3 code: PRI634QatarAlpha2 code: QAAlpha3 code: QAT638RéunionAlpha2 code: REAlpha3 code: REU642RomaniaAlpha2 code: ROAlpha3 code: ROU643Russian Federation (the)Alpha2 code: RUAlpha3 code: RUS646RwandaAlpha2 code: RWAlpha3 code: RWA652Saint BarthélemyAlpha2 code: BLAlpha3 code: BLM654Saint Helena, Ascension and Tristan da CunhaAlpha2 code: SHAlpha3 code: SHN659Saint Kitts and NevisAlpha2 code: KNAlpha3 code: KNA660AnguillaAlpha2 code: AIAlpha3 code: AIA662Saint LuciaAlpha2 code: LCAlpha3 code: LCA663Saint Martin (French part)Alpha2 code: MFAlpha3 code: MAF666Saint Pierre and MiquelonAlpha2 code: PMAlpha3 code: SPM670Saint Vincent and the GrenadinesAlpha2 code: VCAlpha3 code: VCT674San MarinoAlpha2 code: SMAlpha3 code: SMR678Sao Tome and PrincipeAlpha2 code: STAlpha3 code: STP682Saudi ArabiaAlpha2 code: SAAlpha3 code: SAU686SenegalAlpha2 code: SNAlpha3 code: SEN688SerbiaAlpha2 code: RSAlpha3 code: SRB690SeychellesAlpha2 code: SCAlpha3 code: SYC694Sierra LeoneAlpha2 code: SLAlpha3 code: SLE702SingaporeAlpha2 code: SGAlpha3 code: SGP703SlovakiaAlpha2 code: SKAlpha3 code: SVK704Viet NamAlpha2 code: VNAlpha3 code: VNM705SloveniaAlpha2 code: SIAlpha3 code: SVN706SomaliaAlpha2 code: SOAlpha3 code: SOM710South AfricaAlpha2 code: ZAAlpha3 code: ZAF716ZimbabweAlpha2 code: ZWAlpha3 code: ZWE724SpainAlpha2 code: ESAlpha3 code: ESP728South SudanAlpha2 code: SSAlpha3 code: SSD729Sudan (the)Alpha2 code: SDAlpha3 code: SDN732Western SaharaAlpha2 code: EHAlpha3 code: ESH740SurinameAlpha2 code: SRAlpha3 code: SUR744Svalbard and Jan MayenAlpha2 code: SJAlpha3 code: SJM748SwazilandAlpha2 code: SZAlpha3 code: SWZ752SwedenAlpha2 code: SEAlpha3 code: SWE756SwitzerlandAlpha2 code: CHAlpha3 code: CHE760Syrian Arab Republic (the)Alpha2 code: SYAlpha3 code: SYR762TajikistanAlpha2 code: TJAlpha3 code: TJK764ThailandAlpha2 code: THAlpha3 code: THA768TogoAlpha2 code: TGAlpha3 code: TGO772TokelauAlpha2 code: TKAlpha3 code: TKL776TongaAlpha2 code: TOAlpha3 code: TON780Trinidad and TobagoAlpha2 code: TTAlpha3 code: TTO784United Arab Emirates (the)Alpha2 code: AEAlpha3 code: ARE788TunisiaAlpha2 code: TNAlpha3 code: TUN792TurkeyAlpha2 code: TRAlpha3 code: TUR795TurkmenistanAlpha2 code: TMAlpha3 code: TKM796Turks and Caicos Islands (the)Alpha2 code: TCAlpha3 code: TCA798TuvaluAlpha2 code: TVAlpha3 code: TUV800UgandaAlpha2 code: UGAlpha3 code: UGA804UkraineAlpha2 code: UAAlpha3 code: UKR807Macedonia (the former Yugoslav Republic of)Alpha2 code: MKAlpha3 code: MKD818EgyptAlpha2 code: EGAlpha3 code: EGY826United Kingdom (the)Alpha2 code: GBAlpha3 code: GBR831GuernseyAlpha2 code: GGAlpha3 code: GGY832JerseyAlpha2 code: JEAlpha3 code: JEY833Isle of ManAlpha2 code: IMAlpha3 code: IMN834Tanzania, United Republic ofAlpha2 code: TZAlpha3 code: TZA840United States (the)Alpha2 code: USAlpha3 code: USA850Virgin Islands (U.S.)Alpha2 code: VIAlpha3 code: VIR854Burkina FasoAlpha2 code: BFAlpha3 code: BFA858UruguayAlpha2 code: UYAlpha3 code: URY860UzbekistanAlpha2 code: UZAlpha3 code: UZB862Venezuela, Bolivarian Republic ofAlpha2 code: VEAlpha3 code: VEN876Wallis and FutunaAlpha2 code: WFAlpha3 code: WLF882SamoaAlpha2 code: WSAlpha3 code: WSM887YemenAlpha2 code: YEAlpha3 code: YEM894Zambia Alpha2 code: ZMAlpha3 code: ZMB Transfer purpose codes ACCT : AccountManagementADCS : AdvisoryDonationCopyrightServicesADMG : AdministrativeManagementADVA : AdvancePaymentAEMP : ActiveEmploymentPolicyAGRT : AgriculturalTransferAIRB : AirALLW : AllowanceALMY : AlimonyPaymentAMEX : AmexANNI : AnnuityANTS : AnesthesiaServicesAREN : AccountsReceivablesEntryAUCO : AuthenticatedCollectionsB112 : TrailerFeePaymentBBSC : BabyBonusSchemeBCDM : BearerChequeDomesticBCFG : BearerChequeForeignBECH : ChildBenefitBENE : UnemploymentDisabilityBenefitBEXP : BusinessExpensesBFWD : BondForwardBKDF : BankLoanDelayedDrawFundingBKFE : BankLoanFeesBKFM : BankLoanFundingMemoBKIP : BankLoanAccruedInterestPaymentBKPP : BankLoanPrincipalPaydownBLDM : BuildingMaintenanceBNET : BondForwardNettingBOCE : BackOfficeConversionEntryBOND : BondsBONU : BonusPayment.BR12 : TrailerFeeRebateBUSB : BusCABD : CorporateActions-BondsCAEQ : CorporateActions-EquitiesCAFI : CustodianManagementFeeInhouseCASH : CashManagementTransferCBCR : CreditCardCBFF : CapitalBuildingCBFR : CapitalBuildingRetirementCBLK : CardBulkClearingCBTV : CableTVBillCCHD : CashCompensationHelplessnessDisabilityCCIR : CrossCurrencyIRSCCPC : CCPClearedInitialMarginCCPM : CCPClearedVariationMarginCCRD : CreditCardPaymentCCSM : CCPClearedInitialMarginSegregatedCashCDBL : CreditCardBillCDCB : CardPaymentWithCashBackCDCD : CashDisbursementCashSettlementCDCS : CashDisbursementWithSurchargingCDDP : CardDeferredPaymentCDEP : CreditDefaultEventPaymentCDOC : OriginalCreditCDQC : QuasiCashCFDI : CapitalFallingDueInhouseCFEE : CancellationFeeCGDD : CardGeneratedDirectDebitCHAR : CharityPaymentCLPR : CarLoanPrincipalRepaymentCMDT : CommodityTransferCOLL : CollectionPaymentCOMC : CommercialPaymentCOMM : CommissionCOMP : CompensationPaymentCOMT : ConsumerThirdPartyConsolidatedPaymentCORT : TradeSettlementPaymentCOST : CostsCPEN : CashPenaltiesCPKC : CarparkChargesCPYR : CopyrightCRDS : CreditDefaultSwapCRPR : CrossProductCRSP : CreditSupportCRTL : CreditLineCSDB : CashDisbursementCashManagementCSLP : CompanySocialLoanPaymentToBankCVCF : ConvalescentCareFacilityDBCR : DebitCardDBTC : DebitCollectionPaymentDCRD : DebitCardPaymentDEBT : ChargesBorneByDebtorDEPD : DependentSupportPaymentDEPT : DepositDERI : DerivativesDICL : DinersDIVD : DividendDMEQ : DurableMedicaleEquipmentDNTS : DentalServicesDSMT : PrintedOrderDisbursementDVPM : DeliverAgainstPaymentECPG : GuaranteedEPaymentECPR : EPaymentReturnECPU : NonGuaranteedEPaymentEDUC : EducationEFTC : LowValueCreditEFTD : LowValueDebitELEC : ElectricityBillENRG : EnergiesEPAY : EpaymentEQPT : EquityOptionEQTS : EquitiesEQUS : EquitySwapESTX : EstateTaxETUP : EPurseTopUpEXPT : ExoticOptionEXTD : ExchangeTradedDerivativesFACT : FactorUpdateRelatedPaymentFAND : FinancialAidInCaseOfNaturalDisasterFCOL : FeeCollectionFCPM : LatePaymentOfFeesAndChargesFEES : PaymentOfFeesFERB : FerryFIXI : FixedIncomeFLCR : FleetCardFNET : FuturesNettingPaymentFORW : ForwardForeignExchangeFREX : ForeignExchangeFUTR : FuturesFWBC : ForwardBrokerOwnedCashCollateralFWCC : ForwardClientOwnedCashCollateralFWLV : ForeignWorkerLevyFWSB : ForwardBrokerOwnedCashCollateralSegregatedFWSC : ForwardClientOwnedSegregatedCashCollateralFXNT : ForeignExchangeRelatedNettingGAFA : GovernmentFamilyAllowanceGAHO : GovernmentHousingAllowanceGAMB : GamblingOrWageringPaymentGASB : GasBillGDDS : PurchaseSaleOfGoodsGDSV : PurchaseSaleOfGoodsAndServicesGFRP : GuaranteeFundRightsPaymentGIFT : GiftGOVI : GovernmentInsuranceGOVT : GovernmentPaymentGSCB : PurchaseSaleOfGoodsAndServicesWithCashBackGSTX : GoodsServicesTaxGVEA : AustrianGovernmentEmployeesCategoryAGVEB : AustrianGovernmentEmployeesCategoryBGVEC : AustrianGovernmentEmployeesCategoryCGVED : AustrianGovernmentEmployeesCategoryDGWLT : GovermentWarLegislationTransferHEDG : HedgingHLRP : PropertyLoanRepaymentHLST : PropertyLoanSettlementHLTC : HomeHealthCareHLTI : HealthInsuranceHREC : HousingRelatedContributionHSPC : HospitalCareHSTX : HousingTaxICCP : IrrevocableCreditCardPaymentICRF : IntermediateCareFacilityIDCP : IrrevocableDebitCardPaymentIHRP : InstalmentHirePurchaseAgreementINPC : InsurancePremiumCarINPR : InsurancePremiumRefundINSC : PaymentOfInsuranceClaimINSM : InstallmentINSU : InsurancePremiumINTC : IntraCompanyPaymentINTE : InterestINTP : IntraPartyPaymentINTX : IncomeTaxINVS : InvestmentAndSecuritiesIPAY : InstantPaymentsIPCA : InstantPaymentsCancellationIPDO : InstantPaymentsForDonationsIPEA : InstantPaymentsInECommerceWithoutAddressDataIPEC : InstantPaymentsInECommerceWithAddressDataIPEW : InstantPaymentsInECommerceIPPS : InstantPaymentsAtPOSIPRT : InstantPaymentsReturnIPU2 : InstantPaymentsUnattendedVendingMachineWith2FAIPUW : InstantPaymentsUnattendedVendingMachineWithout2FAIVPT : InvoicePaymentLBIN : LendingBuyInNettingLBRI : LaborInsuranceLCOL : LendingCashCollateralFreeMovementLFEE : LendingFeesLICF : LicenseFeeLIFI : LifeInsuranceLIMA : LiquidityManagementLMEQ : LendingEquityMarkedToMarketCashCollateralLMFI : LendingFixedIncomeMarkedToMarketCashCollateralLMRK : LendingUnspecifiedTypeOfMarkedToMarketCashCollateralLOAN : LoanLOAR : LoanRepaymentLOTT : LotteryPaymentLREB : LendingRebatePaymentsLREV : LendingRevenuePaymentsLSFL : LendingClaimPaymentLTCF : LongTermCareFacilityMAFC : MedicalAidFundContributionMARF : MedicalAidRefundMARG : DailyMarginOnListedDerivativesMBSB : MBSBrokerOwnedCashCollateralMBSC : MBSClientOwnedCashCollateralMCDM : MultiCurrenyChequeDomesticMCFG : MultiCurrenyChequeForeignMDCS : MedicalServicesMGCC : FuturesInitialMarginMGSC : FuturesInitialMarginClientOwnedSegregatedCashCollateralMOMA : MoneyMarketMP2B : MobileP2BPaymentMP2P : MobileP2PPaymentMSVC : MultipleServiceTypesMTUP : MobileTopUpNETT : NettingNITX : NetIncomeTaxNOWS : NotOtherwiseSpecifiedNWCH : NetworkChargeNWCM : NetworkCommunicationOCCC : ClientOwnedOCCPledgedCollateralOCDM : OrderChequeDomesticOCFG : OrderChequeForeignOFEE : OpeningFeeOPBC : OTCOptionBrokerOwnedCashCollateralOPCC : OTCOptionClientOwnedCashCollateralOPSB : OTCOptionBrokerOwnedSegregatedCashCollateralOPSC : OTCOptionClientOwnedCashSegregatedCashCollateralOPTN : FXOptionOTCD : OTCDerivativesOTHR : OtherOTLC : OtherTelecomRelatedBillPADD : PreauthorizedDebitPAYR : PayrollPCOM : PropertyCompletionPaymentPDEP : PropertyDepositPEFC : PensionFundContributionPENO : PaymentBasedOnEnforcementOrderPENS : PensionPaymentPHON : TelephoneBillPLDS : PropertyLoanDisbursementPLRF : PropertyLoanRefinancingPOPE : PointOfPurchaseEntryPPTI : PropertyInsurancePRCP : PricePaymentPRME : PreciousMetalPTSP : PaymentTermsPTXP : PropertyTaxRAPI : RapidPaymentInstructionRCKE : RepresentedCheckEntryRCPT : ReceiptPaymentRDTX : RoadTaxREBT : RebateREFU : RefundRELG : RentalLeaseGeneralRENT : RentREOD : AccountOverdraftRepaymentREPO : RepurchaseAgreementRETL : RetailPaymentRHBS : RehabilitationSupportRIMB : ReimbursementOfAPreviousErroneousTransactionRINP : RecurringInstallmentPaymentRLWY : RailwayROYA : RoyaltiesRPBC : BilateralRepoBrokerOwnedCollateralRPCC : RepoClientOwnedCollateralRPNT : BilateralRepoInternetNettingRPSB : BilateralRepoBrokerOwnedSegregatedCashCollateralRPSC : BilateralRepoClientOwnedSegregatedCashCollateralRRBN : RoundRobinRRCT : ReimbursementReceivedCreditTransferRRTP : RelatedRequestToPayRVPM : ReceiveAgainstPaymentRVPO : ReverseRepurchaseAgreementSALA : SalaryPaymentSASW : ATMSAVG : SavingsSBSC : SecuritiesBuySellSellBuyBackSCIE : SingleCurrencyIRSExoticSCIR : SingleCurrencyIRSSCRP : SecuritiesCrossProductsSCVE : PurchaseSaleOfServicesSECU : SecuritiesSEPI : SecuritiesPurchaseInhouseSERV : ServiceChargesSHBC : BrokerOwnedCollateralShortSaleSHCC : ClientOwnedCollateralShortSaleSHSL : ShortSellSLEB : SecuritiesLendingAndBorrowingSLOA : SecuredLoanSLPI : PaymentSlipInstructionSPLT : SplitPaymentsSPSP : SalaryPensionSumPaymentSSBE : SocialSecurityBenefitSTDY : StudySUBS : SubscriptionSUPP : SupplierPaymentSWBC : SwapBrokerOwnedCashCollateralSWCC : SwapClientOwnedCashCollateralSWFP : SwapContractFinalPaymentSWPP : SwapContractPartialPaymentSWPT : SwaptionSWRS : SwapContractResetPaymentSWSB : SwapsBrokerOwnedSegregatedCashCollateralSWSC : SwapsClientOwnedSegregatedCashCollateralSWUF : SwapContractUpfrontPaymentTAXR : TaxRefundTAXS : TaxPaymentTBAN : TBAPairOffNettingTBAS : ToBeAnnouncedTBBC : TBABrokerOwnedCashCollateralTBCC : TBAClientOwnedCashCollateralTBIL : TelecommunicationsBillTCSC : TownCouncilServiceChargesTELI : TelephoneInitiatedTransactionTLRF : NonUSMutualFundTrailerFeePaymentTLRR : NonUSMutualFundTrailerFeeRebatePaymentTMPG : TMPGClaimPaymentTPRI : TriPartyRepoInterestTPRP : TriPartyRepoNettingTRAD : CommercialTRCP : TreasuryCrossProductTREA : TreasuryPaymentTRFD : TrustFundTRNC : TruncatedPaymentSlipTRPT : RoadPricingTRVC : TravellerChequeUBIL : UtilitiesUNIT : UnitTrustPurchaseVATX : ValueAddedTaxPaymentVIEW : VisionCareWEBI : InternetInitiatedTransactionWHLD : WithHoldingWTER : WaterBill SDD purpose codes The categoryPurposeCode(1) and purposeCode(2) used in the SDDTransaction. SALA(1) (2)Salary PaymentTREA(1) (2)Treasury PaymentADVA(2)Advance PaymentAGRT(2)Agricultural TransferALMY(2)Alimony PaymentBECH(2)Child BenefitBENE(2)Unemployment Disability BenefitBONU(2)Bonus PaymentCASH(1) (2)Cash Management TransferCBFF(2)Capital BuildingCHAR(2)Charity PaymentCOLL(2)Collection PaymentCMDT(2)Commodity TransferCOMC(2)Commercial PaymentCOMM(2)CommissionCOST(2)CostsCPYR(2)CopyrightDIVI(1) (2)DividendFREX(2)Foreign ExchangeGDDS(2)Purchase Sale Of GoodsGOVT(1) (2)Gouvernment PaymentIHRP(2)Instalment Hire Purchase AgreementINTC(1) (2)Intra Company PaymentINSU(2)Insurance PremiumINTE(1) (2)InterestLIFC(2)Licence FeeLOAN(1) (2)LoanLOAR(2)Loan RepaymentNETT(2)NettingPAYR(2)Payment RollPENS(1) (2)PensionREFU (2)RefundRENT(2)RentROYA(2)RoyaltiesSCVE(2)Purchase Sale Of ServicesSECU(1) (2)SecuritiesSSBE(1) (2)Social Security BenefitSUBS(2)SubscriptionTAXS(1) (2)Tax PaymentCOMT(2)Consumer Third Party Consolidated PaymentDBTC(2)Debit Collection PaymentSUPP(1) (2)Supplier PaymentHEDG(1) (2)HedgingMSVC(2)Multiple Service TypesNOWS(2)Not Otherwise SpecifiedCARD(2)Card PaymentCDBL(2)Credit Card BillFERB(2)FerryAIRB(2)AirBUSB(2)BusRLWY(2)RailwayCVCF(2)Convalescent Care FacilityDNTS(2)Dental ServicesANTS(2)Anesthesia ServicesHLTC(2)Home Health CareHSPC(2)Hospital CareICRF(2)Intermediate Care FacilityLTCF(2)Long Term Care FacilityMDCS(2)Medical ServicesVIEW(2)Vision CareDMEQ(2)Durable Medicale EquipmentCBTV(2)Cable TV BillELEC(2)Electricity BillGASB(2)Gas BillPHON(2)Telephone BillOTLC(2)Other Telecom Related BillWTER(2)Water BillSTDY(2)StudyPRCP(2)Price PaymentINSM(2)InstallmentRINP(2)Recurring Installment PaymentOFEE(2)Opening FeeCFEE(2)Cancellation FeeGOVI(2)Government InsuranceINPC(2)Insurance Premium CarLBRI(2)Labor InsuranceLIFI(2)Life InsurancePPTI(2)Property InsuranceHLTI(2)Health InsuranceCLPR(2)Car Loan Principal RepaymentESTX(2)Estate TaxHLRP(2)Housing Loan RepaymentCSLP(2)Company Social Loan Payment To BankHSTX(2)Housing TaxINTX(2)Income TaxNITX(2)Net Income TaxNWCH(2)Network ChargeNWCM(2)Network CommunicationBEXP(2)Business ExpensesTRFD(2)Trust FundRCPT(2)ReceiptPTSP(2)Payment TermsOTHR(2)OtherWHLD(1)(2)With HoldingCORT(1)Trade Settlement PaymentVATX(1)Value Added Tax PaymentTRAD(1)Trade Error codes ErrorDetails ATTRIBUTESerrorCodeCode indicating the type of problem identified.errorComponentCode indicating the 3-D Secure component that identified the error.errorDescriptionText describing the problem identified.errorDetailAdditional detail regarding the problem identified. ErrorCode possible values101MESSAGE_RECEIVED_INVALID102MESSAGE_VERSION_NUMBER_NOT_SUPPORTED103SENT_MESSAGES_LIMIT_EXCEEDED201REQUIRED_ELEMENT_MISSING202CRITICAL_MESSAGE_EXTENSION_NOT_RECOGNIZED203FORMAT_ON_ONE_OR_MORE_ELEMENTS_INVALID_ACCORDING_SPECS204DUPLICATE_DATA_ELEMENT301TRANSACTION_ID_NOT_RECOGNIZED302DATA_DECRYPTION_FAILURE303ACCESS_DENIED_INVALID_ENDPOINT304ISO_CODE_NOT_VALID305TRANSACTION_DATA_NOT_VALID306MCC_NOT_VALID_FOR_PAYMENT_SYSTEM307SERIAL_NUMBER_NOT_VALID402TRANSACTION_TIMED_OUT403TRANSIENT_SYSTEM_FAILURE404PERMANENT_SYSTEM_FAILURE405SYSTEM_CONNECTION_FAILURE911DATA_FIELDS_RELEVANCE_CHECK_FAILURE912DUPLICATED_TRANSACTION_ID ErrorComponent possible values« C »THREE_DS_SDK« S »THREE_DS_SERVER« D »DIRECTORY_SERVER« A »ACCESS_CONTROL_SERVER Test values Test IBAN values Find below the list of HTTP return codes: DE91100000000123456789AXABFRPPAZ96AZEJ00000000001234567890AXABFRPPCY21002001950000357001234567AXABFRPPES7921000813610123456789AXABFRPPFR7630006000011234567890189AXABFRPPFO9264600123456789AXABFRPP Test cards Values You will find below a list of cards that you can use to test and check your integration. Visa Card numbers 4000 0000 0000 0051Card lost (41) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »4000 0000 0000 0069Fraud suspicion (59) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »4000 0000 0000 0077Insufficient funds (51) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »4000 0000 0000 0085To be refused (5) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »4556 5579 5572 6624Transaction successful (3DS) & Authentication = Y4916 9940 6425 2017Transaction successful (3DS) & Authentication = C4556 1041 6038 2032Transaction successful (NON 3DS) & Authentication = N4024 0071 7987 2394Transaction (NON 3DS) & Authentication = N4234 6319 8242 8908Transaction (3DS) & Authentication = I4234 6319 8242 8916Transaction successful (3DS) & Authentication = D : application flow4234 6319 8242 8924Transaction successful (3DS) & Authentication = D : browser flow4032 0389 8296 2700EEA=true ; region=EUROPE; productType=CONSUMER; cardType=DEBIT ;4032 0343 8883 4767EEA=true ; region=EUROPE; productType=CONSUMER; cardType=CREDIT ;4020 0280 0191 2012EEA=true ; region=EUROPE; productType=CONSUMER; cardType=UNKNOWN ;4032 0337 9569 2248EEA=true ; region=EUROPE; productType=CORPORATE; cardType=DEBIT ;4032 0368 1354 0364EEA=true ; region=EUROPE; productType=CORPORATE; cardType=CREDIT ;4032 0387 5662 0096EEA=true ; region=EUROPE; productType=CORPORATE; cardType=UNKNOWN ;4032 0358 5604 7592EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=DEBIT ;4032 0302 9068 3219EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=CREDIT ;4032 0377 5134 3001EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=UNKNOWN ;4032 0307 5488 6225EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=DEBIT ;4032 0310 2547 6341EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=CREDIT ;4032 0341 4311 3978EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=UNKNOWN ;4032 0309 5816 7398EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=DEBIT ;4032 0375 4480 7536EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=CREDIT ;4032 0366 9148 7225EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=UNKNOWN ;4032 0325 8917 3860EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=DEBIT ;4032 0388 0897 9557EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=CREDIT ;4032 0374 2147 1240EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=UNKNOWN ; Mastercard Card numbers 5333 2591 5564 3223Transaction successful (3DS) & Authentication = Y5306 8899 4283 3340Transaction successful (3DS) & Authentication = C5328 7203 8458 2224Transaction successful (NON 3DS) & Authentication = N5187 4346 4359 3002Transaction successful (NON 3DS) & Authentication = N5517 4500 0000 0168EEA=false ; region=US ; productType=CONSUMER ; cardType=CREDIT5223 8599 0000 0174EEA=false ; region=US ; productType=CORPORATE ; cardType=DEBIT5325 0900 0000 0115EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBIT5325 0900 0000 0008EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBIT5486 7467 7300 0005EEA=false ; region=EUROPE ; productType=CONSUMER ; cardType=DEBIT; Country=RUS5588 1000 0000 0007EEA=false ; region=CEMEA ; productType=CONSUMER ; cardType=DEBIT5122 9400 0000 0009EEA=false ; region=LATIN_AMERICA ; productType=CONSUMER ; cardType=DEBIT Amex Card numbers 3415 0209 8634 895Transaction successful (3DS) & Authentication = Y3486 3826 7931 507Transaction successful (3DS) & Authentication = C3456 9539 9207 589Transaction successful (NON 3DS) & Authentication = N3415 0209 8634 895EEA=false ; region=EUROPE ; productType=CONSUMER3486 3826 7931 507EEA=false ; region=EUROPE ; productType=CORPORATE3718 4294 2351 004EEA=false ; region=EUROPE ; productType=UNKNOWN3712 5311 3391 201EEA=false ; region=ASIA_PACIFIC ; productType=CONSUMER3423 1631 7472 410EEA=false ; region=ASIA_PACIFIC ; productType=CORPORATE3710 9829 7279 338EEA=false ; region=ASIA_PACIFIC ; productType=UNKNOWN CB Card numbers 4020 0235 6597 5380Transaction successful (NON 3DS), scheme : CB4020 0254 4041 8403Transaction successful (NON 3DS), scheme : CB_VISA5232 1035 2372 2651Transaction successful (NON 3DS), scheme : CB_MASTERCARD
The BANKACCOUNT object BANKACCOUNT_ACCEPTEDWhen a Bank account is accepted { "eventId": "e9229c2d-43f3-47aa-a2d4-09b2cd8afeef", "type": "BANKACCOUNT_ACCEPTED", "creationDate": "2024-01-05T12:44:06.262837+01:00", "object": { "attachments": [], "bankAccountId": "e6337e4f-6067-42ca-b7f0-9b7bce77c21e", "bic": "AXABFRPP", "creationDate": "2024-01-05T12:44:06.044772+01:00", "currency": "EUR", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "iban": "FR7612548029980000000150086", "name": "GAUTHIER REF API", "ownerAddress": "142 RUE DE LA REFAPI", "ownerCity": "TOURS", "ownerCountry": "FRA", "ownerName": "GAUTHIER REFAPI", "ownerPostalCode": "37000", "type": "CUSTOMER_ACCOUNT" }, "requestId": "0062091d-0377-4a47-bc95-b5717636825f" } BANKACCOUNT_PENDINGWhen a Bank account is pending { "eventId": "601c64e9-b65e-4369-8f70-5d32ce853073", "type": "BANKACCOUNT_PENDING", "creationDate": "2024-01-15T14:26:17.381461+01:00", "object": { "attachments": [], "bankAccountId": "2377f038-d798-42b2-ac46-113105166bd4", "bic": "AXABFRPP", "creationDate": "2024-01-15T14:26:17.189030+01:00", "currency": "EUR", "iban": "DE91100000000123456789", "merchantId": "e962cfc2-1d4f-4f4f-8688-71c38920ca6b", "name": "GAUTHIER REF API", "ownerAddress": "142 RUE DE LA REFAPI", "ownerCity": "TOURS", "ownerCountry": "FRA", "ownerName": "GAUTHIER REFAPI", "ownerPostalCode": "37000", "type": "MERCHANT_ACCOUNT" }, "requestId": "0965a4a6-e353-47ad-b844-40f7feca3ef0" } BANKACCOUNT_UPDATEDWhen a Bank account is updated { "name": "GAUTHIER REF API", "description": null, "ownerName": "GAUTHIER REFAPI", "ownerAddress": "142 RUE DE LA REFAPI", "ownerDescription": null, "ownerPostalCode": "37000", "ownerCity": "TOURS", "ownerCountry": "FRA", "iban": "FR7612548029980000000150086", "bic": "AXABFRPP", "currency": "EUR", "type": "CUSTOMER_ACCOUNT", "bankAccountId": "e6337e4f-6067-42ca-b7f0-9b7bce77c21e", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "merchantId": null, "creationDate": "2024-01-05T12:44:06.044772+01:00", "attachments": [] }
Logos CentralPay Logo CentralPay SVG Logo CentralPay blanc SVG Logo CentralPay PNG Logo CentralPay blanc PNG
Gestion des devises Dans le cadre d’une activité internationale, vos clients peuvent disposer d’une carte adossée à un compte bancaire en devises non Euros. Quelle que soit votre intégration, ces clients pourront vous régler en Euros grâce au système de conversion automatique des réseaux carte (Visa, Mastercard, American Express). Vos clients porteront l’ensemble des coûts de conversion des devises, et vous recevrez des Euros sur votre compte CentralPay. Dans certains cas, CentralPay peut vous permettre d’encaisser des transactions par carte bancaire dans différentes devises : Euros (EUR), Dollars (USD), Francs Suisses (CHF) et Livres (GBP). Contactez CentralPay si la gestion de transaction en devises est un enjeu pour votre activité. Notez que dans ce cas, les coûts d’acquisition en devises (hors EUROS) sont soumis à des frais complémentaires et seront déduits du montant de vos transactions. ℹ️ Les reversements (payout) par virement SEPA ne peuvent être réalisés que sur les valeurs disponibles en EUROS. Les valeurs hors EUROS sont reversées par virement SWIFT ayant des frais supérieurs. Il est cependant possible de programmer les reversements SWIFT afin qu'il ne soit réalisés qu'à partir d'un certain seuil, afin de mieux maitriser ses coûts de reversement.
The CARD object CARD_UPDATEDWhen a card is updated { "eventId": "5f037905-d0f2-4171-bc6f-fbab3b3e56e2", "type": "CARD_UPDATED", "creationDate": "2024-01-05T12:55:39.727533+01:00", "object": { "additionalData": {}, "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2", "cardType": "DEBIT", "cardholderEmail": "test@gmail.com", "cardholderName": "MARIE ANNE", "check": true, "commercialBrand": "MASTERCARD", "country": "FRA", "creationDate": "2024-01-05T12:52:41.054394+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f", "first6": "532509", "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5", "last4": "0008", "productType": "CORPORATE", "region": "EUROPE" }, "requestId": "296311d9-1f68-4f1f-a9bf-7879afb92c7b", "objectBeforeUpdate": { "additionalData": {}, "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2", "cardType": "DEBIT", "cardholderEmail": "gduhamel@centralpay.eu", "check": true, "commercialBrand": "MASTERCARD", "country": "FRA", "creationDate": "2024-01-05T12:52:41.054394+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f", "first6": "532509", "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5", "last4": "0008", "productType": "CORPORATE", "region": "EUROPE" } CARDTOKEN_CREATEDWhen a card token is created { "eventId": "3973ea45-d327-48d7-b74a-08cbffc821e9", "type": "CARDTOKEN_CREATED", "creationDate": "2024-01-05T14:23:41.971425+01:00", "object": { "card": { "additionalData": {}, "cardId": "81e54dd0-512e-47c0-91f3-54e81b74a3ea", "cardTokenId": "a3d37fd6-2ad7-4e9d-a4a0-b0b1aff44b50", "cardType": "DEBIT", "cardholderEmail": "Conner44@yahoo.com", "cardholderName": "GAUTHIER REFAPI", "check": true, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-05T14:23:41.881571+01:00", "europeanEconomicArea": true, "expirationMonth": 12, "expirationYear": 2025, "fingerprint": "edb9f9757c4be415db6616f94a04706a6b92dcd1", "first6": "403203", "last4": "2700", "productType": "CONSUMER", "region": "EUROPE" }, "cardTokenId": "a3d37fd6-2ad7-4e9d-a4a0-b0b1aff44b50", "creationDate": "2024-01-05T14:23:41.881571+01:00", "endUserIp": "54.86.50.139", "status": "UNUSED" }, "requestId": "f55ea9cb-595a-4e5d-b9ba-52198b5b3a16" }
Logos PaySecure 1. Logos Logo PaySecure classique PNG Logo PaySecure blanc PNG Logo PaySecure classique JPG 2. Visuels de réassurance (FR/EN) Réassurance – fond blanc Réassurance – fond transparent Réassurance – blanc Réassurance – fond blanc Réassurance – fond transparent Réassurance – blanc
Gestion des cartes virtuelles (VCC) 1. Fonctionnement Les grands OTA que sont Booking.com, Expedia.com, hotels.com ou Agoda.com peuvent collecter les règlements lors de la réservation. Dans ce cas, ils fournissent aux hôteliers, non pas les données de la carte du client, mais une alias, qui est une carte virtuelle ou VCC. Une carte virtuelle ou VCC est généralement émise pour un usage encadré afin de limiter les risques de compromission. Une carte virtuelle représente en quelque sorte l’alias d’une carte existante qui ne pourra être utilisé qu’à partir d’une certaine date et depuis un MCC défini. En l’occurrence, dans le secteur du tourisme, il est nécessaire d’avoir un contrat avec le MCC 7011 (HOTELS) pour pouvoir la débiter. Ainsi, dans le cas où le numéro de carte tombait entre les mains d’une personne mal intentionnée, elle ne pourrait pas déclencher de débit sur la carte source. Étant donné la nature spéciale des cartes issues par ces OTA, il est en général impossible de réaliser des demandes d’autorisation, de pré-autorisation ou de vérification au moment de la commande. Si la carte n’est débitable que le jour de la réservation par un MCC 7011 par exemple, l’émetteur, en général MASTERCARD B2B PRODUCT, renverra un code d’erreur pour transaction invalide (12). ➡️ Cartes virtuelles Booking.comBooking.com utilise des cartes virtuelles sur certaines destinations. En fonction du paramétrage réalisé sur le site de l’hôtel, une réservation pourra être réalisée avec ou sans prise d’empreinte carte. Si l’hôtelier a choisi de demander un moyen de paiement, alors Booking.com génèrera une carte virtuelle et l’adressera à l’hôtelier ou à son prestataire technique. Suite à la crise du Covid 19, Booking.com n'autorise plus les débits de ses VCC qu'un jour après le checkin du client.En savoir plus sur le fonctionnement des cartes virtuelles de Booking.com ➝ ➡️ Cartes virtuelles Expedia.comChez Expedia, il est possible de laisser le visiteur choisir entre la possibilité de payer à l’hôtel (Hotel Collect) ou de payer directement lorsqu’il réalise la réservation (Expedia Collect). Cette option est appelée Expedia Traveler Preference (ETP). Si un client utilise la méthode Expedia Collect, une carte virtuelle sera alors générée.En savoir plus sur le fonctionnement des cartes virtuelles d'expedia.com ➝ 2. Gestion des cartes virtuelles avec CentralPay La meilleure méthode pour stocker une VCC et de pouvoir l’utiliser une fois disponible est de créer un « Customer » et de lui associer la carte concernée. Deux options sont ouvertes : Soit la carte est débitable au moment de la création et une demande de vérification est réalisable à la création du Customer Soit la carte n’est pas utilisable à la création du customer et la carte doit être créé sans vérification. Cela ne signifie pas qu’elle ne pourra pas être utilisée à terme. Cela veut simplement dire qu’elle ne doit être débitée qu’à une certaine date. En général, les OTA auront préalablement vérifié les données de la carte pour s’assurer qu’elle était débitable Ainsi, créer un Customer dans l’API CentralPay permet de tokeniser la carte virtuelle, sécuriser son stockage et de faciliter son utilisation lorsque les conditions d’acceptation initiales auront été réunies.
The CREDIT object CREDIT_CREATEDWhen a credit is created { "eventId": "b0ea7273-7421-4f3d-b9b6-27c1f521386b", "type": "CREDIT_CREATED", "creationDate": "2024-01-05T14:51:48.090154+01:00", "object": { "additionalData": { "key1": "value1" }, "amount": 100, "card": { "additionalData": {}, "cardId": "5ba4a451-e3ba-4555-b6f1-955b1531cbed", "cardTokenId": "39e38277-d68d-4970-b7ef-2f3e65e3ba1c", "cardType": "DEBIT", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-05T14:51:46.753895+01:00", "europeanEconomicArea": true, "expirationMonth": 12, "expirationYear": 2026, "fingerprint": "31e7053d8ee3f13b4f391c989d83aaaa7771450d", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T14:51:47.744817+01:00", "creditId": "a0184f13-cb58-4db2-9c02-f7ecdaf61909", "currency": "EUR", "fee": 0, "merchantCreditId": "MCID-01", "movementId": "304a16a4-f3f1-4e14-ab3b-2e9b4cee2f20", "order": { "addressLine1": "142 RUE DE LA REFAPI", "cardCountry": "FRA", "city": "BRIANNEBURY", "country": "FRA", "firstName": "MANDATORY", "lastName": "MANDATORY" }, "payoutAmount": 100, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "status": "UNCLEARED", "transactionTransfers": [] }, "requestId": "d4cf4f9b-83bc-4877-8d2a-c84a7183c666" } CREDIT_CANCELEDWhen a credit is cancelled { "eventId": "df668650-b893-462e-aa1a-f232bed383da", "type": "CREDIT_CANCELED", "creationDate": "2024-01-05T14:53:29.028715+01:00", "object": { "additionalData": { "key1": "value1", "test": "test" }, "amount": 100, "cancelMovementId": "1555e13a-0344-403a-a01c-6d435c598659", "cancellationDate": "2024-01-05T14:53:29.015180+01:00", "card": { "additionalData": {}, "cardId": "5ba4a451-e3ba-4555-b6f1-955b1531cbed", "cardType": "DEBIT", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-05T14:51:46.753895+01:00", "europeanEconomicArea": true, "expirationMonth": 12, "expirationYear": 2026, "fingerprint": "31e7053d8ee3f13b4f391c989d83aaaa7771450d", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T14:51:47.744817+01:00", "creditId": "a0184f13-cb58-4db2-9c02-f7ecdaf61909", "currency": "EUR", "fee": 0, "merchantCreditId": "MCID-01", "movementId": "304a16a4-f3f1-4e14-ab3b-2e9b4cee2f20", "order": { "addressLine1": "142 RUE DE LA REFAPI", "cardCountry": "FRA", "city": "BRIANNEBURY", "country": "FRA", "firstName": "MANDATORY", "lastName": "MANDATORY" }, "payoutAmount": 100, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "status": "CANCELED", "transactionTransfers": [] }, "requestId": "dca78a74-22f1-4fd8-a6bb-fc4be4735838" } CREDIT_UPDATEDWhen a credit is updated { "eventId": "b51f11be-c535-49a4-8a70-6241afd75654", "type": "CREDIT_UPDATED", "creationDate": "2024-01-05T14:52:49.329773+01:00", "object": { "additionalData": { "key1": "value1", "test": "test" }, "amount": 100, "card": { "additionalData": {}, "cardId": "5ba4a451-e3ba-4555-b6f1-955b1531cbed", "cardType": "DEBIT", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-05T14:51:46.753895+01:00", "europeanEconomicArea": true, "expirationMonth": 12, "expirationYear": 2026, "fingerprint": "31e7053d8ee3f13b4f391c989d83aaaa7771450d", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T14:51:47.744817+01:00", "creditId": "a0184f13-cb58-4db2-9c02-f7ecdaf61909", "currency": "EUR", "fee": 0, "merchantCreditId": "MCID-01", "movementId": "304a16a4-f3f1-4e14-ab3b-2e9b4cee2f20", "order": { "addressLine1": "142 RUE DE LA REFAPI", "cardCountry": "FRA", "city": "BRIANNEBURY", "country": "FRA", "firstName": "MANDATORY", "lastName": "MANDATORY" }, "payoutAmount": 100, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "status": "UNCLEARED", "transactionTransfers": [] }, "requestId": "300fdb28-2e74-4512-a7e9-f3fa843c8a7c", "objectBeforeUpdate": { "additionalData": { "key1": "value1" }, "amount": 100, "card": { "additionalData": {}, "cardId": "5ba4a451-e3ba-4555-b6f1-955b1531cbed", "cardType": "DEBIT", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-05T14:51:46.753895+01:00", "europeanEconomicArea": true, "expirationMonth": 12, "expirationYear": 2026, "fingerprint": "31e7053d8ee3f13b4f391c989d83aaaa7771450d", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T14:51:47.744817+01:00", "creditId": "a0184f13-cb58-4db2-9c02-f7ecdaf61909", "currency": "EUR", "fee": 0, "merchantCreditId": "MCID-01", "movementId": "304a16a4-f3f1-4e14-ab3b-2e9b4cee2f20", "order": { "addressLine1": "142 RUE DE LA REFAPI", "cardCountry": "FRA", "city": "BRIANNEBURY", "country": "FRA", "firstName": "MANDATORY", "lastName": "MANDATORY" }, "payoutAmount": 100, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "status": "UNCLEARED", "transactionTransfers": [] } }
Visuels de réassurance (FR/EN) Intégrez un de ces visuels en dessous de votre formulaire de paiement CustomForm, ou simplement dans le footer de votre site afin de rassurer vos clients concernant la sécurité de leurs données de paiement. 1. Version française Réassurance 1 – classique Réassurance 1 – fond blanc Réassurance 1 – blanc Réassurance 2 – classique Réassurance 2 – fond blanc Réassurance 2 – blanc Réassurance 3 – classique Réassurance 3 – fond blanc Réassurance 3 – blanc Réassurance 4 – Avec Amex Réassurance 4 – Amex fond blanc Réassurance 4 – Amex blanc Réassurance 5 – Avec Amex Réassurance 5 – Amex fond blanc Réassurance 5 – Amex blanc Réassurance 6 – Avec Amex Réassurance 6 – Amex fond blanc Réassurance 6 – Amex blanc 2. Version anglaise Réassurance 1 – classique Réassurance 1 – fond blanc Réassurance 1 – blanc Réassurance 2 – classique Réassurance 2 – fond blanc Réassurance 2 – blanc Réassurance 3 – classique Réassurance 3 – fond blanc Réassurance 3 – blanc Réassurance 4 – Avec Amex Réassurance 4 – Amex fond blanc Réassurance 4 – Amex blanc Réassurance 5 – Avec Amex Réassurance 5 – Amex fond blanc Réassurance 5 – Amex blanc Réassurance 6 – Avec Amex Réassurance 6 – Amex fond blanc Réassurance 6 – Amex blanc
Retours, statuts et hooks 1. Codes de retour banque liés aux transactions carte Lorsqu’une transaction carte (objet « Transaction ») est initiée, une demande d’autorisation est soumise à la banque émettrice de la carte. Cette dernière répond avec un code, permettant d’interpréter l’acceptation, le refus et la cause du refus de l’autorisation. La banque du titulaire de la carte (appelée également « banque émettrice ») exprime son refus en fonction de choix qui lui sont propres et totalement indépendants de CentralPay. CentralPay n’est en possession d’aucune information complémentaire si une carte est refusée et n’a aucun moyen d’en obtenir. Les principaux codes de retour banque : CodeDescriptionA1 – Repli VADSDSP2 et Soft declineLa banque refuse la transaction, car elle ne possède pas d’authentification forte (3DS 2.0).Il est nécessaire de repasser cette transaction en 3DS afin de ne plus avoir ce code.57, 3 et 5Refus générique de la banqueLa banque refuse sans donner de statut particulier.Cela peut être un code CVV erroné ou une autre décision que nous ne connaissons pas.Ce statut ne permet pas d’affirmer que la banque n’acceptera pas l’autorisation après d’autres tentatives.4, 7, 14, 15, 31, 33, 34, 41, 43, 54, 55, 56, 59, 63, 76Suspicion de fraude ou vol de la carteLa banque émettrice estime que son client n’est plus en possession de la carte et qu’il s’agit d’une usurpation.51, 61Provisions insuffisantes / plafond atteintLa carte a dépassé le montant du plafond autorisé ou ne dispose pas des fonds suffisants.La carte peut de nouveau être acceptée ultérieurement, les plafonds étant calculés sur 7 jours glissant, une transaction peut tout à fait être retentée le lendemain.12Transaction invalideLa banque refuse sans donner de statut particulier. Cela peut être :– Simplement une transaction invalide– Un code 75 de la part de la banque émettrice (le code PIN de la carte a été trop de fois incorrect).– Un CVV erroné (fournit par l’ACS lors d’une authentification 3DS)– Ou une autre décision que nous ne connaissons pas. Consultez la liste complète des codes de retour banque ➝ 2. Statuts liés aux transactions carte Consultez les Statuts Transaction ➝ Consultez les Statuts Refund ➝ Consultez les Statuts Credit ➝ Consultez les Statuts Disputes ➝ Consultez les Statuts Subscription ➝ Consultez les Statuts Installement ➝ 3. Webhooks liés aux transactions carte Consultez les Webhooks Transaction ➝ Consultez les Webhooks Card ➝ Consultez les Webhooks Refund ➝ Consultez les Webhooks Credit ➝ Consultez les Webhooks Customer ➝ Consultez les Webhooks Dispute ➝ Consultez les Webhooks Subscription ➝ Consultez les Statuts Installement ➝
The CUSTOMER object CUSTOMER_CREATEDWhen a customer is created { "eventId": "8af1b16e-f78a-42ae-9304-69624a4023fc", "type": "CUSTOMER_CREATED", "creationDate": "2024-01-05T12:29:58.808367+01:00", "object": { "additionalData": {}, "bankAccounts": [], "cardMerchants": [], "cards": [], "creationDate": "2024-01-05T12:29:58.736339+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "email": "gduhamel@centralpay.eu", "fee": 0, "firstName": "JOCELYN", "installmentPayments": [], "language": "fre", "lastName": "WISOKY", "merchantCustomerId": "1704454198-GDU", "movementId": "c5408b8a-43d0-4191-9cb2-f3ec6d610649", "otpExpired": false, "subscriptions": [], "totalCharge": 0, "wallets": [] } CUSTOMER_UPDATEDWhen a customer is updated { "eventId": "94683d87-5919-4d4a-a547-21dbc7e7af1d", "type": "CUSTOMER_UPDATED", "creationDate": "2024-01-05T12:36:29.492916+01:00", "object": { "additionalData": {}, "bankAccounts": [], "cardMerchants": [], "cards": [], "creationDate": "2024-01-05T12:29:58.736339+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "email": "gduhamel@centralpay.eu", "fee": 0, "firstName": "JOCELYN", "installmentPayments": [], "language": "fre", "lastName": "WISOKY", "merchantCustomerId": "1704454198-GDU", "movementId": "c5408b8a-43d0-4191-9cb2-f3ec6d610649", "otpExpired": false, "subscriptions": [], "totalCharge": 0, "wallets": [] }, "requestId": "ca336699-db00-46c6-a797-228c320e351b", "objectBeforeUpdate": { "additionalData": {}, "bankAccounts": [], "cardMerchants": [], "cards": [], "creationDate": "2024-01-05T12:29:58.736339+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "email": "gduhamel@centralpay.eu", "fee": 0, "firstName": "JOCELYN", "installmentPayments": [], "language": "fre", "lastName": "WISOKY", "merchantCustomerId": "1704454198-GDU", "movementId": "c5408b8a-43d0-4191-9cb2-f3ec6d610649", "otpExpired": false, "subscriptions": [], "totalCharge": 0, "wallets": [] }} CUSTOMER_OTPWhen a Customer OTP is received to confirm a transaction { "eventId": "7404acb7-6000-4059-9da2-97581df00dc8", "type": "CUSTOMER_OTP", "creationDate": "2024-01-26T12:02:55.839650+01:00", "object": { "additionalData": {}, "bankAccounts": [], "cardMerchants": [], "cards": [ { "additionalData": {}, "cardId": "a361cbf0-c334-4422-b4e8-4d96f6b72799", "cardType": "DEBIT", "cardholderEmail": "gduhamel@centralpay.eu", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-26T11:59:38.763535+01:00", "customerId": "bac11130-43c2-4351-9c52-f1f7603282ee", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "8e9302793aa37b661f9ec57013d105ad72f1bc86", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" } ], "creationDate": "2024-01-26T11:59:38.569182+01:00", "customerId": "bac11130-43c2-4351-9c52-f1f7603282ee", "email": "gduhamel@centralpay.eu", "fee": 0, "firstName": "BEULAH", "installmentPayments": [], "language": "fre", "lastName": "PROSACCO", "merchantCustomerId": "1706266777-GDU", "movementId": "9afa479b-0859-4712-a614-2b1f38b81f9c", "otpExpirationDate": "2024-01-26T12:17:55.731546+01:00", "otpExpired": false, "subscriptions": [], "totalCharge": 0, "wallets": [] }, "requestId": "5329117d-5f7f-471b-a8d7-832627252670", "objectBeforeUpdate": { "additionalData": {}, "bankAccounts": [], "cardMerchants": [], "cards": [ { "additionalData": {}, "cardId": "a361cbf0-c334-4422-b4e8-4d96f6b72799", "cardType": "DEBIT", "cardholderEmail": "gduhamel@centralpay.eu", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-26T11:59:38.763535+01:00", "customerId": "bac11130-43c2-4351-9c52-f1f7603282ee", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "8e9302793aa37b661f9ec57013d105ad72f1bc86", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" } ], "creationDate": "2024-01-26T11:59:38.569182+01:00", "customerId": "bac11130-43c2-4351-9c52-f1f7603282ee", "email": "gduhamel@centralpay.eu", "fee": 0, "firstName": "BEULAH", "installmentPayments": [], "language": "fre", "lastName": "PROSACCO", "merchantCustomerId": "1706266777-GDU", "movementId": "9afa479b-0859-4712-a614-2b1f38b81f9c", "otpExpired": false, "subscriptions": [], "totalCharge": 0, "wallets": [] } }
Informations générales 1. Fonctionnement Le virement bancaire est le moyen de paiement le plus répandu pour les règlements d’entreprises. Il consiste en un transfert direct des fonds d’un compte (bancaire ou de paiement) à un autre, sans utiliser de support additionnel comme une carte par exemple. La personne physique ou morale qui demande l’émission du virement est dénommée le donneur d’ordre (ou l’émetteur), celle qui reçoit l’argent le bénéficiaire. Contrairement à un paiement par carte ou par prélèvement SEPA, seul l’émetteur lui-même peut initier un virement. Il se rend ainsi sur l’espace personnel de sa banque, déclare les coordonnées bancaires du bénéficiaire (IBAN + BIC + Nom de titulaire), puis renseigne un montant et une référence de virement. Quelques informations importantes : Le délai de réception d’un virement classique chez CentralPay est de 4 à 24 heures ouvrées (contre 24 à 48 heures ouvrées chez la majorité des banques traditionnelles). Il sera également possible de recevoir des virements instantanés (réception <5 secondes) à partir d’octobre 2024 Le virement ne présente pas de risque financier majeur pour le marchand bénéficiaire, car l’émetteur s’authentifie fortement auprès de sa banque et ne peut donc pas contester cette opération Les banques émettrices accordent un plafond de règlement par virement nettement plus élevé que celui appliqué aux opérations de prélèvement SEPA ou de règlement par carte Selon les fonctionnalités proposées par sa banque, l’émetteur peut programmer un virement récurrent ou à date différée 2. Types de réseaux acceptés Il existe deux types de virements bancaires : Les virements SEPA (ou SEPA Credit Transfer) : Utilisés pour les opérations en EUROS réalisées entre deux pays membres de la zone SEPA (= 27 pays de l’Union européenne + Royaume-Uni, Monaco, Andorre, Vatican, Suisse, Liechtenstein, Norvège, Islande et Saint-Marin) Les virements internationaux : Utilisés pour les opérations internationales en EUROS ou en devises, via le réseau SWIFT Les frais applicables aux réseaux SEPA sont très largement favorables (à peine quelques dizaines de centimes contre plusieurs dizaines d’euros pour SWIFT). SWIFT permet cependant plusieurs options liées au règlement de ses frais : à la charge de l’émetteur, du bénéficiaire ou partagés. CentralPay est atteignable par toutes les banques de l’Espace Économique Européen utilisant les réseaux SEPA (via STEP2 pour les SCT/SDD, ainsi que TIPS et RT1 pour les « Instant SCT »). Seuls les virements de réseaux internationaux ou en devises hors EUROS ne sont pas recevables pour le moment (via réseau SWIFT par exemple).
The DEPOSIT object DEPOSIT_CREATEDWhen a deposit is created { "depositId": "f63ea558-6e50-4dba-a7e7-eb8676144ea0", "creationDate": "2020-11-16T10:55:11.163214+01:00", "description": null, "amount": 1500000, "currency": "EUR", "sepaReference": null, "movementId": "9612fe9b-e226-4e9f-a0dc-8539a24ba748", "merchantId": "0055bff7-566c-4688-818c-85caf3601785", "destinationBankAccountId": "d9952704-5054-47fc-a068-c6865a9d00fd" } DEPOSIT_UPDATEDWhen a deposit is updated
IBAN Virtuels Le paiement par virement bancaire impose une responsabilité au client émetteur : celle de renseigner les coordonnées bancaires (IBAN + BIC + Nom du titulaire), le montant du règlement mais aussi la référence de virement. Une absence ou un mauvais formatage de la référence (causé par le client ou par le système de sa banque) contraint le bénéficiaire d’analyser manuellement le virement reçu pour le rapprocher à la bonne facture et au bon poste client. CentralPay vous permet de présenter un IBAN virtuel différent à chacun de vos clients (Customer) ou dans chacune de vos factures (PaymentRequest). Ainsi lors de la réception d’un virement, CentralPay identifie automatiquement l’émetteur et peut rapprocher la facture pour vous, selon l’IBAN virtuel utilisé par votre client, même en cas d’erreur de référence. Un IBAN Virtuel est en tous points identique à un IBAN classique, ce qui rend le processus entièrement transparent pour vos clients. Ce service vous permettra notamment : D’être informé instantanément quand un client vous a réglé par virement D’automatiser vos alertes internes et vos relances clients (via le service de notifications) D’automatiser le rapprochement de vos paiements dans vos solutions comptables ou de facturations (ERP…) Pour les plateformes et marketplaces : d’identifier facilement le marchand bénéficiaire et de lui transférer les fonds Vous pourrez créer des IBAN Virtuels CentralPay depuis différents services de la plateforme : Depuis le service Customer Depuis le service SCT Transaction Depuis le service PaymentRequest Chaque compte de paiement ou de monnaie électronique dispose nativement d'un IBAN Virtuel dédié 1. Consulter l’IBAN Virtuel de ses comptes Vous pouvez retrouver l’IBAN Virtuel de vos comptes depuis le Portail utilisateur Administration Comptes IBAN/BIC : Il est également possible d’interroger l’API CentralPay avec le endpoint /bankAccount Accès : Portail Utilisateur de RCT – Comptes Portail Utilisateur de PROD – Comptes 2. Créer un IBAN Virtuel dédié à un Customer Vous pouvez créer un IBAN Virtuel dédié à un client lors de la création d’un nouveau Customer, ou via l’update d’un Customer existant. Pour cela, vous devez renseigner le champ « walletIdForIban » avec l’UUID du compte de paiement sur lequel vous souhaitez recevoir les fonds. Vous pouvez retrouver ce dernier depuis le Portail utilisateur Administration Comptes UUID : Accès : Portail Utilisateur de RCT – Comptes Portail Utilisateur de PROD – Comptes En retour, vous recevrez dans le champ « bankAccounts » les valeurs « iban » et « bic » constituant l’IBAN Virtuel de votre Customer. ℹ️ Le BIC des IBAN émis par CentralPay est CEAYFR22 3. Création d’un IBAN Virtuel dédié à une SCT Transaction Comme pour un Customer, vous pouvez créer un IBAN Virtuel dédié à une transaction par virement lors de la création d’une SCT Transaction. ℹ️ Pour rappel, une SCT Transaction est créée automatiquement par CentralPay lorsque vous recevez un virement sur votre IBAN Virtuel principal ou celui d'un Customer. Il est cependant possible de créer une SCT Transaction en amont afin de lui affecter un IBAN Virtuel dédié et une référence personnalisée par exemple. Pour cela, vous devez renseigner le champ « ibanWalletId » avec l’UUID du compte de paiement sur lequel vous souhaitez recevoir les fonds. Vous pouvez retrouver ce dernier depuis le Portail utilisateur Administration Comptes UUID : Accès : Portail Utilisateur de RCT – Comptes Portail Utilisateur de PROD – Comptes En retour, vous recevrez dans le champ « bankAccounts » les valeurs « iban » et « bic » constituant l’IBAN Virtuel de votre SCT Transaction. ℹ️ Un IBAN Virtuel dédié à une SCT Transaction n'est plus fonctionnel une fois que sa SCT Transaction a été entièrement réglée. Il est cependant possible de recevoir plusieurs virements d'un montant inférieur sur un même IBAN pour compléter le montant de la SCT Transaction.À noter que si un virement reçu dépasse le montant de la SCT Transaction, il sera tout de même accepté. Vous devrez réaliser un remboursement partiel pour reverser le trop perçu à votre client. 4. Utilisation des IBAN Virtuels depuis les demandes de paiement Il est possible d’utiliser des IBAN Virtuels Customer ou SCT Transaction depuis le service de demande de paiement, si vous acceptez le moyen de paiement « SCT Transaction ». Vous pouvez sélectionner le type d’IBAN Virtuel que vous souhaitez afficher dans vos demandes de paiement depuis le champ « Viban prioritaire » des paramétrages de votre point de vente. Si vous sélectionnez : SCT : La demande de paiement créera systématiquement un IBAN Virtuel dédié à la SCT Transaction Client : La demande de paiement utilisera l’IBAN Virtuel du Customer s’il en dispose déjà d’un, sinon elle en créera un automatiquement ℹ️ Dans le cas d'une demande de paiement avec vIBAN à la SCT Transaction uniquement : Si vous annulez la demande de paiement, le vIBAN associé ne sera plus atteignable. Ainsi, chaque virement reçu sur ce vIBAN sera automatiquement renvoyé à son émetteur.
The DISPUTE object DISPUTE_UPDATEDWhen a dispute is updated { "eventId": "91986115-56ed-442a-ace7-2207c7f7cfa1", "type": "DISPUTE_UPDATED", "creationDate": "2024-01-05T15:22:33.233092+01:00", "object": { "additionalData": {}, "amount": 10, "creationDate": "2024-01-05T15:16:27.776882+01:00", "currency": "EUR", "description": "ma description", "disputeDate": "2021-03-18", "disputeId": "896304e9-b937-443a-ba59-3ccc99931b00", "fee": 0, "movementId": "09e2b390-a5a6-4926-a5ad-41c96bd38cea", "reason": "FRAUDULENT", "status": "CHARGEBACK_WON", "transactionId": "8940d775-cb9c-46e4-ab5a-c5c3ea7c3116", "wonMovementId": "569d7143-7357-4171-91ac-c03721a8ee30" }, "requestId": "750fdf73-0782-482b-97f6-2dbfb809b563", "objectBeforeUpdate": { "additionalData": {}, "amount": 10, "creationDate": "2024-01-05T15:16:27.776882+01:00", "currency": "EUR", "disputeDate": "2021-03-18", "disputeId": "896304e9-b937-443a-ba59-3ccc99931b00", "fee": 0, "movementId": "09e2b390-a5a6-4926-a5ad-41c96bd38cea", "reason": "FRAUDULENT", "status": "CHARGEBACK_NOTICED", "transactionId": "8940d775-cb9c-46e4-ab5a-c5c3ea7c3116" } } DISPUTE_CREATEDWhen a dispute is created
Transaction par virement 1. Fonctionnement Une SCT Transaction représente un virement bancaire reçu sur un de vos IBAN Virtuel CentralPay. Elle peut être créée de trois manières différentes : AutomatiquementSi vous adressez un IBAN Virtuel dédié à l’un de vos clients ou l’un de vos comptes de paiement, CentralPay créera la SCT Transaction automatiquement lors de la réception du virement. Vous pourrez ensuite rapprocher cette SCT Transaction à votre commande/facture en récupérant la valeur du champ « description » (correspondant à la référence renseignée par votre client dans son espace bancaire) Depuis le service SCT TransactionSi vous souhaitez automatiser le rapprochement du virement à la transaction, vous pouvez : Créer une SCT Transaction avec un IBAN Virtuel dédié : ce qui permettra un rapprochement sûr à 100% à votre transaction. Attention, dans ce cas vos clients devront déclarer un nouveau bénéficiaire dans leur espace bancaire à chaque virement qu’ils vous adresseront Créer une SCT Transaction en utilisant un IBAN Virtuel Customer et récupérer la référence courte générée par CentralPay pour cette transaction : ce qui permettra de rapprocher systématiquement le virement au profil client correspondant, et potentiellement jusqu’à la transaction si votre client a bien renseigné la référence dans son virement Depuis le service de demande de paiementSi vous souhaitez déléguer à CentralPay l’affichage des informations de règlement à vos clients (montant, IBAN, BIC, référence…), vous pouvez créer une Demande de paiement autorisant les paiements par SCT Transaction. Cette option permet également de gérer facilement les virements multiples ou les règlements clients depuis plusieurs moyens de paiement 2. Créer une SCT transaction Créer une SCT Transaction : Renseignez un montant en centimes (amount), et une devise (currency) Si vous souhaitez créer un IBAN Virtuel dédié à la SCT Transaction, renseignez le champ « ibanWalletId » avec l’UUID de votre compte de paiement sur lequel vous souhaitez recevoir les fonds. Vous pouvez retrouver ce dernier depuis le Portail utilisateur Administration Comptes UUID Si vous souhaitez utiliser un IBAN Virtuel existant (dédié à un Customer ou à un compte de paiement), renseignez le champ « iban » avec l’IBAN souhaité Vous pourrez ensuite récupérer la valeur « sepaReference » générée par CentralPay et la transmettre à votre client pour laisser CentralPay rapprocher le virement à votre transaction Ou renseigner la valeur « merchantSctTransactionId » avec votre propre référence personnalisée pour rapprocher vous-même le virement via nos exports d’opérations
The INSTALLMENT object INSTALLMENTPAYMENT_CREATEDWhen an installment is created { "eventId": "ab0c4d87-336d-4f1d-94ac-8a19e91c90df", "type": "INSTALLMENTPAYMENT_CREATED", "creationDate": "2024-01-05T16:47:16.962837+01:00", "object": { "additionalData": { "Key1": "val1" }, "amount": 1000, "card": { "commercialBrand": "MASTERCARD", "first6": "532509", "last4": "0008", "uuid": "4680d102-96b0-4fba-b00c-3375ee610fc7" }, "cardId": "4680d102-96b0-4fba-b00c-3375ee610fc7", "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T16:47:14.425730+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "depositAmount": 0, "endUserIp": "245.100.1.15", "feeAmount": 0, "installmentPaymentId": "1da9892e-d71c-40a9-8637-c259d3076582", "installments": [ { "amount": 500, "attemptCount": 1, "creationDate": "2024-01-05T16:47:14.425041+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "d70bceea-1b4b-454f-ae04-3cfa5e877e01", "installmentPaymentId": "1da9892e-d71c-40a9-8637-c259d3076582", "paid": true, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-05T16:47:15.250593+01:00", "uuid": "8b1b6eb7-c492-4a3f-913e-46c84836b50d" } ], "transactions": [ "8b1b6eb7-c492-4a3f-913e-46c84836b50d" ], "type": "INSTALLMENT" }, { "amount": 500, "attemptCount": 0, "creationDate": "2024-01-05T16:47:14.425434+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "8a2fea18-7ce7-4320-a398-3aec7c7cd7e9", "installmentPaymentId": "1da9892e-d71c-40a9-8637-c259d3076582", "nextTransactionAttempt": "2024-02-05T04:00+01:00", "paid": false, "sddTransactions": [], "transactions": [], "type": "INSTALLMENT" } ], "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "merchantInstallmentPaymentId": "MIP_001", "pointOfSale": { "name": "Corben Dallas", "uuid": "7d99a970-cc26-4de8-aa5d-d9ebf4088247" }, "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "startingDate": "2024-01-05", "status": "ACTIVE" }, "requestId": "66ec59e5-3f88-4cbd-a01f-b6be126084bf" } INSTALLMENTPAYMENT_FAILEDWhen an installment failed { "eventId": "4e1bbe68-906d-4e33-923d-dfee760a2261", "type": "INSTALLMENTPAYMENT_FAILED", "creationDate": "2024-01-05T16:34:31.349325+01:00", "object": { "additionalData": { "Key1": "val1" }, "amount": 1000, "card": { "commercialBrand": "MASTERCARD", "first6": "532509", "last4": "0008", "uuid": "4680d102-96b0-4fba-b00c-3375ee610fc7" }, "cardId": "4680d102-96b0-4fba-b00c-3375ee610fc7", "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T16:34:29.520817+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "depositAmount": 0, "endUserIp": "245.100.1.15", "feeAmount": 0, "installmentPaymentId": "0453a075-211f-4d0a-8947-e05cd6bd33fc", "installments": [ { "amount": 500, "attemptCount": 1, "creationDate": "2024-01-05T16:34:29.520151+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "6fe13fbd-10d6-406d-93af-31f5d682db99", "installmentPaymentId": "0453a075-211f-4d0a-8947-e05cd6bd33fc", "paid": false, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-05T16:34:30.385545+01:00", "uuid": "f061fa00-8494-4eca-b9d1-f54d36125d7d" } ], "transactions": [ "f061fa00-8494-4eca-b9d1-f54d36125d7d" ], "type": "INSTALLMENT" }, { "amount": 500, "attemptCount": 0, "creationDate": "2024-01-05T16:34:29.520525+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "9d1fdd64-a45c-4f30-afb2-36734fdfbf39", "installmentPaymentId": "0453a075-211f-4d0a-8947-e05cd6bd33fc", "paid": false, "sddTransactions": [], "transactions": [], "type": "INSTALLMENT" } ], "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "merchantInstallmentPaymentId": "MIP_001", "pointOfSale": { "name": "Corben Dallas", "uuid": "7d99a970-cc26-4de8-aa5d-d9ebf4088247" }, "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "startingDate": "2024-01-05", "status": "CANCELED" }, "requestId": "60a91f69-2549-4652-96ee-25fb58f48f56" } INSTALLMENTPAYMENT_UPDATEDWhen an installment is updated { "installmentPaymentId": "2351a31a-3c84-4681-8a83-cd5f260d78ab", "creationDate": "2021-09-09T09:49:00.941254+02:00", "pointOfSaleId": "cfc0b3c7-e666-4c52-b77a-96f234b873fe", "contractId": "71602dd0-2790-4743-877b-e72530d7576d", "customerId": "3036e768-071e-4119-abd8-57d50581c371", "cardId": "06a45250-8e22-41aa-a97a-284c225419a5", "paymentRequestBreakdownId": "6e5ba89d-d275-4174-8cfd-9418dc6bd303", "paymentRequestId": "c796df20-258e-4645-90d8-aad70349c547", "mandateId": "f65ea8ce-5171-4c1e-8b8f-69654e0acf4e", "depositStartingDate": null, "startingDate": "2021-09-09", "requestedCollectionDate": null, "merchantInstallmentPaymentId": null, "endUserIp": "92.154.127.221", "endUserLanguage": null, "amount": 300, "depositAmount": 0, "feeAmount": 0, "currency": "EUR", "description": null, "intervalUnit": "WEEK", "intervalCount": 1, "iterationCount": 3, "status": "ACTIVE", "endToEndIdentification": null, "remittanceInformation": "BCDEB2DEEB6E", "installments": [ { "installmentId": "ee6f170c-710a-4a9d-a79f-c163de336530", "creationDate": "2021-09-09T09:49:00.940625+02:00", "installmentPaymentId": "2351a31a-3c84-4681-8a83-cd5f260d78ab", "customerId": "3036e768-071e-4119-abd8-57d50581c371", "mandateId": "f65ea8ce-5171-4c1e-8b8f-69654e0acf4e", "amount": 100, "currency": "EUR", "attemptCount": 1, "paid": true, "type": "INSTALLMENT", "nextTransactionAttempt": null, "transactions": [], "sddTransactions": [ "116adfc1-7996-4bd7-9678-d4a2b1a77762" ] }, { "installmentId": "26d5e572-4740-4c30-bbb8-5d2251e13e1d", "creationDate": "2021-09-09T09:49:00.941206+02:00", "installmentPaymentId": "2351a31a-3c84-4681-8a83-cd5f260d78ab", "customerId": "3036e768-071e-4119-abd8-57d50581c371", "mandateId": "f65ea8ce-5171-4c1e-8b8f-69654e0acf4e", "amount": 100, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-09-16T08:00+02:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "afe58afd-712d-415f-adf5-70e980c73b57", "creationDate": "2021-09-09T09:49:00.941224+02:00", "installmentPaymentId": "2351a31a-3c84-4681-8a83-cd5f260d78ab", "customerId": "3036e768-071e-4119-abd8-57d50581c371", "mandateId": "f65ea8ce-5171-4c1e-8b8f-69654e0acf4e", "amount": 100, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-09-23T08:00+02:00", "transactions": [], "sddTransactions": [] } ], "additionalData": [] } INSTALLMENTPAYMENT_CANCELEDWhen an installment is cancelled { "eventId": "47253f14-814e-4cf8-9582-be869145a80f", "type": "INSTALLMENTPAYMENT_CANCELED", "creationDate": "2024-01-05T16:34:31.276257+01:00", "object": { "additionalData": { "Key1": "val1" }, "amount": 1000, "card": { "commercialBrand": "MASTERCARD", "first6": "532509", "last4": "0008", "uuid": "4680d102-96b0-4fba-b00c-3375ee610fc7" }, "cardId": "4680d102-96b0-4fba-b00c-3375ee610fc7", "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T16:34:29.520817+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "depositAmount": 0, "endUserIp": "245.100.1.15", "feeAmount": 0, "installmentPaymentId": "0453a075-211f-4d0a-8947-e05cd6bd33fc", "installments": [ { "amount": 500, "attemptCount": 1, "creationDate": "2024-01-05T16:34:29.520151+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "6fe13fbd-10d6-406d-93af-31f5d682db99", "installmentPaymentId": "0453a075-211f-4d0a-8947-e05cd6bd33fc", "paid": false, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-05T16:34:30.385545+01:00", "uuid": "f061fa00-8494-4eca-b9d1-f54d36125d7d" } ], "transactions": [ "f061fa00-8494-4eca-b9d1-f54d36125d7d" ], "type": "INSTALLMENT" }, { "amount": 500, "attemptCount": 0, "creationDate": "2024-01-05T16:34:29.520525+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "9d1fdd64-a45c-4f30-afb2-36734fdfbf39", "installmentPaymentId": "0453a075-211f-4d0a-8947-e05cd6bd33fc", "paid": false, "sddTransactions": [], "transactions": [], "type": "INSTALLMENT" } ], "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "merchantInstallmentPaymentId": "MIP_001", "pointOfSale": { "name": "Corben Dallas", "uuid": "7d99a970-cc26-4de8-aa5d-d9ebf4088247" }, "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "startingDate": "2024-01-05", "status": "CANCELED" }, "requestId": "1bac71b6-6d40-4618-b772-95c926cbeab2" } INSTALLMENTPAYMENT_ACTIVATEDWhen an installment is activated INSTALLMENTPAYMENT_FAILUREWhen an installment failed to be paid INSTALLMENTPAYMENT_PAIDWhen an installment is paid { "eventId": "17198557-e18a-4e75-a88f-d23ea841a641", "type": "INSTALLMENTPAYMENT_PAID", "creationDate": "2024-01-30T12:19:22.324713+01:00", "object": { "additionalData": {}, "amount": 100000, "card": { "commercialBrand": "VISA", "first6": "403203", "last4": "2700", "uuid": "7af37b48-4c0a-4e5d-81ec-0ecd6758ee82" }, "cardId": "7af37b48-4c0a-4e5d-81ec-0ecd6758ee82", "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-15T12:40:35.818249+01:00", "currency": "EUR", "customerId": "1d281559-80b2-45c0-9930-6fb94651d6b7", "depositAmount": 0, "endUserIp": "91.229.230.41", "endUserLanguage": "eng", "feeAmount": 0, "installmentPaymentId": "78e28b54-708c-45a7-a6ef-d3c1672ffe49", "installments": [ { "amount": 50000, "attemptCount": 1, "creationDate": "2024-01-15T12:40:35.818185+01:00", "currency": "EUR", "customerId": "1d281559-80b2-45c0-9930-6fb94651d6b7", "installmentId": "c3c2eb3c-9935-4eb1-a9bd-42f62f1c035c", "installmentPaymentId": "78e28b54-708c-45a7-a6ef-d3c1672ffe49", "paid": true, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-15T12:40:36.418127+01:00", "uuid": "7f642ab2-5c15-4420-b85a-a97cb819844d" } ], "transactions": [ "7f642ab2-5c15-4420-b85a-a97cb819844d" ], "type": "INSTALLMENT" }, { "amount": 50000, "attemptCount": 1, "creationDate": "2024-01-15T12:40:35.818207+01:00", "currency": "EUR", "customerId": "1d281559-80b2-45c0-9930-6fb94651d6b7", "installmentId": "6eaf48a5-d0df-40d2-bd62-a297444d37d2", "installmentPaymentId": "78e28b54-708c-45a7-a6ef-d3c1672ffe49", "paid": true, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-30T12:19:20.941639+01:00", "uuid": "ea71af48-6048-46e0-8703-7cb3e0a24b65" } ], "transactions": [ "ea71af48-6048-46e0-8703-7cb3e0a24b65" ], "type": "INSTALLMENT" } ], "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "paymentRequestBreakdownId": "b665743f-6671-4749-9727-f801c0d9915a", "paymentRequestId": "3192c6e1-89e6-4d5a-9d96-3208b37f5c3f", "pointOfSale": { "name": "Corben Dallas", "uuid": "7d99a970-cc26-4de8-aa5d-d9ebf4088247" }, "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "startingDate": "2023-12-15", "status": "PAID" }, "requestId": "7ef61f64-e4e9-4021-8d29-c4b449b762f8" } INSTALLMENTPAYMENT_UNPAIDWhen an installment is unpaid { "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "creationDate": "2021-09-03T10:38:16.811541+02:00", "pointOfSaleId": "cfc0b3c7-e666-4c52-b77a-96f234b873fe", "contractId": "71602dd0-2790-4743-877b-e72530d7576d", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "cardId": "d3143e10-9660-48bb-b6a6-b2e1100ecf6f", "paymentRequestBreakdownId": null, "paymentRequestId": null, "mandateId": null, "depositStartingDate": "2021-09-03", "startingDate": "2021-09-17", "requestedCollectionDate": null, "merchantInstallmentPaymentId": "testInstall", "endUserIp": "91.229.230.41", "endUserLanguage": "fre", "amount": 550000, "depositAmount": 50000, "feeAmount": 0, "currency": "EUR", "description": null, "intervalUnit": "WEEK", "intervalCount": 2, "iterationCount": 10, "status": "UNPAID", "endToEndIdentification": null, "remittanceInformation": null, "installments": [ { "installmentId": "1a123952-cc30-47c2-8f2e-1b6182fd25a6", "creationDate": "2021-09-03T10:38:16.809510+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 1, "paid": false, "type": "DEPOSIT", "nextTransactionAttempt": "2021-09-03T08:00+02:00", "transactions": [ "91c604d8-a63c-483c-87aa-f03181a634b5" ], "sddTransactions": [] }, { "installmentId": "28754849-1b22-491b-bc15-7f38d0c9a988", "creationDate": "2021-09-03T10:38:16.810529+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-09-17T08:00+02:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "666f0320-7766-464e-949b-e7ce9997a173", "creationDate": "2021-09-03T10:38:16.810564+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-10-01T08:00+02:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "1b88ddcc-5c9e-4b43-a3cc-6792d9162ea4", "creationDate": "2021-09-03T10:38:16.810582+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-10-15T08:00+02:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "1f25ec3c-d846-4f9c-80e9-c5b86adef8eb", "creationDate": "2021-09-03T10:38:16.810595+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-10-29T08:00+02:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "9d206cee-565d-4181-9987-d65f82a0ffaa", "creationDate": "2021-09-03T10:38:16.810609+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-11-12T07:00+01:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "4fecfcf0-7b4a-4241-a716-a56bc840bd20", "creationDate": "2021-09-03T10:38:16.810621+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-11-26T07:00+01:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "703d1c4f-f1a6-4e30-9a8c-83cd9916f42e", "creationDate": "2021-09-03T10:38:16.810634+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-12-10T07:00+01:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "4c98d99f-f321-43bf-a37e-801a85d03200", "creationDate": "2021-09-03T10:38:16.810646+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2021-12-24T07:00+01:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "893c6120-7f51-4616-9f18-7880c76747fb", "creationDate": "2021-09-03T10:38:16.810658+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2022-01-07T07:00+01:00", "transactions": [], "sddTransactions": [] }, { "installmentId": "8bf4e146-8737-4260-84f5-1a95653d1e24", "creationDate": "2021-09-03T10:38:16.810671+02:00", "installmentPaymentId": "67e18dd5-f990-425f-9234-908ec3e17b4a", "customerId": "5d6f77d7-2a77-4ec0-9789-aff4a65751a5", "mandateId": null, "amount": 50000, "currency": "EUR", "attemptCount": 0, "paid": false, "type": "INSTALLMENT", "nextTransactionAttempt": "2022-01-21T07:00+01:00", "transactions": [], "sddTransactions": [] } ], "additionalData": [] } INSTALLMENT_TRANSACTION_SUCCEEDEDWhen a transaction of an installment is make { "eventId": "a4bb53ba-c913-4077-bf75-5b3d91c0f026", "type": "INSTALLMENT_TRANSACTION_SUCCEEDED", "creationDate": "2024-01-05T16:47:16.914769+01:00", "object": { "amount": 500, "attemptCount": 1, "creationDate": "2024-01-05T16:47:14.425041+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "d70bceea-1b4b-454f-ae04-3cfa5e877e01", "installmentPaymentId": "1da9892e-d71c-40a9-8637-c259d3076582", "paid": true, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-05T16:47:15.250593+01:00", "uuid": "8b1b6eb7-c492-4a3f-913e-46c84836b50d" } ], "transactions": [ "8b1b6eb7-c492-4a3f-913e-46c84836b50d" ], "type": "INSTALLMENT" }, "requestId": "05809a07-9e49-44be-91c2-4ca357f2a7cc" } INSTALLMENT_TRANSACTION_FAILEDWhen a transaction of an installment is failed { "eventId": "2518ae0a-7e88-4458-86cb-3ef2a71f07bf", "type": "INSTALLMENT_TRANSACTION_FAILED", "creationDate": "2024-01-05T16:34:31.034977+01:00", "object": { "amount": 500, "attemptCount": 1, "creationDate": "2024-01-05T16:34:29.520151+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "installmentId": "6fe13fbd-10d6-406d-93af-31f5d682db99", "installmentPaymentId": "0453a075-211f-4d0a-8947-e05cd6bd33fc", "nextTransactionAttempt": "2024-01-08T04:00+01:00", "paid": false, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-05T16:34:30.385545+01:00", "uuid": "f061fa00-8494-4eca-b9d1-f54d36125d7d" } ], "transactions": [ "f061fa00-8494-4eca-b9d1-f54d36125d7d" ], "type": "INSTALLMENT" }, "requestId": "89cb89a8-618a-46f6-8971-c8f84a57f61e" }
Pay by Bank - Initiation de paiement (PIS) 1. Fonctionnement Le service d’initiation de paiement (PIS – Payment Initiation Service) permet à vos clients de réaliser un virement bancaire directement depuis leur environnement bancaire, sans avoir à saisir manuellement les coordonnées du bénéficiaire. Cette fonctionnalité repose sur le protocole Open Banking, en conformité avec la DSP2. Chez CentralPay, ce service est proposé sous l’intitulé Pay by Bank et est actuellement accessible uniquement via le formulaire de paiement hébergé (SmartForm), dans le cadre de l’utilisation du service PaymentRequest. ℹ️ Le service est uniquement disponible via le Smart Form (PaymentRequest). Il n’est pas encore possible d’utiliser ce mode de paiement en tant que moyen unique, il est toujours présenté en complément du service de paiement par virement traditionnel. L’expérience de paiement dépend des interfaces de la banque du client payeur. 2. Activation du service L’initiation de paiement n’est pas activée par défaut. Pour en bénéficier, il est nécessaire d’en faire la demande auprès des équipes support de CentralPay. 3. Utilisation via PaymentRequest Pour permettre à vos clients d’initier un virement directement depuis le formulaire de paiement, vous devez : Créer une PaymentRequest selon les modalités habituelles. Inclure le moyen de paiement suivant dans la propriété payment_methods :• PIS Standard « payment_methods » : [« SCT_TRANSACTION_PIS »]• PIS IP « payment_methods » : [« SCT_TRANSACTION_PIS_IP »] Lorsque ce moyen de paiement est présent, le Smart Form proposera à l’utilisateur un choix entre : Le virement bancaire classique (affichage des coordonnées bancaires à recopier) L’initiation de paiement via son environnement bancaire (Pay by Bank) ℹ️ Il n’est pas possible à ce stade de forcer l’utilisation exclusive de l’initiation de paiement. Le formulaire affichera toujours l’alternative avec les coordonnées bancaires classiques. 4. Parcours utilisateur L’utilisateur sélectionne « Pay by Bank » dans le formulaire Il choisit sa banque dans la liste proposée Il est redirigé vers l’environnement de sa banque pour valider l’opération de virement Une fois le paiement initié, il est redirigé vers votre page de retour 5. Suivi et statuts Une fois la PaymentRequest créée, le statut du virement est disponible via l’API comme pour tout autre paiement : Le champ payment_method sera valorisé à SCT_TRANSACTION Le champ status indiquera la progression de l’initiation de paiement (par exemple pending, succeeded, failed) ℹ️ Comme pour les virements classiques, la finalisation du paiement dépend de l’exécution effective du virement par la banque du client. Le client peut choisir entre réaliser un virement standard (à J+1) ou un virement immédiat. 6. Liste des banques disponibles par pays ℹ️ En environnement de recette, une banque nommée "Connecteur de test" est affichée pour vous permettre de tester le parcours de bout en bout. Attention : le montant maximum autorisé sur ce connecteur de test est de 20€. Banques françaises : InstitutionStandardInstantanéAllianz Banque✅🚫Arkéa Banking Services✅🚫Arkéa Banque Entreprises et Institutionnels✅✅Arkéa Banque Privée✅✅AXA Banque✅✅Banque BCP✅✅Banque Chalus✅✅Banque de Savoie✅✅Banque des Territoires✅🚫Banque Européenne Crédit Mutuel✅✅Banque Populaire✅✅Banque Transatlantique✅✅BBVA (Non activé)🚫🚫BforBank✅🚫BNP Paribas✅✅BNP Paribas Entreprises✅🚫BNP Paribas Nouvelle-Calédonie (Non activé)🚫🚫BoursoBank✅✅BRED✅✅BTP Banque✅✅Caisse d’Épargne Particuliers✅✅Caisse d’Épargne Professionnels✅✅CCMDirect (Non activé)🚫🚫CIC✅✅CIC Banque Privée✅✅Crédit Agricole✅✅Crédit Coopératif✅✅Crédit Maritime✅✅Crédit Mutuel✅✅Crédit Mutuel de Bretagne✅✅Crédit Mutuel du Sud Ouest✅✅Fortuneo✅✅Hello bank!✅✅ING Wholesale Banking✅🚫La Banque Postale✅✅LCL✅✅Louvre Banque Privée✅✅Manager.one✅🚫Memo Bank✅✅Monabanq✅✅N26✅✅Nef Pro✅🚫Neuflize OBC (Non activé)🚫🚫Palatine✅✅Qonto✅🚫Revolut✅🚫Société Générale✅✅
The ONBOARDING object ONBOARDING_ENROLLMENT_CREATEDWhen the onboarding request has been accept. You will receive an enrollementId associated to you custom reference. { "eventId": "8eb9f549-325d-4451-8e98-d90f1bf5635a", "type": "ONBOARDING_ENROLLMENT_CREATED", "creationDate": "2024-01-10T09:14:51.488392+01:00", "object": { "workflow": { "uuid": "b1161973-7ec2-4dd0-a23e-abb788b68844", "status": "ON_GOING", "activities": [ { "step_elements": [], "uuid": "e08b0baf-c947-4b82-bd69-f98a2a67c511", "name": "ContractValiA", "state": "TODO", "category": "validation", "created_at": "2024-01-10T09:14:51" } ], "additional_documents": [] }, "identity_badge": null, "representatives_list": null, "inactive_representatives_list": [], "infogreffe_identity": null, "language": "fr", "risk_score": { "activity": 2, "activity_age": null, "turnover": 1, "bank_account": 0, "total": null }, "additional_document_need_upload": false, "uuid": "c2e03650-2427-4c25-aa31-016c63f7261b", "risk_points": null, "created_at": "2024-01-10T09:14:51", "last_updated_at": null, "turnover_is_fixed": false, "workflow_mode": "SEQUENTIAL", "risk_level": "LOW", "type": "INDIVIDUAL", "is_canceled": false, "enrollment_account": null, "profile": { "birthname": { "status": "ON_GOING", "uuid": "a60a7930-38ce-4585-bc15-bad4e4d8c9fa", "value": null, "element-type": "birthname" }, "uuid": "805a41ad-bd70-4841-a0d4-91f9082860dd", "workflow": { "uuid": "24d6e160-5f16-4e60-81a2-f5b6942ce629", "status": "ON_GOING", "activities": [ { "step_elements": [ { "status": "COMPLETED", "uuid": "76fa0a86-7b3e-44e5-aa8a-f6ccd06d3df9", "value": "Carmelo", "element-type": "firstname" }, { "status": "COMPLETED", "uuid": "f01070cd-01c8-4e22-929a-7988c2c0dac0", "value": "Littel", "element-type": "lastname" }, { "status": "COMPLETED", "uuid": "41449fa2-079e-4f1e-81b2-a4fed78c1d5b", "value": "verna11@yahoo.com", "element-type": "email" }, { "status": "COMPLETED", "uuid": "8899cbdc-f074-4730-9f9e-44a144517a39", "value": "+3300000000", "element-type": "phone" }, { "status": "COMPLETED", "uuid": "9ce4c8fb-3c39-4e42-bc81-45a78760d8ff", "value": "1993-01-01T00:00:00", "element-type": "birthday" }, { "status": "COMPLETED", "uuid": "37ec9115-e88f-4bd7-a36e-77c4204f5058", "value": "Tours", "element-type": "place-of-birth" }, { "status": "COMPLETED", "uuid": "898c972f-be5f-4209-b9a6-4b06ed8e17f9", "country": "FRA", "element-type": "country-of-birth" } ], "uuid": "adf915df-d11f-4862-b76d-1c1e4e06994d", "name": "identityInfos", "state": "TODO", "category": "identity", "created_at": "2024-01-10T09:14:51" } ], "additional_documents": [] }, "firstname": { "status": "COMPLETED", "uuid": "76fa0a86-7b3e-44e5-aa8a-f6ccd06d3df9", "value": "Carmelo", "element-type": "firstname" }, "lastname": { "status": "COMPLETED", "uuid": "f01070cd-01c8-4e22-929a-7988c2c0dac0", "value": "Littel", "element-type": "lastname" }, "usename": { "status": "ON_GOING", "uuid": "a60a7930-38ce-4585-bc15-bad4e4d8c9fa", "value": null, "element-type": "birthname" }, "email": { "status": "COMPLETED", "uuid": "41449fa2-079e-4f1e-81b2-a4fed78c1d5b", "value": "verna11@yahoo.com", "element-type": "email" }, "language": { "status": "ON_GOING", "uuid": "78daf0f6-4659-461f-a817-72c4b233cd70", "locale": { "identifier": "fr" }, "element-type": "language" }, "phone": { "status": "COMPLETED", "uuid": "8899cbdc-f074-4730-9f9e-44a144517a39", "value": "+3300000000", "element-type": "phone" }, "birthday": { "status": "COMPLETED", "uuid": "9ce4c8fb-3c39-4e42-bc81-45a78760d8ff", "value": "1993-01-01T00:00:00", "element-type": "birthday" }, "login": null, "bo_user_uuid": null }, "activity_sector": { "name": "Artisans (plumber, electricians, ...)" }, "data": { "type": "PARTICULAR", "company_name": null, "history": [], "turnover": { "name": "Less than 20k EUR" }, "activity_age": null }, "custom_reference": null, "is_converted": false, "conformity_status": "ON_GOING", "conformity_status_level_two": null, "comments_level_two": null, "validator_level_one": null, "validator_level_two": null, "merchant_uuid": null, "validation_date": null, "validation_date_level_two": null, "sub_type": null, "api_infogreffe_attempt": 0, "next_step": 0, "full_kyc": false }, "requestId": "b59cf6d0-4180-4a0e-b26d-8d2e34759c46" } ONBOARDING_ENROLLMENT_STATUS_UPDATEDAn ongoing onboarding has been updated. { "eventId": "e4e42e20-1819-49d3-af96-9a7ecb978a5d", "type": "ONBOARDING_ENROLLMENT_STATUS_UPDATED", "creationDate": "2024-01-10T09:16:02.927117+01:00", "object": { "workflow": { "uuid": "b1161973-7ec2-4dd0-a23e-abb788b68844", "status": "ON_GOING", "activities": [ { "step_elements": [], "uuid": "e08b0baf-c947-4b82-bd69-f98a2a67c511", "name": "ContractValiA", "state": "TODO", "category": "validation", "created_at": "2024-01-10T09:14:51" } ], "additional_documents": [] }, "identity_badge": null, "representatives_list": null, "inactive_representatives_list": [], "infogreffe_identity": null, "language": "fr", "risk_score": { "activity": 2, "activity_age": null, "turnover": 1, "bank_account": 0, "total": null }, "additional_document_need_upload": false, "uuid": "c2e03650-2427-4c25-aa31-016c63f7261b", "risk_points": null, "created_at": "2024-01-10T09:14:51", "last_updated_at": "2024-01-10T09:16:02", "turnover_is_fixed": false, "workflow_mode": "SEQUENTIAL", "risk_level": "LOW", "type": "INDIVIDUAL", "is_canceled": false, "enrollment_account": null, "profile": { "birthname": { "status": "ON_GOING", "uuid": "a60a7930-38ce-4585-bc15-bad4e4d8c9fa", "value": null, "element-type": "birthname" }, "uuid": "805a41ad-bd70-4841-a0d4-91f9082860dd", "workflow": { "uuid": "24d6e160-5f16-4e60-81a2-f5b6942ce629", "status": "ACCEPTED", "activities": [ { "step_elements": [ { "status": "COMPLETED", "uuid": "76fa0a86-7b3e-44e5-aa8a-f6ccd06d3df9", "value": "Carmelo", "element-type": "firstname" }, { "status": "COMPLETED", "uuid": "898c972f-be5f-4209-b9a6-4b06ed8e17f9", "country": "FRA", "element-type": "country-of-birth" }, { "status": "COMPLETED", "uuid": "9ce4c8fb-3c39-4e42-bc81-45a78760d8ff", "value": "1993-01-01T00:00:00", "element-type": "birthday" }, { "status": "COMPLETED", "uuid": "8899cbdc-f074-4730-9f9e-44a144517a39", "value": "+3300000000", "element-type": "phone" }, { "status": "COMPLETED", "uuid": "f01070cd-01c8-4e22-929a-7988c2c0dac0", "value": "Littel", "element-type": "lastname" }, { "status": "COMPLETED", "uuid": "37ec9115-e88f-4bd7-a36e-77c4204f5058", "value": "Tours", "element-type": "place-of-birth" }, { "status": "COMPLETED", "uuid": "41449fa2-079e-4f1e-81b2-a4fed78c1d5b", "value": "verna11@yahoo.com", "element-type": "email" }, { "status": "COMPLETED", "uuid": "76fa0a86-7b3e-44e5-aa8a-f6ccd06d3df9", "value": "Carmelo", "element-type": "firstname" }, { "status": "COMPLETED", "uuid": "f01070cd-01c8-4e22-929a-7988c2c0dac0", "value": "Littel", "element-type": "lastname" }, { "status": "COMPLETED", "uuid": "41449fa2-079e-4f1e-81b2-a4fed78c1d5b", "value": "verna11@yahoo.com", "element-type": "email" }, { "status": "COMPLETED", "uuid": "8899cbdc-f074-4730-9f9e-44a144517a39", "value": "+3300000000", "element-type": "phone" }, { "status": "COMPLETED", "uuid": "9ce4c8fb-3c39-4e42-bc81-45a78760d8ff", "value": "1993-01-01T00:00:00", "element-type": "birthday" }, { "status": "COMPLETED", "uuid": "37ec9115-e88f-4bd7-a36e-77c4204f5058", "value": "Tours", "element-type": "place-of-birth" }, { "status": "COMPLETED", "uuid": "898c972f-be5f-4209-b9a6-4b06ed8e17f9", "country": "FRA", "element-type": "country-of-birth" }, { "status": "COMPLETED", "uuid": "08942994-180a-469e-9139-fa2fa09375ec", "documents": [ { "file_check": null } ], "type": "PASSPORT", "proof_of_identity_document": null, "expiry_date": null, "document_number": null, "mrz_line1": null, "mrz_line2": null, "issuing_country": null, "element-type": "identity-document" }, { "status": "COMPLETED", "uuid": "01994746-c538-4387-a07d-af53b40e797d", "name_line1": "rue du bois", "name_line2": null, "name_line3": null, "name_line4": null, "locality": "Tours", "postal_code": "37000", "country": "FRA", "element-type": "address" } ], "uuid": "adf915df-d11f-4862-b76d-1c1e4e06994d", "name": "identityInfos", "state": "OK", "category": "identity", "created_at": "2024-01-10T09:14:51" }, { "step_elements": [], "uuid": null, "name": "finished", "state": "OK", "category": null, "created_at": null } ], "additional_documents": [] }, "firstname": { "status": "COMPLETED", "uuid": "76fa0a86-7b3e-44e5-aa8a-f6ccd06d3df9", "value": "Carmelo", "element-type": "firstname" }, "lastname": { "status": "COMPLETED", "uuid": "f01070cd-01c8-4e22-929a-7988c2c0dac0", "value": "Littel", "element-type": "lastname" }, "usename": { "status": "ON_GOING", "uuid": "a60a7930-38ce-4585-bc15-bad4e4d8c9fa", "value": null, "element-type": "birthname" }, "email": { "status": "COMPLETED", "uuid": "41449fa2-079e-4f1e-81b2-a4fed78c1d5b", "value": "verna11@yahoo.com", "element-type": "email" }, "language": { "status": "ON_GOING", "uuid": "78daf0f6-4659-461f-a817-72c4b233cd70", "locale": { "identifier": "fr" }, "element-type": "language" }, "phone": { "status": "COMPLETED", "uuid": "8899cbdc-f074-4730-9f9e-44a144517a39", "value": "+3300000000", "element-type": "phone" }, "birthday": { "status": "COMPLETED", "uuid": "9ce4c8fb-3c39-4e42-bc81-45a78760d8ff", "value": "1993-01-01T00:00:00", "element-type": "birthday" }, "login": null, "bo_user_uuid": null }, "activity_sector": { "name": "Hotels & holiday rentals" }, "data": { "type": "PARTICULAR", "company_name": null, "history": [], "turnover": { "name": "Less than 20k EUR" }, "activity_age": null }, "custom_reference": null, "is_converted": false, "conformity_status": "ON_GOING", "conformity_status_level_two": null, "comments_level_two": null, "validator_level_one": null, "validator_level_two": null, "merchant_uuid": null, "validation_date": null, "validation_date_level_two": null, "sub_type": null, "api_infogreffe_attempt": 0, "next_step": 0, "full_kyc": false }, "requestId": "e2324dd3-59e4-44e2-a0d7-fe7df9c4a690" } ONBOARDING_ENROLLMENT_INVALID_DOCUMENTSSome documents are regarded as invalid by the Centralpay conformity { "uuid": "bc0fac82-xxxx-xxxx-8107-80b12cae168b", "activities": [ { "uuid": "ffd29ae2-xxxx-xxxx-b6cc-a368c664f224", "name": "identityInfos", "step_elements": [ { "uuid": "ac1c8f9c-xxxx-xxxx-a10b-1e26937942fc", "field": "IdentityDocument", "comment": "Le document est expiré", "reasons": [ { "reason": "OTHER", "comment": null } ] } ] } ] } ONBOARDING_ENROLLMENT_VALID_DOCUMENTSSome documents are regarded as valid by the Centralpay conformity { "uuid": "c5ed5ac3-xxxx-xxxx-909a-e7e8fde6ab0e", "risk_level": "MEDIUM", "merchant_block_configuration_status": "NONE" } ONBOARDING_PAYMENT_ACCOUNT_CREATEDThe account has been created. { "eventId": "69d19eb6-5b4d-4658-8149-526d779328a4", "type": "ONBOARDING_PAYMENT_ACCOUNT_CREATED", "creationDate": "2024-01-10T09:17:04.318216+01:00", "object": { "merchantEnrollmentId": "c2e03650-2427-4c25-aa31-016c63f7261b", "merchantEnrollmentCustomReference": null, "merchantEnrollmentType": "BASIC", "merchantId": "cac4f315-4dbf-45da-bb3c-4c9b64fe81c1", "merchantName": "Carmelo Littel", "merchantWalletId": "9a8fc3a1-bece-4ef2-a92a-d6341f8799e0", "creationDate": "2024-01-10T09:17:03+0100", "merchantBlockConfigurationStatus": "NONE" }, "requestId": "abd91f96-78c3-4277-8eea-b2a4e323efd3" } ONBOARDING_PAYMENT_ACCOUNT_UPDATEDThe account has been update. You receive those elements ONBOARDING_ADDITIONAL_DOCUMENT_REQUESTEDAdditionnal documents or information have been request on one ongoing onboarding. { "uuid": "1ad91002-fcad-4056-a41f-82ab63687af2", "additional_documents": { "uuid": "eb0b568a-a619-4d80-b35a-846144ef1925", "created_at": "2021-03-23T17:30:35+01:00", "type": "AUDITED_FINANCIAL_REPORT", "additional_documents_history": [ { "uuid": "1a330b31-9150-45cd-9fc3-bb3bed751b7b", "created_at": "2021-03-23T17:30:35+01:00", "status": "NOT_UPLOADED", "comment": "en couleur de moins de 3 mois", "additional_document_history_status": [ { "changed_at": "2021-03-23T17:30:35+01:00", "value": "NOT_UPLOADED" } ] } ] } } ONBOARDING_ADDITIONAL_DOCUMENT_UPDATEDAdditionnal documents or information have been provided by the account holder in one ongoing onboarding. ONBOARDING_ENROLLMENT_WORKFLOW_RESETThe workflow has returned to it’s initial state { "eventId": "4fa7e538-9e45-4ba2-8c22-25bdb931ff19", "type": "ONBOARDING_ENROLLMENT_WORKFLOW_RESET", "creationDate": "2024-01-25T12:24:32.450115+01:00", "object": { "workflow": { "uuid": "cc91fb6c-55c0-48b3-82de-549d1061edf9", "status": "ON_GOING", "activities": [ { "step_elements": [], "uuid": "49ff33c2-d4e8-4eec-ad1c-43ebe822706b", "name": "ContractValiA", "state": "TODO", "category": "validation", "created_at": "2024-01-25T12:24:32" }, { "step_elements": [], "uuid": "49ff33c2-d4e8-4eec-ad1c-43ebe822706b", "name": "ContractValiA", "state": "TODO", "category": "validation", "created_at": "2024-01-25T12:24:32" } ], "additional_documents": [] }, "identity_badge": null, "representatives_list": null, "inactive_representatives_list": [], "infogreffe_identity": null, "language": "fr", "risk_score": { "activity": 2, "activity_age": null, "turnover": 1, "bank_account": 0, "total": null }, "additional_document_need_upload": false, "uuid": "b7fa53f5-1cc7-4524-8a41-364b6e85f6b4", "risk_points": null, "created_at": "2024-01-25T12:21:11", "last_updated_at": null, "turnover_is_fixed": false, "workflow_mode": "SEQUENTIAL", "risk_level": "LOW", "type": "INDIVIDUAL", "is_canceled": false, "enrollment_account": null, "profile": { "birthname": { "status": "ON_GOING", "uuid": "a404d8cf-d4f5-412a-b0a2-fc8843fbe7ed", "value": null, "element-type": "birthname" }, "uuid": "c8e69bcf-cd2a-4dd5-85a6-252ba8ef2fa2", "workflow": { "uuid": "512c94e7-f470-446f-b030-65729b681d41", "status": "ON_GOING", "activities": [ { "step_elements": [ { "status": "COMPLETED", "uuid": "e3832733-a07c-4f29-999a-945854cae097", "value": "Alejandra", "element-type": "firstname" }, { "status": "COMPLETED", "uuid": "6f2bf419-ada4-4967-b6ff-4c02dee109f4", "value": "Walter", "element-type": "lastname" }, { "status": "COMPLETED", "uuid": "a691c5d5-a62a-4cd9-97b1-b68c1e612d0f", "value": "+3300000000", "element-type": "phone" }, { "status": "COMPLETED", "uuid": "e077ba27-5cfe-4a5b-ada9-cbf043d50cb5", "value": "Tours", "element-type": "place-of-birth" }, { "status": "COMPLETED", "uuid": "faec075e-d17c-4c7d-ad2d-8e9ee573f840", "value": "1993-01-01T00:00:00", "element-type": "birthday" }, { "status": "COMPLETED", "uuid": "d052f4da-c670-4075-8d29-d55fdae732a5", "country": "FRA", "element-type": "country-of-birth" }, { "status": "COMPLETED", "uuid": "96693dd5-4463-402a-aea7-e034b414825a", "value": "tessie_ebert@gmail.com", "element-type": "email" } ], "uuid": "b77d7bf7-ab6f-4cb0-ad18-22ac66a50a3b", "name": "identityInfos", "state": "TODO", "category": "identity", "created_at": "2024-01-25T12:21:11" } ], "additional_documents": [] }, "firstname": { "status": "COMPLETED", "uuid": "e3832733-a07c-4f29-999a-945854cae097", "value": "Alejandra", "element-type": "firstname" }, "lastname": { "status": "COMPLETED", "uuid": "6f2bf419-ada4-4967-b6ff-4c02dee109f4", "value": "Walter", "element-type": "lastname" }, "usename": { "status": "ON_GOING", "uuid": "a404d8cf-d4f5-412a-b0a2-fc8843fbe7ed", "value": null, "element-type": "birthname" }, "email": { "status": "COMPLETED", "uuid": "96693dd5-4463-402a-aea7-e034b414825a", "value": "tessie_ebert@gmail.com", "element-type": "email" }, "language": { "status": "ON_GOING", "uuid": "232259eb-02cf-48af-9693-d678fecd9dc1", "locale": { "identifier": "fr" }, "element-type": "language" }, "phone": { "status": "COMPLETED", "uuid": "a691c5d5-a62a-4cd9-97b1-b68c1e612d0f", "value": "+3300000000", "element-type": "phone" }, "birthday": { "status": "COMPLETED", "uuid": "faec075e-d17c-4c7d-ad2d-8e9ee573f840", "value": "1993-01-01T00:00:00", "element-type": "birthday" }, "login": null, "bo_user_uuid": null }, "activity_sector": { "name": "Artisans (plumber, electricians, ...)" }, "data": { "type": "PARTICULAR", "company_name": null, "history": [], "turnover": { "name": "Less than 20k EUR" }, "activity_age": null }, "custom_reference": null, "is_converted": false, "conformity_status": "ON_GOING", "conformity_status_level_two": null, "comments_level_two": null, "validator_level_one": null, "validator_level_two": null, "merchant_uuid": null, "validation_date": null, "validation_date_level_two": null, "sub_type": null, "api_infogreffe_attempt": 0, "next_step": 0, "full_kyc": false, "auto_updated_data": false }, "requestId": "3ca496d0-bd87-4457-8460-fc1e502d4962" } ONBOARDING_PEP_SANCTION_SEARCH_RESULTThe PEP Sanction search has return result, you receive those elements { "eventId": "a427366c-eb0b-4d68-9d81-22f406162024", "type": "ONBOARDING_PEP_SANCTION_SEARCH_RESULT", "creationDate": "2024-01-10T09:16:09.771127+01:00", "object": { "enrollment_uuid": "c2e03650-2427-4c25-aa31-016c63f7261b", "enrollment_url": "https://test-backoffice.centralpay.net/admin/onboarding/c2e03650-2427-4c25-aa31-016c63f7261b/show", "profile": { "pep_validation": { "created_at": "2024-01-10 09:16:04", "status": "ACCEPTED", "reference": "1704874567-MMSug5fh", "client_ref": "225cab33-3c8d-4bc7-b6d8-7f7d7448b49d", "review_url": "https://api.complyadvantage.com1704874567-MMSug5fh" }, "sanction_validation": { "created_at": "2024-01-10 09:16:04", "status": "ACCEPTED", "reference": "1704874567-MMSug5fh", "client_ref": "225cab33-3c8d-4bc7-b6d8-7f7d7448b49d", "review_url": "https://api.complyadvantage.com1704874567-MMSug5fh" } } }, "requestId": "d995a82d-ff33-4c20-af58-2546f3ef4c09" } ENROLLMENT_CREATEDWhen an enrollement is created
Rapprochement à une demande de paiement CentralPay met à disposition un service nommé bankReconciliation permettant de lier une ou plusieurs SCT Transaction à une demande de paiement (PaymentRequest) si vous n’utilisez pas les IBAN Virtuel dédié aux SCT Transaction. 1. En cas d’erreur de référence par votre client Lorsque vous utilisez les demandes de paiement avec IBAN Virtuels dédiés à un Customer et que votre client ne renseigne pas correctement la « sepaReference » lors de l’émission de son virement ; CentralPay n’est pas en mesure de rapprocher automatiquement le virement à la demande de paiement. Vous pouvez donc utiliser le service bankReconciliation pour affecter la SCT Transaction reçue à la demande de paiement créée initialement : amount = montant du virement en centimes wireTransferID = ID de la SCT TRANSACTION (accessible dans le hook de la SCT TRANSACTION) paymentRequestBreakdownId = ID du breakdown de la PaymentRequest (accessible dans le hook de la PaymentRequest) 2. Si vous utilisez votre propre référence de commande Si vous souhaitez organiser vos créances clients dans CentralPay grâce au service de Demandes de paiement sans utiliser la page de paiement Smart Form, voici la démarche à suivre : Pour chaque client : Créer un Customer avec vIBAN, récupérer le vIBAN et l’afficher dans votre tunnel de vente avec votre référence de commande Créer en parallèle une paymentRequest contenant cette même référence de commande (dans le champ « merchantPaymentRequestId ») et le montant de commande Dès réception d’un virement client, vous identifiez la commande liée grâce au champ « description » de la SCT Transaction Vous recherchez ensuite une PaymentRequest avec la même référence dans « merchantPaymentRequestId » Si une PaymentRequest présente la même référence, vous l’associez avec le service « bankReconciliation » Si aucune PaymentRequest ne présente la même référence mais que le virement a été reçu sur un vIBAN Customer n’ayant qu’une seule PaymentRequest en attente ou d’un montant identique, vous pouvez faire en sorte de les rapprocher avec une bankReconciliation Si aucune PaymentRequest ne présente la même référence et que le Customer présente plusieurs PaymentRequest en attente de règlement ou d’un montant différent, levez une alerte dans votre système pour faire rapprocher le virement manuellement par votre service financier (qui l’associera manuellement à la bonne PaymentRequest via une bankReconciliation) Les virements non liés à une PaymentRequest seront ainsi facilement identifiables De même que les PaymentRequest non payées ou partiellement payées
The PAYMENT REQUEST object PAYMENTREQUEST_CREATEDHappen when a payment request is created { "eventId": "75b8f668-c5ce-40c8-ba51-2423004b04d2", "type": "PAYMENTREQUEST_CREATED", "creationDate": "2024-01-08T11:47:27.515437+01:00", "object": { "additionalData": {}, "attachments": [], "breakdowns": [ { "amount": 29000, "email": "gduhamel@centralpay.eu", "endpoint": "https://test-form.centralpay.net/446ae220-96f7-40ec-bd9b-9c8b83e0919b", "entered": false, "firstName": "Corben", "initiator": true, "lastName": "DALLAS", "paid": false, "paymentAttempted": false, "paymentRequestBreakdownId": "548c4ce7-d14f-486d-b9ac-b3caa3a9f5b6", "payments": [], "status": "UNPAID", "view": 0 } ], "createCustomer": false, "creationDate": "2024-01-08T11:47:27.494330+01:00", "currency": "EUR", "installments": [], "language": "fre", "linkExpirationDate": "2025-01-07T11:47:27.393093+01:00", "merchantPaymentRequestId": "Facture 12334", "notificationEmails": [], "paymentMethods": [ "TRANSACTION", "SCT_TRANSACTION" ], "paymentRequestId": "1c3d2a38-5f0e-41d4-a177-cf87fb5da617", "paymentRequestStatus": "ACTIVE", "paymentStatus": "UNPAID", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "scenarios": [], "subscriptions": [], "totalAmount": 29000, "transaction": { "capture": true, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "customAcceptanceData": {}, "paymentRequestTransactionId": "94977411-0b77-4792-b4cb-efd133911f66", "source": "EC" }, "transfers": [], "wireTransfer": { "paymentRequestWireTransferId": "329c9d8f-53de-4797-b6fc-d75ce3bf2466" } }, "requestId": "7dc393fc-f32a-4c4e-945e-f4f231610a47" } PAYMENTREQUEST_CANCELEDHappen when a payment request is cancelled { "eventId": "092b72f8-67a3-489c-af21-684eef115c65", "type": "PAYMENTREQUEST_CANCELED", "creationDate": "2024-01-08T11:50:28.640892+01:00", "object": { "additionalData": {}, "attachments": [], "breakdowns": [ { "amount": 29000, "email": "gduhamel@centralpay.eu", "endpoint": "https://test-form.centralpay.net/446ae220-96f7-40ec-bd9b-9c8b83e0919b", "entered": true, "firstName": "Corben", "initiator": true, "lastName": "DALLAS", "paid": false, "paymentAttempted": false, "paymentRequestBreakdownId": "548c4ce7-d14f-486d-b9ac-b3caa3a9f5b6", "payments": [], "status": "UNPAID", "view": 0 } ], "createCustomer": false, "creationDate": "2024-01-08T11:47:27.494330+01:00", "currency": "EUR", "endingDate": "2024-01-08T11:50:28.619151+01:00", "installments": [], "language": "fre", "linkExpirationDate": "2025-01-07T11:47:27.393093+01:00", "merchantPaymentRequestId": "Facture 12334", "notificationEmails": [], "paymentMethods": [ "SCT_TRANSACTION", "TRANSACTION" ], "paymentRequestId": "1c3d2a38-5f0e-41d4-a177-cf87fb5da617", "paymentRequestStatus": "CANCELED", "paymentStatus": "UNPAID", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "scenarios": [], "subscriptions": [], "totalAmount": 29000, "transaction": { "capture": true, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "customAcceptanceData": {}, "paymentRequestTransactionId": "94977411-0b77-4792-b4cb-efd133911f66", "source": "EC" }, "transfers": [], "wireTransfer": { "paymentRequestWireTransferId": "329c9d8f-53de-4797-b6fc-d75ce3bf2466" } }, "requestId": "ff7f8976-a2fe-4a90-8bf1-55eb6a1abf5f" } PAYMENTREQUEST_CLOSEDHappen when a payment request is closed { "eventId": "f06c4263-7708-476e-89c8-c6c52213d034", "type": "PAYMENTREQUEST_CLOSED", "creationDate": "2024-01-08T11:51:37.271485+01:00", "object": { "additionalData": {}, "attachments": [], "breakdowns": [ { "amount": 29000, "email": "gduhamel@centralpay.eu", "endpoint": "https://test-form.centralpay.net/7c9b8626-c7b1-46dc-9efa-7f7c994839e6", "entered": true, "firstName": "Corben", "initiator": true, "lastName": "DALLAS", "paid": false, "paymentAttempted": false, "paymentRequestBreakdownId": "82ad8194-10e6-4639-8011-8cacd285f465", "payments": [], "status": "UNPAID", "view": 0 } ], "createCustomer": false, "creationDate": "2024-01-08T11:51:25.123940+01:00", "currency": "EUR", "endingDate": "2024-01-08T11:51:37.249097+01:00", "installments": [], "language": "fre", "linkExpirationDate": "2025-01-07T11:51:25.039807+01:00", "merchantPaymentRequestId": "Facture 12334", "notificationEmails": [], "paymentMethods": [ "SCT_TRANSACTION", "TRANSACTION" ], "paymentRequestId": "af2d283a-eec1-4d55-9fa9-82ae6a3a1212", "paymentRequestStatus": "CLOSED", "paymentStatus": "UNPAID", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "scenarios": [], "subscriptions": [], "totalAmount": 29000, "transaction": { "capture": true, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "customAcceptanceData": {}, "paymentRequestTransactionId": "49d7fa4f-88d8-43bf-8ed1-2ac68a093953", "source": "EC" }, "transfers": [], "wireTransfer": { "paymentRequestWireTransferId": "a26099e7-af23-4b71-baa0-24608bb10f0e" } }, "requestId": "19ae9e22-5c4b-4c2b-a94c-a2fd41c3dcd2" } PAYMENTREQUEST_PAIDHappen when a payment request is paid { "eventId": "04feded6-e56b-4980-903f-3f15d89405aa", "type": "PAYMENTREQUEST_PAID", "creationDate": "2024-01-15T12:36:33.155085+01:00", "object": { "additionalData": {}, "attachments": [], "breakdowns": [ { "amount": 100000, "email": "gduhamel@centralpay.eu", "endpoint": "https://test-form.centralpay.net/6afa376b-976a-4b79-8320-5baf16681b79", "entered": true, "initiator": true, "paid": false, "paymentAttempted": false, "paymentRequestBreakdownId": "75b6d330-948e-4aef-8967-d88d2acc7190", "payments": [ { "creationDate": "2024-01-15T12:36:11.311665+01:00", "paymentMethod": "TRANSACTION", "uuid": "73d16504-a1d7-488a-8e0a-b350972f754d" }, { "creationDate": "2024-01-15T12:36:31.689550+01:00", "paymentMethod": "TRANSACTION", "uuid": "f80eee11-a633-46c2-bf08-f31d33d3107a" } ], "status": "PAID", "view": 0 } ], "createCustomer": false, "creationDate": "2024-01-15T12:34:44.362675+01:00", "currency": "EUR", "endingDate": "2024-01-15T12:36:33.036207+01:00", "installment": { "depositAmount": 0, "feeAmount": 0, "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "paymentRequestInstallmentId": "979caed1-430b-4984-8697-7f85eecaf482", "source": "CARD", "startingDate": "2024-01-15" }, "installments": [ { "depositAmount": 0, "feeAmount": 0, "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "paymentRequestInstallmentId": "979caed1-430b-4984-8697-7f85eecaf482", "source": "CARD", "startingDate": "2024-01-15" } ], "language": "eng", "linkExpirationDate": "2025-01-14T12:34:44.285879+01:00", "notificationEmails": [], "paymentMethods": [ "INSTALLMENT", "TRANSACTION" ], "paymentRequestId": "2bfc4ab4-f878-46b8-8a12-3263d2d28842", "paymentRequestStatus": "CLOSED", "paymentStatus": "PAID", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "scenarios": [], "subscriptions": [], "totalAmount": 100000, "transaction": { "capture": true, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "customAcceptanceData": {}, "paymentRequestTransactionId": "75b7c505-c546-475a-88ee-c169073d05b1", "source": "EC" }, "transfers": [] }, "requestId": "6847ced8-92ab-45df-9f1d-1069112b98e1" } PAYMENTREQUEST_INSTALLMENT_FAILEDHappen when the installment of the payment request failed { "eventId": "36650db2-3f36-479f-9518-16699a289467", "type": "PAYMENTREQUEST_INSTALLMENT_FAILED", "creationDate": "2024-01-15T12:43:18.344841+01:00", "object": { "additionalData": {}, "amount": 100000, "card": { "commercialBrand": "VISA", "first6": "400000", "last4": "0069", "uuid": "3f3114d8-03eb-464d-9b0c-15200caa6d2d" }, "cardId": "3f3114d8-03eb-464d-9b0c-15200caa6d2d", "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-15T12:43:16.467780+01:00", "currency": "EUR", "customerId": "ddf4aa07-5fd3-4ce1-bbaa-cdaafdb821d5", "depositAmount": 0, "endUserIp": "91.229.230.41", "endUserLanguage": "eng", "feeAmount": 0, "installmentPaymentId": "e9ea4684-1277-4928-b6f0-6df6bccdb275", "installments": [ { "amount": 50000, "attemptCount": 1, "creationDate": "2024-01-15T12:43:16.467716+01:00", "currency": "EUR", "customerId": "ddf4aa07-5fd3-4ce1-bbaa-cdaafdb821d5", "installmentId": "54c40fa5-e25e-451b-9c5f-7a6d715c449c", "installmentPaymentId": "e9ea4684-1277-4928-b6f0-6df6bccdb275", "nextTransactionAttempt": "2024-01-18T04:00+01:00", "paid": false, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-15T12:43:17.074117+01:00", "uuid": "70ccb90d-3b1a-43d2-b1ee-146e65cf4906" } ], "transactions": [ "70ccb90d-3b1a-43d2-b1ee-146e65cf4906" ], "type": "INSTALLMENT" }, { "amount": 50000, "attemptCount": 0, "creationDate": "2024-01-15T12:43:16.467738+01:00", "currency": "EUR", "customerId": "ddf4aa07-5fd3-4ce1-bbaa-cdaafdb821d5", "installmentId": "1db9808f-cbd9-4498-8d35-497ff341c473", "installmentPaymentId": "e9ea4684-1277-4928-b6f0-6df6bccdb275", "nextTransactionAttempt": "2024-02-15T04:00+01:00", "paid": false, "sddTransactions": [], "transactions": [], "type": "INSTALLMENT" } ], "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "paymentRequestBreakdownId": "fbd3f414-f1dc-416a-a4cd-d7bf76d21b77", "paymentRequestId": "b4a010bb-8e3f-4261-af97-4993bede753f", "pointOfSale": { "name": "Corben Dallas", "uuid": "7d99a970-cc26-4de8-aa5d-d9ebf4088247" }, "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "startingDate": "2024-01-15", "status": "FAILURE" }, "requestId": "e217a158-fc58-4b43-8c5d-6f23f7cc7977" } PAYMENTREQUEST_INSTALLMENT_SUCCEEDEDHappen when the installment of the payment request succeeded { "eventId": "8f744f4e-4101-4df4-805f-22be1620b4e7", "type": "PAYMENTREQUEST_INSTALLMENT_SUCCEEDED", "creationDate": "2024-01-15T12:40:38.091171+01:00", "object": { "additionalData": {}, "amount": 100000, "card": { "commercialBrand": "VISA", "first6": "403203", "last4": "2700", "uuid": "7af37b48-4c0a-4e5d-81ec-0ecd6758ee82" }, "cardId": "7af37b48-4c0a-4e5d-81ec-0ecd6758ee82", "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-15T12:40:35.818249+01:00", "currency": "EUR", "customerId": "1d281559-80b2-45c0-9930-6fb94651d6b7", "depositAmount": 0, "endUserIp": "91.229.230.41", "endUserLanguage": "eng", "feeAmount": 0, "installmentPaymentId": "78e28b54-708c-45a7-a6ef-d3c1672ffe49", "installments": [ { "amount": 50000, "attemptCount": 1, "creationDate": "2024-01-15T12:40:35.818185+01:00", "currency": "EUR", "customerId": "1d281559-80b2-45c0-9930-6fb94651d6b7", "installmentId": "c3c2eb3c-9935-4eb1-a9bd-42f62f1c035c", "installmentPaymentId": "78e28b54-708c-45a7-a6ef-d3c1672ffe49", "paid": true, "sddTransactions": [], "transactionDatas": [ { "creationDate": "2024-01-15T12:40:36.418127+01:00", "uuid": "7f642ab2-5c15-4420-b85a-a97cb819844d" } ], "transactions": [ "7f642ab2-5c15-4420-b85a-a97cb819844d" ], "type": "INSTALLMENT" }, { "amount": 50000, "attemptCount": 0, "creationDate": "2024-01-15T12:40:35.818207+01:00", "currency": "EUR", "customerId": "1d281559-80b2-45c0-9930-6fb94651d6b7", "installmentId": "6eaf48a5-d0df-40d2-bd62-a297444d37d2", "installmentPaymentId": "78e28b54-708c-45a7-a6ef-d3c1672ffe49", "nextTransactionAttempt": "2024-02-15T04:00+01:00", "paid": false, "sddTransactions": [], "transactions": [], "type": "INSTALLMENT" } ], "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 2, "paymentRequestBreakdownId": "b665743f-6671-4749-9727-f801c0d9915a", "paymentRequestId": "3192c6e1-89e6-4d5a-9d96-3208b37f5c3f", "pointOfSale": { "name": "Corben Dallas", "uuid": "7d99a970-cc26-4de8-aa5d-d9ebf4088247" }, "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "startingDate": "2024-01-15", "status": "ACTIVE" }, "requestId": "b843a04a-cb43-4883-a584-7adc52142c55" } PAYMENTREQUEST_SUBSCRIPTION_FAILEDHappen when the subscription of the payment request failed { "subscriptionId": "26815c6a-19fe-49bd-b619-f14719f3e4ba", "creationDate": "2021-09-08T09:39:06.212604+02:00", "walletId": null, "customerId": "4e06b1e7-c24c-4927-a2da-f9c2dd3d4660", "cardId": "63afa65e-5674-49bf-9ac3-a98b82d16e92", "mandateId": null, "startingDate": "2021-09-08", "endingDate": null, "expectedEndingDate": "2022-09-07", "currentPeriodStart": "2021-09-08", "currentPeriodEnd": "2021-10-07", "requestedCollectionDate": null, "cancellationDate": null, "paymentRequestBreakdownId": null, "paymentRequestId": null, "merchantSubscriptionId": null, "subscriptionModel": { "subscriptionModelId": "01c3f578-a589-4ef7-9bb6-d855ff0fa121", "creationDate": "2021-09-08T09:39:06.137368+02:00", "pointOfSaleId": "cfc0b3c7-e666-4c52-b77a-96f234b873fe", "contractId": "71602dd0-2790-4743-877b-e72530d7576d", "merchantSubscriptionModelId": null, "amount": 10000, "currency": "EUR", "name": "Test Abo", "description": null, "intervalUnit": "MONTH", "intervalCount": 1, "iterationCount": 12, "additionalData": [] }, "quantity": 1, "status": "ACTIVE", "cancelAtPeriodEnd": null, "lastInvoice": { "invoiceId": "da0622d1-723b-4567-ad40-917a92a84e05", "creationDate": "2021-09-08T09:39:06.562016+02:00", "subscriptionId": "26815c6a-19fe-49bd-b619-f14719f3e4ba", "customerId": "4e06b1e7-c24c-4927-a2da-f9c2dd3d4660", "walletId": null, "mandateId": null, "merchantInvoiceId": null, "amount": 10000, "currency": "EUR", "closed": true, "invoiceItems": [ { "invoiceItemId": "e8b03ea3-85ca-4e85-ab3d-6b1c83122508", "creationDate": "2021-09-08T09:39:06.469080+02:00", "invoiceId": "da0622d1-723b-4567-ad40-917a92a84e05", "subscriptionId": "26815c6a-19fe-49bd-b619-f14719f3e4ba", "customerId": "4e06b1e7-c24c-4927-a2da-f9c2dd3d4660", "walletId": null, "mandateId": null, "merchantInvoiceItemId": null, "quantity": 1, "amount": 10000, "totalAmount": 10000, "currency": "EUR", "description": null, "type": "SUBSCRIPTION", "additionalData": [] } ], "description": null, "attemptCount": 1, "paid": true, "type": "SUBSCRIPTION", "nextTransactionAttempt": null, "transactions": [ "d0bcd686-1b6b-45aa-bf8a-c4cedab81127" ], "transfers": [], "sddTransactions": [], "eventReceivedDate": null, "additionalData": [] }, "endUserIp": "245.100.1.15", "endUserLanguage": null, "endToEndIdentification": null, "remittanceInformation": null, "redirect": null, "additionalData": [] } PAYMENTREQUEST_SUBSCRIPTION_SUCCEEDEDHappen when the subscription of the payment request succeeded { "subscriptionId": "da6a4622-4e5d-4da5-8d29-6c49d4052b69", "creationDate": "2021-09-09T10:32:15.675280+02:00", "walletId": null, "customerId": "2f2e6ce9-e0bb-4377-8eb9-6a8506c0baa4", "cardId": null, "mandateId": "b08bb9e0-72e4-426a-9998-585f083338fc", "startingDate": "2021-09-09", "endingDate": null, "expectedEndingDate": null, "currentPeriodStart": "2021-09-09", "currentPeriodEnd": "2021-10-08", "requestedCollectionDate": "2021-09-15", "cancellationDate": null, "paymentRequestBreakdownId": "825c03a4-fa3e-4df0-812d-f3d094f88ca3", "paymentRequestId": "ef4bf0e4-c77c-42a3-910e-b85e84b3c92b", "merchantSubscriptionId": null, "subscriptionModel": { "subscriptionModelId": "b1561842-46c1-422c-84a6-69ea8e1c8051", "creationDate": "2017-05-10T09:20:14.268+02:00", "pointOfSaleId": "cfc0b3c7-e666-4c52-b77a-96f234b873fe", "contractId": "71602dd0-2790-4743-877b-e72530d7576d", "merchantSubscriptionModelId": "a00e2d1b-87a1-4fb2-8e15-5d6132006d5b", "amount": 2000, "currency": "EUR", "name": "premium", "description": "abbonnement premium", "intervalUnit": "MONTH", "intervalCount": 1, "iterationCount": null, "additionalData": [] }, "quantity": 1, "status": "ACTIVE", "cancelAtPeriodEnd": null, "lastInvoice": { "invoiceId": "e257896b-86a1-41cf-865b-ac0531e2ea4a", "creationDate": "2021-09-09T10:32:16.072897+02:00", "subscriptionId": "da6a4622-4e5d-4da5-8d29-6c49d4052b69", "customerId": "2f2e6ce9-e0bb-4377-8eb9-6a8506c0baa4", "walletId": null, "mandateId": "b08bb9e0-72e4-426a-9998-585f083338fc", "merchantInvoiceId": null, "amount": 2000, "currency": "EUR", "closed": true, "invoiceItems": [ { "invoiceItemId": "0dabd4f2-6e36-4731-989a-d00bdf93e748", "creationDate": "2021-09-09T10:32:15.860404+02:00", "invoiceId": "e257896b-86a1-41cf-865b-ac0531e2ea4a", "subscriptionId": "da6a4622-4e5d-4da5-8d29-6c49d4052b69", "customerId": "2f2e6ce9-e0bb-4377-8eb9-6a8506c0baa4", "walletId": null, "mandateId": "b08bb9e0-72e4-426a-9998-585f083338fc", "merchantInvoiceItemId": null, "quantity": 1, "amount": 2000, "totalAmount": 2000, "currency": "EUR", "description": null, "type": "SUBSCRIPTION", "additionalData": [] } ], "description": null, "attemptCount": 1, "paid": true, "type": "SUBSCRIPTION", "nextTransactionAttempt": null, "transactions": [], "transfers": [], "sddTransactions": [ "0fd0d6cb-076a-4df5-9e89-7a62b74791e8" ], "eventReceivedDate": null, "additionalData": [] }, "endUserIp": "92.154.127.221", "endUserLanguage": null, "endToEndIdentification": null, "remittanceInformation": "PREMIUM", "redirect": null, "additionalData": [] } PAYMENTREQUEST_TRANSACTION_FAILEDHappen when the transaction of the payment request failed { "eventId": "66f20401-7ca6-47bd-95f1-830628171cf8", "type": "PAYMENTREQUEST_TRANSACTION_FAILED", "creationDate": "2024-01-05T14:46:59.418489+01:00", "object": { "additionalData": {}, "amount": 3600000, "amountCaptured": 0, "amountRefunded": 0, "archivingReference": "9GUGCIZEU0VN", "authorizationMovementId": "7ed9258a-ee75-4705-90f3-678973d2402e", "authorizationStatus": "FAILURE", "bankCode": "51", "bankMessage": "Simulation : Insufficient Funds", "browserAcceptLanguage": "en_US", "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36", "captureStatus": "UNCAPTURED", "card": { "additionalData": {}, "cardId": "30e49b6e-ed07-4b43-8862-2abd2f181678", "cardType": "DEBIT", "cardholderEmail": "gduhamel@centralpay.eu", "check": true, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-05T14:46:39.151564+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "7032968c1a882c155b3d8014297daabaa7133680", "first6": "400000", "infoId": "90eaf823-e2e7-4757-845a-b966bbab03c6", "last4": "0077", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "country": "FRA", "creationDate": "2024-01-05T14:46:58.190985+01:00", "currency": "EUR", "customAcceptanceData": {}, "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "endUserIp": "245.100.1.15", "endUserLanguage": "fre", "fee": 0, "merchantCategoryCode": "1711", "order": { "cardholderEmail": "GDU-Yvette5@hotmail.com", "country": "FRA" }, "partialAuthorization": false, "partialAuthorized": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "GDU-Buck_Gislason@hotmail.com", "refunded": false, "refunds": [], "source": "EC", "threeDSecure": false, "totalAmount": 3600000, "transactionId": "d530cdbe-b9fc-481b-b99d-8ce0db75deb4", "transactionStatus": "FAILURE", "transactiontransfers": [], "withCvv": true }, "requestId": "c120a3c0-764a-4c7e-a705-4721784212c7" } PAYMENTREQUEST_TRANSACTION_SUCCEEDEDHappen when the transaction of the payment request succeeded { "eventId": "11a2d5b6-b8da-4e83-8182-5bd417b0b6b6", "type": "PAYMENTREQUEST_TRANSACTION_SUCCEEDED", "creationDate": "2024-01-15T12:36:33.122848+01:00", "object": { "additionalData": {}, "amount": 100000, "amountCaptured": 100000, "amountRefunded": 0, "archivingReference": "3GZD1KYRDSHP", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "656d9ee5-8ccb-45d9-a8fe-c830adf69dfd", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "browserAcceptLanguage": "en_US", "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "captureDate": "2024-01-15T12:36:33.020554+01:00", "captureStatus": "CAPTURED", "card": { "additionalData": {}, "cardId": "5e6269c2-b8a7-4ced-ad12-4c6cfdeda11b", "cardTokenId": "0211ff3d-1e71-4772-8bdb-8c7e23905f86", "cardType": "DEBIT", "cardholderEmail": "gduhamel@centralpay.eu", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-15T12:36:29.312152+01:00", "europeanEconomicArea": true, "expirationMonth": 5, "expirationYear": 2025, "fingerprint": "9ede6a38739c3ce76c59bee1083409937d497e7a", "first6": "403203", "last4": "2700", "productType": "CONSUMER", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-15T12:36:31.689550+01:00", "currency": "EUR", "customAcceptanceData": {}, "endUserIp": "91.229.230.41", "endUserLanguage": "eng", "fee": 0, "merchantCategoryCode": "1711", "movementId": "455d5abf-4076-4b14-8804-87fc9a9ece8d", "order": { "cardholderEmail": "gduhamel@centralpay.eu" }, "partialAuthorization": false, "partialAuthorized": false, "paymentRequestBreakdownId": "75b6d330-948e-4aef-8967-d88d2acc7190", "paymentRequestId": "2bfc4ab4-f878-46b8-8a12-3263d2d28842", "payoutAmount": 100000, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "gduhamel@centralpay.eu", "refunded": false, "refunds": [], "residualAmount": 0, "source": "EC", "threeDSecure": true, "totalAmount": 100000, "transactionId": "f80eee11-a633-46c2-bf08-f31d33d3107a", "transactionStatus": "SUCCESS", "transactiontransfers": [], "withCvv": true }, "requestId": "6847ced8-92ab-45df-9f1d-1069112b98e1" } PAYMENTREQUEST_SDDTRANSACTION_SUCCEEDEDHappen when the SDD transaction of the payment request succeeded { "additionalData": [], "amount": 9500, "automaticValidation": true, "commission": 0, "creationDate": "2025-05-22T04:01:54.502927+02:00", "currency": "EUR", "endToEndIdentification": "SDD-1F9EF68A-F1E6-4632-BF6A", "endUserIp": "91.206.156.116", "fee": 0, "mandateId": "062572aa-e4c6-4759-a470-f4e7042464d2", "movementId": "a92a5dc6-7b29-49b3-b608-89f9d2ee0b30", "otpExpired": false, "paymentRequestBreakdownId": "f2e668b1-5718-4c82-87c1-9d361e426f01", "payoutAmount": 9500, "payoutCurrency": "EUR", "pointOfSaleId": "358a1ef4-1954-4c12-9900-7365fbaf194c", "remittanceInformation": "670646D49F3A", "requestedCollectionDate": "2025-05-23", "sddTransactionId": "53fd1a29-8a85-495c-951b-7a03fd7cbfa9", "sequenceType": "RCUR", "status": "CLEARED", "transactionTransfers": [], "validationDate": "2025-05-22T04:01:54.504469+02:00", "walletId": "23d3c9b0-ad0f-4cd5-a48e-32315827b1fa" } PAYMENTREQUEST_SCT_TRANSACTION_SUCCEEDEDHappen when the SCT transaction of the payment request succeeded { "additionalData": [], "amount": 9500, "automaticValidation": true, "commission": 0, "creationDate": "2025-05-22T04:01:54.502927+02:00", "currency": "EUR", "endToEndIdentification": "SDD-1F9EF68A-F1E6-4632-BF6A", "endUserIp": "91.206.156.116", "fee": 0, "mandateId": "062572aa-e4c6-4759-a470-f4e7042464d2", "movementId": "a92a5dc6-7b29-49b3-b608-89f9d2ee0b30", "otpExpired": false, "paymentRequestBreakdownId": "f2e668b1-5718-4c82-87c1-9d361e426f01", "payoutAmount": 9500, "payoutCurrency": "EUR", "pointOfSaleId": "358a1ef4-1954-4c12-9900-7365fbaf194c", "remittanceInformation": "670646D49F3A", "requestedCollectionDate": "2025-05-23", "sddTransactionId": "53fd1a29-8a85-495c-951b-7a03fd7cbfa9", "sequenceType": "RCUR", "status": "CLEARED", "transactionTransfers": [], "validationDate": "2025-05-22T04:01:54.504469+02:00", "walletId": "23d3c9b0-ad0f-4cd5-a48e-32315827b1fa" }
R-transaction SCT Vous pouvez rembourser une SCT Transaction si celle-ci est « RECEIVED » via le service Refund ou depuis le détail de la SCT Transaction dans le Portail utilisateur. Vous pouvez initier un remboursement total ou partiel en renseignant un montant. Votre client recevra les fonds sur son compte bancaire sous 24 à 48 heures ouvrés après l’opération. Votre compte de paiement est lui débité immédiatement, il doit donc être solvable pour pouvoir réaliser l’opération. Vous ne pouvez pas annuler un remboursement une fois celui-ci réalisé.
The PAYOUT object PAYOUT_CREATEDWhen a payout will be asked. { "eventId": "da2e06e2-c6d5-416e-91b8-3fd398e216aa", "type": "PAYOUT_CREATED", "creationDate": "2024-01-15T15:05:36.401305+01:00", "object": { "additionalData": {}, "amount": 1, "automatic": false, "creationDate": "2024-01-15T15:05:36.280515+01:00", "currency": "EUR", "description": "ma description", "destinationBankAccountId": "2377f038-d798-42b2-ac46-113105166bd4", "expectedArrivalDate": "2024-01-17", "fee": 0, "movementId": "e1715d31-d403-4ec5-85e4-7e41d0a3c69b", "net": 1, "payoutId": "d7cd6f62-1e56-4779-a48d-18977cdc643d", "payoutReference": "PAYOUT-20240115150536-a00f7a69", "payoutType": "SCT", "status": "PENDING", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "9d99d793-ef34-4e4f-aefd-627da4b77fbc" } PAYOUT_UPDATEDWhen an ongoing payout has been updated. { "eventId": "e1e8725c-eb98-400f-b3df-8f799a3ba165", "type": "PAYOUT_UPDATED", "creationDate": "2024-01-15T15:06:51.827583+01:00", "object": { "additionalData": {}, "amount": 1, "automatic": false, "creationDate": "2024-01-15T15:05:36.280515+01:00", "currency": "EUR", "description": "ma description", "destinationBankAccountId": "2377f038-d798-42b2-ac46-113105166bd4", "expectedArrivalDate": "2024-01-17", "fee": 0, "merchantPayoutId": "Up_Test_Doc", "movementId": "e1715d31-d403-4ec5-85e4-7e41d0a3c69b", "net": 1, "payoutId": "d7cd6f62-1e56-4779-a48d-18977cdc643d", "payoutReference": "PAYOUT-20240115150536-a00f7a69", "payoutType": "SCT", "status": "PENDING", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "a39650ab-ddcf-4da7-965e-a0e5d44949ab", "objectBeforeUpdate": { "additionalData": {}, "amount": 1, "automatic": false, "creationDate": "2024-01-15T15:05:36.280515+01:00", "currency": "EUR", "description": "ma description", "destinationBankAccountId": "2377f038-d798-42b2-ac46-113105166bd4", "expectedArrivalDate": "2024-01-17", "fee": 0, "movementId": "e1715d31-d403-4ec5-85e4-7e41d0a3c69b", "net": 1, "payoutId": "d7cd6f62-1e56-4779-a48d-18977cdc643d", "payoutReference": "PAYOUT-20240115150536-a00f7a69", "payoutType": "SCT", "status": "PENDING", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" } } PAYOUT_CANCELEDWhen an ongoing payout has been canceled. { "eventId": "9630cef4-e1f4-4f5d-811d-e361c4c30c78", "type": "PAYOUT_CANCELED", "creationDate": "2024-01-08T15:15:55.576036+01:00", "object": { "additionalData": {}, "amount": 1, "automatic": false, "cancelMovementId": "258e7c45-1d4f-48fc-a026-bebb8c10014e", "cancellationDate": "2024-01-08T15:15:55.562863+01:00", "creationDate": "2024-01-08T15:15:22.435232+01:00", "currency": "EUR", "description": "ma description", "destinationBankAccountId": "d33c400b-9338-4916-a4ca-e8affcfd9ebc", "expectedArrivalDate": "2024-01-10", "fee": 0, "merchantPayoutId": "Up_Test_Doc", "movementId": "3d8c5417-2cc9-4c7d-9504-5446cac24e87", "net": 1, "payoutId": "d68c9005-8954-4d17-96f5-8435a81ace20", "payoutReference": "PAYOUT-20240108151522-a00f7a69", "payoutType": "SCT", "status": "CANCEL", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "7b69dbff-59eb-489f-ac0a-9df343f2bd2a" } PAYOUT_PAIDWhen an ongoing payout has been properly executed. { "eventId": "9a1df5b8-6b24-4274-ad52-1295999f4a6c", "type": "PAYOUT_PAID", "creationDate": "2024-01-30T11:29:15.965095+01:00", "object": { "additionalData": {}, "amount": 100, "arrivalDate": "2024-01-30", "automatic": true, "creationDate": "2024-01-26T16:56:15.147347+01:00", "currency": "EUR", "destinationBankAccountId": "2377f038-d798-42b2-ac46-113105166bd4", "expectedArrivalDate": "2024-01-28", "fee": 0, "movementId": "b4fafbb7-e73a-4a98-bc6b-f4c7dfee7104", "net": 100, "payoutId": "f88cab14-b73e-44fc-adcf-9cb1f4f4c43b", "payoutReference": "PAYOUT-20240126165615-a00f7a69", "payoutType": "SCT", "status": "PAID", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "ceffc00e-a708-45fd-bc16-fe0999455e06" } PAYOUT_REVERSAL_CREATEDWhen a payout reversal has been created
Virements internationaux Les virements bancaires internationaux sont gérés via le réseau SWIFT (contrairement au réseau SEPA pour les virements européens). Ces virements peuvent être émis depuis un très grand nombre de pays en EUROS ou dans d’autres devises. Il sera prochainement possible d’accepter des virements internationaux via le service SCT Transaction. Veuillez contacter CentralPay si ce service est un enjeu pour le développement de votre activité.
The REFUND object REFUND_CREATEDWhen a refund is created { "refundId": "3c349da5-c144-424b-bbdd-6f756b43c4ee", "creationDate": "2021-09-08T09:40:42.140717+02:00", "transactionId": "9c6ffb50-11cf-418c-9c9f-57a3fba20c20", "clearingDate": null, "cancellationDate": null, "merchantRefundId": null, "currency": "EUR", "amount": 1, "payoutCurrency": "EUR", "payoutAmount": 1, "commission": 0, "fee": 0, "description": "ma description", "status": "UNCLEARED", "movementId": "8981c46d-1e9e-4501-b78c-2d3e6e313fda", "cancelMovementId": null, "additionalData": [] } REFUND_CANCELEDWhen a refund is cancelled { "refundId": "3c349da5-c144-424b-bbdd-6f756b43c4ee", "creationDate": "2021-09-08T09:40:42.140717+02:00", "transactionId": "9c6ffb50-11cf-418c-9c9f-57a3fba20c20", "clearingDate": null, "cancellationDate": "2021-09-08T09:40:42.646025+02:00", "merchantRefundId": null, "currency": "EUR", "amount": 1, "payoutCurrency": "EUR", "payoutAmount": 1, "commission": 0, "fee": 0, "description": "ma description", "status": "CANCELED", "movementId": "8981c46d-1e9e-4501-b78c-2d3e6e313fda", "cancelMovementId": "b315d96f-8dc0-437d-af5f-729a8c0bb502", "additionalData": [] } REFUND_UPDATEDWhen a refund is updated
Retours, statuts et webhooks 1. Retours liés aux SCT Transactions Il n’existe pas de code retours pour les SCT Transactions. 2. Statuts liés aux SCT Transactions Consultez les Statuts Transaction ➝ Consultez les Statuts Refunds ➝ 3. Webhooks liés aux SCT Transactions Consultez les Webhooks SCT Transaction ➝ Consultez les Webhooks Refunds ➝ Consultez les Webhooks Customer ➝
The SCT Transaction object SCT_TRANSACTION_CREATEDWhen a sct transaction is created { "eventId": "283cb3c2-ddfd-4db2-aef7-df47e642d6b2", "type": "SCT_TRANSACTION_CREATED", "creationDate": "2024-01-08T16:03:10.536372+01:00", "object": { "additionalData": {}, "amount": 12345, "bankAccount": { "bic": "AXABFRPP", "iban": "FR7612548029980000000150086" }, "bic": "AXABFRPP", "creationDate": "2024-01-08T16:03:10.516099+01:00", "currency": "EUR", "destinationBankAccountId": "ae909782-18d2-42dc-b9b7-9e3c38dac167", "iban": "FR7612548029980000000150086", "order": { "firstName": "CORBEN", "lastName": "DALLAS" }, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "refunds": [], "sctTransactionId": "5b6ffc2f-126d-434f-bf3d-fd0364017192", "sepaReference": "TOKWTB", "status": "PENDING", "transactionTransfers": [] }, "requestId": "f3ccb2bd-df53-4b50-b64a-5d503dda7440" } SCT_TRANSACTION_UPDATEDWhen a sct transaction is updated { "eventId": "8057c6df-86d2-45e0-8cc9-9d2d7163ab99", "type": "SCT_TRANSACTION_UPDATED", "creationDate": "2024-01-08T16:03:44.760244+01:00", "object": { "additionalData": {}, "amount": 12345, "bankAccount": { "bic": "AXABFRPP", "iban": "FR7612548029980000000150086" }, "bic": "AXABFRPP", "creationDate": "2024-01-08T16:03:10.516099+01:00", "currency": "EUR", "description": "ma description", "destinationBankAccountId": "ae909782-18d2-42dc-b9b7-9e3c38dac167", "iban": "FR7612548029980000000150086", "order": { "firstName": "CORBEN", "lastName": "DALLAS" }, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "processed": false, "refunds": [], "sctTransactionId": "5b6ffc2f-126d-434f-bf3d-fd0364017192", "sepaReference": "TOKWTB ", "status": "PENDING", "transactionTransfers": [] }, "requestId": "a40ff9c2-3285-4b1b-aee2-de5b21402ad1", "objectBeforeUpdate": { "additionalData": {}, "amount": 12345, "bankAccount": { "bic": "AXABFRPP", "iban": "FR7612548029980000000150086" }, "bic": "AXABFRPP", "creationDate": "2024-01-08T16:03:10.516099+01:00", "currency": "EUR", "destinationBankAccountId": "ae909782-18d2-42dc-b9b7-9e3c38dac167", "iban": "FR7612548029980000000150086", "order": { "firstName": "CORBEN", "lastName": "DALLAS" }, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "processed": false, "refunds": [], "sctTransactionId": "5b6ffc2f-126d-434f-bf3d-fd0364017192", "sepaReference": "TOKWTB ", "status": "PENDING", "transactionTransfers": [] } } SCT_TRANSACTION_RECEIVEDWhen a sct transaction is received { "eventId": "b6fef094-77d5-4230-8526-baa0fb4b10d6", "type": "SCT_TRANSACTION_RECEIVED", "creationDate": "2024-01-10T12:39:40.146639+01:00", "object": { "additionalData": {}, "amount": 12345, "bankAccount": { "bic": "CEAYFR22", "iban": "FR7699999000019761523040665" }, "bic": "CEAYFR22", "commission": 0, "creationDate": "2024-01-10T12:32:39.516605+01:00", "currency": "EUR", "debtorInfo": { "address": { "addressLines": [ "Direccion del ordenante", "08010 BARCELONA" ], "country": "ES" }, "name": "GUILLAUME MAXIMILIEN JACQUES PONSARD" }, "destinationBankAccountId": "ae909782-18d2-42dc-b9b7-9e3c38dac167", "fee": 0, "iban": "FR7699999000019761523040665", "merchantSctTransactionId": "8srWEcIiIW", "movementId": "25d7a3f4-a421-4dc7-8554-486bf801bade", "order": { "firstName": "CORBEN", "lastName": "DALLAS" }, "payoutAmount": 12345, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "processed": true, "processedDate": "2024-01-10T12:39:40.099911+01:00", "receiptDate": "2024-01-10T12:39:40.099911+01:00", "sctTransactionId": "4cbd9866-b723-4a3a-9bf8-b30382b91909", "sepaReference": "ZCPTDW ", "status": "RECEIVED", "transactionTransfers": [] }, "requestId": "4be1b982-107d-4133-bdb2-377afd4d7ae4" } SCT_TRANSACTION_CANCELEDWhen a sct transaction is cancelled { { "eventId": "66cedcb4-091a-4023-beb8-d64f86438c73", "type": "SCT_TRANSACTION_CANCELED", "creationDate": "2024-01-08T16:03:57.125156+01:00", "object": { "additionalData": {}, "amount": 12345, "bankAccount": { "bic": "AXABFRPP", "iban": "FR7612548029980000000150086" }, "bic": "AXABFRPP", "cancellationDate": "2024-01-08T16:03:57.119857+01:00", "creationDate": "2024-01-08T16:03:10.516099+01:00", "currency": "EUR", "description": "ma description", "destinationBankAccountId": "ae909782-18d2-42dc-b9b7-9e3c38dac167", "iban": "FR7612548029980000000150086", "order": { "firstName": "CORBEN", "lastName": "DALLAS" }, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "processed": false, "refunds": [], "sctTransactionId": "5b6ffc2f-126d-434f-bf3d-fd0364017192", "sepaReference": "TOKWTB ", "status": "CANCELED", "transactionTransfers": [] }, "requestId": "8aa84040-e72b-4e78-9149-0e5478d74b10" } } SCT_TRANSACTION_REVERSAL_CREATEDWhen a sct transaction reversal is created { "eventId": "80544b1c-a167-4dd5-b493-166642e543fd", "type": "SCT_TRANSACTION_REVERSAL_CREATED", "creationDate": "2024-01-11T11:48:24.125374+01:00", "object": { "amount": 12345, "creationDate": "2024-01-11T11:48:24.116525+01:00", "currency": "EUR", "description": "Remboursement du client", "sctTransactionId": "2cf657da-9431-4da2-9720-4b877a9b44ef", "sctTransactionReversalId": "d5a11ee9-a598-4457-9ed8-e9a7961baaf7", "status": "PENDING" }, "requestId": "9ea9af82-921f-4b41-9de8-e461bc284849" }} SCT_TRANSACTION_REVERSAL_RECEIVEDWhen a sct transaction reversal is received { "eventId": "180bfcfd-a46c-40e3-8d9c-e1eeb380d84f", "type": "SCT_TRANSACTION_REVERSAL_RECEIVED", "creationDate": "2024-01-30T12:38:45.221820+01:00", "object": { "amount": 12345, "creationDate": "2024-01-11T11:48:24.116525+01:00", "currency": "EUR", "description": "Remboursement du client", "expectedAvailabilityDate": "2024-01-30", "movementId": "ec5a1db6-af35-47ad-9387-9b37e7cc6053", "sctTransactionId": "2cf657da-9431-4da2-9720-4b877a9b44ef", "sctTransactionReversalId": "d5a11ee9-a598-4457-9ed8-e9a7961baaf7", "status": "RECEIVED" }, "requestId": "20319064-8dfb-453f-ab0b-d621055606d7" } SCT_TRANSACTION_REFUNDED_CANCELEDWhen a sct transaction refund is cancelled SCT_TRANSACTION_REFUNDED_RECEIVED,When a sct transaction refund is received SCT_TRANSACTION_REFUNDEDWhen a sct transaction reversal is created
Informations générales Introduction Le prélèvement SEPA (SEPA Direct Debit ou « SDD » en anglais) permet à un créancier (marchand) de prélever un montant dû directement sur le compte de son débiteur (client). Il est principalement destiné aux règlements récurrents (abonnements ou paiements en plusieurs fois) mais peut-être dans certains cas utilisé pour des règlements ponctuels (par exemple pour le règlement de factures entre professionnels). Étant émis à l’initiative du créancier, il requiert la collecte préalable d’une autorisation de son débiteur. Le marchand édite ainsi un « Mandat SEPA » précisant les conditions de prélèvement et les coordonnées bancaires des deux parties que son débiteur devra signer. 1/ Les deux types de prélèvement SEPA Il existe deux types de prélèvements SEPA : Le prélèvement SEPA « CORE » : le plus répandu, il permet aux créanciers de débiter des comptes de particuliers comme de personnes morales. Le mandat SEPA est édité et signé entre les deux parties sans contraintes particulières. Le débiteur est cependant protégé et peut contester un prélèvement CORE sans motifs auprès de sa banque sous 8 semaines. Le prélèvement SEPA « B2B » : réservé aux prélèvements entre entreprises. Le mandat SEPA est édité, signé puis doit être transmis par le débiteur à sa banque. Le parcours de contractualisation requiert ainsi une action forte du débiteur et la validation de sa banque. Cependant, les prélèvements initiés depuis ce type de mandats ne sont pas contestables. CentralPay ne propose pas ce service de prélèvement SEPA type « B2B ». 2/ Risques de rejet et de contestation Le prélèvement SEPA étant un moyen de paiement dont les transactions sont initiées sans authentification forte du client, les risques de rejets et de contestations sont à prendre en considération. Consultez la rubrique « R-Transaction SDD » pour en savoir plus sur les rejets et contestations SDD. 3/ Informations importantes Le prélèvement SEPA est utilisable sur la vaste majorité des comptes bancaires « courants » des pays de la zone SEPA et certains de l’Espace Économique Européen hors SEPA. Cela dépend de la connectivité aux réseaux SEPA des banques des débiteurs. Les comptes spéciaux type « comptes épargnes » ne sont pas atteignables. Les opérations SEPA sont traitées en devise EUROS (€) uniquement. Les opérations SEPA sont traitées lors des jours ouvrés uniquement (hors weekend et jours fériés). Ainsi, le délai de réception des fonds varie entre 2 à 5 jours à compter de la date d’initiation de l’opération. Le débiteur doit être informé par le créancier des prélèvements à venir, au moins 14 jours avant la date, soit par l’envoi d’un échéancier, d’une notification ou d’une facture. La durée de validité d’un mandat SEPA est de 36 mois après la dernière transaction opérée sur ce mandat. Dans le cadre d’un prélèvement SEPA sur le compte bancaire d’une entreprise (personne morale), le créancier doit veiller à ce que le mandat SEPA soit adressé et signé par le dirigeant ou un responsable habilité (gérant, service comptabilité…). Le prélèvement SEPA est particulièrement adapté aux transactions récurrentes d’un montant situé entre 20 et 200 EUR pour les débiteurs particuliers, et entre 20 et 2 000 EUR pour les débiteurs personnes morales.
The SDD TRANSACTION object SDDTRANSACTION_CREATEDWhen a SDD Transaction is created { "eventId": "bc6cb3b3-2960-4833-88a4-ddce9335fcbe", "type": "SDDTRANSACTION_CREATED", "creationDate": "2024-01-11T13:02:56.629960+01:00", "object": { "additionalData": {}, "amount": 12, "automaticValidation": false, "creationDate": "2024-01-11T13:02:56.373932+01:00", "currency": "EUR", "endToEndIdentification": "M6C+XE3H5", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpirationDate": "2024-01-11T13:17:56.374014+01:00", "otpExpired": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-12", "sddTransactionId": "96747d6a-e6e3-4d8e-97cf-22f3e407a57e", "sequenceType": "RCUR", "status": "PENDING", "transactionTransfers": [], "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "27dd69d1-3789-4abc-9e9c-d6644c436f9b" } SDDTRANSACTION_CLEAREDWhen a SDD Transaction is received { "eventId": "e54db468-ee08-4f61-83b2-c91b7c6a0c05", "type": "SDDTRANSACTION_CLEARED", "creationDate": "2024-01-11T14:30:59.249935+01:00", "object": { "additionalData": {}, "amount": 12, "automaticValidation": false, "commission": 0, "creationDate": "2024-01-11T14:28:41.754664+01:00", "currency": "EUR", "endToEndIdentification": "84J4ZDNEW", "endUserIp": "245.100.1.15", "fee": 0, "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "movementId": "0a6ffbe5-f067-4c03-9f62-672cb46e312c", "otpExpirationDate": "2024-01-11T14:43:46.129105+01:00", "otpExpired": false, "payoutAmount": 12, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-12", "sddTransactionId": "f6f5ddbc-1e4c-499c-bee2-0aaa6190a698", "sequenceType": "RCUR", "status": "CLEARED", "transactionTransfers": [], "validationDate": "2024-01-11T14:30:56.448356+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "5a2c73f8-1a46-451c-9444-608cb8a1f92d" } SDDTRANSACTION_VALIDATEDWhen a SDD Transaction is validated { "eventId": "2a21fd0e-19f2-469e-a80d-0300398f7d40", "type": "SDDTRANSACTION_VALIDATED", "creationDate": "2024-01-11T13:03:17.335248+01:00", "object": { "additionalData": {}, "amount": 12, "automaticValidation": false, "creationDate": "2024-01-11T13:02:56.373932+01:00", "currency": "EUR", "endToEndIdentification": "M6C+XE3H5", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpirationDate": "2024-01-11T13:17:56.374014+01:00", "otpExpired": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-12", "sddTransactionId": "96747d6a-e6e3-4d8e-97cf-22f3e407a57e", "sequenceType": "RCUR", "status": "ACTIVE", "transactionTransfers": [], "validationDate": "2024-01-11T13:03:17.329335+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "3af961bc-140f-4630-bdda-cff9854484b0" } SDDTRANSACTION_CANCELEDWhen a SDD Transaction is cancelled { "eventId": "894cf6da-e9d6-41b4-8504-d541c13dd7e5", "type": "SDDTRANSACTION_CANCELED", "creationDate": "2024-01-11T12:46:20.865252+01:00", "object": { "additionalData": {}, "amount": 12, "automaticValidation": true, "cancellationDate": "2024-01-11T12:46:20.844829+01:00", "creationDate": "2024-01-11T12:46:04.839313+01:00", "currency": "EUR", "endToEndIdentification": "2(OSAI,:P", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpired": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-23", "sddTransactionId": "a5530b31-ef60-4511-adeb-18843f61ef81", "sequenceType": "RCUR", "status": "CANCELED", "transactionTransfers": [], "validationDate": "2024-01-11T12:46:04.839337+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "3f82090d-f76b-4c3a-9d12-4befb22313e5" } SDDTRANSACTION_RENEWOTPWhen a request for an OTP renewal has been sent for an SSD transaction { "eventId": "fd352df9-2abc-43b8-a761-07e28375d4ff", "type": "SDDTRANSACTION_RENEWOTP", "creationDate": "2024-01-11T14:28:46.213454+01:00", "object": { "additionalData": {}, "amount": 12, "automaticValidation": false, "creationDate": "2024-01-11T14:28:41.754664+01:00", "currency": "EUR", "endToEndIdentification": "84J4ZDNEW", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpirationDate": "2024-01-11T14:43:46.129105+01:00", "otpExpired": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-12", "sddTransactionId": "f6f5ddbc-1e4c-499c-bee2-0aaa6190a698", "sequenceType": "RCUR", "status": "PENDING", "transactionTransfers": [], "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, "requestId": "85a68830-fa0f-41c9-8c80-d5c578f998f9" } SDDTRANSACTION_REVERSED_CREATEDWhen a SDD Transaction reversal is created
Identifiant de Créancier SEPA L’Identifiant Créancier SEPA (ICS) est un numéro de référence unique qui identifie chaque émetteur de prélèvement. En France, il est composé de 13 caractères alphanumériques, dont les 2 premiers représentent le code pays ISO (FR pour la France). Disposer d’un ICS est un prérequis obligatoire pour réaliser des prélèvements. Le créancier doit faire la demande d’attribution de l’ICS auprès de sa banque. Le créancier conserve ensuite son ICS, même s’il change de banque. Communiquez votre ICS à CentralPay lors de votre entrée en relation afin que nos équipes puissent le déclarer dans votre compte.
Déclaration du compte bancaire Pour réaliser une transaction par prélèvement SEPA, il faut d’abord créer le profil de votre client (le débiteur) et déclarer ses coordonnées bancaires sur la plateforme CentralPay. 1/ Créer un profil client « Customer » Collecter les informations de votre client (email, nom, prénom …) Créer un profil client Customer Récupérer la propriété « customerId » dans le retour de création du Customer 2/ Créer un compte bancaire « bankAccount » Collecter les coordonnées bancaires de votre client (IBAN, BIC, nom du titulaire du compte …) Créer un compte bancaire bankAccount en renseignant le « customerId » de votre client Récupérer le « bankAccountId » et le « identityId » dans le retour de création du bankAccount
The MANDATE object MANDATE_CREATEDWhen a mandate is created { "eventId": "ba739034-7e86-4280-9e19-b8d3be3f683c", "type": "MANDATE_CREATED", "creationDate": "2024-01-11T12:41:18.209916+01:00", "object": { "additionalData": {}, "creationDate": "2024-01-11T12:41:17.403384+01:00", "creditorBankAccountId": "d33c400b-9338-4916-a4ca-e8affcfd9ebc", "customerId": "78497f3c-baf4-42ae-92e2-cc0cfdd69c2c", "debtorBankAccountId": "053c0160-9b62-4424-aaf7-6f74e6d5f7f6", "debtorEmail": "gduhamel@centralpay.eu", "debtorPhone": "+33600000000", "description": "ma description", "language": "fre", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpirationDate": "2024-01-11T12:56:17.403395+01:00", "otpExpired": false, "paymentType": "PUCT", "rum": "GT20KDMVN", "sddTransactions": [], "status": "PENDING", "ultimateCreditorIdentityId": "2df8d9cd-afcc-47dd-8593-560028b66f50" }, "requestId": "800c83a7-d37b-4c33-9907-8874d5c7fa87" } MANDATE_SIGNEDWhen a mandate is signed { "eventId": "d60f35d6-c20a-4317-9ea9-dc90fd4bcd1b", "type": "MANDATE_SIGNED", "creationDate": "2024-01-11T12:43:07.337387+01:00", "object": { "additionalData": {}, "creationDate": "2024-01-11T12:41:17.403384+01:00", "creditorBankAccountId": "d33c400b-9338-4916-a4ca-e8affcfd9ebc", "customerId": "78497f3c-baf4-42ae-92e2-cc0cfdd69c2c", "debtorBankAccountId": "053c0160-9b62-4424-aaf7-6f74e6d5f7f6", "debtorEmail": "gduhamel@centralpay.eu", "debtorPhone": "+33600000000", "description": "ma description", "language": "fre", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpirationDate": "2024-01-11T12:56:17.403395+01:00", "otpExpired": false, "paymentType": "PUCT", "pdfFileId": "7b8d75bd-8f09-400d-af9c-c8787a0858fc", "rum": "GT20KDMVN", "sddTransactions": [], "signatureCity": "TOURS", "signatureDate": "2024-01-11T12:43:06.838810+01:00", "signatureIpAddress": "245.100.1.15", "status": "ACTIVE", "ultimateCreditorIdentityId": "2df8d9cd-afcc-47dd-8593-560028b66f50" }, "requestId": "4c40f8ba-94fd-433c-b7eb-71bbad68f51a" } MANDATE_OBSOLETEDWhen a mandate is obsolete { "eventId": "8961d9a3-1b38-4275-9ef7-1c3f9dc993e9", "type": "MANDATE_OBSOLETED", "creationDate": "2024-01-11T14:34:29.346268+01:00", "object": { "additionalData": {}, "creationDate": "2024-01-11T12:41:17.403384+01:00", "creditorBankAccountId": "d33c400b-9338-4916-a4ca-e8affcfd9ebc", "customerId": "78497f3c-baf4-42ae-92e2-cc0cfdd69c2c", "debtorBankAccountId": "053c0160-9b62-4424-aaf7-6f74e6d5f7f6", "debtorEmail": "gduhamel@centralpay.eu", "debtorPhone": "+3300000000", "description": "ma description", "language": "fre", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "obsolescenceDate": "2024-01-11T14:34:29.315888+01:00", "otpExpirationDate": "2024-01-11T12:56:17.403395+01:00", "otpExpired": true, "paymentType": "PUCT", "pdfFileId": "7b8d75bd-8f09-400d-af9c-c8787a0858fc", "rum": "GT20KDMVN", "sddTransactions": [ { "additionalData": {}, "amount": 12, "automaticValidation": true, "cancellationDate": "2024-01-11T12:46:20.844829+01:00", "creationDate": "2024-01-11T12:46:04.839313+01:00", "currency": "EUR", "endToEndIdentification": "2(OSAI,:P", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpired": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-23", "sddTransactionId": "a5530b31-ef60-4511-adeb-18843f61ef81", "sequenceType": "RCUR", "status": "CANCELED", "transactionTransfers": [], "validationDate": "2024-01-11T12:46:04.839337+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, { "additionalData": {}, "amount": 12, "automaticValidation": true, "creationDate": "2024-01-11T12:46:27.952977+01:00", "currency": "EUR", "endToEndIdentification": "MUPXTJXVK", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpired": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-23", "sddTransactionId": "3b781c44-ca15-4cbf-a529-f73e9c9fb0cf", "sequenceType": "RCUR", "status": "ACTIVE", "transactionTransfers": [], "validationDate": "2024-01-11T12:46:27.953004+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, { "additionalData": {}, "amount": 12, "automaticValidation": true, "creationDate": "2024-01-11T12:53:09.201843+01:00", "currency": "EUR", "endToEndIdentification": "7C28543RZ", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpired": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-12", "sddTransactionId": "af2e9240-d58f-478d-8e64-d8041ac882e0", "sequenceType": "RCUR", "status": "ACTIVE", "transactionTransfers": [], "validationDate": "2024-01-11T12:53:09.201871+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, { "additionalData": {}, "amount": 12, "automaticValidation": false, "creationDate": "2024-01-11T13:02:56.373932+01:00", "currency": "EUR", "endToEndIdentification": "M6C+XE3H5", "endUserIp": "245.100.1.15", "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "otpExpirationDate": "2024-01-11T13:17:56.374014+01:00", "otpExpired": true, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-12", "sddTransactionId": "96747d6a-e6e3-4d8e-97cf-22f3e407a57e", "sequenceType": "RCUR", "status": "ACTIVE", "transactionTransfers": [], "validationDate": "2024-01-11T13:03:17.329335+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" }, { "additionalData": {}, "amount": 12, "automaticValidation": false, "commission": 0, "creationDate": "2024-01-11T14:28:41.754664+01:00", "currency": "EUR", "endToEndIdentification": "84J4ZDNEW", "endUserIp": "245.100.1.15", "fee": 0, "mandateId": "f4d63345-b84c-47d3-ad65-bd8cb255dc8a", "movementId": "0a6ffbe5-f067-4c03-9f62-672cb46e312c", "otpExpirationDate": "2024-01-11T14:43:46.129105+01:00", "otpExpired": false, "payoutAmount": 12, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "remittanceInformation": "TEST", "requestedCollectionDate": "2024-01-12", "sddTransactionId": "f6f5ddbc-1e4c-499c-bee2-0aaa6190a698", "sequenceType": "RCUR", "status": "CLEARED", "transactionTransfers": [], "validationDate": "2024-01-11T14:30:56.448356+01:00", "walletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050" } ], "signatureCity": "TOURS", "signatureDate": "2024-01-11T12:43:06.838810+01:00", "signatureIpAddress": "245.100.1.15", "status": "OBSOLETE", "ultimateCreditorIdentityId": "2df8d9cd-afcc-47dd-8593-560028b66f50" }, "requestId": "8d56fb75-1ce2-458b-b057-e8722ec22427" } MANDATE_RENEWOTPWhen a request for an OTP renewal has been sent for an mandate { "eventId": "8f103a2e-8e05-4af7-9b57-a76dc3fe1b48", "type": "MANDATE_RENEWOTP", "creationDate": "2024-01-11T14:34:56.606277+01:00", "object": { "additionalData": {}, "creationDate": "2024-01-11T14:34:36.412083+01:00", "creditorBankAccountId": "d33c400b-9338-4916-a4ca-e8affcfd9ebc", "customerId": "78497f3c-baf4-42ae-92e2-cc0cfdd69c2c", "debtorBankAccountId": "053c0160-9b62-4424-aaf7-6f74e6d5f7f6", "debtorEmail": "gduhamel@centralpay.eu", "debtorPhone": "+3300000000", "description": "ma description", "language": "fre", "mandateId": "ffc24f5a-f43a-4e9f-b4f9-1d7d1b87a46c", "otpExpirationDate": "2024-01-11T14:49:56.133201+01:00", "otpExpired": false, "paymentType": "PUCT", "rum": "YRHCV3K37", "sddTransactions": [], "status": "PENDING", "ultimateCreditorIdentityId": "2df8d9cd-afcc-47dd-8593-560028b66f50" }, "requestId": "a427c5b9-dbf4-4cb2-b9a5-bdf76418901b" }
The SUBSCRIPTION object SUBSCRIPTIONMODEL_CREATEDWhen a Subscription model is created { "eventId": "396d5bf8-f494-4ba6-91ef-29bd6be595b1", "type": "SUBSCRIPTIONMODEL_CREATED", "creationDate": "2024-01-08T11:56:53.360135+01:00", "object": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T11:56:53.353430+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test Abo", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "50eeed1d-b908-4fc3-8863-466a733b272c" }, "requestId": "9dd48255-2b54-40bb-bd38-dfeac5d0535b" } SUBSCRIPTIONMODEL_UPDATEDWhen a Subscription model is updated { "eventId": "d00f3f00-b2d6-4de4-8c41-a106b88054b9", "type": "SUBSCRIPTIONMODEL_UPDATED", "creationDate": "2024-01-08T11:58:22.826908+01:00", "object": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T11:56:53.353430+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "CPMInnn", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "50eeed1d-b908-4fc3-8863-466a733b272c" }, "requestId": "4bc97650-9a0e-4032-ba46-8088c1e31b0b", "objectBeforeUpdate": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T11:56:53.353430+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test Abo", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "50eeed1d-b908-4fc3-8863-466a733b272c" } } SUBSCRIPTION_CREATEDWhen a Subscription is created { "eventId": "f87999fa-ab71-4a57-bc1f-b360670ef593", "type": "SUBSCRIPTION_CREATED", "creationDate": "2024-01-08T12:24:12.821583+01:00", "object": { "additionalData": {}, "cardId": "8750301a-f2ae-4447-8a3a-62e37675e1ca", "creationDate": "2024-01-08T12:24:12.700858+01:00", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "endUserIp": "245.100.1.15", "expectedEndingDate": "2025-01-09", "merchantSubscriptionId": "Gauthier refapi", "quantity": 1, "startingDate": "2024-01-10", "status": "ACTIVE", "subscriptionId": "c64ba2e5-a0b1-43e2-867a-27555c355331", "subscriptionModel": { "additionalData": {}, "amount": 100, "creationDate": "2024-01-08T12:20:23.305903+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test refapi", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "e16a35bf-ca34-48b7-9726-139c15e89fa9" } }, "requestId": "c66d38ac-5f7d-4a52-840c-ebadade3bf4f" } SUBSCRIPTION_FAILEDWhen a Subscription failed { "eventId": "3c8ca51e-aa44-41ca-ad24-872a86ed35ee", "type": "SUBSCRIPTION_FAILED", "creationDate": "2024-01-15T11:59:56.223023+01:00", "object": { "additionalData": {}, "cancelAtPeriodEnd": false, "cancellationDate": "2024-01-15T11:59:55.877297+01:00", "cardId": "0a6b2fdc-85e4-4ffa-bffa-0ae276e11aa3", "creationDate": "2024-01-15T11:59:52.983206+01:00", "currentPeriodEnd": "2024-01-15", "currentPeriodStart": "2024-01-15", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "endUserIp": "245.100.1.15", "endingDate": "2024-01-15", "expectedEndingDate": "2025-01-14", "lastInvoice": { "additionalData": {}, "amount": 10000, "attemptCount": 1, "closed": true, "creationDate": "2024-01-15T11:59:53.614864+01:00", "currency": "EUR", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "invoiceId": "e0909ca3-a337-43ce-9769-d65e927b3a47", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-15T11:59:53.357382+01:00", "currency": "EUR", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "invoiceId": "e0909ca3-a337-43ce-9769-d65e927b3a47", "invoiceItemId": "0c153918-5128-4ecb-8570-7c9f71a500ec", "quantity": 1, "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "totalAmount": 10000, "type": "SUBSCRIPTION" } ], "nextTransactionAttempt": "2024-01-18T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "transactions": [ "19b41977-e973-4dd9-846e-5777459196a5" ], "transfers": [], "type": "SUBSCRIPTION" }, "merchantSubscriptionId": "Test refapi gogo", "quantity": 1, "startingDate": "2024-01-15", "status": "CANCELED", "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "subscriptionModel": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-11T15:02:53.061463+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test Abo", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "7cd1b504-bed3-4435-84be-2e19f2c8e2f6" } }, "requestId": "ac2cae53-8d39-4e5a-8098-bcf0ab55a7cc" } SUBSCRIPTION_UPDATEDWhen a Subscription is updated { "eventId": "3da295c6-403e-4080-9398-9cebf7efbc37", "type": "SUBSCRIPTION_UPDATED", "creationDate": "2024-01-08T12:25:27.579680+01:00", "object": { "additionalData": {}, "cardId": "8750301a-f2ae-4447-8a3a-62e37675e1ca", "creationDate": "2024-01-08T12:24:12.700858+01:00", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "endUserIp": "245.100.1.15", "expectedEndingDate": "2025-01-09", "merchantSubscriptionId": "TEST001", "quantity": 1, "startingDate": "2024-01-10", "status": "ACTIVE", "subscriptionId": "c64ba2e5-a0b1-43e2-867a-27555c355331", "subscriptionModel": { "additionalData": {}, "amount": 100, "creationDate": "2024-01-08T12:20:23.305903+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test refapi", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "e16a35bf-ca34-48b7-9726-139c15e89fa9" } }, "requestId": "10797b88-f4ff-48f5-bc79-c417333b92d5", "objectBeforeUpdate": { "additionalData": {}, "cardId": "8750301a-f2ae-4447-8a3a-62e37675e1ca", "creationDate": "2024-01-08T12:24:12.700858+01:00", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "endUserIp": "245.100.1.15", "expectedEndingDate": "2025-01-09", "merchantSubscriptionId": "Gauthier refapi", "quantity": 1, "startingDate": "2024-01-10", "status": "ACTIVE", "subscriptionId": "c64ba2e5-a0b1-43e2-867a-27555c355331", "subscriptionModel": { "additionalData": {}, "amount": 100, "creationDate": "2024-01-08T12:20:23.305903+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test refapi", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "e16a35bf-ca34-48b7-9726-139c15e89fa9" } } } SUBSCRIPTION_CANCELEDWhen a Subscription is cancelled { "eventId": "298e5eae-4447-4981-932e-633adbb97e5f", "type": "SUBSCRIPTION_CANCELED", "creationDate": "2024-01-08T12:26:46.705238+01:00", "object": { "additionalData": {}, "cancelAtPeriodEnd": false, "cancellationDate": "2024-01-08T12:26:46.701626+01:00", "cardId": "8750301a-f2ae-4447-8a3a-62e37675e1ca", "creationDate": "2024-01-08T12:24:12.700858+01:00", "currentPeriodEnd": "2024-01-08", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "endUserIp": "245.100.1.15", "endingDate": "2024-01-08", "expectedEndingDate": "2025-01-09", "merchantSubscriptionId": "TEST001", "quantity": 1, "startingDate": "2024-01-10", "status": "CANCELED", "subscriptionId": "c64ba2e5-a0b1-43e2-867a-27555c355331", "subscriptionModel": { "additionalData": {}, "amount": 100, "creationDate": "2024-01-08T12:20:23.305903+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test refapi", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "e16a35bf-ca34-48b7-9726-139c15e89fa9" } }, "requestId": "bd8f1a27-bae3-4cfd-8471-7f6e878c6dc7" } SUBSCRIPTION_ACTIVEWhen a Subscription is active SUBSCRIPTION_FAILUREWhen a Subscription failed to be paid { "eventId": "22c7c038-2aa4-4550-9fd0-27e5395c250d", "type": "SUBSCRIPTION_FAILURE", "creationDate": "2024-01-15T11:59:55.661209+01:00", "object": { "additionalData": {}, "cardId": "0a6b2fdc-85e4-4ffa-bffa-0ae276e11aa3", "creationDate": "2024-01-15T11:59:52.983206+01:00", "currentPeriodEnd": "2024-02-14", "currentPeriodStart": "2024-01-15", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "endUserIp": "245.100.1.15", "expectedEndingDate": "2025-01-14", "lastInvoice": { "additionalData": {}, "amount": 10000, "attemptCount": 1, "closed": false, "creationDate": "2024-01-15T11:59:53.614864+01:00", "currency": "EUR", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "invoiceId": "e0909ca3-a337-43ce-9769-d65e927b3a47", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-15T11:59:53.357382+01:00", "currency": "EUR", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "invoiceId": "e0909ca3-a337-43ce-9769-d65e927b3a47", "invoiceItemId": "0c153918-5128-4ecb-8570-7c9f71a500ec", "quantity": 1, "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "totalAmount": 10000, "type": "SUBSCRIPTION" } ], "nextTransactionAttempt": "2024-01-18T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "transactions": [ "19b41977-e973-4dd9-846e-5777459196a5" ], "transfers": [], "type": "SUBSCRIPTION" }, "merchantSubscriptionId": "Test refapi gogo", "quantity": 1, "startingDate": "2024-01-15", "status": "FAILURE", "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "subscriptionModel": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-11T15:02:53.061463+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test Abo", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "7cd1b504-bed3-4435-84be-2e19f2c8e2f6" } }, "requestId": "1c35bbaf-0f37-44e1-a7e5-c3f10be0a9a4" } SUBSCRIPTION_UNPAIDWhen a Subscription is unpaid SUBSCRIPTION_REACTIVATEDWhen a Subscription is reactivated { "eventId": "536eb70e-cb79-44a6-be28-4384445583c2", "type": "SUBSCRIPTION_REACTIVATED", "creationDate": "2024-01-11T15:12:05.092897+01:00", "object": { "additionalData": {}, "cardId": "7d5f52b0-ef15-4a04-9c06-c4a9ac76f4bf", "creationDate": "2024-01-11T15:11:29.487853+01:00", "currentPeriodEnd": "2024-02-10", "currentPeriodStart": "2024-01-11", "customerId": "dc9623bd-3f3a-4d79-8ae2-0e6b3ebe367d", "endUserIp": "245.100.1.15", "lastInvoice": { "additionalData": {}, "amount": 10000, "attemptCount": 1, "closed": true, "creationDate": "2024-01-11T15:11:30.057522+01:00", "currency": "EUR", "customerId": "dc9623bd-3f3a-4d79-8ae2-0e6b3ebe367d", "invoiceId": "94185799-1ac6-4206-8df2-006043d0e2a9", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-11T15:11:29.798622+01:00", "currency": "EUR", "customerId": "dc9623bd-3f3a-4d79-8ae2-0e6b3ebe367d", "invoiceId": "94185799-1ac6-4206-8df2-006043d0e2a9", "invoiceItemId": "cd4325ca-4f61-4886-98c6-a524682ee0e2", "quantity": 1, "subscriptionId": "cb2a2422-2a4d-4818-9647-02107e69f98b", "totalAmount": 10000, "type": "SUBSCRIPTION" } ], "paid": true, "sddTransactions": [], "subscriptionId": "cb2a2422-2a4d-4818-9647-02107e69f98b", "transactions": [ "3f462466-4a71-480c-b062-e2023ee99b17" ], "transfers": [], "type": "SUBSCRIPTION" }, "merchantSubscriptionId": "Test refapi gogo", "quantity": 1, "startingDate": "2024-01-11", "status": "ACTIVE", "subscriptionId": "cb2a2422-2a4d-4818-9647-02107e69f98b", "subscriptionModel": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-11T15:02:53.061463+01:00", "currency": "EUR", "intervalCount": 1, "intervalUnit": "MONTH", "iterationCount": 12, "name": "Test Abo", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "subscriptionModelId": "7cd1b504-bed3-4435-84be-2e19f2c8e2f6" } }, "requestId": "69ac4f1d-059b-4065-adc2-90f0eb6a98ab" } INVOICEITEM_CREATEDWhen an invoice item is created { "eventId": "6167d379-fb95-4425-8e9b-af74f4235bfc", "type": "INVOICEITEM_CREATED", "creationDate": "2024-01-08T12:30:46.157764+01:00", "object": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:30:46.131739+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceItemId": "c911bfdd-3686-4e5b-8abf-d3c44fa369a3", "quantity": 3, "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "totalAmount": 30000, "type": "MANUAL" }, "requestId": "d7cd40bd-88de-4956-9c42-baf5a0549f1b" } INVOICEITEM_UPDATEDWhen an invoice item is updated { "eventId": "353dd2fd-934e-4a20-9f12-b47bf213a35c", "type": "INVOICEITEM_UPDATED", "creationDate": "2024-01-15T10:59:30.750004+01:00", "object": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:44:49.815091+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "invoiceItemId": "292c516b-e320-4391-995a-b4a1205e0e47", "quantity": 2, "subscriptionId": "5b217597-213f-4bf3-b94b-6749e499cf98", "totalAmount": 20000, "type": "MANUAL" }, "requestId": "9678a75a-aa0c-4023-8d2a-56b56dfeae87", "objectBeforeUpdate": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:44:49.815091+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "invoiceItemId": "292c516b-e320-4391-995a-b4a1205e0e47", "quantity": 3, "subscriptionId": "5b217597-213f-4bf3-b94b-6749e499cf98", "totalAmount": 30000, "type": "MANUAL" } } INVOICEITEM_DELETEDWhen an invoice item is deleted { "eventId": "ae992cbd-d82f-495a-b7b7-4627dc9806e8", "type": "INVOICEITEM_DELETED", "creationDate": "2024-01-15T11:00:04.748878+01:00", "object": { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:44:49.815091+01:00", "currency": "EUR", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "invoiceItemId": "292c516b-e320-4391-995a-b4a1205e0e47", "quantity": 2, "subscriptionId": "5b217597-213f-4bf3-b94b-6749e499cf98", "totalAmount": 20000, "type": "MANUAL" }, "requestId": "fe0e462f-81d9-4640-abbd-ce6c914432b6" } INVOICE_CREATEDWhen an invoice is created { "eventId": "59df2504-3ab7-46c3-8469-0957d579b014", "type": "INVOICE_CREATED", "creationDate": "2024-01-08T12:31:18.271671+01:00", "object": { "additionalData": {}, "amount": 30000, "attemptCount": 0, "closed": false, "creationDate": "2024-01-08T12:31:18.264645+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:30:46.131739+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItemId": "c911bfdd-3686-4e5b-8abf-d3c44fa369a3", "quantity": 3, "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "totalAmount": 30000, "type": "MANUAL" } ], "nextTransactionAttempt": "2024-01-09T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "transactions": [], "transfers": [], "type": "MANUAL" }, "requestId": "1b51631e-d6d7-4632-bc8f-c67bd6f52729" } INVOICE_UPDATEDWhen an invoice is updated { { "eventId": "3c63e5da-1bce-4c5c-9dfc-1a206fda69a7", "type": "INVOICE_UPDATED", "creationDate": "2024-01-08T12:31:25.469957+01:00", "object": { "additionalData": {}, "amount": 30000, "attemptCount": 0, "closed": false, "creationDate": "2024-01-08T12:31:18.264645+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "description": "ma description", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:30:46.131739+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItemId": "c911bfdd-3686-4e5b-8abf-d3c44fa369a3", "quantity": 3, "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "totalAmount": 30000, "type": "MANUAL" } ], "nextTransactionAttempt": "2024-01-09T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "transactions": [], "transfers": [], "type": "MANUAL" }, "requestId": "176cf4e9-4669-473c-a9cb-f102fd6aa2ab", "objectBeforeUpdate": { "additionalData": {}, "amount": 30000, "attemptCount": 0, "closed": false, "creationDate": "2024-01-08T12:31:18.264645+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:30:46.131739+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItemId": "c911bfdd-3686-4e5b-8abf-d3c44fa369a3", "quantity": 3, "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "totalAmount": 30000, "type": "MANUAL" } ], "nextTransactionAttempt": "2024-01-09T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "transactions": [], "transfers": [], "type": "MANUAL" } } } INVOICE_CLOSEDWhen an invoice is closed { "eventId": "32cc898a-112f-43fd-921e-be8613d85b73", "type": "INVOICE_CLOSED", "creationDate": "2024-01-08T12:31:33.554755+01:00", "object": { "additionalData": {}, "amount": 30000, "attemptCount": 0, "closed": true, "creationDate": "2024-01-08T12:31:18.264645+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "description": "ma description", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:30:46.131739+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItemId": "c911bfdd-3686-4e5b-8abf-d3c44fa369a3", "quantity": 3, "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "totalAmount": 30000, "type": "MANUAL" } ], "nextTransactionAttempt": "2024-01-09T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "transactions": [], "transfers": [], "type": "MANUAL" }, "requestId": "36e1f1c0-b08b-41e1-a35b-bc0942b084f7" } INVOICE_REOPENWhen an invoice is reopen { "eventId": "c3e22524-8677-447f-9c70-caee15bdb31a", "type": "INVOICE_REOPEN", "creationDate": "2024-01-08T12:31:38.069325+01:00", "object": { "additionalData": {}, "amount": 30000, "attemptCount": 0, "closed": false, "creationDate": "2024-01-08T12:31:18.264645+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "description": "ma description", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:30:46.131739+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItemId": "c911bfdd-3686-4e5b-8abf-d3c44fa369a3", "quantity": 3, "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "totalAmount": 30000, "type": "MANUAL" } ], "nextTransactionAttempt": "2024-01-09T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "transactions": [], "transfers": [], "type": "MANUAL" }, "requestId": "7ef43ab1-2249-43b2-834e-dcad31d609a5" } INVOICE_TRANSACTION_SUCCEEDEDWhen an invoice transaction succeeded { "eventId": "58b1922a-a959-43c3-aeea-784f6970586c", "type": "INVOICE_TRANSACTION_SUCCEEDED", "creationDate": "2024-01-08T12:31:48.444350+01:00", "object": { "additionalData": {}, "amount": 30000, "attemptCount": 0, "closed": true, "creationDate": "2024-01-08T12:31:18.264645+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "description": "ma description", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-08T12:30:46.131739+01:00", "currency": "EUR", "customerId": "06e3819c-9e15-42db-9194-74d5924b53e3", "invoiceId": "6c031228-131c-453a-8dbf-4623a033c01e", "invoiceItemId": "c911bfdd-3686-4e5b-8abf-d3c44fa369a3", "quantity": 3, "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "totalAmount": 30000, "type": "MANUAL" } ], "paid": true, "sddTransactions": [], "subscriptionId": "a35ba09e-58ea-4d5c-8207-1a5d11f32fd3", "transactions": [ "67cfc05b-d06c-4f2b-8aec-2033e0c61478" ], "transfers": [], "type": "MANUAL" }, "requestId": "01fb7049-bd27-4ec0-846d-605c352bd2f9" } INVOICE_TRANSACTION_FAILEDWhen an invoice transaction failed { "eventId": "23ef2df3-0e6d-4397-b877-aba2acea2ed1", "type": "INVOICE_TRANSACTION_FAILED", "creationDate": "2024-01-15T11:59:55.647989+01:00", "object": { "additionalData": {}, "amount": 10000, "attemptCount": 1, "closed": false, "creationDate": "2024-01-15T11:59:53.614864+01:00", "currency": "EUR", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "invoiceId": "e0909ca3-a337-43ce-9769-d65e927b3a47", "invoiceItems": [ { "additionalData": {}, "amount": 10000, "creationDate": "2024-01-15T11:59:53.357382+01:00", "currency": "EUR", "customerId": "947a99f7-308c-46a0-b6be-aed82d39a53c", "invoiceId": "e0909ca3-a337-43ce-9769-d65e927b3a47", "invoiceItemId": "0c153918-5128-4ecb-8570-7c9f71a500ec", "quantity": 1, "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "totalAmount": 10000, "type": "SUBSCRIPTION" } ], "nextTransactionAttempt": "2024-01-18T06:00:04+01:00", "paid": false, "sddTransactions": [], "subscriptionId": "55cb6ba8-3d9b-4bc9-96c9-b478b576d306", "transactions": [ "19b41977-e973-4dd9-846e-5777459196a5" ], "transfers": [], "type": "SUBSCRIPTION" }, "requestId": "1c35bbaf-0f37-44e1-a7e5-c3f10be0a9a4" }
Création du mandat SEPA Après avoir déclaré le compte bancaire « bankAccount » du client et rattaché son profil client « Customer », vous pouvez créer un mandat SEPA « mandate » et collecter la signature électronique de votre client via un code (OTP) envoyé par SMS. Prérequis : vous devez récupérer le « creditorBankAccountId » de votre compte CentralPay correspondant à votre ICS. Vous pouvez le retrouver depuis votre Portail utilisateur en utilisant un profil avec des droits Admin : Administration Mon compte Comptes bancaires Identifiez la ligne présentant votre ICS dans la colonne « IBAN » puis copiez l’UUID associé. 1/ Création et signature d’un nouveau mandat SEPA Créez un mandat SEPA : Créez un « Mandate » Renseignez votre « creditorBankAccountId » Renseignez le « CustomerId » de votre client Renseignez votre Référence Unique de Mandat (RUM) Indiquez le type de mandat que vous souhaitez créer dans la propriété « paymentType » Renseignez le numéro de téléphone de votre client dans la propriété « debtorPhone » Renseignez l’email de votre client dans la propriété « debtorEmail » Indiquez le compte bancaire de votre client en renseignant son « bankAccountId » dans la propriété « debtorBankAccountId » Une fois le mandat SEPA créé : Un « mandateId » sera généré Le statut du mandat sera en « PENDING » Un code à 6 chiffres (OTP) sera envoyé à votre client par SMS (durée de vie 15 min). Vous pouvez renouveler l’envoi de l’OTP. Signez un mandat SEPA : Signez le « Mandate » Collectez le code à 6 chiffres auprès de votre client, et renseignez-le dans la propriété « otp » Renseignez le « mandateId » généré lors de la création du mandat Renseignez l’IP de votre client dans la propriété « endUserIp » Le statut du mandat passera ainsi en « ACTIVE » et le mandat SEPA au format PDF sera envoyé au client par email Schéma de déclaration du compte bancaire et création mandat 2/ Déclaration d’un mandat existant (migration) Dans le cadre d’une migration de mandats déjà créé auprès d’un autre prestataire de paiement, il est possible de désactiver la fonction de signature par OTP sms et d’envoi du mandat SEPA par email. Si c’est votre cas, contactez nos équipes afin d’obtenir plus de détails concernant cette procédure. Prérequis : Les mandats doivent avoir été créés avec votre Identifiant de Créancier SEPA (ICS) Les mandats doivent avoir été créés avec votre entité juridique actuelle Les mandats doivent avoir été dûment signés et acceptés par vos débiteurs Les mandats doivent être encore actifs (<36 mois depuis la dernière transaction) 3/ Modification d’un mandat SEPA existant 3.1 Modifications possibles sans nécessité de nouveau mandat Certaines données peuvent être mises à jour sans exiger la signature d’un nouveau mandat SEPA, sous réserve d’informer correctement le débiteur : Changement de nom du créancier (modification de la structure juridique prélevant) Changement de l’Identifiant Créancier SEPA (ICS) Changement de la Référence Unique de Mandat (RUM) Changement de compte / IBAN du débiteur au sein d’une même banque Changement de compte / IBAN du débiteur suite à un changement de banque Endpoints associés : Modifier un IBAN débiteurPOST /bankAccount/{bankAccountId}Permet de mettre à jour l’IBAN d’un compte bancaire débiteur lié à un mandat SEPA existant. Modifier une RUMCette opération n’est pas possible via les API CentralPay. Une modification de la RUM nécessite la création d’un nouveau mandat (migration). Modifier le nom du créancierEn cas de changement de la structure juridique réalisant les prélèvements, un nouveau Compte CentralPay (Merchant) doit être créé. Les mandats existants devront alors être redéclarés sous ce nouveau compte via un processus de migration. 3.2 Modifications nécessitant un nouveau mandat Les modifications suivantes imposent la création d’un nouveau mandat SEPA, car elles impliquent une nouvelle autorisation du débiteur : Changement de nom du débiteur Changement de la date de signature du mandat Changement de type de mandat : passage de SDD Core à SDD B2BNB : Ce cas d’usage n’est pas disponible dans les services CentralPay. Changement de la fréquence de prélèvement : passage de ponctuel à récurrent 3.3 Communication des modifications Les notifications de modifications doivent obligatoirement être transmises : Par le créancier au débiteur, pour toute modification initiée par le créancier (ICS, RUM, IBAN, etc.) Par le débiteur au créancier, avec présentation d’un justificatif (ex : RIB ou pièce d’identité) pour les changements d’IBAN ou de données personnelles.
The TRANSACTION object TRANSACTION_SUCCEEDEDWhen a transaction has been approved by the issuing bank { "eventId": "4774dddc-7163-40f9-a6e0-72cd52abad19", "type": "TRANSACTION_SUCCEEDED", "creationDate": "2024-01-05T14:43:21.487036+01:00", "object": { "additionalData": {}, "amount": 3600000, "amountCaptured": 3600000, "amountRefunded": 0, "archivingReference": "5MS7NOWFGWSR", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "0ee6bd7e-3e74-454d-a62b-120db043714d", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "browserAcceptLanguage": "en_US", "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36", "captureDate": "2024-01-05T14:43:21.355125+01:00", "captureStatus": "CAPTURED", "card": { "additionalData": {}, "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2", "cardType": "DEBIT", "cardholderEmail": "test@gmail.com", "cardholderName": "MARIE ANNE", "check": true, "commercialBrand": "MASTERCARD", "country": "FRA", "creationDate": "2024-01-05T12:52:41.054394+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f", "first6": "532509", "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5", "last4": "0008", "productType": "CORPORATE", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "country": "FRA", "creationDate": "2024-01-05T14:43:19.909652+01:00", "currency": "EUR", "customAcceptanceData": {}, "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "endUserIp": "245.100.1.15", "endUserLanguage": "fre", "fee": 0, "merchantCategoryCode": "1711", "movementId": "899287b0-a0a5-413c-8be8-bc3d794ba96a", "order": { "cardholderEmail": "GDU-Solon40@gmail.com", "country": "FRA" }, "partialAuthorization": false, "partialAuthorized": false, "payoutAmount": 3600000, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "GDU-Clemens7@yahoo.com", "refunded": false, "refunds": [], "residualAmount": 0, "source": "EC", "threeDSecure": false, "totalAmount": 3600000, "transactionId": "aa42bd28-5a34-47e4-87b0-3d25375be798", "transactionStatus": "SUCCESS", "transactiontransfers": [], "withCvv": true }, "requestId": "3d82de99-2346-4eef-a30b-68e7efe5acd1" } TRANSACTION_CANCELEDWhen a transaction is cancelled { "eventId": "2ed7535a-8d07-4502-aea8-d755c5584962", "type": "TRANSACTION_CANCELED", "creationDate": "2024-01-11T14:51:53.615072+01:00", "object": { "additionalData": { "key1": "value1", "key2": "value2" }, "amount": 10, "amountCaptured": 10, "amountRefunded": 0, "archivingReference": "TSMEGRM4XQSN", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "82dbefb7-2a49-4cf9-a10a-953e0fefd89b", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "cancelMovementId": "36238731-363a-4f30-913e-7a9b9defdd33", "captureCancellationDate": "2024-01-11T14:51:53.583865+01:00", "captureDate": "2024-01-11T14:50:33.400938+01:00", "captureStatus": "CANCELED", "card": { "additionalData": {}, "cardId": "0f72740b-3a97-436b-aa78-9ac30308d404", "cardType": "DEBIT", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-11T14:50:31.216307+01:00", "europeanEconomicArea": true, "expirationMonth": 12, "expirationYear": 2026, "fingerprint": "31e7053d8ee3f13b4f391c989d83aaaa7771450d", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-11T14:50:32.194359+01:00", "currency": "EUR", "customAcceptanceData": {}, "endUserIp": "245.100.1.15", "fee": 0, "merchantCategoryCode": "1711", "movementId": "36d934c8-de2f-43df-be49-a4f058c6c0ba", "order": { "addressLine1": "ADRESSE", "cardCountry": "FRA", "city": "PARIS", "country": "FRA", "firstName": "MANDATORY", "lastName": "MANDATORY" }, "partialAuthorization": false, "partialAuthorized": false, "payoutAmount": 10, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "refunded": false, "refunds": [], "residualAmount": 0, "source": "EC", "threeDSecure": false, "totalAmount": 10, "transactionId": "2fbdd1ad-99e1-4fb6-a5f9-06239d7ef1a1", "transactionStatus": "SUCCESS", "transactiontransfers": [ { "amount": 1, "destinationWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "escrowDate": "2024-01-15", "fee": 0, "merchantTransferId": "MRI_CODE" } ], "withCvv": true }, "requestId": "2631c3f5-65cb-441f-9cb7-14dcf2c8d128" } TRANSACTION_CAPTUREDWhen a transaction is sent to the clearing and will be debited { "eventId": "ecd3fead-ccb1-44e4-b41b-5806b78dc5a5", "type": "TRANSACTION_CAPTURED", "creationDate": "2024-01-05T14:43:21.513924+01:00", "object": { "additionalData": {}, "amount": 3600000, "amountCaptured": 3600000, "amountRefunded": 0, "archivingReference": "5MS7NOWFGWSR", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "0ee6bd7e-3e74-454d-a62b-120db043714d", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "browserAcceptLanguage": "en_US", "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36", "captureDate": "2024-01-05T14:43:21.355125+01:00", "captureStatus": "CAPTURED", "card": { "additionalData": {}, "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2", "cardType": "DEBIT", "cardholderEmail": "test@gmail.com", "cardholderName": "MARIE ANNE", "check": true, "commercialBrand": "MASTERCARD", "country": "FRA", "creationDate": "2024-01-05T12:52:41.054394+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f", "first6": "532509", "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5", "last4": "0008", "productType": "CORPORATE", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "country": "FRA", "creationDate": "2024-01-05T14:43:19.909652+01:00", "currency": "EUR", "customAcceptanceData": {}, "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "endUserIp": "245.100.1.15", "endUserLanguage": "fre", "fee": 0, "merchantCategoryCode": "1711", "movementId": "899287b0-a0a5-413c-8be8-bc3d794ba96a", "order": { "cardholderEmail": "GDU-Solon40@gmail.com", "country": "FRA" }, "partialAuthorization": false, "partialAuthorized": false, "payoutAmount": 3600000, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "GDU-Clemens7@yahoo.com", "refunded": false, "refunds": [], "residualAmount": 0, "source": "EC", "threeDSecure": false, "totalAmount": 3600000, "transactionId": "aa42bd28-5a34-47e4-87b0-3d25375be798", "transactionStatus": "SUCCESS", "transactiontransfers": [], "withCvv": true }, "requestId": "3d82de99-2346-4eef-a30b-68e7efe5acd1" } TRANSACTION_EXPIREDWhen a transaction is expired { "eventId": "9a93ea00-42cc-4555-ad29-24daa2ec5fbe", "type": "TRANSACTION_EXPIRED", "creationDate": "2024-02-01T00:30:07.148454+01:00", "object": { "transactionId": "87b40109-0de5-454d-acf4-dfa51f23d15b", "creationDate": "2024-01-30T14:20:47.062768+01:00", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "contractId": "a674d481-4805-4a66-915a-67956efca36f", "merchantTransactionId": null, "archivingReference": "YB6J5BGOC4TF", "transactionStatus": "SUCCESS", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "authorizationCode": "000000", "riskScore": null, "source": "EC", "description": null, "currency": "EUR", "payoutCurrency": "EUR", "payoutAmount": null, "commission": null, "fee": 0, "amount": 36000, "partialAuthorization": false, "partialAuthorized": false, "partialAuthorizedAmount": null, "totalAmount": 36000, "card": { "cardId": "4970cff8-a3eb-4b7a-9f8e-6a4156c08cec", "creationDate": "2024-01-30T14:20:45.679621+01:00", "customerId": null, "cardTokenId": null, "infoId": null, "merchantCardId": null, "commercialBrand": "VISA", "first6": "403203", "last4": "3001", "expirationMonth": 12, "expirationYear": 2025, "country": "FRA", "cardholderName": null, "cardholderEmail": null, "description": null, "fingerprint": "a90fedc230c187acb2e4d6b8a3e3237044931beb", "cardType": "UNKNOWN", "region": "EUROPE", "productType": "UNKNOWN", "europeanEconomicArea": true, "check": false, "additionalData": {} }, "cardMerchantToken": null, "captureStatus": "EXPIRED", "amountCaptured": 0, "refunded": true, "amountRefunded": 0, "refunds": [], "endUserIp": "8.8.8.8", "endUserLanguage": "fre", "browserUserAgent": null, "browserAcceptLanguage": null, "country": null, "receiptEmail": null, "transactiontransfers": [], "transferGroup": null, "residualAmount": null, "order": { "firstName": null, "lastName": null, "addressLine1": null, "addressLine2": null, "addressLine3": null, "addressLine4": null, "postalCode": null, "city": null, "country": null, "email": null, "phone": null, "cardCountry": "FRA", "cardholderName": null, "cardholderEmail": null }, "dispute": null, "cardPresent": { "cardSequenceNumber": null, "cardEntryMode": null, "pinEntryCapability": null, "transactionSequenceCounter": null, "uniqueTerminalId": null, "cardholderSignatureImage": null, "gpsLatitude": null, "gpsLongitude": null, "cardholderPhoto": null, "cardAcceptorTerminalId": null, "offlinePinIndicator": null, "ucatTerminalIndicator": null, "iccData": null, "iccDataResponse": null }, "clearingNumber": null, "merchantCategoryCode": "1711", "withCvv": true, "arn": "123456", "authorizationCancellationDate": null, "customerId": null, "captureDate": null, "clearingDate": null, "captureCancellationDate": null, "enrollmentId": null, "movementId": null, "authorizationMovementId": "258d16f5-3f5f-401d-8f5b-c9ff9d00f28d", "cancelMovementId": null, "paymentRequestBreakdownId": null, "paymentRequestId": null, "invoiceId": null, "installmentId": null, "customAcceptanceData": {}, "additionalData": { "key1": "value1", "key2": "value2" }, "3ds": false }, "requestId": "fcf800bb-1748-4d23-9ce7-121c5f14a51b" } TRANSACTION_UPDATEDWhen a transaction is updated { "eventId": "eaf9366e-cd66-4ab9-ad23-09ed2ec5972d", "type": "TRANSACTION_UPDATED", "creationDate": "2024-01-11T14:54:35.830032+01:00", "object": { "additionalData": { "key1": "value1", "key2": "value2" }, "amount": 10, "amountCaptured": 10, "amountRefunded": 0, "archivingReference": "FLS2TYH3HJ5G", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "02e0e9ec-77f6-4a75-9732-57a0d0844354", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "captureDate": "2024-01-11T14:53:18.688598+01:00", "captureStatus": "CAPTURED", "card": { "additionalData": {}, "cardId": "180c71b5-9384-4ea5-9452-b190d4afc542", "cardType": "DEBIT", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-11T14:53:17.634328+01:00", "europeanEconomicArea": true, "expirationMonth": 1, "expirationYear": 2024, "fingerprint": "9e6b6fc8e48c4ee716efb06762e726c0108e5e8d", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-11T14:53:17.576925+01:00", "currency": "EUR", "customAcceptanceData": {}, "endUserIp": "245.100.1.15", "fee": 0, "merchantCategoryCode": "1711", "movementId": "3dbd2c18-1110-496b-9cd2-1e7b7568fc00", "order": { "cardCountry": "FRA", "firstName": "MANDATORY", "lastName": "MANDATORY" }, "partialAuthorization": false, "partialAuthorized": false, "payoutAmount": 10, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "test@gmail.com", "refunded": false, "refunds": [], "residualAmount": 0, "source": "EC", "threeDSecure": false, "totalAmount": 10, "transactionId": "8d08a5b1-413e-46d8-8e8e-6da8c0d5025b", "transactionStatus": "SUCCESS", "transactiontransfers": [ { "amount": 1, "destinationWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "escrowDate": "2024-01-13", "fee": 0 } ], "withCvv": true }, "requestId": "6b85d1b7-853a-420e-a500-62aac18840c1", "objectBeforeUpdate": { "additionalData": { "key1": "value1", "key2": "value2" }, "amount": 10, "amountCaptured": 10, "amountRefunded": 0, "archivingReference": "FLS2TYH3HJ5G", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "02e0e9ec-77f6-4a75-9732-57a0d0844354", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "captureDate": "2024-01-11T14:53:18.688598+01:00", "captureStatus": "CAPTURED", "card": { "additionalData": {}, "cardId": "180c71b5-9384-4ea5-9452-b190d4afc542", "cardType": "DEBIT", "check": false, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-11T14:53:17.634328+01:00", "europeanEconomicArea": true, "expirationMonth": 1, "expirationYear": 2024, "fingerprint": "9e6b6fc8e48c4ee716efb06762e726c0108e5e8d", "first6": "400000", "last4": "0002", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-11T14:53:17.576925+01:00", "currency": "EUR", "customAcceptanceData": {}, "endUserIp": "245.100.1.15", "fee": 0, "merchantCategoryCode": "1711", "movementId": "3dbd2c18-1110-496b-9cd2-1e7b7568fc00", "order": { "cardCountry": "FRA", "firstName": "MANDATORY", "lastName": "MANDATORY" }, "partialAuthorization": false, "partialAuthorized": false, "payoutAmount": 10, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "refunded": false, "refunds": [], "residualAmount": 0, "source": "EC", "threeDSecure": false, "totalAmount": 10, "transactionId": "8d08a5b1-413e-46d8-8e8e-6da8c0d5025b", "transactionStatus": "SUCCESS", "transactiontransfers": [ { "amount": 1, "destinationWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "escrowDate": "2024-01-13", "fee": 0 } ], "withCvv": true } } TRANSACTION_DISPUTEDWhen a transaction is turned to a chargeback { "eventId": "36e7853b-eecf-43d2-99ec-80aa5b26b46f", "type": "TRANSACTION_DISPUTED", "creationDate": "2024-01-05T15:16:28.316447+01:00", "object": { "additionalData": {}, "amount": 36000, "amountCaptured": 36000, "amountRefunded": 0, "archivingReference": "AULQKEG8VFZV", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "a7caf3b3-4d60-412e-9536-8b31e7fa2b99", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "browserAcceptLanguage": "en_US", "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36", "captureDate": "2024-01-04T15:04:14.560777+01:00", "captureStatus": "CLEARED", "card": { "additionalData": {}, "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2", "cardType": "DEBIT", "cardholderEmail": "test@gmail.com", "cardholderName": "MARIE ANNE", "check": true, "commercialBrand": "MASTERCARD", "country": "FRA", "creationDate": "2024-01-05T12:52:41.054394+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f", "first6": "532509", "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5", "last4": "0008", "productType": "CORPORATE", "region": "EUROPE" }, "cardPresent": {}, "clearingDate": "2024-01-05", "clearingNumber": "008194", "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "country": "FRA", "creationDate": "2024-01-05T15:04:13.275733+01:00", "currency": "EUR", "customAcceptanceData": {}, "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "dispute": { "additionalData": {}, "amount": 10, "creationDate": "2024-01-05T15:16:27.776882+01:00", "currency": "EUR", "disputeDate": "2021-03-18", "disputeId": "896304e9-b937-443a-ba59-3ccc99931b00", "fee": 0, "movementId": "09e2b390-a5a6-4926-a5ad-41c96bd38cea", "reason": "FRAUDULENT", "status": "CHARGEBACK_NOTICED", "transactionId": "8940d775-cb9c-46e4-ab5a-c5c3ea7c3116" }, "endUserIp": "245.100.1.15", "endUserLanguage": "fre", "fee": 0, "merchantCategoryCode": "1711", "movementId": "15560735-1636-4a01-9a15-89eab54ef9e1", "order": { "cardholderEmail": "GDU-Dasia77@hotmail.com", "country": "FRA" }, "partialAuthorization": false, "partialAuthorized": false, "payoutAmount": 36000, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "GDU-Benton_Hamill8@gmail.com", "refunded": false, "refunds": [], "residualAmount": 0, "source": "EC", "threeDSecure": false, "totalAmount": 36000, "transactionId": "8940d775-cb9c-46e4-ab5a-c5c3ea7c3116", "transactionStatus": "SUCCESS", "transactiontransfers": [], "withCvv": false }, "requestId": "29ae33a7-bcd3-405f-ab21-485729b980aa" } TRANSACTION_FAILEDWhen a transaction has been declined by the issuing bank { "eventId": "0eeacc49-8957-4910-925f-d633505f23b0", "type": "TRANSACTION_FAILED", "creationDate": "2024-01-05T14:46:59.392077+01:00", "object": { "additionalData": {}, "amount": 3600000, "amountCaptured": 0, "amountRefunded": 0, "archivingReference": "9GUGCIZEU0VN", "authorizationMovementId": "7ed9258a-ee75-4705-90f3-678973d2402e", "authorizationStatus": "FAILURE", "bankCode": "51", "bankMessage": "Simulation : Insufficient Funds", "browserAcceptLanguage": "en_US", "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36", "captureStatus": "UNCAPTURED", "card": { "additionalData": {}, "cardId": "30e49b6e-ed07-4b43-8862-2abd2f181678", "cardType": "DEBIT", "cardholderEmail": "gduhamel@centralpay.eu", "check": true, "commercialBrand": "VISA", "country": "FRA", "creationDate": "2024-01-05T14:46:39.151564+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "7032968c1a882c155b3d8014297daabaa7133680", "first6": "400000", "infoId": "90eaf823-e2e7-4757-845a-b966bbab03c6", "last4": "0077", "productType": "UNKNOWN", "region": "EUROPE" }, "cardPresent": {}, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "country": "FRA", "creationDate": "2024-01-05T14:46:58.190985+01:00", "currency": "EUR", "customAcceptanceData": {}, "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "endUserIp": "245.100.1.15", "endUserLanguage": "fre", "fee": 0, "merchantCategoryCode": "1711", "order": { "cardholderEmail": "GDU-Yvette5@hotmail.com", "country": "FRA" }, "partialAuthorization": false, "partialAuthorized": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "GDU-Buck_Gislason@hotmail.com", "refunded": false, "refunds": [], "source": "EC", "threeDSecure": false, "totalAmount": 3600000, "transactionId": "d530cdbe-b9fc-481b-b99d-8ce0db75deb4", "transactionStatus": "FAILURE", "transactiontransfers": [], "withCvv": true }, "requestId": "c120a3c0-764a-4c7e-a705-4721784212c7" } TRANSACTION_FRAUDULENTWhen a transaction is refused because it has meet a blacklist element (Email, IP, Card, …) { "eventId": "d489a6be-9b6d-43fa-86e3-c5d26437aac3", "type": "TRANSACTION_FRAUDULENT", "creationDate": "2024-01-05T16:34:30.947564+01:00", "object": { "additionalData": {}, "amount": 500, "amountCaptured": 0, "amountRefunded": 0, "authorizationStatus": "FRAUD", "bankMessage": "PAN in BLACKLIST [532509xxx0008]", "captureStatus": "UNCAPTURED", "card": { "additionalData": {}, "cardId": "4680d102-96b0-4fba-b00c-3375ee610fc7", "cardType": "DEBIT", "cardholderEmail": "gduhamel@centralpay.eu", "check": true, "commercialBrand": "MASTERCARD", "country": "FRA", "creationDate": "2024-01-05T16:33:13.699153+01:00", "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f", "first6": "532509", "infoId": "dabeaee8-1f45-438e-b9c7-37bbce92315e", "last4": "0008", "productType": "CORPORATE", "region": "EUROPE" }, "cardPresent": {}, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "creationDate": "2024-01-05T16:34:30.385545+01:00", "currency": "EUR", "customAcceptanceData": {}, "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9", "endUserIp": "245.100.1.15", "merchantTransactionId": "MIP_001", "order": { "cardCountry": "FRA", "cardholderEmail": "gduhamel@centralpay.eu", "email": "gduhamel@centralpay.eu", "firstName": "CECELIA", "lastName": "EBERT" }, "partialAuthorization": false, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "gduhamel@centralpay.eu", "refunded": false, "refunds": [], "source": "EC", "threeDSecure": false, "totalAmount": 500, "transactionId": "f061fa00-8494-4eca-b9d1-f54d36125d7d", "transactionStatus": "FRAUD", "transactiontransfers": [], "withCvv": true }, "requestId": "47c8329d-b686-4dc0-ad21-941e4ec2945d" } TRANSACTION_NOT_ACCEPTEDWhen a transaction is refused because entering an acceptance rule TRANSACTION_REFUNDEDWhen a transaction has been refunded to the card holder { "eventId": "21f8a3b1-1fab-4071-9f75-ef36d10a6572", "type": "TRANSACTION_REFUNDED", "creationDate": "2024-01-10T09:35:28.762354+01:00", "object": { "additionalData": {}, "amount": 36000, "amountCaptured": 36000, "amountRefunded": 36000, "archivingReference": "YNADK4W3G2EK", "arn": "123456", "authorizationCode": "000000", "authorizationMovementId": "679d6b91-bba5-43fa-a444-b3aa7fb2ad2f", "authorizationStatus": "SUCCESS", "bankCode": "0", "bankMessage": "Simulation : Transaction Approved", "browserAcceptLanguage": "en_US", "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36", "captureDate": "2024-01-04T15:04:11.419479+01:00", "captureStatus": "CLEARED", "card": { "additionalData": {}, "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2", "cardType": "DEBIT", "cardholderEmail": "test@gmail.com", "cardholderName": "MARIE ANNE", "check": true, "commercialBrand": "MASTERCARD", "country": "FRA", "creationDate": "2024-01-05T12:52:41.054394+01:00", "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "europeanEconomicArea": true, "expirationMonth": 9, "expirationYear": 2035, "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f", "first6": "532509", "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5", "last4": "0008", "productType": "CORPORATE", "region": "EUROPE" }, "cardPresent": {}, "clearingDate": "2024-01-05", "clearingNumber": "008194", "commission": 0, "contractId": "a674d481-4805-4a66-915a-67956efca36f", "country": "FRA", "creationDate": "2024-01-05T15:04:10.135397+01:00", "currency": "EUR", "customAcceptanceData": {}, "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22", "endUserIp": "245.100.1.15", "endUserLanguage": "fre", "fee": 0, "merchantCategoryCode": "1711", "movementId": "656895c7-e7a2-4b7d-8920-0bb78ea45f3a", "order": { "cardholderEmail": "GDU-Martina_Ondricka@hotmail.com", "country": "FRA" }, "partialAuthorization": false, "partialAuthorized": false, "payoutAmount": 36000, "payoutCurrency": "EUR", "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247", "receiptEmail": "GDU-Justyn98@gmail.com", "refunded": true, "refunds": [ { "additionalData": {}, "amount": 36000, "commission": 0, "creationDate": "2024-01-10T09:35:28.448559+01:00", "currency": "EUR", "description": "GDU-testapi", "fee": 0, "movementId": "c42ea27a-6d74-4c4b-b170-e17762916c79", "payoutAmount": 36000, "payoutCurrency": "EUR", "refundId": "9bf06654-c023-4481-8e6a-138bb5f13777", "status": "UNCLEARED", "transactionId": "2a06bfae-51f5-4dd7-945b-47631c16cb9c" } ], "residualAmount": 0, "source": "EC", "threeDSecure": false, "totalAmount": 36000, "transactionId": "2a06bfae-51f5-4dd7-945b-47631c16cb9c", "transactionStatus": "SUCCESS", "transactiontransfers": [], "withCvv": false }, "requestId": "794c20b2-4a0c-4d9d-a580-af5544c11120" } TRANSACTION_RISKYWhen a transaction is refused because of its risk score exceed the limit TRANSACTION_THREEDS_AUTH_FAILEDWhen a transaction is declined because the card holder failed to authenticate himself during the 3DS process
Transaction par prélèvement Une fois les étapes de création et de signature de mandat réalisées, vous pouvez créer une transaction en prélèvement SEPA (Transaction SDD). Chaque transaction SDD sera liée au mandat correspondant. Pour créer des transactions SDD, vous avez plusieurs possibilités : Créer des transactions SDD individuelles : pour réaliser une ou plusieurs transactions SDD par API en complète autonomie Créer des transactions SDD via les modèles d’abonnement « Subscription » : pour réaliser X transactions selon une fréquence définie par un modèle d’abonnement (exemple : 50 € par mois pendant 12 mois). Créer des transactions SDD via le service de paiement fractionné « Installment » : pour fractionner une créance client en plusieurs transactions (exemple : 1000 € à régler en 3 fois avec un acompte de 500 €). 1/ Transactions SDD individuelles Créez une « SDDTransaction » Renseignez l’identifiant du mandat SEPA « mandateId » Renseignez le montant de la transaction en centimes « amount » Renseignez la devise EUR dans la propriété « currency » Renseignez votre identifiant unique de transaction dans la propriété « endToEndIdentification » Renseignez la description de la transaction dans la propriété « remittanceInformation » (cette donnée apparaitra sur le relevé de compte de vos clients) Renseignez l’IP de votre client dans « endUserIp » Renseignez l’identifiant de votre point de vente CentralPay dans « pointOfSaleId » Renseignez la date souhaitée de la transaction dans « requestedCollectionDate » Vous pouvez ensuite répéter l’opération à chaque échéance de prélèvement de votre client. [Optionnel] Demander au client une validation par SMS Pour plus de sécurité, vous pouvez configurer un OTP pour la validation de chaque SDDTransaction : un OTP sera alors généré à la création et envoyé à votre client par SMS. Un sddTransactionId sera également généré à la création. Par défaut, la validation des SDDTransaction est automatique. Cette étape est nécessaire que si vous avez configuré une validation OTP pour la SDDTransaction Récupérer auprès de votre client son code secret Nous le transmettre, ainsi que le sddTransactionId. Par cette action, la SDDTransaction sera considéré comme validé et sera donc effectuée. 2/ Transactions SDD depuis les modèles d’abonnement « subscription » 2.1/ Création Vous devez d’abord créer un Customer contenant au moins un Mandate. Ensuite, le service d’abonnement (Subscription) vous permettra d’initier facilement un paiement par abonnement en se basant sur un modèle d’abonnement créé en amont depuis l’API CentralPay ou le Portail utilisateur. 2.2/ Cas d’intégration spécifiques Si le premier paiement de l’abonnement doit être d’un montant supérieur aux échéances suivantes (ex: frais d’inscription), vous pouvez d’abord initier une SDD Transaction seule, puis renseigner une date de démarrage (startingDate) dans l’objet Subscription. Si vous souhaitez simplement faire démarrer un abonnement à une date précise (ex : date d’entrée en vigueur de votre contrat), vous pouvez renseigner une date de démarrage (startingDate) dans l’objet Subscription. 3/ Transactions SDD en paiement fractionné « Installment » 3.1/ Création Vous devez d’abord créer un Customer contenant au moins un Mandate. Ensuite, le service de paiement fractionné (Installment) vous permettra d’initier facilement un paiement fractionné en se basant sur les éléments renseignés dans votre requête.
The TRANSFER REVERSAL object TRANSFERREVERSAL_SUCCEEDEDWhen a transfer reversal succeeded { "eventId": "9bd04039-7b33-4553-af86-64a6e925eef9", "type": "TRANSFERREVERSAL_SUCCEEDED", "creationDate": "2024-01-16T11:11:40.720817+01:00", "object": { "additionalData": {}, "amount": 140, "creationDate": "2024-01-16T11:11:40.611318+01:00", "currency": "EUR", "description": "Test", "fee": 0, "merchantTransferReversalId": "test", "movementId": "e34b6833-7b32-4fde-993a-b904f8f3aeae", "net": 140, "refundFee": true, "status": "TRANSFERRED", "transferId": "e3a45ca4-49a9-4681-bc06-be9ab6dd7d79", "transferReversalId": "bb47ad7b-4112-4ad5-abf3-489d5878d6fd" }, "requestId": "7e593b04-58c3-4e0d-b3c6-ec2a6887164e" } } TRANSFERREVERSAL_UPDATEDWhen a transfer reversal is updated { "eventId": "8317512a-d7d2-4d6d-a61a-644afb7537fb", "type": "TRANSFERREVERSAL_UPDATED", "creationDate": "2024-01-16T11:18:00.682451+01:00", "object": { "additionalData": {}, "amount": 140, "creationDate": "2024-01-16T11:11:40.611318+01:00", "currency": "EUR", "description": "Addeddata", "fee": 0, "merchantTransferReversalId": "test", "movementId": "e34b6833-7b32-4fde-993a-b904f8f3aeae", "net": 140, "refundFee": true, "status": "TRANSFERRED", "transferId": "e3a45ca4-49a9-4681-bc06-be9ab6dd7d79", "transferReversalId": "bb47ad7b-4112-4ad5-abf3-489d5878d6fd" }, "requestId": "3509acf1-39c9-45e5-b1b6-d58ee6639b8d" }
R-transaction SDD 1/ Remboursement de prélèvement SEPA Vous pouvez rembourser une SDD Transaction si celle-ci est « CLEARED » via le service Refund ou depuis le détail de la SDD Transaction dans le Portail utilisateur. Vous pouvez initier un remboursement total ou partiel en renseignant un montant. Votre client recevra les fonds sur son compte bancaire sous 24 à 48 heures ouvrés après l’opération. Votre compte de paiement est lui débité immédiatement, il doit donc être solvable pour pouvoir réaliser l’opération. Vous ne pouvez pas annuler un remboursement une fois celui-ci réalisé. 2/ Rejet et contestations de prélèvement SEPA Les rejets et contestations de prélèvements SEPA sont émis par les banques de vos clients. Ils sont représentés dans votre compte CentralPay par les opérations « SDD Transaction Reversal ». Un rejet de prélèvement SEPA est émis par la banque avant la mise à disposition des fonds au créancier (sous 2 à 5 jours). Voici les principaux motifs de rejet des prélèvements SEPA Core : Provisions insuffisantes : le compte bancaire du débiteur ne dispose pas de fonds suffisants pour réaliser l’opération. Compte clôturé : le compte bancaire du débiteur a été fermé. Coordonnées bancaires incorrectes : l’IBAN ou BIC utilisé est incorrect, ou le compte n’est pas en devise EUROS. Une contestation de prélèvement SEPA peut être émise par le débiteur jusqu’à 13 mois après l’opération. C’est le principal facteur de risque financier de ce moyen de paiement. Voici les principaux motifs de contestation des prélèvements SEPA Core : Contestation de l’opération (sous 8 semaines max) : le mandat SEPA est valide, mais le client conteste l’opération auprès de sa banque pour quelconque motif. L’opération est entièrement remboursée et des frais de contestation sont applicables au créancier. Le délai est de 70 jours pour les banques hors de l’Union européenne ou de l’Espace Économique Européen. Contestation pour absence de mandat (sous 13 mois max) : le mandat SEPA n’est pas valide (absence de mandat, mauvais signataire…), le client conteste les opérations réalisées. Les opérations sont entièrement remboursées et des frais de contestation sont applicables au créancier. Pour en savoir plus, consultez la liste complète des codes de rejets et contestation de prélèvement SEPA : Codes de retour SDD
The TRANSFER object TRANSFER_SUCCEEDEDWhen a transfer succeeded { { "eventId": "a1147178-8197-46d7-ba6d-433f71a1b7f5", "type": "TRANSFER_SUCCEEDED", "creationDate": "2024-01-08T14:33:25.439719+01:00", "object": { "additionalData": {}, "amount": 140, "creationDate": "2024-01-08T14:33:25.050153+01:00", "currency": "EUR", "description": "Vente de XxX", "destinationWalletId": "ccf841d8-b066-4e96-adc7-fa6414cfe598", "emissionWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "exchangedAmount": 140, "exchangedFee": 0, "exchangedNet": 140, "fee": 0, "merchantTransferId": "IDENTIFIANT_MRI", "movementId": "20452a9f-6055-462c-8da5-f351cc0a1437", "net": 140, "rate": 1, "reversed": false, "status": "TRANSFERRED", "toCurrency": "GTH", "transferId": "c8d751cc-da30-4dbe-9e57-acf7731bb3f5", "transferReversals": [] }, "requestId": "6d21911b-40bb-4259-aef9-39c616d60aa4" } } TRANSFER_UPDATEDWhen a transfer is updated { { "eventId": "356e4dff-4146-47d5-9db9-3226585cafc1", "type": "TRANSFER_UPDATED", "creationDate": "2024-01-08T14:38:40.555843+01:00", "object": { "additionalData": { "Key1": "val2" }, "amount": 140, "creationDate": "2024-01-08T14:33:25.050153+01:00", "currency": "EUR", "description": "transfer1", "destinationWalletId": "ccf841d8-b066-4e96-adc7-fa6414cfe598", "emissionWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "exchangedAmount": 140, "exchangedFee": 0, "exchangedNet": 140, "fee": 0, "merchantTransferId": "TEST_002", "movementId": "20452a9f-6055-462c-8da5-f351cc0a1437", "net": 140, "rate": 1, "reversed": false, "status": "TRANSFERRED", "toCurrency": "GTH", "transferGroup": "TransferGroup_0002", "transferId": "c8d751cc-da30-4dbe-9e57-acf7731bb3f5", "transferReversals": [] }, "requestId": "e7b6b976-a0ae-45dc-a018-f6c651a7f559", "objectBeforeUpdate": { "additionalData": {}, "amount": 140, "creationDate": "2024-01-08T14:33:25.050153+01:00", "currency": "EUR", "description": "Vente de XxX", "destinationWalletId": "ccf841d8-b066-4e96-adc7-fa6414cfe598", "emissionWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "exchangedAmount": 140, "exchangedFee": 0, "exchangedNet": 140, "fee": 0, "merchantTransferId": "IDENTIFIANT_MRI", "movementId": "20452a9f-6055-462c-8da5-f351cc0a1437", "net": 140, "rate": 1, "reversed": false, "status": "TRANSFERRED", "toCurrency": "GTH", "transferId": "c8d751cc-da30-4dbe-9e57-acf7731bb3f5", "transferReversals": [] } } } TRANSFER_CANCELEDWhen a transfer is cancelled { "eventId": "d1a35d33-87b7-4672-8e49-495cd117f45b", "type": "TRANSFER_CANCELED", "creationDate": "2024-01-16T11:34:40.698751+01:00", "object": { "additionalData": {}, "amount": 140, "cancelMovementId": "e66acfa2-60c4-4eec-8bfe-f1571318a667", "cancellationDate": "2024-01-16T11:34:40.691168+01:00", "creationDate": "2024-01-16T11:34:05.280812+01:00", "currency": "EUR", "description": "Vente de XxX", "destinationWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "emissionWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050", "escrowDate": "2035-12-23", "exchangedAmount": 140, "exchangedFee": 0, "exchangedNet": 140, "fee": 0, "merchantTransferId": "IDENTIFIANT_GDU", "movementId": "98c79326-53e5-4b71-8ef6-4b1344c428a4", "net": 140, "rate": 1, "reversed": false, "status": "CANCEL", "toCurrency": "EUR", "transferId": "fd4aa0f5-69d5-4b79-b6df-c99dab33d9ee", "transferReversals": [] }, "requestId": "35b87d6e-41dd-4a5e-b1a2-5347b6fa1eba" }
Retours, statuts et webhooks 1/ Retours liés aux prélèvements SEPA Lorsqu’une transaction SDD (prélèvement SEPA) est rejetée, la banque de votre client adresse un code de rejet permettant d’en identifier la cause. Il faut principalement différencier les rejets (à l’initiative de la banque, ils sont reçus rapidement) des contestations (à l’initiative du client, elles peuvent être reçues plusieurs semaines ou mois après la transaction) : ContestationsMD06 Opération contestée par le débiteur (peut être reçu jusqu’à 8 semaines après la transaction)MD01 Contestation pour absence de mandat (peut être reçu jusqu’à 13 mois après la transaction)SL01 ICS marchand blacklisté par le client via sa banqueMS02Raison non communiquée (peut inclure des contestations ou des rejets)RejetsAM04 Provisions insuffisantesTout autre codeRejets techniques divers (compte clôturé, bloqué, IBAN non atteignable…) Consulter la liste complète des codes de rejet SDD 2/ Statuts liés aux prélèvements SEPA Statuts « SDD Transaction » Statuts SDD Transaction Statuts « Mandate » Statuts MANDATE Statuts « bankAccount » [à compléter] Statuts « Subscription » Statuts SUBSCRIPTION Statuts « Installment » Statuts INSTALLMENT 3/ Webhooks liés aux prélèvements SEPA Webhooks « SDD Transaction » Webhooks SDD Transaction Webhooks « Mandate » Webhooks Mandate Webhooks « Bank Account » Webhooks BankAccount Webhooks « Customer » Webhooks Customer Webhooks « Subscription » Webhooks Subscription Webhooks « Installment » Webhooks Installment
The WIRETRANSFER object (Deprecated) WIRETRANSFER_CREATEDWhen a wire transfer is created WIRETRANSFER_UPDATEDWhen a wire transfer is updated WIRETRANSFER_RECEIVEDWhen a wire transfer is received WIRETRANSFER_CANCELEDWhen a wire transfer is cancelled
Abonnement Introduction Le service d’abonnement vous permet se réaliser automatiquement des transactions récurrentes sur vos profils clients en se basant sur un modèle d’abonnement défini en amont depuis l’API CentralPay ou le Portail utilisateur. Il est ensuite possible d’ajouter des échéances ou de modifier leur montant à la volée depuis les services Invoice & Invoice Item. Ce service permet de générer soit des transactions carte, soit des transactions SDD (prélèvement SEPA). Définitions utiles pour cette section :– SubscriptionModel : modèle d’abonnement (définissant le montant et la fréquence d’abonnement)– Subscription : abonnement appliqué à un client– Invoice : facture, option à utiliser si vous devez modifier la valeur à l’intérieur d’un plan d’abonnement– InvoiceItem : ligne ou article inclus dans la facture. Une facture a potentiellement plusieurs lignes ou éléments Le service "Subscription" n'est pas le seul moyen de réaliser des transactions récurrentes. Consultez la page Transaction carte récurrente ou la page Transaction par prélèvement pour prendre connaissance du détail par moyen de paiement. 1/ Créer un modèle d’abonnement (subscriptionModel) Accès modèles d’abonnements – Portail utilisateur de RCT Accès modèles d’abonnements – Portail utilisateur de PROD Le subcriptionModel vous permet de pouvoir créer différents types d’abonnements en fonction de vos services proposés. Par exemple, si vous avez à votre disposition deux types d’offre d’abonnement, le premier en utilisant les caractéristiques de base de votre service et l’autre en utilisant les fonctionnalités avancées, vous allez devoir créer deux modèles : Un pour l’offre d’abonnement « basique » Un pour l’offre d’abonnement « avancé » Chaque « SubscriptionModel » possède un ID unique. Vous fournirez cet identifiant dans vos requêtes API lorsque vous souhaiterez appliquer un abonnement à un client sur la base de ce modèle. Vous pouvez utiliser les attributs suivants : amount : montant à renseigner en centimes intervalUnit : DAY / WEEK / MONTH / YEAR (jour / semaine / mois / année) intervalCount : nombre de « intervalUnit » entre deux échéances (ex : si intervalUnit = DAY et intervalCount = 10, alors il y aura une transaction tous les 10 jours). iterationCount : nombre d’échéances (attention la première transaction n’est pas comptabilisée dans ce paramètre, elle s’ajoute donc à ce nombre). Exemple : amount = 3000 intervalUnit = DAY intervalCount = 3 iterationCount = 3 Ainsi votre modèle d’abonnement sera configuré pour facturer à votre client 30,00 EUR tous les 3 jours pendant 4 échéances (pour un total d’un abonnement de 12 Jours). 2/ Créer un abonnement (subscription) Pour créer un abonnement, vous devez d’abord créer un Customer contenant au moins : une Card (si vous souhaitez opérer des transactions carte) ou un Mandate (si vous souhaitez opérer des transactions par prélèvement SEPA). Vous pouvez ensuite créer une Subscription : Selon le moyen de paiement souhaité : pour des transactions carte : renseignez l’identifiant du profil client « customerId » pour des transactions par prélèvement SEPA : renseignez l’identifiant du mandat SEPA « mandateId » et renseignez la date souhaitée de la transaction dans « requestedCollectionDate » pour des transactions entre comptes CentralPay : renseignez l’identifiant du compte émetteur « walletId » Renseignez l’identifiant du modèle d’abonnement « subscriptionModelId » Renseignez l’IP de votre client dans « endUserIp » Renseignez l’identifiant de votre point de vente CentralPay dans « pointOfSaleId » Notez qu’à la création d’un abonnement, votre client reçoit automatiquement un email contenant le détail de ses échéances. Cet email contient également un lien vers notre Portail client qui lui permet de visualiser le statut de ses paiements récurrent, de changer sa carte bancaire ou son mandat SEPA et de résilier un abonnement si besoin est. Un client pouvant à tout moment résilier son abonnement depuis le portail client mis à sa disposition. Veillez à vous inscrire aux webhooks d'annulation d'abonnement. Si votre abonnement comprend une période d'engagement, il est préférable d'utiliser la méthode d'abonnement par transactions successives, ou demander à CentralPay de ne pas diffuser le lien vers le portail client. 3/ Automatisation des nouvelles tentatives en cas d’échec En cas d’échec de prélèvement d’une échéance, CentralPay réalise de nouvelles tentatives de prélèvement selon les paramètres définis dans le Portail utilisateur. Accès paramétrages abonnements – Portail utilisateur de RCT Accès paramétrages abonnements – Portail utilisateur de PROD Comportement des champs : Heure de transaction : heure à laquelle les échéances de prélèvement seront réalisées par CentralPay Sélection d’une valeur de 4 à 23 1er échec de paiement de facture : comportement en cas d’un premier échec de prélèvement Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la transaction initiale Stop = le système appliquera directement l’action finale, sans prendre en compte les actions suivantes. 2nd échec de paiement de facture : comportement en cas d’un deuxième échec de prélèvement Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative Stop = le système appliquera directement l’action finale, sans prendre en compte les actions suivantes. 3eme échec de paiement de facture : comportement en cas d’un troisième échec de prélèvement Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative Stop = le système appliquera directement l’action finale, sans prendre en compte les actions suivantes. Action finale : comportement si les actions précédentes ont échoué CANCELED = Annulation de l’abonnement (modification du statut de l’abonnement en CANCELED) FAILURE = Échec de l’abonnement (modification du statut de l’abonnement en FAILURE) UNPAID = Abonnement impayé (modification du statut de l’abonnement en FAILURE + envoi de hook SUBSCRIPTION_UNPAID) 4/ Fonctions d’annulation des abonnements Il existe deux fonctions d’annulation d’abonnement depuis l’API, le Portail Utilisateur ou le Portail Client : Annuler : l’abonnement est annulé immédiatement Annuler en fin de période : l’abonnement sera annulé à la fin de l’échéance en cours (afin de laisser l’abonné bénéficier de votre service durant sa dernière période payée). Par API, vous devrez renseigner le champ « atPeriodEnd ». Note : Durant ce laps de temps, vous pouvez réactiver l’abonnement avec le service « reactivate » des Subscription. Les abonnements dont l'ensemble des échéances ont été réalisées passent automatiquement en statut CANCELED. 5/ Modifier le montant d’une échéance d’abonnement CentralPay crée un invoice pour chaque échéance d’un abonnement (Subscription), selon le modèle d’abonnement associé (subscriptionModel). Vous pouvez procéder à des actions manuelles à n’importe quel moment pour modifier les échéances (invoice) d’un abonnement (subscription). Vous trouverez ci-dessous une liste d’actions possibles : Modifier le montant d’une échéance : Le service invoiceItem vous permet de modifier le montant d’une échéance (invoice) en renseignant un montant positif ou négatif qui s’additionnera au montant initial de l’échéance. L’invoiceItem sera pris en compte lors de la prochaine échéance de l’abonnement, qu’elle soit créée manuellement ou automatiquement. Vous avez également la possibilité de spécifier une échéance donnée dans votre requête en renseignant un invoiceId. Créer une échéance supplémentaire : les échéances (invoice) dites « périodiques » sont créées automatiquement selon votre subscriptionModel. Vous avez la possibilité de créer d’autres échéances ponctuelles sur votre abonnement en créant une invoice. Supprimer un invoiceItem non traité : s’il n’est pas encore lié à une facture Fermer une échéance à venir : si vous souhaitez que CentralPay ne réalise pas le prélèvement d’une échéance (et/ou ses nouvelles tentatives automatiques), vous pouvez fermer cette dernière depuis le service « close » de l’invoice. Au besoin vous pourrez rouvrir cette échéance via le service « reopen » de l’invoice, si elle n’a pas été payée ou qu’il reste des nouvelles tentatives programmées. Forcer le paiement d’une échéance : les transactions sont effectuées automatiquement par le service d’abonnement, vous pouvez cependant initier la transaction en avance ou réaliser une nouvelle tentative manuellement avec le service « pay » de l’invoice. Ces paiements « manuels » ne sont pas comptabilisés par le système de nouvelles tentatives automatisées. Cette action peut être effectuée sur une facture fermée. 6/ Schéma complet de création d’un abonnement
Fractionné Introduction Le paiement fractionné permet de découper le règlement d’une facture en plusieurs échéances. CentralPay prélève ensuite la carte du client selon un échéancier défini lors de la première transaction. Il peut être utilisé pour proposer un étalement de règlement à votre client ou pour automatiser un règlement type « acompte/solde ». Contrairement aux abonnements, un client ne peut pas résilier un paiement fractionné depuis le portail client. CentralPay vous aide à recouvrer les échéances dues par vos clients avec un système de nouvelles tentatives automatisées en cas d’échec de prélèvement. Cependant, CentralPay ne garantie pas les sommes dues à l’aide d’un crédit ou d’un système de financement de créances. Le service "Installment" n'est pas le seul moyen de réaliser des transactions récurrentes. Consultez la page Transaction carte récurrente ou la page Transaction par prélèvement pour prendre connaissance du détail par moyen de paiement. 1/ Créer un paiement fractionné Vous devez d’abord créer un Customer contenant au moins : une Card (si vous souhaitez opérer des transactions carte) ou un Mandate (si vous souhaitez opérer des transactions par prélèvement SEPA). Ensuite, le service Installment vous permettra de créer facilement un paiement fractionné en se basant sur les éléments renseignés dans votre requête. Vous pouvez ensuite créer un Installment: Selon le moyen de paiement souhaité : pour des transactions carte : renseignez l’identifiant du profil client « customerId » pour des transactions par prélèvement SEPA : renseignez l’identifiant du mandat SEPA « mandateId » et renseignez la date souhaitée de la transaction dans « requestedCollectionDate » Renseignez le montant en centimes « amount » Renseignez la devise en format ISO « currency » Renseignez l’IP de votre client dans « endUserIp » Renseignez les paramètres de fractionnement « iterationCount », « intervalCount » et « intervalUnit » Avec ce service, il est également possible : d’imputer des frais supplémentaires à votre client (feeAmount) : pour la mise à disposition de cet étalement des paiements de définir un montant d’acompte qui sera déduit du montant total (depositAmount). Cet acompte peut également être défini à une date spécifique (depositStartingDate). de définir une date de démarrage du paiement fractionné (startingDate) : si l’on souhaite par exemple que l’acompte soit réglé tout de suite, et que les premières échéances soient prélevées à partir d’une certaine date. Notez qu’à la création d’un paiement fractionné, votre client reçoit automatiquement un email contenant le détail de ses échéances. Cet email contient également un lien vers notre Portail client qui lui permet de visualiser le statut de ses paiements récurrent et de changer sa carte bancaire ou son mandat SEPA si besoin est. 2/ Exemple de paiement fractionné Vous souhaitez facturer à votre client 1 000 € divisés en 3 mois à partir du 05/07/2024, avec un acompte de 200 € le 28/06/2024 et ajouter un frais supplémentaire de 10 € : amount =100000 depositAmount = 20000 feeAmount = 1000 currency = EUR intervalUnit = MONTH intervalCount = 1 iterationCount = 3 depositStartingDate = 2024-06-28 startingDate = 2024-07-05 Le plan de fractionnement sera le suivant : 28/06/2024 = 200,00 € (acompte) 05/07/2024 = 276,68 € (premier fractionnement + ajustement arrondis + frais supplémentaires) 05/08/2024 = 276,66 € (deuxième fractionnement) 05/09/2024 = 276,66 € (troisième fractionnement) Les arrondis sont appliqués au premier paiement (hors acompte). 3/ Automatisation des nouvelles tentatives en cas d’échec En cas d’échec de prélèvement d’une échéance, CentralPay réalise de nouvelles tentatives de prélèvement selon les paramètres définis dans le Portail utilisateur : Accès paramétrages paiements fractionnés – Portail utilisateur de RCT Accès paramétrages paiements fractionnés – Portail utilisateur de PROD Comportement des champs : Heure de transaction : heure à laquelle les échéances de prélèvement seront réalisées par CentralPay Sélection d’une valeur de 4 à 23 1er échec de paiement : comportement en cas d’un premier échec de prélèvement Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la transaction initiale Stop = le système ne réalisera pas de nouvelle tentative de prélèvement. 2nd échec de paiement : comportement en cas d’un deuxième échec de prélèvement Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative Stop = le système ne réalisera pas de deuxième nouvelle tentative de prélèvement. 3eme échec de paiement : comportement en cas d’un troisième échec de prélèvement Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative Stop = le système ne réalisera pas de troisième nouvelle tentative de prélèvement. 4eme échec de paiement : comportement en cas d’un quatrième échec de prélèvement Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative Stop = le système ne réalisera pas de quatrième nouvelle tentative de prélèvement.
PAYMENT REQUEST status Payment request status: ACTIVE CLOSED CANCELED Payment status : UNPAID ACCEPTED PARTIALLY_PAID PAID The following table explains every possible status combination and what they point out : Payment request statusPayment status ExplanationACTIVEUNPAIDPayment request created, waiting for the customer’s payment.ACTIVEPARTIALLY_PAIDThe customer has paid part of the total sum of the payment request that will stay ACTIVE while waiting for the remaining payment(s). ACTIVEACCEPTEDTemporary status that is exclusive for the SDD transactions, pre-authorization and deferred payments. The customer has done the required action and the operation is waiting for the processing.CLOSEDPAIDThe payment request has been fully paid.CLOSEDPARTIALLY_PAIDThe payment request has been partially paid and the merchant has manually closed it. This can be performed from the API or the user portal if the merchant is satisfied with this partial payment of the customer and allows to stop any automatic reminders.CANCELEDUNPAIDThe payment request was cancelled before the customer’s payment. This cancellation may be initiated by the merchant via API or via the User Portal (in the event of an error in the creation or cancellation of an order, for example), or carried out automatically if the link expires. This cancellation reason is visible from the User Portal.
3DS 2.2 BRW (paiement unitaire) Téléchargement des sources 3DS 2.0 Vous pouvez télécharger les sources ici : 3ds2.zip Introduction Tout ce processus doit se dérouler sur la même page web (ceci est une contrainte du process bancaire). Les grandes étapes du 3D Secure 2.0 : Consultez un exemple de formulaire de paiement CUSTOM intégrant le 3DS 2.0 1) Versioning Cette étape consiste à adresser le PAN de la carte à l’API Centralpay. Exemple de code Curl : curl -v POST 'https://test-api.centralpay.net/v2/rest/3ds2/versioning' \ -h 'Content-Type: application/x-www-form-urlencoded' \ -u 'doctest:4I9HJRTd' \ -d 'acctNumber=4000001000000067' En réponse : Si la carte n’est pas 3DS 2.0, le versioning vous retournera une erreur 404. Cela signifie que la carte utilisée n’est pas enrôlée 3DS 2.0 et que la transaction ne peut pas se faire en 3DS 2.0. Si la carte est 3DS 2.0, vous recevrez un UUID identifiant l’opération jusqu’au résultat final + les données nécessaire pour réaliser le « 3DS Method » (URL + base64) Deux réponses au Versionning sont possibles si la carte est 3DS 2.0 : Version 1 (la plus fréquente) : { "threeDSServerTransID":"7d031b8e-7fb7-4215-b866-eaacb395002f", "threeDSMethodURL":"https://test-3dss-demo.centralpay.net/acs/3ds-method", "threeDSMethodDataForm":{ "threeDSMethodData":"eyJ0aHJlZURTTWV0aG9kTm90aWZ pY2F0aW9uVVJMIjoiaHR0cHM6Ly90ZXN0LTNkc3MuY2VudHJ hbHBheS5uZXQvM2RzLzNkcy1tZXRob2Qtbm90aWZpY2F0aW9 uLyIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiOWNjNmIzM2M tZGQzNS00ZmJkLTgxY2QtZmQ5Y2YwYWVlZDljIn0=" }, "errorDetails":null } Cette réponse est renvoyée quand la banque a besoin de l’acs url dans la requête de l’authentification. Le process 3DS Method est alors nécessaire, vous pouvez passer au point 2 : 3DS METHOD. Version 2 : { "threeDSServerTransID":"7d031b8e-7fb7-4215-b866-eaacb395002f", "threeDSMethodURL": null, "threeDSMethodDataForm": null, "errorDetails": null } Cette réponse est renvoyée quand la banque n’a pas besoin de l’acs url dans la requête de l’authentification.Le versioning renvoie une réponse où seul « threeDSServerTransID » possède une valeur non null. Le process 3DS Method n’est alors pas nécessaire, vous pouvez passer au point 3 : 3DS AUTHENTICATION BRW. 2) 3DS METHOD Lorsque le versioning renvoi les champs threeDSMethodURL et threeDSMethodDataForm en « Non Null », le process 3DS Method est alors nécessaire.Cette fonction a pour but de poster la donnée base64 reçue du versioning vers l’ACS.Le formulaire iframe doit être réalisée par le navigateur client vers la banque simultanément avec l’authentification.Il faut réaliser une iFrame cachée qui servira à poster la donnée base64 (threeDSMethodData) à l’URL reçue dans le versioning (threeDSMethodURL). 3) 3DS AUTHENTICATION BRW L’appel devra être adressé vers l’url suivante de l’API CentralPay : « 3ds2/authentication »Cette requête permet l’envoi des données contextuelles liées au porteur Exemple d’appel (curl code) : curl --location --request POST 'https://test-api.centralpay.net/v2/rest/3ds2/authentication' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA==' \ --data-urlencode 'threeDSServerTransID=7d031b8e-7fb7-4215-b866-eaacb395002f' \ --data-urlencode 'cardTokenId=5b9nb5cf-4470-4e58-b690-dd8965860eb8' \ --data-urlencode 'deviceChannel=02' \ --data-urlencode 'messageCategory=01' \ --data-urlencode 'purchaseAmount=1000' \ --data-urlencode 'purchaseCurrency=EUR' \ --data-urlencode 'threeDSRequestorAuthenticationInd=01' \ --data-urlencode 'browserJavaEnabled=true' \ --data-urlencode 'browserLanguage=fr-FR' \ --data-urlencode 'browserColorDepth=24' \ --data-urlencode 'browserScreenHeight=1052' \ --data-urlencode 'browserScreenWidth=1853' \ --data-urlencode 'browserTZ=120' \ --data-urlencode 'browserIP=127.0.0.1' \ --data-urlencode 'browserUserAgent=Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0' \ --data-urlencode 'browserAcceptHeader=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' \ --data-urlencode 'notificationURL=http://dev4.dev.centralpay.net:1101/requestor/challenge-notification' \ --data-urlencode 'threeDSRequestorURL=https://www.centralpay.eu' L’api va retourner un statut de transaction (« transStatus »), voici les valeurs et leurs significations : Pas d’autorisation (ne pas faire la transaction) : N = Non authentifié /Compte non vérifié. Transaction refusée. U = L’authentification/la vérification du compte n’a pas pu être effectuée. Problème technique ou autre, comme indiqué dans ARes ou RReq. R = Authentification/vérification du compte rejetée. l’émetteur rejette l’authentification/vérification et demande de ne pas tenter d’autorisation I = Information seulement. Reconnaissance de la préférence du demandeur pour le défi 3DS. Autorisation sans challenge : Y = Vérification de l’authentification réussie. A = Traitement des tentatives effectué. Non authentifié/vérifié, mais une preuve de tentative d’authentification/vérification est fournie. Autorisation après challenge : C = Challenge requis. Une authentification supplémentaire est requise en utilisant le CReq/CRes. D = Challenge requis. Authentification découplée confirmée. Exemples de réponses possibles : C = Challenge requis : {"threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f","transStatus": "C","acsURL": "https://test-3dss-demo.centralpay.net/acs/challenge","acsChallengeMandated": "Y","base64EncodedChallengeRequest": "eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImU2MDFlYjQ0LTU2N2MtNDM4Ny05MmZjLWU2ZjIzMjJiODIyYiIsImFjc1RyYW5zSUQiOiI3ZTQzZDI4ZC00M2RkLTRmM2MtYTcwOS00YjZkZDVlZjc5Y2QiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIn0=","contractId": "71602dd0-2790-4743-877b-e72530d7576d"} Le Challenge est nécessaire. Y = authentification réussie : { "threeDSServerTransID": "7d994177-32d8-43f7-87a4-3a3cd734cbfe", "transStatus": "Y", "authenticationValue": "MTIzNDU2Nzg5MDA5ODc2NTQzMjEa", "eci": "02", "contractId": "71602dd0-2790-4743-877b-e72530d7576d" } Le Challenge n’est pas nécessaire.Les champs requis au 3DS 2.0 sont dans la réponse (threeDSServerTransID, transStatus, authenticationValue (cavv), eci). Note : Le xid n’est pas fourni, car il s’agit d’une référence libre pour les marchands. N = Transaction refusée : { "threeDSServerTransID": "6396b832-3e5b-4143-bde6-f5r1c1e47da0", "transStatus": "N", "eci": "00", "contractId": "258128f3-5db9-4235-918a-f1d786f67c29" } Transaction refusée. 4) Challenge Lorsque la réponse de l’authentification est « C« , l’utilisateur doit effectuer un challenge, une Iframe doit alors soumettre un formulaire à l’url (acsURL) retournée par l’API lors de l’appel à « 3ds2/authentication ». Le seul paramètre envoyé est : creq qui comprend la valeur base64EncodedChallengeRequest qui provient de l’appel à « 3ds2/authentication ». A la fin du challenge, l’url configurée (paramètre notificationURL ) dans l’appel « 3ds2/authentication » est appelée. Voici ce que vous aurez dans notre environnement de test pour l’affichage du Challenge OTP (dans des conditions de PROD, la fenêtre affichée sera celle de l’ACS) : Voici les OTP en environnement test : 1234 retourne Y pour Challenge réussi 4444 retourne A pour Challenge réussi 1111 retourne N pour Challenge échoué 2222 retourne R pour Challenge échoué 3333 retourne U pour Challenge échoué 5) Réponse À l’issue du challenge, les informations concernant celui-ci sont disponibles dans la variable « finalCresValue » Pour récupérer les informations de cette valeur base 64 il faut la décoder, voici un exemple en php : $retour = json_decode(base64_decode($_POST['cres']), true) Si celui-ci est égal à Y ou A alors le client a effectué le challenge correctement et le paiement est autorisé, vous devrez alors appeler GET /results afin de connaitre les données nécessaire aux 3DS 2.0 pour votre transaction. Si le statut de transaction est égal à une autre valeur, alors le client n’a pas effectué le challenge correctement et le paiement est refusé. 6) Résultat Pour connaitre les données 3DS 2.0 à renseigner à la création d’une transaction 3DS 2.0, vous devrez adresser le threeDSServerTransID de l’authentification 3DS 2.0 préalablement effectuée. Rappel : Si vous avez obtenu un transStatus à « Y » en réponse de l’authentification, les données 3DS 2.0 sont déjà contenu dans celui-ci. Appel : curl --location -g --request GET 'https://test-api.centralpay.net/v2/rest/3ds2/results/{{threeDSServerTransID}}' \ --header 'Authorization: Basic e3tERUZBVUxUX1VTRVJ9fTp7e0RFRkFVTFRfUEFTU1dPUkR9fQ==' Réponse : { "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f", "transStatus": "Y", "authenticationValue": "JAmi21makAifmwqo2120cjq1AAA=", "eci": "01" } 7) Transaction Les données suivantes sont nécessaires afin de valider une transaction en 3DS 2.0 : 3ds[threeDSServerTransID] = threeDSServerTransID 3ds[status] = transStatus 3ds[cavv] = authenticationValue 3ds[eci] = eci (Obligatoire si disponible) 3ds[xid] = Paramètre Custom destiné aux marchands. Exemple d’une transaction 3DS 2.0 : curl --location --request POST 'https://test-api.centralpay.net/v2/rest/transaction' \ --header 'Origin: https://example.centralpay.net' \ --header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA==' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'currency=EUR' \ --data-urlencode 'amount=1500' \ --data-urlencode 'endUserIp=9.64.32.8' \ --data-urlencode 'endUserLanguage=ita' \ --data-urlencode 'merchantTransactionId=cpcg_12654de89ce44' \ --data-urlencode 'pointOfSaleId=1beb8574-cf4c-4b12-b065-d12b3f0eaa90' \ --data-urlencode 'browserUserAgent=Mozilla/5.0 (iPhone; CPU iPhone OS 16_1_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Mobile/15E148 Safari/604.1' \ --data-urlencode 'browserAcceptLanguage=it_IT' \ --data-urlencode 'paymentRequestBreakdownId=5485d7e6-60c3-753c-94d3-682eaaf9ae6e' \ --data-urlencode 'email=support@centralpay.eu' \ --data-urlencode 'receiptEmail=support@centralpay.eu' \ --data-urlencode 'capture=true' \ --data-urlencode 'cardTokenId=5b9nb5cf-4470-4e58-b690-dd8965860eb8' \ --data-urlencode 'order[cardholderEmail]=support@centralpay.eu' \ --data-urlencode 'order[firstName]=John' \ --data-urlencode 'order[lastName]=Doe' \ --data-urlencode 'source=EC' \ --data-urlencode '3ds[xid]=35876533346561303461' \ --data-urlencode '3ds[cavv]=JAmi21makAifmwqo2120cjq1AAA=' \ --data-urlencode '3ds[eci]=01' \ --data-urlencode '3ds[status]=Y' \ --data-urlencode '3ds[threeDSServerTransID]=7d031b8e-7fb7-4215-b866-eaacb395002f'
TRANSACTION status Status « Transaction » StatusDescriptionSUCCESSThe transaction is a « success » when an authorization request has been issued by the Bank and the bank return code is « 0 ».FRAUDThe status indicates that the transaction encountered a « blacklisted » item. This can come from an IP, phone number, email or card number.CAPTUREDA Success transaction must be « captured » within 7 calendar days in order to be charged to your Customer’s card.Note: by default, a transaction is automatically « captured ».FAILUREThe transaction is in « failure » when the authorization has not been issued by the Bank issuing the card.In addition, you receive a rejection code issued by the bank of the card issuer (bank code < 100).CANCELEDThis status reflects the cancellation of a « capture » request before it is cleared. It is possible to cancel a transaction between the « success » and « cleared » transaction status.THREEDS_AUTH_FAILURE3DS authentication failed. The cardholder submitted an incorrect code or did not submit it in time.CLEAREDA « Cleared » transaction indicates that a debit has been made on your customer’s card. At this point, you can no longer cancel the transaction, but you can refund it using the « refund » API object.NOT_ACCEPTEDThe transaction was declined as it encountered an element of denial of an acceptance rule.
3DS 2.2 3RI (paiements récurrents) Prérequis Afin de réaliser une transaction en 3DS 2.0 3RI, il faut que l’utilisateur ait déjà réalisé une transaction 3DS 2.0 avec une authentification BRW.Une fois celle-ci effectuée, gardez le acsTransId qui est envoyé, il faudra le passer dans threeDSReqPriorRef. 1/ 3DS AUTHENTICATION RI L’appel devra être adressé vers l’URL suivante de l’API CentralPay : « 3ds2/authentication » Le acsTransId que vous avez gardé de l’authentification BRW doit être mis dans threeDSReqPriorRef. Si l’api vous retourne un statut de transaction (« transStatus ») à « Y » l’authentification 3RI est autorisé. Voici les valeurs possibles de transStatus et leur signification : Y = Vérification de l’authentification réussie. N = Non authentifié /Compte non vérifié. Transaction refusée. U = L’authentification/la vérification du compte n’a pas pu être effectuée. Problème technique ou autre, comme indiqué dans ARes ou RReq. A = Traitement des tentatives effectué. Non authentifié/vérifié, mais une preuve de tentative d’authentification/vérification est fournie. C = Challenge requis. Une authentification supplémentaire est requise en utilisant le CReq/CRes. D = Challenge requis. Authentification découplée confirmée. R = Authentification/vérification du compte rejetée. L’émetteur rejette l’authentification/vérification et demande de ne pas tenter d’autorisation. I = Information seulement. Reconnaissance de la préférence du demandeur pour le défi 3DS. Exemple d’appel 3RI (curl code) : curl --location --request POST 'https://test-api.centralpay.net/v2/rest/3ds2/authentication' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA==' \ --data-urlencode 'customerId=aae4d8c0-a555-4c2f-bfdf-18d5636b78a4' \ --data-urlencode 'cardId=44d0691b-b117-4799-ba07-31e0b02c5b08' \ --data-urlencode 'pointOfSaleId=08960d92-874b-4447-800b-aaa53fa976f5' \ --data-urlencode 'deviceChannel=03' \ --data-urlencode 'messageCategory=02' \ --data-urlencode 'acctType=03' \ --data-urlencode 'cardExpiryDate=9999' \ --data-urlencode 'purchaseAmount=4880' \ --data-urlencode 'purchaseCurrency=978' \ --data-urlencode 'purchaseExponent=2' \ --data-urlencode 'purchaseDate=20230101122345' \ --data-urlencode 'recurringExpiry=20330101' \ --data-urlencode 'recurringFrequency=0' \ --data-urlencode 'chAccAgeInd=03' \ --data-urlencode 'chAccChange=20220901' \ --data-urlencode 'chAccDate=20220901' \ --data-urlencode 'email=support@centralpay.eu' \ --data-urlencode 'nbPurchaseAccount=2' \ --data-urlencode 'paymentAccAge=20221001' \ --data-urlencode 'paymentAccInd=03' \ --data-urlencode 'threeDSReqPriorAuthMethod=02' \ --data-urlencode 'threeDSReqPriorAuthTimestamp=202209010123' \ --data-urlencode 'threeDSReqPriorRef=7d031b8e-7fb7-4215-b866-eaacb395002f' \ --data-urlencode 'threeDSRequestorDecReqInd=N' \ --data-urlencode 'threeDSRequestorAuthenticationInd=02' \ --data-urlencode 'threeDSRequestorChallengeInd=02' \ --data-urlencode 'threeRIInd=01' Explication de certains paramètres deviceChannel 03 -> 3DS Requestor Initiated (3RI) messageCategory 02 -> La valeur 02 force la transaction en 3RI. purchaseAmount -> Montant de l’achat courant purchaseCurrency -> Monnaie au format ISO purchaseExponent -> Unité mineure de la monnaie courante purchaseDate -> Date de l’achat recurringExpiry -> Date à laquelle il n’y aura plus d’autorisations qui pourront être effectuées recurringFrequency -> Nombre de jours minimums entre deux autorisations. acctType -> Debit chAccAgeInd -> Durée pendant laquelle le titulaire de la carte possède le compte auprès du demandeur 3DS. Les valeurs acceptées sont : 01 -> Pas de compte 02 -> Créé durant la transaction 03 -> Moins de 30 jours 04 -> Entre 30 et 60 jours 05 -> Plus de 60 jours. chAccChange -> Date à laquelle le compte du titulaire de la carte auprès du demandeur 3DS a été modifié pour la dernière fois. Format de la date = YYYYMMDD. chAccDate -> Date à laquelle le titulaire de la carte a ouvert le compte auprès du demandeur 3DS. Format de la date = YYYYMMDD. nbPurchaseAccount -> Nombre d’achats effectués avec ce compte de titulaire de carte au cours des six derniers mois. paymentAccAge -> Date à laquelle le compte de paiement a été inscrit sur le compte du titulaire de la carte auprès du demandeur 3DS. paymentAccInd -> Indique la durée pendant laquelle le compte de paiement a été inscrit sur le compte du titulaire de la carte auprès du demandeur 3DS. Les valeurs acceptées sont : 01 -> Pas de compte 02 -> Créé durant la transaction 03 -> Moins de 30 jours 04 -> Entre 30 et 60 jours 05 -> Plus de 60 jours. threeDSReqPriorAuthMethod 02 -> Vérification du porteur de carte effectué par l’ACS. threeDSReqPriorAuthTimestamp -> Date et heure en UTC de l’authentification précédente. Le format de date accepté est YYYYMMDDHHMM. threeDSReqPriorRef -> Le champ doit contenir la valeur « acsTransId » de la transaction 3DS BRW précédente. threeDSRequestorDecReqInd N -> Ne pas utiliser l’authentification découplée. threeDSRequestorAuthenticationInd 02 -> Transaction récurrente threeDSRequestorChallengeInd 02 -> Pas de Challenge requis threeRIInd 01 -> Transaction récurrente Exemple de réponse : { "threeDSServerTransID": "67dc456c-6c7a-987f-92cf-f68752525d0c", "transStatus": "Y", "eci": "02", "contractId": "fb8736a5-8741-19b6-9d38-ec135888e0bf" } 2/ Transaction Les données suivantes sont nécessaires afin de valider une transaction en 3DS 2.0 : 3ds[threeDSServerTransID] = threeDSServerTransID (ajouter le nouveau génerer par l’authentification 3RI) 3ds[status] = transStatus 3ds[eci] = eci (Obligatoire si disponible) 3ds[xid] = Paramètre Custom destiné aux marchands. Lors d’une transaction en 3RI, il ne faut pas envoyer le 3ds[cavv]. Exemple d’une transaction 3DS 2.0 : curl --location --request POST 'https://test-api.centralpay.net/v2/rest/transaction' \ --header 'Origin: https://example.centralpay.net' \ --header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA==' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'currency=EUR' \ --data-urlencode 'amount=1500' \ --data-urlencode 'endUserIp=9.64.32.8' \ --data-urlencode 'endUserLanguage=ita' \ --data-urlencode 'merchantTransactionId=cpcg_12654de89ce44' \ --data-urlencode 'pointOfSaleId=1beb8574-cf4c-4b12-b065-d12b3f0eaa90' \ --data-urlencode 'browserUserAgent=Mozilla/5.0 (iPhone; CPU iPhone OS 16_1_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Mobile/15E148 Safari/604.1' \ --data-urlencode 'browserAcceptLanguage=it_IT' \ --data-urlencode 'paymentRequestBreakdownId=5485d7e6-60c3-753c-94d3-682eaaf9ae6e' \ --data-urlencode 'email=support@centralpay.eu' \ --data-urlencode 'receiptEmail=support@centralpay.eu' \ --data-urlencode 'capture=true' \ --data-urlencode 'customerId=aae4d8c0-a555-4c2f-bfdf-18d5636b78a4' \ --data-urlencode 'cardId=44d0691b-b117-4799-ba07-31e0b02c5b08' \ --data-urlencode 'order[cardholderEmail]=support@centralpay.eu' \ --data-urlencode 'order[firstName]=John' \ --data-urlencode 'order[lastName]=Doe' \ --data-urlencode 'source=EC' \ --data-urlencode '3ds[xid]=35876533346561303461' \ --data-urlencode '3ds[eci]=02' \ --data-urlencode '3ds[status]=Y' \ --data-urlencode '3ds[threeDSServerTransID]=67dc456c-6c7a-987f-92cf-f68752525d0c'
REFUND status Statuts « Refund » StatutDescriptionCLEAREDProcessed refund.UNCLEAREDRefund pending processing.FAILURERefund in error.CANCELEDRefund cancelled, either by you or by your customer via the customer portal.
FAQ 3DS 2.2 Foire aux questions autour du 3-D Secure 2.0. Existe-t-il des cartes de test pour des transactions 3DS2 en environnement RCT ? Consultez la liste des cartes de tests de l’environnement de RCT Ma transaction a reçu le code retour banque 5, qu’est-ce que ça signifie ? Cela signifie, que la banque refuse sans donner de statut particulier.Cela peut être un code CVV erroné ou une autre décision que nous ne connaissons pas.Ce statut ne permet pas d’affirmer que la banque n’acceptera pas l’autorisation après d’autres tentatives. Ma transaction a reçu le code retour banque 12, qu’est-ce que ça signifie ? Cela signifie que la banque refuse sans donner de statut particulier.La raison peut être : – Simplement une transaction invalide – Un code 75 de la part de la banque émetteur (le code PIN de la carte a été trop de fois incorrecte) – Un CVV erroné (fournit par l’ACS lors d’une authentification 3DS) – Ou une autre décision que nous ne connaissons pas. L’API transaction me retourne une erreur « Soft Decline » pourtant le paramètre « threeDSServerTransID » est bien celui retourné par le cres.Comment devons-nous interpréter ce retour et que devons-nous faire ? Le soft decline est renvoyé par la banque lorsque que le 3DS n’est pas présent dans la transaction.Il faut vérifier s’il manque des champs présentés dans cette partie de la documentation : https://ref-api.centralpay.net/payment#106-3ds-sub-object Ma requête du Versioning me retourne une erreur « 404 » avec le message « Card account number not found in card ranges from Directory Server ».Qu’est-ce que ça signifie et que dois-je faire ? Cela signifie que la carte utilisée n’est pas enrôlée 3DS2.0 et que la transaction ne peut pas se faire en 3DS2.0.Pour ce cas, nous conseillons de prévoir un basculement vers un paiement en 3DS1 pour ce genre de carte. La réponse de la requête Result nous a renvoyé le transStatus à U.Comment devons-nous interpréter ce retour et que devons-nous faire dans ce cas ? La valeur U de transStatus en réponse de la requête result signifie que l’authentification ou la vérification n’a pas pu se faire suite à un problème technique ou autres problèmes.Du côté du smart form lors du challenge avec la requête result, seules les valeurs Y et A permettent de valider le challenge et continuer le paiement.Les autres valeurs font échouer le challenge et le paiement.Mais dans le cas d’un custom form le fonctionnement peut être différent, vous pouvez utiliser la valeur U pour faire une nouvelle tentative de challenge et si ça échoue encore alors le paiement passe en 3DS1 ou est refusé, ou alors pour directement retenter le paiement en 3DS1 ou le considérer comme un échec de paiement.Ces différents cas sont possibles à réaliser. Nous avons soumis le formulaire à l’URL retournée par l’authentication avec le base64EncodedChallengeRequest.Mais le client est aussitôt revenu sur notre site sans CRES mais avec un paramètre ERROR contenant la valeur « eyJ0aHJlZURTU…Mi4xLjAifQ== » ainsi que le paramètre « THREEDSSESSIONDATA » qui lui était vide.Comment devons-nous interpréter ce retour et que devons-nous faire dans ce cas ? Lorsque vous avez un retour de ce genre, il faut vérifier que votre processus du 3DS2 se déroule bien sûr une seule et même page avec la solution d’un iframe.Si le processus est conforme, alors contactez le support technique avec les informations nécessaires. Pour rappel, toutes les étapes du formulaire se réalisent sur une seule et même page sans redirection vers une page bancaire ou autre.Cela se fait grâce à la solution de l'Iframe.Toute la procédure du 3DS2.0 se passe sur la même page ! Nous avons reçu une erreur 303 : « acquirerBIN, acquirerMerchantID not recognized » lors d’un appel à l’authentication.Comment devons-nous interpréter ce retour et que devons-nous faire dans ce cas ? Il s’agit soit du contrat qui n’est pas 3DS2, soit d’autres problèmes.Dans le cas d’un autre problème, il faut alors contacter le support technique en fournissant le numéro de contrat monétique (si connu) et les autres informations pouvant être nécessaire. Sur l’étape d’authentication, nous avons eu une erreur 203 : « Validation of 3DS Requestor Authentication data failed.Data element not in the required format or value is invalid » pour le champ merchant.merchantName.Comment devons-nous interpréter ce retour et que devons-nous faire dans ce cas ? L’erreur 203 signifie qu’il y a un caractère invalide dans le paramètre « merchant.merchantName ». Lors d’un test d’appel de la fonction 3DS2 « authentication », l’erreur suivante est retournée dans la clé « card data » : « There is no unique source of card ».Qu’est-ce que cela signifie ? L’erreur « There is no unique source of card » est commune à toute la plateforme et est présent lorsque vous envoyez des informations de cartes deux fois : par exemple via un cardToken et un cardId ou un PAN et un cardToken etc…
CREDIT status Status « Credit » StatusDescriptionCLEAREDCredit processed.UNCLEAREDCredit pending processingFAILURECredit in error.CANCELEDCredit cancelled, either by you or by your Customer via the customer portal.
Informations générales Cette section explique le fonctionnement de la création de comptes CentralPay, qu’il s’agisse de comptes de paiement ou de comptes de monnaie électronique, ainsi que les méthodes disponibles pour initier un enrôlement utilisateur via nos outils (portail ou API), en fonction du modèle de partenariat. 🧾 Types de comptes CentralPay permet l’ouverture de deux types de comptes réglementés : Type de compteDescriptionExemples d’usageCompte de paiementCompte de paiement au sens de l’article L314-1 du Code monétaire et financier.Encaissement par carte, virement ou SEPA.Compte de monnaie électroniqueCompte prépayé en euros émis par CentralPay, selon les règles des Établissements de Monnaie Électronique.Wallets, marketplaces C2C, cashback, titres. L’attribution du type de compte dépend du modèle économique et du partenaire (marchand direct, partenaire DME, etc.). 🔄 Fonctionnement global de l’enrôlement L’ouverture d’un compte passe systématiquement par une procédure d’enrôlement incluant : La création d’une demande d’enrôlement : initiation d’un dossier contenant les premières informations (email, nom, prénom). La complétion de l’enrôlement : soumission par l’utilisateur des informations réglementaires et des justificatifs (KYC/KYB). La validation de l’enrôlement : analyse par CentralPay, pouvant aboutir à une ouverture de compte, une demande complémentaire ou un refus. 📥 Deux interfaces possibles InterfaceDescriptionPublic concernéPortail d’enrôlement CentralPayInterface hébergée par CentralPay, accessible via lien personnalisé.Tous types d’utilisateursAPI d’enrôlementInterface technique permettant à un partenaire d’initier ou compléter des enrôlements via API.Partenaires autorisés selon leur statut ⚠️ Conformité et réglementation Afin de respecter le cadre réglementaire applicable aux Prestataires de Services de Paiement, la répartition des rôles est strictement encadrée : CentralPay initie seul la contractualisation avec l’utilisateur. Le partenaire technique ne peut pas inciter, conseiller ni initier une ouverture de compte. Le partenaire technique n’intervient pas dans la collecte de justificatifs. Seuls les partenaires enregistrés comme MOBSP, Agent ou DME peuvent intervenir dans les étapes d’enrôlement élargies. Modèle partenairePeut initier une demande d’enrôlementPeut compléter un enrôlement (API)Peut transmettre des justificatifs KYCPartenaire TechniqueOui*❌ Non❌ NonPartenaire DMEOui, via API ou portail✅ Oui✅ OuiPartenaire AgentOui, via API ou portail✅ Oui✅ Oui (KYC Niveau 1 ou plus si mandat) * Le partenaire technique peut créer une demande d’enrôlement contenant uniquement les données de contact (email, nom, prénom, raison sociale), sans envoyer lui-même de lien d’enrôlement.CentralPay reste seul décideur de la suite du processus.
DISPUTES status Status « Disputes » StatutDescriptionRETRIEVAL_NOTICEDA request for information is sent to you in order to obtain information on the nature of the operation carried out. At this point, it is not a proven dispute. Depending on your response to this request, your client can turn it into a dispute.RETRIEVAL_CLOSENotification that the request for information is closed. The information provided has prevented the dispute.CHARGEBACK_NOTICEDA transaction dispute is sent by your customer. The amount of this transaction will be charged to refund your customer. Non-refundable fees also apply for each dispute received.Note : a Chargeback (dispute) is not necessarily preceded by a Retrieval (request for information).CHARGEBACK_WONYou were successful, the dispute was rejected. The amount of the transaction is refunded to you.CHARGEBACK_LOSTYour evidences are deemed insufficient, the challenge is upheld.TRANSACTION_REFUNDEDThe amount of the disputed transaction was refunded to you following a CHARGEBACK_WON.
Demande d'enrôlement Méthodes de création d’une demande d’enrôlement a. Depuis le portail utilisateur CentralPay Un utilisateur connecté au portail CentralPay peut initier une demande d’enrôlement depuis le menu : Plateforme > Enrôlements > CréerEn RCT : https://test-backoffice.centralpay.net/admin/onboarding/En PROD : https://backoffice.centralpay.net/admin/onboarding/ Il peut alors renseigner manuellement les champs décrits plus bas (dans le détail de l’appel API). Une fois la demande enregistrée, un lien de redirection vers le portail d’onboarding est généré automatiquement et peut être : envoyé automatiquement par e-mail via le Mailer CentralPay (sélectionner OUI dans le champ « Envoyer des emails à l’adresse ci-dessus »), ou copié manuellement pour un envoi par un autre canal (chat, SMS, etc.). b. Depuis l’API : POST /merchant-enrollments L’enrôlement peut aussi être initié automatiquement via l’API, en appelant : POST /merchant-enrollments L’appel permet de générer un identifiant d’enrôlement (uuid) et d’initier un parcours d’onboarding complet, qui pourra être poursuivi : soit via le portail utilisateur, soit entièrement via les endpoints API (voir partie “Compléter un enrôlement par API”). ⚠️ Aucun lien direct (enrollment_url) n’est retourné par l’API. Par défaut, la plateforme CentralPay envoie un e-mail à l’adresse définie dans profile[email][value].Pour désactiver cet envoi : "sendClaimEmail": falseSi vous désactivez l'envoi, vous pouvez transmettre manuellement l’URL d’accès à l’interface onboarding en reconstituant :En RCT : https://test-onboarding.centralpay.net/token/profile/[UUID]En PROD : https://onboarding.centralpay.net/token/profile/[UUID]Note : [UUID] est l’identifiant retourné dans la réponse à POST /merchant-enrollments. Créer une demande d’enrôlement depuis l’API (merchant-enrollment) 🇫🇷 Enrôlement simplifié via SIREN (France uniquement)CentralPay permet de pré-remplir automatiquement certaines informations pour les sociétés françaises disposant d’un numéro SIREN :1. Appeler l’endpoint : POST /api/legal-entity/siren2. Fournir le champ : { "siren": "123456789" }3. Si les informations sont valides, un uuid est retourné. Il doit être utilisé comme identityBadge dans la création d’enrôlement pour déclencher le parcours simplifié. Champs requis ChampTypeObligatoireDescriptionprofile[firstname][value]string (255)✅Prénom du titulaire. Validation : caractères alphabétiques et tirets (-). Depuis la version 1.15.0profile[lastname][value]string (255)✅Nom du titulaire. Validation : caractères alphabétiques et tirets (-). Depuis la version 1.15.0profile[email][value]string (255)✅Adresse email de contact. Depuis la version 1.15.0profile[phone][value]string✅Numéro de téléphone international. Depuis la version 1.15.0languagestring✅Langue préférée du marchand. Note : utilisez GET /api/locale pour les valeurs disponibles.accountTypeenum✅Type de compte à créer. Note : utilisez GET /api/merchant-enrollment/account-type.activitySectorUUID (36)✅Secteur d’activité du marchand. Note : utilisez GET /api/nauth/enrollment-claim/activity-sector.activityAgeUUID (36)✅ si type = LEGAL_ENTITY ou INDIVIDUAL_WITH_STATUSAncienneté de l’activité. Note : utilisez GET /api/nauth/enrollment-claim/activity-age.feeScheduleUUID (36)✅Grille tarifaire à appliquer. Note : obtenez les identifiants via POST /api/merchant-enrollment/fee-schedule.identityBadgeUUID✅ si enrôlement via SIRENIdentifiant SIREN (activant le parcours simplifié).contractUUID✅ si accountType = STANDARDContrat à appliquer. Note : utilisez GET /api/merchant-enrollment/contract. ⚙️ Champs avancés (optionnels) 🔧 Personnalisation du parcours ChampValeur par défautDescriptionworkflowModeSEQUENTIALMode de déroulement du parcours (seul le mode SEQUENTIAL est désormais disponible).Note : valeurs valides : SEQUENTIALtype—Type juridique : INDIVIDUAL, INDIVIDUAL_WITH_STATUS, LEGAL_ENTITY.Note : conditionne la structure du parcours.subType—Sous-type recommandé selon type.Note :Pour INDIVIDUAL_WITH_STATUS : SOLE_TRADER, MERCHANT, ARTISANPour LEGAL_ENTITY : ASSOCIATION, PUBLIC, COMMERCIAL, EIG, CIVILturnoverIsFixedfalseSi true, verrouille la déclaration de chiffre d’affaires.Note : facultatif 📫 Paramètres de communication ChampValeur par défautDescriptionsendClaimEmailtrueEnvoie l’e-mail d’enrôlement avec le lien portail.allowedEmailCommunicationtrueSi false, désactive tous les envois d’e-mails pendant le parcours d’onboarding.sendProfileCreationEmailfalseEnvoie un email à l’utilisateur une fois le profil complété.sendAccountCreationEmailtrueEnvoie un email une fois le compte CentralPay activé. 👤 Données personnelles Tous les champs ci-dessous sont facultatifs mais permettent de pré-renseigner la constitution du profil utilisateur du futur titulaire du compte. ChampTypeDescriptionprofile[nationality][country]string (3)Nationalité (format ISO 3166-1 alpha-3).profile[birthday][value]dateDate de naissance.Validation : ≥ 18 ans, ≤ 110 ansprofile[place_of_birth][value]stringLieu de naissance.profile[country_of_birth][country]string (3)Pays de naissance (ISO 3166-1 alpha-3).birthdayConfirmation[value]dateRequis uniquement si le marchand est affilié à un agent.Format : YYYY-MM-DD 🏠 Adresse (optionnelle) Ces champs peuvent être fournis pour pré-remplir l’adresse du titulaire. ChampTypeDescriptionprofile[address][nameLine1]string(255)Ligne 1 de l’adresse.Contraintes : ^[a-zA-Z0-9\\p{L} ´'\\-]{1,255}$profile[address][locality]string(255)Ville.profile[address][postalCode]string(20)Code postal.profile[address][country]string(3)Pays (ISO 3166-1 alpha-3). 📋 Autres options ChampTypeDescriptioncontractUUID (36)Contrat à appliquer.Obligatoire si accountType = STANDARD.Note : GET /api/merchant-enrollment/contractcguUUID (36)CGU à appliquer.Note : POST /api/merchant-enrollment/cguDepuis version 1.18.0customReferencestring (100)Référence personnalisée (usage interne).payoutProfileUUID (36)Profil de virement à associer.Note : POST /api/merchant-enrollment/payout-profileadministrativeContactstring (255)Contact administratif référent.Depuis version 1.18.0technicalContactstring (255)Contact technique.Depuis version 1.18.0financialContactstring (255)Contact financier.Depuis version 1.18.0addSecurityReferenceboolAffiche une référence de sécurité lors de la validation du contrat.Uniquement valable pour : STANDARD, PARTNER, RESELLER.Défaut : falsehookUUIDIdentifiant de webhook à notifier.Note : voir onglet Full API reference pour obtenir les valeurs possibles.
SUBSCRIPTION status Status « Subscription » StatusDescriptionACCEPTEDThe subscription is active and running (initial status when a subscription is successfully created).PENDINGStatus defined by the configuration you have chosen in case of repeated payment failures.REFUSEDStatus defined by the configuration you have chosen in case of repeated payment failures.CANCELLEDThe subscription has been cancelled either by you or by your Customer via the customer portal.
Compléter un enrôlement Une fois la demande d’enrôlement créée, le titulaire du futur compte peut finaliser son parcours de deux manières : via le portail CentralPay ou par intégration complète à l’API. ✅ Option 1 – Compléter l’enrôlement via le portail CentralPay Le lien d’accès à l’onboarding (généré ou reconstruit lors de la création d’enrôlement) permet au futur titulaire de compte de renseigner ses informations et d’uploader les documents demandés depuis l’interface CentralPay, de manière autonome. Vous êtes notifié automatiquement à chaque étape de l’enrôlement ou uniquement à sa finalisation (selon votre paramétrage webhook). Une fois le parcours complété par l’utilisateur, les données sont transmises aux équipes conformité de CentralPay pour validation. Dans certains cas, des documents complémentaires pourront être requis par les analystes CentralPay. 🔧 Option 2 – Compléter l’enrôlement par API Il est également possible de piloter l’ensemble du parcours d’enrôlement via API, étape par étape. Le processus suit 4 grandes phases : Compléter le profil Déterminer le workflow Compléter le workflow Finaliser l’enrôlement 1. Compléter le profil 📌 Statut du profil Un profil commence toujours avec un statut workflow.status = "ON_GOING". Pour être considéré comme complété, ce statut doit devenir ACCEPTED. ⚠️ En mode SEQUENTIAL, ce statut peut revenir à ON_GOING lors du déblocage de questions supplémentaires. Il convient de le recontrôler à chaque étape. 🔁 Obtenir la première activité à compléter Récupérer l’activityUuid via : GET /api/nauth/merchant-enrollment/{enrollmentId} Parcourir : profile.workflow.activities[0].uuid Puis interroger : GET /api/nauth/profile/{activityUuid}/activity 📝 Soumettre les données Envoyer les données attendues via un formulaire : POST /api/nauth/profile/{activityUuid}/activityContent-Type: multipart/form-data Exemple de champs attendus (activité “Identity Informations”) : ChampTypeContraintesfirstname[value]string255 caractèreslastname[value]string255 caractèresmail[value]stringEmail validephone[value]stringNuméro international (min. 10 caractères)birthday[value]stringDate au format YYYY-MM-DD, entre 18 et 110 ansplace_of_birth[value]string—country_of_birth[country]stringISO 3166-1 alpha-3 Autres types d’activité possibles : Domiciliations : informations d’adresse Pièce d’identité : type (IDENTITY_CARD, PASSPORT) + documents (2 fichiers pour carte, 1 pour passeport) Répétez ce processus tant que le statut d’une activité reste "TODO". 2. Déterminer le workflow Cette étape débloque la suite du parcours (collecte de documents, justificatifs, etc.). POST /api/merchant-enrollment/{enrollmentUuid}/activity/{uuid} Payload attendu : ChampTypeObligatoireNotestypeEnum✅INDIVIDUAL, INDIVIDUAL_WITH_STATUS, LEGAL_ENTITYbankAccountInEEACountrybool✅—turnoverUUID (36)✅POST /api/nauth/enrollment-claim/turnovercompanyNamestring(255)Si LEGAL_ENTITY—activityAgeUUID (36)Si LEGAL_ENTITY ou INDIVIDUAL_WITH_STATUSGET /api/nauth/enrollment-claim/activity-agesubTypeENUMrecommandéDépend du type (voir détails ci-dessous)isCompanyboolSi LEGAL_ENTITY— ❗ Si vous avez utilisé un identityBadge (enrôlement via SIREN), cette étape est automatiquement sautée : le workflow est déjà déterminé. 3. Compléter le workflow Chaque étape du workflow suit la même logique que celle du profil. Types de step possibles : FORM : champs à renseigner via key[value] API_CALL : traitement externe VALIDATION : action manuelle par les équipes CentralPay ENDED : étape finalisée 📘 Exemple : pour le champ company_legal_status, il faut envoyer company_legal_status[value]. Les endpoints utilisés sont : POST /api/merchant-enrollment/{merchantUuid}/activity/{uuid}POST /api/merchant-enrollment/{uuid}/complete
INSTALLMENT status Status « Subscription » StatusDescriptionACTIVEThe installment is active and follows its course (initial status when an installment is created successfully).PAIDThe installment has been fully paid.FAILUREA payment attempt failed, there will be at least one more trial (The number of trials is configurable on the user portal).UNPAIDAll payment attempts failed, final status.CANCELEDThe installment has been cancelled by the merchant.
SDD TRANSACTION status Statuts « SDD Transaction » StatutDescriptionACTIVEPending SDD transaction (similar to pending status – largely obsolete status since CentralPay CBK update).PENDINGPending SDD transaction.NOTICEDObsolete — This status is no longer used.CLEAREDProcessed SDD transaction.CANCELEDCancelled SDD transaction.REVERSEDSDD transaction refunded following a rejection of the customer’s bank, a customer dispute, or following a refund from you.
Validation d'un enrôlement Une fois toutes les étapes du profil et du workflow complétées (que ce soit via le portail d’onboarding CentralPay ou par API), l’enrôlement entre en phase de vérification par les équipes conformité de CentralPay. 🔍 Vérification par le service conformité Les analystes procèdent à une analyse complète des informations et documents collectés au cours du parcours. Cette étape peut mener à l’une des décisions suivantes : 🟢 Validation de l’enrôlement Si les éléments fournis sont complets, lisibles, et conformes aux obligations réglementaires, l’enrôlement est validé. CentralPay procède alors automatiquement à la création : du compte CentralPay (Merchant), du compte de paiement (Wallet), du profil utilisateur légal du compte CentralPay (BO User). 📌 Ces entités sont accessibles immédiatement depuis vos outils de supervision (portail ou API). 🟡 Demande de compléments Si certaines pièces sont manquantes, floues, expirées ou incohérentes, une demande de documents complémentaires peut être émise par le service conformité. Cette demande est : soit transmise par email directement au futur titulaire du compte, soit affichée dans le portail d’onboarding CentralPay, si la demande le permet. 🔁 L’utilisateur pourra compléter les pièces demandées pour relancer la vérification. 🔴 Refus de l’enrôlement Dans certains cas (documents non valides, identité invalide, incohérences non résolues, risque trop élevé), l’ouverture du compte peut être refusée. Aucune entité CentralPay (BO User, Wallet, Merchant) n’est alors créée. 🔔 Notifications via webhook Quel que soit le scénario de sortie (validation, complément ou refus), vous êtes notifié en temps réel via les webhooks configurés. Cela vous permet de : suivre les enrôlements au fil de l’eau, adapter votre UX si l’enrôlement est refusé ou en attente, déclencher des actions internes (création CRM, attribution, etc.).
MANDATE status Status « Mandate » StatusDescriptionACTIVEActive mandate, ready to use.PENDINGMandate pending validation.OBSOLETEInactive mandate, not usable.
Compte de Monnaie Électronique limité CentralPay permet la création de comptes de monnaie électronique (ou Wallets) pour stocker et utiliser des valeurs numériques. Deux parcours complémentaires sont proposés : Création rapide d’un Wallet sans KYC (compte limité) : accessible immédiatement avec des plafonds réglementaires. Déplafonnement du Wallet via enrôlement KYC (compte vérifié) : levée des limites après vérification des documents. Ce fonctionnement est adapté aux parcours progressifs : un utilisateur peut créer un compte limité pour un premier usage, puis être invité à compléter son profil pour accéder à l’ensemble des fonctionnalités. Création d’un compte de Monnaie Électronique limité CentralPay permet la création de comptes de monnaie électronique utilisables immédiatement, sans collecte de documents, dans un cadre réglementaire strict. Les comptes de monnaie électronique limités sont réservés aux individuels (personnes physiques). Les personnes morales ne peuvent pas disposer de ce type de compte. 📋 Limites réglementaires Solde maximal : 150 € Encaissement glissant : 150 € sur 30 jours Ce seuil s’appuie sur les dispositions de l’article R561-16 du Code monétaire et financier concernant les comptes de monnaie électronique non vérifiés. ✅ Ce type de compte peut ensuite être déplafonné par enrôlement KYC (voir plus bas). 🧭 Étape 1 – Créer un Customer Le Wallet doit être rattaché à un objet Customer représentant l’utilisateur final. 👉 Documentation – Profils Clients 🧭 Étape 2 – Créer un Wallet POST /wallets ✅ Champs obligatoires ChampTypeDescriptionNotecustomerIdUUIDIdentifiant du CustomerRequis sauf si merchantId est fournicurrencystring (3)Devise du Wallet (ex. "EUR")ISO 4217 – format 3 lettres 📝 Champs optionnels ChampTypeDescriptionreferencestringRéférence métieractivationDatedateDate d’activationexpirationDatedateDate d’expirationadditionalDataobjectDonnées personnalisées (JSON) 🔁 Étapes complémentaires – Gérer un Wallet limité Une fois un Wallet créé, CentralPay vous permet de : le modifier (ex. : ajouter une date d’expiration, une référence, un Merchant) le consulter en détail lister les Wallets existants pour un Customer ou Merchant ✏️ Modifier un Wallet POST /wallets/{walletId} Ce service permet de mettre à jour certains attributs du Wallet sans le recréer. ✅ Champs obligatoires ChampTypeDescriptionNotewalletIdUUIDIdentifiant du Wallet à mettre à jourRequis dans l’URL et/ou le corps de requête 📝 Champs optionnels ChampTypeDescriptionNotereferencestringRéférence personnalisée du Wallet—expirationDatedateDate d’expiration du WalletYYYY-MM-DDactivationDatedateDate d’activation du WalletYYYY-MM-DDadditionalDataobjectDonnées métier structurées (clé/valeur JSON)—merchantIdUUIDPour rattacher un Wallet à un Merchant spécifiqueFacultatif – à ne pas confondre avec customerId 🔎 Consulter un Wallet GET /wallets/{walletId} Ce service permet de récupérer les informations détaillées d’un Wallet existant. ✅ Paramètres requis ChampTypeDescriptionNotewalletIdUUID (36)Identifiant du WalletLe Wallet doit appartenir au Merchant connecté ou à l’un de ses sous-marchands 📘 Description des champs ChampTypeDescriptionNotecurrencystringDevise du WalletISO 4217 (ex. EUR)available[].amountintSolde disponible en centimesEx. : 10500 = 105,00 €pending[].amountintSolde en attente (transactions en cours)—referencestringRéférence du WalletFacultatifadditionalDataobjectDonnées personnaliséesJSON libre 📚 Lister les Wallets d’un Customer GET /wallets Permet d’obtenir la liste des Wallets créés pour un même Customer. ✅ Paramètres requis ChampTypeDescriptioncustomerIdUUIDIdentifiant du CustomercurrencystringDevise (ex. "EUR") 📝 Paramètres optionnels ChampTypeDescriptionNoteafterstringNe retourner que les Wallets créés après cette dateFormat ISO 8601beforestringNe retourner que les Wallets créés avant cette dateFormat ISO 8601limitstringNombre d’éléments par pageDéfaut : 10pagestringIndex de la pageDéfaut : 1 Schéma de création d’un compte de ME limité
BANK ACCOUNT status StatusDescriptionACCEPTEDThe bank account has been accepted by the conformity service.PENDINGThe bank account is waiting the conformity service verification.REFUSEDThe bank account has been refused by the conformity service.CANCELLEDThe bank account is no longer usable (closed account, fraud, …).
Déplafonner un compte de Monnaie Électronique Un Wallet peut être converti en compte vérifié (limites levées) via un enrôlement complet, déclenché par l’API. 🧭 Étape 1 – Créer un enrôlement POST /merchant-enrollments Vous devez inclure le walletId du Wallet limité existant. ✅ Champs obligatoires ChampTypeDescriptionNotewalletIdUUIDLien avec le Wallet ME à déplafonnerUUID valideprofile[firstname][value]string (255)PrénomAlpha + -profile[lastname][value]string (255)NomAlpha + -profile[email][value]string (255)Email de contact—profile[phone][value]string (15)Téléphone international—profile[birthday][value]date (YYYY-MM-DD)Date de naissanceEntre 18 et 110 ansprofile[place_of_birth][value]string (255)Lieu de naissance—profile[country_of_birth][country]string (3)Pays de naissanceISO 3166-1 alpha-3languagestring (3)"fr" ou "en"—accountTypestring"BASIC"—typestring"INDIVIDUAL"—activitySectorUUID (36)Secteur d’activitéGET /api/nauth/enrollment-claim/activity-sectorfeeScheduleUUID (36)Grille tarifairePOST /api/merchant-enrollment/fee-scheduleturnoverUUID (36)CA annuel attenduPOST /api/nauth/enrollment-claim/turnoverworkflowDefinitionUUIDModèle de workflowfournie par CentralPayprofileWorkflowDefinitionUUIDModèle de profilfournie par CentralPayworkflowModestring"SEQUENTIAL"RequisallowedEmailCommunicationbooleanConsentement à recevoir des emailstrue ou false 📝 Champs facultatifs ChampTypeDescriptionsendClaimEmailbooleanEnvoi de l’e-mail d’enrôlement (défaut : true)sendProfileCreationEmailbooleanEmail après profil complétésendAccountCreationEmailbooleanEmail à l’ouverture du compte vérifiécustomReferencestringRéférence internetechnicalContact, administrativeContact, financialContactstring(255)Contacts métiersaddSecurityReferencebooleanAffiche une référence sécurité (pour STANDARD, PARTNER, RESELLER)hookUUIDHook techniquebirthdayConfirmation[value]dateSi affilié à un agent 🧭 Étape 2 – Compléter un enrôlement KYC (via autocomplete) Pour accélérer le processus d’enrôlement, vous pouvez compléter d’un seul coup toutes les données attendues en appelant : POST /merchant-enrollment/{uuid}/autocomplete 📍 Adresse de résidence ChampTypeObligatoireDescriptionNoteaddress[nameLine1]string✅Numéro et nom de rue—address[locality]string✅Ville de résidence—address[postalCode]string✅Code postal—address[country]string✅Pays de résidenceISO 3166-1 alpha-3 🪪 Document d’identité ChampTypeObligatoireDescriptionNoteidentityDocument[type]string✅Type de documentIDENTITY_CARD, PASSPORT, RESIDENCE_PERMIT, VISA, IDENTITY_DOCUMENT_RECEIPTidentityDocument[documents][0]fichier✅Recto ou scan principalJPG, JPEG ou PNGidentityDocument[documents][1]fichier✅ si IDENTITY_CARDVerso ou page complémentaireJPG, JPEG ou PNGidentityDocument[issuingCountry]string✅Pays émetteurISO 3166-1 alpha-3identityDocument[expiryDate]string❌Date d’expirationFormat YYYY-MM-DDidentityDocument[checkId]string❌ID de contrôle (Onfido)—identityDocument[documentNumber]string❌Numéro du document—identityDocument[mrzLine1]string❌Ligne MRZ 1—identityDocument[mrzLine2]string❌Ligne MRZ 2— Cas particuliers ChampObligatoireConditionDescriptionidentityDocument[proofOfIdentityDocument]✅si type = IDENTITY_DOCUMENT_RECEIPTJustificatif visuel du récépisséidentityDocument[proofOfIdentityDocuments][*]✅idemPlusieurs fichiers si applicableidentityDocument[proofOfIdentityDocumentExpiryDate]✅si fichier proofOfIdentityDocument fourniFormat YYYY-MM-DD 🏦 Données bancaires (facultatif mais recommandé) ChampTypeObligatoireDescriptionNoteiban[value]string❌IBAN à vérifierFormat IBAN validebic[value]string❌Code BIC/SWIFT—ibanDocument[document]fichier❌Justificatif bancaire (RIB, relevé)JPG, JPEG ou PNG 🧾 Données KYC complémentaires (riskData) Tous les champs suivants sont requis sauf mention contraire. ChampTypeObligatoireDescriptionNoteriskData[isPep]bool✅Personne politiquement exposée ?défaut : falseriskData[isInSanctionList]bool✅Appartient à une liste de sanctions ?défaut : falseriskData[residentAlpha3Code]string✅Pays de résidenceISO 3166-1 alpha-3riskData[isHighRiskResident]bool✅Pays de résidence à risque ?—riskData[nationalityAlpha3Code]string✅NationalitéISO 3166-1 alpha-3riskData[isHighRiskNationality]bool✅Nationalité à risque ?—riskData[isHighRiskMCCActivitySector]bool✅Secteur MCC à risque ?—riskData[MCCActivitySector]int✅Code MCC (NAF ou secteur)—riskData[monthlyLimit]int✅Limite mensuelle déclarée (en centimes)Ex. 150000 = 1500,00 €riskData[monthlyLimitCurrencyAlphabeticCode]string✅Devise (ex. EUR)ISO 4217riskData[isCrossBorderPayment]bool❌Paiements transfrontaliers ?Défaut : trueriskData[declaredMonthlyRevenue]int❌Revenus déclarés (en centimes)—riskData[verifiedMonthlyRevenue]int✅ si full KYCRevenus vérifiés— 📄 Documents complémentaires (si requis) ChampTypeObligatoireDescriptionNoteproofOfAddressDocument[documents][0]fichier✅ si profil à risqueJustificatif de domicileJPG, JPEG ou PNGincomeDocument[document]fichier✅ si full KYC requisJustificatif de revenus (1 doc)JPG, JPEG ou PNGincomeDocument[documents][*]fichier✅ si full KYC requisPlusieurs fichiers possiblesJPG, JPEG ou PNG 📎 Autres documents (si nécessaires à la levée de limite) ChampTypeDescriptionNotesadditionalDocuments[X]['type']stringType du document transmisEx. : UBO_DECLARATION, PROOF_OF_VAT_REGISTRATION, LICENSING_AGREEMENT, etc.additionalDocuments[X]['documents'][X]fichierFichier transmisFormat : JPG, JPEG, PNG 📘 La liste complète des types de document acceptés est documentée dans l'Open API. 🧩 Données libres (obligatoire même vide) ChampTypeObligatoireDescriptionmetaDataJSON object✅Métadonnées libres, au format {"key": "value"} (peut être vide) 🧭 Étape 3 – Corriger un enrôlement rejeté (autoupdate) Lorsque le service conformité refuse un ou plusieurs documents (ex. : carte d’identité floue, pièce expirée), vous pouvez soumettre uniquement les éléments refusés via une requête d’auto-mise à jour. POST /merchant-enrollment/{uuid}/autoupdate 🪪 Correction de document d’identité ChampTypeObligatoireDescriptionNoteidentityDocument[type]string✅Type de document à corrigerIDENTITY_CARD, PASSPORT, RESIDENCE_PERMIT, VISA, IDENTITY_DOCUMENT_RECEIPTidentityDocument[documents][0]fichier✅Recto du document (ou fichier unique)JPG, JPEG ou PNGidentityDocument[documents][1]fichier✅ si type = IDENTITY_CARDVerso de la CNIJPG, JPEG ou PNGidentityDocument[issuingCountry]string✅ si document transmisPays émetteurISO 3166-1 alpha-3 📄 Document d’identité complémentaire (si requis) ChampTypeObligatoireDescriptioncomplementaryIdentityDocument[documents][0]fichier✅ si exigéScan ou photo supplémentairecomplementaryIdentityDocument[expiryDate]string✅Date d’expiration (YYYY-MM-DD)complementaryIdentityDocument[documentNumber]string✅Numéro du documentcomplementaryIdentityDocument[mrzLine1]string✅MRZ ligne 1complementaryIdentityDocument[mrzLine2]string✅MRZ ligne 2complementaryIdentityDocument[issuingCountry]string✅Pays émetteur (ISO alpha-3) 🧾 Documents de revenus ChampTypeObligatoireDescriptionincomeDocument[document]fichier✅ si requisFichier unique JPG/JPEG/PNGincomeDocument[documents][*]fichier✅ si multiples attendusPlusieurs documents par index ([0], [1], etc.) 🗂 Compléments d’information personnelle ChampTypeObligatoireDescriptionprofile[firstname][value]string❌Prénomprofile[lastname][value]string❌Nomprofile[birthday][value]string❌Date de naissanceprofile[place_of_birth][value]string❌Lieu de naissanceprofile[country_of_birth][country]string❌Pays de naissance (ISO 3166-1 alpha-3) 🏠 Correction d’adresse (si refusée) ChampTypeObligatoireDescriptionprofile[address][nameLine1]string❌Adresse – ligne 1profile[address][postalCode]string❌Code postalprofile[address][country]string❌Pays (ISO alpha-3)profile[address][locality]string❌Ville 🔍 Mise à jour des données KYC (riskData) Tous les champs suivants sont requis sauf mention contraire. Ils doivent être renvoyés à l’identique ou mis à jour si modifiés dans le cadre de la correction. ChampTypeObligatoireDescriptionNoteriskData[isPep]boolean✅PEP ?défaut : falseriskData[isInSanctionList]boolean✅Sur une liste de sanctions ?défaut : falseriskData[residentAlpha3Code]string✅Pays de résidenceISO alpha-3riskData[isHighRiskResident]boolean✅Pays de résidence à risque ?—riskData[nationalityAlpha3Code]string✅NationalitéISO alpha-3riskData[isHighRiskNationality]boolean✅Nationalité à risque ?—riskData[isHighRiskMCCActivitySector]boolean✅Secteur à risque ?—riskData[MCCActivitySector]int✅Code MCC métier—riskData[monthlyLimit]int✅Limite mensuelle (en centimes)[0 ; 190000]riskData[monthlyLimitCurrencyAlphabeticCode]string✅Devise (ex. EUR)ISO 4217riskData[isCrossBorderPayment]boolean❌Paiements transfrontaliersdéfaut : trueriskData[declaredMonthlyRevenue]int❌Revenus déclarés—riskData[verifiedMonthlyRevenue]int✅ si full KYCRevenus vérifiés (centimes) 📁 Documents additionnels (optionnels ou exigés) ChampTypeObligatoireDescriptionadditionalDocuments[X]['type']string✅ si documents attendusType du justificatifadditionalDocuments[X]['documents'][X]fichier✅Fichiers associés (JPG, JPEG, PNG) 🧩 Autres champs ChampTypeObligatoireDescriptionfullKycboolean❌Permet d’imposer un KYC complet ou simplifié (true / false) 🧭 Étape 4 – Suivre le statut d’un enrôlement Une fois un enrôlement créé et complété, vous pouvez à tout moment interroger son statut pour : vérifier l’état d’avancement (ON_GOING, ACCEPTED, REFUSED) ; suivre les étapes en attente dans le workflow ; extraire les données de profil déjà soumises. 🔍 Récupérer un enrôlement GET /merchant-enrollment/{enrolmentId} ✅ Paramètres requis ChampTypeObligatoireDescriptionNoteenrolmentIdUUID (36)✅Identifiant de l’enrôlement retourné lors de la création (POST /merchant-enrollments)Format UUID standard 📌 L’enrôlement doit appartenir à l’espace autorisé par vos identifiants API (marchand ou sous-marchand). 🔎 Champs principaux de la réponse ChampTypeDescriptionuuidUUIDIdentifiant unique de l’enrôlementworkflow.statusstringStatut du processus (ON_GOING, ACCEPTED, REFUSED)workflow_modestring"SEQUENTIAL" ou "CONTINUAL"workflow.activities[]tableauListe des activités (étapes) encore à compléterprofile[...]objetDonnées de profil déjà soumises, avec leur statutconformity_statusstringÉtat de conformité global (ON_GOING, REVIEW, APPROVED, etc.)created_atdatetimeDate de création de l’enrôlementactivity_sector.namestringSecteur déclaré dans l’enrôlement 🧠 À surveiller Tant qu’une activité a un state = TODO, l’enrôlement est incomplet. Lorsqu’aucune activité n’est en attente et que le workflow.status = ACCEPTED, l’utilisateur est validé. En cas de workflow.status = REFUSED, aucun Wallet vérifié ne sera généré. Schéma de validation KYC d’un compte de ME
PAYOUT status StatusDescriptionPAIDThe payout has been paid.PENDINGPayout pending processing.CANCELLEDThe payout has been cancelled (only in pending).REVERSEDThe payout has been refused by the creditor bank, the amount will be credited again on the debtor wallet.
Retours, statuts et webhooks 1. Codes de retour liés à la création de compte La création d’un compte marchand via l’API d’enrôlement déclenche un processus automatisé permettant à CentralPay de collecter et valider les informations nécessaires à l’ouverture du compte. En cas d’échec, une réponse d’erreur HTTP est retournée immédiatement à l’appel API, précisant le champ en erreur et la nature du rejet (donnée manquante, incohérente ou invalide). ⚠️ Il n’existe pas de table de codes de retour centralisée pour ces erreurs, car elles sont liées aux validations dynamiques effectuées par champ. L’erreur retournée est toujours structurée dans le corps de réponse et permet de corriger précisément le point bloquant. 2. Statuts liés aux enrôlements Consultez les Statuts Merchant Enrollment ➝ 3. Webhooks liés aux enrôlements Consultez les Webhooks d’Onboarding ➝
SCT TRANSACTION status Status « SCT Transaction » StatusDescriptionPENDINGPending receipt of the SCT Transaction.RECEIVEDSCT Transaction received.CANCELEDSCT Transaction cancelled before receipt.REFUNDEDSCT Transaction refunded.
Informations générales La solution Easy Wallet permet aux plateformes d’encaisser des paiements et de les transférer à des tiers tout en respectant la réglementation européenne. Pour ce faire, le module comprend deux principaux services : L’inscription, permettant la création de comptes de paiement et de monnaie électronique pour les marchands ou participants d’une plateforme Le transfert, permettant le transfert des transactions vers ces comptes de paiement et de monnaie électronique Selon le modèle de partenariat CentralPay, les possibilités d’inscription et de transferts sont différentes. 1. Les types de transferts Selon le modèle de partenariat établi avec CentralPay, le transfert des paiements est réalisé différemment : Partenaires MOBSP : Vous devez utiliser le service de transfert via transaction Agents PSP : Vous pouvez utiliser le service de transfert libre ou transfert via transaction Distributeurs de ME : Vous devez utiliser le service de transfert via transaction pour la phase d’encaissement en devise. Ensuite, vous pouvez utiliser le service de transfert libre uniquement pour mouvementer la monnaie électronique entre les comptes de vos participants Pour connaitre votre modèle de partenariat, veuillez vous rapprocher de votre contact CentralPay.
Codes Articles HTTP Codes Bank return codes Currency codes SDD return codes Country codes Transfer purpose codes SDD purpose codes Error codes HTTP Codes Find below the list of HTTP return codes: 200OKNote: The request was executed correctly400BAD REQUESTNote: Wrong parameter or rule401UNAUTHORIZEDNote: Login / password are missing for HTTP authentication402PAYMENT_REQUIREDNote: Authorization denied*403FORBIDDENNote: Wrong authentication404NOT FOUNDNote: Incorrect URL500INTERNAL SERVER ERRORNote: Server error (*) Only possible for the creation of a transaction Bank return codes List of codes returned by the issuer bank to CentralPay after an autorization request 00Transaction approved or successfully processed02Contact card issuer03Invalid acceptor04Keep card05Do not honor06Transaction invalid for terminal07Honor with ID08Time-Out09No original10Unable to reverse11Partial approval12Invalid transaction13Invalid amount14Invalid cardholder number15Unknown card issuer17Invalid capture date (terminal business date)19Repeat transaction later20No From Account21No To Account22Account not verified23Account not saved24No Credit Account25Unable to locate record in file26Record duplicated27 ‘Edit’ error in file update field28File access denied29File update not possible30Format error31Identifier of acquiring organization unknown32Transaction partially completed33Card validity date exceeded34Implausible card data38Number of PIN attempts exceeded39Transaction not allowed41Lost card42Special Pickup43Stolen card44Stolen card51Insufficient funds or overdraft54 Card expired55Incorrect PIN56 Card not on file57Transaction not authorized to this cardholder58Transaction prohibited at terminal59Suspected fraud60 the card acceptor must contact the buyer61Withdrawal amount over limit62Card use restricted63MAC Key Error65 Frequency limit exceeded66Acquirer limit reached67Card withheld68Response not received or received too late75Number of PIN attempts exceeded76Invalid Account77Issuer not participating in service78Function not available79Key validation error80Approved for purchase amount only81Unable to verify PIN82Invalid CVV83Not refused84Invalid transaction lifecycle85No key to use86KME synchronization error87PIN error88MAC synchronization error89Security violation90Temporary system shutdown91Card transmitter inaccessible92Card issuer unknown93Transacation cannot be finalized94Duplicate request95Contact acquirer96System malfunction97No Funds Transfer98Duplicate Reversal99Duplicate TransactionN3Cash Service Not AvailableN4Cash Back Request Exceeds Issuer LimitN7Declined for CVV2 failureR0Stop Payment OrderR1Revocation of Authorisation OrderR3Revocation of all Authorisations OrderA0Withdrawal in contact modeA1VADS fallback000Approved001Approve with ID002Partial approval (prepaid cards only)100Reject101Card expired / invalid expiry date106PIN attempts exceeded107Please call issuer109Invalid merchant110Invalid amount111Invalid account / Invalid MICR (traveler’s check)115Requested function not supported117Invalid PIN119Cardholder not registered / not authorized122Invalid card security code (alias CID, 4DBC, 4CSC)125Invalid effective date181Format error183Invalid currency code187Refuse – New card issued189Refuse – Merchant cancelled or closed / SE200Refuse – Pick up card900Accepted – ATC synchronization909System malfunction (cryptographic error)912Issuer not available Currency codes List of currency codes: AEDUAE DirhamCurrency code: 784AFNAfghaniCurrency code: 971ALLLekCurrency code: 008AMDArmenian DramCurrency code: 051ANGNetherlands Antillean GuilderCurrency code: 532AOAKwanzaCurrency code: 973ARSArgentine PesoCurrency code: 032AUDAustralian DollarCurrency code: 036AWGAruban FlorinCurrency code: 533AZNAzerbaijanian ManatCurrency code: 944BAMConvertible MarkCurrency code: 977BBDBarbados DollarCurrency code: 052BDTTakaCurrency code: 050BGNBulgarian LevCurrency code: 975BHDBahraini DinarCurrency code: 048BIFBurundi FrancCurrency code: 108BMDBermudian DollarCurrency code: 060BNDBrunei DollarCurrency code: 096BOBBolivianoCurrency code: 068BOVMvdolCurrency code: 984BRLBrazilian RealCurrency code: 986BSDBahamian DollarCurrency code: 044BTNNgultrumCurrency code: 064BWPPulaCurrency code: 072BYRBelarussian RubleCurrency code: 974BZDBelize DollarCurrency code: 084CADCanadian DollarCurrency code: 124CDFCongolese FrancCurrency code: 976CHEWIR EuroCurrency code: 947CHFSwiss FrancCurrency code: 756CHWWIR FrancCurrency code: 948CLFUnidad de FomentoCurrency code: 990CLPChilean PesoCurrency code: 152CNYYuan RenminbiCurrency code: 156COPColombian PesoCurrency code: 170COUUnidad de Valor RealCurrency code: 970CRCCosta Rican ColonCurrency code: 188CUCPeso ConvertibleCurrency code: 931CUPCuban PesoCurrency code: 192CVECabo Verde EscudoCurrency code: 132CZKCzech KorunaCurrency code: 203DJFDjibouti FrancCurrency code: 262DKKDanish KroneCurrency code: 208DOPDominican PesoCurrency code: 214DZDAlgerian DinarCurrency code: 012EGPEgyptian PoundCurrency code: 818ERNNakfaCurrency code: 232ETBEthiopian BirrCurrency code: 230EUREuroCurrency code: 978FJDFiji DollarCurrency code: 242FKPFalkland Islands PoundCurrency code: 238GBPPound SterlingCurrency code: 826GELLariCurrency code: 981GHSGhana CediCurrency code: 936GIPGibraltar PoundCurrency code: 292GMDDalasiCurrency code: 270GNFGuinea FrancCurrency code: 324GTQQuetzalCurrency code: 320GYDGuyana DollarCurrency code: 328HKDHong Kong DollarCurrency code: 344HNLLempiraCurrency code: 340HRKKunaCurrency code: 191HTGGourdeCurrency code: 332HUFForintCurrency code: 348IDRRupiahCurrency code: 360ILSNew Israeli SheqelCurrency code: 376INRIndian RupeeCurrency code: 356IQDIraqi DinarCurrency code: 368IRRIranian RialCurrency code: 364ISKIceland KronaCurrency code: 352JMDJamaican DollarCurrency code: 388JODJordanian DinarCurrency code: 400JPYYenCurrency code: 392KESKenyan ShillingCurrency code: 404KGSSomCurrency code: 417KHRRielCurrency code: 116KMFComoro FrancCurrency code: 174KPWNorth Korean WonCurrency code: 408KRWWonCurrency code: 410KWDKuwaiti DinarCurrency code: 414KYDCayman Islands DollarCurrency code: 136KZTTengeCurrency code: 398LAKKipCurrency code: 418LBPLebanese PoundCurrency code: 422LKRSri Lanka RupeeCurrency code: 144LRDLiberian DollarCurrency code: 430LSLLotiCurrency code: 426LYDLibyan DinarCurrency code: 434MADMoroccan DirhamCurrency code: 504MDLMoldovan LeuCurrency code: 498MGAMalagasy AriaryCurrency code: 969MKDDenarCurrency code: 807MMKKyatCurrency code: 104MNTTugrikCurrency code: 496MOPPatacaCurrency code: 446MROOuguiyaCurrency code: 478MURMauritius RupeeCurrency code: 480MVRRufiyaaCurrency code: 462MWKKwachaCurrency code: 454MXNMexican PesoCurrency code: 484MXVMexican Unidad de Inversion (UDI)Currency code: 979MYRMalaysian RinggitCurrency code: 458MZNMozambique MeticalCurrency code: 943NADNamibia DollarCurrency code: 516NGNNairaCurrency code: 566NIOCordoba OroCurrency code: 558NOKNorwegian KroneCurrency code: 578NPRNepalese RupeeCurrency code: 524NZDNew Zealand DollarCurrency code: 554OMRRial OmaniCurrency code: 512PABBalboaCurrency code: 590PENNuevo SolCurrency code: 604PGKKinaCurrency code: 598PHPPhilippine PesoCurrency code: 608PKRPakistan RupeeCurrency code: 586PLNZlotyCurrency code: 985PYGGuaraniCurrency code: 600QARQatari RialCurrency code: 634RONRomanian LeuCurrency code: 946RSDSerbian DinarCurrency code: 941RUBRussian RubleCurrency code: 643RWFRwanda FrancCurrency code: 646SARSaudi RiyalCurrency code: 682SBDSolomon Islands DollarCurrency code: 090SCRSeychelles RupeeCurrency code: 690SDGSudanese PoundCurrency code: 938SEKSwedish KronaCurrency code: 752SGDSingapore DollarCurrency code: 702SHPSaint Helena PoundCurrency code: 654SLLLeoneCurrency code: 694SOSSomali ShillingCurrency code: 706SRDSurinam DollarCurrency code: 968SSPSouth Sudanese PoundCurrency code: 728STDDobraCurrency code: 678SVCEl Salvador ColonCurrency code: 222SYPSyrian PoundCurrency code: 760SZLLilangeniCurrency code: 748THBBahtCurrency code: 764TJSSomoniCurrency code: 972TMTTurkmenistan New ManatCurrency code: 934TNDTunisian DinarCurrency code: 788TOPPa’angaCurrency code: 776TRYTurkish LiraCurrency code: 949TTDTrinidad and Tobago DollarCurrency code: 780TWDNew Taiwan DollarCurrency code: 901TZSTanzanian ShillingCurrency code: 834UAHHryvniaCurrency code: 980UGXUganda ShillingCurrency code: 800USDUS DollarCurrency code: 840USNUS Dollar (Next day)Currency code: 997UYIUruguay Peso en Unidades Indexadas (URUIURUI)Currency code: 940UYUPeso UruguayoCurrency code: 858UZSUzbekistan SumCurrency code: 860VEFBolivarCurrency code: 937VNDDongCurrency code: 704VUVVatuCurrency code: 548WSTTalaCurrency code: 882XAGSilverCurrency code: 961XAUGoldCurrency code: 959XBABond Markets Unit European Composite Unit (EURCO)Currency code: 955XBBBond Markets Unit European Monetary Unit (E.M.U.-6)Currency code: 956XBCBond Markets Unit European Unit of Account 9 (E.U.A.-9)Currency code: 957XBDBond Markets Unit European Unit of Account 17 (E.U.A.-17)Currency code: 958XCDEast Caribbean DollarCurrency code: 951XDRSDR (Special Drawing Right)Currency code: 960XOFCFA Franc BCEAOCurrency code: 952XPDPalladiumCurrency code: 964XPFCFP FrancCurrency code: 953XPTPlatinumCurrency code: 962XSUSucreCurrency code: 994XTSCodes specifically reserved for testing purposesCurrency code: 963XUAADB Unit of AccountCurrency code: 965XXXThe codes assigned for transactions where no currency is involvedCurrency code: 999YERYemeni RialCurrency code: 886ZARRandCurrency code: 710ZMWZambian KwachaCurrency code: 967ZWLZimbabwe DollarCurrency code: 932 Description of the certification « ISO 4217:2008 » is available at this url: http://www.iso.org/iso/home/standards/currency_codes.htm SDD return codes Return CodeDescriptionAB05Timeout Creditor AgentAB06Timeout Instructed AgentAB07Offline AgentAB08Offline Creditor AgentAB09Error Creditor AgentAB10Error Instructed AgentAC01Incorrect Account NumberAC03Invalid Creditor Account NumberAC04Account ClosedAC06Account blocked, reason not specifiedAC13Wrong Debtor accountAG01Forbidden on this type of accountAG02Operation/Transaction code incorrect, invalid file formatAG09Payment Not ReceivedAG10Agent SuspendedAG11Creditor Agent SuspendedAGNTIncorrect AgentAM02Not Allowed AmountAM04Insufficient FundsAM05Duplicate paymentAM09Wrong AmountAM23Amount Exceeds Settlement LimitARDTAlready a returned transactionBE04Account address invalidBE05Creditor Identifier incorrectCUSTCustomer decisionCURRIncorrect CurrencyCUTACancellation Upon Unable to ApplyCNORCreditor Bank is not RegisteredDNORDebtor Bank is not RegisteredDUPLDuplicate PaymentED05Settlement FailedERINERI Option Not SupportedFF01Invalid File FormatFOCRPositive answer to the recall or RfROFRADFraudulent originated credit transferLEGLLegal DecisionMD01No valid mandateMD02Mandate data missing or invalidMD06Refund Request By End CustomerMD07Beneficiary DeceasedMS02By order of the beneficiaryMS03Reason not specifiedNOASNo Answer From CustomerNOORNo Original Transaction ReceivedRC01Invalid BICRC07Invalid Creditor BIC IdentifierRR01Missing Debtor Account Or IdentificationRR02Missing Debtors Name Or AddressRR03Missing Creditors Name Or AddressRR04Regulatory ReasonSL01Specific service offered by debtor BankTECHTechnical problems resulting in erroneous SCT’sTM01Invalid Cut Off TimeUPAYUndue Payment Country codes List of country codes: 004AfghanistanAlpha2 code: AFAlpha3 code: AFG008AlbaniaAlpha2 code: ALAlpha3 code: ALB010AntarcticaAlpha2 code: AQAlpha3 code: ATA012AlgeriaAlpha2 code: DZAlpha3 code: DZA016American SamoaAlpha2 code: ASAlpha3 code: ASM020AndorraAlpha2 code: ADAlpha3 code: AND024AngolaAlpha2 code: AOAlpha3 code: AGO028Antigua and BarbudaAlpha2 code: AGAlpha3 code: ATG031AzerbaijanAlpha2 code: AZAlpha3 code: AZE032ArgentinaAlpha2 code: ARAlpha3 code: ARG036AustraliaAlpha2 code: AUAlpha3 code: AUS040AustriaAlpha2 code: ATAlpha3 code: AUT044Bahamas (the)Alpha2 code: BSAlpha3 code: BHS048BahrainAlpha2 code: BHAlpha3 code: BHR050BangladeshAlpha2 code: BDAlpha3 code: BGD051ArmeniaAlpha2 code: AMAlpha3 code: ARM052BarbadosAlpha2 code: BBAlpha3 code: BRB056BelgiumAlpha2 code: BEAlpha3 code: BEL060BermudaAlpha2 code: BMAlpha3 code: BMU064BhutanAlpha2 code: BTAlpha3 code: BTN068Bolivia, Plurinational State ofAlpha2 code: BOAlpha3 code: BOL070Bosnia and HerzegovinaAlpha2 code: BAAlpha3 code: BIH072BotswanaAlpha2 code: BWAlpha3 code: BWA074Bouvet IslandAlpha2 code: BVAlpha3 code: BVT076BrazilAlpha2 code: BRAlpha3 code: BRA084BelizeAlpha2 code: BZAlpha3 code: BLZ086British Indian Ocean Territory (the)Alpha2 code: IOAlpha3 code: IOT090Solomon Islands (the)Alpha2 code: SBAlpha3 code: SLB092Virgin Islands (British)Alpha2 code: VGAlpha3 code: VGB096Brunei DarussalamAlpha2 code: BNAlpha3 code: BRN100BulgariaAlpha2 code: BGAlpha3 code: BGR104MyanmarAlpha2 code: MMAlpha3 code: MMR108BurundiAlpha2 code: BIAlpha3 code: BDI112BelarusAlpha2 code: BYAlpha3 code: BLR116CambodiaAlpha2 code: KHAlpha3 code: KHM120CameroonAlpha2 code: CMAlpha3 code: CMR124CanadaAlpha2 code: CAAlpha3 code: CAN132Cape VerdeAlpha2 code: CVAlpha3 code: CPV136Cayman Islands (the)Alpha2 code: KYAlpha3 code: CYM140Central African Republic (the)Alpha2 code: CFAlpha3 code: CAF144Sri LankaAlpha2 code: LKAlpha3 code: LKA148ChadAlpha2 code: TDAlpha3 code: TCD152ChileAlpha2 code: CLAlpha3 code: CHL156ChinaAlpha2 code: CNAlpha3 code: CHN158Taiwan (Province of China)Alpha2 code: TWAlpha3 code: TWN162Christmas IslandAlpha2 code: CXAlpha3 code: CXR166Cocos (Keeling) Islands (the)Alpha2 code: CCAlpha3 code: CCK170ColombiaAlpha2 code: COAlpha3 code: COL174ComorosAlpha2 code: KMAlpha3 code: COM175MayotteAlpha2 code: YTAlpha3 code: MYT178CongoAlpha2 code: CGAlpha3 code: COG180Congo (the Democratic Republic of the)Alpha2 code: CDAlpha3 code: COD184Cook Islands (the)Alpha2 code: CKAlpha3 code: COK188Costa RicaAlpha2 code: CRAlpha3 code: CRI191CroatiaAlpha2 code: HRAlpha3 code: HRV192CubaAlpha2 code: CUAlpha3 code: CUB196CyprusAlpha2 code: CYAlpha3 code: CYP203Czech Republic (the)Alpha2 code: CZAlpha3 code: CZE204BeninAlpha2 code: BJAlpha3 code: BEN208DenmarkAlpha2 code: DKAlpha3 code: DNK212DominicaAlpha2 code: DMAlpha3 code: DMA214Dominican Republic (the)Alpha2 code: DOAlpha3 code: DOM218EcuadorAlpha2 code: ECAlpha3 code: ECU222El SalvadorAlpha2 code: SVAlpha3 code: SLV226Equatorial GuineaAlpha2 code: GQAlpha3 code: GNQ231EthiopiaAlpha2 code: ETAlpha3 code: ETH232EritreaAlpha2 code: ERAlpha3 code: ERI233EstoniaAlpha2 code: EEAlpha3 code: EST234Faroe Islands (the)Alpha2 code: FOAlpha3 code: FRO238Falkland Islands (the) [Malvinas]Alpha2 code: FKAlpha3 code: FLK239South Georgia and the South Sandwich IslandsAlpha2 code: GSAlpha3 code: SGS242FijiAlpha2 code: FJAlpha3 code: FJI246FinlandAlpha2 code: FIAlpha3 code: FIN248Ã…land IslandsAlpha2 code: AXAlpha3 code: ALA250FranceAlpha2 code: FRAlpha3 code: FRA254French GuianaAlpha2 code: GFAlpha3 code: GUF258French PolynesiaAlpha2 code: PFAlpha3 code: PYF260French Southern Territories (the)Alpha2 code: TFAlpha3 code: ATF262DjiboutiAlpha2 code: DJAlpha3 code: DJI266GabonAlpha2 code: GAAlpha3 code: GAB268GeorgiaAlpha2 code: GEAlpha3 code: GEO270Gambia (The)Alpha2 code: GMAlpha3 code: GMB275Palestine, State ofAlpha2 code: PSAlpha3 code: PSE276GermanyAlpha2 code: DEAlpha3 code: DEU288GhanaAlpha2 code: GHAlpha3 code: GHA292GibraltarAlpha2 code: GIAlpha3 code: GIB296KiribatiAlpha2 code: KIAlpha3 code: KIR300GreeceAlpha2 code: GRAlpha3 code: GRC304GreenlandAlpha2 code: GLAlpha3 code: GRL308GrenadaAlpha2 code: GDAlpha3 code: GRD312GuadeloupeAlpha2 code: GPAlpha3 code: GLP316GuamAlpha2 code: GUAlpha3 code: GUM320GuatemalaAlpha2 code: GTAlpha3 code: GTM324GuineaAlpha2 code: GNAlpha3 code: GIN328GuyanaAlpha2 code: GYAlpha3 code: GUY332HaitiAlpha2 code: HTAlpha3 code: HTI334Heard Island and McDonald IslandsAlpha2 code: HMAlpha3 code: HMD336Holy See (the) [Vatican City State]Alpha2 code: VAAlpha3 code: VAT340HondurasAlpha2 code: HNAlpha3 code: HND344Hong KongAlpha2 code: HKAlpha3 code: HKG348HungaryAlpha2 code: HUAlpha3 code: HUN352IcelandAlpha2 code: ISAlpha3 code: ISL356IndiaAlpha2 code: INAlpha3 code: IND360IndonesiaAlpha2 code: IDAlpha3 code: IDN364Iran (the Islamic Republic of)Alpha2 code: IRAlpha3 code: IRN368IraqAlpha2 code: IQAlpha3 code: IRQ372IrelandAlpha2 code: IEAlpha3 code: IRL376IsraelAlpha2 code: ILAlpha3 code: ISR380ItalyAlpha2 code: ITAlpha3 code: ITA384Ivory coastAlpha2 code: CIAlpha3 code: CIV388JamaicaAlpha2 code: JMAlpha3 code: JAM392JapanAlpha2 code: JPAlpha3 code: JPN398KazakhstanAlpha2 code: KZAlpha3 code: KAZ400JordanAlpha2 code: JOAlpha3 code: JOR404KenyaAlpha2 code: KEAlpha3 code: KEN408Korea (the Democratic People’s Republic of)Alpha2 code: KPAlpha3 code: PRK410Korea (the Republic of)Alpha2 code: KRAlpha3 code: KOR414KuwaitAlpha2 code: KWAlpha3 code: KWT417KyrgyzstanAlpha2 code: KGAlpha3 code: KGZ418Lao People’s Democratic Republic (the)Alpha2 code: LAAlpha3 code: LAO422LebanonAlpha2 code: LBAlpha3 code: LBN426LesothoAlpha2 code: LSAlpha3 code: LSO428LatviaAlpha2 code: LVAlpha3 code: LVA430LiberiaAlpha2 code: LRAlpha3 code: LBR434LibyaAlpha2 code: LYAlpha3 code: LBY438LiechtensteinAlpha2 code: LIAlpha3 code: LIE440LithuaniaAlpha2 code: LTAlpha3 code: LTU442LuxembourgAlpha2 code: LUAlpha3 code: LUX446MacaoAlpha2 code: MOAlpha3 code: MAC450MadagascarAlpha2 code: MGAlpha3 code: MDG454MalawiAlpha2 code: MWAlpha3 code: MWI458MalaysiaAlpha2 code: MYAlpha3 code: MYS462MaldivesAlpha2 code: MVAlpha3 code: MDV466MaliAlpha2 code: MLAlpha3 code: MLI470MaltaAlpha2 code: MTAlpha3 code: MLT474MartiniqueAlpha2 code: MQAlpha3 code: MTQ478MauritaniaAlpha2 code: MRAlpha3 code: MRT480MauritiusAlpha2 code: MUAlpha3 code: MUS484MexicoAlpha2 code: MXAlpha3 code: MEX492MonacoAlpha2 code: MCAlpha3 code: MCO496MongoliaAlpha2 code: MNAlpha3 code: MNG498Moldova (the Republic of)Alpha2 code: MDAlpha3 code: MDA499MontenegroAlpha2 code: MEAlpha3 code: MNE500MontserratAlpha2 code: MSAlpha3 code: MSR504MoroccoAlpha2 code: MAAlpha3 code: MAR508MozambiqueAlpha2 code: MZAlpha3 code: MOZ512OmanAlpha2 code: OMAlpha3 code: OMN516NamibiaAlpha2 code: NAAlpha3 code: NAM520NauruAlpha2 code: NRAlpha3 code: NRU524NepalAlpha2 code: NPAlpha3 code: NPL528Netherlands (the)Alpha2 code: NLAlpha3 code: NLD531CuracaoAlpha2 code: CWAlpha3 code: CUW533ArubaAlpha2 code: AWAlpha3 code: ABW534Sint Maarten (Dutch part)Alpha2 code: SXAlpha3 code: SXM535Bonaire, Sint Eustatius and SabaAlpha2 code: BQAlpha3 code: BES540New CaledoniaAlpha2 code: NCAlpha3 code: NCL548VanuatuAlpha2 code: VUAlpha3 code: VUT554New ZealandAlpha2 code: NZAlpha3 code: NZL558NicaraguaAlpha2 code: NIAlpha3 code: NIC562Niger (the)Alpha2 code: NEAlpha3 code: NER566NigeriaAlpha2 code: NGAlpha3 code: NGA570NiueAlpha2 code: NUAlpha3 code: NIU574Norfolk IslandAlpha2 code: NFAlpha3 code: NFK578NorwayAlpha2 code: NOAlpha3 code: NOR580Northern Mariana Islands (the)Alpha2 code: MPAlpha3 code: MNP581United States Minor Outlying Islands (the)Alpha2 code: UMAlpha3 code: UMI583Micronesia (the Federated States of)Alpha2 code: FMAlpha3 code: FSM584Marshall Islands (the)Alpha2 code: MHAlpha3 code: MHL585PalauAlpha2 code: PWAlpha3 code: PLW586PakistanAlpha2 code: PKAlpha3 code: PAK591PanamaAlpha2 code: PAAlpha3 code: PAN598Papua New GuineaAlpha2 code: PGAlpha3 code: PNG600ParaguayAlpha2 code: PYAlpha3 code: PRY604PeruAlpha2 code: PEAlpha3 code: PER608Philippines (the)Alpha2 code: PHAlpha3 code: PHL612PitcairnAlpha2 code: PNAlpha3 code: PCN616PolandAlpha2 code: PLAlpha3 code: POL620PortugalAlpha2 code: PTAlpha3 code: PRT624Guinea-BissauAlpha2 code: GWAlpha3 code: GNB626Timor-LesteAlpha2 code: TLAlpha3 code: TLS630Puerto RicoAlpha2 code: PRAlpha3 code: PRI634QatarAlpha2 code: QAAlpha3 code: QAT638RéunionAlpha2 code: REAlpha3 code: REU642RomaniaAlpha2 code: ROAlpha3 code: ROU643Russian Federation (the)Alpha2 code: RUAlpha3 code: RUS646RwandaAlpha2 code: RWAlpha3 code: RWA652Saint BarthélemyAlpha2 code: BLAlpha3 code: BLM654Saint Helena, Ascension and Tristan da CunhaAlpha2 code: SHAlpha3 code: SHN659Saint Kitts and NevisAlpha2 code: KNAlpha3 code: KNA660AnguillaAlpha2 code: AIAlpha3 code: AIA662Saint LuciaAlpha2 code: LCAlpha3 code: LCA663Saint Martin (French part)Alpha2 code: MFAlpha3 code: MAF666Saint Pierre and MiquelonAlpha2 code: PMAlpha3 code: SPM670Saint Vincent and the GrenadinesAlpha2 code: VCAlpha3 code: VCT674San MarinoAlpha2 code: SMAlpha3 code: SMR678Sao Tome and PrincipeAlpha2 code: STAlpha3 code: STP682Saudi ArabiaAlpha2 code: SAAlpha3 code: SAU686SenegalAlpha2 code: SNAlpha3 code: SEN688SerbiaAlpha2 code: RSAlpha3 code: SRB690SeychellesAlpha2 code: SCAlpha3 code: SYC694Sierra LeoneAlpha2 code: SLAlpha3 code: SLE702SingaporeAlpha2 code: SGAlpha3 code: SGP703SlovakiaAlpha2 code: SKAlpha3 code: SVK704Viet NamAlpha2 code: VNAlpha3 code: VNM705SloveniaAlpha2 code: SIAlpha3 code: SVN706SomaliaAlpha2 code: SOAlpha3 code: SOM710South AfricaAlpha2 code: ZAAlpha3 code: ZAF716ZimbabweAlpha2 code: ZWAlpha3 code: ZWE724SpainAlpha2 code: ESAlpha3 code: ESP728South SudanAlpha2 code: SSAlpha3 code: SSD729Sudan (the)Alpha2 code: SDAlpha3 code: SDN732Western SaharaAlpha2 code: EHAlpha3 code: ESH740SurinameAlpha2 code: SRAlpha3 code: SUR744Svalbard and Jan MayenAlpha2 code: SJAlpha3 code: SJM748SwazilandAlpha2 code: SZAlpha3 code: SWZ752SwedenAlpha2 code: SEAlpha3 code: SWE756SwitzerlandAlpha2 code: CHAlpha3 code: CHE760Syrian Arab Republic (the)Alpha2 code: SYAlpha3 code: SYR762TajikistanAlpha2 code: TJAlpha3 code: TJK764ThailandAlpha2 code: THAlpha3 code: THA768TogoAlpha2 code: TGAlpha3 code: TGO772TokelauAlpha2 code: TKAlpha3 code: TKL776TongaAlpha2 code: TOAlpha3 code: TON780Trinidad and TobagoAlpha2 code: TTAlpha3 code: TTO784United Arab Emirates (the)Alpha2 code: AEAlpha3 code: ARE788TunisiaAlpha2 code: TNAlpha3 code: TUN792TurkeyAlpha2 code: TRAlpha3 code: TUR795TurkmenistanAlpha2 code: TMAlpha3 code: TKM796Turks and Caicos Islands (the)Alpha2 code: TCAlpha3 code: TCA798TuvaluAlpha2 code: TVAlpha3 code: TUV800UgandaAlpha2 code: UGAlpha3 code: UGA804UkraineAlpha2 code: UAAlpha3 code: UKR807Macedonia (the former Yugoslav Republic of)Alpha2 code: MKAlpha3 code: MKD818EgyptAlpha2 code: EGAlpha3 code: EGY826United Kingdom (the)Alpha2 code: GBAlpha3 code: GBR831GuernseyAlpha2 code: GGAlpha3 code: GGY832JerseyAlpha2 code: JEAlpha3 code: JEY833Isle of ManAlpha2 code: IMAlpha3 code: IMN834Tanzania, United Republic ofAlpha2 code: TZAlpha3 code: TZA840United States (the)Alpha2 code: USAlpha3 code: USA850Virgin Islands (U.S.)Alpha2 code: VIAlpha3 code: VIR854Burkina FasoAlpha2 code: BFAlpha3 code: BFA858UruguayAlpha2 code: UYAlpha3 code: URY860UzbekistanAlpha2 code: UZAlpha3 code: UZB862Venezuela, Bolivarian Republic ofAlpha2 code: VEAlpha3 code: VEN876Wallis and FutunaAlpha2 code: WFAlpha3 code: WLF882SamoaAlpha2 code: WSAlpha3 code: WSM887YemenAlpha2 code: YEAlpha3 code: YEM894Zambia Alpha2 code: ZMAlpha3 code: ZMB Transfer purpose codes ACCT : AccountManagementADCS : AdvisoryDonationCopyrightServicesADMG : AdministrativeManagementADVA : AdvancePaymentAEMP : ActiveEmploymentPolicyAGRT : AgriculturalTransferAIRB : AirALLW : AllowanceALMY : AlimonyPaymentAMEX : AmexANNI : AnnuityANTS : AnesthesiaServicesAREN : AccountsReceivablesEntryAUCO : AuthenticatedCollectionsB112 : TrailerFeePaymentBBSC : BabyBonusSchemeBCDM : BearerChequeDomesticBCFG : BearerChequeForeignBECH : ChildBenefitBENE : UnemploymentDisabilityBenefitBEXP : BusinessExpensesBFWD : BondForwardBKDF : BankLoanDelayedDrawFundingBKFE : BankLoanFeesBKFM : BankLoanFundingMemoBKIP : BankLoanAccruedInterestPaymentBKPP : BankLoanPrincipalPaydownBLDM : BuildingMaintenanceBNET : BondForwardNettingBOCE : BackOfficeConversionEntryBOND : BondsBONU : BonusPayment.BR12 : TrailerFeeRebateBUSB : BusCABD : CorporateActions-BondsCAEQ : CorporateActions-EquitiesCAFI : CustodianManagementFeeInhouseCASH : CashManagementTransferCBCR : CreditCardCBFF : CapitalBuildingCBFR : CapitalBuildingRetirementCBLK : CardBulkClearingCBTV : CableTVBillCCHD : CashCompensationHelplessnessDisabilityCCIR : CrossCurrencyIRSCCPC : CCPClearedInitialMarginCCPM : CCPClearedVariationMarginCCRD : CreditCardPaymentCCSM : CCPClearedInitialMarginSegregatedCashCDBL : CreditCardBillCDCB : CardPaymentWithCashBackCDCD : CashDisbursementCashSettlementCDCS : CashDisbursementWithSurchargingCDDP : CardDeferredPaymentCDEP : CreditDefaultEventPaymentCDOC : OriginalCreditCDQC : QuasiCashCFDI : CapitalFallingDueInhouseCFEE : CancellationFeeCGDD : CardGeneratedDirectDebitCHAR : CharityPaymentCLPR : CarLoanPrincipalRepaymentCMDT : CommodityTransferCOLL : CollectionPaymentCOMC : CommercialPaymentCOMM : CommissionCOMP : CompensationPaymentCOMT : ConsumerThirdPartyConsolidatedPaymentCORT : TradeSettlementPaymentCOST : CostsCPEN : CashPenaltiesCPKC : CarparkChargesCPYR : CopyrightCRDS : CreditDefaultSwapCRPR : CrossProductCRSP : CreditSupportCRTL : CreditLineCSDB : CashDisbursementCashManagementCSLP : CompanySocialLoanPaymentToBankCVCF : ConvalescentCareFacilityDBCR : DebitCardDBTC : DebitCollectionPaymentDCRD : DebitCardPaymentDEBT : ChargesBorneByDebtorDEPD : DependentSupportPaymentDEPT : DepositDERI : DerivativesDICL : DinersDIVD : DividendDMEQ : DurableMedicaleEquipmentDNTS : DentalServicesDSMT : PrintedOrderDisbursementDVPM : DeliverAgainstPaymentECPG : GuaranteedEPaymentECPR : EPaymentReturnECPU : NonGuaranteedEPaymentEDUC : EducationEFTC : LowValueCreditEFTD : LowValueDebitELEC : ElectricityBillENRG : EnergiesEPAY : EpaymentEQPT : EquityOptionEQTS : EquitiesEQUS : EquitySwapESTX : EstateTaxETUP : EPurseTopUpEXPT : ExoticOptionEXTD : ExchangeTradedDerivativesFACT : FactorUpdateRelatedPaymentFAND : FinancialAidInCaseOfNaturalDisasterFCOL : FeeCollectionFCPM : LatePaymentOfFeesAndChargesFEES : PaymentOfFeesFERB : FerryFIXI : FixedIncomeFLCR : FleetCardFNET : FuturesNettingPaymentFORW : ForwardForeignExchangeFREX : ForeignExchangeFUTR : FuturesFWBC : ForwardBrokerOwnedCashCollateralFWCC : ForwardClientOwnedCashCollateralFWLV : ForeignWorkerLevyFWSB : ForwardBrokerOwnedCashCollateralSegregatedFWSC : ForwardClientOwnedSegregatedCashCollateralFXNT : ForeignExchangeRelatedNettingGAFA : GovernmentFamilyAllowanceGAHO : GovernmentHousingAllowanceGAMB : GamblingOrWageringPaymentGASB : GasBillGDDS : PurchaseSaleOfGoodsGDSV : PurchaseSaleOfGoodsAndServicesGFRP : GuaranteeFundRightsPaymentGIFT : GiftGOVI : GovernmentInsuranceGOVT : GovernmentPaymentGSCB : PurchaseSaleOfGoodsAndServicesWithCashBackGSTX : GoodsServicesTaxGVEA : AustrianGovernmentEmployeesCategoryAGVEB : AustrianGovernmentEmployeesCategoryBGVEC : AustrianGovernmentEmployeesCategoryCGVED : AustrianGovernmentEmployeesCategoryDGWLT : GovermentWarLegislationTransferHEDG : HedgingHLRP : PropertyLoanRepaymentHLST : PropertyLoanSettlementHLTC : HomeHealthCareHLTI : HealthInsuranceHREC : HousingRelatedContributionHSPC : HospitalCareHSTX : HousingTaxICCP : IrrevocableCreditCardPaymentICRF : IntermediateCareFacilityIDCP : IrrevocableDebitCardPaymentIHRP : InstalmentHirePurchaseAgreementINPC : InsurancePremiumCarINPR : InsurancePremiumRefundINSC : PaymentOfInsuranceClaimINSM : InstallmentINSU : InsurancePremiumINTC : IntraCompanyPaymentINTE : InterestINTP : IntraPartyPaymentINTX : IncomeTaxINVS : InvestmentAndSecuritiesIPAY : InstantPaymentsIPCA : InstantPaymentsCancellationIPDO : InstantPaymentsForDonationsIPEA : InstantPaymentsInECommerceWithoutAddressDataIPEC : InstantPaymentsInECommerceWithAddressDataIPEW : InstantPaymentsInECommerceIPPS : InstantPaymentsAtPOSIPRT : InstantPaymentsReturnIPU2 : InstantPaymentsUnattendedVendingMachineWith2FAIPUW : InstantPaymentsUnattendedVendingMachineWithout2FAIVPT : InvoicePaymentLBIN : LendingBuyInNettingLBRI : LaborInsuranceLCOL : LendingCashCollateralFreeMovementLFEE : LendingFeesLICF : LicenseFeeLIFI : LifeInsuranceLIMA : LiquidityManagementLMEQ : LendingEquityMarkedToMarketCashCollateralLMFI : LendingFixedIncomeMarkedToMarketCashCollateralLMRK : LendingUnspecifiedTypeOfMarkedToMarketCashCollateralLOAN : LoanLOAR : LoanRepaymentLOTT : LotteryPaymentLREB : LendingRebatePaymentsLREV : LendingRevenuePaymentsLSFL : LendingClaimPaymentLTCF : LongTermCareFacilityMAFC : MedicalAidFundContributionMARF : MedicalAidRefundMARG : DailyMarginOnListedDerivativesMBSB : MBSBrokerOwnedCashCollateralMBSC : MBSClientOwnedCashCollateralMCDM : MultiCurrenyChequeDomesticMCFG : MultiCurrenyChequeForeignMDCS : MedicalServicesMGCC : FuturesInitialMarginMGSC : FuturesInitialMarginClientOwnedSegregatedCashCollateralMOMA : MoneyMarketMP2B : MobileP2BPaymentMP2P : MobileP2PPaymentMSVC : MultipleServiceTypesMTUP : MobileTopUpNETT : NettingNITX : NetIncomeTaxNOWS : NotOtherwiseSpecifiedNWCH : NetworkChargeNWCM : NetworkCommunicationOCCC : ClientOwnedOCCPledgedCollateralOCDM : OrderChequeDomesticOCFG : OrderChequeForeignOFEE : OpeningFeeOPBC : OTCOptionBrokerOwnedCashCollateralOPCC : OTCOptionClientOwnedCashCollateralOPSB : OTCOptionBrokerOwnedSegregatedCashCollateralOPSC : OTCOptionClientOwnedCashSegregatedCashCollateralOPTN : FXOptionOTCD : OTCDerivativesOTHR : OtherOTLC : OtherTelecomRelatedBillPADD : PreauthorizedDebitPAYR : PayrollPCOM : PropertyCompletionPaymentPDEP : PropertyDepositPEFC : PensionFundContributionPENO : PaymentBasedOnEnforcementOrderPENS : PensionPaymentPHON : TelephoneBillPLDS : PropertyLoanDisbursementPLRF : PropertyLoanRefinancingPOPE : PointOfPurchaseEntryPPTI : PropertyInsurancePRCP : PricePaymentPRME : PreciousMetalPTSP : PaymentTermsPTXP : PropertyTaxRAPI : RapidPaymentInstructionRCKE : RepresentedCheckEntryRCPT : ReceiptPaymentRDTX : RoadTaxREBT : RebateREFU : RefundRELG : RentalLeaseGeneralRENT : RentREOD : AccountOverdraftRepaymentREPO : RepurchaseAgreementRETL : RetailPaymentRHBS : RehabilitationSupportRIMB : ReimbursementOfAPreviousErroneousTransactionRINP : RecurringInstallmentPaymentRLWY : RailwayROYA : RoyaltiesRPBC : BilateralRepoBrokerOwnedCollateralRPCC : RepoClientOwnedCollateralRPNT : BilateralRepoInternetNettingRPSB : BilateralRepoBrokerOwnedSegregatedCashCollateralRPSC : BilateralRepoClientOwnedSegregatedCashCollateralRRBN : RoundRobinRRCT : ReimbursementReceivedCreditTransferRRTP : RelatedRequestToPayRVPM : ReceiveAgainstPaymentRVPO : ReverseRepurchaseAgreementSALA : SalaryPaymentSASW : ATMSAVG : SavingsSBSC : SecuritiesBuySellSellBuyBackSCIE : SingleCurrencyIRSExoticSCIR : SingleCurrencyIRSSCRP : SecuritiesCrossProductsSCVE : PurchaseSaleOfServicesSECU : SecuritiesSEPI : SecuritiesPurchaseInhouseSERV : ServiceChargesSHBC : BrokerOwnedCollateralShortSaleSHCC : ClientOwnedCollateralShortSaleSHSL : ShortSellSLEB : SecuritiesLendingAndBorrowingSLOA : SecuredLoanSLPI : PaymentSlipInstructionSPLT : SplitPaymentsSPSP : SalaryPensionSumPaymentSSBE : SocialSecurityBenefitSTDY : StudySUBS : SubscriptionSUPP : SupplierPaymentSWBC : SwapBrokerOwnedCashCollateralSWCC : SwapClientOwnedCashCollateralSWFP : SwapContractFinalPaymentSWPP : SwapContractPartialPaymentSWPT : SwaptionSWRS : SwapContractResetPaymentSWSB : SwapsBrokerOwnedSegregatedCashCollateralSWSC : SwapsClientOwnedSegregatedCashCollateralSWUF : SwapContractUpfrontPaymentTAXR : TaxRefundTAXS : TaxPaymentTBAN : TBAPairOffNettingTBAS : ToBeAnnouncedTBBC : TBABrokerOwnedCashCollateralTBCC : TBAClientOwnedCashCollateralTBIL : TelecommunicationsBillTCSC : TownCouncilServiceChargesTELI : TelephoneInitiatedTransactionTLRF : NonUSMutualFundTrailerFeePaymentTLRR : NonUSMutualFundTrailerFeeRebatePaymentTMPG : TMPGClaimPaymentTPRI : TriPartyRepoInterestTPRP : TriPartyRepoNettingTRAD : CommercialTRCP : TreasuryCrossProductTREA : TreasuryPaymentTRFD : TrustFundTRNC : TruncatedPaymentSlipTRPT : RoadPricingTRVC : TravellerChequeUBIL : UtilitiesUNIT : UnitTrustPurchaseVATX : ValueAddedTaxPaymentVIEW : VisionCareWEBI : InternetInitiatedTransactionWHLD : WithHoldingWTER : WaterBill SDD purpose codes The categoryPurposeCode(1) and purposeCode(2) used in the SDDTransaction. SALA(1) (2)Salary PaymentTREA(1) (2)Treasury PaymentADVA(2)Advance PaymentAGRT(2)Agricultural TransferALMY(2)Alimony PaymentBECH(2)Child BenefitBENE(2)Unemployment Disability BenefitBONU(2)Bonus PaymentCASH(1) (2)Cash Management TransferCBFF(2)Capital BuildingCHAR(2)Charity PaymentCOLL(2)Collection PaymentCMDT(2)Commodity TransferCOMC(2)Commercial PaymentCOMM(2)CommissionCOST(2)CostsCPYR(2)CopyrightDIVI(1) (2)DividendFREX(2)Foreign ExchangeGDDS(2)Purchase Sale Of GoodsGOVT(1) (2)Gouvernment PaymentIHRP(2)Instalment Hire Purchase AgreementINTC(1) (2)Intra Company PaymentINSU(2)Insurance PremiumINTE(1) (2)InterestLIFC(2)Licence FeeLOAN(1) (2)LoanLOAR(2)Loan RepaymentNETT(2)NettingPAYR(2)Payment RollPENS(1) (2)PensionREFU (2)RefundRENT(2)RentROYA(2)RoyaltiesSCVE(2)Purchase Sale Of ServicesSECU(1) (2)SecuritiesSSBE(1) (2)Social Security BenefitSUBS(2)SubscriptionTAXS(1) (2)Tax PaymentCOMT(2)Consumer Third Party Consolidated PaymentDBTC(2)Debit Collection PaymentSUPP(1) (2)Supplier PaymentHEDG(1) (2)HedgingMSVC(2)Multiple Service TypesNOWS(2)Not Otherwise SpecifiedCARD(2)Card PaymentCDBL(2)Credit Card BillFERB(2)FerryAIRB(2)AirBUSB(2)BusRLWY(2)RailwayCVCF(2)Convalescent Care FacilityDNTS(2)Dental ServicesANTS(2)Anesthesia ServicesHLTC(2)Home Health CareHSPC(2)Hospital CareICRF(2)Intermediate Care FacilityLTCF(2)Long Term Care FacilityMDCS(2)Medical ServicesVIEW(2)Vision CareDMEQ(2)Durable Medicale EquipmentCBTV(2)Cable TV BillELEC(2)Electricity BillGASB(2)Gas BillPHON(2)Telephone BillOTLC(2)Other Telecom Related BillWTER(2)Water BillSTDY(2)StudyPRCP(2)Price PaymentINSM(2)InstallmentRINP(2)Recurring Installment PaymentOFEE(2)Opening FeeCFEE(2)Cancellation FeeGOVI(2)Government InsuranceINPC(2)Insurance Premium CarLBRI(2)Labor InsuranceLIFI(2)Life InsurancePPTI(2)Property InsuranceHLTI(2)Health InsuranceCLPR(2)Car Loan Principal RepaymentESTX(2)Estate TaxHLRP(2)Housing Loan RepaymentCSLP(2)Company Social Loan Payment To BankHSTX(2)Housing TaxINTX(2)Income TaxNITX(2)Net Income TaxNWCH(2)Network ChargeNWCM(2)Network CommunicationBEXP(2)Business ExpensesTRFD(2)Trust FundRCPT(2)ReceiptPTSP(2)Payment TermsOTHR(2)OtherWHLD(1)(2)With HoldingCORT(1)Trade Settlement PaymentVATX(1)Value Added Tax PaymentTRAD(1)Trade Error codes ErrorDetails ATTRIBUTESerrorCodeCode indicating the type of problem identified.errorComponentCode indicating the 3-D Secure component that identified the error.errorDescriptionText describing the problem identified.errorDetailAdditional detail regarding the problem identified. ErrorCode possible values101MESSAGE_RECEIVED_INVALID102MESSAGE_VERSION_NUMBER_NOT_SUPPORTED103SENT_MESSAGES_LIMIT_EXCEEDED201REQUIRED_ELEMENT_MISSING202CRITICAL_MESSAGE_EXTENSION_NOT_RECOGNIZED203FORMAT_ON_ONE_OR_MORE_ELEMENTS_INVALID_ACCORDING_SPECS204DUPLICATE_DATA_ELEMENT301TRANSACTION_ID_NOT_RECOGNIZED302DATA_DECRYPTION_FAILURE303ACCESS_DENIED_INVALID_ENDPOINT304ISO_CODE_NOT_VALID305TRANSACTION_DATA_NOT_VALID306MCC_NOT_VALID_FOR_PAYMENT_SYSTEM307SERIAL_NUMBER_NOT_VALID402TRANSACTION_TIMED_OUT403TRANSIENT_SYSTEM_FAILURE404PERMANENT_SYSTEM_FAILURE405SYSTEM_CONNECTION_FAILURE911DATA_FIELDS_RELEVANCE_CHECK_FAILURE912DUPLICATED_TRANSACTION_ID ErrorComponent possible values« C »THREE_DS_SDK« S »THREE_DS_SERVER« D »DIRECTORY_SERVER« A »ACCESS_CONTROL_SERVER
Transfert indépendant 🧾 Créer un transfert (Create a Transfer) La fonction Create a Transfer permet aux partenaires régulés (Agents ou DME, selon le type de compte) de transférer des fonds entre deux comptes de leurs sous-marchands (Participants). Ce transfert peut être initié : Par un Agent lorsque les wallets sont des comptes de paiement. Par un DME lorsque les wallets sont des comptes de monnaie électronique. Cas d’usage Ce mécanisme permet, par exemple : à un Agent d’orchestrer des reversements de fonds entre sous-marchands, ou vers des comptes destinataires définis ; à un DME d’opérer des transferts de monnaie électronique entre utilisateurs d’une place de marché. CentralPay reste en charge de l’exécution effective des opérations, dans le cadre de la relation contractuelle avec les sous-marchands. 📥 Paramètres requis ChampTypeObligatoireDescriptiondestinationWalletIdUUID✅Identifiant du wallet destinataire (appartenant à un sous-marchand).amountInteger (en cents)✅Montant du transfert. Doit être strictement supérieur à 0.sourceIdUUID✅ si sourceType est renseignéIdentifiant de la source de fonds (ex. : transaction, virement, crédit, SDD).sourceTypeEnum✅ si sourceId est renseignéSource du transfert : TRANSACTION, SCT_TRANSACTION, CREDIT, SDD. 🔧 Paramètres optionnels ChampTypeDescriptionemissionWalletIdUUIDWallet émetteur si différent du wallet principal du partenaire.currencyCode ISODevise du transfert (si différente de celle du wallet).feeIntegerMontant de la commission prélevée par le partenaire, déduite du montant. Par défaut : 0.escrowDateDate ISODate à partir de laquelle le transfert devient effectif. Peut être utilisée pour définir une période de blocage temporaire.merchantTransferIdStringRéférence métier du partenaire (max 100 caractères).transferGroupStringGroupe de rattachement pour regrouper plusieurs transferts.descriptionStringDescription libre (max 256 caractères).additionalDataKey/ValueDonnées complémentaires sous forme de paires clé/valeur (max 256 caractères par valeur).metaDataJSONMétadonnées complémentaires structurées.purposeCode / purposeMessageEnum / StringFinalité du transfert, selon une nomenclature standard. Voir la liste des codes. 🔒 Règles de validation Le destinationWalletId doit correspondre à un wallet valide d’un sous-marchand du partenaire. Le sourceId ne peut être utilisé que si l’objet lié est dans un statut accepté (CAPTURED, CLEARED, etc.). Le montant autorisé dépend du solde disponible ou des fonds liés à la source (transaction, virement, etc.). 🔄 Fonctions complémentaires liées aux transferts Les partenaires régulés (Agent ou DME) disposent de plusieurs fonctions de gestion post-création d’un transfert, leur permettant d’ajuster, consulter ou annuler une opération, sous conditions. 🛠 Modifier un transfert (Update a Transfer) Cette fonction permet de modifier certains paramètres d’un transfert existant, à condition qu’il ne soit pas encore exécuté (statut PENDING). Paramètres disponibles : ChampTypeObligatoireDescriptiontransferIdUUID✅Identifiant du transfert à modifier.merchantTransferIdString❌Référence partenaire.escrowDateDate ISO❌Nouvelle date d’exécution différée.transferGroupString❌Regroupement de transferts.descriptionString❌Description libre (max 256 caractères).additionalDataKey/Value❌Données complémentaires.metaDataJSON❌Métadonnées structurées. 💡 La modification de la date d’escrow est notamment utile dans les flux conditionnés (e.g. : marketplace, délais de rétractation…). ❌ Annuler un transfert (Cancel a Transfer) Un transfert peut être annulé tant qu’il n’a pas encore été exécuté (statut PENDING). Cette annulation est irréversible : l’opération apparaîtra comme CANCEL dans les historiques du wallet. Paramètres : ChampTypeObligatoireDescriptiontransferIdUUID✅Identifiant du transfert à annuler. ⚠️ Une fois que les fonds sont disponibles (TRANSFERRED), cette fonction n’est plus accessible. Il faudra alors utiliser un TransferReversal. 🔍 Consulter un transfert (Retrieve a Transfer) Permet d’obtenir l’ensemble des détails d’un transfert via son identifiant CentralPay. ChampTypeObligatoireDescriptiontransferIdUUID✅Identifiant du transfert. 📂 Rechercher plusieurs transferts (List Transfers) Permet de rechercher une liste de transferts selon plusieurs critères. Tous les paramètres sont optionnels. ParamètreTypeDescriptionmerchantTransferIdString (100)Référence partenaire.destinationWalletIdUUIDWallet destinataire.transferGroupStringGroupe de transferts.statusEnumPENDING, TRANSFERRED, CANCEL.after / beforeDate ISOFiltrer par date de création.limitIntegerNombre de résultats par page.pageIntegerIndex de la page de résultats. 🔁 Retourner un transfert exécuté (TransferReversal) Une fois un transfert exécuté (status = TRANSFERRED), il ne peut plus être annulé via la fonction Cancel. Il est alors nécessaire de passer par une opération dédiée appelée TransferReversal. Elle ne supprime pas le transfert d’origine : celui-ci reste visible, historisé et traçable. Cette fonction est accessible uniquement aux partenaires régulés (Agent pour les comptes de paiement, DME pour les comptes de monnaie électronique), et doit respecter les règles de disponibilité des fonds. ✅ Conditions d’utilisation Le transfert initial doit : Être dans le statut TRANSFERRED Avoir des fonds disponibles dans le wallet destinataire Ne pas avoir déjà été remboursé dans sa totalité via des opérations de reversal Le montant retourné doit être : Inférieur ou égal au solde disponible du wallet destinataire Inférieur ou égal à la somme initialement transférée Diminué des éventuels reversals déjà effectués sur le transfert concerné ▶️ Créer un TransferReversal Permet de retourner un montant vers le wallet émetteur d’origine. ChampTypeObligatoireDescriptiontransferIdUUID✅Identifiant du transfert d’origine.amountInteger✅Montant à rembourser (en centimes).merchantTransferReversalIdString❌Référence partenaire pour le suivi.refundFeeBoolean❌Indique si les frais du transfert initial sont remboursés (par défaut : true).feeInteger❌Montant des frais associés au reversal.descriptionString❌Texte libre explicatif (max. 256 caractères).escrowDateDate ISO❌Date d’exécution différée si applicable.additionalDataKey/Value❌Paires clé/valeur pour les besoins métier. 💡 Si le champ refundFee est défini à false, le montant des frais initiaux reste acquis et n’est pas restitué au Wallet source. ⚠️ Règles importantes L’opération est visible dans les mouvements du wallet (débit du wallet destinataire, crédit du wallet d’origine). Plusieurs reversals peuvent être effectués sur un même transfert, dans la limite du montant total initial. Si les fonds ne sont pas disponibles, l’appel est rejeté avec une erreur explicite (insuffisance de solde ou montant trop élevé). 🧩 Fonctions complémentaires (TransferReversal) Ces fonctions permettent de gérer et consulter les opérations de retour de transfert exécuté (TransferReversal), une fois créées. ✏️ Modifier un TransferReversal (Update) Permet de modifier certaines informations sur un TransferReversal déjà créé. ChampTypeObligatoireDescriptiontransferReversalIdUUID✅Identifiant du TransferReversal à modifiermerchantTransferReversalIdString❌Référence partenaire pour le suividescriptionString❌Texte explicatif libre (256 caractères max)escrowDateDate (ISO)❌Nouvelle date différée d’exécution, si applicableadditionalDataKey/Value❌Paires clé/valeur pour usage métier spécifique 🔒 Cette fonction est accessible uniquement au niveau PARTNER ou supérieur. 🔍 Consulter un TransferReversal (Retrieve) Permet de consulter les détails d’un TransferReversal à partir de son identifiant. ChampTypeObligatoireDescriptiontransferReversalIdUUID✅Identifiant du TransferReversal à consulter 🛈 L’objet retourné contient l’intégralité des informations métier, y compris : montant, date, statut, wallet concerné, et historique de l’opération. 📄 Rechercher des TransferReversals (List) Permet d’interroger l’historique des TransferReversal selon plusieurs critères. ParamètreTypeObligatoireDescriptionmerchantTransferReversalIdString❌Référence partenaireafterDate ISO❌Retourne les éléments créés après cette datebeforeDate ISO❌Retourne les éléments créés avant cette datelimitInteger❌Nombre d’éléments à retourner (par défaut : 10)pageInteger❌Index de la page à retourner (par défaut : 1) Cette fonction permet un suivi complet des opérations de reversal liées à une activité donnée, y compris les cas de multiples retours partiels.
Test values Articles Test IBAN values Test cards Values Test IBAN values Find below the list of HTTP return codes: DE91100000000123456789AXABFRPPAZ96AZEJ00000000001234567890AXABFRPPCY21002001950000357001234567AXABFRPPES7921000813610123456789AXABFRPPFR7630006000011234567890189AXABFRPPFO9264600123456789AXABFRPP Test cards Values You will find below a list of cards that you can use to test and check your integration. Visa Card numbers 4000 0000 0000 0051Card lost (41) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »4000 0000 0000 0069Fraud suspicion (59) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »4000 0000 0000 0077Insufficient funds (51) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »4000 0000 0000 0085To be refused (5) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »4556 5579 5572 6624Transaction successful (3DS) & Authentication = Y4916 9940 6425 2017Transaction successful (3DS) & Authentication = C4556 1041 6038 2032Transaction successful (NON 3DS) & Authentication = N4024 0071 7987 2394Transaction (NON 3DS) & Authentication = N4234 6319 8242 8908Transaction (3DS) & Authentication = I4234 6319 8242 8916Transaction successful (3DS) & Authentication = D : application flow4234 6319 8242 8924Transaction successful (3DS) & Authentication = D : browser flow4032 0389 8296 2700EEA=true ; region=EUROPE; productType=CONSUMER; cardType=DEBIT ;4032 0343 8883 4767EEA=true ; region=EUROPE; productType=CONSUMER; cardType=CREDIT ;4020 0280 0191 2012EEA=true ; region=EUROPE; productType=CONSUMER; cardType=UNKNOWN ;4032 0337 9569 2248EEA=true ; region=EUROPE; productType=CORPORATE; cardType=DEBIT ;4032 0368 1354 0364EEA=true ; region=EUROPE; productType=CORPORATE; cardType=CREDIT ;4032 0387 5662 0096EEA=true ; region=EUROPE; productType=CORPORATE; cardType=UNKNOWN ;4032 0358 5604 7592EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=DEBIT ;4032 0302 9068 3219EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=CREDIT ;4032 0377 5134 3001EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=UNKNOWN ;4032 0307 5488 6225EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=DEBIT ;4032 0310 2547 6341EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=CREDIT ;4032 0341 4311 3978EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=UNKNOWN ;4032 0309 5816 7398EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=DEBIT ;4032 0375 4480 7536EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=CREDIT ;4032 0366 9148 7225EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=UNKNOWN ;4032 0325 8917 3860EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=DEBIT ;4032 0388 0897 9557EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=CREDIT ;4032 0374 2147 1240EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=UNKNOWN ; Mastercard Card numbers 5333 2591 5564 3223Transaction successful (3DS) & Authentication = Y5306 8899 4283 3340Transaction successful (3DS) & Authentication = C5328 7203 8458 2224Transaction successful (NON 3DS) & Authentication = N5187 4346 4359 3002Transaction successful (NON 3DS) & Authentication = N5517 4500 0000 0168EEA=false ; region=US ; productType=CONSUMER ; cardType=CREDIT5223 8599 0000 0174EEA=false ; region=US ; productType=CORPORATE ; cardType=DEBIT5325 0900 0000 0115EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBIT5325 0900 0000 0008EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBIT5486 7467 7300 0005EEA=false ; region=EUROPE ; productType=CONSUMER ; cardType=DEBIT; Country=RUS5588 1000 0000 0007EEA=false ; region=CEMEA ; productType=CONSUMER ; cardType=DEBIT5122 9400 0000 0009EEA=false ; region=LATIN_AMERICA ; productType=CONSUMER ; cardType=DEBIT Amex Card numbers 3415 0209 8634 895Transaction successful (3DS) & Authentication = Y3486 3826 7931 507Transaction successful (3DS) & Authentication = C3456 9539 9207 589Transaction successful (NON 3DS) & Authentication = N3415 0209 8634 895EEA=false ; region=EUROPE ; productType=CONSUMER3486 3826 7931 507EEA=false ; region=EUROPE ; productType=CORPORATE3718 4294 2351 004EEA=false ; region=EUROPE ; productType=UNKNOWN3712 5311 3391 201EEA=false ; region=ASIA_PACIFIC ; productType=CONSUMER3423 1631 7472 410EEA=false ; region=ASIA_PACIFIC ; productType=CORPORATE3710 9829 7279 338EEA=false ; region=ASIA_PACIFIC ; productType=UNKNOWN CB Card numbers 4020 0235 6597 5380Transaction successful (NON 3DS), scheme : CB4020 0254 4041 8403Transaction successful (NON 3DS), scheme : CB_VISA5232 1035 2372 2651Transaction successful (NON 3DS), scheme : CB_MASTERCARD
Transfert via Transaction ou PaymentRequest Contrairement aux transferts indépendants, réservés aux Agents (pour les comptes de paiement) et aux Distributeurs de Monnaie Électronique (DME) (pour les comptes de monnaie électronique), les transferts via transaction sont accessibles à l’ensemble des modèles de partenariat, y compris aux Partenaires Techniques non régulés. Dans ce cadre, le partenaire transmet à CentralPay, au moment de la création d’une transaction (par carte, virement ou prélèvement), des données commerciales contextualisées (ex. : montant du panier, commission, identifiants des wallets destinataires…) L’appel API ne crée pas directement le mouvement financier :👉 CentralPay instruit le transfert de manière autonome, après validation effective de la transaction (capture d’une opération carte, réception d’un virement, ou exécution d’un prélèvement SEPA). Le modèle de transfert conditionné permet de réaliser un mouvement de fonds à l’issue d’une transaction : carte, virement (SCT), ou prélèvement (SDD). Dans ce cas, le transfert est directement paramétré lors de la création de la transaction, via un champ dédié transfer[]. Cette méthode ne passe pas par l’endpoint /transfer, mais s’appuie sur les endpoints spécifiques des transactions concernées : /transaction pour les paiements par carte : Voir comment créer une transaction CARD ➝ /sctTransaction pour les virements reçus : Voir comment créer une transaction SCT ➝ /sddTransaction pour les prélèvements SEPA : Voir comment créer une transaction SDD ➝ /paymentRequest pour les demandes de paiement : Voir comment créer une demande de paiement ➝ Ce mode de fonctionnement garantit que les fonds sont uniquement transférés si la transaction est réussie. Le transfert devient alors une étape automatisée et synchronisée. ✅ Conditions d’utilisation Le transfert est créé en même temps que la transaction (pas d’appel distinct). Il n’est exécuté qu’en cas de succès de la transaction source. Il respecte les contraintes de la source (statut, solde disponible, date…). Il peut être instantané ou différé via le champ escrowDate. ▶️ Paramétrer un transfert dans une transaction Dans les quatres cas de figure, la logique est identique : un tableau transfer[] est renseigné dans le corps de la requête lors de l’appel POST de création de la transaction. Les champs acceptés dans transfer[] sont les suivants : ChampTypeObligatoireDescriptiondestinationWalletIdUUID✅Wallet bénéficiaire. Doit appartenir à un sous-marchand autorisé.amountInteger✅Montant du transfert en centimes.currencyString❌Devise du transfert (si différente de la devise de la transaction).merchantTransferIdString❌Référence partenaire.feeInteger❌Frais applicables (prélevés sur le montant brut).escrowDateDate ISO❌Date différée d’exécution (si applicable).transferGroupString❌Identifiant de groupe pour les suivis agrégés.descriptionString❌Libellé du transfert visible sur les relevés.additionalDataKV pairs❌Données métier structurées (clé/valeur). ⚠️ Les règles de disponibilité des fonds (notamment après délai de capture ou de validation) doivent être respectées. Si la transaction est annulée ou échoue, aucun transfert n’est déclenché.
Reversement bancaire pour tiers Le reversement bancaire pour un tiers permet de transférer des fonds depuis un compte de paiement ou monnaie électronique CentralPay vers le compte bancaire d’un marchand (ou sous-marchand), en tant que partenaire Agent ou DME. Les partenaires techniques ou MOBSP n’ont pas accès à cette fonction. 1. Objectif et périmètre Ce service permet de : Déclencher des reversements manuels ou automatisés pour des sous-marchands ou des participants, Cibler un compte bancaire autorisé par le sous-marchand ou le participant, Utiliser un wallet CentralPay comme source des fonds. 📌 Le partenaire régulé reste à l’initiative technique du reversement, mais les fonds sont toujours détenus et transférés par CentralPay, qui conserve la responsabilité de l’exécution. 2. Méthodes disponibles 🔁 L’API CentralPay Endpoint : /payout/byThirdParty➡️ Voir détails ci-dessous. 🧑💼 Le Portail utilisateur CentralPay Accessible pour les comptes disposant des droits adéquats (Agent ou DME). Étapes : Accéder à Comptes liés. Sélectionner le marchand concerné. Accéder à l’onglet Comptes bancaires. Choisir le compte cible et déclencher le payout. 3. Endpoint API : /payout/byThirdParty Ce service permet d’envoyer une instruction à CentralPay pour reverser une somme définie vers un compte bancaire rattaché à un Participant. ✅ Limites d’usage 1 reversement / jour / Participant / devise. Compte bancaire cible validé par le Participant. Reversement uniquement sur fonds disponibles. 🔧 Paramètres API (BODY) ParamètreTypeRequisDescriptioncurrencyISO 4217✅ OuiDevise du reversement (doit correspondre au compte bancaire).destinationBankAccountIdUUID✅ OuiCompte bancaire bénéficiaire (lié au Participant).walletIdUUID❌ NonWallet source des fonds.amountInteger (en cents)❌ NonMontant à reverser. Si vide : solde maximum.merchantPayoutIdString❌ NonID de référence interne.descriptionString❌ NonTexte libre, visible dans le reporting.payoutReferenceString (max 35)❌ NonRéférence bancaire (visible sur l’opération bancaire).additionalDataMap❌ NonDonnées complémentaires (ex. : ID commande, segment, etc.).transitionWalletUUID❌ Non(cas avancé) wallet transitoire.customerIdUUID❌ NonIdentifiant client si cible non marchande. 4. Suivi des reversements Récupérer un payout Endpoint : /payout/byThirdParty/retrieveParamètre : payoutId (UUID) Lister les payouts Endpoint : /payout/byThirdParty/listParamètre : walletId (UUID) Statuts possibles : StatutSignificationPENDINGReversement en cours de traitementPAIDReversement exécuté avec succèsCANCELReversement annulé manuellement 5. Contraintes réglementaires Seuls les Agents et Distributeurs de Monnaie Électronique (DME) déclarés à l’ACPR via CentralPay peuvent initier ces reversements. Les partenaires doivent garantir que les données envoyées sont conformes à leur cadre contractuel et réglementaire. CentralPay se réserve le droit de refuser un reversement ou d’exiger des documents justificatifs en cas de doute sur l’opération.
Retours, statuts et webhooks 1. Codes de retour liés aux transferts Les transferts réalisés via l’API CentralPay (objet Transfer ou Transfer Reversal) sont des opérations internes entre deux porteurs de comptes CentralPay (ex. : marchands, clients, partenaires). Ces opérations sont exécutées de manière synchrone ou quasi-immédiate. Contrairement aux transactions cartes ou virements bancaires, il n’y a pas de codes de retour bancaire associés à ces transferts internes. En cas d’échec, l’API retourne une erreur HTTP décrivant la cause du rejet (ex. : solde insuffisant, compte inactif, devise incompatible…). Ces erreurs ne sont pas des statuts métier, mais des contrôles d’entrée empêchant la création du transfert. Une fois le transfert accepté, il suit un cycle de vie propre. 2. Statuts liés aux transferts Consultez les Statuts Transfer ➝ Consultez les Statuts Transfer Reversal ➝ Consultez les Statuts Payout (valables également pour PayoutByThirdParty) ➝ 3. Webhooks liés aux transferts Consultez les Webhooks Transfer ➝ Consultez les Webhooks Transfer Reversal ➝ Consultez les Webhooks Payout (valables également pour PayoutByThirdParty) ➝
WooCommerce Ce guide vous accompagne dans l’installation, la configuration et l’utilisation du plugin de paiement CentralPay pour WooCommerce (WordPress). ℹ️ La plateforme CentralPay prend en charge différents moyens de paiement (carte, virement SEPA, prélèvement SEPA, initiation de paiement) et plusieurs modes de paiement (paiement en une fois, abonnement, en plusieurs fois, etc.). Ce plugin WooCommerce permet uniquement l’encaissement de transactions cartes unitaires. Si vous souhaitez demander une évolution du plugin, rendez-vous sur https://support.centralpay.com : Support & Paramétrage Suggérer une nouvelle fonctionnalité 1. Téléchargement du plugin Téléchargez l’archive ZIP du plugin CentralPay en cliquant ici. Vous ne devez pas la décompresser manuellement. 2. Installation sur WordPress Connectez-vous à votre interface d’administration WordPress Allez dans Extensions > Ajouter Cliquez sur Téléverser une extension Sélectionnez le fichier centralpay220.zip et cliquez sur Installer maintenant Une fois l’installation terminée, cliquez sur Activer l’extension 3. Configuration du module Allez dans WooCommerce > Réglages > Paiements Cliquez sur CentralPay pour accéder à la configuration Renseignez les champs suivants puis cliquez sur Enregistrer les modifications : ChampDescriptionAccès à la donnéeIdentifiant marchandIl s’agit de votre Merchant Public Key. Ne pas confondre avec le Merchant UUID.Portail utilisateur CentralPay > Administration > Technique > Copier « Merchant Public Key »Login APIIdentifiant de votre utilisateur API CentralPayPortail utilisateur CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »Mot de passe APIMot de passe de votre utilisateur API CentralPayPortail utilisateur CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Modifier > Générer un mot de passe > Copier le mot de passe > cliquer sur « Mettre à jour »ID du point de venteIdentifiant unique de votre point de vente (UUID)Portail utilisateur CentralPay > Configuration > Points de ventes > Copiez l’ID du point de vente concernéMode test / productionActivez le mode test si vous souhaitez utiliser l’environnement sandbox (les logins et identifiants doivent être ceux de votre compte de test CentralPay)./URL de redirectionRedirige vos clients vers une page personnalisée après paiement sur notre formulaire.Renseignez l’URL de votre page de confirmation de paiement. 4. Statut de commande Le plugin WooCommerce de CentralPay intègre automatiquement une URL de retour (return_url) dans le lien du formulaire de paiement. Cette URL permet de rediriger le client vers la page de confirmation de commande (/checkout/order-received/) et d’actualiser le statut de la commande en fonction du résultat du paiement. Si le client final ferme la fenêtre de paiement avant d’être redirigé, la mise à jour de la commande peut ne pas se déclencher correctement côté WooCommerce. Pour garantir la mise à jour fiable du statut de commande, nous recommandons de mettre en place un Hook (callback serveur à serveur) dans votre Backoffice CentralPay. Étapes de configuration : Accédez à :Production : https://backoffice.centralpay.net/admin/hook/Test : https://test-backoffice.centralpay.net/admin/hook/ Créez un Hook avec les paramètres suivants : Événement : Point de Vente > TRANSACTION_SUCCEDEED Affecté au Point de Vente : sélectionnez votre Point de Vente WooCommerce URL : https://votre-site-woocommerce.com/?wc-api=cpay_validation (Remplacez par l’URL de votre site WooCommerce.) Sauvegardez le Hook. Le paramètre /?wc-api=cpay_validation est nécessaire pour que le plugin WooCommerce de CentralPay reconnaisse la notification et déclenche la mise à jour du statut de la commande. Cette configuration doit être réalisée à la fois dans votre environnement de test et sur votre compte de production. 5. Personnalisation du logo Vous pouvez également personnaliser l’interface de paiement en ajoutant le logo de votre site via le Backoffice : Accédez à : https://backoffice.centralpay.net/admin/point_of_sale/ Dans le détail de votre Point de Vente, cliquez sur Modifier Importez votre logo dans la section Logo Ce logo sera affiché directement dans le formulaire de paiement pour une expérience utilisateur plus cohérente. 6. Mode test Activez le mode test dans la configuration (attention, vous devez disposer d’un compte de test CentralPay et renseigner les identifiants de ce compte de test) Utilisez les cartes de test fournies par CentralPay pour simuler des paiements Vérifiez le bon fonctionnement : Du formulaire de paiement Des redirections Des statuts de commande 7. Suivi des paiements Retrouvez tous vos paiements dans WooCommerce > Commandes Le plugin CentralPay met à jour automatiquement les statuts des commandes En cas de besoin, un journal des événements est disponible dans le fichier error.log du plugin 8. Langues disponibles Le plugin est disponible en : 🇫🇷 Français 🇬🇧 Anglais Vous pouvez modifier ou ajouter vos propres traductions via les fichiers .po présents dans le dossier /languages, ou en utilisant un plugin comme Loco Translate. 9. Désinstallation Pour désinstaller le plugin : Désactivez-le via le menu des extensions Cliquez sur Supprimer Le script de désinstallation supprimera les paramètres du plugin 10. Support Pour toute question ou assistance, contactez notre support technique depuis https://support.centralpay.com.Merci d’indiquer votre identifiant marchand, l’URL de votre site et le plus de détails possible sur votre besoin.
PrestaShop La solution CentralPay propose un module d’encaissement par carte bancaire pour les boutiques Prestashop. Deux versions du module sont disponibles selon la version de votre CMS : Pour Prestashop 1.6 ➝ Télécharger le module 1.6 Pour Prestashop 1.7 ➝ Télécharger le module 1.7 1. Installation du module Prestashop v1.6 Connectez-vous au back-office Prestashop. Menu Modules > Modules. Cliquez sur « Ajouter un nouveau module ». Chargez l’archive .zip puis cliquez sur « Installer ». Prestashop v1.7 Connectez-vous à l’administration de Prestashop. Menu Modules > Modules Manager > Upload a module. Déposez l’archive .zip ou cliquez pour la charger. Terminez l’installation en suivant l’assistant. 2. Configuration du module Après installation, accédez à la page de configuration du module : Modules > Modules installés > CentralPay > Configurer Les champs suivants sont requis : ChampDescriptionOù trouver cette information ?Merchant Public KeyClé publique d’authentification APIPortail utilisateur CentralPay > Administration > Technique > Copier « Merchant Public Key »Login APIIdentifiant de votre utilisateur API CentralPayPortail utilisateur CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »Secret Key (passeword API)Clé secrète API (à ne jamais diffuser)Portail utilisateur CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Modifier > Générer un mot de passe > Copier le mot de passe > cliquer sur « Mettre à jour »ID du point de venteIdentifiant unique de votre point de vente (UUID)Portail utilisateur CentralPay > Configuration > Points de ventes > Copiez l’ID du point de vente concernéEndpointURL de l’API CentralPayEn environnement de test : https://test-api.centralpay.net/En production : https://api.centralpay.net/DeviseDevise des paiements acceptésÀ configurer selon la boutique (EUR recommandé)Mode de paiementMode d’intégration technique du paiementLaisser la valeur par défaut « Direct Post »Affichage du formulaireAffichage du formulaire sur page dédiée ou dans la page panierChoisir l’affichage souhaité (conseillé : page dédiée pour la sécurité)Statut de commande après paiement réussiStatut que prendra la commande après une validation du paiement« Paiement accepté » (ou tout autre statut configuré dans Prestashop) ⚠️ Veillez à bien copier-coller la Merchant Public Key sans espaces ni caractères parasites. 3. Fonctionnement Lorsqu’un client choisit CentralPay comme moyen de paiement : Il est redirigé vers une page sécurisée (hébergée ou intégrée). Il saisit ses informations de carte bancaire. Le paiement est autorisé par la banque (3D Secure inclus). La commande est validée dans Prestashop avec le statut défini. Un webhook notifie automatiquement CentralPay et Prestashop de l’issue du paiement. 4. Mode test / production En mode test, vous pouvez utiliser les cartes de test disponibles dans la documentation développeur. En mode production, seuls les marchands activés (KYC validé) peuvent encaisser. Le switch de mode s’effectue en modifiant l’Endpoint dans la configuration du module. 5. Support Pour toute question : Contactez le support CentralPay via le Portail utilisateur > Aide & Support. Ou directement via support.centralpay.com
Magento 📦 1. Téléchargement du module Téléchargez le plugin CentralPay pour Magento à partir du lien suivant : 👉 Télécharger le plugin Magento CentralPay (v1.0) Ce module est compatible avec Magento 1.7+ ⚙️ 2. Installation du plugin A. Décompresser l’archive Décompressez le fichier .zip téléchargé. Vous obtiendrez les dossiers suivants : app/ js/ skin/ centralpay.sql (fichier SQL à exécuter) B. Copier les fichiers Copiez l’ensemble des dossiers (app, js, skin) à la racine de votre instance Magento. Ils viendront automatiquement s’intégrer dans l’arborescence existante. C. Exécuter le script SQL Exécutez le fichier centralpay.sql sur la base de données de votre site Magento. 💡 Utilisez phpMyAdmin ou tout autre outil de gestion de base pour importer ce fichier.⚠️ Pensez à sauvegarder votre base avant exécution. 🔧 3. Configuration du module Une fois le module installé, connectez-vous à votre interface d’administration Magento pour renseigner les paramètres CentralPay. A. Accéder à la configuration Dans le menu d’administration Magento, rendez-vous dans :Stores > Configuration > Sales > Payment Methods > CentralPay B. Paramètres à renseigner Champ dans MagentoDescriptionObligatoireAccès à la donnéeActiver CentralPayActive le module dans l’environnement Magento.✅MagentoTitreNom du moyen de paiement visible côté client.✅MagentoIdentifiant Marchand (merchantLogin)Identifiant d’API fourni par CentralPay.✅Portail utilisateur CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »Mot de passe API (merchantPassword)Mot de passe API associé à l’identifiant.✅Portail utilisateur CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Modifier > Générer un mot de passe > Copier le mot de passe > cliquer sur « Mettre à jour »Clé publique Marchand (merchantPublicKey)Clé de chiffrement utilisée pour sécuriser les données de carte.✅Portail utilisateur CentralPay > Administration > Technique > Copier « Merchant Public Key »ID du point de venteIdentifiant unique de votre point de vente (UUID)❌Portail utilisateur CentralPay > Configuration > Points de ventes > Copiez l’ID du point de vente concernéURL de retour (returnUrl)Permet de rediriger le client vers Magento après paiement. Peut être laissé vide pour utiliser la redirection automatique.❌MagentoMode Test (sandbox)Permet d’utiliser l’environnement de test CentralPay.❌MagentoCommande en attenteStatut Magento utilisé si le paiement est en cours ou en attente (ex. : 3DS).❌MagentoCommande validéeStatut Magento utilisé si le paiement est accepté.❌Magento 🧪 4. Mode test et environnement de recette Le module propose une option de sandbox activable dans l’administration Magento. 🧪 Utilisez l’environnement sandbox CentralPay pour simuler des paiements avant passage en production. N’oubliez pas d’utiliser les identifiants API de test (login, password, clé publique) fournis par CentralPay. 💳 5. Expérience client Le client ajoute ses articles au panier et passe à la caisse. Au moment du paiement, il choisit CentralPay comme méthode de paiement. Il est redirigé vers l’interface de paiement CentralPay sécurisée. Une fois le paiement effectué (ou refusé), il est redirigé vers votre site Magento. Le statut de la commande est mis à jour automatiquement. 🧾 6. Suivi des paiements Depuis Magento : vous pouvez consulter le statut des commandes et des paiements dans le back-office standard. Depuis CentralPay : toutes les opérations sont également visibles dans votre interface CentralPay (transactions, remboursements, rejets, etc.). 🆘 7. Support technique Pour toute question : Consultez la documentation technique CentralPay : docs.centralpay.com Contactez notre support : support.centralpay.com 🔧 Assistance disponible en français et en anglais.