CentralPay Documentation CentralPay Documentation
  • Informations générales
  • Documentation
  • Développeurs
CentralPay Documentation CentralPay Documentation
  • Informations générales
  • Documentation
  • Développeurs

Docy Documentation

  • Folder icon closed Folder iconDéveloppeurs
    • How to use the swagger
    • Authentication 3DS 2.2
    • Attachment
    • Balance Histories
    • BankAccount
    • Card token
    • CARD Transaction
      • Transaction
      • Card
      • Credit
      • Disputes
    • Charge
    • ClearedOperation
    • CpayUser
    • Credit
    • Customer
    • Deposit
    • Deposits
    • Event
    • Exchange
    • Identity
    • Info
    • Installment Payment
    • MerchantInfo
    • MID
    • Movement
    • Origin
    • PIS
    • Payment Request
    • Payout
    • Point Of Sale
    • Refund
    • PendingOperation
    • Regularisation
    • RIB
    • SCT Transaction
      • SCT Transaction
      • SCT Transaction Reversal
      • SCT Transaction Refund
      • SCT transaction Refund Reversal
      • Bank Reconciliation
      • Bank Reconciliation external
    • SDD Transaction
      • Mandate
      • SDD Transaction
      • SDD Transaction Reversal
      • SDD Transaction Refund
      • SDD Transaction Refund Reversal
    • Scenario
    • SourceType
    • Subscription
      • Subscription Model
      • Subscription
      • Invoice
    • Transfer
    • TransferReversal
    • Wallet
    • Blacklist
    • WhiteList
    • Onboarding
      • Create Enrollement
      • Complete enrollment
      • Update enrollment
      • Search enrollement
      • Enrollment Details
      • E-money
      • Misc
    • Object status
      • 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
    • Webhook notifications
      • 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)
    • Resources by type
      • Codes
        • HTTP Codes
        • Card authorization – Bank return codes
        • Card Disputes – Bank Return codes
        • Currency codes
        • SDD return codes
        • Country codes
        • Transfer purpose codes
        • SDD purpose codes
        • Error codes
      • Test values
        • Test IBAN values
        • Test cards Values
  • Folder icon closed Folder iconDocumentation
    • Guide de démarrage rapide >
    • Marchand, comptes et canaux de vente
      • Profil Marchand
      • Profils clients
      • Points de vente
      • Comptes de paiement
      • Comptes de ME
    • Automatisations, connexions et exports
      • Notifications email/sms
      • Services anti-fraude
      • Versement sortant
      • Exports comptables
      • Exports de données
      • Webhooks
    • Liens de paiement
      • Informations générales
      • Demandes de paiement
      • Page de paiement (SmartForm)
      • Retours, statuts et hooks
    • Transaction par carte
      • 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
    • Transaction par virement
      • 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
    • Transaction prélèvement SEPA
      • 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
    • Paiements récurrents
      • Abonnement
      • Fractionné
    • Authentification 3DS 2.2
      • 3DS 2.2 BRW (paiement unitaire)
      • 3DS 2.2 3RI (paiements récurrents)
      • FAQ 3DS 2.2
    • Gestion des marchands
      • 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
    • Transferts de paiements
      • Informations générales
      • Transfert indépendant
      • Transfert via Transaction ou PaymentRequest
      • Versement sortant pour tiers
      • Retours, statuts et webhooks
    • Plugin CMS
      • WooCommerce
      • PrestaShop
      • Magento
    • Bonnes pratiques
      • Déclaration TVA par pays
      • Merchant Initiated Transaction (MIT)
      • Verification of Payee (VoP)
        • FAQ – Verification Of Payee
  • Folder icon closed Folder iconInformations générales
    • Contacter CentralPay >
    • L’établissement CentralPay
      • Certifications et agréments
      • Sécurité et hébergement
      • Engagements de disponibilité
      • Évolution de la plateforme
      • Glossaire CentralPay
    • Modèles contractuels
      • Marchand standard
      • Marchand Partenaire
        • Déclaration MOBSP (Orias)
      • Marchand Mandataire
        • Déclaration Agent PSP (ACPR)
        • Déclaration Distributeur ME (ACPR)
    • Ouvrir un compte CentralPay
      • 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
    • Utilisation des API CentralPay
    • Portail Marchand
      • Guide : Mes comptes
    • Portail Client
    • Portail d’inscription
    • Tarifs
      • Offres commerciales
      • Frais d'interchange et réseaux cartes
      • Forfaits d'accompagnement
    • Logos et visuels
      • Logos CentralPay
      • Logos PaySecure
      • Visuels de réassurance (FR/EN)
    • Trust Center
      • Conformité et résilience opérationnelle
        • FAQ – Conformité et résilience
      • Protection des données personnelles
        • FAQ – Protection des données personnelles

HTTP Codes

Find below the list of HTTP return codes:

200OK
Note: The request was executed correctly
400BAD REQUEST
Note: Wrong parameter or rule
401UNAUTHORIZED
Note: Login / password are missing for HTTP authentication
402PAYMENT_REQUIRED
Note:  Authorization denied*
403FORBIDDEN
Note: Wrong authentication
404NOT FOUND
Note: Incorrect URL
500INTERNAL SERVER ERROR
Note: Server error

(*) Only possible for the creation of a transaction

Profil Marchand

Le Profil Marchand représente techniquement et opérationnellement un Marchand dans la plateforme CentralPay.

Il est le support de :
• Ses comptes : de paiement ou de monnaie électronique ;
• Son administration : accès API, profils utilisateurs, services de paiement disponibles ;
• Sa configuration technique : webhooks, notifications, points de vente, règles d’acceptation, comptes bancaires ;
• Son dossier réglementaire : KYC/KYB, LCB-FT, scoring de risque, contractualisation, grille tarifaire…

Le Profil Marchand correspond à l’objet API Merchant et est créé automatiquement après validation de son inscription (via l’objet API Merchant-Enrollment).

1. Types de profils selon le modèle contractuel

Chaque type de Marchand est associé à un modèle contractuel précis.

Standard Type : STANDARD

Le Marchand standard est une entreprise ou un professionnel qui encaisse des paiements pour son propre compte. Il dispose d’un ou plusieurs comptes de paiement, et peut accéder aux services CentralPay via API ou via un partenaire.

👉 En savoir plus sur le modèle Marchand

Partenaire Intégrateur Type : INTEGRATOR

Le Partenaire Intégrateur accompagne plusieurs Marchands standards dans leur intégration technique avec CentralPay. Chaque Marchand standard 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.

  • Peut disposer d’un compte de paiement et d’un compte de commission pour ses propres besoins
  • Un point de vente distinct est créé pour chaque Marchand accompagné
  • Peut réaliser des appels API et actions techniques via les accès délégués par le Marchand (suivi d’Instructions Techniques, paramétrage, RUN), sans accès aux soldes ni pouvoir d’initier/modifier/exécuter une opération de paiement en son nom propre
  • CentralPay facture chaque Marchand directement

👉 En savoir plus sur le modèle Partenaire Intégrateur

Partenaire Intégrateur MOBSP Type : INTEGRATOR + MOBSP

Le Partenaire 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 standard, 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 Partenaire Intégrateur MOBSP

Partenaire Technique Type : TECHNIQUE

Le Partenaire Technique développe une solution mutualisée (ex. marketplace, plateforme SaaS) et opère depuis un ou plusieurs points de vente ouverts à son nom, auxquels des Marchands standards peuvent être rattachés. Il utilise ses propres accès API pour transmettre des données commerciales et suivre les opérations rattachées à ces points de vente, sans jamais disposer d’un pouvoir d’exécution sur les opérations de paiement.

  • Un ou plusieurs points de vente peuvent être utilisés pour regrouper les activités des marchands (ex. marketplace, plateforme SaaS)
  • Accès API CentralPay propre au Partenaire Technique
  • CentralPay facture le Partenaire Technique
  • Ne peut pas initier l’enrôlement au nom et pour le compte des marchands (sauf cadre MOBSP applicable)

👉 En savoir plus sur le modèle Partenaire Technique

Partenaire Technique MOBSP Type : TECHNIQUE + 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êmes droits 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

Mandataire DME Type : DME

Le Mandataire DME (Distributeur de Monnaie Électronique) transmet des instructions de chargement, de transfert ou de remboursement en monnaie électronique pour le compte de Participants. Il agit dans le cadre du modèle monnaie électronique (devises CUSTOM) et peut percevoir une commission sur les opérations, sans fournir de services de paiement régulés (ex. virement SEPA, prélèvement, carte).

👉 En savoir plus sur le modèle Mandataire DME

Mandataire Agent Type : AGENT

Le Mandataire Agent est un Agent de Prestataire de Services de Paiement (Agent PSP) enregistré auprès de l’ACPR. Il agit au nom et pour le compte de CentralPay dans un périmètre strictement défini contractuellement. Selon le modèle retenu (Agent simple / Agent collecteur / Agent délégataire), il peut notamment accompagner l’enrôlement, réaliser certaines diligences KYC/KYB de niveau 1, et/ou intervenir dans la collecte, la ventilation et la mise à disposition des fonds via les mécanismes prévus par CentralPay. CentralPay demeure responsable des services de paiement fournis et des contrôles réglementaires.

👉 En savoir plus sur le modèle Mandataire Agent

Participant Type : BASIC

Les Participants sont des personnes physiques ou morales clientes d’un Marchand Mandataire de CentralPay (Agent ou DME). Ils disposent d’un ou plusieurs comptes de paiement ou de monnaie électronique pour recevoir des fonds émis par le Mandataire, et peuvent accéder au portail Marchand pour consulter leurs opérations et gérer leurs versements sortants.

Ils agissent pour vendre des produits ou services, pour une activité LMNP, ou pour des besoins non commerciaux (crowdfunding, wallet personnel, projets collectifs…).

Les participants ouvrent des comptes chez CentralPay. L’entrée en relation peut être initiée et/ou accompagnée par le Marchand Mandataire, mais les services régulés restent fournis par CentralPay. Le cadre d’utilisation des comptes est défini par les documents CentralPay applicables (et, le cas échéant, par les CGU du Mandataire pour les conditions commerciales et les services qu’il fournit).

2. Paramétrage des emails de contact

Vous pouvez personnaliser les adresses email de contact associées à votre profil marchand pour que les notifications, relances ou échanges contractuels soient bien adressés aux bons interlocuteurs.

  • Email contact : référent principal du profil marchand
  • 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 profil marchand. Elles peuvent être modifiées à tout moment depuis le Portail Marchand.

Accès à la configuration des emails de contact :

Recette Portail Marchand
Production Portail Marchand

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 versements 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 RCT (test) Api login and password. You can also use our test login : Doctest:4I9HJRTd
Don’t use your Production login for the tests, you’ll get a 401 error.


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.

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 :

  1. Envoyez un e-mail à notre service client qui inclut votre raison sociale et votre numéro SIREN
  2. 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

  1. Allez sur le site de l’ORIAS
  2. Faites défiler vers le bas jusqu’à voir la section Comment ça marche ?
  3. Cliquez sur S’inscrire

Vous serez redirigé vers le formulaire d’inscription.

2.2. Saisir les informations

  1. Entrez votre numéro SIREN
  2. Saisissez les informations sur votre entreprise. Assurez-vous de vous inscrire en tant que personne morale / entité juridique
  3. Saisissez les informations de votre représentant légal
  4. Saisissez les coordonnées de votre représentant légal
  5. Saisissez les coordonnées de votre entreprise, y compris votre site web si vous en avez un
  6. Entrez l’adresse de votre entreprise
  7. 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.

  1. Retournez sur le site de l’ORIAS
  2. Cliquez sur Connexion / Login
  3. Saisissez votre identifiant et votre mot de passe provisoire depuis votre email
  4. 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

  1. Cliquez sur Nouvelle inscription pour démarrer votre inscription, un formulaire apparaît
  2. Choisissez Activité IOB
  3. Choisissez ensuite Mandataire non-exclusif en opérations de banque et en services de paiement (MOBSP)
  4. Cliquez sur Soumettre

3.2. Fournissez des informations complémentaires

  1. 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.
  2. Pour la première question, choisissez la réponse : Je déclare que l’on ne me confie pas de fonds
  3. 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
  4. 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
  5. Cliquez sur Aller à l’étape « Pièces justificatives »

3.3. Fournissez vos documents justificatifs

  1. Soumettez votre KBIS
  2. Soumettez votre mandat d’attestation, qui est le certificat de mandat de l’étape 1.1
  3. Soumettez votre Capacité professionnelle pour « vous » (Niveau I IOBSP), qui constitue votre preuve d’aptitude professionnelle de l’étape 1.2.
  4. Cliquez sur Aller à l’étape suivante

3.4. Payez votre inscription

La dernière étape consiste à payer votre inscription.

  1. 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
  2. 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)
  3. Après avoir payé, cliquez sur Télécharger la facture pour télécharger votre reçu
  4. Cliquez sur Terminer la demande d’inscription pour finaliser votre inscription
  5. 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.

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 profil marchand de test

CentralPay met à votre disposition un environnement de test (RCT) pour développer et valider votre intégration :

  • Profil de test « Marchand standard«  : Pour tester uniquement la solution d’encaissement Smart Collection, demandez un profil marchand de test via notre formulaire
  • Profil de test « Marchand partenaire ou mandataire » : Pour tester l’encaissement (Smart Collection) et les transferts de paiements (Easy Wallet), contactez notre service client. Nous créerons et paramétrerons votre profil marchand 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 profil marchand

Votre profil Marchand CentralPay peut être configuré de manière autonome ou avec l’accompagnement de notre équipe support.

ℹ️ Les paramétrages réalisés sur votre profil marchand de test (RCT) ne sont pas automatiquement répliqués en production (PROD). Veillez à les reconfigurer une fois votre profil 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 profil marchand
Règles d’acceptation
Versements sortants
Libellé de relevé bancaire
Notifications automatiques
Page de paiement Smart Form
Modèles de demandes de paiement
Tentatives auto. pour les échecs de prélèvement carte
Tentatives auto. 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 profil 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 de recette (RCT), préparez le passage en production (PRD).

ℹ️ Rappel : Aucun paramétrage n'est automatiquement copié de la RCT vers la 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 Marchand

Si nécessaire, vous pouvez effectuer une à 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 Marchand, 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 Marchand 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 Marchand :

Recette Portail Marchand – Aide et support
Production Portail Marchand de PROD – Aide et support

Transaction

See more about card transactions

jQuery(document).ready( function($) { window.live_699ea29d4cea9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29d4cea9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29d4cea9.load(); });

FAQ - Verification Of Payee

À compter du 9 octobre 2025, la Vérification du bénéficiaire (VoP – Verification of Payee) deviendra obligatoire pour tous les virements SEPA, qu’ils soient classiques ou instantanés. Ce dispositif, gratuit pour les utilisateurs, vise à renforcer la sécurité des paiements en réduisant à la fois :

  • les fraudes au virement (notamment les fraudes au faux RIB),
  • les erreurs de saisie d’IBAN ou de nom du bénéficiaire.

Concrètement, avant l’exécution d’un virement, l’établissement du payeur doit interroger l’établissement du bénéficiaire pour vérifier la concordance entre l’IBAN et le nom du titulaire du compte. En cas de discordance, une alerte est affichée au payeur, qui conserve la liberté de poursuivre ou non l’opération.

Enjeux du dispositif

  • Protection des utilisateurs : limiter les virements mal orientés ou frauduleux.
  • Sécurité du système de paiement SEPA : accompagner le déploiement du virement instantané en Europe.
  • Confiance des entreprises et des particuliers : améliorer la transparence et la fiabilité des paiements.
  • Harmonisation européenne : instaurer une norme commune pour tous les PSP (banques, établissements de paiement et de monnaie électronique).

Base légale

  • Règlement (UE) 2021/1230 sur les virements instantanés en euros et la modification du règlement (UE) n° 260/2012 (SEPA), qui introduit l’obligation de VoP.
  • Règlement (UE) 2015/847 sur les informations accompagnant les transferts de fonds, qui impose la transmission exacte des informations sur le payeur et le bénéficiaire.
  • Code monétaire et financier :
    • Articles L.133-6 et L.133-7 relatifs à l’autorisation des opérations de paiement et à l’exactitude des informations,
    • Articles L.561-5 et suivants relatifs aux obligations de vigilance en matière de LCB-FT.
  • Doctrine de l’ACPR, qui dans plusieurs décisions a sanctionné l’insuffisance de dispositifs de vérification et de correspondance entre l’identité du client et son compte

Foire aux questions (FAQ)

1. Qu’est-ce que la VoP ?

La Vérification de l’Ordre de Paiement (VoP) est un service réglementaire instauré au niveau européen.
Elle permet de comparer automatiquement le nom du bénéficiaire d’un virement avec l’IBAN renseigné par le payeur, avant l’exécution du virement.
Objectif : renforcer la sécurité des paiements et réduire les fraudes (notamment fraude au faux RIB).

2. Qui est concerné ?

  • Les payeurs : particuliers ou entreprises qui initient un virement.
  • Les bénéficiaires : toute personne physique ou morale recevant des virements (vous, en tant que client CentralPay).
  • Les prestataires de services de paiement (PSP) : banques, établissements de paiement ou de monnaie électronique, qui doivent intégrer la VoP dans leurs systèmes.

3. Comment fonctionne la VoP concrètement ?

Lorsqu’un virement est initié :

  1. Le payeur saisit l’IBAN et le nom du bénéficiaire.
  2. Sa banque interroge le PSP du bénéficiaire (via un canal sécurisé) pour vérifier la concordance entre l’IBAN et le nom enregistré dans la base du bénéficiaire.
  3. La réponse est renvoyée au PSP du payeur et affichée au payeur.

4. Quels résultats peuvent apparaître ?

Trois cas sont possibles :

  • Correspondance exacte : l’IBAN et le nom concordent → le virement peut être initié sans alerte.
  • Correspondance partielle : l’IBAN correspond mais le nom est différent (fautes de frappe, abréviation, orthographe différente). Le payeur reçoit un avertissement et peut :
    • corriger le nom,
    • ou confirmer qu’il s’agit bien du bénéficiaire attendu.
  • Absence de correspondance : l’IBAN et le nom ne correspondent pas → le payeur reçoit une alerte forte. Il peut annuler ou décider de poursuivre en acceptant le risque.

Est-ce que la VoP bloque un virement ?

Non. La VoP ne bloque pas l’exécution d’un virement. Elle fournit une information supplémentaire au payeur qui reste libre de valider ou non l’opération.
Toutefois, certaines banques peuvent paramétrer des règles internes de blocage en cas de discordance totale.

Quels échanges ont lieu entre banques et PSP ?

  • Le PSP du bénéficiaire (ex. CentralPay) conserve dans sa base le nom exact du titulaire du compte.
  • Lors d’une requête VoP, il répond par un code standardisé indiquant : correspondance, correspondance partielle ou absence de correspondance.
  • Ces échanges sont sécurisés, tracés et limités aux seules données nécessaires, conformément au Règlement (UE) 2015/847 sur l’accompagnement des virements.
  • Aucune autre donnée personnelle (adresse, documents KYC, etc.) n’est transmise.

Quels sont les avantages de la VoP ?

  • Pour le payeur : réduction des risques de fraude au virement, détection des erreurs de saisie.
  • Pour le bénéficiaire : limitation des retards de paiement liés aux erreurs, sécurisation de l’image vis-à-vis de ses clients.
  • Pour le système financier : meilleure prévention des fraudes et conformité avec les standards européens.

Que dois-je faire en tant que bénéficiaire CentralPay ?

  • Communiquer à vos clients l’IBAN correct et le nom exact enregistré auprès de CentralPay (raison sociale complète, sans abréviation).
  • Vérifier que vos factures, contrats et supports incluent toujours les mêmes coordonnées bancaires.
  • En cas de changement de dénomination sociale ou d’utilisation d’un nom commercial, informer rapidement vos clients et CentralPay pour mettre à jour les données.

Que se passe-t-il en cas de non-concordance fréquente ?

Si vos clients rencontrent souvent des alertes VoP lors de virements, cela peut indiquer que vos coordonnées bancaires ne sont pas communiquées de façon homogène.

CentralPay peut vous accompagner pour réviser et harmoniser vos informations de paiement afin d’éviter les frictions.

Illustration du VoP par le CNMP

Card authorization - Bank return codes

Issuer response codes returned to CentralPay after a card authorization request.

These values generally correspond to the ISO 8583 “Response code” (DE39) returned by card networks/issuers. Depending on the scheme, country, and routing, you may also receive network-specific or gateway-specific variants (for example alphanumeric or 3-digit codes).

Important: the same code can cover multiple issuer-side reasons. Unless explicitly stated, CentralPay passes these codes as received. For troubleshooting, combine the response code with your transaction context (amount, currency, 3DS result, merchant category, card brand, retries).

Most common response codes

CodeDescriptionRecommended action
00ApprovedProceed with capture / fulfillment.
02Contact card issuerAsk customer to contact their bank; retry only if customer confirms.
03Invalid acceptorCheck merchant/terminal configuration (MID/TID, acquirer routing).
04Pick up / retain cardDo not retry; follow your in-store procedure (if applicable).
05Do not honorGeneric decline: do not “loop” retries; ask customer to contact issuer or use another payment method.
07Honor with IDIf card-present: request ID verification; otherwise ask customer to contact issuer.
08Time-outRetry once after a short delay; if repeated, check connectivity/acquirer status.
10Unable to reverseEscalate to support with trace/reference; avoid repeated reversals.
11Partial approvalOnly relevant if your flow supports partial approvals (often prepaid); otherwise request another method.
12Invalid transactionCheck request consistency (type, lifecycle, capture/void rules); if persistent, escalate with logs.
13Invalid amountValidate amount format/currency decimals; check min/max constraints.
14Invalid card numberCustomer should re-enter card details; if repeated, use another card.
15Unknown issuerUse another card/payment method; escalate if routing issue suspected.
19Try again laterRetry once later; if repeated, ask customer to contact issuer.
30Format errorCheck field formats (PAN/expiry/CVV, currency, recurring flags); escalate if needed.
33Card expiredCustomer must use another card.
38PIN attempts exceededCardholder must contact issuer / reset PIN; do not retry.
39Transaction not allowedLikely product/merchant restriction; ask customer to contact issuer or use another method.
41Lost cardDo not retry; request another payment method.
43Stolen cardDo not retry; request another payment method.
51Insufficient fundsAsk customer to use another method or wait for funds; avoid repeated immediate retries.
54Expired cardCustomer must use another card.
55Incorrect PINCard-present only: customer must retry carefully or contact issuer after repeated failures.
57Transaction not permitted to cardholderIssuer restriction; ask customer to contact issuer or use another method.
58Transaction prohibited at terminalCheck merchant/terminal capabilities & configuration; may be MCC/terminal restriction.
59Suspected fraudDo not retry “blindly”; ask customer to contact issuer or use a different method; review fraud rules if frequent.
61Exceeds withdrawal/amount limitReduce amount or ask customer to contact issuer.
62Restricted cardIssuer restriction; customer should contact issuer.
65Frequency limit exceededWait and retry later; avoid repeated attempts in short timeframes.
68Response received too lateRetry once; check acquirer/network status if repeated.
75PIN attempts exceededSame as 38: cardholder must contact issuer.
82Invalid CVVCustomer should re-enter CVV; if repeated, use another card.
91Issuer/switch unavailableRetry later; if widespread, treat as incident (issuer/network outage).
94Duplicate requestAvoid immediate retries with same identifiers; ensure idempotency / unique reference.
95Contact acquirerEscalate to support/acquirer with transaction reference.
96System malfunctionRetry later; if repeated, escalate with traces/logs.

All response codes (exhaustive)

The following codes may be returned depending on the network, country, routing, or integration. This section is exhaustive compared to the previous version of this page, and includes both standard and non-standard variants.

CodeDescriptionRecommended action
00Transaction approved or successfully processedProceed with capture / fulfillment.
02Contact card issuerAsk the customer to contact their issuer; retry only if issuer confirms.
03Invalid acceptorCheck merchant/terminal configuration (MID/TID), acquirer routing, and credentials.
04Keep cardDo not retry; follow in-store procedure if applicable; request another payment method.
05Do not honorGeneric decline: avoid retry loops; ask customer to contact issuer or use another method.
06Transaction invalid for terminalCheck terminal capability / transaction type compatibility; verify integration parameters.
07Honor with IDIf card-present: request ID verification; otherwise ask customer to contact issuer.
08Time-OutRetry once after a short delay; if repeated, check network/acquirer connectivity.
09No originalFor reversals/adjustments: ensure you reference an existing original transaction; escalate if needed.
10Unable to reverseDo not repeat reversals blindly; escalate to support with transaction references.
11Partial approvalHandle partial approval if supported (often prepaid); otherwise request another method.
12Invalid transactionCheck transaction type/lifecycle (auth/capture/void/refund), parameters; escalate with logs if persistent.
13Invalid amountValidate amount format, currency decimals, and min/max constraints; retry after correction.
14Invalid cardholder numberCustomer should re-enter card details; if repeated, use another card.
15Unknown card issuerTry another card/payment method; if widespread, suspect routing/config issue and escalate.
17Invalid capture date (terminal business date)Check terminal business date / batch settings; retry after correction if applicable.
19Repeat transaction laterRetry once later; avoid multiple attempts in a short window; ask customer to contact issuer if repeated.
20No From AccountNot typical for purchase flows; verify transaction type and account fields; escalate if unexpected.
21No To AccountNot typical for purchase flows; verify transaction type and account fields; escalate if unexpected.
22Account not verifiedAsk customer to contact issuer; consider another payment method.
23Account not savedRetry later if applicable; otherwise use another method; escalate if recurring.
24No Credit AccountAsk customer to contact issuer; use another method.
25Unable to locate record in fileFor adjustments/reversals: verify original reference; escalate with trace/reference.
26Record duplicatedCheck idempotency and uniqueness of references; do not retry with same identifiers.
27‘Edit’ error in file update fieldCheck field formats and constraints; escalate with payload/logs.
28File access deniedConfiguration/permission issue: escalate to support/acquirer with context.
29File update not possibleEscalate with trace/reference; avoid repeating the same update operation.
30Format errorCheck request formatting (amount/currency, PAN/expiry, flags, message structure); escalate with logs.
31Identifier of acquiring organization unknownCheck acquirer routing and merchant configuration; escalate to support/acquirer.
32Transaction partially completedCheck final status via retrieval; avoid blind retry; escalate if inconsistent.
33Card validity date exceededCustomer must use another card.
34Implausible card dataCustomer should re-enter details; verify card data collection; use another card if repeated.
38Number of PIN attempts exceededDo not retry; customer must contact issuer / reset PIN.
39Transaction not allowedCheck transaction type and merchant capability; ask customer to contact issuer or use another method.
41Lost cardDo not retry; request another payment method.
42Special PickupDo not retry; request another method; in-store: follow procedure if applicable.
43Stolen cardDo not retry; request another payment method.
44Stolen cardDo not retry; request another payment method.
51Insufficient funds or overdraftAsk customer to use another method or wait for funds; avoid repeated immediate retries.
54Card expiredCustomer must use another card.
55Incorrect PINCard-present: retry carefully; if repeated, customer contacts issuer.
56Card not on fileVerify card details; customer should contact issuer or use another card.
57Transaction not authorized to this cardholderIssuer restriction; ask customer to contact issuer or use another method.
58Transaction prohibited at terminalCheck merchant/terminal capabilities and MCC/terminal restrictions; adjust configuration.
59Suspected fraudAvoid retry loops; customer contacts issuer or uses another method; review risk rules if frequent.
60The card acceptor must contact the buyerAsk customer to contact issuer / confirm details; avoid repeated attempts.
61Withdrawal amount over limitReduce amount or ask customer to contact issuer.
62Card use restrictedCustomer contacts issuer; use another method.
63MAC Key ErrorCryptographic/config issue: escalate to support/acquirer with trace and timestamps.
65Frequency limit exceededWait and retry later; avoid multiple attempts in short timeframe.
66Acquirer limit reachedEscalate to acquirer/support; retry only after confirmation.
67Card withheldDo not retry; request another method; in-store: follow procedure if applicable.
68Response not received or received too lateRetry once; if repeated, check acquirer/network status and escalate.
75Number of PIN attempts exceededSame as 38: do not retry; customer must contact issuer.
76Invalid AccountAsk customer to contact issuer; use another card/method.
77Issuer not participating in serviceUse another card or method; escalate if routing/regional issue suspected.
78Function not availableRemove/disable unsupported feature; verify transaction type and integration flags.
79Key validation errorCryptographic/config issue: escalate to support/acquirer with trace.
80Approved for purchase amount onlyIf you requested cash-back/extra: retry without it; otherwise proceed as approved.
81Unable to verify PINCard-present: retry; if repeated, customer contacts issuer or use another method.
82Invalid CVVRe-enter CVV; if repeated, use another card.
83Not refusedTreat as non-decline / ambiguous: verify final status via retrieval; escalate if inconsistent.
84Invalid transaction lifecycleCheck auth/capture/void/refund ordering and timing; fix integration logic.
85No key to useCryptographic/config issue: escalate to support/acquirer.
86KME synchronization errorCryptographic sync issue: escalate with logs, trace, timestamps.
87PIN errorCard-present: retry; if repeated, customer contacts issuer.
88MAC synchronization errorCryptographic sync issue: escalate with logs, trace, timestamps.
89Security violationStop retries; escalate to support/acquirer; review fraud/security configuration.
90Temporary system shutdownRetry later; if persistent, treat as incident and escalate.
91Card transmitter inaccessibleRetry later; if widespread, treat as issuer/network outage.
92Card issuer unknownUse another card; if repeated across cards, suspect routing/config and escalate.
93Transacation cannot be finalizedRetry later once; if persistent, escalate with trace/logs.
94Duplicate requestEnsure idempotency / unique references; do not resend the exact same request.
95Contact acquirerEscalate to support/acquirer with transaction reference and timestamps.
96System malfunctionRetry later; if repeated, escalate with traces/logs.
97No Funds TransferNot typical for purchase flows; verify transaction type; escalate if unexpected.
98Duplicate ReversalDo not repeat reversal; verify original reversal status; ensure idempotency.
99Duplicate TransactionCheck idempotency and client retries; ensure unique transaction identifiers.
N3Cash Service Not AvailableNot applicable to purchase flows; ignore unless supporting cash services.
N4Cash Back Request Exceeds Issuer LimitReduce cash-back amount or remove cash-back.
N7Declined for CVV2 failureRe-enter CVV; if repeated, use another card.
R0Stop Payment OrderDo not retry; customer must contact issuer.
R1Revocation of Authorisation OrderDo not retry; customer must contact issuer.
R3Revocation of all Authorisations OrderDo not retry; customer must contact issuer.
A0Withdrawal in contact modeNot applicable to e-commerce purchase flows; verify transaction type; remove cash/withdrawal feature if not supported.
A1VADS fallbackRouting/fallback case: verify gateway/acquirer configuration; escalate if frequent or unexpected.
000ApprovedProceed with capture / fulfillment.
001Approve with IDIf supported: apply ID verification; otherwise treat as approved.
002Partial approval (prepaid cards only)Handle partial approval if supported; otherwise request another method.
100RejectGeneric decline: avoid retry loops; ask customer to contact issuer or use another method.
101Card expired / invalid expiry dateCustomer must use another card.
106PIN attempts exceededDo not retry; customer must contact issuer.
107Please call issuerCustomer must contact issuer; retry only after confirmation.
109Invalid merchantCheck merchant configuration and routing; escalate to support/acquirer.
110Invalid amountValidate amount format/limits; retry after correction.
111Invalid account / Invalid MICR (traveler’s check)Ask customer to contact issuer; use another card/method.
115Requested function not supportedDisable unsupported feature/flag; verify transaction type.
117Invalid PINCard-present: retry carefully; if repeated, customer contacts issuer.
119Cardholder not registered / not authorizedCustomer must contact issuer; use another method.
122Invalid card security code (alias CID, 4DBC, 4CSC)Re-enter security code; if repeated, use another card.
125Invalid effective dateCheck date fields / terminal business date; escalate if applicable.
181Format errorCheck request formatting and fields; escalate with logs if persistent.
183Invalid currency codeVerify ISO currency code and acquirer configuration; correct and retry.
187Refuse – New card issuedCustomer must use another card; advise contacting issuer.
189Refuse – Merchant cancelled or closed / SECheck merchant status/configuration; escalate to support/acquirer.
200Refuse – Pick up cardDo not retry; request another method; in-store: follow procedure if applicable.
900Accepted – ATC synchronizationProceed but monitor; if repeated, escalate (potential chip/crypto sync issue).
909System malfunction (cryptographic error)Escalate to support/acquirer with trace, timestamps, and logs.
912Issuer not availableRetry later; if widespread, treat as issuer outage / incident.

L'établissement CentralPay

Articles

  • Certifications et agréments
  • Sécurité et hébergement
  • Engagements de disponibilité
  • Évolution de la plateforme
  • Glossaire 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 versements 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 API
Traitement des opérations de paiement
CPAY PORTALS
Portail d’inscription, client et marchand
99,9 %
sur une base annuelle
99,5 %
sur une base annuelle
Le critère d’atteinte de cette garantie correspond à la disponibilité de l’API de paiement.Le critère 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é.

Glossaire CentralPay

1. Les types d’acteurs

DésignationDescription
ActeurToute entité identifiée sur la plateforme CentralPay. Peut être un Profil Marchand, un Point de Vente, un établissement tiers, ou CentralPay.
Profil marchandLe Profil Marchand représente techniquement et opérationnellement un marchand dans la plateforme CentralPay. Il est le support de :
• Ses comptes : de paiement ou de monnaie électronique ;
• Son administration : accès API, profils utilisateurs, services disponibles ;
• Sa configuration technique : webhooks, notifications, points de vente, règles d’acceptation, comptes bancaires ;
• Son dossier réglementaire : KYC/KYB, LCB-FT, scoring de risque, contractualisation, grille tarifaire…

Le Profil Marchand correspond à l’objet API Merchant et est créé automatiquement après validation de son inscription (via l’objet API Merchant-Enrollment).
Marchand standardPersonne morale ou autoentreprise cliente de CentralPay, réalisant des opérations d’encaissement pour son propre compte lors de la vente de biens ou de services.
Peut être rattaché fonctionnellement à un Partenaire (Technique ou Intégrateur).
Dispose d’un Profil Marchand typé STANDARD.
Marchand PartenairePersonne morale cliente de CentralPay, disposant d’un Profil Marchand et pouvant relever de l’un des modèles suivants :
• Partenaire Technique : opère une solution mutualisée (ex. marketplace, plateforme SaaS) et dispose d’un ou plusieurs Points de Vente ouverts à son nom, auxquels des marchands standards peuvent être rattachés.
Dispose d’un Profil Marchand typé TECHNIQUE.
• Partenaire Intégrateur : intervient en soutien technique, via des accès délégués par les marchands standards, pour faciliter l’intégration et le RUN (sans mutualisation de point de vente au nom du partenaire).
Dispose d’un Profil Marchand typé INTEGRATEUR (le cas échéant).

Un Marchand Partenaire peut percevoir des commissions (selon modèle) et/ou être déclaré MOBSP pour accompagner l’entrée en relation des marchands.
Marchand MandatairePersonne morale cliente de CentralPay, agissant pour le compte de tiers, dans le cadre de l’un des statuts réglementaires suivants :
• Agent PSP : Agent de Prestataire de Services de Paiement de CentralPay, enregistré auprès de l’ACPR (Banque de France) et habilité à agir au nom et pour le compte de CentralPay dans un périmètre défini contractuellement (ex. opérations de débit/crédit et transferts pour compte de tiers).
Dispose d’un Profil Marchand typé AGENT.
• DME : Distributeur de Monnaie Électronique enregistré/déclaré par CentralPay auprès de l’ACPR (Banque de France) pour un projet impliquant l’émission, la distribution et l’échange de monnaie électronique (devises CUSTOM).
Dispose d’un Profil Marchand typé DME.
Sous-marchand / ParticipantPersonne morale ou physique cliente d’un Marchand Mandataire de CentralPay (Agent PSP ou DME).
• Sous-marchand : agit pour vendre des produits ou services, pour une activité LMNP,
• Participant : agit pour des besoins non commerciaux (crowdfunding, wallet personnel, projets collectifs…).
Dispose d’un Profil Marchand typé BASIC, avec un périmètre fonctionnel restreint.
ClientPersonne physique ou morale qui paie ou donne un ordre de paiement à un Marchand CentralPay (peut aussi être nommé porteur, payeur, débiteur).
Peut disposer ou non d’un Profil client (Customer).

Note : dans les documents réglementaires ou contractuels de CentralPay, le terme « Client » peut désigner le Marchand lui-même selon le contexte défini dans le document.
Profil clientReprésente un client enregistré par un Marchand dans la plateforme CentralPay.
Il est le support de :
• ses informations personnelles : nom, prénom, email, téléphone, raison sociale…
• ses moyens de paiement : cartes, mandats SEPA, IBAN, comptes bancaires…
• ses activités : demandes de paiement, historique de paiements…

Le Profil client correspond à l’objet API Customer.
Profils Utilisateur BOPersonnes physiques disposant d’un accès au Portail Marchand CentralPay pour consulter ou administrer un ou plusieurs Profils Marchand.
• Type Legal : représentant légal du Marchand.
• Type Natural : autre utilisateur habilité (finance, support, développement…).

Le Profil utilisateur BO correspond à l’entité API BO_user.
Profils Utilisateur APIEntité créée via la plateforme CentralPay permettant d’identifier l’utilisateur (personne ou système) réalisant des appels API sur un Profil Marchand.
Permet la traçabilité des actions et la gestion des autorisations.

Le Profil utilisateur API correspond à l’entité API api_user.
Point de Vente (ou POS)Représentation d’un site web, d’une boutique physique, ou d’une équipe de vente. Ils permettent de segmenter les opérations du Profil Marchand CentralPay à des fins :
• Techniques : pour réaliser des paramétrages différents par point de vente (notifications clients, notifications internes, nom d’expéditeur des emails de confirmation, logo affiché dans la page de paiement…)
• Administratives : pour limiter les droits de consultation ou de modification de vos profils utilisateurs BO à certains points de vente
• Comptables : pour filtrer les opérations par point de vente dans le Portail Marchand ou dans les exports de données

Le Point de vente correspond à l’objet API PointOfSale.

2. Les types de comptes

DésignationDescription
Compte de paiementCompte ouvert dans les livres de CentralPay au nom d’un Marchand. Ce compte est utilisé exclusivement pour la réalisation d’opérations de paiement (collecte de paiements en devises ISO, versement des fonds vers un compte bancaire…).

Il est représenté par l’objet Wallet type PS dans l’API CentralPay.
Compte de monnaie électroniqueCompte ouvert dans les livres de CentralPay au nom d’un Marchand. 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 type EM dans l’API CentralPay.
Compte de commissionCompte de paiement secondaire permettant d’isoler les flux de commissions et/ou certains prélèvements de frais (selon modèle).
Dans le cadre des modèles Partenaire/Mandataire, ce compte peut recevoir les commissions imputées aux transactions des marchands liés/participants, conformément aux règles contractuelles applicables.

Il est représenté par l’objet Wallet type CM dans l’API CentralPay.
Compte de réserveCompte de paiement secondaire permettant d’isoler des fonds de réserve CentralPay (pied de compte, collatéral ou réserve glissante). N’est pas autorisé à réaliser de versements sortants.

Il est représenté par l’objet Wallet type BM dans l’API CentralPay.
Compte de collecte « Agent »Compte de paiement ouvert dans les livres de CentralPay au nom d’un Agent. Il est dédié à la réception des fonds liés aux opérations initiées via le modèle Agent, avant leur ventilation / transfert vers les comptes de paiement des Marchands Participants. N’est pas autorisé à réaliser de versements sortants.

Il est représenté par l’objet Wallet type CL dans l’API CentralPay.
Compte de Traitement CentralPayLe Compte de Traitement désigne un mécanisme interne et transitoire utilisé par CentralPay pour recevoir, identifier et traiter temporairement des fonds liés à une opération de paiement, en vue de leur transmission au bénéficiaire final. Il n’est pas un compte de paiement ouvert pour un client, n’est mis à disposition d’aucun tiers et ne confère aucun droit de disposition.

Selon les implémentations techniques, ce mécanisme peut être matérialisé par des objets internes (ex. Wallet type TR) utilisés exclusivement par CentralPay pour le traitement opérationnel.

3. Les dénominations d’objets ou d’opérations

DésignationDescription
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 (selon les conditions contractuelles applicables).
Devises ISODevises conventionnelles aux normes ISO 4217 (exemple : EUR, USD, CHF, GBP…)
Devise CUSTOMDevise de monnaie électronique créée pour un Mandataire DME de CentralPay. La valeur de la devise CUSTOM est toujours adossée à celle d’une devise ISO (ex. EUR).
Instruction TechniqueDonnée / événement à finalité strictement technique et commerciale transmis à CentralPay (ex. références de commande, panier, commission, évènements logistiques). Une Instruction Technique n’est pas un ordre de paiement et ne déclenche aucun effet financier automatique : CentralPay reste seul décisionnaire du traitement et, le cas échéant, des mises à disposition de fonds.
Date de déblocageDate de mise à disposition différée pouvant être appliquée par CentralPay pour rendre des fonds utilisables par un bénéficiaire (ex. après livraison/expédition), selon la politique de risque et les règles applicables. Elle peut être déterminée à partir d’informations commerciales transmises, sans constituer une instruction de paiement.
Compte bancaireCompte bancaire externe lié à :
• un Profil Marchand pour réaliser des versements sortants (payout)
• ou à un Profil client pour réaliser des prélèvements SEPA ou des versements sortants.
Il est représenté par l’objet BankAccount dans l’API CentralPay.
Versement sortantVirement sortant d’un compte CentralPay vers un compte bancaire externe. Peut être réalisé par SEPA ou SWIFT.
Il est représenté par l’objet Payout dans l’API 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.
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.

Profils clients

Les profils clients (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 paiement (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 Marchand Compte Customers

Vos Customers disposent également d’un portail client leur permettant d’administrer les paiements réalisés avec votre entreprise :

Recette Portail Marchand – Customers
Production Portail Marchand – 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

Marchand, comptes et canaux de vente

Articles

  • Profil Marchandmerchant
  • Profils clientscustomer
  • Points de ventepointOfSale
  • Comptes de paiementwallet
  • Comptes de MEwallet

Profil Marchand

Le Profil Marchand représente techniquement et opérationnellement un Marchand dans la plateforme CentralPay.

Il est le support de :
• Ses comptes : de paiement ou de monnaie électronique ;
• Son administration : accès API, profils utilisateurs, services de paiement disponibles ;
• Sa configuration technique : webhooks, notifications, points de vente, règles d’acceptation, comptes bancaires ;
• Son dossier réglementaire : KYC/KYB, LCB-FT, scoring de risque, contractualisation, grille tarifaire…

Le Profil Marchand correspond à l’objet API Merchant et est créé automatiquement après validation de son inscription (via l’objet API Merchant-Enrollment).

1. Types de profils selon le modèle contractuel

Chaque type de Marchand est associé à un modèle contractuel précis.

Standard Type : STANDARD

Le Marchand standard est une entreprise ou un professionnel qui encaisse des paiements pour son propre compte. Il dispose d’un ou plusieurs comptes de paiement, et peut accéder aux services CentralPay via API ou via un partenaire.

👉 En savoir plus sur le modèle Marchand

Partenaire Intégrateur Type : INTEGRATOR

Le Partenaire Intégrateur accompagne plusieurs Marchands standards dans leur intégration technique avec CentralPay. Chaque Marchand standard 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.

  • Peut disposer d’un compte de paiement et d’un compte de commission pour ses propres besoins
  • Un point de vente distinct est créé pour chaque Marchand accompagné
  • Peut réaliser des appels API et actions techniques via les accès délégués par le Marchand (suivi d’Instructions Techniques, paramétrage, RUN), sans accès aux soldes ni pouvoir d’initier/modifier/exécuter une opération de paiement en son nom propre
  • CentralPay facture chaque Marchand directement

👉 En savoir plus sur le modèle Partenaire Intégrateur

Partenaire Intégrateur MOBSP Type : INTEGRATOR + MOBSP

Le Partenaire 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 standard, 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 Partenaire Intégrateur MOBSP

Partenaire Technique Type : TECHNIQUE

Le Partenaire Technique développe une solution mutualisée (ex. marketplace, plateforme SaaS) et opère depuis un ou plusieurs points de vente ouverts à son nom, auxquels des Marchands standards peuvent être rattachés. Il utilise ses propres accès API pour transmettre des données commerciales et suivre les opérations rattachées à ces points de vente, sans jamais disposer d’un pouvoir d’exécution sur les opérations de paiement.

  • Un ou plusieurs points de vente peuvent être utilisés pour regrouper les activités des marchands (ex. marketplace, plateforme SaaS)
  • Accès API CentralPay propre au Partenaire Technique
  • CentralPay facture le Partenaire Technique
  • Ne peut pas initier l’enrôlement au nom et pour le compte des marchands (sauf cadre MOBSP applicable)

👉 En savoir plus sur le modèle Partenaire Technique

Partenaire Technique MOBSP Type : TECHNIQUE + 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êmes droits 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

Mandataire DME Type : DME

Le Mandataire DME (Distributeur de Monnaie Électronique) transmet des instructions de chargement, de transfert ou de remboursement en monnaie électronique pour le compte de Participants. Il agit dans le cadre du modèle monnaie électronique (devises CUSTOM) et peut percevoir une commission sur les opérations, sans fournir de services de paiement régulés (ex. virement SEPA, prélèvement, carte).

👉 En savoir plus sur le modèle Mandataire DME

Mandataire Agent Type : AGENT

Le Mandataire Agent est un Agent de Prestataire de Services de Paiement (Agent PSP) enregistré auprès de l’ACPR. Il agit au nom et pour le compte de CentralPay dans un périmètre strictement défini contractuellement. Selon le modèle retenu (Agent simple / Agent collecteur / Agent délégataire), il peut notamment accompagner l’enrôlement, réaliser certaines diligences KYC/KYB de niveau 1, et/ou intervenir dans la collecte, la ventilation et la mise à disposition des fonds via les mécanismes prévus par CentralPay. CentralPay demeure responsable des services de paiement fournis et des contrôles réglementaires.

👉 En savoir plus sur le modèle Mandataire Agent

Participant Type : BASIC

Les Participants sont des personnes physiques ou morales clientes d’un Marchand Mandataire de CentralPay (Agent ou DME). Ils disposent d’un ou plusieurs comptes de paiement ou de monnaie électronique pour recevoir des fonds émis par le Mandataire, et peuvent accéder au portail Marchand pour consulter leurs opérations et gérer leurs versements sortants.

Ils agissent pour vendre des produits ou services, pour une activité LMNP, ou pour des besoins non commerciaux (crowdfunding, wallet personnel, projets collectifs…).

Les participants ouvrent des comptes chez CentralPay. L’entrée en relation peut être initiée et/ou accompagnée par le Marchand Mandataire, mais les services régulés restent fournis par CentralPay. Le cadre d’utilisation des comptes est défini par les documents CentralPay applicables (et, le cas échéant, par les CGU du Mandataire pour les conditions commerciales et les services qu’il fournit).

2. Paramétrage des emails de contact

Vous pouvez personnaliser les adresses email de contact associées à votre profil marchand pour que les notifications, relances ou échanges contractuels soient bien adressés aux bons interlocuteurs.

  • Email contact : référent principal du profil marchand
  • 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 profil marchand. Elles peuvent être modifiées à tout moment depuis le Portail Marchand.

Accès à la configuration des emails de contact :

Recette Portail Marchand
Production Portail Marchand

Profils clients

Les profils clients (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 paiement (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 Marchand Compte Customers

Vos Customers disposent également d’un portail client leur permettant d’administrer les paiements réalisés avec votre entreprise :

Recette Portail Marchand – Customers
Production Portail Marchand – 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 vos comptes 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 Marchand ou dans vos exports de données

Lors de la création de votre profil Marchand CentralPay, un premier point de vente est créé automatiquement. Vous pouvez ensuite vous rendre sur votre portail Marchand pour paramétrer ce dernier, ou en créer de nouveaux :

Recette Portail Marchand – Points de vente
Production Portail Marchand – 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 profil marchand (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 profil marchand, 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 Marchand 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 Marchand…)
    • 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 Marchand…)
    • 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 emails 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, versement 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 versements 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 profil Marchand CentralPay. Ainsi, chaque compte de paiement sera lié à un compte bancaire différent et adressera des versements 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 :

Recette Portail Marchand – Comptes de paiement
Production Portail Marchand – 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 mandataire AGENT de CentralPay, vous pouvez créer des comptes pour vos marchands en utilisant le service de demande d’enrôlement.

Comptes de ME

ℹ️ Uniquement réservé aux Mandataires DME et à leurs sous-marchands.

Les comptes de ME (Monnaie Électronique) sont utilisés pour stocker et échanger des fonds dans une devise CUSTOM (devise dédiée à un mandataire DME). Un mandataire DME peut demander la création de comptes de ME pour les sous-marchands 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 mandataire 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 :

Recette Portail Marchand – Comptes de monnaie électronique
Production Portail Marchand – 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 mandataire 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 mandataire DME de CentralPay, vous pouvez demander la création de comptes de ME pour vos sous-marchands.

Authentication 3DS 2.2

See more about 3DS 2.2

jQuery(document).ready( function($) { window.live_699ea29d5687f = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_3D-Secure 2.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29d5687f", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29d5687f.load(); });

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).

jQuery(document).ready( function($) { window.live_699ea29d56e51 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Card.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29d56e51", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29d56e51.load(); });

Déclaration Agent PSP (ACPR)

Rôle de l’ACPR

L’ACPR (Autorité de Contrôle Prudentiel et de Résolution), adossée à la Banque de France, tient le registre des prestataires régulés et de leurs agents. Dans le cadre d’un modèle Agent PSP, CentralPay (établissement agréé) constitue et dépose la notification/dossier d’enregistrement de l’Agent et demeure l’unique interlocuteur de l’ACPR.

Le futur Agent ne peut pas déposer de dossier directement auprès de l’ACPR : les échanges sont pilotés par CentralPay, avec le concours de l’Agent (transmission de pièces, réponses aux questions, éléments d’organisation).

Étapes de déclaration d’un Agent

ÉtapeDescription
1. Cadrage & pré-qualificationAnalyse du modèle, du périmètre fonctionnel et des responsabilités ; validation juridique & conformité côté CentralPay
2. Constitution du dossierCollecte des pièces société/dirigeants, éléments d’organisation (process, contrôles, sécurité), CGU Agent/Participants, prévisions d’activité
3. Dépôt / échanges ACPRDépôt réalisé par CentralPay ; réponses aux demandes complémentaires pilotées par CentralPay avec l’aide de l’Agent
4. Enregistrement & activationÀ l’issue de l’enregistrement sur le registre public, CentralPay peut activer l’Agent en production (avant cela, l’activité reste bloquée)

1. Responsabilités de l’Agent

En tant qu’Agent PSP, l’Agent agit au nom et pour le compte de CentralPay dans le périmètre défini contractuellement. CentralPay reste pleinement responsable de la fourniture des services de paiement et de la conformité réglementaire ; toutefois, l’Agent doit appliquer strictement les procédures et exigences opérationnelles fixées par CentralPay, notamment en matière de LCB-FT et de lutte contre la fraude.

L’Agent est notamment responsable de :

  • La compréhension de l’activité de ses marchands/Participants et de la cohérence économique des opérations initiées via son modèle
  • La mise en œuvre des dispositifs opérationnels attendus (process internes, contrôles, traçabilité, gestion des incidents) et du respect des consignes CentralPay
  • La lutte contre la fraude (détection, escalade, coopération) et le respect des obligations de vigilance dans le périmètre confié
  • La coopération avec CentralPay en cas de demande d’information (contrôles, audit, questions ACPR), et la transmission rapide des pièces demandées

L’Agent doit signer :

  • Un Contrat d’Agent PSP avec CentralPay (mandat / externalisation / supervision / flux)
  • Le CCSP (Contrat Cadre de Services de Paiement) applicable à l’Agent en sa qualité de client professionnel de CentralPay (accès plateforme, services souscrits)
  • Des CGU Agent (ou documentation équivalente) encadrant sa relation avec ses Participants, incluant les mentions nécessaires sur les parcours, la ventilation, les dates de déblocage et les éventuelles demandes de versements

Selon le périmètre retenu (et les annexes applicables), certaines fonctions peuvent être déléguées à l’Agent (ex. collecte et contrôles formels KYC/KYB). CentralPay reste seule décisionnaire de l’entrée en relation, de l’ouverture/maintien des comptes et des décisions réglementaires.

2. Devenir Partenaire Agent CentralPay

Le processus d’enregistrement d’un Agent dépend de la complétude du dossier, du niveau de délégation opérationnelle et des échanges avec l’ACPR. En pratique, il s’étale généralement sur plusieurs semaines et peut être prolongé si des pièces complémentaires sont demandées.

2.1. Résumé des étapes

ÉtapeDétails
1. Compréhension du modèle– Cadrage du périmètre et des responsabilités
– Description des flux & cas d’usage
– Validation par les équipes Juridique & Conformité de CentralPay
2. Offre commerciale– Présentation par CentralPay
– Alignement sur le périmètre (technique, opérationnel, conformité)
3. Contractualisation– Signature du Contrat d’Agent
– Signature/acceptation du CCSP applicable à l’Agent
4. Test & intégration– Accès sandbox
– Intégration technique & recette
– Vérification des parcours (onboarding/consentement/affichages)
5. Instruction ACPR– Collecte des éléments réglementaires
– Constitution et dépôt du dossier auprès de l’ACPR par CentralPay
– Gestion des questions / compléments
6. Mise en production– Activation en production après enregistrement
– Tests en environnement de recette / production encadrée

2.2. Pièces à fournir à CentralPay

Phase 1 – Pré-constitution du dossier

  • CGU Agent / documentation contractuelle Participants (parcours, consentements, information “agent”, ventilation/commission, dates de déblocage, modalités de remboursement)
  • Définition des activités régulées, services associés, modèle d’affaires
  • Organigramme (y compris répartition des effectifs par service) et description des rôles clés
  • Structure de l’actionnariat / gouvernance
  • Flux prévisionnels sur 3 ans confiés à CentralPay (volumes, montants, typologies)
  • Nombre d’enrôlements prévisionnels sur 3 ans
  • Cas de reprise de KYC existant (migration) le cas échéant

Phase 2 – Déclaration auprès du régulateur

  • Signature du Contrat d’Agent (préalable au dépôt du dossier)
  • CentralPay collecte et dépose les pièces suivantes (liste indicative) :
    • Kbis < 3 mois de la société et, le cas échéant, des sociétés de tête/dirigeantes
    • Statuts à jour signés
    • Pièces d’identité couleur des dirigeants
    • CV des dirigeants datés et signés
    • Casier judiciaire des dirigeants (si demandé)
    • Déclarations de non-condamnation des dirigeants
    • Répartition de la détention des parts / actionnariat
    • Kbis des personnes morales actionnaires (si applicable) + organigramme de groupe (si applicable)
    • PV d’AG récents (fusion, perte > 50% du capital, changement direction, etc.)
    • Registre des bénéficiaires effectifs (si demandé)

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 : généralement ~2 semaines à compter de la réception d’un dossier complet
  • Délai ACPR : variable ; peut aller jusqu’à ~2 mois, avec premières questions sous 30 jours en général

2.4. Fin d’instruction

  • L’Agent peut démarrer l’activité uniquement après enregistrement effectif (publication sur le registre public)
  • Avant enregistrement, CentralPay n’active pas l’Agent en production et peut maintenir les comptes de l’Agent bloqués (IN/OUT)
  • L’Agent est référencé dans les registres publics avec un numéro/identifiant d’enregistrement pouvant devoir figurer dans certaines communications/mentions

2.5. Particularité – Agents Télécom SVA (numéros surtaxés)

  • Obligation de fournir un récapitulatif des minutes par opérateur
  • Transmission du détail de répartition des encaissements (ventilation) à CentralPay
  • CentralPay met en place des contrôles complémentaires afin de s’assurer que les marchands/Participants sont correctement crédités

3. Traitement des flux agent

Cette section définit les règles applicables au traitement et au contrôle des flux financiers dans un modèle Agent. Elle précise les responsabilités, la structure des comptes et les contrôles complémentaires mis en œuvre afin de répondre aux exigences légales et prudentielles.

3.1. Responsabilité de l’établissement

Conformément au Code monétaire et financier (CMF), l’Agent agit au nom et pour le compte de CentralPay. CentralPay demeure pleinement responsable du respect des obligations réglementaires, notamment en matière de LCB-FT, de sécurité et de protection des fonds.

CentralPay met en place un dispositif de contrôle interne couvrant l’ensemble du cycle des flux, y compris ceux traités dans le cadre de ses Agents (supervision, auditabilité, traçabilité).

3.2. Comptes opérationnels des agents

Pour les besoins de ségrégation des flux, CentralPay met à disposition (dans ses livres) :

  • Compte de Collecte : compte de transit destiné à recevoir les fonds liés aux opérations initiées via le modèle Agent, et à permettre leur affectation/ventilation vers les comptes des Participants
  • Compte de Commission : destiné à recevoir la rémunération revenant à l’Agent (commissions) et à régler les frais dus à CentralPay
  • Compte de paiement Agent (optionnel) : destiné aux opérations courantes de l’Agent pour son compte propre (approvisionnement, paiement de factures SaaS, etc.), distinct des flux tiers et des commissions

3.3. Traitement des opérations

Lorsqu’un Agent initie une transaction pour le compte d’un ou plusieurs Participants :

  1. L’Agent transmet à CentralPay les informations nécessaires à la ventilation (part des Participants, commission Agent, références), soit directement dans la transaction, soit au plus tard en fin de journée via un traitement par lot lorsque cela est objectivement nécessaire.
  2. CentralPay exécute ensuite, sous sa responsabilité, les opérations d’affectation/ventilation et, le cas échéant, les mouvements nécessaires (dont la commission vers le compte de commission), conformément au cadre contractuel et aux contrôles réglementaires.

Le Compte de Collecte doit rester un compte de transit : l’Agent ne doit pas conserver passivement des fonds de tiers au-delà des délais strictement nécessaires au traitement (pas de “trésorerie flottante”).

Les modalités de versement sortant (Payout) sont encadrées par CentralPay ; le Compte de Collecte n’a pas vocation à servir de compte de versement sortant “libre”.

3.4. Dates de déblocage et montants prévisionnels

Fonctionnement

Selon le modèle contractuel, l’Agent peut transmettre ou paramétrer (en qualité d’intermédiaire mandaté par le Participant) une date de déblocage (endpoint API : EscrowDate) correspondant à un évènement contractuel objectivable (ex. livraison/expédition/fin de prestation). Cette date ne produit aucun effet financier automatique : CentralPay demeure seule décisionnaire de la mise à disposition des fonds (acceptation, refus, report, encadrement).

Jusqu’à la date de déblocage :

  • Les fonds restent protégés et indisponibles (ni accessibles à l’Agent, ni utilisables par le Participant)
  • Le Participant peut visualiser l’opération sous forme d’opération à venir ou de montant prévisionnel, avec affichage de la date de disponibilité, sans constituer un crédit au solde disponible

Conditions de conformité

L’usage des dates de déblocage est autorisé uniquement si :

  • Information claire : l’Agent doit expliquer à ses Participants comment fonctionne la date de déblocage (principes, délais, exceptions).
  • Affichage transparent : l’interface Participant doit indiquer la date de l’opération, la date de disponibilité prévue et un statut “indisponible avant cette date”.
  • Mentions dans les CGU Agent : les CGU signées par les Participants doivent préciser :
    • Que la date de déblocage correspond à la date contractuelle à laquelle les fonds deviennent utilisables.
    • Qu’il est impossible pour le Participant d’utiliser ces fonds avant cette date.
    • Que CentralPay peut refuser, différer, suspendre ou encadrer la mise à disposition au regard de ses obligations réglementaires, de sa politique de risque et des règles des réseaux de paiement.
  • Gestion des exceptions : en cas d’annulation, de remboursement, d’impayé ou de litige :
    • Si la transaction source est annulée/remboursée, les fonds ne seront pas mis à disposition.
    • En cas d’impayé (ex. chargeback carte) ou de risque, CentralPay peut retenir/ajuster les montants en attente ou compenser lors de règlements ultérieurs.
    • La date de déblocage peut être reportée (litige/incident) ; le Participant doit être informé via son interface/notifications.

Ce mécanisme ne constitue ni un séquestre au sens du droit civil, ni un service de conservation fiduciaire : il s’agit d’une mise à disposition différée sous contrôle exclusif de CentralPay.

3.5. Gestion des versements sortants

Fonctionnement

CentralPay peut mettre à disposition des Participants (et, selon les habilitations, à l’Agent agissant comme intermédiaire mandaté) différents modes de gestion des versements sortants :

  • Versements sortants automatisés (paramétrage de règles/plannings, lorsque prévu contractuellement)
  • Versements sortants ponctuels (demande via portail/API selon les droits accordés)

Conditions de conformité

Lorsque l’Agent est autorisé à transmettre des demandes de versement sortant pour le compte de ses Participants, il doit recueillir leur consentement et décrire clairement le mode de fonctionnement dans les CGU Agent. CentralPay demeure seule responsable de l’exécution et peut refuser, suspendre ou encadrer ces demandes conformément à ses obligations.

À retenir

Le dispositif présenté garantit :
- La séparation stricte des flux tiers / commissions / compte propre
- L’absence de droit de disposition de l’Agent sur les fonds de tiers
- La traçabilité complète des opérations (auditabilité)
- La supervision active par CentralPay
- La conformité aux exigences du CMF et aux attentes de supervision

Le respect de ce dispositif est obligatoire. Toute anomalie (fraude, incident, incohérence de ventilation, non-respect des procédures) doit être signalée immédiatement à votre Account Manager CentralPay.

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 sous-marchands 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 mandataire 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 mandataire 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

  1. Compréhension du modèle
    • Explication des services apportés par le mandataire
    • Définition de son modèle d’affaires
    • Validation par le service Risque & Conformité de CentralPay
  2. Offre Commerciale
    • Présentation
  3. Validation
    • Validation du mandataire par le service Risque & Conformité de CentralPay
    • Validation de la proposition commerciale et des conditions tarifaires par le mandataire
  4. Test & Intégration
    • Mise en place de la sandbox
    • Réunion de lancement de projet avec l’équipe technique
    • Phase d’intégration technique
  5. Instruction du dossier ACPR
    • Collecte des éléments nécessaires à la constitution du dossier
    • Préparation du dossier
    • Présentation du dossier
  6. Mise en production
    • Validation de la recette
    • Mise en production

2.2. Pièces à fournir à CentralPay

Prochainement

Modèles contractuels

Articles

  • Marchand standard
  • Marchand Partenaire
  • Marchand Mandataire

Marchand standard

Le modèle Marchand standard 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 Profil Marchand CentralPay
    Un profil marchand standard contenant un ou plusieurs comptes de paiement dédiés à votre activité, avec IBAN individuel, suivi des opérations et des versements.
  • Les services liés au compte
    Outils de gestion, profils utilisateurs, accès API, notifications, reporting…
  • Le service d’encaissement Smart
    Centralisation de vos flux, routage automatisé, gestion des statuts et des versements.
  • Transactions par carte bancaire
    Acceptation Visa/Mastercard, 3D Secure, Apple Pay/Google Pay, gestion des remboursements et des contestations.
  • Transactions par virement
    Génération d’IBAN virtuels, notifications de réception, rapprochements automatiques.
  • Transactions par prélèvement SEPA
    Débits ponctuels ou récurrents, gestion des mandats, suivi des rejets.

2. Frais et commissions

Des commissions fixes et variables sont appliquées en fonction des opérations réalisées (transactions, versements, rejets, etc.). Vous pouvez consulter les tarifications publiques sur notre site.

  • 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 sur votre compte bancaire ou vous adresser une demande de virement complémentaire.

Marchand Partenaire

CentralPay propose deux modèles distincts pour les partenaires souhaitant accompagner des marchands CentralPay dans leur intégration technique : le Partenaire Technique et le Partenaire Intégrateur. Dans les deux cas, les marchands restent en relation contractuelle directe avec CentralPay ; les modalités d’accès API, de mutualisation et de facturation diffèrent selon le modèle.

Selon la nature de leur activité, ces partenaires peuvent également être immatriculés à l’ORIAS en qualité d’IOBSP (mandataire – “MOBSP”) afin d’encadrer juridiquement certaines activités de présentation et d’accompagnement des marchands lors de leur entrée en relation avec CentralPay. Ce statut ne confère aucun droit d’accès aux fonds ni aucun pouvoir d’exécution d’opérations de paiement.

1. Partenaire Intégrateur

Le Partenaire Intégrateur est un prestataire technique mandaté par un ou plusieurs marchands standards. Il intervient en leur nom et pour leur compte, afin de faciliter leur connexion aux services CentralPay.

Chaque marchand standard dispose de son propre point de vente (POS), de son propre profil Marchand CentralPay, et signe directement ses documents de souscription et son contrat (CCSP) avec CentralPay. L’Intégrateur ne détient aucun droit contractuel sur les comptes ou fonds du marchand.

1.1. Responsabilités et fonctionnement

  • L’Intégrateur utilise les accès API délégués par chaque marchand (identifiants dédiés “Intégrateur”), dans le cadre d’un mandat contractuel entre l’Intégrateur et le marchand
  • Il peut réaliser des actions techniques nécessaires à l’intégration et au RUN (paramétrage, suivi d’Instructions Techniques, maintenance), exclusivement via ces accès, sans pouvoir consulter les soldes ni initier / modifier / annuler une opération de paiement
  • Les parcours sont généralement réalisés en “1 pour 1” : un client (payeur) règle un seul marchand, chaque marchand conservant son environnement et ses accès propres

1.2. Facturation

  • Chaque marchand est facturé directement par CentralPay au titre des services souscrits dans son CCSP
  • Le Partenaire Intégrateur n’intervient à aucun moment dans les flux financiers

1.3. Pour aller plus loin sur le modèle d’Intégrateur

  • Le Partenaire Intégrateur intervient exclusivement en soutien technique des marchands standards, 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 profil Marchand CentralPay : encaissements, versements, solde, paramétrage des accès API, gestion documentaire et contractuelle
  • CentralPay peut mettre à disposition de l’intégrateur un accès portail strictement limité à l’administration technique (suivi d’Instructions Techniques, paramétrages, opérations nécessaires au RUN). Cet accès n’autorise pas la consultation des soldes, ni la manipulation de transactions financières, ni l’initiation/modification/annulation d’opérations de paiement, ni la modification d’IBAN ou de paramètres financiers
  • Pour permettre la connexion, le marchand délègue à l’intégrateur des identifiants dédiés, avec des droits strictement limités et révocables à tout moment. Toutes les actions techniques sont réalisées via ces identifiants, sous la responsabilité du marchand
  • Si le Partenaire Intégrateur est immatriculé à l’ORIAS en qualité d’IOBSP (mandataire – “MOBSP”) et qu’un cadre contractuel distinct le prévoit, il peut accompagner le marchand dans son entrée en relation (ex. : transmission d’un lien d’inscription, assistance à la constitution du dossier). CentralPay reste seule décisionnaire de l’entrée en relation, de l’ouverture de compte et des contrôles réglementaires
  • À défaut, le Partenaire Intégrateur peut orienter le marchand vers CentralPay pour toute question contractuelle, tarifaire ou réglementaire liée aux services de paiement

2. Partenaire Technique

Le Partenaire Technique est un acteur qui développe une solution mutualisée (ex. : marketplace, plateforme SaaS), à destination de plusieurs marchands standards. Il opère depuis un ou plusieurs points de vente ouverts à son nom dans CentralPay, auxquels des marchands peuvent être rattachés.

Les opérations sont traitées par CentralPay au moyen d’un mécanisme interne de “Compte de Traitement” (utilisé par CentralPay pour recevoir et traiter temporairement les fonds en vue de leur transmission au bénéficiaire final). Le Partenaire Technique n’y dispose d’aucun droit de disposition : il transmet uniquement des données commerciales et conserve une visibilité sur les flux rattachés à ses points de vente, sans jamais pouvoir déclencher un transfert.

2.1. Responsabilités et fonctionnement

  • Le Partenaire Technique dispose de ses propres accès API délivrés par CentralPay
  • Il peut transmettre des Instructions Techniques (données commerciales, panier, commission, références, évènements logistiques…), et suivre les transactions rattachées aux marchands liés à ses points de vente
  • Il n’a aucun accès aux fonctionnalités de transfert (notamment l’endpoint transfer) et ne peut pas accéder aux soldes ni effectuer de versements : CentralPay décide et exécute les opérations et mises à disposition de fonds
  • Dans ce cadre, CentralPay peut gérer des paiements en mode “1 pour X” : un client (payeur) peut régler plusieurs marchands simultanément, CentralPay assurant ensuite la ventilation/mise à disposition au bénéfice des marchands

2.2. Facturation

  • Le Partenaire Technique est facturé par CentralPay en fonction des opérations réalisées via son (ou ses) point(s) de vente, conformément aux conditions prévues au CCSP et aux documents de souscription applicables
  • Lorsqu’une commission est prévue, CentralPay peut, sur la base des données commerciales transmises et selon les règles contractuelles, ventiler les flux : la part de commission est alors créditée sur le compte de commission du Partenaire Technique, sans que celui-ci ne détienne de fonds de tiers

Pour aller plus loin sur le modèle de 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 de marchands standards associés
  • Chaque marchand associé contracte directement avec CentralPay (CCSP et documents de souscription) et dispose de son propre profil Marchand CentralPay
  • Le Partenaire Technique transmet à CentralPay les données commerciales des transactions (montant commercial, références, commission, évènements logistiques…). Ces données ne déclenchent aucun effet financier automatique : CentralPay analyse, contrôle, puis décide de traiter l’opération et d’initier les mises à disposition nécessaires
  • CentralPay peut décider d’appliquer une retenue temporaire et/ou une date de déblocage pour la mise à disposition des fonds au bénéfice d’un marchand (ex. : jusqu’à une livraison/expédition), selon sa politique de risque, les règles des réseaux et ses obligations réglementaires
  • Le Partenaire Technique ne détient jamais de fonds de tiers, ne donne aucun ordre de paiement, et ne peut intervenir dans les versements ou la tenue de compte. Il n’agit ni pour compte de tiers ni au nom de CentralPay
  • L’accès du Partenaire Technique est limité à une vue et à des fonctionnalités strictement nécessaires à la transmission et au suivi d’Instructions Techniques ; il n’existe aucun accès au “Compte de Traitement” en tant que compte (pas de droit d’exécution, pas de droit de disposition, pas d’accès aux soldes)
  • En cas d’immatriculation ORIAS en qualité d’IOBSP (mandataire – “MOBSP”) et si un cadre contractuel distinct le prévoit, le Partenaire Technique peut accompagner les marchands dans leur entrée en relation (transmission de lien d’inscription, assistance documentaire), sous réserve de validation préalable par CentralPay

3. Règles de conformité communes

Pour les deux modèles :

  • Le Partenaire n’est pas prestataire de services de paiement, ne dispose d’aucun pouvoir d’exécution d’opérations de paiement et ne détient aucun fonds de tiers dans le cadre des services de paiement
  • Les comptes, la mise à disposition des fonds, les versements et la protection des fonds sont gérés et encadrés par CentralPay, en sa qualité de PSP
  • Aucune délégation réglementaire d’exécution de service de paiement (type agent PSP) n’est accordée à ces partenaires

3.1. Relation contractuelle avec les marchands

Le Partenaire (technique ou intégrateur) conserve sa propre relation commerciale avec ses utilisateurs et reste responsable des services proposés sur sa plateforme. Il définit librement les conditions générales d’utilisation applicables à ses services.

De leur côté, les marchands associés :

  • Ouvrent leur propre profil Marchand CentralPay, lors d’un parcours d’enrôlement individualisé
  • Signent directement avec CentralPay le CCSP et les documents de souscription applicables (dont la désignation éventuelle d’un partenaire)
  • Reconnaissent que le partenaire pourra réaliser certaines actions techniques dans le cadre de son intégration (ex. : transmission d’une commande, remontée de panier, suivi d’Instructions Techniques), sans que cela ne constitue un ordre de paiement ni un accès aux fonds

CentralPay agit alors directement auprès du marchand associé pour :

  • la création et la gestion de son compte (signature électronique, affectation des POS, rattachement au partenaire)
  • le traitement réglementaire des justificatifs transmis (KYC/KYB, lutte contre le blanchiment et le financement du terrorisme)
  • la mise à jour documentaire ou les vérifications complémentaires nécessaires à la bonne exécution des services de paiement

L’ensemble de cette organisation repose sur un dispositif contractuel strictement balisé :

  • Le partenaire signe un contrat dédié avec CentralPay, encadrant son rôle et ses droits d’accès (API/portail) et, le cas échéant, les modalités de commissionnement
  • Les marchands associés signent directement leurs documents contractuels CentralPay (CCSP et souscription), dans lesquels leur association au partenaire peut être précisée
  • Les conditions générales du partenaire s’appliquent uniquement à l’usage de sa propre plateforme. Elles ne peuvent ni interférer avec les services de paiement CentralPay, ni se substituer aux documents contractuels CentralPay

4. Déclaration ORIAS (IOBSP / “MOBSP”)

Un Partenaire Intégrateur ou un Partenaire Technique peut, si son activité le nécessite, être immatriculé à l’ORIAS en qualité d’IOBSP (mandataire – “MOBSP”). Ce statut est distinct de celui d’agent de prestataire de services de paiement (au sens de l’article L.523-1 du Code monétaire et financier).

Cette immatriculation peut permettre, selon le cadre contractuel applicable :

  • De présenter les services de CentralPay et d’assister le marchand dans ses démarches d’entrée en relation
  • D’accompagner la constitution du dossier (sans jamais se substituer aux contrôles réglementaires réalisés par CentralPay)

Ce statut ne modifie en rien les restrictions précédemment énoncées : il ne confère aucun droit sur les fonds et aucun pouvoir d’exécution d’opérations de paiement. CentralPay demeure seul responsable de l’entrée en relation, des contrôles réglementaires et de l’exécution des services de paiement.

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 :

  1. Envoyez un e-mail à notre service client qui inclut votre raison sociale et votre numéro SIREN
  2. 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

  1. Allez sur le site de l’ORIAS
  2. Faites défiler vers le bas jusqu’à voir la section Comment ça marche ?
  3. Cliquez sur S’inscrire

Vous serez redirigé vers le formulaire d’inscription.

2.2. Saisir les informations

  1. Entrez votre numéro SIREN
  2. Saisissez les informations sur votre entreprise. Assurez-vous de vous inscrire en tant que personne morale / entité juridique
  3. Saisissez les informations de votre représentant légal
  4. Saisissez les coordonnées de votre représentant légal
  5. Saisissez les coordonnées de votre entreprise, y compris votre site web si vous en avez un
  6. Entrez l’adresse de votre entreprise
  7. 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.

  1. Retournez sur le site de l’ORIAS
  2. Cliquez sur Connexion / Login
  3. Saisissez votre identifiant et votre mot de passe provisoire depuis votre email
  4. 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

  1. Cliquez sur Nouvelle inscription pour démarrer votre inscription, un formulaire apparaît
  2. Choisissez Activité IOB
  3. Choisissez ensuite Mandataire non-exclusif en opérations de banque et en services de paiement (MOBSP)
  4. Cliquez sur Soumettre

3.2. Fournissez des informations complémentaires

  1. 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.
  2. Pour la première question, choisissez la réponse : Je déclare que l’on ne me confie pas de fonds
  3. 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
  4. 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
  5. Cliquez sur Aller à l’étape « Pièces justificatives »

3.3. Fournissez vos documents justificatifs

  1. Soumettez votre KBIS
  2. Soumettez votre mandat d’attestation, qui est le certificat de mandat de l’étape 1.1
  3. Soumettez votre Capacité professionnelle pour « vous » (Niveau I IOBSP), qui constitue votre preuve d’aptitude professionnelle de l’étape 1.2.
  4. Cliquez sur Aller à l’étape suivante

3.4. Payez votre inscription

La dernière étape consiste à payer votre inscription.

  1. 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
  2. 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)
  3. Après avoir payé, cliquez sur Télécharger la facture pour télécharger votre reçu
  4. Cliquez sur Terminer la demande d’inscription pour finaliser votre inscription
  5. 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.

Marchand Mandataire

Agent de Prestataire de Services de Paiement (Agent PSP) ou Distributeur de Monnaie Électronique (DME)

Certains projets nécessitent un cadre réglementaire spécifique permettant à des mandataires d’agir au nom et pour le compte de CentralPay, établissement agréé et supervisé par l’ACPR. Deux statuts principaux peuvent être mobilisés en France :

  • L’Agent de Prestataire de Services de Paiement (Agent PSP), pour les projets nécessitant une gestion active des flux de paiement (encaissements, transferts, versements), dans le strict cadre d’un mandat et sous la responsabilité de CentralPay
  • Le Distributeur de Monnaie Électronique (DME), pour des projets reposant sur des mécanismes de valeur stockée / monnaie électronique (plateformes C2C, titres prépayés, réseaux fermés, etc.), dans le cadre d’un contrat de distribution

Ces modèles peuvent offrir une autonomie opérationnelle importante au mandataire, mais s’accompagnent de contraintes réglementaires fortes et d’une supervision permanente, sous la responsabilité de CentralPay.

1. Agent de Prestataire de Services de Paiement (Agent PSP)

1.1. Cas d’usage typiques

  • Plateformes B2B avec flux financiers complexes
  • Outils de gestion financière ou de trésorerie pour tiers
  • Solutions SaaS intégrant l’encaissement et la mise à disposition de fonds à des bénéficiaires

1.2. 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, au nom et pour le compte de CentralPay, dans les limites du mandat et des droits techniques configurés.

Fonctionnalités (selon périmètre contractuel et habilitations) :

  • Mise en relation commerciale et promotion des services CentralPay auprès des utilisateurs finaux (les “Participants”)
  • Accompagnement des Participants à l’ouverture de comptes CentralPay (parcours CentralPay et/ou parcours piloté par l’Agent, selon modèle retenu)
  • Ouverture, au nom de l’Agent, de comptes techniques dédiés à la ségrégation des flux (ex. compte de collecte et compte de commission), sans que l’Agent ne devienne propriétaire des fonds des Participants
  • Transmission à CentralPay des demandes/instructions nécessaires à la bonne exécution des services (ex. affectation des fonds, demandes de versement, demandes de remboursement), CentralPay restant seul exécutant
  • Gestion du support de premier niveau (N1) et traitement opérationnel défini comme prestation externalisée, avec escalade vers CentralPay lorsque requis

1.3. Les 3 options du modèle Agent (délégation KYC/KYB)

Le modèle Agent de CentralPay prévoit trois niveaux de délégation en matière d’inscription et de contrôles KYC/KYB. Une seule option est applicable à la fois, et le niveau retenu est formalisé contractuellement :

  • Option A – Agent simple (absence de délégation de contrôle) : l’Agent agit comme Agent PSP déclaré mais sans délégation KYC/KYB. Il se limite à la mise en relation commerciale et oriente les Participants vers les parcours/outils fournis par CentralPay. Il ne reçoit aucun mandat pour collecter des pièces justificatives ni effectuer des contrôles.
  • Option B – Agent collecteur (délégation de la complétude administrative) : l’Agent est mandaté pour constituer le dossier administratif du Participant pour le compte de CentralPay. Il collecte les pièces et réalise des vérifications strictement formelles de complétude (lisibilité, validité apparente, cohérence documentaire). Il ne réalise pas d’analyse de risque, ni filtrage sanctions/PPE, ni analyse approfondie ; la décision d’entrée en relation demeure celle de CentralPay.
  • Option C – Agent délégataire de contrôle (délégation de niveau 1) : option réservée aux Agents disposant d’une organisation conformité dédiée et expressément validée par CentralPay. L’Agent peut collecter les pièces KYC/KYB, vérifier la complétude/cohérence et assurer un contrôle de vigilance de niveau 1 exclusivement formel et administratif. Il peut également participer au traitement des alertes de niveau 1 (collecte/qualification administrative/transmission), selon des procédures strictes. CentralPay conserve la décision finale et peut révoquer l’option à tout moment en cas de défaillance.

1.4. CentralPay reste responsable

  • CentralPay reste pleinement responsable des services fournis aux Participants
  • L’Agent agit dans le strict cadre du mandat qui lui est confié, et selon les habilitations techniques mises en place
  • Toute activité réalisée via la plateforme est auditable, traçable et documentée

1.5. Contraintes réglementaires

  • Signature d’un contrat d’Agent et de ses documents associés
  • Enregistrement officiel en tant qu’Agent sur le registre de l’ACPR (via CentralPay)
  • Évaluation de la capacité organisationnelle du mandataire et exigences renforcées (conformité, sécurité, confidentialité, continuité, contrôle interne)
  • Reporting périodique à CentralPay (volume d’activité, incidents, qualité de service) et possibilité d’audit sur pièce ou sur site
  • Formations obligatoires des équipes opérationnelles, selon le périmètre de délégation

2. Distributeur de Monnaie Électronique (DME)

2.1. Cas d’usage typiques

  • 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

2.2. Rôle du DME

Le DME agit pour le compte de CentralPay dans la mise à disposition et la gestion opérationnelle de la monnaie électronique, dans les limites prévues par le contrat de distribution et les règles définies par CentralPay.

Fonctionnalités :

  • Mise en relation de CentralPay avec les utilisateurs finaux (les “sous-marchands” / utilisateurs de monnaie électronique)
  • Transmission à CentralPay des instructions de chargement (montant, bénéficiaire, commission), CentralPay restant seul émetteur/exécutant
  • Visualisation et suivi des opérations via un dispositif de suivi dédié (ex. vue consolidée / compte centralisateur selon modèle), sans droit de disposition sur les fonds
  • Transmission des demandes/instructions permettant la circulation de monnaie électronique entre utilisateurs dans un cadre défini (réseau fermé, règles contractuelles), sous contrôle de CentralPay
  • Transmission des demandes de remboursement de monnaie électronique à la demande de l’utilisateur, selon les règles applicables
  • Détention d’un compte de commission pour percevoir les frais définis dans ses CGU

2.3. Limites fonctionnelles

  • Le DME ne détient jamais les fonds : il agit comme intermédiaire et ne peut pas conserver, stocker ou utiliser les fonds collectés
  • Il n’est pas autorisé à créer/émettre lui-même de la monnaie électronique
  • Il ne peut pas offrir de services de paiement non explicitement autorisés dans le cadre contractuel défini par CentralPay
  • Il ne peut pas sous-traiter son activité, sauf accord explicite de CentralPay

2.4. Contraintes réglementaires

  • Signature d’un contrat de distribution avec CentralPay
  • Déclaration / formalités de mise en conformité réalisées sous l’initiative et la responsabilité de CentralPay, selon la réglementation applicable
  • 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 / des habilitations
    • Reporting régulier sur l’activité
    • Formation obligatoire des équipes du DME
    • Validation des CGU utilisées auprès des utilisateurs

Déclaration Agent PSP (ACPR)

Rôle de l’ACPR

L’ACPR (Autorité de Contrôle Prudentiel et de Résolution), adossée à la Banque de France, tient le registre des prestataires régulés et de leurs agents. Dans le cadre d’un modèle Agent PSP, CentralPay (établissement agréé) constitue et dépose la notification/dossier d’enregistrement de l’Agent et demeure l’unique interlocuteur de l’ACPR.

Le futur Agent ne peut pas déposer de dossier directement auprès de l’ACPR : les échanges sont pilotés par CentralPay, avec le concours de l’Agent (transmission de pièces, réponses aux questions, éléments d’organisation).

Étapes de déclaration d’un Agent

ÉtapeDescription
1. Cadrage & pré-qualificationAnalyse du modèle, du périmètre fonctionnel et des responsabilités ; validation juridique & conformité côté CentralPay
2. Constitution du dossierCollecte des pièces société/dirigeants, éléments d’organisation (process, contrôles, sécurité), CGU Agent/Participants, prévisions d’activité
3. Dépôt / échanges ACPRDépôt réalisé par CentralPay ; réponses aux demandes complémentaires pilotées par CentralPay avec l’aide de l’Agent
4. Enregistrement & activationÀ l’issue de l’enregistrement sur le registre public, CentralPay peut activer l’Agent en production (avant cela, l’activité reste bloquée)

1. Responsabilités de l’Agent

En tant qu’Agent PSP, l’Agent agit au nom et pour le compte de CentralPay dans le périmètre défini contractuellement. CentralPay reste pleinement responsable de la fourniture des services de paiement et de la conformité réglementaire ; toutefois, l’Agent doit appliquer strictement les procédures et exigences opérationnelles fixées par CentralPay, notamment en matière de LCB-FT et de lutte contre la fraude.

L’Agent est notamment responsable de :

  • La compréhension de l’activité de ses marchands/Participants et de la cohérence économique des opérations initiées via son modèle
  • La mise en œuvre des dispositifs opérationnels attendus (process internes, contrôles, traçabilité, gestion des incidents) et du respect des consignes CentralPay
  • La lutte contre la fraude (détection, escalade, coopération) et le respect des obligations de vigilance dans le périmètre confié
  • La coopération avec CentralPay en cas de demande d’information (contrôles, audit, questions ACPR), et la transmission rapide des pièces demandées

L’Agent doit signer :

  • Un Contrat d’Agent PSP avec CentralPay (mandat / externalisation / supervision / flux)
  • Le CCSP (Contrat Cadre de Services de Paiement) applicable à l’Agent en sa qualité de client professionnel de CentralPay (accès plateforme, services souscrits)
  • Des CGU Agent (ou documentation équivalente) encadrant sa relation avec ses Participants, incluant les mentions nécessaires sur les parcours, la ventilation, les dates de déblocage et les éventuelles demandes de versements

Selon le périmètre retenu (et les annexes applicables), certaines fonctions peuvent être déléguées à l’Agent (ex. collecte et contrôles formels KYC/KYB). CentralPay reste seule décisionnaire de l’entrée en relation, de l’ouverture/maintien des comptes et des décisions réglementaires.

2. Devenir Partenaire Agent CentralPay

Le processus d’enregistrement d’un Agent dépend de la complétude du dossier, du niveau de délégation opérationnelle et des échanges avec l’ACPR. En pratique, il s’étale généralement sur plusieurs semaines et peut être prolongé si des pièces complémentaires sont demandées.

2.1. Résumé des étapes

ÉtapeDétails
1. Compréhension du modèle– Cadrage du périmètre et des responsabilités
– Description des flux & cas d’usage
– Validation par les équipes Juridique & Conformité de CentralPay
2. Offre commerciale– Présentation par CentralPay
– Alignement sur le périmètre (technique, opérationnel, conformité)
3. Contractualisation– Signature du Contrat d’Agent
– Signature/acceptation du CCSP applicable à l’Agent
4. Test & intégration– Accès sandbox
– Intégration technique & recette
– Vérification des parcours (onboarding/consentement/affichages)
5. Instruction ACPR– Collecte des éléments réglementaires
– Constitution et dépôt du dossier auprès de l’ACPR par CentralPay
– Gestion des questions / compléments
6. Mise en production– Activation en production après enregistrement
– Tests en environnement de recette / production encadrée

2.2. Pièces à fournir à CentralPay

Phase 1 – Pré-constitution du dossier

  • CGU Agent / documentation contractuelle Participants (parcours, consentements, information “agent”, ventilation/commission, dates de déblocage, modalités de remboursement)
  • Définition des activités régulées, services associés, modèle d’affaires
  • Organigramme (y compris répartition des effectifs par service) et description des rôles clés
  • Structure de l’actionnariat / gouvernance
  • Flux prévisionnels sur 3 ans confiés à CentralPay (volumes, montants, typologies)
  • Nombre d’enrôlements prévisionnels sur 3 ans
  • Cas de reprise de KYC existant (migration) le cas échéant

Phase 2 – Déclaration auprès du régulateur

  • Signature du Contrat d’Agent (préalable au dépôt du dossier)
  • CentralPay collecte et dépose les pièces suivantes (liste indicative) :
    • Kbis < 3 mois de la société et, le cas échéant, des sociétés de tête/dirigeantes
    • Statuts à jour signés
    • Pièces d’identité couleur des dirigeants
    • CV des dirigeants datés et signés
    • Casier judiciaire des dirigeants (si demandé)
    • Déclarations de non-condamnation des dirigeants
    • Répartition de la détention des parts / actionnariat
    • Kbis des personnes morales actionnaires (si applicable) + organigramme de groupe (si applicable)
    • PV d’AG récents (fusion, perte > 50% du capital, changement direction, etc.)
    • Registre des bénéficiaires effectifs (si demandé)

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 : généralement ~2 semaines à compter de la réception d’un dossier complet
  • Délai ACPR : variable ; peut aller jusqu’à ~2 mois, avec premières questions sous 30 jours en général

2.4. Fin d’instruction

  • L’Agent peut démarrer l’activité uniquement après enregistrement effectif (publication sur le registre public)
  • Avant enregistrement, CentralPay n’active pas l’Agent en production et peut maintenir les comptes de l’Agent bloqués (IN/OUT)
  • L’Agent est référencé dans les registres publics avec un numéro/identifiant d’enregistrement pouvant devoir figurer dans certaines communications/mentions

2.5. Particularité – Agents Télécom SVA (numéros surtaxés)

  • Obligation de fournir un récapitulatif des minutes par opérateur
  • Transmission du détail de répartition des encaissements (ventilation) à CentralPay
  • CentralPay met en place des contrôles complémentaires afin de s’assurer que les marchands/Participants sont correctement crédités

3. Traitement des flux agent

Cette section définit les règles applicables au traitement et au contrôle des flux financiers dans un modèle Agent. Elle précise les responsabilités, la structure des comptes et les contrôles complémentaires mis en œuvre afin de répondre aux exigences légales et prudentielles.

3.1. Responsabilité de l’établissement

Conformément au Code monétaire et financier (CMF), l’Agent agit au nom et pour le compte de CentralPay. CentralPay demeure pleinement responsable du respect des obligations réglementaires, notamment en matière de LCB-FT, de sécurité et de protection des fonds.

CentralPay met en place un dispositif de contrôle interne couvrant l’ensemble du cycle des flux, y compris ceux traités dans le cadre de ses Agents (supervision, auditabilité, traçabilité).

3.2. Comptes opérationnels des agents

Pour les besoins de ségrégation des flux, CentralPay met à disposition (dans ses livres) :

  • Compte de Collecte : compte de transit destiné à recevoir les fonds liés aux opérations initiées via le modèle Agent, et à permettre leur affectation/ventilation vers les comptes des Participants
  • Compte de Commission : destiné à recevoir la rémunération revenant à l’Agent (commissions) et à régler les frais dus à CentralPay
  • Compte de paiement Agent (optionnel) : destiné aux opérations courantes de l’Agent pour son compte propre (approvisionnement, paiement de factures SaaS, etc.), distinct des flux tiers et des commissions

3.3. Traitement des opérations

Lorsqu’un Agent initie une transaction pour le compte d’un ou plusieurs Participants :

  1. L’Agent transmet à CentralPay les informations nécessaires à la ventilation (part des Participants, commission Agent, références), soit directement dans la transaction, soit au plus tard en fin de journée via un traitement par lot lorsque cela est objectivement nécessaire.
  2. CentralPay exécute ensuite, sous sa responsabilité, les opérations d’affectation/ventilation et, le cas échéant, les mouvements nécessaires (dont la commission vers le compte de commission), conformément au cadre contractuel et aux contrôles réglementaires.

Le Compte de Collecte doit rester un compte de transit : l’Agent ne doit pas conserver passivement des fonds de tiers au-delà des délais strictement nécessaires au traitement (pas de “trésorerie flottante”).

Les modalités de versement sortant (Payout) sont encadrées par CentralPay ; le Compte de Collecte n’a pas vocation à servir de compte de versement sortant “libre”.

3.4. Dates de déblocage et montants prévisionnels

Fonctionnement

Selon le modèle contractuel, l’Agent peut transmettre ou paramétrer (en qualité d’intermédiaire mandaté par le Participant) une date de déblocage (endpoint API : EscrowDate) correspondant à un évènement contractuel objectivable (ex. livraison/expédition/fin de prestation). Cette date ne produit aucun effet financier automatique : CentralPay demeure seule décisionnaire de la mise à disposition des fonds (acceptation, refus, report, encadrement).

Jusqu’à la date de déblocage :

  • Les fonds restent protégés et indisponibles (ni accessibles à l’Agent, ni utilisables par le Participant)
  • Le Participant peut visualiser l’opération sous forme d’opération à venir ou de montant prévisionnel, avec affichage de la date de disponibilité, sans constituer un crédit au solde disponible

Conditions de conformité

L’usage des dates de déblocage est autorisé uniquement si :

  • Information claire : l’Agent doit expliquer à ses Participants comment fonctionne la date de déblocage (principes, délais, exceptions).
  • Affichage transparent : l’interface Participant doit indiquer la date de l’opération, la date de disponibilité prévue et un statut “indisponible avant cette date”.
  • Mentions dans les CGU Agent : les CGU signées par les Participants doivent préciser :
    • Que la date de déblocage correspond à la date contractuelle à laquelle les fonds deviennent utilisables.
    • Qu’il est impossible pour le Participant d’utiliser ces fonds avant cette date.
    • Que CentralPay peut refuser, différer, suspendre ou encadrer la mise à disposition au regard de ses obligations réglementaires, de sa politique de risque et des règles des réseaux de paiement.
  • Gestion des exceptions : en cas d’annulation, de remboursement, d’impayé ou de litige :
    • Si la transaction source est annulée/remboursée, les fonds ne seront pas mis à disposition.
    • En cas d’impayé (ex. chargeback carte) ou de risque, CentralPay peut retenir/ajuster les montants en attente ou compenser lors de règlements ultérieurs.
    • La date de déblocage peut être reportée (litige/incident) ; le Participant doit être informé via son interface/notifications.

Ce mécanisme ne constitue ni un séquestre au sens du droit civil, ni un service de conservation fiduciaire : il s’agit d’une mise à disposition différée sous contrôle exclusif de CentralPay.

3.5. Gestion des versements sortants

Fonctionnement

CentralPay peut mettre à disposition des Participants (et, selon les habilitations, à l’Agent agissant comme intermédiaire mandaté) différents modes de gestion des versements sortants :

  • Versements sortants automatisés (paramétrage de règles/plannings, lorsque prévu contractuellement)
  • Versements sortants ponctuels (demande via portail/API selon les droits accordés)

Conditions de conformité

Lorsque l’Agent est autorisé à transmettre des demandes de versement sortant pour le compte de ses Participants, il doit recueillir leur consentement et décrire clairement le mode de fonctionnement dans les CGU Agent. CentralPay demeure seule responsable de l’exécution et peut refuser, suspendre ou encadrer ces demandes conformément à ses obligations.

À retenir

Le dispositif présenté garantit :
- La séparation stricte des flux tiers / commissions / compte propre
- L’absence de droit de disposition de l’Agent sur les fonds de tiers
- La traçabilité complète des opérations (auditabilité)
- La supervision active par CentralPay
- La conformité aux exigences du CMF et aux attentes de supervision

Le respect de ce dispositif est obligatoire. Toute anomalie (fraude, incident, incohérence de ventilation, non-respect des procédures) doit être signalée immédiatement à votre Account Manager CentralPay.

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 sous-marchands 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 mandataire 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 mandataire 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

  1. Compréhension du modèle
    • Explication des services apportés par le mandataire
    • Définition de son modèle d’affaires
    • Validation par le service Risque & Conformité de CentralPay
  2. Offre Commerciale
    • Présentation
  3. Validation
    • Validation du mandataire par le service Risque & Conformité de CentralPay
    • Validation de la proposition commerciale et des conditions tarifaires par le mandataire
  4. Test & Intégration
    • Mise en place de la sandbox
    • Réunion de lancement de projet avec l’équipe technique
    • Phase d’intégration technique
  5. Instruction du dossier ACPR
    • Collecte des éléments nécessaires à la constitution du dossier
    • Préparation du dossier
    • Présentation du dossier
  6. Mise en production
    • Validation de la recette
    • Mise en production

2.2. Pièces à fournir à CentralPay

Prochainement

Card Disputes - Bank Return codes

CB Scheme

CBDescriptionGIE DISPUTE
12Unauthorized TransactionTRANSACTION_NOT_AUTHORIZED
13Merchant Forced TransactionINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
14Unauthorized TransactionTRANSACTION_NOT_AUTHORIZED
15Guarantee by Card, by Day and by SIRETTRANSACTION_NOT_AUTHORIZED
16PIN Not VerifiedTRANSACTION_NOT_AUTHORIZED
17Invalid SIRETTRANSACTION_NOT_AUTHORIZED
18Certificate Not VerifiableTRANSACTION_NOT_AUTHORIZED
21Expired CardTRANSACTION_NOT_AUTHORIZED
22Late PresentmentINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
23Missing ImprintINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
25Exceeds Transaction Amount LimitINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
27Credit Not ProcessedTRANSACTION_NOT_AUTHORIZED
28Credit Processed as DebitTRANSACTION_NOT_AUTHORIZED
40Cancelled CardINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
41Documentation Not Provided or IllegibleINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
42Duplicate ProcessingDUPLICATE
43No Such Card NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
44Disputed AmountFRAUDULENT
45Disputed TransactionFRAUDULENT
46Merchant Bankruptcy or Judicial ReorganizationINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
61Merchant Suspended or TerminatedTRANSACTION_NOT_AUTHORIZED
62Transaction Not PermittedTRANSACTION_NOT_AUTHORIZED

Mastercard Scheme

MASTERCARDDescriptionGIE DISPUTE
4801Requested Transaction Data Not ReceivedTRANSACTION_NOT_AUTHORIZED
4802Cardholder Does Not Recognize TransactionTRANSACTION_NOT_AUTHORIZED
4807Cardholder Disputes a CreditFRAUDULENT
4808Authorization-Related ChargebackTRANSACTION_NOT_AUTHORIZED
4809Transaction Not AuthorizedFRAUDULENT
4810Fraud — Card-Not-Present EnvironmentFRAUDULENT
4522Goods or Services Not as Described / Not ReceivedOTHER
4811Credit Not ProcessedTRANSACTION_NOT_AUTHORIZED
4812Fraud — Card-Present EnvironmentTRANSACTION_NOT_AUTHORIZED
4831Goods or Services Not ReceivedINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4834Duplicate ProcessingDUPLICATE
4835Transaction Processing ErrorTRANSACTION_NOT_AUTHORIZED
4837No Cardholder Authorization (Lost/Stolen Card)FRAUDULENT
4840Fraudulent Processing of TransactionsFRAUDULENT
4841Cancelled Recurring TransactionTRANSACTION_NOT_AUTHORIZED
4842Counterfeit CardTRANSACTION_NOT_AUTHORIZED
4843Transaction Not Valid / Authorization ReversalTRANSACTION_NOT_AUTHORIZED
4846Non-Compliance With Authorization RequirementsINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4847Invalid Recurring TransactionINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4849Duplicate ProcessingDUPLICATE
4850ATM Cash Disbursement Not AuthorizedTRANSACTION_NOT_AUTHORIZED
4851Cardholder Disputes Transaction (Offline)TRANSACTION_NOT_AUTHORIZED
4853Cardholder Disputes Transaction Not as DescribedPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4854Exceeds Floor LimitPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4855Non-Receipt of Merchandise / ServicesPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4857Cardholder Disputes Transaction — Services Not ProvidedTRANSACTION_NOT_AUTHORIZED
4859Services Not Provided / Merchandise Not ReceivedTRANSACTION_NOT_AUTHORIZED
4860Transaction Processing ErrorTRANSACTION_NOT_AUTHORIZED
4862Cardholder Disputes Transaction — Invalid AuthorizationTRANSACTION_NOT_AUTHORIZED
4863Credit Not Processed / Cash Not DispensedFRAUDULENT
4870Chip Liability Shift — Counterfeit FraudFRAUDULENT
4871Chip Liability Shift — Lost/Stolen FraudFRAUDULENT
4880Late PresentmentTRANSACTION_NOT_AUTHORIZED
4890Currency Conversion DisputeTRANSACTION_NOT_AUTHORIZED
4900Defective/Not as Described MerchandiseOTHER
4901Credit Not ProcessedOTHER
4902Merchandise Not AcceptedOTHER
4903Incorrect Merchandise DeliveredOTHER
4905Services Not ProvidedOTHER
4908Cash Not DispensedOTHER

Visa Scheme

VISADescriptionGIE DISPUTE
10Fraud — Card-Absent EnvironmentFRAUDULENT
11Fraud — Card-Present EnvironmentTRANSACTION_NOT_AUTHORIZED
12Incorrect Transaction Amount or Account NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
13Fraudulent Transaction — No AuthorizationFRAUDULENT
30Services Not Provided or Merchandise Not ReceivedPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
41Credit Not ProcessedOTHER
53Not as Described or Defective MerchandiseOTHER
57Fraudulent Transaction — No Cardholder AuthorizationFRAUDULENT
62Counterfeit TransactionFRAUDULENT
70Processing ErrorOTHER
71Declined AuthorizationOTHER
72Cancelled TransactionOTHER
73Duplicate ProcessingOTHER
74Credit Not ProcessedOTHER
75Transaction Not RecognizedOTHER
76Incorrect Transaction Amount or Account NumberOTHER
77Non-Receipt of MerchandiseINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
78Fraudulent Transaction — No Cardholder AuthorizationOTHER
80Incorrect Transaction Amount or Account NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
81Fraudulent Transaction — Lost CardFRAUDULENT
82Fraudulent Transaction — Stolen CardDUPLICATE
83Fraudulent Transaction — Card-Absent EnvironmentFRAUDULENT
85Duplicate ProcessingOTHER
86Non-Compliance With AuthorizationDUPLICATE
93Late PresentmentFRAUDULENT
1001Fraud — Card-Absent Environment (E-Commerce)FRAUDULENT
1002Fraudulent Transaction — E-CommerceFRAUDULENT
1003Services Not Provided or Merchandise Not ReceivedFRAUDULENT
1004Fraudulent Transaction — No Cardholder AuthorizationFRAUDULENT
1005Not as Described or Defective MerchandiseFRAUDULENT
1101Processing Error — AuthorizationOTHER
1102Incorrect Transaction AmountOTHER
1103Exceeds Authorized AmountOTHER
1201Services Not Provided or Merchandise Not ReceivedOTHER
1202Not as Described Merchandise / ServiceOTHER
1203Recurring Transaction Not RecognizedOTHER
1204Defective MerchandiseINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
1205Services Not ProvidedINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
1206Non-Receipt of MerchandiseDUPLICATE
1207Duplicate ProcessingOTHER
1301Fraudulent Transaction — Card-Present EnvironmentPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
1302Fraudulent Transaction — No Cardholder AuthorizationOTHER
1303Fraudulent Transaction — Card-Absent EnvironmentOTHER
1304Duplicate ProcessingOTHER
1305Services Not Provided or Merchandise Not ReceivedOTHER
1306Credit Not ProcessedOTHER
1307Recurring Transaction Not RecognizedOTHER
1308Transaction Processing ErrorOTHER

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 vos comptes 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 Marchand ou dans vos exports de données

Lors de la création de votre profil Marchand CentralPay, un premier point de vente est créé automatiquement. Vous pouvez ensuite vous rendre sur votre portail Marchand pour paramétrer ce dernier, ou en créer de nouveaux :

Recette Portail Marchand – Points de vente
Production Portail Marchand – 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 profil marchand (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 profil marchand, 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 Marchand 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 Marchand…)
    • 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 Marchand…)
    • 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 emails 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 API
Traitement des opérations de paiement
CPAY PORTALS
Portail d’inscription, client et marchand
99,9 %
sur une base annuelle
99,5 %
sur une base annuelle
Le critère d’atteinte de cette garantie correspond à la disponibilité de l’API de paiement.Le critère de cette garantie correspond à la disponibilité des portails de l’environnement de production.

Automatisations, connexions et exports

Articles

  • Notifications email/sms
  • Services anti-fraude
  • Versement sortantpayout
  • 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)
  • Versement sortant (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 profil Marchand 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 :

Recette Portail Marchand
Production Portail Marchand

Accès paramétrage de templates SMS :

Recette Portail Marchand
Production Portail Marchand

Accès paramétrage de templates hooks :

Recette Portail Marchand
Production Portail Marchand

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

Recette Portail Marchand
Production Portail Marchand

Accès paramétrage du pied de page d’email (footer) :

Recette Portail Marchand
Production Portail Marchand

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 :

Recette Portail Marchand
Production Portail Marchand

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’activation)

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 des transactions. Elle 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 transactions
    Cet outil permet de construire les règles spécifiques définissant les conditions d’acceptation d’un paiement
  • Scoring anti-fraude
    Le 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 faible
    Transaction acceptée
    Pas d’action
  • De 20 à 59 = risque moyen
    Transaction acceptée
    Action : Envoi événement avec détail du score pour revue manuelle et apprentissage
  • +60 = risque élevé
    Transaction refusée
    Action : 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

  • ALLOW
    Autorise le paiement
  • REFUSE
    Refuse le paiement
  • ALERT
    Adresse 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 versementEntier#payout_amount > 100
#payout_currencyDevise de versementChaî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

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')

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') 

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)

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.

Versement sortant

Les versements sortants sont des virements émis depuis votre compte de paiement CentralPay vers le compte bancaire associé.

Ils peuvent être réalisés manuellement depuis le Portail Marchand ou via l’API Payment, ou encore être automatisés selon la fréquence définie dans vos paramètres de reversement.

Depuis le Portail Marchand, seuls les profils utilisateurs titulaires du compte (dit « Legal ») peuvent paramétrer et exécuter les versements.

1. Modes de versement

1.1. Versement automatique

Le titulaire du compte peut définir la périodicité du versement automatique selon trois options :

  • Quotidienne
  • Hebdomadaire : choix du jour de la semaine (ex. chaque mardi)
  • Mensuelle : choix du jour du mois (ex. le 5 du mois)

Le service de versement automatique exécute chaque virement à 01h00 du jour sélectionné, à partir des fonds disponibles (AVAILABLE) sur le compte de paiement.

Cas d’un versement hebdomadaire programmé le mardi :
CentralPay exécutera la création du virement le mardi matin avec les fonds disponibles sur le compte de paiement jusqu’à 01h00.
ℹ️ En cas de versement quotidien, l’intégralité des fonds disponibles est virée chaque jour vers votre compte bancaire. 
Le solde de votre compte CentralPay est donc nul en début de journée.
Si vous devez effectuer des remboursements clients, ceux-ci pourront être réalisés à partir du début d’après-midi (vers 14h), une fois les fonds des transactions du jour crédités par les banques émettrices.
Une évolution permettra prochainement de différer les versements automatiques d’un ou plusieurs jours afin de conserver des fonds disponibles tout en maintenant une lecture comptable cohérente. Contactez le support si vous êtes concernés.

Lettrage des versements automatiques

Chaque versement automatique est associé à la liste détaillée des opérations incluses dans le virement. Cette fonction permet un rapprochement automatique entre les opérations encaissées et le versement correspondant.

Le détail des opérations d’un versement est accessible depuis le Portail Marchand Administration Mon compte Versements en sélectionnant le versement souhaité.

Le premier versement automatique ne contient pas encore de détail, car il initialise le système de lettrage. Les versements suivants incluent la liste complète des opérations concernées.

1.2. Versement manuel (via Portail Marchand ou API)

Un versement peut être exécuté manuellement depuis le Portail Marchand ou via l’API Payment. Le montant du versement peut être librement défini, dans la limite des fonds disponibles sur le compte.

Les ordres de versement effectués avant 05h00 sont exécutés immédiatement. Ceux créés après 05h00 sont exécutés le lendemain à 05h00.

2. Identification des opérations liées à chaque versement

Le lettrage des versements est une fonctionnalité du Portail Marchand qui associe chaque versement automatique à la liste détaillée des opérations incluses dans ce versement.

Périmètre : le lettrage s’applique exclusivement aux versements automatiques. Les versements manuels ne disposent pas de cette association automatique.

Contenu du détail : liste des opérations correspondant au versement, incluant les montants, dates de valeur et références nécessaires au rapprochement comptable.

2.1. Accéder au détail d’un versement automatique

Depuis le Portail Marchand Administration Mon compte Versements :

  • Sélectionnez le versement concerné dans la liste.
  • Ouvrez le détail du versement pour afficher les opérations associées.
  • Utilisez le bouton Exporter pour télécharger les données si nécessaire.

Ou, depuis le Portail Marchand Compte Mes opérations :

  • Filtrez par Type = Versement sortant ou par Date de valeur.
  • Dans la colonne Actions du versement, cliquez sur la flèche, puis sur Voir les opérations du versement.
ℹ️ Le premier versement automatique ne comporte pas de détail : il sert d’initialisation du lettrage.
Les versements automatiques suivants incluent la liste complète des opérations associées.

2. Disponibilité des fonds

Les versements comprennent uniquement les fonds disponibles (AVAILABLE) sur le compte de paiement. Les fonds issus d’une transaction par carte bancaire deviennent disponibles à J+2.

Exemple :
Une transaction carte réalisée le lundi apparaît en « Pending » le lundi, devient « Available » le mardi soir, le versement automatique est exécuté le mercredi à 01h00, et le virement SEPA est crédité sur le compte bancaire le jeudi.
Schéma de disponibilité des fonds
ℹ️ Le paramètre EscrowDate peut influer sur la date de disponibilité des fonds d’une transaction (cas spécifique aux partenaires / mandataires).

3. Création d’un versement manuel

3.1. Depuis le Portail Marchand

Seuls les utilisateurs titulaires du compte (« Legal ») ou disposant d’un rôle administrateur (« Natural Admin ») peuvent créer un versement manuel depuis le Portail Marchand.

Depuis le Portail Marchand Administration Mon compte Versements :

  • Cliquez sur Transferts externes.
  • Sélectionnez le compte d’émission.
  • Indiquez le montant du versement et l’IBAN destinataire.
  • Cliquez sur Confirmer le transfert.

Une fois validé, le versement est exécuté selon les délais mentionnés ci-dessus.

Recette Portail Marchand – Versements sortants
Production Portail Marchand – Versements sortants

3.2. Depuis l’API

La création d’un versement manuel peut également être réalisée via l’API Payment. Pour les détails techniques, consultez la documentation développeur : Développeurs Versement sortant .

4. Versements en devises via le réseau SWIFT

Les virements internationaux sont exécutés via le réseau SWIFT, contrairement aux virements SEPA utilisés dans la zone européenne. Ce service permet d’émettre des versements en euros ou dans d’autres devises vers des comptes situés hors zone SEPA.

Si le compte bénéficiaire n’est pas accessible via SEPA ou s’il s’agit d’un compte en devise, les versements peuvent être réalisés via SWIFT. Ce service est activé sur demande auprès de votre interlocuteur CentralPay.

ℹ️ Les virements SWIFT présentent des frais supérieurs aux virements SEPA. Il est possible de paramétrer un seuil de fonds disponibles avant déclenchement automatique des versements.

5. Retours, statuts et webhooks

Pour suivre le cycle de vie des versements et automatiser leur traitement :

  • Consulter la documentation des statuts de versement ➝
  • Consulter la documentation des webhooks de versement ➝

Exports comptables

Vous pouvez réaliser plusieurs exports de votre compte aux formats CSV, EXCEL, ou JSON depuis votre Portail Marchand. 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 Marchand Fichiers d’export .

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, etc.

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énominationSignification
wallet_ididentifiant du compte
wallet_namenom du compte
owner_namenom de la société
value_datedate de valeur de l’opération
operation_idréférence Centralpay de l’opération
operation_datetimedate d’opération
source_typetype d’opération
source_idréférence permettant de lier plusieurs opérations
naturenature de l’opération
debit_amountmontant des opérations de type « débit »
credit_amountmontant des opérations de type « crédit »
currencydevise de l’opération
custom_referenceréférence personnalisée de l’opération
custom_labelnom personnalisé de l’opération
third_party_ididentifiant du destinataire de l’opération
third_party_labelnom du destinataire de l’opération
third_party_countrypays du destinataire de l’opération
payout_numbernuméro du payout

Accès :

Recette Portail Marchand – Opérations
Production Portail Marchand – Opérations

2. Télécharger le rapport financier mensuel

Chaque début de mois, en plus de la facture, un relevé de compte est généré, puis mis à disposition dans l’espace sécurisé de votre compte ( Mes comptes Relevés de compte ). Il présente les montants totaux de crédit et de débit réalisés, incluant un détail « dont fonds » et « dont frais » afin de distinguer la nature.

Nous vous proposons deux types de relevés : détaillé ou synthétique. 
- Le relevé détaillé fait apparaitre l'ensemble des opérations de la période sélectionnée.
⚠️ Si vous possédez un grand nombre d'opérations, il est possible que celles-ci n'apparaissent pas sur le relevé. Dans ce cas, nous vous conseillons de réaliser un export au format CSV, Excel ou JSON.
- Le relevé synthétique regroupe vos opérations par jour et par type d'opération, pour la période sélectionnée.
Pour bien comprendre votre relevé de compte détaillé :

A) Le total du montant des débits sur votre compte pour la période donnée :
– dont fonds : ensemble des débits de nature « fond » (versements sortants, etc.)
– dont frais : ensemble des débits de nature « frais » (frais CentralPay, etc.)

B) Le total du montant des crédits sur votre compte pour la période donnée :
– dont fonds : ensemble des encaissements sur votre compte (= chiffre d’affaires).
– dont frais : ensemble des opérations pour compenser des opérations ou ajuster des frais (remboursement de frais, etc.).

C) Solde de clôture du mois précédent le relevé.

D) Solde de clôture du mois du relevé téléchargé.

Accès :

Recette Portail Marchand – Documents
Production Portail Marchand – Documents

Exports de données

Vous pouvez réaliser plusieurs exports de votre compte aux formats CSV, EXCEL, ou JSON depuis votre portail Marchand. 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 Marchand 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énominationSignification
transaction_creation_datedate de création
transaction_ididentifiant de transaction
transaction_amountmontant
transaction_currencydevise
transaction_payout_amountvaleur de devise de règlement
transaction_payout_currencydevise de règlement
transaction_commision_amountfrais sur la transaction
transaction_commision_currencydevise des frais
transaction_fee_amountfrais fixes par transaction
transaction_3ds3DS (0=non, 1=oui)
transaction_descriptiondescription définie par le marchand
transaction_sourceEC Ecommerce, DP Deposit, MO Mail order
transaction_bank_coderetour autorisation banque
transaction_statusstatut de la transaction
transaction_authorization_statusstatut de l’autorisation
transaction_authorization_codecode d’autorisation
transaction_capture_statusstatut de la capture
transaction_capture_datedate de la capture
transaction_capture_amountmontant de la capture
merchant_transaction_ididentifiant de transaction marchand
point_of_sale_ididentifiant du point de vente
point_of_sale_namenom du point de vente
merchant_ididentifiant marchand
merchant_namenom du marchand
dispute_amountmontant de la contestation
dispute_currencydevise de la contestation
dispute_datedate de la contestation
refund_amountmontant du remboursement
refund_currencydevise du remboursement
refund_datedate du remboursement
card_ididentifiant de la carte de paiement
card_first66 premiers chiffres de la carte
card_last44 derniers chiffres de la carte
card_cardholder_namenom du porteur
card_cardholder_emailemail du porteur
card_typetype de carte (crédit/débit/prepaid)
card_productnom du produit carte (Infinite, Gold…)
card_product_typecarte consumer ou corporate
card_commercial_brandréseau carte (VISA/Mastercard/CB)
card_regioncontinent d’origine de la carte
card_countrypays d’origine de la carte
card_establishment_namenom de l’établissement qui fournit la carte
customer_ididentifiant client
end_user_ipIP de l’utilisateur
end_user_languagelangue de l’utilisateur
browser_user_agentnavigateur de l’utilisateur
receipt_emailmail de réception de l’utilisateur
clearing_numbernuméro de clearing
merchant_category_codeactivité du marchand

Accès :

Recette Portail Marchand – Transactions
Production Portail Marchand – Transactions

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 :

Recette Portail Marchand – Remboursements cartes
Production Portail Marchand – 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 :

Recette Portail Marchand – Contestations cartes
Production Portail Marchand – 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 :

Recette Portail Marchand – Abonnements
Production Portail Marchand – Abonnements

Webhooks

Les webhooks permettent d’adresser des notifications HTTP sur les URL de votre choix en fonction des évènements (events) qui surviennent sur votre profil Marchand 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’un évènement intervient sur votre profil Marchand CentralPay. Par exemple, une transaction réussie ou échouée, la création d’un nouvel abonnement (subscription), 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

Attachment

jQuery(document).ready( function($) { window.live_699ea29d69d10 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Attachment.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29d69d10", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29d69d10.load(); });

Credit

See more about Credit

jQuery(document).ready( function($) { window.live_699ea29d6a27d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Credit.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29d6a27d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29d6a27d.load(); });

Currency codes

List of currency codes:

AED
UAE Dirham
Currency code: 784
AFN
Afghani
Currency code: 971
ALL
Lek
Currency code: 008
AMD
Armenian Dram
Currency code: 051
ANG
Netherlands Antillean Guilder
Currency code: 532
AOA
Kwanza
Currency code: 973
ARS
Argentine Peso
Currency code: 032
AUD
Australian Dollar
Currency code: 036
AWG
Aruban Florin
Currency code: 533
AZN
Azerbaijanian Manat
Currency code: 944
BAM
Convertible Mark
Currency code: 977
BBD
Barbados Dollar
Currency code: 052
BDT
Taka
Currency code: 050
BGN
Bulgarian Lev
Currency code: 975
BHD
Bahraini Dinar
Currency code: 048
BIF
Burundi Franc
Currency code: 108
BMD
Bermudian Dollar
Currency code: 060
BND
Brunei Dollar
Currency code: 096
BOB
Boliviano
Currency code: 068
BOV
Mvdol
Currency code: 984
BRL
Brazilian Real
Currency code: 986
BSD
Bahamian Dollar
Currency code: 044
BTN
Ngultrum
Currency code: 064
BWP
Pula
Currency code: 072
BYR
Belarussian Ruble
Currency code: 974
BZD
Belize Dollar
Currency code: 084
CAD
Canadian Dollar
Currency code: 124
CDF
Congolese Franc
Currency code: 976
CHE
WIR Euro
Currency code: 947
CHF
Swiss Franc
Currency code: 756
CHW
WIR Franc
Currency code: 948
CLF
Unidad de Fomento
Currency code: 990
CLP
Chilean Peso
Currency code: 152
CNY
Yuan Renminbi
Currency code: 156
COP
Colombian Peso
Currency code: 170
COU
Unidad de Valor Real
Currency code: 970
CRC
Costa Rican Colon
Currency code: 188
CUC
Peso Convertible
Currency code: 931
CUP
Cuban Peso
Currency code: 192
CVE
Cabo Verde Escudo
Currency code: 132
CZK
Czech Koruna
Currency code: 203
DJF
Djibouti Franc
Currency code: 262
DKK
Danish Krone
Currency code: 208
DOP
Dominican Peso
Currency code: 214
DZD
Algerian Dinar
Currency code: 012
EGP
Egyptian Pound
Currency code: 818
ERN
Nakfa
Currency code: 232
ETB
Ethiopian Birr
Currency code: 230
EUR
Euro
Currency code: 978
FJD
Fiji Dollar
Currency code: 242
FKP
Falkland Islands Pound
Currency code: 238
GBP
Pound Sterling
Currency code: 826
GEL
Lari
Currency code: 981
GHS
Ghana Cedi
Currency code: 936
GIP
Gibraltar Pound
Currency code: 292
GMD
Dalasi
Currency code: 270
GNF
Guinea Franc
Currency code: 324
GTQ
Quetzal
Currency code: 320
GYD
Guyana Dollar
Currency code: 328
HKD
Hong Kong Dollar
Currency code: 344
HNL
Lempira
Currency code: 340
HRK
Kuna
Currency code: 191
HTG
Gourde
Currency code: 332
HUF
Forint
Currency code: 348
IDR
Rupiah
Currency code: 360
ILS
New Israeli Sheqel
Currency code: 376
INR
Indian Rupee
Currency code: 356
IQD
Iraqi Dinar
Currency code: 368
IRR
Iranian Rial
Currency code: 364
ISK
Iceland Krona
Currency code: 352
JMD
Jamaican Dollar
Currency code: 388
JOD
Jordanian Dinar
Currency code: 400
JPY
Yen
Currency code: 392
KES
Kenyan Shilling
Currency code: 404
KGS
Som
Currency code: 417
KHR
Riel
Currency code: 116
KMF
Comoro Franc
Currency code: 174
KPW
North Korean Won
Currency code: 408
KRW
Won
Currency code: 410
KWD
Kuwaiti Dinar
Currency code: 414
KYD
Cayman Islands Dollar
Currency code: 136
KZT
Tenge
Currency code: 398
LAK
Kip
Currency code: 418
LBP
Lebanese Pound
Currency code: 422
LKR
Sri Lanka Rupee
Currency code: 144
LRD
Liberian Dollar
Currency code: 430
LSL
Loti
Currency code: 426
LYD
Libyan Dinar
Currency code: 434
MAD
Moroccan Dirham
Currency code: 504
MDL
Moldovan Leu
Currency code: 498
MGA
Malagasy Ariary
Currency code: 969
MKD
Denar
Currency code: 807
MMK
Kyat
Currency code: 104
MNT
Tugrik
Currency code: 496
MOP
Pataca
Currency code: 446
MRO
Ouguiya
Currency code: 478
MUR
Mauritius Rupee
Currency code: 480
MVR
Rufiyaa
Currency code: 462
MWK
Kwacha
Currency code: 454
MXN
Mexican Peso
Currency code: 484
MXV
Mexican Unidad de Inversion (UDI)
Currency code: 979
MYR
Malaysian Ringgit
Currency code: 458
MZN
Mozambique Metical
Currency code: 943
NAD
Namibia Dollar
Currency code: 516
NGN
Naira
Currency code: 566
NIO
Cordoba Oro
Currency code: 558
NOK
Norwegian Krone
Currency code: 578
NPR
Nepalese Rupee
Currency code: 524
NZD
New Zealand Dollar
Currency code: 554
OMR
Rial Omani
Currency code: 512
PAB
Balboa
Currency code: 590
PEN
Nuevo Sol
Currency code: 604
PGK
Kina
Currency code: 598
PHP
Philippine Peso
Currency code: 608
PKR
Pakistan Rupee
Currency code: 586
PLN
Zloty
Currency code: 985
PYG
Guarani
Currency code: 600
QAR
Qatari Rial
Currency code: 634
RON
Romanian Leu
Currency code: 946
RSD
Serbian Dinar
Currency code: 941
RUB
Russian Ruble
Currency code: 643
RWF
Rwanda Franc
Currency code: 646
SAR
Saudi Riyal
Currency code: 682
SBD
Solomon Islands Dollar
Currency code: 090
SCR
Seychelles Rupee
Currency code: 690
SDG
Sudanese Pound
Currency code: 938
SEK
Swedish Krona
Currency code: 752
SGD
Singapore Dollar
Currency code: 702
SHP
Saint Helena Pound
Currency code: 654
SLL
Leone
Currency code: 694
SOS
Somali Shilling
Currency code: 706
SRD
Surinam Dollar
Currency code: 968
SSP
South Sudanese Pound
Currency code: 728
STD
Dobra
Currency code: 678
SVC
El Salvador Colon
Currency code: 222
SYP
Syrian Pound
Currency code: 760
SZL
Lilangeni
Currency code: 748
THB
Baht
Currency code: 764
TJS
Somoni
Currency code: 972
TMT
Turkmenistan New Manat
Currency code: 934
TND
Tunisian Dinar
Currency code: 788
TOP
Pa’anga
Currency code: 776
TRY
Turkish Lira
Currency code: 949
TTD
Trinidad and Tobago Dollar
Currency code: 780
TWD
New Taiwan Dollar
Currency code: 901
TZS
Tanzanian Shilling
Currency code: 834
UAH
Hryvnia
Currency code: 980
UGX
Uganda Shilling
Currency code: 800
USD
US Dollar
Currency code: 840
USN
US Dollar (Next day)
Currency code: 997
UYI
Uruguay Peso en Unidades Indexadas (URUIURUI)
Currency code: 940
UYU
Peso Uruguayo
Currency code: 858
UZS
Uzbekistan Sum
Currency code: 860
VEF
Bolivar
Currency code: 937
VND
Dong
Currency code: 704
VUV
Vatu
Currency code: 548
WST
Tala
Currency code: 882
XAG
Silver
Currency code: 961
XAU
Gold
Currency code: 959
XBA
Bond Markets Unit European Composite Unit (EURCO)
Currency code: 955
XBB
Bond Markets Unit European Monetary Unit (E.M.U.-6)
Currency code: 956
XBC
Bond Markets Unit European Unit of Account 9 (E.U.A.-9)
Currency code: 957
XBD
Bond Markets Unit European Unit of Account 17 (E.U.A.-17)
Currency code: 958
XCD
East Caribbean Dollar
Currency code: 951
XDR
SDR (Special Drawing Right)
Currency code: 960
XOF
CFA Franc BCEAO
Currency code: 952
XPD
Palladium
Currency code: 964
XPF
CFP Franc
Currency code: 953
XPT
Platinum
Currency code: 962
XSU
Sucre
Currency code: 994
XTS
Codes specifically reserved for testing purposes
Currency code: 963
XUA
ADB Unit of Account
Currency code: 965
XXX
The codes assigned for transactions where no currency is involved
Currency code: 999
YER
Yemeni Rial
Currency code: 886
ZAR
Rand
Currency code: 710
ZMW
Zambian Kwacha
Currency code: 967
ZWL
Zimbabwe Dollar
Currency code: 932

Description of the certification « ISO 4217:2008 » is available at this url:

  • http://www.iso.org/iso/home/standards/currency_codes.htm

É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, versement 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 versements 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 profil Marchand CentralPay. Ainsi, chaque compte de paiement sera lié à un compte bancaire différent et adressera des versements 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 :

Recette Portail Marchand – Comptes de paiement
Production Portail Marchand – 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 mandataire AGENT de CentralPay, vous pouvez créer des comptes pour vos marchands en utilisant le service de demande d’enrôlement.

Liens de paiement

Articles

  • Informations générales
  • Demandes de paiementpaymentRequest
  • 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, etc.). Les transactions ainsi créées sont automatiquement liées à la demande de paiement et permettent d’actualiser son statut (non payé, partiellement payé, payé, etc.).

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 (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 Marchand. 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 à renseigner
Paiements unitaires
Transaction par cartepaymentMethod[]=TRANSACTION
Pré-autorisation sur carte (réservé aux activités de locations)paymentMethod[]=TRANSACTION
transaction[source]=DP
Vérification carte (transaction à 0 €)paymentMethod[]=TRANSACTION
transaction[source]=RI
Transaction par virement bancairepaymentMethod[]=SCT_TRANSACTION
Transaction par prélèvement SEPApaymentMethod[]=SDD
sdd[remittanceInformation]
Transaction par initiation de paiementProchainement
Paiements récurrents
Abonnement par cartepaymentMethod[]=SUBSCRIPTION
subscriptionModel[subscriptionModelId]
Abonnement par prélèvement SEPApaymentMethod[]=SUBSCRIPTION
subscription[source]=SDD
subscriptionModel[subscriptionModelId]
Paiement fractionné par cartepaymentMethod[]=INSTALLMENT
intallment[intervalUnit]
installment[intervalCount]
installment [iterationCount]
Paiement fractionné par prélèvement SEPApaymentMethod[]=INSTALLMENT
installment[source]=SDD
intallment[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

⚠️ 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éfinition
amountMontant de la demande de paiement en centimes
merchantPaymentRequestIdRé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 Marchand

2.1. Création et types de demandes de paiement

Vous pouvez créer une demande de paiement depuis le Portail Marchand Demandes de paiement Liens de paiement Créer .

Les demandes de paiement créées depuis le Portail Marchand 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 :

Recette Portail Marchand – Demandes de paiement
Production Portail Marchand – 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 Marchand, ou via import de fichiers plats.

2.3. Création de demandes de paiements par import de fichiers plats

Depuis le Portail Marchand 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écharger le modèle :

  • Au format CSV➝
  • Au format JSON ➝

Quelques informations importantes :

DésginationDéfinition
profil_uuid*UUID du profil de demande de paiement
merchant_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 famille
first_namePrénom
email*Email du destinataire
phoneTéléphone du destinataire au format international (ex : 33612345678).
create_customerCréation d’un profil client « Customer » : renseigner « O » pour OUI ou « N » pour NON
link_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 paiement
language*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éfinition
NomNom du modèle de page
Template 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 redirection
URL 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 paiement
Couleur des boutonsCouleur des boutons de la page de paiement
Champs 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 :

Recette Portail Marchand – Paramétrage formulaire
Production Portail Marchand – 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 ➝

Balance Histories

jQuery(document).ready( function($) { window.live_699ea29d6fdc2 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Balance Histories.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29d6fdc2", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29d6fdc2.load(); });

FAQ - Conformité et résilience

Gouvernance et responsabilités

Qui est responsable de la sécurité chez CentralPay ?
La sécurité est pilotée par notre RSSI (Responsable de la Sécurité des Systèmes d’Information), rattaché directement à la Présidence. Le RSSI s’appuie sur un comité TIC et sur un cadre de gestion des risques aligné sur ISO 27005 et sur le règlement DORA. Le RSSI est joignable à l’adresse suivante : rssi@centralpay.com

Avez-vous une politique de sécurité documentée ?
Oui. Notre Politique de Sécurité du Système d’Information (PSSI) définit les règles applicables à l’ensemble de nos équipes et de nos prestataires. Elle couvre la classification des données, la gestion des accès, la protection des systèmes, la gestion des incidents, la continuité d’activité et l’encadrement des prestataires TIC.

Comment intégrez-vous la sécurité dans vos décisions stratégiques ?
La sécurité et la résilience sont intégrées à notre cadre global de gestion des risques. Celui-ci inclut une cartographie alignée ISO/DORA, une politique d’appétence aux risques, et un suivi par indicateurs (KRI). Les décisions de sécurité sont arbitrées au sein du comité Sécurité & Conformité et validées par la Direction Générale.

Comment contrôlez-vous vos dispositifs de sécurité ?
Nous appliquons le modèle des trois lignes de défense : les équipes métiers réalisent les contrôles opérationnels, la conformité et le contrôle permanent assurent la supervision, et le contrôle périodique réalise une évaluation indépendante.

Protection des données et des systèmes

Comment protégez-vous les données et systèmes de CentralPay ?
Toutes les données sont chiffrées : TLS 1.2/1.3 pour les échanges en transit et AES-256 pour le stockage. Les données de carte sont traitées uniquement dans un environnement certifié PCI DSS niveau 1 et immédiatement tokenisées, afin qu’aucun numéro complet ne soit conservé en clair.

Nos infrastructures sont segmentées et protégées par des firewalls, IDS/IPS et une supervision SOC. Les accès aux environnements sensibles sont limités, appliquent le principe du moindre privilège et sont protégés par MFA. Tous les postes de travail sont chiffrés, sécurisés par antivirus/EDR et mis à jour automatiquement.

Tests et contrôles de sécurité

Réalisez-vous des tests de sécurité ?
Oui. Nous effectuons régulièrement des tests de pénétration indépendants, des scans automatisés de vulnérabilités et des audits externes (dont PCI DSS). Ces contrôles permettent d’identifier les failles et de renforcer en permanence notre dispositif.

Comment gérez-vous la journalisation et les logs ?
Les journaux sont conservés 24 mois, horodatés, protégés par chiffrement et intégrés dans notre système de supervision (SIEM). Leur accès est strictement restreint aux équipes habilitées.

Comment gérez-vous les vulnérabilités et mises à jour ?
Nous appliquons une politique stricte de patch management : correction des vulnérabilités critiques sous 24h, vulnérabilités hautes sous 7 jours, et autres correctifs selon une fréquence planifiée. Le suivi est assuré par des scans et des rapports de conformité.

Organisation et culture sécurité

Comment sensibilisez-vous vos collaborateurs à la sécurité ?
Tous les collaborateurs suivent une formation annuelle obligatoire sur la cybersécurité, le RGPD et la LCB-FT. Des campagnes de sensibilisation régulières (exercices phishing, e-learning) complètent ce dispositif. Les équipes techniques bénéficient de formations renforcées.

Comment garantissez-vous que les accès restent limités ?
Nous appliquons le principe du moindre privilège : chaque utilisateur n’accède qu’aux ressources nécessaires à sa mission. Les droits sont justifiés, temporaires et systématiquement tracés.

Comment encadrez-vous les accès administrateurs ?
Les accès à privilèges élevés sont limités à un nombre restreint de personnes, soumis à MFA, tracés et revus régulièrement. Ils ne sont accordés que pour des besoins précis et pour une durée limitée.

Anticipation et amélioration continue

Comment anticipez-vous les menaces émergentes ?
Nous assurons une veille cybersécurité active via les bulletins CERT-FR, ANSSI, éditeurs logiciels et fournisseurs cloud. Cette activité de threat intelligence permet d’adapter nos défenses en temps réel.

Comment améliorez-vous en permanence votre sécurité ?
Chaque incident, audit ou test fait l’objet d’un retour d’expérience documenté et d’un plan d’actions correctives. Nos politiques et procédures sont revues annuellement pour intégrer ces enseignements et les évolutions réglementaires.

Résilience et continuité

Comment assurez-vous la continuité de vos services ?
Nous disposons d’un Plan d’Urgence et de Poursuite d’Activité (PUPA) intégrant un PCA (continuité) et un PRI (reprise). Ces plans sont régulièrement testés à travers des exercices de crise et des scénarios de bascule.

Comment garantissez-vous la disponibilité et la redondance ?
Nos services reposent sur une architecture redondée au sein de plusieurs zones européennes, permettant d’assurer une disponibilité de plus de 99,95 %.

Quels sont vos objectifs de RPO et RTO ?
CentralPay définit et teste régulièrement ses objectifs de continuité :

  • RPO (Recovery Point Objective) : inférieur à 1 minute pour les systèmes critiques, grâce à la réplication temps réel des données.
  • RTO (Recovery Time Objective) : inférieur à 15 mn pour la reprise des services essentiels, grâce à l’architecture redondée et aux procédures de bascule.
    Ces objectifs sont validés lors de nos exercices PCA/PRI et intégrés dans notre dispositif DORA.

Comment gérez-vous vos sauvegardes ?
Les sauvegardes sont chiffrées, isolées, redondées et régulièrement testées pour garantir leur restauration. Elles suivent les mêmes politiques de sécurité que les environnements de production.

Réalisez-vous des tests de résilience conformément à DORA ?
Oui. Nous réalisons des exercices de crise (cyberattaques simulées, pannes critiques), des tests de charge et de performance, des scénarios de bascule et, pour les fonctions critiques, des tests avancés de type TLPT (Threat-Led Penetration Testing).

Relations avec les prestataires

Comment sélectionnez-vous vos prestataires critiques ?
Chaque prestataire fait l’objet d’une due diligence (sécurité, conformité, localisation des données, SLA). Les contrats incluent des clauses RGPD et DORA (sécurité, notification d’incident, droit d’audit).

Comment contrôlez-vous vos prestataires dans la durée ?
Nous tenons un registre DORA recensant tous nos prestataires TIC et identifiant les prestataires critiques. Ces derniers font l’objet d’un suivi renforcé : revues régulières, audits, attestations ISO/PCI et évaluations de résilience.

Gestion des incidents

Que se passe-t-il en cas d’incident de sécurité ?
Nous appliquons une procédure de gestion des incidents incluant : détection, qualification, confinement, remédiation et forensic. Si nécessaire, nous notifions la CNIL sous 72h et informons les clients concernés. Chaque incident majeur donne lieu à un retour d’expérience et à un plan d’actions correctives suivi jusqu’à sa clôture.

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 standard, partenaire ou mandataire en relation directe avec CentralPay
  • Vous êtes un marchand participant d’un mandataire, ou un marchand standard rattaché à un partenaire technique 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.

1. Marchands en direct

Le parcours d’entrée en relation comporte six étapes principales.

1.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)

1.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

1.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)

1.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, versements, droits utilisateurs…).

1.5. Création du profil Marchand CentralPay

Le représentant légal reçoit un lien d’inscription sécurisé pour créer le profil :

  • 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 profil, menant à son ouverture

1.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 profil est débloqué
  • Vous pouvez encaisser vos premières transactions

2. Marchands liés à un partenaire technique

Si vous êtes un marchand intégré via un partenaire technique ou mandataire de CentralPay, le parcours est simplifié.

Vous entrez directement à l’étape 5 : Création du profil Marchand CentralPay.

2.1. Étape unique : Création du profil 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 le partenaire technique ou le mandataire.

L’analyse de conformité complète de CentralPay reste obligatoire avant validation du profil.

Pièces justificatives : KYC / KYB

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

2.1. 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 versements sortants 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é

2.2. Personnes morales (KYB)

La création d’un profil Marchand 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 importante
Auto-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’organisme
Socié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 étranger
Socié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

3.1. 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

3.2. 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

3.3. 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

3.4. 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 :

ZonePays ou territoire
Espace É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ède
Autres 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 profil Marchand 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 profil ou sa clôture immédiate.

1. Activités interdites de manière absolue

CatégorieExemples d’activités interdites
Activités illicitesVente de drogues, de produits illicites ou de substances interdites
Blanchiment d’argent, financement du terrorisme
Prostitution
Produits interdits ou réglementés sans autorisationVente de médicaments ou produits pharmaceutiques sans agrément
Vente d’alcool, de tabac ou de jeux d’argent sans licence
Vente d’armes, d’explosifs ou de dispositifs de piratage
Contenus et comportements illégauxDiffusion de contenus à caractère pornographique ou extrême
Activités incitant à la haine, au racisme ou faisant l’apologie du terrorisme
Diffusion d’images contraires à l’ordre public
Fraudes ou pratiques commerciales interditesUsurpation d’identité, fraude documentaire
Vente de produits contrefaits ou de marques non autorisées
Sites de phishing ou logiciels espions
Réseaux à risque ou non coopératifsOrganisations sectaires ou mouvements ultra-radicaux
Réseaux opérant dans des juridictions sous sanction ou non coopératives (ex. paradis fiscaux non reconnus)

1.1. 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)

2. 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 de réserve CentralPay afin de permettre de couvrir les R-transactions (rejets, refus, retours, remboursements, contestations, impayés) lorsque votre compte de paiement n’est pas solvable. 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 Marchand : Administration Versements 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 compte doit donc dépasser la valeur du pied de compte pour autoriser les versements sortants (payout).

Le détail du pied de compte est visible depuis le Portail Marchand : Administration Versements 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 sur votre compte de réserve 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 si votre compte de paiement n’est pas solvable. 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 Marchand : Administration Versements 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.

👉 Consultez les dernières versions en vigueur des conditions générales CentralPay

1. 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 applicables
Compte de paiementConditions générales de service de paiement
Compte de monnaie électroniqueConditions générales de service de monnaie électronique

Obligation d’acceptation :

Ces 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.

2. 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 standard), 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).

👉 Consultez les dernières versions en vigueur des conditions générales CentralPay

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.

jQuery(document).ready( function($) { window.live_699ea29d743fd = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Dispute.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29d743fd", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29d743fd.load(); });

Comptes de ME

ℹ️ Uniquement réservé aux Mandataires DME et à leurs sous-marchands.

Les comptes de ME (Monnaie Électronique) sont utilisés pour stocker et échanger des fonds dans une devise CUSTOM (devise dédiée à un mandataire DME). Un mandataire DME peut demander la création de comptes de ME pour les sous-marchands 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 mandataire 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 :

Recette Portail Marchand – Comptes de monnaie électronique
Production Portail Marchand – 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 mandataire 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 mandataire DME de CentralPay, vous pouvez demander la création de comptes de ME pour vos sous-marchands.

Utilisation des API CentralPay

Les APIs CentralPay permettent d’interagir de manière sécurisée avec notre plateforme pour créer des comptes, initier des paiements ou automatiser des opérations métiers.

Nos APIs reposent sur le protocole HTTP(S) et utilisent un format de réponse en JSON. L’authentification est obligatoire pour chaque requête, sauf exception précisée.

1. Les APIs disponibles

CentralPay met à disposition deux APIs principales :

APIDescriptionAccès
API Core PaymentGère toutes les fonctions liées aux opérations de paiement (initiation, transfert, remboursement, etc.)Tous les marchands
API OnboardingPermet la demande de création de comptes de paiement ou de monnaie électronique (enrôlements, wallet, etc.)Réservée aux marchands partenaires et mandataires (Agents, DME).

2. URLs des environnements

Deux environnements sont disponibles selon votre étape d’intégration :

ComposantEnvironnement de TESTEnvironnement de PRODUCTION
API Core Paymenthttps://test-api.centralpay.net/https://api.centralpay.net/
API Onboardinghttps://test-onboarding-api.centralpay.net/https://onboarding-api.centralpay.net/

Les identifiants d’accès sont différents entre test et production.

Vous pouvez également accéder à votre Portail Marchand à des fins de consultation ou de paramétrage :

ComposantEnvironnement de TESTEnvironnement de PRODUCTION
Portail Marchandhttps://test-backoffice.centralpay.net/https://backoffice.centralpay.net/

3. Authentification API

L’API CentralPay utilise l’authentification HTTP Basic, qui repose sur deux éléments obligatoires à inclure dans chaque appel :

  • Identifiant API (login)
  • Mot de passe API

Toutes les requêtes doivent être transmises en HTTPS. Ces identifiants sont distincts entre les environnements de test et de production.

Pour récupérer vos identifiants API, suivez les étapes suivantes :

3.1. Étape 1 – Accéder au Portail Marchand

  • Pour l’environnement de production : https://backoffice.centralpay.net/
  • Pour l’environnement de test : https://test-backoffice.centralpay.net/

3.2. Étape 2 – Ouvrir la section technique

Depuis le menu de navigation : Administration > Mon compte > Technique

  • Lien direct en production : https://backoffice.centralpay.net/admin/actor/account#technical_tab
  • Lien direct en test : https://test-backoffice.centralpay.net/admin/actor/account#technical_tab

3.3. Étape 3 – Récupérer l’Identifiant API (login)

  1. Dans l’onglet Technique, localisez la zone « Identifiant API »
  2. Cliquez sur l’identifiant affiché pour l’ouvrir en détail
  3. Copiez la valeur indiquée dans le champ Login

⚠️ Ce login est à fournir dans l’en-tête Authorization de vos requêtes (sous forme de base64 avec le mot de passe, voir plus bas).

3.4. Étape 4 – Générer un Mot de passe API

  1. Toujours dans le même écran, cliquez sur le bouton Modifier
  2. Cliquez ensuite sur Générer un mot de passe
  3. Copiez immédiatement le mot de passe généré, attention il n’est affiché qu’une seule fois
  4. Cliquez enfin sur Mettre à jour pour valider le nouveau mot de passe

Si vous perdez le mot de passe, vous devrez recommencer cette opération pour en générer un nouveau.

ℹ️ Bonnes pratiques :
- L’identifiant et le mot de passe peuvent être révoqués ou régénérés à tout moment depuis le portail marchand.
- Ne partagez jamais ces identifiants en clair.
- Stockez le mot de passe dans un gestionnaire sécurisé après sa génération.

4. Clé publique Marchand (MerchantPublicKey)

Certains services, comme cardToken, ne nécessitent pas d’identifiant/mot de passe mais uniquement une clé publique marchand (MerchantPublicKey) pour authentifier la requête.

Où la trouver :

  • Connectez-vous au Portail Marchand de production ou de test
  • Accédez à : Administration > Technique
  • Copiez la clé dans la section Merchant Public Key

5. Méthodes HTTP et MIME Types

Nos APIs sont conformes au style REST, avec les méthodes HTTP suivantes :

MéthodeUsage
POSTCréation ou mise à jour d’un objet
GETRecherche ou consultation d’un objet
DELETESuppression d’un objet

Les types MIME suivants sont utilisés :

  • application/x-www-form-urlencoded
  • multipart/form-data

Le Content-Type doit être systématiquement précisé dans les en-têtes HTTP.

6. En-têtes HTTP à utiliser

Chaque appel API doit inclure un certain nombre d’en-têtes HTTP correctement renseignés :

En-tête HTTPDescription
AuthorizationEncodage HTTP Basic avec l’identifiant et le mot de passe API
Content-TypeObligatoire pour toutes les requêtes. Doit être : application/x-www-form-urlencoded ou multipart/form-data
User-AgentFortement recommandé, utile pour tracer les intégrations
Idempotence-Key (optionnel mais conseillé)Permet d’éviter les doublons en cas de réémission d’une même requête

7. Idempotence : sécuriser les réémissions

L’en-tête Idempotence-Key permet de garantir qu’une même requête envoyée plusieurs fois avec la même clé ne sera traitée qu’une seule fois.

Cela est particulièrement utile lors d’une erreur réseau ou d’un doute sur la réussite d’un appel.

La valeur de l’en-tête Idempotence-Key est un hachage SHA1 des principaux champs métier de la requête. Elle doit être unique par combinaison fonctionnelle de données. Exemple pour une opération carte :

ℹ️ Idempotence-Key = sha1(card[number] + card[cvc] + card[expirationMonth] + card[expirationYear] + card[check] + merchantPublicKey)

La clé Idempotence-Key est valable pendant 24h maximum sur nos serveurs

8. Réponses HTTP

Chaque réponse retournée par l’API contient des éléments de traçabilité utiles dans les en-têtes :

En-tête HTTPDescription
Request-IdIdentifiant unique attribué à chaque appel. Peut être communiqué au support CentralPay en cas d’analyse ou de litige technique.

La réponse JSON du corps dépend bien sûr de la ressource appelée (paiement, transfert, onboarding…), mais le header Request-Id est systématique.

9. Déclaration de vos domaines pour les services CustomForm

Pour certains services tels que cardToken, qui dépendent des formulaires embarqués (CustomForm), il est nécessaire de déclarer au préalable les domaines web qui hébergent ces formulaires.

Sans cette déclaration, toute tentative d’appel aux services concernés depuis un domaine non autorisé entraînera une erreur 403 (Forbidden).

  1. Connectez-vous au Portail Marchand :
    • Production
    • Test
  2. Accédez à :
    • Administration > Mon compte > Technique
  3. Cliquez sur Modifier
  4. Dans le champ Hosts Custom Forms autorisés, saisissez l’URL ou les domaines à autoriser (ex : https://www.votre-site.com)
  5. Enregistrez les modifications

Une fois cette étape effectuée, les services comme cardToken pourront être appelés depuis les domaines déclarés, conformément aux règles de sécurité imposées par CentralPay.

Glossaire CentralPay

1. Les types d’acteurs

DésignationDescription
ActeurToute entité identifiée sur la plateforme CentralPay. Peut être un Profil Marchand, un Point de Vente, un établissement tiers, ou CentralPay.
Profil marchandLe Profil Marchand représente techniquement et opérationnellement un marchand dans la plateforme CentralPay. Il est le support de :
• Ses comptes : de paiement ou de monnaie électronique ;
• Son administration : accès API, profils utilisateurs, services disponibles ;
• Sa configuration technique : webhooks, notifications, points de vente, règles d’acceptation, comptes bancaires ;
• Son dossier réglementaire : KYC/KYB, LCB-FT, scoring de risque, contractualisation, grille tarifaire…

Le Profil Marchand correspond à l’objet API Merchant et est créé automatiquement après validation de son inscription (via l’objet API Merchant-Enrollment).
Marchand standardPersonne morale ou autoentreprise cliente de CentralPay, réalisant des opérations d’encaissement pour son propre compte lors de la vente de biens ou de services.
Peut être rattaché fonctionnellement à un Partenaire (Technique ou Intégrateur).
Dispose d’un Profil Marchand typé STANDARD.
Marchand PartenairePersonne morale cliente de CentralPay, disposant d’un Profil Marchand et pouvant relever de l’un des modèles suivants :
• Partenaire Technique : opère une solution mutualisée (ex. marketplace, plateforme SaaS) et dispose d’un ou plusieurs Points de Vente ouverts à son nom, auxquels des marchands standards peuvent être rattachés.
Dispose d’un Profil Marchand typé TECHNIQUE.
• Partenaire Intégrateur : intervient en soutien technique, via des accès délégués par les marchands standards, pour faciliter l’intégration et le RUN (sans mutualisation de point de vente au nom du partenaire).
Dispose d’un Profil Marchand typé INTEGRATEUR (le cas échéant).

Un Marchand Partenaire peut percevoir des commissions (selon modèle) et/ou être déclaré MOBSP pour accompagner l’entrée en relation des marchands.
Marchand MandatairePersonne morale cliente de CentralPay, agissant pour le compte de tiers, dans le cadre de l’un des statuts réglementaires suivants :
• Agent PSP : Agent de Prestataire de Services de Paiement de CentralPay, enregistré auprès de l’ACPR (Banque de France) et habilité à agir au nom et pour le compte de CentralPay dans un périmètre défini contractuellement (ex. opérations de débit/crédit et transferts pour compte de tiers).
Dispose d’un Profil Marchand typé AGENT.
• DME : Distributeur de Monnaie Électronique enregistré/déclaré par CentralPay auprès de l’ACPR (Banque de France) pour un projet impliquant l’émission, la distribution et l’échange de monnaie électronique (devises CUSTOM).
Dispose d’un Profil Marchand typé DME.
Sous-marchand / ParticipantPersonne morale ou physique cliente d’un Marchand Mandataire de CentralPay (Agent PSP ou DME).
• Sous-marchand : agit pour vendre des produits ou services, pour une activité LMNP,
• Participant : agit pour des besoins non commerciaux (crowdfunding, wallet personnel, projets collectifs…).
Dispose d’un Profil Marchand typé BASIC, avec un périmètre fonctionnel restreint.
ClientPersonne physique ou morale qui paie ou donne un ordre de paiement à un Marchand CentralPay (peut aussi être nommé porteur, payeur, débiteur).
Peut disposer ou non d’un Profil client (Customer).

Note : dans les documents réglementaires ou contractuels de CentralPay, le terme « Client » peut désigner le Marchand lui-même selon le contexte défini dans le document.
Profil clientReprésente un client enregistré par un Marchand dans la plateforme CentralPay.
Il est le support de :
• ses informations personnelles : nom, prénom, email, téléphone, raison sociale…
• ses moyens de paiement : cartes, mandats SEPA, IBAN, comptes bancaires…
• ses activités : demandes de paiement, historique de paiements…

Le Profil client correspond à l’objet API Customer.
Profils Utilisateur BOPersonnes physiques disposant d’un accès au Portail Marchand CentralPay pour consulter ou administrer un ou plusieurs Profils Marchand.
• Type Legal : représentant légal du Marchand.
• Type Natural : autre utilisateur habilité (finance, support, développement…).

Le Profil utilisateur BO correspond à l’entité API BO_user.
Profils Utilisateur APIEntité créée via la plateforme CentralPay permettant d’identifier l’utilisateur (personne ou système) réalisant des appels API sur un Profil Marchand.
Permet la traçabilité des actions et la gestion des autorisations.

Le Profil utilisateur API correspond à l’entité API api_user.
Point de Vente (ou POS)Représentation d’un site web, d’une boutique physique, ou d’une équipe de vente. Ils permettent de segmenter les opérations du Profil Marchand CentralPay à des fins :
• Techniques : pour réaliser des paramétrages différents par point de vente (notifications clients, notifications internes, nom d’expéditeur des emails de confirmation, logo affiché dans la page de paiement…)
• Administratives : pour limiter les droits de consultation ou de modification de vos profils utilisateurs BO à certains points de vente
• Comptables : pour filtrer les opérations par point de vente dans le Portail Marchand ou dans les exports de données

Le Point de vente correspond à l’objet API PointOfSale.

2. Les types de comptes

DésignationDescription
Compte de paiementCompte ouvert dans les livres de CentralPay au nom d’un Marchand. Ce compte est utilisé exclusivement pour la réalisation d’opérations de paiement (collecte de paiements en devises ISO, versement des fonds vers un compte bancaire…).

Il est représenté par l’objet Wallet type PS dans l’API CentralPay.
Compte de monnaie électroniqueCompte ouvert dans les livres de CentralPay au nom d’un Marchand. 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 type EM dans l’API CentralPay.
Compte de commissionCompte de paiement secondaire permettant d’isoler les flux de commissions et/ou certains prélèvements de frais (selon modèle).
Dans le cadre des modèles Partenaire/Mandataire, ce compte peut recevoir les commissions imputées aux transactions des marchands liés/participants, conformément aux règles contractuelles applicables.

Il est représenté par l’objet Wallet type CM dans l’API CentralPay.
Compte de réserveCompte de paiement secondaire permettant d’isoler des fonds de réserve CentralPay (pied de compte, collatéral ou réserve glissante). N’est pas autorisé à réaliser de versements sortants.

Il est représenté par l’objet Wallet type BM dans l’API CentralPay.
Compte de collecte « Agent »Compte de paiement ouvert dans les livres de CentralPay au nom d’un Agent. Il est dédié à la réception des fonds liés aux opérations initiées via le modèle Agent, avant leur ventilation / transfert vers les comptes de paiement des Marchands Participants. N’est pas autorisé à réaliser de versements sortants.

Il est représenté par l’objet Wallet type CL dans l’API CentralPay.
Compte de Traitement CentralPayLe Compte de Traitement désigne un mécanisme interne et transitoire utilisé par CentralPay pour recevoir, identifier et traiter temporairement des fonds liés à une opération de paiement, en vue de leur transmission au bénéficiaire final. Il n’est pas un compte de paiement ouvert pour un client, n’est mis à disposition d’aucun tiers et ne confère aucun droit de disposition.

Selon les implémentations techniques, ce mécanisme peut être matérialisé par des objets internes (ex. Wallet type TR) utilisés exclusivement par CentralPay pour le traitement opérationnel.

3. Les dénominations d’objets ou d’opérations

DésignationDescription
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 (selon les conditions contractuelles applicables).
Devises ISODevises conventionnelles aux normes ISO 4217 (exemple : EUR, USD, CHF, GBP…)
Devise CUSTOMDevise de monnaie électronique créée pour un Mandataire DME de CentralPay. La valeur de la devise CUSTOM est toujours adossée à celle d’une devise ISO (ex. EUR).
Instruction TechniqueDonnée / événement à finalité strictement technique et commerciale transmis à CentralPay (ex. références de commande, panier, commission, évènements logistiques). Une Instruction Technique n’est pas un ordre de paiement et ne déclenche aucun effet financier automatique : CentralPay reste seul décisionnaire du traitement et, le cas échéant, des mises à disposition de fonds.
Date de déblocageDate de mise à disposition différée pouvant être appliquée par CentralPay pour rendre des fonds utilisables par un bénéficiaire (ex. après livraison/expédition), selon la politique de risque et les règles applicables. Elle peut être déterminée à partir d’informations commerciales transmises, sans constituer une instruction de paiement.
Compte bancaireCompte bancaire externe lié à :
• un Profil Marchand pour réaliser des versements sortants (payout)
• ou à un Profil client pour réaliser des prélèvements SEPA ou des versements sortants.
Il est représenté par l’objet BankAccount dans l’API CentralPay.
Versement sortantVirement sortant d’un compte CentralPay vers un compte bancaire externe. Peut être réalisé par SEPA ou SWIFT.
Il est représenté par l’objet Payout dans l’API 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.
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.

SDD return codes

Return CodeDescription
AB05Timeout Creditor Agent
AB06Timeout Instructed Agent
AB07Offline Agent
AB08Offline Creditor Agent
AB09Error Creditor Agent
AB10Error Instructed Agent
AC01Incorrect Account Number
AC03Invalid Creditor Account Number
AC04Account Closed
AC06Account blocked, reason not specified
AC13Wrong Debtor account
AG01Forbidden on this type of account
AG02Operation/Transaction code incorrect, invalid file format
AG09Payment Not Received
AG10Agent Suspended
AG11Creditor Agent Suspended
AGNTIncorrect Agent
AM02Not Allowed Amount
AM04Insufficient Funds
AM05Duplicate payment
AM09Wrong Amount
AM23Amount Exceeds Settlement Limit
ARDTAlready a returned transaction
BE04Account address invalid
BE05Creditor Identifier incorrect
CUSTCustomer decision
CURRIncorrect Currency
CUTACancellation Upon Unable to Apply
CNORCreditor Bank is not Registered
DNORDebtor Bank is not Registered
DUPLDuplicate Payment
ED05Settlement Failed
ERINERI Option Not Supported
FF01Invalid File Format
FOCRPositive answer to the recall or RfRO
FRADFraudulent originated credit transfer
LEGLLegal Decision
MD01No valid mandate
MD02Mandate data missing or invalid
MD06Refund Request By End Customer
MD07Beneficiary Deceased
MS02By order of the beneficiary
MS03Reason not specified
NOASNo Answer From Customer
NOORNo Original Transaction Received
RC01Invalid BIC
RC07Invalid Creditor BIC Identifier
RR01Missing Debtor Account Or Identification
RR02Missing Debtors Name Or Address
RR03Missing Creditors Name Or Address
RR04Regulatory Reason
SL01Specific service offered by debtor Bank
TECHTechnical problems resulting in erroneous SCT’s
TM01Invalid Cut Off Time
UPAYUndue Payment

Transaction par carte

Articles

  • Informations générales
  • Formulaire de paiement CUSTOM
  • Authentification 3DS 2.0
  • Transaction cartetransaction
  • Transaction carte récurrentetransaction
  • Transaction carte via walletApplePay / GooglePay
  • R-transaction carterefund / credit / dispute
  • 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.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é, etc.) 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 »)

1.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, etc.), le service de « pré-autorisation » donne la possibilité au marchand d’étendre le délai d’autorisation jusqu’à 30 jours.

1.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 Marchand. Allez dans Administration Mon profil marchand Technique Modifier , puis complétez le champ Hosts Custom Forms autorisés.

Accès :

Recette Portail Marchand – Administration
Production Portail Marchand – 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.

1.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 profil Marchand 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.

  1. Créez un objet customer via l’endpoint POST /customer ou récupérez le customerId s’il est déjà connu
  2. 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 »)

1. Caractéristiques

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.1. Le 3DS 2 « BRW » ou « Browser Authentication » (porteur participant – 1ère transaction)

Il 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 ➝

1.2. Le 3DS2 « 3RI Authentification » (porteur non participant – échéances de paiements récurrents)

Le 3DS Requestor Initiated (3RI) Authentications, ou Authentification Initialisée par le marchand, est utilisée lorsque le porteur n’est pas présent ou non participant.

Le 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’abonnement
    CentralPay 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 successives
    Vous 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 Marchand.

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 Marchand » 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 (Smart Form)

Apple Pay est intégré nativement au parcours de paiement carte du SmartForm (PaymentRequest > paymentMethod[]=TRANSACTION) dès que l’appareil de votre client est compatible.

Aucune action n’est requise de votre part. Le service est entièrement opéré par CentralPay (détection de l’appareil, gestion des certificats et des tokens Apple, sécurité PCI-DSS). Aucune donnée de carte n’est exposée côté marchand (périmètre PCI-DSS SAQ-A).

2. Apple Pay (Custom Form)

2.1. 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…)
🔐 Certificats requis pour une intégration Apple Pay (https://developer.apple.com/help/account/certificates/create-a-certificate-signing-request)

Pour traiter des paiements Apple Pay dans le cadre d’une intégration directe, le marchand doit disposer des éléments suivants :
• un certificat Merchant ID Identity ;
• un certificat Merchant Payment Processing G2.

Le marchand doit veiller à conserver l’ensemble des clés privées utilisées lors de la génération des CSR associées à ces certificats.

1. Merchant ID Identity
La génération d’un CSR basé sur une clé EC (256 bits) est requise.
Cette CSR sera générée par Centralpay

2. Merchant Payment Processing Certificate

Étapes principales :
• Demander le CSR généré par Centralpay
• Soumettre le CSR depuis le compte développeur Apple afin d’obtenir le Merchant Payment Processing Certificate.
• Installer le certificat sur le même poste macOS ayant servi à la génération de la CSR afin qu’il soit associé à la clé privée.
• Exporter l’identité complète au format .p12 (certificat + clé privée).

⚠️ Si l’option d’export au format .p12 n’est pas disponible, cela indique qu’une étape du processus n’a pas été correctement réalisée (clé privée manquante ou non associée).

Le fichier .p12 constitue un conteneur sécurisé permettant l’exploitation ultérieure de la clé privée associée au certificat, conformément au flux Apple Pay.

Notes importantes :
• Toute perte de la clé privée nécessite la recréation complète du certificat depuis le portail Apple Developer.
• La documentation Apple Pay peut prêter à confusion : l’utilisation d’OpenSSL ne concerne que le certificat Merchant ID Identity, et ne s’applique pas au Merchant Payment Processing Certificate.

2.2. 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. Cette méthode implique une responsabilité PCI-DSS importante de votre part (formulaire SAQ-D). Renseignez-vous et assurez-vous d'être en conformité avant de développer ce mode d'intégration.

Étape 1 : Déchiffrement du token Apple Pay (Backend)

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 (Backend)

Utilisez l’endpoint POST /cardToken de l’API CentralPay

ChampDescription
card[number]PAN de la carte extrait du token Apple Pay
card[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 Pay
amountMontant 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]=5454696696312664
card[expirationMonth]=12
card[expirationYear]=2031
onlinePaymentCryptogram=MGnp3S1LBgJxAANgdNCRAoABFIA=
applePayTransactionId=3d2b17abed2696ca...
amount=2500
currency=EUR
merchantPublicKey=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 (Backend)

Utilisez l’endpoint POST /transaction de l’API CentralPay

Champs requis :

cardToken=...
amount=2500
currency=EUR
pointOfSaleId=...
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 test. Ils ne sont pas interchangeables avec ceux de production
  • La clé publique CentralPay (merchantPublicKey) est également spécifique à l’environnement

2.3. Via token ApplePay chiffré (hybride)

ℹ️ 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.

2.3.1. Paramétrage du compte Apple

– Se connecter sur « https://developer.apple.com/« , créer un compte et valider le compte ‘developer’ à 99$)

– Aller sur https://developer.apple.com/account/resources/identifiers/list

– Dans « App IDs », choisir « Merchant IDs » :

Puis cliquer sur le « + » pour ajouter un « Identifier » :

Choisir « Merchant IDs » : 

Renseigner le nom de l’identifier et cliquez sur « Register » : 

Aller à https://developer.apple.com/account/resources, puis cliquer sur Identifiers 

Sur Identifier, sélectionner un Merchant IDs en utilisant le filtre en haut à droite

Sous « Apple Pay Payment Processing Certificate », cliquer sur « Create Certificate« .

Indiquez que ce « Merchant ID » ne sera PAS (No) utilisé uniquement pour la Chine.

A ce moment là cliquez sur « Choose File » afin d’envoyer le fichier CSR qui vous a été envoyé par CentralPay(uniquement CentralPay)

Vous pouvez télécharger le fichier généré.
Il reste à créer le certificat « Apple Pay Merchant Identity Certificate » 
Pour cela aller à https://developer.apple.com/account/resources, puis cliquer sur Identifiers et enfin cliquer sur l’Identifier que vous voulez éditer.
Une fois ouvert, cliquez sur « Create Certificate ».

Ajoutez votre certificat : 

Ajouter le domaine associé

Indiquez le nom de domaine en question : 

Téléchargez le fichier indiqué par Apple

Déployez le fichier indiqué par Apple sur un serveur du nom de domaine en question accessible à Apple, puis cliquez sur « Verify » :

Vous pourrez alors télécharger le certificat nécessaire.

2.3.2. Paiement via Applepay

Génération du certificat et clé dans le même fichier : 

openssl pkcs12 -in certificat.p12 -out certificat.pem -clcerts

Création d’un ApplePayToken avec Apple Pay JS API (Démo à https://applepaydemo.apple.com/apple-pay-js-api)

Frontend : 

<script crossorigin
src="https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js">
</script>
<style>
apple-pay-button {
--apple-pay-button-width: 250px;
--apple-pay-button-height: 100px;
--apple-pay-button-border-radius: 99px;
--apple-pay-button-padding: 0px 0px;
--apple-pay-button-box-sizing: border-box;
}
</style>
<apple-pay-button id="btn-card" buttonstyle="white-outline" type="plain" locale="fr-FR"></apple-pay-button>
<br />
<div data-info="gateway-link" class="text-small text-gray-light font-weight-normal ml-1">
<img src="https://docs.centralpay.com/wp-content/uploads/2024/10/paysecure_reassurance_1-fond_blanc.png" alt="CentralPay" style="max-width:200px"></a>
</div>
var request = {
countryCode: 'FR',
currencyCode: 'EUR',
supportedNetworks: ['visa', 'masterCard', 'amex'],
merchantCapabilities: ['supports3DS'],
total: { label: 'Your Merchant Name', amount: '10.00' },
}
var applepayversion = 3;
var session = new ApplePaySession(applepayversion, request);

session.onvalidatemerchant = event => {
// Call your own server to request a new merchant session.
console.log("event.validationURL :"+event.validationURL);

fetch('/applepay-session')
.then(res => res.json()) // Parse the response as JSON.
.then(merchantSession => {
session.completeMerchantValidation(merchantSession);
})
.catch(err => {
console.error("Error fetching merchant session : ", err);
});
};

session.onpaymentauthorized = (event) => {

var token = event.payment.token;
fetch(`https://api.centralpay.net/transaction`, {
method: "post",
body: JSON.stringify(
{
applePayToken: token,
endUserIp: "127.0.0.1",
currency: "EUR",
amount: 1000,
source="EC",
browserUserAgent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36",
merchantTransactionId="1234567890123456789"
}),
})
.then((response) => {
if (response.ok) {
return response.json();
}
appleSession.completePayment(ApplePaySession.STATUS_FAILURE);
})
.then((responseJson) => {
// Do something with the response
appleSession.completePayment(ApplePaySession.STATUS_SUCCESS);
})
.catch((error) => {
appleSession.completePayment(ApplePaySession.STATUS_FAILURE);
});
};

session.begin();

Backend : 

$router->map('GET', '/applepay-session', function (ServerRequestInterface $request) use ($twig) : ResponseInterface {

$APPLE_URL = "https://apple-pay-gateway.apple.com/paymentservices/paymentSession";

$curl = new Curl();
$curl->setHeader('Content-Type', 'application/json');
$curl->setOpt($ch, CURLOPT_SSLCERT, getcwd() . 'certificat.pem');
$curl->setOpt($ch, CURLOPT_SSLCERTPASSWD, "thesslpassword");
$curl->setOpt(CURLOPT_POSTFIELDS, '{
merchantIdentifier: "merchant.net.centralpay.test-form",
displayName: "MyStore",
initiative: "web",
initiativeContext: "merchant.net.centralpay.test-form"
}'
);
$curl->setOpt(CURLOPT_CUSTOMREQUEST, "POST");
$curl->setOpt(CURLOPT_URL, $APPLE_URL);
$curl->exec();
...
return new Laminas\Diactoros\Response\JsonResponse($curl->getResponse());
...
});

Création de CardToken avec votre token Apple pay chiffré. (Frontend)

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.

Utilisez l’endpoint POST /cardToken de l’API CentralPay
Champs requis :

curl --location 'https://test-api.centralpay.net/cardToken' \
--header 'Origin: https://example.centralpay.net' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'merchantPublicKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--data-urlencode 'endUserIp=xxxx.xxxx.xxxx.xxxx'
--data-urlencode 'applePayToken=xxxxxxxxxxxxxxxxxxxxxx'

Création de la transaction : (Backend)

Utilisez l’endpoint POST /transaction de l’API CentralPay
Champs requis :

curl --location 'https://api.centralpay.net/transaction' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: ••••••' \
--data-urlencode 'customerId=870005ca-xxxx-xxxx-xxxx-140fa71d6e01' \
--data-urlencode 'cardTokenId=xxxxxxxxxxxxxxxxxxxxxxxx'
--data-urlencode 'currency=EUR' \
--data-urlencode 'amount=1000' \
--data-urlencode 'endUserIp=xxxx.xxxx.xxxx.xxxx' \
--data-urlencode 'endUserLanguage=fre' \
--data-urlencode 'source=EC' \
--data-urlencode 'browserUserAgent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36' \
--data-urlencode 'browserAcceptLanguage=en_US' \
--data-urlencode 'email=xxxxx@example.com' \
--data-urlencode 'country=FRA' \
--data-urlencode 'merchantTransactionId=1234567890123456789'

Le cardToken encapsule déjà le contexte Apple Pay et les données d’authentification.

Création de Transaction avec votre token Apple pay chiffré. (Backend)

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.

Puis utilisez l’endpoint POST /transaction de l’API CentralPay

Champs requis :

curl --location 'https://api.centralpay.net/transaction' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: ••••••' \
--data-urlencode 'customerId=870005ca-xxxx-xxxx-xxxx-140fa71d6e01' \
--data-urlencode 'currency=EUR' \
--data-urlencode 'amount=1000' \
--data-urlencode 'endUserIp=xxxx.xxxx.xxxx.xxxx' \
--data-urlencode 'endUserLanguage=fre' \
--data-urlencode 'source=EC' \
--data-urlencode 'browserUserAgent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36' \
--data-urlencode 'browserAcceptLanguage=en_US' \
--data-urlencode 'email=xxxxx@example.com' \
--data-urlencode 'country=FRA' \
--data-urlencode 'merchantTransactionId=1234567890123456789'
--data-urlencode 'applePayToken=xxxxxxxxxxxxxxxxxxxxxxxx'

3. Google Pay (Smart Form)

Google Pay est nativement au parcours de paiement carte du SmartForm (PaymentRequest > paymentMethod[]=TRANSACTION), dès que l’appareil ou le navigateur de votre client est compatible.

Aucune action ne sera nécessaire de votre part. Le service sera entièrement opéré par CentralPay (détection de compatibilité Google Pay, gestion des certificats et des tokens, sécurité PCI-DSS). Aucune donnée de carte ne transite côté marchand, le flux relève du périmètre PCI-DSS SAQ-A.

4. Google Pay (Custom Form)

CentralPay permet l’intégration de Google Pay via le mode PAYMENT_GATEWAY, tel qu’imposé par Google Pay dans un contexte PSP multi-marchands, sans nécessiter de déchiffrement du token côté serveur.

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é
⚠️ Google Pay fournit un merchantId spécifique au domaine validé.
Ce merchantId est obligatoire pour toute Payment Request Google Pay.
L’utilisation d’un merchantId non associé au domaine entraîne une erreur Google Pay (Error 11).

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

ℹ️ Le bouton Google Pay est fourni par le SDK officiel Google Pay.
L’initiation du paiement et la génération du token sont entièrement contrôlées par Google Pay (hosted button).

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.Définir les types de cartes acceptées :

const allowedCardNetworks = ["AMEX", "MASTERCARD", "VISA"];

4. Définir le type de moyen de paiement :

Il existe deux type différents : PAN_ONLY et CRYPTOGRAM_3DS

⚠️​Le type PAN_ONLY permet de tokeniser le PAN d’un carte bancaire, cependant ce token n’est pas sécurisé pour effectuer un paiement, il est donc important de ne pas l’utiliser pour effectuer des paiements sur la plateforme Centralpay

const allowedCardAuthMethods = ["CRYPTOGRAM_3DS"];

5. Environnement de test ou production :

// Environnement de test
const paymentsClient = new google.payments.api.PaymentsClient({ environment: 'TEST' });

// Environnement de production
const 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 :

ChampDescription
amountMontant 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=2500
currency=EUR
merchantPublicKey=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=2500
currency=EUR
pointOfSaleId=...
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 Google 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 test
    Ils ne sont pas interchangeables avec ceux de production
  • La clé publique CentralPay (merchantPublicKey) est également spécifique à l’environnement

R-transaction carte

1. Remboursement – refund

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 Marchand. 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é.

⚠️ Si la carte sur laquelle vous tentez d'effectuer le remboursement est expirée ou que le compte a été clôturé, CentralPay ne pourra réaliser de remboursement. Dans ce cas, nous vous invitons à vous rapprocher de votre client pour lui demander un RIB à jour et procéder à un virement SEPA depuis votre banque.

2. Crédit – credit

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 – Dispute

Lorsqu’un porteur de carte conteste ou signale une transaction auprès de sa banque, le réseau (Visa, Mastercard, Carte Bancaire, etc.) peut notifier CentralPay afin d’initier une opération de contestation (Dispute).
Cette opération permet de suivre l’état du litige et d’agir selon le type de signal reçu : alerte de fraude, demande d’information, ou chargeback.

Chaque contestation est représentée dans le backoffice CentralPay par une opération distincte (Dispute), liée à la transaction d’origine. Les notifications sont également disponibles via le webhook DISPUTE_CREATED.

Pour tout paiement par carte, un client peut contester une transaction auprès de sa banque dans les délais suivants :

  • 120 jours à compter de la transaction pour les réseaux Visa et Mastercard ;
  • 13 mois à compter de la date d’opération pour le réseau français Carte Bancaire.
ℹ️ En France, la contestation est en principe réservée aux cas de fraude (carte volée, usurpée, utilisation abusive).
Dans d’autres pays européens, elle peut également être utilisée dans le cadre d’un litige commercial (produit non livré, service non conforme, etc.).

1. Alerte de fraude FRAUD_NOTICED

Ce statut correspond à une notification préventive de fraude transmise par le réseau (ex. : fichier TC40 pour Visa).
Il est déclenché lorsque la banque émettrice signale qu’un porteur affirme ne pas être à l’origine de la transaction (carte volée, copiée ou usurpée).

➡️ Aucun remboursement n’est initié à ce stade.
➡️ Ce signal vous permet d’anticiper un chargeback potentiel et de renforcer vos contrôles antifraude.

Bonnes pratiques :

  • Identifier la transaction concernée (montant, pays, carte, date).
  • Vérifier les transactions similaires (même carte, même compte, même IP).
  • Mettre la carte ou le compte en liste noire pour éviter de nouvelles tentatives.
  • Conserver les preuves d’authenticité (logs, preuves de livraison, consentement).
  • Ne pas contacter directement le porteur (le signal vient de sa banque).

2. Demande d’information RETRIEVAL_NOTICED

Ce statut correspond à une demande documentaire émise par la banque du porteur.
Il intervient lorsqu’un client ne reconnaît pas une transaction, sans parler de fraude.

La banque émettrice demande alors à CentralPay de solliciter le marchand pour fournir des éléments de preuve (facture, reçu, preuve de livraison, etc.).

➡️ Une réponse est attendue sous 7 jours.
➡️ Si les éléments sont acceptés, la contestation est clôturée (RETRIEVAL_CLOSE).
➡️ Si aucune réponse n’est transmise, la banque du porteur peut déclencher un chargeback.

3. Contestation officielle CHARGEBACK_NOTICED

Le chargeback correspond à une demande de remboursement formelle initiée par la banque émettrice.
Il peut résulter :

  • d’une fraude confirmée (suite à un FRAUD_NOTICED) ;
  • d’un litige non résolu (suite à un RETRIEVAL_NOTICED) ;
  • ou d’un autre motif reconnu par les réseaux (produit non reçu, montant incorrect, service non conforme, etc.).

Lorsqu’un chargeback est émis :

  • Le montant de la transaction est débité de votre compte de paiement afin de rembourser le porteur.
  • Des frais non remboursables s’appliquent pour chaque contestation reçue, même en cas d’issue favorable.
  • Vous disposez d’un délai de 20 jours calendaires pour répondre à la contestation en fournissant les éléments justificatifs :
    • Preuve de livraison ou d’exécution du service,
    • Preuve du consentement du porteur (obligatoire pour les transactions non 3-D Secure),
    • Autres pièces démontrant la légitimité du paiement.

À défaut de réponse dans le délai imparti, la contestation sera automatiquement perdue.

Une fois votre réponse transmise, la banque émettrice analyse les éléments fournis :

StatutDescription
CHARGEBACK_WONLes preuves ont été jugées suffisantes. Le montant de la transaction vous est recrédité.
CHARGEBACK_LOSTLa contestation est maintenue. Le remboursement au porteur devient définitif.

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 Marchand.

  1. Adresse email de l’expéditeur : Paramètrage depuis le point de vente
  2. Nom de l’expéditeur : Paramètrage depuis le point de vente
  3. Votre logo : Paramètrage depuis le point de vente
  4. Nom du point de vente : Paramètrage depuis le point de vente
  5. Texte de pied de page : Paramétrage depuis l’entrrée Configuration Email confirmation paiement Créer
  6. 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 profil Marchand CentralPay 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 de paiement 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 versements sortants (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 versements SWIFT afin qu'il ne soit réalisés qu'à partir d'un certain seuil, afin de mieux maitriser ses coûts de versement.

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.com
Booking.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.com
Chez 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 (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 :

CodeDescription
A1 – Repli VADSDSP2 et Soft decline
La 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 banque
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.
4, 7, 14, 15, 31, 33, 34, 41, 43, 54, 55, 56, 59, 63, 76Suspicion de fraude ou vol de la carte
La 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 atteint
La 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 invalide
La 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 ➝

FAQ - Protection des données personnelles

Gouvernance et responsabilités

Responsable du traitement et contact DPO

CentralPay, Établissement de Monnaie Électronique (EME), est responsable du traitement pour ses services de paiement.
Contact DPO : dpo@centralpay.com (réponse sous 30 jours).

Données collectées

Quelles données collectons-nous ?

Dans le cadre de la fourniture de ses services de paiement et afin de respecter ses obligations légales, CentralPay collecte uniquement les données strictement nécessaires. Ces données varient en fonction du type d’opération (paiement, vérification KYC, lutte contre la fraude, support client). Elles se répartissent en plusieurs catégories :

  • Données d’identification : nom, prénom, civilité, date et lieu de naissance, nationalité, qualité (par exemple représentant légal, dirigeant ou bénéficiaire effectif – UBO).
  • Données de contact : adresse email, numéro de téléphone, adresse postale.
  • Données de paiement : coordonnées bancaires (IBAN, BIC) ; données de carte traitées exclusivement dans un environnement certifié PCI DSS (numéro complet et CVC collectés uniquement pour être tokenisés et jamais exposés en clair), date d’expiration, schéma (Visa, Mastercard…), pays émetteur, 4 derniers chiffres.
  • Données transactionnelles : identifiant de transaction (transactionId), date et heure, montant, devise, statut, référence commande (orderId), historique des opérations (paiements uniques, récurrents, fractionnés, remboursements).
  • Données de sécurité et de lutte contre la fraude : adresse IP, empreinte 3DS (navigateur/appareil), résultats et scores antifraude, statut éventuel de mise en surveillance technique.
  • Données de conformité KYC/LCB-FT : pièces d’identité officielles, justificatifs de domicile, documents légaux de l’entreprise (ex. Kbis, statuts), informations sur les bénéficiaires effectifs (UBO et pourcentages de détention).
  • Données techniques : journaux applicatifs (logs API), événements transmis aux marchands (webhooks), identifiants techniques (customerId, eventId).

CentralPay ne collecte aucune donnée sensible au sens de l’article 9 du RGPD (santé, religion, opinions politiques, orientation sexuelle, etc.), sauf si la loi l’imposait de manière exceptionnelle.

Finalités

Pourquoi utilisons-nous vos données ?

CentralPay traite vos données personnelles uniquement pour des finalités déterminées, explicites et légitimes. Ces traitements s’inscrivent dans le cadre de l’exécution de nos services de paiement, du respect de nos obligations réglementaires et de la sécurité de nos systèmes. Les principales finalités sont les suivantes :

  • Exécution des paiements : traitement des opérations de paiement (SEPA, carte bancaire, paiements récurrents ou fractionnés), gestion des flux financiers, émission de factures et suivi des règlements.
  • Respect des obligations réglementaires : application des règles de lutte contre le blanchiment des capitaux et le financement du terrorisme (LCB-FT), vérification d’identité (KYC), conservation légale des documents, supervision par l’ACPR.
  • Prévention et détection de la fraude : mise en œuvre des contrôles de sécurité exigés par la DSP2 (authentification forte, 3DS), calcul de scores antifraude et gestion des alertes.
  • Relation client et support : communication avec les clients et utilisateurs (notifications, confirmations, envoi de liens de paiement), traitement des demandes de support, gestion des réclamations et litiges.
  • Obligations comptables et fiscales : conservation des pièces probatoires, respect des règles du Code de commerce et du Code général des impôts.
  • Amélioration et sécurité technique : suivi de la performance et de la disponibilité de nos services, renforcement de la résilience opérationnelle conformément au règlement DORA, amélioration continue de l’expérience client et de la sécurité de nos systèmes.

Bases légales

Sur quelles bases légales reposent nos traitements ?

CentralPay traite vos données personnelles uniquement pour des finalités déterminées, explicites et légitimes. Ces traitements s’inscrivent dans le cadre de l’exécution de nos services de paiement, du respect de nos obligations réglementaires et de la sécurité de nos systèmes. Les principales finalités sont les suivantes :

  • Exécution des paiements : traitement des opérations de paiement (SEPA, carte bancaire, paiements récurrents ou fractionnés), gestion des flux financiers, émission de factures et suivi des règlements.
  • Respect des obligations réglementaires : application des règles de lutte contre le blanchiment des capitaux et le financement du terrorisme (LCB-FT), vérification d’identité (KYC), conservation légale des documents, supervision par l’ACPR.
  • Prévention et détection de la fraude : mise en œuvre des contrôles de sécurité exigés par la DSP2 (authentification forte, 3DS), calcul de scores antifraude et gestion des alertes.
  • Relation client et support : communication avec les clients et utilisateurs (notifications, confirmations, envoi de liens de paiement), traitement des demandes de support, gestion des réclamations et litiges.
  • Obligations comptables et fiscales : conservation des pièces probatoires, respect des règles du Code de commerce et du Code général des impôts.
  • Amélioration et sécurité technique : suivi de la performance et de la disponibilité de nos services, renforcement de la résilience opérationnelle conformément au règlement DORA, amélioration continue de l’expérience client et de la sécurité de nos systèmes.

Pendant combien de temps conservons-nous vos données ?

CentralPay applique des délais de conservation précis, fondés sur les obligations légales et les besoins opérationnels. À l’issue de ces délais, les données sont soit supprimées, soit anonymisées de façon irréversible.

  • Transactions financières (écritures probatoires) : conservées 10 ans, conformément au Code de commerce.
  • Données personnelles associées aux transactions (email, téléphone, IP, empreintes 3DS, PAN masqué, token de carte, scores fraude) : conservées 24 mois maximum, puis supprimées ou anonymisées.
  • Données de carte (token + métadonnées) : conservées jusqu’à 24 mois après la date d’expiration de la carte. Le PAN complet et le CVC ne sont jamais exposés en clair.
  • Payment Requests (emails/SMS) : conservées 24 mois maximum.
  • Abonnements et paiements fractionnés : conservés pendant la durée de l’abonnement + 5 ans.
  • Comptes bancaires (IBAN/BIC) et mandats SEPA : conservés pendant la durée du mandat + 10 ans (preuve contractuelle).
  • KYC / LCB-FT : données conservées 5 ans après la fin de la relation d’affaires (art. L561-12 CMF).
  • Journaux techniques et webhooks : conservés 24 mois.

Au-delà de ces durées, CentralPay ne conserve que des données anonymisées ou strictement nécessaires au respect d’une obligation légale.

Localisation et transferts

Où vos données sont-elles traitées ?

Les données traitées par CentralPay sont hébergées en priorité dans l’Union européenne, principalement en France, dans des environnements certifiés PCI DSS et ISO 27001.

À ce jour, CentralPay ne transfère pas de données personnelles hors de l’Union européenne.
Si un transfert hors UE devait être nécessaire à l’avenir (par exemple pour un prestataire SMS ou email), il serait encadré par :

  • une analyse d’impact du transfert,
  • la mise en place des Clauses Contractuelles Types (SCC) de la Commission européenne,
  • des mesures techniques complémentaires (chiffrement, segmentation, contrôle d’accès),
  • et une information transparente de nos clients.

Transfert de données hors UE : comment procédons-nous ?

À ce jour, CentralPay ne transfère pas de données personnelles hors de l’Union européenne.
Toutes les données sont hébergées et traitées dans l’UE, principalement en France et au sein d’infrastructures certifiées (PCI DSS).

Si, à l’avenir, un transfert hors UE devait être nécessaire (par exemple pour un prestataire SMS ou email), CentralPay s’engage à :

  • procéder à une analyse d’impact sur le transfert,
  • appliquer les Clauses Contractuelles Types (SCC) de la Commission européenne,
  • mettre en place des mesures techniques supplémentaires (chiffrement, cloisonnement, contrôle d’accès),
  • et informer ses clients en toute transparence.

Nature des données

Traitons-nous des données sensibles ?

Non. CentralPay ne traite aucune donnée sensible au sens de l’article 9 du RGPD (santé, religion, opinions politiques, orientation sexuelle, etc.).
Nous collectons uniquement les informations strictement nécessaires à l’exécution des paiements et au respect de nos obligations légales (LCB-FT, supervision ACPR).

Collectons-nous des données de mineurs ?

CentralPay fournit ses services exclusivement à des professionnels (B2B). Nous ne collectons donc pas volontairement de données de mineurs.
Si, indirectement, un mineur est amené à effectuer un paiement, le traitement reste limité aux données de paiement nécessaires (ex. coordonnées bancaires ou carte), et toujours sous la responsabilité de son représentant légal lorsqu’une vérification est requise.

Conformité RGPD

Réalisons-nous des analyses d’impact (PIA)?

Oui, nous réalisons des AIPD (PIA) pour les traitements susceptibles d’engendrer un risque élevé (ex. KYC, antifraude/3DS, tokenisation carte, analyses longitudinales). Les risques résiduels et mesures de réduction sont documentés.

Comment garantissons-nous la minimisation et le privacy by design ?

Nous collectons uniquement les champs nécessaires par finalité, cloisonnons les environnements (prod/préprod), nous n’utilisons aucune donnée réelle en test, limitons les payloads webhooks au minimum utile, et appliquons des purges/anonymisations automatiques à l’échéance.

Comment CentralPay documente sa conformité RGPD ?

  • Politique RGPD publique (site).
  • Registre des traitements (interne, à jour).
  • PIA sur les traitements à risque (interne).
  • Politiques/procédures (sécurité, purge, incidents, droits).
  • Rapports de contrôle interne (ACPR).

Sous-traitants

Comment encadrons-nous nos prestataires ?

Chaque prestataire est contractuellement encadré (art. 28) : mesures de sécurité, confidentialité, notification d’incident, audibilité, localisation des données, sous-traitance en cascade contrôlée. Due diligence initiale + réévaluation régulière (sécurité, SLA, conformité).

Quels prestataires utilisons-nous ?

Sur demande et après NDA, nous pouvons fournir la liste à jour par catégorie de nos prestataires (hébergement/cloud, KYC, envoi email/SMS, anti-fraude, support) en indiquant la zone géographique.

Comment sélectionnons-nous nos prestataires essentiels ?

CentralPay applique une politique d’encadrement des sous-traitants alignée à la fois sur le RGPD (art. 28) et sur le règlement DORA.

Lors de la sélection, nous menons une due diligence approfondie couvrant la sécurité (certifications, mesures techniques), la conformité réglementaire (RGPD, DSP2, LCB-FT), la localisation et le régime juridique des données, la solidité financière du prestataire ainsi que les niveaux de service (SLA) proposés. Pour les prestataires critiques, nous examinons en particulier leur intégration dans la chaîne de valeur des services de paiement et leur rôle en matière de résilience opérationnelle.

Chaque relation contractuelle inclut des clauses conformes à l’article 28 RGPD (confidentialité, sécurité, notification d’incident, limitation des sous-traitances en cascade) ainsi que, le cas échéant, des Clauses Contractuelles Types (SCC) pour encadrer les transferts hors Union européenne.

Conformément à DORA, nous tenons un registre d’information des prestataires TIC et identifions ceux considérés comme prestataires critiques. Ces prestataires font l’objet d’une évaluation renforcée, avec des exigences contractuelles spécifiques en matière de disponibilité, d’intégrité, de continuité et de tests de résilience.

Le suivi est assuré au travers de revues régulières (contrôles, rapports d’audit, attestations de conformité type SOC/ISO, questionnaires de sécurité), d’un droit d’audit contractuel et de mécanismes de reporting périodique. Nous intégrons ces évaluations dans notre cartographie des risques TIC et nos comités de suivi DORA.

Sécurité et résilience

Quelles protections techniques appliquons-nous ?

CentralPay protège les données et les systèmes en combinant des mécanismes techniques robustes et conformes aux meilleurs standards internationaux.
Les échanges sont sécurisés par un chiffrement systématique : TLS 1.2/1.3 pour les données en transit et AES-256 pour les données au repos, avec une gestion centralisée des clés.
Les données de carte sont traitées exclusivement dans un environnement PCI DSS niveau 1, avec collecte en zone dédiée et tokenisation irréversible pour éviter toute exposition du PAN complet.
Les accès aux systèmes sont contrôlés par des mécanismes RBAC (role-based access control) et protégés par une authentification forte (MFA), avec des revues régulières des habilitations.
Toutes les actions sensibles font l’objet d’une journalisation horodatée et inviolable, intégrée dans un SIEM qui assure la détection et l’alerte en temps réel.
L’infrastructure est cloisonnée : segmentation des réseaux, séparation stricte des environnements (production, test, préproduction) et gestion sécurisée des secrets.
Enfin, CentralPay teste régulièrement son dispositif à travers des tests de pénétration, des scans de vulnérabilités et des audits externes indépendants.

Comment notre organisation garantit la sécurité ?

La sécurité ne repose pas uniquement sur la technologie mais aussi sur une organisation et une gouvernance solides.
CentralPay applique un cadre de gestion des risques intégrant une cartographie détaillée, des indicateurs de suivi (KRI) et une politique d’appétence au risque validée par la direction.
La supervision s’appuie sur le modèle reconnu des trois lignes de défense : les opérations assurent les contrôles de premier niveau, une fonction indépendante de conformité et de contrôle permanent supervise la deuxième ligne, et l’audit interne constitue la troisième ligne.
Un comité sécurité et conformité se réunit régulièrement pour piloter la stratégie et mettre à jour les politiques et procédures clés (gestion des accès, incidents, purges, exercice des droits RGPD).
Enfin, la culture sécurité est renforcée par des formations régulières des équipes, couvrant la cybersécurité, la protection des données personnelles et les obligations LCB-FT.

Que faisons-nous en cas d’incident de sécurité ?

CentralPay dispose d’une procédure formalisée de gestion des incidents.
En cas d’incident, nous procédons à une détection rapide, une qualification et un confinement immédiat, suivis d’actions de remédiation.
Les événements sont intégralement journalisés et investigués (forensic) afin d’identifier la cause et d’éviter leur récurrence.
Lorsque la réglementation l’impose, nous notifions la CNIL dans un délai maximum de 72 heures et informons les personnes concernées en cas de risque élevé.
Chaque incident donne lieu à un retour d’expérience (REX) et à la mise en place d’un plan d’actions correctives, qui est suivi jusqu’à sa résolution complète.

Nos audits de sécurité

CentralPay est soumis à plusieurs niveaux de contrôle et de tests de sécurité, à la fois internes et externes :

  • Audits externes réguliers :
    • Certification annuelle PCI DSS niveau 1 sur la collecte et le traitement des données de paiement,
    • Audits indépendants de cybersécurité,
    • Tests de pénétration réalisés par des prestataires tiers pour identifier et corriger les vulnérabilités.
  • Contrôles internes permanents (seconde ligne de défense) : revues des habilitations, scans de vulnérabilités, surveillance des systèmes critiques.
  • Audits périodiques indépendants (troisième ligne de défense) : audit interne et audit externe du dispositif de sécurité, conformité réglementaire (ACPR, DORA).
  • Revue annuelle des politiques : l’ensemble de nos politiques de sécurité, de purge, d’incidents et de gestion des prestataires est revu et validé chaque année par la direction.
  • Tests de résilience conformément à DORA :
    • Plans de Continuité et de Reprise d’Activité (PCA/PRI) testés régulièrement pour valider la capacité à maintenir les services en cas d’incident majeur,
    • Exercices de crise simulant des scénarios de cyberattaque ou d’indisponibilité critique,
    • Tests de charge et de performance sur les infrastructures critiques,
    • Scénarios de bascule et redondance entre environnements pour garantir la disponibilité,
    • Pour les fonctions critiques, recours progressif à des tests de résilience avancés de type “TLPT” (Threat-Led Penetration Testing), exigés par DORA pour les acteurs significatifs.

Droits des personnes

Quels sont vos droits et comment les exercer ?

En application des articles 15 à 22 du RGPD, vous disposez des droits suivants sur vos données personnelles :

  • droit d’accès,
  • droit de rectification,
  • droit à l’effacement,
  • droit à la limitation,
  • droit d’opposition,
  • droit à la portabilité,
  • droit de retrait du consentement.

Vous pouvez exercer vos droits en adressant une demande à : dpo@centralpay.com.
Nous nous engageons à vous répondre dans un délai de 30 jours maximum, sauf cas exceptionnel justifiant une prolongation. En cas de difficulté, vous pouvez également saisir la CNIL.

Comment concilions-nous effacement et obligations légales ?

CentralPay respecte le droit à l’effacement prévu par le RGPD, mais certaines données doivent être conservées en raison d’obligations légales.
Nous supprimons ou anonymisons toutes les données personnelles qui ne sont plus nécessaires.
En revanche, lorsque la loi nous impose de conserver certaines informations (par exemple les écritures comptables pendant 10 ans ou les données KYC pendant 5 ans après la fin de la relation), ces données sont maintenues mais :

  • leur accès est strictement limité,
  • elles ne sont utilisées que pour les finalités imposées par la loi (contrôle ACPR, TRACFIN, obligations probatoires).

Ainsi, nous trouvons un équilibre entre le respect des droits des personnes et nos obligations réglementaires.

Autres garanties

Utilisons-nous des décisions automatisées ou du profilage ?

CentralPay n’applique aucune décision entièrement automatisée produisant des effets juridiques ou significatifs sur les personnes, au sens de l’article 22 du RGPD.
Nous utilisons en revanche des outils de scoring antifraude qui calculent un niveau de risque sur les transactions. Ces résultats servent uniquement d’aide à la décision : lorsqu’un cas est sensible ou à risque, il est systématiquement revu et validé par un contrôle humain.

Utilisons-nous des cookies ou traceurs à des fins publicitaires ?

Sur les parcours de paiement et dans les API, CentralPay n’utilise aucun cookie publicitaire ni traceur marketing. Seuls des cookies ou traceurs strictement nécessaires au fonctionnement technique et à la sécurité des parcours (ex. gestion de session, authentification) peuvent être utilisés.
À ce stade, aucun mécanisme de consentement via bannière n’est nécessaire, puisque nous n’utilisons pas de cookies optionnels.

Comment assurons-nous la résilience et les sauvegardes ?

Oui. L’infrastructure est redondée sur deux data centers localisés en France ; les sauvegardes sont chiffrées et externalisées, testées régulièrement (restores) et retiennent les mêmes contrôles d’accès que la production.

Avons-nous une politique de purge et d’anonymisation documentée ?

Oui, avec délais par objet (transactions/personnelles 24 mois, cartes jusqu’à 24 mois après date d’expiration, KYC 5 ans post-relation, mandats 10 ans, logs 24 mois) et mécanismes (suppression vs anonymisation irréversible), plus traces de purge (logs d’exécution).

Nos environnements de test contiennent-ils des données réelles ?

CentralPay n’utilise jamais de données personnelles réelles dans ses environnements de test ou de préproduction. Tous nos jeux de données internes (ex. cartes, IBAN, profils clients) sont synthétiques ou fictifs et conformes aux standards PCI DSS.

Cependant, les utilisateurs de nos environnements de test (par ex. marchands intégrateurs) peuvent techniquement saisir leurs propres données. Cette pratique est formellement interdite et encadrée par nos conditions d’utilisation.

Si un utilisateur insère par erreur des données personnelles dans un environnement de test, celles-ci :

  • ne sont pas utilisées à des fins de traitement de paiement réel,
  • ne sont pas répliquées en production,
  • et font l’objet d’une purge automatique ou manuelle dès leur détection.

Comment CentralPay gère-t-il l’accès des équipes support aux données ?

Les équipes support de CentralPay n’ont pas d’accès direct et permanent aux données personnelles. L’accès est accordé uniquement en cas de besoin opérationnel (par exemple pour résoudre un incident ou assister un client), et selon les principes suivants :

  • Accès temporaire et justifié : chaque accès est accordé pour une durée limitée et doit être motivé par un ticket ou une demande validée.
  • Principe du moindre privilège : l’agent support ne voit que les données strictement nécessaires pour traiter la demande.
  • Authentification forte (MFA) : tous les accès sont sécurisés par une authentification à plusieurs facteurs.
  • Traçabilité complète : chaque action effectuée par un membre du support est enregistrée et auditée.
  • Revue régulière des habilitations : les droits d’accès sont revus mensuellement pour s’assurer qu’ils restent justifiés.
  • Masquage des données sensibles : les champs sensibles (ex. numéro complet de carte, CVC, IBAN complet) sont systématiquement masqués dans les interfaces, afin que le support ne puisse jamais les visualiser en clair.

Offrons-nous des clauses contractuelles spécifiques RGPD à vos clients ?

Nos CGU/contrats intègrent les clauses nécessaires (confidentialité, sécurité, coopération incidents, sous-traitance, conservation/purge). Des avenants RGPD sont possibles selon les cas d’usage.

Partageons-nous nos politiques et procédures internes ?

La Politique RGPD publique est disponible en ligne. Les politiques internes détaillées (procédures incidents, purge, sécurité) ne sont, par défaut, pas partagées.

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.

jQuery(document).ready( function($) { window.live_699ea29d83d21 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Account.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29d83d21", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29d83d21.load(); });

SCT Transaction

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_699ea29d842a5 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29d842a5", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29d842a5.load(); });

Country codes

List of country codes:

004
Afghanistan
Alpha2 code: AF
Alpha3 code: AFG
008
Albania
Alpha2 code: AL
Alpha3 code: ALB
010
Antarctica
Alpha2 code: AQ
Alpha3 code: ATA
012
Algeria
Alpha2 code: DZ
Alpha3 code: DZA
016
American Samoa
Alpha2 code: AS
Alpha3 code: ASM
020
Andorra
Alpha2 code: AD
Alpha3 code: AND
024
Angola
Alpha2 code: AO
Alpha3 code: AGO
028
Antigua and Barbuda
Alpha2 code: AG
Alpha3 code: ATG
031
Azerbaijan
Alpha2 code: AZ
Alpha3 code: AZE
032
Argentina
Alpha2 code: AR
Alpha3 code: ARG
036
Australia
Alpha2 code: AU
Alpha3 code: AUS
040
Austria
Alpha2 code: AT
Alpha3 code: AUT
044
Bahamas (the)
Alpha2 code: BS
Alpha3 code: BHS
048
Bahrain
Alpha2 code: BH
Alpha3 code: BHR
050
Bangladesh
Alpha2 code: BD
Alpha3 code: BGD
051
Armenia
Alpha2 code: AM
Alpha3 code: ARM
052
Barbados
Alpha2 code: BB
Alpha3 code: BRB
056
Belgium
Alpha2 code: BE
Alpha3 code: BEL
060
Bermuda
Alpha2 code: BM
Alpha3 code: BMU
064
Bhutan
Alpha2 code: BT
Alpha3 code: BTN
068
Bolivia, Plurinational State of
Alpha2 code: BO
Alpha3 code: BOL
070
Bosnia and Herzegovina
Alpha2 code: BA
Alpha3 code: BIH
072
Botswana
Alpha2 code: BW
Alpha3 code: BWA
074
Bouvet Island
Alpha2 code: BV
Alpha3 code: BVT
076
Brazil
Alpha2 code: BR
Alpha3 code: BRA
084
Belize
Alpha2 code: BZ
Alpha3 code: BLZ
086
British Indian Ocean Territory (the)
Alpha2 code: IO
Alpha3 code: IOT
090
Solomon Islands (the)
Alpha2 code: SB
Alpha3 code: SLB
092
Virgin Islands (British)
Alpha2 code: VG
Alpha3 code: VGB
096
Brunei Darussalam
Alpha2 code: BN
Alpha3 code: BRN
100
Bulgaria
Alpha2 code: BG
Alpha3 code: BGR
104
Myanmar
Alpha2 code: MM
Alpha3 code: MMR
108
Burundi
Alpha2 code: BI
Alpha3 code: BDI
112
Belarus
Alpha2 code: BY
Alpha3 code: BLR
116
Cambodia
Alpha2 code: KH
Alpha3 code: KHM
120
Cameroon
Alpha2 code: CM
Alpha3 code: CMR
124
Canada
Alpha2 code: CA
Alpha3 code: CAN
132
Cape Verde
Alpha2 code: CV
Alpha3 code: CPV
136
Cayman Islands (the)
Alpha2 code: KY
Alpha3 code: CYM
140
Central African Republic (the)
Alpha2 code: CF
Alpha3 code: CAF
144
Sri Lanka
Alpha2 code: LK
Alpha3 code: LKA
148
Chad
Alpha2 code: TD
Alpha3 code: TCD
152
Chile
Alpha2 code: CL
Alpha3 code: CHL
156
China
Alpha2 code: CN
Alpha3 code: CHN
158
Taiwan (Province of China)
Alpha2 code: TW
Alpha3 code: TWN
162
Christmas Island
Alpha2 code: CX
Alpha3 code: CXR
166
Cocos (Keeling) Islands (the)
Alpha2 code: CC
Alpha3 code: CCK
170
Colombia
Alpha2 code: CO
Alpha3 code: COL
174
Comoros
Alpha2 code: KM
Alpha3 code: COM
175
Mayotte
Alpha2 code: YT
Alpha3 code: MYT
178
Congo
Alpha2 code: CG
Alpha3 code: COG
180
Congo (the Democratic Republic of the)
Alpha2 code: CD
Alpha3 code: COD
184
Cook Islands (the)
Alpha2 code: CK
Alpha3 code: COK
188
Costa Rica
Alpha2 code: CR
Alpha3 code: CRI
191
Croatia
Alpha2 code: HR
Alpha3 code: HRV
192
Cuba
Alpha2 code: CU
Alpha3 code: CUB
196
Cyprus
Alpha2 code: CY
Alpha3 code: CYP
203
Czech Republic (the)
Alpha2 code: CZ
Alpha3 code: CZE
204
Benin
Alpha2 code: BJ
Alpha3 code: BEN
208
Denmark
Alpha2 code: DK
Alpha3 code: DNK
212
Dominica
Alpha2 code: DM
Alpha3 code: DMA
214
Dominican Republic (the)
Alpha2 code: DO
Alpha3 code: DOM
218
Ecuador
Alpha2 code: EC
Alpha3 code: ECU
222
El Salvador
Alpha2 code: SV
Alpha3 code: SLV
226
Equatorial Guinea
Alpha2 code: GQ
Alpha3 code: GNQ
231
Ethiopia
Alpha2 code: ET
Alpha3 code: ETH
232
Eritrea
Alpha2 code: ER
Alpha3 code: ERI
233
Estonia
Alpha2 code: EE
Alpha3 code: EST
234
Faroe Islands (the)
Alpha2 code: FO
Alpha3 code: FRO
238
Falkland Islands (the) [Malvinas]
Alpha2 code: FK
Alpha3 code: FLK
239
South Georgia and the South Sandwich Islands
Alpha2 code: GS
Alpha3 code: SGS
242
Fiji
Alpha2 code: FJ
Alpha3 code: FJI
246
Finland
Alpha2 code: FI
Alpha3 code: FIN
248
Ã…land Islands
Alpha2 code: AX
Alpha3 code: ALA
250
France
Alpha2 code: FR
Alpha3 code: FRA
254
French Guiana
Alpha2 code: GF
Alpha3 code: GUF
258
French Polynesia
Alpha2 code: PF
Alpha3 code: PYF
260
French Southern Territories (the)
Alpha2 code: TF
Alpha3 code: ATF
262
Djibouti
Alpha2 code: DJ
Alpha3 code: DJI
266
Gabon
Alpha2 code: GA
Alpha3 code: GAB
268
Georgia
Alpha2 code: GE
Alpha3 code: GEO
270
Gambia (The)
Alpha2 code: GM
Alpha3 code: GMB
275
Palestine, State of
Alpha2 code: PS
Alpha3 code: PSE
276
Germany
Alpha2 code: DE
Alpha3 code: DEU
288
Ghana
Alpha2 code: GH
Alpha3 code: GHA
292
Gibraltar
Alpha2 code: GI
Alpha3 code: GIB
296
Kiribati
Alpha2 code: KI
Alpha3 code: KIR
300
Greece
Alpha2 code: GR
Alpha3 code: GRC
304
Greenland
Alpha2 code: GL
Alpha3 code: GRL
308
Grenada
Alpha2 code: GD
Alpha3 code: GRD
312
Guadeloupe
Alpha2 code: GP
Alpha3 code: GLP
316
Guam
Alpha2 code: GU
Alpha3 code: GUM
320
Guatemala
Alpha2 code: GT
Alpha3 code: GTM
324
Guinea
Alpha2 code: GN
Alpha3 code: GIN
328
Guyana
Alpha2 code: GY
Alpha3 code: GUY
332
Haiti
Alpha2 code: HT
Alpha3 code: HTI
334
Heard Island and McDonald Islands
Alpha2 code: HM
Alpha3 code: HMD
336
Holy See (the) [Vatican City State]
Alpha2 code: VA
Alpha3 code: VAT
340
Honduras
Alpha2 code: HN
Alpha3 code: HND
344
Hong Kong
Alpha2 code: HK
Alpha3 code: HKG
348
Hungary
Alpha2 code: HU
Alpha3 code: HUN
352
Iceland
Alpha2 code: IS
Alpha3 code: ISL
356
India
Alpha2 code: IN
Alpha3 code: IND
360
Indonesia
Alpha2 code: ID
Alpha3 code: IDN
364
Iran (the Islamic Republic of)
Alpha2 code: IR
Alpha3 code: IRN
368
Iraq
Alpha2 code: IQ
Alpha3 code: IRQ
372
Ireland
Alpha2 code: IE
Alpha3 code: IRL
376
Israel
Alpha2 code: IL
Alpha3 code: ISR
380
Italy
Alpha2 code: IT
Alpha3 code: ITA
384
Ivory coast
Alpha2 code: CI
Alpha3 code: CIV
388
Jamaica
Alpha2 code: JM
Alpha3 code: JAM
392
Japan
Alpha2 code: JP
Alpha3 code: JPN
398
Kazakhstan
Alpha2 code: KZ
Alpha3 code: KAZ
400
Jordan
Alpha2 code: JO
Alpha3 code: JOR
404
Kenya
Alpha2 code: KE
Alpha3 code: KEN
408
Korea (the Democratic People’s Republic of)
Alpha2 code: KP
Alpha3 code: PRK
410
Korea (the Republic of)
Alpha2 code: KR
Alpha3 code: KOR
414
Kuwait
Alpha2 code: KW
Alpha3 code: KWT
417
Kyrgyzstan
Alpha2 code: KG
Alpha3 code: KGZ
418
Lao People’s Democratic Republic (the)
Alpha2 code: LA
Alpha3 code: LAO
422
Lebanon
Alpha2 code: LB
Alpha3 code: LBN
426
Lesotho
Alpha2 code: LS
Alpha3 code: LSO
428
Latvia
Alpha2 code: LV
Alpha3 code: LVA
430
Liberia
Alpha2 code: LR
Alpha3 code: LBR
434
Libya
Alpha2 code: LY
Alpha3 code: LBY
438
Liechtenstein
Alpha2 code: LI
Alpha3 code: LIE
440
Lithuania
Alpha2 code: LT
Alpha3 code: LTU
442
Luxembourg
Alpha2 code: LU
Alpha3 code: LUX
446
Macao
Alpha2 code: MO
Alpha3 code: MAC
450
Madagascar
Alpha2 code: MG
Alpha3 code: MDG
454
Malawi
Alpha2 code: MW
Alpha3 code: MWI
458
Malaysia
Alpha2 code: MY
Alpha3 code: MYS
462
Maldives
Alpha2 code: MV
Alpha3 code: MDV
466
Mali
Alpha2 code: ML
Alpha3 code: MLI
470
Malta
Alpha2 code: MT
Alpha3 code: MLT
474
Martinique
Alpha2 code: MQ
Alpha3 code: MTQ
478
Mauritania
Alpha2 code: MR
Alpha3 code: MRT
480
Mauritius
Alpha2 code: MU
Alpha3 code: MUS
484
Mexico
Alpha2 code: MX
Alpha3 code: MEX
492
Monaco
Alpha2 code: MC
Alpha3 code: MCO
496
Mongolia
Alpha2 code: MN
Alpha3 code: MNG
498
Moldova (the Republic of)
Alpha2 code: MD
Alpha3 code: MDA
499
Montenegro
Alpha2 code: ME
Alpha3 code: MNE
500
Montserrat
Alpha2 code: MS
Alpha3 code: MSR
504
Morocco
Alpha2 code: MA
Alpha3 code: MAR
508
Mozambique
Alpha2 code: MZ
Alpha3 code: MOZ
512
Oman
Alpha2 code: OM
Alpha3 code: OMN
516
Namibia
Alpha2 code: NA
Alpha3 code: NAM
520
Nauru
Alpha2 code: NR
Alpha3 code: NRU
524
Nepal
Alpha2 code: NP
Alpha3 code: NPL
528
Netherlands (the)
Alpha2 code: NL
Alpha3 code: NLD
531
Curacao
Alpha2 code: CW
Alpha3 code: CUW
533
Aruba
Alpha2 code: AW
Alpha3 code: ABW
534
Sint Maarten (Dutch part)
Alpha2 code: SX
Alpha3 code: SXM
535
Bonaire, Sint Eustatius and Saba
Alpha2 code: BQ
Alpha3 code: BES
540
New Caledonia
Alpha2 code: NC
Alpha3 code: NCL
548
Vanuatu
Alpha2 code: VU
Alpha3 code: VUT
554
New Zealand
Alpha2 code: NZ
Alpha3 code: NZL
558
Nicaragua
Alpha2 code: NI
Alpha3 code: NIC
562
Niger (the)
Alpha2 code: NE
Alpha3 code: NER
566
Nigeria
Alpha2 code: NG
Alpha3 code: NGA
570
Niue
Alpha2 code: NU
Alpha3 code: NIU
574
Norfolk Island
Alpha2 code: NF
Alpha3 code: NFK
578
Norway
Alpha2 code: NO
Alpha3 code: NOR
580
Northern Mariana Islands (the)
Alpha2 code: MP
Alpha3 code: MNP
581
United States Minor Outlying Islands (the)
Alpha2 code: UM
Alpha3 code: UMI
583
Micronesia (the Federated States of)
Alpha2 code: FM
Alpha3 code: FSM
584
Marshall Islands (the)
Alpha2 code: MH
Alpha3 code: MHL
585
Palau
Alpha2 code: PW
Alpha3 code: PLW
586
Pakistan
Alpha2 code: PK
Alpha3 code: PAK
591
Panama
Alpha2 code: PA
Alpha3 code: PAN
598
Papua New Guinea
Alpha2 code: PG
Alpha3 code: PNG
600
Paraguay
Alpha2 code: PY
Alpha3 code: PRY
604
Peru
Alpha2 code: PE
Alpha3 code: PER
608
Philippines (the)
Alpha2 code: PH
Alpha3 code: PHL
612
Pitcairn
Alpha2 code: PN
Alpha3 code: PCN
616
Poland
Alpha2 code: PL
Alpha3 code: POL
620
Portugal
Alpha2 code: PT
Alpha3 code: PRT
624
Guinea-Bissau
Alpha2 code: GW
Alpha3 code: GNB
626
Timor-Leste
Alpha2 code: TL
Alpha3 code: TLS
630
Puerto Rico
Alpha2 code: PR
Alpha3 code: PRI
634
Qatar
Alpha2 code: QA
Alpha3 code: QAT
638
Réunion
Alpha2 code: RE
Alpha3 code: REU
642
Romania
Alpha2 code: RO
Alpha3 code: ROU
643
Russian Federation (the)
Alpha2 code: RU
Alpha3 code: RUS
646
Rwanda
Alpha2 code: RW
Alpha3 code: RWA
652
Saint Barthélemy
Alpha2 code: BL
Alpha3 code: BLM
654
Saint Helena, Ascension and Tristan da Cunha
Alpha2 code: SH
Alpha3 code: SHN
659
Saint Kitts and Nevis
Alpha2 code: KN
Alpha3 code: KNA
660
Anguilla
Alpha2 code: AI
Alpha3 code: AIA
662
Saint Lucia
Alpha2 code: LC
Alpha3 code: LCA
663
Saint Martin (French part)
Alpha2 code: MF
Alpha3 code: MAF
666
Saint Pierre and Miquelon
Alpha2 code: PM
Alpha3 code: SPM
670
Saint Vincent and the Grenadines
Alpha2 code: VC
Alpha3 code: VCT
674
San Marino
Alpha2 code: SM
Alpha3 code: SMR
678
Sao Tome and Principe
Alpha2 code: ST
Alpha3 code: STP
682
Saudi Arabia
Alpha2 code: SA
Alpha3 code: SAU
686
Senegal
Alpha2 code: SN
Alpha3 code: SEN
688
Serbia
Alpha2 code: RS
Alpha3 code: SRB
690
Seychelles
Alpha2 code: SC
Alpha3 code: SYC
694
Sierra Leone
Alpha2 code: SL
Alpha3 code: SLE
702
Singapore
Alpha2 code: SG
Alpha3 code: SGP
703
Slovakia
Alpha2 code: SK
Alpha3 code: SVK
704
Viet Nam
Alpha2 code: VN
Alpha3 code: VNM
705
Slovenia
Alpha2 code: SI
Alpha3 code: SVN
706
Somalia
Alpha2 code: SO
Alpha3 code: SOM
710
South Africa
Alpha2 code: ZA
Alpha3 code: ZAF
716
Zimbabwe
Alpha2 code: ZW
Alpha3 code: ZWE
724
Spain
Alpha2 code: ES
Alpha3 code: ESP
728
South Sudan
Alpha2 code: SS
Alpha3 code: SSD
729
Sudan (the)
Alpha2 code: SD
Alpha3 code: SDN
732
Western Sahara
Alpha2 code: EH
Alpha3 code: ESH
740
Suriname
Alpha2 code: SR
Alpha3 code: SUR
744
Svalbard and Jan Mayen
Alpha2 code: SJ
Alpha3 code: SJM
748
Swaziland
Alpha2 code: SZ
Alpha3 code: SWZ
752
Sweden
Alpha2 code: SE
Alpha3 code: SWE
756
Switzerland
Alpha2 code: CH
Alpha3 code: CHE
760
Syrian Arab Republic (the)
Alpha2 code: SY
Alpha3 code: SYR
762
Tajikistan
Alpha2 code: TJ
Alpha3 code: TJK
764
Thailand
Alpha2 code: TH
Alpha3 code: THA
768
Togo
Alpha2 code: TG
Alpha3 code: TGO
772
Tokelau
Alpha2 code: TK
Alpha3 code: TKL
776
Tonga
Alpha2 code: TO
Alpha3 code: TON
780
Trinidad and Tobago
Alpha2 code: TT
Alpha3 code: TTO
784
United Arab Emirates (the)
Alpha2 code: AE
Alpha3 code: ARE
788
Tunisia
Alpha2 code: TN
Alpha3 code: TUN
792
Turkey
Alpha2 code: TR
Alpha3 code: TUR
795
Turkmenistan
Alpha2 code: TM
Alpha3 code: TKM
796
Turks and Caicos Islands (the)
Alpha2 code: TC
Alpha3 code: TCA
798
Tuvalu
Alpha2 code: TV
Alpha3 code: TUV
800
Uganda
Alpha2 code: UG
Alpha3 code: UGA
804
Ukraine
Alpha2 code: UA
Alpha3 code: UKR
807
Macedonia (the former Yugoslav Republic of)
Alpha2 code: MK
Alpha3 code: MKD
818
Egypt
Alpha2 code: EG
Alpha3 code: EGY
826
United Kingdom (the)
Alpha2 code: GB
Alpha3 code: GBR
831
Guernsey
Alpha2 code: GG
Alpha3 code: GGY
832
Jersey
Alpha2 code: JE
Alpha3 code: JEY
833
Isle of Man
Alpha2 code: IM
Alpha3 code: IMN
834
Tanzania, United Republic of
Alpha2 code: TZ
Alpha3 code: TZA
840
United States (the)
Alpha2 code: US
Alpha3 code: USA
850
Virgin Islands (U.S.)
Alpha2 code: VI
Alpha3 code: VIR
854
Burkina Faso
Alpha2 code: BF
Alpha3 code: BFA
858
Uruguay
Alpha2 code: UY
Alpha3 code: URY
860
Uzbekistan
Alpha2 code: UZ
Alpha3 code: UZB
862
Venezuela, Bolivarian Republic of
Alpha2 code: VE
Alpha3 code: VEN
876
Wallis and Futuna
Alpha2 code: WF
Alpha3 code: WLF
882
Samoa
Alpha2 code: WS
Alpha3 code: WSM
887
Yemen
Alpha2 code: YE
Alpha3 code: YEM
894
Zambia  
Alpha2 code: ZM
Alpha3 code: ZMB

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)
  • Versement sortant (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 profil Marchand 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 :

Recette Portail Marchand
Production Portail Marchand

Accès paramétrage de templates SMS :

Recette Portail Marchand
Production Portail Marchand

Accès paramétrage de templates hooks :

Recette Portail Marchand
Production Portail Marchand

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

Recette Portail Marchand
Production Portail Marchand

Accès paramétrage du pied de page d’email (footer) :

Recette Portail Marchand
Production Portail Marchand

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 :

Recette Portail Marchand
Production Portail Marchand

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’activation)

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…).

Portail Marchand

Le Portail Marchand est une interface web connectée aux APIs de CentralPay. Il permet de consulter l’activité et d’administrer votre Profil Marchand CentralPay. Les marchands Partenaires et Mandataires peuvent également consulter l’activité des profils de leurs marchands standards et participants.

Accès :

Recette Portail Marchand
Production Portail Marchand

1. Fonctionnalités

Le Portail Marchand 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 versement sortant (« payout »)
  • De générer des exports et de télécharger les rapports financiers mensuels
  • Pour les marchands Partenaires et Mandataires uniquement :
    • De créer et de consulter les demandes d’inscription (« merchant-enrollment »)
    • De consulter l »activité des profils marchands standards ou participants associés
ℹ️ Les comptes ayant des droits "Basic" (marchands participants de mandataires CentralPay) peuvent uniquement consulter les opérations dont ils sont bénéficiaires (transfer) et gérer leurs paramètres de versement (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 Marchand.

2.1. Gestion des profils utilisateurs « Legal » et « Natural »

Lors de la création du Profil Marchand CentralPay, le responsable ayant réalisé l’inscription (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 versements 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 :

Recette Portail Marchand – Gestion des profils utilisateurs BO
Recette Portail Marchand – 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 Marchand (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 du Portail Marchand, 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 :

Recette Portail Marchand – Gestion des rôles utilisateurs BO
Production Portail Marchand – 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 :

Recette Portail Marchand – Gestion des catégories de point de vente
Production Portail Marchand – Gestion des catégories de point de vente

3. Liste des types d’opérations visibles sur le Portail Marchand

Type d’objetValeurFonction
AUTHORIZATIONDébitAutorisation de blocage d’un montant d’une carte bancaire
TRANSACTIONCréditTransaction carte
TRANSACTION_CANCELDébitAnnulation de transaction carte
REFUNDCréditRemboursement transaction carte
REFUND_CANCELDébitAnnulation d’un remboursement transaction carte
DISPUTEDébitImpayé suite à la contestation d’une transaction carte
DISPUTE_WONCréditAnnulation d’un impayé carte
TRANSFERDébitTransfert de fonds entre comptes CentralPay
TRANSFER_CANCELCréditAnnulation transfert en attente
TRANSFER_REVERSALCréditRetour d’un transfert validé
PAYOUTDébitVirement sortant du compte CentralPay
PAYOUT_CANCELCréditAnnulation d’un virement sortant
PAYOUT_REVERSALCréditRetour d’un virement sortant validé
SCT_TRANSACTIONCréditVirement entrant
SCT_TRANSACTION_CANCELDébitAnnulation virement entrant avant son arrivée
SCT_TRANSACTION_REFUNDDébitAnnulation virement entrant après son arrivée par le marchand
SCT_TRANSACTION_REVERSALDébitAnnulation virement entrant après son arrivée par CentralPay
CREDITDébitCrédit sur carte non lié à une transaction
CREDIT_CANCELCréditAnnulation d’un crédit sur carte
SDD_TRANSACTIONCréditPrélèvement SEPA d’un compte bancaire externe
SDD_TRANSACTION_CANCELDébitAnnulation d’un prélèvement d’un compte externe avant son arrivée
SDD_TRANSACTION_REVERSALDébitRemboursement d’un prélèvement d’un compte externe après son arrivée
DEPOSITCréditChargement d’une somme sur un compte CentralPay

Articles

  • Guide : Mes comptes

Guide : Mes comptes

L’entrée Mes comptes du Portail Marchand CentralPay est l’espace dédié au suivi financier de vos comptes (comptes rattachés à votre Profil Marchand) : consultation des informations de compte, suivi des opérations réalisées et à venir, lecture des soldes historisés, et téléchargement des relevés mensuels officiels.

Cette rubrique est particulièrement utile pour les équipes comptables, la direction financière et les personnes en charge du rapprochement et des clôtures.

Accéder au Portail Marchand > Mes comptes

1. Sous-entrées disponibles

La rubrique Mes comptes se compose de 4 sous-entrées :

  • Vue d’ensemble
  • Opérations (incluant l’onglet Opérations à venir)
  • Solde
  • Relevés de compte
ℹ️ Selon votre profil ou votre configuration, l’accès à certaines sous-entrées peut varier. La logique fonctionnelle reste identique.

2. Vue d’ensemble

La sous-entrée Vue d’ensemble permet d’identifier rapidement le compte sélectionné et d’obtenir une lecture immédiate de sa situation financière.

2.1. Informations de compte

Vous y retrouvez notamment les informations clés du compte :

  • Titulaire du compte
  • IBAN et BIC
  • Devise
  • Type de compte
  • Libellé du compte (sélecteur utile si plusieurs comptes sont rattachés à votre profil marchand)

2.2. Solde temps réel

Le bloc Solde temps réel donne une vision instantanée du solde, avec une distinction utile pour la gestion quotidienne :

  • Fonds disponibles (Valeur immédiatement accessible sur votre compte)
  • Débits programmés (Montants des reversements et R-transactions programmés à une date ultérieure)
ℹ️ Selon votre configuration, un « solde de compte de réserve » peut également être affiché.

2.3. Évolution sur période

Un graphique permet d’observer l’évolution sur une période en combinant :

  • le solde
  • les opérations à venir (vision prévisionnelle)

3. Opérations

La sous-entrée Opérations affiche la liste des mouvements affectant le compte, avec un onglet Opérations à venir pour les mouvements attendus mais non encore réalisés. C’est la vue principale pour le rapprochement comptable et la production d’exports.

3.1. Deux notions de date à connaître

Pour une lecture comptable fiable, la vue distingue généralement :

  • Date de valeur : date à laquelle l’opération est considérée comme effective sur le plan financier/comptable (très utilisée pour le rapprochement et les clôtures).
  • Date d’opération : date/heure de l’évènement (utile pour investiguer une chronologie ou recouper un historique).
ℹ️ Recommandation : pour une clôture ou un rapprochement, partez plutôt de la « date de valeur ». Pour une investigation, la « date d’opération » est souvent plus parlante.

3.2. Rechercher une opération

Le moteur de recherche permet de retrouver rapidement une opération à partir d’un critère comptable, d’une référence ou d’un identifiant.

Filtres essentiels

FiltreÀ quoi ça sertParticularités / Bonnes pratiques
CompteRestreindre l’affichage aux opérations d’un compte spécifique.Indispensable si plusieurs comptes sont rattachés à votre profil. Commencez par sélectionner le compte avant d’appliquer d’autres filtres.
Période (date de valeur)Filtrer les opérations sur une période comptable de référence.Base de travail pour les clôtures et le rapprochement. Recommandé : définissez toujours une période avant d’ajouter des critères plus fins (référence, montant, etc.).
MontantRechercher une ou plusieurs opérations correspondant à un montant précis.À combiner avec Compte et Période pour éviter trop de résultats, surtout si vous avez un volume d’opérations de même montant important.
RéférenceRetrouver une opération via votre référence métier personnalisée (commande, facture, identifiant interne, etc.).Très utile si vos équipes utilisent un identifiant commun entre votre système et CentralPay. Peut aussi servir à regrouper plusieurs lignes liées à un même évènement selon votre paramétrage.
Operation IDRechercher une opération via son identifiant CentralPay unique.Le filtre le plus précis : un Operation ID correspond à une ligne unique. À privilégier pour les investigations support/audit lorsque l’identifiant est connu.
LibelléRechercher une opération à partir de son intitulé descriptif (recherche par mots-clés).Utile lorsque vous ne disposez pas d’un identifiant (Operation ID, référence). Pratique pour retrouver une opération “à partir de ce qui est visible” dans la liste.
TypeIsoler une famille d’opérations (carte, virement, prélèvement, remboursement, contestations, etc.).Idéal pour analyser un périmètre (ex. uniquement les virements entrants) ou préparer un export ciblé avant rapprochement.

Filtres avancés

Les filtres avancés sont utiles pour les investigations (support/audit), l’analyse de reversements et les exports comptables. Le tableau ci-dessous résume leur objectif et leurs particularités.

FiltreÀ quoi ça sertParticularités / Bonnes pratiques
NatureQualifier l’origine comptable et fonctionnelle d’une opération afin de distinguer rapidement les écritures Frais, Fonds et Gestion. Frais : opérations liées aux coûts et commissions débités ou crédités sur le compte, associés à l’utilisation des services (ex. frais d’opérations, commissions, remboursements ou corrections de frais).
Fonds : opérations correspondant aux flux financiers qui entrent ou sortent du compte dans le cadre de son activité (ex. transactions clients, versements sortants, remboursements de transaction).
Gestion : opérations internes CentralPay réalisées pour ajuster ou sécuriser le solde du compte (ex. mouvements de réserve, gage espèces, ajustements techniques ou écritures de régularisation).
Source IDRegrouper des opérations liées entre elles (ex. une autorisation carte, la transaction associée, et son remboursement) afin d’analyser un parcours complet. Le Source ID est un identifiant permettant de regrouper différentes opérations liées.
Vous pouvez soit :
• cliquer sur « Filtrer par ce Source ID » depuis une opération de la liste des résultats ;
• ou renseigner le Source ID dans le moteur de recherche afin d’afficher toutes les opérations rattachées à ce même identifiant.
Numéro de payoutRetrouver toutes les opérations liées à un reversement (payout) et en analyser la composition (fonds, frais, ajustements…). Ce filtre regroupe toutes les opérations rattachées à un même reversement (payout), ce qui permet d’en comprendre le détail et la composition.

Comment obtenir le numéro de payout ?
• Recherchez l’opération de versement sortant (PAYOUT), ouvrez son détail (bouton d’action), puis cliquez sur « Voir les opérations du payout » : le portail applique automatiquement le filtre et affiche les opérations concernées.
• À défaut, vous pouvez le déduire depuis la référence du versement sortant : les derniers chiffres correspondent au numéro de payout (ex. PAYOUT-7usge67-153 → numéro de payout = 153).

À noter : le détail des opérations d’un versement sortant est disponible uniquement lorsque les payouts automatiques sont activés. Le premier payout automatique peut ne pas afficher le détail attendu (calibrage du mode de calcul).
Tiers
(Tiers / Type tiers / ID tiers / Pays tiers)
Filtrer les opérations selon la contrepartie impliquée (autre que vous), pour analyser des flux par acteur.Le tiers est la personne morale ou physique impliquée dans l’opération autre que vous (par exemple un client, CentralPay, un autre marchand, un compte externe…).
Vous pouvez filtrer soit :
• par Tiers : nom du tiers (champ libre) ;
• par ID tiers : identifiant CentralPay du tiers (par exemple CustomerID ou MerchantID), pour une recherche précise ;
• par Type tiers : un des quatre types suivants : Customer, Marchand, CentralPay, Compte externe ;
• par Pays tiers : pays dans lequel le tiers est déclaré (par exemple selon la région d’émission de sa carte si c’est un Customer), ce qui peut être utile notamment pour certains besoins de reporting (ex. déclarations de TVA).

3.3. Synthèse débits / crédits

La page présente une synthèse des débits et crédits sur la période filtrée (volume et montant), avec une ventilation possible par nature d’opération (frais, fonds, gestion). Cette lecture permet de vérifier rapidement la cohérence d’une période avant export.

3.4. Exports comptables personnalisés

Depuis la vue Opérations, vous pouvez générer des exports aux formats CSV, Excel ou JSON. Le principe est simple :

  • Paramétrez votre recherche (compte, période, filtres utiles).
  • Lancez la recherche, puis cliquez sur Exporter.
  • Vous recevez le fichier par email et pouvez le télécharger à tout moment depuis le Portail Marchand (rubrique Fichiers d’export).
Voir la documentation : Exports comptables et relevés de compte

4. Solde

La sous-entrée Solde fournit une vision historisée des soldes par compte, structurée par date de valeur (lecture « fin de journée »).

Vous y retrouvez généralement :

  • Solde de clôture (fin de journée)
  • Opérations à venir (agrégat des mouvements attendus)
  • Solde prévisionnel (solde tenant compte des opérations à venir)
ℹ️ Cas d’usage : justifier un solde « à date » (clôture, contrôle interne), ou comparer une situation constatée vs prévisionnelle.

5. Relevés de compte

La sous-entrée Relevés de compte donne accès aux relevés mensuels officiels de votre compte CentralPay. Ces documents sont les justificatifs de référence pour la comptabilité et les preuves administratives.

Chaque début de mois, en plus de la facture, un relevé de compte est généré et mis à disposition dans l’espace sécurisé : Mes comptes > Relevés de compte.

Deux types de relevés peuvent être proposés :

  • Relevé détaillé : fait apparaître l’ensemble des opérations de la période.
  • Relevé synthétique : regroupe les opérations par jour et par type d’opération.
⚠️ Si vous possédez un grand nombre d’opérations, il est possible que toutes n’apparaissent pas sur le relevé détaillé. Dans ce cas, nous vous conseillons de réaliser un export au format CSV, Excel ou JSON.
Voir la documentation : Exports comptables et relevés de compte

6. Actions fréquentes

6.1. Clôture mensuelle

  1. Allez dans Opérations, filtrez par Compte et Période (date de valeur).
  2. Vérifiez la synthèse débits / crédits et la ventilation par nature (frais / fonds / gestion).
  3. Générez un export comptable (colonnes adaptées à votre rapprochement).
  4. Ou téléchargez directement le relevé mensuel dans Relevés de compte pour archivage et justificatif officiel (1 relevé par compte).

6.2. Rapprochement des opérations liée à un versement sortant (payout)

  1. Allez dans Mes comptes > Opérations et, si besoin, sélectionnez d’abord le Compte concerné.
  2. Retrouvez l’opération de versement sortant (PAYOUT), ouvrez son détail (bouton d’action), puis cliquez sur « Voir les opérations du payout » : le Portail applique automatiquement le filtre Numéro de payout et affiche uniquement les opérations rattachées à ce versement.
  3. Analysez la composition du versement à l’aide du filtre Nature pour distinguer les lignes de Fonds, Frais et Gestion (ajustements), puis vérifiez la cohérence du montant global.
  4. Si nécessaire, générez un export (CSV / Excel / JSON) afin d’archiver le détail du payout ou de l’intégrer à votre rapprochement.
ℹ️ Alternative : le numéro de payout peut aussi être déduit de la référence du versement sortant (ex. PAYOUT-7usge67-153 → numéro de payout = 153).
⚠️ Le détail des opérations d’un versement sortant est disponible uniquement lorsque les payouts automatiques sont activés. Le premier payout automatique peut ne pas afficher le détail attendu (calibrage du mode de calcul).

6.3. Justifier un solde à date

  1. Allez dans Solde pour retrouver le solde de clôture à la date souhaitée.
  2. Complétez si nécessaire par le relevé mensuel dans Relevés de compte.

Marchand standard

Le modèle Marchand standard 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 Profil Marchand CentralPay
    Un profil marchand standard contenant un ou plusieurs comptes de paiement dédiés à votre activité, avec IBAN individuel, suivi des opérations et des versements.
  • Les services liés au compte
    Outils de gestion, profils utilisateurs, accès API, notifications, reporting…
  • Le service d’encaissement Smart
    Centralisation de vos flux, routage automatisé, gestion des statuts et des versements.
  • Transactions par carte bancaire
    Acceptation Visa/Mastercard, 3D Secure, Apple Pay/Google Pay, gestion des remboursements et des contestations.
  • Transactions par virement
    Génération d’IBAN virtuels, notifications de réception, rapprochements automatiques.
  • Transactions par prélèvement SEPA
    Débits ponctuels ou récurrents, gestion des mandats, suivi des rejets.

2. Frais et commissions

Des commissions fixes et variables sont appliquées en fonction des opérations réalisées (transactions, versements, rejets, etc.). Vous pouvez consulter les tarifications publiques sur notre site.

  • 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 sur votre compte bancaire ou vous adresser une demande de virement complémentaire.

Transaction par virement

Articles

  • Informations générales
  • IBAN Virtuels
  • Transaction par virementsctTransaction
  • Pay by Bank - Initiation de paiement (PIS)
  • Rapprochement à une demande de paiementbankReconciliation
  • R-transaction SCTrefund
  • 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 Marchand Administration Comptes IBAN/BIC :

Il est également possible d’interroger l’API CentralPay avec le endpoint /bankAccount

Accès :

Recette Portail Marchand – Comptes
Production Portail Marchand – 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 Marchand Administration Comptes UUID :

Accès :

Recette Portail Marchand – Comptes
Production Portail Marchand – 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 Marchand Administration Comptes UUID :

Accès :

Recette Portail Marchand – Comptes
Production Portail Marchand – 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 :

  • Automatiquement
    Si 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 Transaction
    Si 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 paiement
    Si 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 Marchand 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 :

  1. Créer une PaymentRequest selon les modalités habituelles.
  2. 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

  1. L’utilisateur sélectionne « Pay by Bank » dans le formulaire
  2. Il choisit sa banque dans la liste proposée
  3. Il est redirigé vers l’environnement de sa banque pour valider l’opération de virement
  4. 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✅ Disponible🚫 Non disponible
Arkéa Banking Services✅ Disponible🚫 Non disponible
Arkéa Banque Entreprises et Institutionnels✅ Disponible✅ Disponible
Arkéa Banque Privée✅ Disponible✅ Disponible
AXA Banque✅ Disponible✅ Disponible
Banque BCP✅ Disponible✅ Disponible
Banque Chalus✅ Disponible✅ Disponible
Banque de Savoie✅ Disponible✅ Disponible
Banque des Territoires✅ Disponible🚫 Non disponible
Banque Européenne Crédit Mutuel✅ Disponible✅ Disponible
Banque Populaire✅ Disponible✅ Disponible
Banque Transatlantique✅ Disponible✅ Disponible
BBVA (Non activé)🚫 Non disponible🚫 Non disponible
BforBank✅ Disponible🚫 Non disponible
BNP Paribas✅ Disponible✅ Disponible
BNP Paribas Entreprises✅ Disponible🚫 Non disponible
BNP Paribas Nouvelle-Calédonie (Non activé)🚫 Non disponible🚫 Non disponible
BoursoBank✅ Disponible✅ Disponible
BRED✅ Disponible✅ Disponible
BTP Banque✅ Disponible✅ Disponible
Caisse d’Épargne Particuliers✅ Disponible✅ Disponible
Caisse d’Épargne Professionnels✅ Disponible✅ Disponible
CCMDirect (Non activé)🚫 Non disponible🚫 Non disponible
CIC✅ Disponible✅ Disponible
CIC Banque Privée✅ Disponible✅ Disponible
Crédit Agricole✅ Disponible✅ Disponible
Crédit Coopératif✅ Disponible✅ Disponible
Crédit Maritime✅ Disponible✅ Disponible
Crédit Mutuel✅ Disponible✅ Disponible
Crédit Mutuel de Bretagne✅ Disponible✅ Disponible
Crédit Mutuel du Sud Ouest✅ Disponible✅ Disponible
Fortuneo✅ Disponible✅ Disponible
Hello bank!✅ Disponible✅ Disponible
ING Wholesale Banking✅ Disponible🚫 Non disponible
La Banque Postale✅ Disponible✅ Disponible
LCL✅ Disponible✅ Disponible
Louvre Banque Privée✅ Disponible✅ Disponible
Manager.one✅ Disponible🚫 Non disponible
Memo Bank✅ Disponible✅ Disponible
Monabanq✅ Disponible✅ Disponible
N26✅ Disponible✅ Disponible
Nef Pro✅ Disponible🚫 Non disponible
Neuflize OBC (Non activé)🚫 Non disponible🚫 Non disponible
Palatine✅ Disponible✅ Disponible
Qonto✅ Disponible🚫 Non disponible
Revolut✅ Disponible🚫 Non disponible
Société Générale✅ Disponible✅ Disponible

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 Marchand. 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 ➝

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.

jQuery(document).ready( function($) { window.live_699ea29d8f8c6 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Card Token.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29d8f8c6", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29d8f8c6.load(); });

SCT Transaction Reversal

See more about SCT Transaction Reversal

jQuery(document).ready( function($) { window.live_699ea29d8fddb = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29d8fddb", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29d8fddb.load(); });

Transfer purpose codes

ACCT : AccountManagement
ADCS : AdvisoryDonationCopyrightServices
ADMG : AdministrativeManagement
ADVA : AdvancePayment
AEMP : ActiveEmploymentPolicy
AGRT : AgriculturalTransfer
AIRB : Air
ALLW : Allowance
ALMY : AlimonyPayment
AMEX : Amex
ANNI : Annuity
ANTS : AnesthesiaServices
AREN : AccountsReceivablesEntry
AUCO : AuthenticatedCollections
B112 : TrailerFeePayment
BBSC : BabyBonusScheme
BCDM : BearerChequeDomestic
BCFG : BearerChequeForeign
BECH : ChildBenefit
BENE : UnemploymentDisabilityBenefit
BEXP : BusinessExpenses
BFWD : BondForward
BKDF : BankLoanDelayedDrawFunding
BKFE : BankLoanFees
BKFM : BankLoanFundingMemo
BKIP : BankLoanAccruedInterestPayment
BKPP : BankLoanPrincipalPaydown
BLDM : BuildingMaintenance
BNET : BondForwardNetting
BOCE : BackOfficeConversionEntry
BOND : Bonds
BONU : BonusPayment.
BR12 : TrailerFeeRebate
BUSB : Bus
CABD : CorporateActions-Bonds
CAEQ : CorporateActions-Equities
CAFI : CustodianManagementFeeInhouse
CASH : CashManagementTransfer
CBCR : CreditCard
CBFF : CapitalBuilding
CBFR : CapitalBuildingRetirement
CBLK : CardBulkClearing
CBTV : CableTVBill
CCHD : CashCompensationHelplessnessDisability
CCIR : CrossCurrencyIRS
CCPC : CCPClearedInitialMargin
CCPM : CCPClearedVariationMargin
CCRD : CreditCardPayment
CCSM : CCPClearedInitialMarginSegregatedCash
CDBL : CreditCardBill
CDCB : CardPaymentWithCashBack
CDCD : CashDisbursementCashSettlement
CDCS : CashDisbursementWithSurcharging
CDDP : CardDeferredPayment
CDEP : CreditDefaultEventPayment
CDOC : OriginalCredit
CDQC : QuasiCash
CFDI : CapitalFallingDueInhouse
CFEE : CancellationFee
CGDD : CardGeneratedDirectDebit
CHAR : CharityPayment
CLPR : CarLoanPrincipalRepayment
CMDT : CommodityTransfer
COLL : CollectionPayment
COMC : CommercialPayment
COMM : Commission
COMP : CompensationPayment
COMT : ConsumerThirdPartyConsolidatedPayment
CORT : TradeSettlementPayment
COST : Costs
CPEN : CashPenalties
CPKC : CarparkCharges
CPYR : Copyright
CRDS : CreditDefaultSwap
CRPR : CrossProduct
CRSP : CreditSupport
CRTL : CreditLine
CSDB : CashDisbursementCashManagement
CSLP : CompanySocialLoanPaymentToBank
CVCF : ConvalescentCareFacility
DBCR : DebitCard
DBTC : DebitCollectionPayment
DCRD : DebitCardPayment
DEBT : ChargesBorneByDebtor
DEPD : DependentSupportPayment
DEPT : Deposit
DERI : Derivatives
DICL : Diners
DIVD : Dividend
DMEQ : DurableMedicaleEquipment
DNTS : DentalServices
DSMT : PrintedOrderDisbursement
DVPM : DeliverAgainstPayment
ECPG : GuaranteedEPayment
ECPR : EPaymentReturn
ECPU : NonGuaranteedEPayment
EDUC : Education
EFTC : LowValueCredit
EFTD : LowValueDebit
ELEC : ElectricityBill
ENRG : Energies
EPAY : Epayment
EQPT : EquityOption
EQTS : Equities
EQUS : EquitySwap
ESTX : EstateTax
ETUP : EPurseTopUp
EXPT : ExoticOption
EXTD : ExchangeTradedDerivatives
FACT : FactorUpdateRelatedPayment
FAND : FinancialAidInCaseOfNaturalDisaster
FCOL : FeeCollection
FCPM : LatePaymentOfFeesAndCharges
FEES : PaymentOfFees
FERB : Ferry
FIXI : FixedIncome
FLCR : FleetCard
FNET : FuturesNettingPayment
FORW : ForwardForeignExchange
FREX : ForeignExchange
FUTR : Futures
FWBC : ForwardBrokerOwnedCashCollateral
FWCC : ForwardClientOwnedCashCollateral
FWLV : ForeignWorkerLevy
FWSB : ForwardBrokerOwnedCashCollateralSegregated
FWSC : ForwardClientOwnedSegregatedCashCollateral
FXNT : ForeignExchangeRelatedNetting
GAFA : GovernmentFamilyAllowance
GAHO : GovernmentHousingAllowance
GAMB : GamblingOrWageringPayment
GASB : GasBill
GDDS : PurchaseSaleOfGoods
GDSV : PurchaseSaleOfGoodsAndServices
GFRP : GuaranteeFundRightsPayment
GIFT : Gift
GOVI : GovernmentInsurance
GOVT : GovernmentPayment
GSCB : PurchaseSaleOfGoodsAndServicesWithCashBack
GSTX : GoodsServicesTax
GVEA : AustrianGovernmentEmployeesCategoryA
GVEB : AustrianGovernmentEmployeesCategoryB
GVEC : AustrianGovernmentEmployeesCategoryC
GVED : AustrianGovernmentEmployeesCategoryD
GWLT : GovermentWarLegislationTransfer
HEDG : Hedging
HLRP : PropertyLoanRepayment
HLST : PropertyLoanSettlement
HLTC : HomeHealthCare
HLTI : HealthInsurance
HREC : HousingRelatedContribution
HSPC : HospitalCare
HSTX : HousingTax
ICCP : IrrevocableCreditCardPayment
ICRF : IntermediateCareFacility
IDCP : IrrevocableDebitCardPayment
IHRP : InstalmentHirePurchaseAgreement
INPC : InsurancePremiumCar
INPR : InsurancePremiumRefund
INSC : PaymentOfInsuranceClaim
INSM : Installment
INSU : InsurancePremium
INTC : IntraCompanyPayment
INTE : Interest
INTP : IntraPartyPayment
INTX : IncomeTax
INVS : InvestmentAndSecurities
IPAY : InstantPayments
IPCA : InstantPaymentsCancellation
IPDO : InstantPaymentsForDonations
IPEA : InstantPaymentsInECommerceWithoutAddressData
IPEC : InstantPaymentsInECommerceWithAddressData
IPEW : InstantPaymentsInECommerce
IPPS : InstantPaymentsAtPOS
IPRT : InstantPaymentsReturn
IPU2 : InstantPaymentsUnattendedVendingMachineWith2FA
IPUW : InstantPaymentsUnattendedVendingMachineWithout2FA
IVPT : InvoicePayment
LBIN : LendingBuyInNetting
LBRI : LaborInsurance
LCOL : LendingCashCollateralFreeMovement
LFEE : LendingFees
LICF : LicenseFee
LIFI : LifeInsurance
LIMA : LiquidityManagement
LMEQ : LendingEquityMarkedToMarketCashCollateral
LMFI : LendingFixedIncomeMarkedToMarketCashCollateral
LMRK : LendingUnspecifiedTypeOfMarkedToMarketCashCollateral
LOAN : Loan
LOAR : LoanRepayment
LOTT : LotteryPayment
LREB : LendingRebatePayments
LREV : LendingRevenuePayments
LSFL : LendingClaimPayment
LTCF : LongTermCareFacility
MAFC : MedicalAidFundContribution
MARF : MedicalAidRefund
MARG : DailyMarginOnListedDerivatives
MBSB : MBSBrokerOwnedCashCollateral
MBSC : MBSClientOwnedCashCollateral
MCDM : MultiCurrenyChequeDomestic
MCFG : MultiCurrenyChequeForeign
MDCS : MedicalServices
MGCC : FuturesInitialMargin
MGSC : FuturesInitialMarginClientOwnedSegregatedCashCollateral
MOMA : MoneyMarket
MP2B : MobileP2BPayment
MP2P : MobileP2PPayment
MSVC : MultipleServiceTypes
MTUP : MobileTopUp
NETT : Netting
NITX : NetIncomeTax
NOWS : NotOtherwiseSpecified
NWCH : NetworkCharge
NWCM : NetworkCommunication
OCCC : ClientOwnedOCCPledgedCollateral
OCDM : OrderChequeDomestic
OCFG : OrderChequeForeign
OFEE : OpeningFee
OPBC : OTCOptionBrokerOwnedCashCollateral
OPCC : OTCOptionClientOwnedCashCollateral
OPSB : OTCOptionBrokerOwnedSegregatedCashCollateral
OPSC : OTCOptionClientOwnedCashSegregatedCashCollateral
OPTN : FXOption
OTCD : OTCDerivatives
OTHR : Other
OTLC : OtherTelecomRelatedBill
PADD : PreauthorizedDebit
PAYR : Payroll
PCOM : PropertyCompletionPayment
PDEP : PropertyDeposit
PEFC : PensionFundContribution
PENO : PaymentBasedOnEnforcementOrder
PENS : PensionPayment
PHON : TelephoneBill
PLDS : PropertyLoanDisbursement
PLRF : PropertyLoanRefinancing
POPE : PointOfPurchaseEntry
PPTI : PropertyInsurance
PRCP : PricePayment
PRME : PreciousMetal
PTSP : PaymentTerms
PTXP : PropertyTax
RAPI : RapidPaymentInstruction
RCKE : RepresentedCheckEntry
RCPT : ReceiptPayment
RDTX : RoadTax
REBT : Rebate
REFU : Refund
RELG : RentalLeaseGeneral
RENT : Rent
REOD : AccountOverdraftRepayment
REPO : RepurchaseAgreement
RETL : RetailPayment
RHBS : RehabilitationSupport
RIMB : ReimbursementOfAPreviousErroneousTransaction
RINP : RecurringInstallmentPayment
RLWY : Railway
ROYA : Royalties
RPBC : BilateralRepoBrokerOwnedCollateral
RPCC : RepoClientOwnedCollateral
RPNT : BilateralRepoInternetNetting
RPSB : BilateralRepoBrokerOwnedSegregatedCashCollateral
RPSC : BilateralRepoClientOwnedSegregatedCashCollateral
RRBN : RoundRobin
RRCT : ReimbursementReceivedCreditTransfer
RRTP : RelatedRequestToPay
RVPM : ReceiveAgainstPayment
RVPO : ReverseRepurchaseAgreement
SALA : SalaryPayment
SASW : ATM
SAVG : Savings
SBSC : SecuritiesBuySellSellBuyBack
SCIE : SingleCurrencyIRSExotic
SCIR : SingleCurrencyIRS
SCRP : SecuritiesCrossProducts
SCVE : PurchaseSaleOfServices
SECU : Securities
SEPI : SecuritiesPurchaseInhouse
SERV : ServiceCharges
SHBC : BrokerOwnedCollateralShortSale
SHCC : ClientOwnedCollateralShortSale
SHSL : ShortSell
SLEB : SecuritiesLendingAndBorrowing
SLOA : SecuredLoan
SLPI : PaymentSlipInstruction
SPLT : SplitPayments
SPSP : SalaryPensionSumPayment
SSBE : SocialSecurityBenefit
STDY : Study
SUBS : Subscription
SUPP : SupplierPayment
SWBC : SwapBrokerOwnedCashCollateral
SWCC : SwapClientOwnedCashCollateral
SWFP : SwapContractFinalPayment
SWPP : SwapContractPartialPayment
SWPT : Swaption
SWRS : SwapContractResetPayment
SWSB : SwapsBrokerOwnedSegregatedCashCollateral
SWSC : SwapsClientOwnedSegregatedCashCollateral
SWUF : SwapContractUpfrontPayment
TAXR : TaxRefund
TAXS : TaxPayment
TBAN : TBAPairOffNetting
TBAS : ToBeAnnounced
TBBC : TBABrokerOwnedCashCollateral
TBCC : TBAClientOwnedCashCollateral
TBIL : TelecommunicationsBill
TCSC : TownCouncilServiceCharges
TELI : TelephoneInitiatedTransaction
TLRF : NonUSMutualFundTrailerFeePayment
TLRR : NonUSMutualFundTrailerFeeRebatePayment
TMPG : TMPGClaimPayment
TPRI : TriPartyRepoInterest
TPRP : TriPartyRepoNetting
TRAD : Commercial
TRCP : TreasuryCrossProduct
TREA : TreasuryPayment
TRFD : TrustFund
TRNC : TruncatedPaymentSlip
TRPT : RoadPricing
TRVC : TravellerCheque
UBIL : Utilities
UNIT : UnitTrustPurchase
VATX : ValueAddedTaxPayment
VIEW : VisionCare
WEBI : InternetInitiatedTransaction
WHLD : WithHolding
WTER : WaterBill

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 des transactions. Elle 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 transactions
    Cet outil permet de construire les règles spécifiques définissant les conditions d’acceptation d’un paiement
  • Scoring anti-fraude
    Le 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 faible
    Transaction acceptée
    Pas d’action
  • De 20 à 59 = risque moyen
    Transaction acceptée
    Action : Envoi événement avec détail du score pour revue manuelle et apprentissage
  • +60 = risque élevé
    Transaction refusée
    Action : 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

  • ALLOW
    Autorise le paiement
  • REFUSE
    Refuse le paiement
  • ALERT
    Adresse 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 versementEntier#payout_amount > 100
#payout_currencyDevise de versementChaî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

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')

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') 

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)

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.

Portail Client

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 profil Marchand CentralPay :

Recette Portail Client
Production Portail Client

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 Marchand : Compte Customer Détail CustomerId

  • Portail Client de RCT : https://test-customer.centralpay.net/customer/?uuid=[CustomerId]
  • Portail Client de PROD : https://customer.centralpay.net/customer/?uuid=[CustomerId]

Marchand Partenaire

CentralPay propose deux modèles distincts pour les partenaires souhaitant accompagner des marchands CentralPay dans leur intégration technique : le Partenaire Technique et le Partenaire Intégrateur. Dans les deux cas, les marchands restent en relation contractuelle directe avec CentralPay ; les modalités d’accès API, de mutualisation et de facturation diffèrent selon le modèle.

Selon la nature de leur activité, ces partenaires peuvent également être immatriculés à l’ORIAS en qualité d’IOBSP (mandataire – “MOBSP”) afin d’encadrer juridiquement certaines activités de présentation et d’accompagnement des marchands lors de leur entrée en relation avec CentralPay. Ce statut ne confère aucun droit d’accès aux fonds ni aucun pouvoir d’exécution d’opérations de paiement.

1. Partenaire Intégrateur

Le Partenaire Intégrateur est un prestataire technique mandaté par un ou plusieurs marchands standards. Il intervient en leur nom et pour leur compte, afin de faciliter leur connexion aux services CentralPay.

Chaque marchand standard dispose de son propre point de vente (POS), de son propre profil Marchand CentralPay, et signe directement ses documents de souscription et son contrat (CCSP) avec CentralPay. L’Intégrateur ne détient aucun droit contractuel sur les comptes ou fonds du marchand.

1.1. Responsabilités et fonctionnement

  • L’Intégrateur utilise les accès API délégués par chaque marchand (identifiants dédiés “Intégrateur”), dans le cadre d’un mandat contractuel entre l’Intégrateur et le marchand
  • Il peut réaliser des actions techniques nécessaires à l’intégration et au RUN (paramétrage, suivi d’Instructions Techniques, maintenance), exclusivement via ces accès, sans pouvoir consulter les soldes ni initier / modifier / annuler une opération de paiement
  • Les parcours sont généralement réalisés en “1 pour 1” : un client (payeur) règle un seul marchand, chaque marchand conservant son environnement et ses accès propres

1.2. Facturation

  • Chaque marchand est facturé directement par CentralPay au titre des services souscrits dans son CCSP
  • Le Partenaire Intégrateur n’intervient à aucun moment dans les flux financiers

1.3. Pour aller plus loin sur le modèle d’Intégrateur

  • Le Partenaire Intégrateur intervient exclusivement en soutien technique des marchands standards, 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 profil Marchand CentralPay : encaissements, versements, solde, paramétrage des accès API, gestion documentaire et contractuelle
  • CentralPay peut mettre à disposition de l’intégrateur un accès portail strictement limité à l’administration technique (suivi d’Instructions Techniques, paramétrages, opérations nécessaires au RUN). Cet accès n’autorise pas la consultation des soldes, ni la manipulation de transactions financières, ni l’initiation/modification/annulation d’opérations de paiement, ni la modification d’IBAN ou de paramètres financiers
  • Pour permettre la connexion, le marchand délègue à l’intégrateur des identifiants dédiés, avec des droits strictement limités et révocables à tout moment. Toutes les actions techniques sont réalisées via ces identifiants, sous la responsabilité du marchand
  • Si le Partenaire Intégrateur est immatriculé à l’ORIAS en qualité d’IOBSP (mandataire – “MOBSP”) et qu’un cadre contractuel distinct le prévoit, il peut accompagner le marchand dans son entrée en relation (ex. : transmission d’un lien d’inscription, assistance à la constitution du dossier). CentralPay reste seule décisionnaire de l’entrée en relation, de l’ouverture de compte et des contrôles réglementaires
  • À défaut, le Partenaire Intégrateur peut orienter le marchand vers CentralPay pour toute question contractuelle, tarifaire ou réglementaire liée aux services de paiement

2. Partenaire Technique

Le Partenaire Technique est un acteur qui développe une solution mutualisée (ex. : marketplace, plateforme SaaS), à destination de plusieurs marchands standards. Il opère depuis un ou plusieurs points de vente ouverts à son nom dans CentralPay, auxquels des marchands peuvent être rattachés.

Les opérations sont traitées par CentralPay au moyen d’un mécanisme interne de “Compte de Traitement” (utilisé par CentralPay pour recevoir et traiter temporairement les fonds en vue de leur transmission au bénéficiaire final). Le Partenaire Technique n’y dispose d’aucun droit de disposition : il transmet uniquement des données commerciales et conserve une visibilité sur les flux rattachés à ses points de vente, sans jamais pouvoir déclencher un transfert.

2.1. Responsabilités et fonctionnement

  • Le Partenaire Technique dispose de ses propres accès API délivrés par CentralPay
  • Il peut transmettre des Instructions Techniques (données commerciales, panier, commission, références, évènements logistiques…), et suivre les transactions rattachées aux marchands liés à ses points de vente
  • Il n’a aucun accès aux fonctionnalités de transfert (notamment l’endpoint transfer) et ne peut pas accéder aux soldes ni effectuer de versements : CentralPay décide et exécute les opérations et mises à disposition de fonds
  • Dans ce cadre, CentralPay peut gérer des paiements en mode “1 pour X” : un client (payeur) peut régler plusieurs marchands simultanément, CentralPay assurant ensuite la ventilation/mise à disposition au bénéfice des marchands

2.2. Facturation

  • Le Partenaire Technique est facturé par CentralPay en fonction des opérations réalisées via son (ou ses) point(s) de vente, conformément aux conditions prévues au CCSP et aux documents de souscription applicables
  • Lorsqu’une commission est prévue, CentralPay peut, sur la base des données commerciales transmises et selon les règles contractuelles, ventiler les flux : la part de commission est alors créditée sur le compte de commission du Partenaire Technique, sans que celui-ci ne détienne de fonds de tiers

Pour aller plus loin sur le modèle de 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 de marchands standards associés
  • Chaque marchand associé contracte directement avec CentralPay (CCSP et documents de souscription) et dispose de son propre profil Marchand CentralPay
  • Le Partenaire Technique transmet à CentralPay les données commerciales des transactions (montant commercial, références, commission, évènements logistiques…). Ces données ne déclenchent aucun effet financier automatique : CentralPay analyse, contrôle, puis décide de traiter l’opération et d’initier les mises à disposition nécessaires
  • CentralPay peut décider d’appliquer une retenue temporaire et/ou une date de déblocage pour la mise à disposition des fonds au bénéfice d’un marchand (ex. : jusqu’à une livraison/expédition), selon sa politique de risque, les règles des réseaux et ses obligations réglementaires
  • Le Partenaire Technique ne détient jamais de fonds de tiers, ne donne aucun ordre de paiement, et ne peut intervenir dans les versements ou la tenue de compte. Il n’agit ni pour compte de tiers ni au nom de CentralPay
  • L’accès du Partenaire Technique est limité à une vue et à des fonctionnalités strictement nécessaires à la transmission et au suivi d’Instructions Techniques ; il n’existe aucun accès au “Compte de Traitement” en tant que compte (pas de droit d’exécution, pas de droit de disposition, pas d’accès aux soldes)
  • En cas d’immatriculation ORIAS en qualité d’IOBSP (mandataire – “MOBSP”) et si un cadre contractuel distinct le prévoit, le Partenaire Technique peut accompagner les marchands dans leur entrée en relation (transmission de lien d’inscription, assistance documentaire), sous réserve de validation préalable par CentralPay

3. Règles de conformité communes

Pour les deux modèles :

  • Le Partenaire n’est pas prestataire de services de paiement, ne dispose d’aucun pouvoir d’exécution d’opérations de paiement et ne détient aucun fonds de tiers dans le cadre des services de paiement
  • Les comptes, la mise à disposition des fonds, les versements et la protection des fonds sont gérés et encadrés par CentralPay, en sa qualité de PSP
  • Aucune délégation réglementaire d’exécution de service de paiement (type agent PSP) n’est accordée à ces partenaires

3.1. Relation contractuelle avec les marchands

Le Partenaire (technique ou intégrateur) conserve sa propre relation commerciale avec ses utilisateurs et reste responsable des services proposés sur sa plateforme. Il définit librement les conditions générales d’utilisation applicables à ses services.

De leur côté, les marchands associés :

  • Ouvrent leur propre profil Marchand CentralPay, lors d’un parcours d’enrôlement individualisé
  • Signent directement avec CentralPay le CCSP et les documents de souscription applicables (dont la désignation éventuelle d’un partenaire)
  • Reconnaissent que le partenaire pourra réaliser certaines actions techniques dans le cadre de son intégration (ex. : transmission d’une commande, remontée de panier, suivi d’Instructions Techniques), sans que cela ne constitue un ordre de paiement ni un accès aux fonds

CentralPay agit alors directement auprès du marchand associé pour :

  • la création et la gestion de son compte (signature électronique, affectation des POS, rattachement au partenaire)
  • le traitement réglementaire des justificatifs transmis (KYC/KYB, lutte contre le blanchiment et le financement du terrorisme)
  • la mise à jour documentaire ou les vérifications complémentaires nécessaires à la bonne exécution des services de paiement

L’ensemble de cette organisation repose sur un dispositif contractuel strictement balisé :

  • Le partenaire signe un contrat dédié avec CentralPay, encadrant son rôle et ses droits d’accès (API/portail) et, le cas échéant, les modalités de commissionnement
  • Les marchands associés signent directement leurs documents contractuels CentralPay (CCSP et souscription), dans lesquels leur association au partenaire peut être précisée
  • Les conditions générales du partenaire s’appliquent uniquement à l’usage de sa propre plateforme. Elles ne peuvent ni interférer avec les services de paiement CentralPay, ni se substituer aux documents contractuels CentralPay

4. Déclaration ORIAS (IOBSP / “MOBSP”)

Un Partenaire Intégrateur ou un Partenaire Technique peut, si son activité le nécessite, être immatriculé à l’ORIAS en qualité d’IOBSP (mandataire – “MOBSP”). Ce statut est distinct de celui d’agent de prestataire de services de paiement (au sens de l’article L.523-1 du Code monétaire et financier).

Cette immatriculation peut permettre, selon le cadre contractuel applicable :

  • De présenter les services de CentralPay et d’assister le marchand dans ses démarches d’entrée en relation
  • D’accompagner la constitution du dossier (sans jamais se substituer aux contrôles réglementaires réalisés par CentralPay)

Ce statut ne modifie en rien les restrictions précédemment énoncées : il ne confère aucun droit sur les fonds et aucun pouvoir d’exécution d’opérations de paiement. CentralPay demeure seul responsable de l’entrée en relation, des contrôles réglementaires et de l’exécution des services de paiement.

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 :

  1. Envoyez un e-mail à notre service client qui inclut votre raison sociale et votre numéro SIREN
  2. 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

  1. Allez sur le site de l’ORIAS
  2. Faites défiler vers le bas jusqu’à voir la section Comment ça marche ?
  3. Cliquez sur S’inscrire

Vous serez redirigé vers le formulaire d’inscription.

2.2. Saisir les informations

  1. Entrez votre numéro SIREN
  2. Saisissez les informations sur votre entreprise. Assurez-vous de vous inscrire en tant que personne morale / entité juridique
  3. Saisissez les informations de votre représentant légal
  4. Saisissez les coordonnées de votre représentant légal
  5. Saisissez les coordonnées de votre entreprise, y compris votre site web si vous en avez un
  6. Entrez l’adresse de votre entreprise
  7. 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.

  1. Retournez sur le site de l’ORIAS
  2. Cliquez sur Connexion / Login
  3. Saisissez votre identifiant et votre mot de passe provisoire depuis votre email
  4. 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

  1. Cliquez sur Nouvelle inscription pour démarrer votre inscription, un formulaire apparaît
  2. Choisissez Activité IOB
  3. Choisissez ensuite Mandataire non-exclusif en opérations de banque et en services de paiement (MOBSP)
  4. Cliquez sur Soumettre

3.2. Fournissez des informations complémentaires

  1. 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.
  2. Pour la première question, choisissez la réponse : Je déclare que l’on ne me confie pas de fonds
  3. 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
  4. 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
  5. Cliquez sur Aller à l’étape « Pièces justificatives »

3.3. Fournissez vos documents justificatifs

  1. Soumettez votre KBIS
  2. Soumettez votre mandat d’attestation, qui est le certificat de mandat de l’étape 1.1
  3. Soumettez votre Capacité professionnelle pour « vous » (Niveau I IOBSP), qui constitue votre preuve d’aptitude professionnelle de l’étape 1.2.
  4. Cliquez sur Aller à l’étape suivante

3.4. Payez votre inscription

La dernière étape consiste à payer votre inscription.

  1. 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
  2. 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)
  3. Après avoir payé, cliquez sur Télécharger la facture pour télécharger votre reçu
  4. Cliquez sur Terminer la demande d’inscription pour finaliser votre inscription
  5. 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 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èvementsddTransaction
  • R-transaction SDDrefund / sddTransactionReversal
  • Retours, statuts et webhooks

Informations générales

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 profil Marchand CentralPay correspondant à votre ICS. Vous pouvez le retrouver depuis votre Portail Marchand en utilisant un profil avec des droits Admin : Administration Mon profil marchand 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

1.1. 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.

1.2. 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

1.3. 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ébiteur
    POST /bankAccount/{bankAccountId}
    Permet de mettre à jour l’IBAN d’un compte bancaire débiteur lié à un mandat SEPA existant.
  • Modifier une RUM
    Cette 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éancier
    En cas de changement de la structure juridique réalisant les prélèvements, un nouveau Profil Marchand CentralPay (Merchant) doit être créé. Les mandats existants devront alors être redéclarés sous ce nouveau profil 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 B2B
    NB : 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 :

  1. Créer des transactions SDD individuelles : pour réaliser une ou plusieurs transactions SDD par API en complète autonomie
  2. 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).
  3. 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

1.1. 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.

1.2. [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 Marchand.

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 Marchand. 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 de paiement 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.

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

Contestations
MD06 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 banque
MS02Raison non communiquée (peut inclure des contestations ou des rejets)
Rejets
AM04 Provisions insuffisantes
Tout autre codeRejets techniques divers (compte clôturé, bloqué, IBAN non atteignable…)

👉 Consultez la liste complète des codes de rejet SDD ➝

2. Statuts liés aux prélèvements SEPA

Consultez les Statuts des SDD Transaction ➝

Consultez les Statuts des Mandates ➝

Consultez les Statuts des bankAccount ➝ (à venir)

Consultez les Statuts des Subscription ➝

Consultez les Statuts des Installment ➝

3. Webhooks liés aux prélèvements SEPA

Consultez les Webhooks des SDD Transaction ➝

Consultez les Webhooks des Mandates ➝

Consultez les Webhooks des bankAccount ➝

Consultez les Webhooks des Customer ➝

Consultez les Webhooks des Subscription ➝

Consultez les Webhooks des Installment ➝

CARD Transaction

Articles

  • Transaction
  • Card
  • Credit
  • Disputes

Transaction

See more about card transactions

jQuery(document).ready( function($) { window.live_699ea29d98367 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29d98367", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29d98367.load(); });

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).

jQuery(document).ready( function($) { window.live_699ea29d987dc = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Card.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29d987dc", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29d987dc.load(); });

Credit

See more about Credit

jQuery(document).ready( function($) { window.live_699ea29d98bdf = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Credit.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29d98bdf", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29d98bdf.load(); });

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.

jQuery(document).ready( function($) { window.live_699ea29d98fed = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Dispute.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29d98fed", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29d98fed.load(); });

SCT Transaction Refund

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_699ea29d994db = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction Refund.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29d994db", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29d994db.load(); });

SDD purpose codes

The categoryPurposeCode(1) and purposeCode(2) used in the SDDTransaction.

SALA(1) (2)Salary Payment
TREA(1) (2)Treasury Payment
ADVA(2)Advance Payment
AGRT(2)Agricultural Transfer
ALMY(2)Alimony Payment
BECH(2)Child Benefit
BENE(2)Unemployment Disability Benefit
BONU(2)Bonus Payment
CASH(1) (2)Cash Management Transfer
CBFF(2)Capital Building
CHAR(2)Charity Payment
COLL(2)Collection Payment
CMDT(2)Commodity Transfer
COMC(2)Commercial Payment
COMM(2)Commission
COST(2)Costs
CPYR(2)Copyright
DIVI(1) (2)Dividend
FREX(2)Foreign Exchange
GDDS(2)Purchase Sale Of Goods
GOVT(1) (2)Gouvernment Payment
IHRP(2)Instalment Hire Purchase Agreement
INTC(1) (2)Intra Company Payment
INSU(2)Insurance Premium
INTE(1) (2)Interest
LIFC(2)Licence Fee
LOAN(1) (2)Loan
LOAR(2)Loan Repayment
NETT(2)Netting
PAYR(2)Payment Roll
PENS(1) (2)Pension
REFU (2)Refund
RENT(2)Rent
ROYA(2)Royalties
SCVE(2)Purchase Sale Of Services
SECU(1) (2)Securities
SSBE(1) (2)Social Security Benefit
SUBS(2)Subscription
TAXS(1) (2)Tax Payment
COMT(2)Consumer Third Party Consolidated Payment
DBTC(2)Debit Collection Payment
SUPP(1) (2)Supplier Payment
HEDG(1) (2)Hedging
MSVC(2)Multiple Service Types
NOWS(2)Not Otherwise Specified
CARD(2)Card Payment
CDBL(2)Credit Card Bill
FERB(2)Ferry
AIRB(2)Air
BUSB(2)Bus
RLWY(2)Railway
CVCF(2)Convalescent Care Facility
DNTS(2)Dental Services
ANTS(2)Anesthesia Services
HLTC(2)Home Health Care
HSPC(2)Hospital Care
ICRF(2)Intermediate Care Facility
LTCF(2)Long Term Care Facility
MDCS(2)Medical Services
VIEW(2)Vision Care
DMEQ(2)Durable Medicale Equipment
CBTV(2)Cable TV Bill
ELEC(2)Electricity Bill
GASB(2)Gas Bill
PHON(2)Telephone Bill
OTLC(2)Other Telecom Related Bill
WTER(2)Water Bill
STDY(2)Study
PRCP(2)Price Payment
INSM(2)Installment
RINP(2)Recurring Installment Payment
OFEE(2)Opening Fee
CFEE(2)Cancellation Fee
GOVI(2)Government Insurance
INPC(2)Insurance Premium Car
LBRI(2)Labor Insurance
LIFI(2)Life Insurance
PPTI(2)Property Insurance
HLTI(2)Health Insurance
CLPR(2)Car Loan Principal Repayment
ESTX(2)Estate Tax
HLRP(2)Housing Loan Repayment
CSLP(2)Company Social Loan Payment To Bank
HSTX(2)Housing Tax
INTX(2)Income Tax
NITX(2)Net Income Tax
NWCH(2)Network Charge
NWCM(2)Network Communication
BEXP(2)Business Expenses
TRFD(2)Trust Fund
RCPT(2)Receipt
PTSP(2)Payment Terms
OTHR(2)Other
WHLD(1)(2)With Holding
CORT(1)Trade Settlement Payment
VATX(1)Value Added Tax Payment
TRAD(1)Trade

Charge

jQuery(document).ready( function($) { window.live_699ea29d9a2a5 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Charge.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29d9a2a5", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29d9a2a5.load(); });

Versement sortant

Les versements sortants sont des virements émis depuis votre compte de paiement CentralPay vers le compte bancaire associé.

Ils peuvent être réalisés manuellement depuis le Portail Marchand ou via l’API Payment, ou encore être automatisés selon la fréquence définie dans vos paramètres de reversement.

Depuis le Portail Marchand, seuls les profils utilisateurs titulaires du compte (dit « Legal ») peuvent paramétrer et exécuter les versements.

1. Modes de versement

1.1. Versement automatique

Le titulaire du compte peut définir la périodicité du versement automatique selon trois options :

  • Quotidienne
  • Hebdomadaire : choix du jour de la semaine (ex. chaque mardi)
  • Mensuelle : choix du jour du mois (ex. le 5 du mois)

Le service de versement automatique exécute chaque virement à 01h00 du jour sélectionné, à partir des fonds disponibles (AVAILABLE) sur le compte de paiement.

Cas d’un versement hebdomadaire programmé le mardi :
CentralPay exécutera la création du virement le mardi matin avec les fonds disponibles sur le compte de paiement jusqu’à 01h00.
ℹ️ En cas de versement quotidien, l’intégralité des fonds disponibles est virée chaque jour vers votre compte bancaire. 
Le solde de votre compte CentralPay est donc nul en début de journée.
Si vous devez effectuer des remboursements clients, ceux-ci pourront être réalisés à partir du début d’après-midi (vers 14h), une fois les fonds des transactions du jour crédités par les banques émettrices.
Une évolution permettra prochainement de différer les versements automatiques d’un ou plusieurs jours afin de conserver des fonds disponibles tout en maintenant une lecture comptable cohérente. Contactez le support si vous êtes concernés.

Lettrage des versements automatiques

Chaque versement automatique est associé à la liste détaillée des opérations incluses dans le virement. Cette fonction permet un rapprochement automatique entre les opérations encaissées et le versement correspondant.

Le détail des opérations d’un versement est accessible depuis le Portail Marchand Administration Mon compte Versements en sélectionnant le versement souhaité.

Le premier versement automatique ne contient pas encore de détail, car il initialise le système de lettrage. Les versements suivants incluent la liste complète des opérations concernées.

1.2. Versement manuel (via Portail Marchand ou API)

Un versement peut être exécuté manuellement depuis le Portail Marchand ou via l’API Payment. Le montant du versement peut être librement défini, dans la limite des fonds disponibles sur le compte.

Les ordres de versement effectués avant 05h00 sont exécutés immédiatement. Ceux créés après 05h00 sont exécutés le lendemain à 05h00.

2. Identification des opérations liées à chaque versement

Le lettrage des versements est une fonctionnalité du Portail Marchand qui associe chaque versement automatique à la liste détaillée des opérations incluses dans ce versement.

Périmètre : le lettrage s’applique exclusivement aux versements automatiques. Les versements manuels ne disposent pas de cette association automatique.

Contenu du détail : liste des opérations correspondant au versement, incluant les montants, dates de valeur et références nécessaires au rapprochement comptable.

2.1. Accéder au détail d’un versement automatique

Depuis le Portail Marchand Administration Mon compte Versements :

  • Sélectionnez le versement concerné dans la liste.
  • Ouvrez le détail du versement pour afficher les opérations associées.
  • Utilisez le bouton Exporter pour télécharger les données si nécessaire.

Ou, depuis le Portail Marchand Compte Mes opérations :

  • Filtrez par Type = Versement sortant ou par Date de valeur.
  • Dans la colonne Actions du versement, cliquez sur la flèche, puis sur Voir les opérations du versement.
ℹ️ Le premier versement automatique ne comporte pas de détail : il sert d’initialisation du lettrage.
Les versements automatiques suivants incluent la liste complète des opérations associées.

2. Disponibilité des fonds

Les versements comprennent uniquement les fonds disponibles (AVAILABLE) sur le compte de paiement. Les fonds issus d’une transaction par carte bancaire deviennent disponibles à J+2.

Exemple :
Une transaction carte réalisée le lundi apparaît en « Pending » le lundi, devient « Available » le mardi soir, le versement automatique est exécuté le mercredi à 01h00, et le virement SEPA est crédité sur le compte bancaire le jeudi.
Schéma de disponibilité des fonds
ℹ️ Le paramètre EscrowDate peut influer sur la date de disponibilité des fonds d’une transaction (cas spécifique aux partenaires / mandataires).

3. Création d’un versement manuel

3.1. Depuis le Portail Marchand

Seuls les utilisateurs titulaires du compte (« Legal ») ou disposant d’un rôle administrateur (« Natural Admin ») peuvent créer un versement manuel depuis le Portail Marchand.

Depuis le Portail Marchand Administration Mon compte Versements :

  • Cliquez sur Transferts externes.
  • Sélectionnez le compte d’émission.
  • Indiquez le montant du versement et l’IBAN destinataire.
  • Cliquez sur Confirmer le transfert.

Une fois validé, le versement est exécuté selon les délais mentionnés ci-dessus.

Recette Portail Marchand – Versements sortants
Production Portail Marchand – Versements sortants

3.2. Depuis l’API

La création d’un versement manuel peut également être réalisée via l’API Payment. Pour les détails techniques, consultez la documentation développeur : Développeurs Versement sortant .

4. Versements en devises via le réseau SWIFT

Les virements internationaux sont exécutés via le réseau SWIFT, contrairement aux virements SEPA utilisés dans la zone européenne. Ce service permet d’émettre des versements en euros ou dans d’autres devises vers des comptes situés hors zone SEPA.

Si le compte bénéficiaire n’est pas accessible via SEPA ou s’il s’agit d’un compte en devise, les versements peuvent être réalisés via SWIFT. Ce service est activé sur demande auprès de votre interlocuteur CentralPay.

ℹ️ Les virements SWIFT présentent des frais supérieurs aux virements SEPA. Il est possible de paramétrer un seuil de fonds disponibles avant déclenchement automatique des versements.

5. Retours, statuts et webhooks

Pour suivre le cycle de vie des versements et automatiser leur traitement :

  • Consulter la documentation des statuts de versement ➝
  • Consulter la documentation des webhooks de versement ➝

Portail d'inscription

Le portail d’inscription permet la création d’un profil Marchand CentralPay en assurant les étapes d’entrée en relation : 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 marchands Mandataires, il permet donc de créer facilement des Profils Marchands Participants 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’inscription à l’un de vos futurs participants, vous pouvez utiliser le service de demande d’enrôlement.

Accès :

Recette Portail d’Inscription
Production Portail d’Inscription

Paiements récurrents

Articles

  • Abonnementsubscription
  • Fractionnéinstallment

Abonnement

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 Marchand. 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 :

Recette Portail Marchand – Modèles d’abonnements
Production Portail Marchand – Modèles d’abonnements

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 Marchand.

Accès :

Recette Portail Marchand – Paramétrages d’abonnements
Production Portail Marchand – Paramétrages d’abonnements

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 Marchand 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é

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

Accès :

Recette Portail Marchand – Paramétrages Paiements Fractionnés
Production Portail Marchand – Paramétrages Paiements Fractionnés

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

SCT transaction Refund Reversal

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_699ea29d9e241 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT transaction Refund Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29d9e241", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29d9e241.load(); });

Marchand Mandataire

Agent de Prestataire de Services de Paiement (Agent PSP) ou Distributeur de Monnaie Électronique (DME)

Certains projets nécessitent un cadre réglementaire spécifique permettant à des mandataires d’agir au nom et pour le compte de CentralPay, établissement agréé et supervisé par l’ACPR. Deux statuts principaux peuvent être mobilisés en France :

  • L’Agent de Prestataire de Services de Paiement (Agent PSP), pour les projets nécessitant une gestion active des flux de paiement (encaissements, transferts, versements), dans le strict cadre d’un mandat et sous la responsabilité de CentralPay
  • Le Distributeur de Monnaie Électronique (DME), pour des projets reposant sur des mécanismes de valeur stockée / monnaie électronique (plateformes C2C, titres prépayés, réseaux fermés, etc.), dans le cadre d’un contrat de distribution

Ces modèles peuvent offrir une autonomie opérationnelle importante au mandataire, mais s’accompagnent de contraintes réglementaires fortes et d’une supervision permanente, sous la responsabilité de CentralPay.

1. Agent de Prestataire de Services de Paiement (Agent PSP)

1.1. Cas d’usage typiques

  • Plateformes B2B avec flux financiers complexes
  • Outils de gestion financière ou de trésorerie pour tiers
  • Solutions SaaS intégrant l’encaissement et la mise à disposition de fonds à des bénéficiaires

1.2. 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, au nom et pour le compte de CentralPay, dans les limites du mandat et des droits techniques configurés.

Fonctionnalités (selon périmètre contractuel et habilitations) :

  • Mise en relation commerciale et promotion des services CentralPay auprès des utilisateurs finaux (les “Participants”)
  • Accompagnement des Participants à l’ouverture de comptes CentralPay (parcours CentralPay et/ou parcours piloté par l’Agent, selon modèle retenu)
  • Ouverture, au nom de l’Agent, de comptes techniques dédiés à la ségrégation des flux (ex. compte de collecte et compte de commission), sans que l’Agent ne devienne propriétaire des fonds des Participants
  • Transmission à CentralPay des demandes/instructions nécessaires à la bonne exécution des services (ex. affectation des fonds, demandes de versement, demandes de remboursement), CentralPay restant seul exécutant
  • Gestion du support de premier niveau (N1) et traitement opérationnel défini comme prestation externalisée, avec escalade vers CentralPay lorsque requis

1.3. Les 3 options du modèle Agent (délégation KYC/KYB)

Le modèle Agent de CentralPay prévoit trois niveaux de délégation en matière d’inscription et de contrôles KYC/KYB. Une seule option est applicable à la fois, et le niveau retenu est formalisé contractuellement :

  • Option A – Agent simple (absence de délégation de contrôle) : l’Agent agit comme Agent PSP déclaré mais sans délégation KYC/KYB. Il se limite à la mise en relation commerciale et oriente les Participants vers les parcours/outils fournis par CentralPay. Il ne reçoit aucun mandat pour collecter des pièces justificatives ni effectuer des contrôles.
  • Option B – Agent collecteur (délégation de la complétude administrative) : l’Agent est mandaté pour constituer le dossier administratif du Participant pour le compte de CentralPay. Il collecte les pièces et réalise des vérifications strictement formelles de complétude (lisibilité, validité apparente, cohérence documentaire). Il ne réalise pas d’analyse de risque, ni filtrage sanctions/PPE, ni analyse approfondie ; la décision d’entrée en relation demeure celle de CentralPay.
  • Option C – Agent délégataire de contrôle (délégation de niveau 1) : option réservée aux Agents disposant d’une organisation conformité dédiée et expressément validée par CentralPay. L’Agent peut collecter les pièces KYC/KYB, vérifier la complétude/cohérence et assurer un contrôle de vigilance de niveau 1 exclusivement formel et administratif. Il peut également participer au traitement des alertes de niveau 1 (collecte/qualification administrative/transmission), selon des procédures strictes. CentralPay conserve la décision finale et peut révoquer l’option à tout moment en cas de défaillance.

1.4. CentralPay reste responsable

  • CentralPay reste pleinement responsable des services fournis aux Participants
  • L’Agent agit dans le strict cadre du mandat qui lui est confié, et selon les habilitations techniques mises en place
  • Toute activité réalisée via la plateforme est auditable, traçable et documentée

1.5. Contraintes réglementaires

  • Signature d’un contrat d’Agent et de ses documents associés
  • Enregistrement officiel en tant qu’Agent sur le registre de l’ACPR (via CentralPay)
  • Évaluation de la capacité organisationnelle du mandataire et exigences renforcées (conformité, sécurité, confidentialité, continuité, contrôle interne)
  • Reporting périodique à CentralPay (volume d’activité, incidents, qualité de service) et possibilité d’audit sur pièce ou sur site
  • Formations obligatoires des équipes opérationnelles, selon le périmètre de délégation

2. Distributeur de Monnaie Électronique (DME)

2.1. Cas d’usage typiques

  • 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

2.2. Rôle du DME

Le DME agit pour le compte de CentralPay dans la mise à disposition et la gestion opérationnelle de la monnaie électronique, dans les limites prévues par le contrat de distribution et les règles définies par CentralPay.

Fonctionnalités :

  • Mise en relation de CentralPay avec les utilisateurs finaux (les “sous-marchands” / utilisateurs de monnaie électronique)
  • Transmission à CentralPay des instructions de chargement (montant, bénéficiaire, commission), CentralPay restant seul émetteur/exécutant
  • Visualisation et suivi des opérations via un dispositif de suivi dédié (ex. vue consolidée / compte centralisateur selon modèle), sans droit de disposition sur les fonds
  • Transmission des demandes/instructions permettant la circulation de monnaie électronique entre utilisateurs dans un cadre défini (réseau fermé, règles contractuelles), sous contrôle de CentralPay
  • Transmission des demandes de remboursement de monnaie électronique à la demande de l’utilisateur, selon les règles applicables
  • Détention d’un compte de commission pour percevoir les frais définis dans ses CGU

2.3. Limites fonctionnelles

  • Le DME ne détient jamais les fonds : il agit comme intermédiaire et ne peut pas conserver, stocker ou utiliser les fonds collectés
  • Il n’est pas autorisé à créer/émettre lui-même de la monnaie électronique
  • Il ne peut pas offrir de services de paiement non explicitement autorisés dans le cadre contractuel défini par CentralPay
  • Il ne peut pas sous-traiter son activité, sauf accord explicite de CentralPay

2.4. Contraintes réglementaires

  • Signature d’un contrat de distribution avec CentralPay
  • Déclaration / formalités de mise en conformité réalisées sous l’initiative et la responsabilité de CentralPay, selon la réglementation applicable
  • 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 / des habilitations
    • Reporting régulier sur l’activité
    • Formation obligatoire des équipes du DME
    • Validation des CGU utilisées auprès des utilisateurs

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), adossée à la Banque de France, tient le registre des prestataires régulés et de leurs agents. Dans le cadre d’un modèle Agent PSP, CentralPay (établissement agréé) constitue et dépose la notification/dossier d’enregistrement de l’Agent et demeure l’unique interlocuteur de l’ACPR.

Le futur Agent ne peut pas déposer de dossier directement auprès de l’ACPR : les échanges sont pilotés par CentralPay, avec le concours de l’Agent (transmission de pièces, réponses aux questions, éléments d’organisation).

Étapes de déclaration d’un Agent

ÉtapeDescription
1. Cadrage & pré-qualificationAnalyse du modèle, du périmètre fonctionnel et des responsabilités ; validation juridique & conformité côté CentralPay
2. Constitution du dossierCollecte des pièces société/dirigeants, éléments d’organisation (process, contrôles, sécurité), CGU Agent/Participants, prévisions d’activité
3. Dépôt / échanges ACPRDépôt réalisé par CentralPay ; réponses aux demandes complémentaires pilotées par CentralPay avec l’aide de l’Agent
4. Enregistrement & activationÀ l’issue de l’enregistrement sur le registre public, CentralPay peut activer l’Agent en production (avant cela, l’activité reste bloquée)

1. Responsabilités de l’Agent

En tant qu’Agent PSP, l’Agent agit au nom et pour le compte de CentralPay dans le périmètre défini contractuellement. CentralPay reste pleinement responsable de la fourniture des services de paiement et de la conformité réglementaire ; toutefois, l’Agent doit appliquer strictement les procédures et exigences opérationnelles fixées par CentralPay, notamment en matière de LCB-FT et de lutte contre la fraude.

L’Agent est notamment responsable de :

  • La compréhension de l’activité de ses marchands/Participants et de la cohérence économique des opérations initiées via son modèle
  • La mise en œuvre des dispositifs opérationnels attendus (process internes, contrôles, traçabilité, gestion des incidents) et du respect des consignes CentralPay
  • La lutte contre la fraude (détection, escalade, coopération) et le respect des obligations de vigilance dans le périmètre confié
  • La coopération avec CentralPay en cas de demande d’information (contrôles, audit, questions ACPR), et la transmission rapide des pièces demandées

L’Agent doit signer :

  • Un Contrat d’Agent PSP avec CentralPay (mandat / externalisation / supervision / flux)
  • Le CCSP (Contrat Cadre de Services de Paiement) applicable à l’Agent en sa qualité de client professionnel de CentralPay (accès plateforme, services souscrits)
  • Des CGU Agent (ou documentation équivalente) encadrant sa relation avec ses Participants, incluant les mentions nécessaires sur les parcours, la ventilation, les dates de déblocage et les éventuelles demandes de versements

Selon le périmètre retenu (et les annexes applicables), certaines fonctions peuvent être déléguées à l’Agent (ex. collecte et contrôles formels KYC/KYB). CentralPay reste seule décisionnaire de l’entrée en relation, de l’ouverture/maintien des comptes et des décisions réglementaires.

2. Devenir Partenaire Agent CentralPay

Le processus d’enregistrement d’un Agent dépend de la complétude du dossier, du niveau de délégation opérationnelle et des échanges avec l’ACPR. En pratique, il s’étale généralement sur plusieurs semaines et peut être prolongé si des pièces complémentaires sont demandées.

2.1. Résumé des étapes

ÉtapeDétails
1. Compréhension du modèle– Cadrage du périmètre et des responsabilités
– Description des flux & cas d’usage
– Validation par les équipes Juridique & Conformité de CentralPay
2. Offre commerciale– Présentation par CentralPay
– Alignement sur le périmètre (technique, opérationnel, conformité)
3. Contractualisation– Signature du Contrat d’Agent
– Signature/acceptation du CCSP applicable à l’Agent
4. Test & intégration– Accès sandbox
– Intégration technique & recette
– Vérification des parcours (onboarding/consentement/affichages)
5. Instruction ACPR– Collecte des éléments réglementaires
– Constitution et dépôt du dossier auprès de l’ACPR par CentralPay
– Gestion des questions / compléments
6. Mise en production– Activation en production après enregistrement
– Tests en environnement de recette / production encadrée

2.2. Pièces à fournir à CentralPay

Phase 1 – Pré-constitution du dossier

  • CGU Agent / documentation contractuelle Participants (parcours, consentements, information “agent”, ventilation/commission, dates de déblocage, modalités de remboursement)
  • Définition des activités régulées, services associés, modèle d’affaires
  • Organigramme (y compris répartition des effectifs par service) et description des rôles clés
  • Structure de l’actionnariat / gouvernance
  • Flux prévisionnels sur 3 ans confiés à CentralPay (volumes, montants, typologies)
  • Nombre d’enrôlements prévisionnels sur 3 ans
  • Cas de reprise de KYC existant (migration) le cas échéant

Phase 2 – Déclaration auprès du régulateur

  • Signature du Contrat d’Agent (préalable au dépôt du dossier)
  • CentralPay collecte et dépose les pièces suivantes (liste indicative) :
    • Kbis < 3 mois de la société et, le cas échéant, des sociétés de tête/dirigeantes
    • Statuts à jour signés
    • Pièces d’identité couleur des dirigeants
    • CV des dirigeants datés et signés
    • Casier judiciaire des dirigeants (si demandé)
    • Déclarations de non-condamnation des dirigeants
    • Répartition de la détention des parts / actionnariat
    • Kbis des personnes morales actionnaires (si applicable) + organigramme de groupe (si applicable)
    • PV d’AG récents (fusion, perte > 50% du capital, changement direction, etc.)
    • Registre des bénéficiaires effectifs (si demandé)

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 : généralement ~2 semaines à compter de la réception d’un dossier complet
  • Délai ACPR : variable ; peut aller jusqu’à ~2 mois, avec premières questions sous 30 jours en général

2.4. Fin d’instruction

  • L’Agent peut démarrer l’activité uniquement après enregistrement effectif (publication sur le registre public)
  • Avant enregistrement, CentralPay n’active pas l’Agent en production et peut maintenir les comptes de l’Agent bloqués (IN/OUT)
  • L’Agent est référencé dans les registres publics avec un numéro/identifiant d’enregistrement pouvant devoir figurer dans certaines communications/mentions

2.5. Particularité – Agents Télécom SVA (numéros surtaxés)

  • Obligation de fournir un récapitulatif des minutes par opérateur
  • Transmission du détail de répartition des encaissements (ventilation) à CentralPay
  • CentralPay met en place des contrôles complémentaires afin de s’assurer que les marchands/Participants sont correctement crédités

3. Traitement des flux agent

Cette section définit les règles applicables au traitement et au contrôle des flux financiers dans un modèle Agent. Elle précise les responsabilités, la structure des comptes et les contrôles complémentaires mis en œuvre afin de répondre aux exigences légales et prudentielles.

3.1. Responsabilité de l’établissement

Conformément au Code monétaire et financier (CMF), l’Agent agit au nom et pour le compte de CentralPay. CentralPay demeure pleinement responsable du respect des obligations réglementaires, notamment en matière de LCB-FT, de sécurité et de protection des fonds.

CentralPay met en place un dispositif de contrôle interne couvrant l’ensemble du cycle des flux, y compris ceux traités dans le cadre de ses Agents (supervision, auditabilité, traçabilité).

3.2. Comptes opérationnels des agents

Pour les besoins de ségrégation des flux, CentralPay met à disposition (dans ses livres) :

  • Compte de Collecte : compte de transit destiné à recevoir les fonds liés aux opérations initiées via le modèle Agent, et à permettre leur affectation/ventilation vers les comptes des Participants
  • Compte de Commission : destiné à recevoir la rémunération revenant à l’Agent (commissions) et à régler les frais dus à CentralPay
  • Compte de paiement Agent (optionnel) : destiné aux opérations courantes de l’Agent pour son compte propre (approvisionnement, paiement de factures SaaS, etc.), distinct des flux tiers et des commissions

3.3. Traitement des opérations

Lorsqu’un Agent initie une transaction pour le compte d’un ou plusieurs Participants :

  1. L’Agent transmet à CentralPay les informations nécessaires à la ventilation (part des Participants, commission Agent, références), soit directement dans la transaction, soit au plus tard en fin de journée via un traitement par lot lorsque cela est objectivement nécessaire.
  2. CentralPay exécute ensuite, sous sa responsabilité, les opérations d’affectation/ventilation et, le cas échéant, les mouvements nécessaires (dont la commission vers le compte de commission), conformément au cadre contractuel et aux contrôles réglementaires.

Le Compte de Collecte doit rester un compte de transit : l’Agent ne doit pas conserver passivement des fonds de tiers au-delà des délais strictement nécessaires au traitement (pas de “trésorerie flottante”).

Les modalités de versement sortant (Payout) sont encadrées par CentralPay ; le Compte de Collecte n’a pas vocation à servir de compte de versement sortant “libre”.

3.4. Dates de déblocage et montants prévisionnels

Fonctionnement

Selon le modèle contractuel, l’Agent peut transmettre ou paramétrer (en qualité d’intermédiaire mandaté par le Participant) une date de déblocage (endpoint API : EscrowDate) correspondant à un évènement contractuel objectivable (ex. livraison/expédition/fin de prestation). Cette date ne produit aucun effet financier automatique : CentralPay demeure seule décisionnaire de la mise à disposition des fonds (acceptation, refus, report, encadrement).

Jusqu’à la date de déblocage :

  • Les fonds restent protégés et indisponibles (ni accessibles à l’Agent, ni utilisables par le Participant)
  • Le Participant peut visualiser l’opération sous forme d’opération à venir ou de montant prévisionnel, avec affichage de la date de disponibilité, sans constituer un crédit au solde disponible

Conditions de conformité

L’usage des dates de déblocage est autorisé uniquement si :

  • Information claire : l’Agent doit expliquer à ses Participants comment fonctionne la date de déblocage (principes, délais, exceptions).
  • Affichage transparent : l’interface Participant doit indiquer la date de l’opération, la date de disponibilité prévue et un statut “indisponible avant cette date”.
  • Mentions dans les CGU Agent : les CGU signées par les Participants doivent préciser :
    • Que la date de déblocage correspond à la date contractuelle à laquelle les fonds deviennent utilisables.
    • Qu’il est impossible pour le Participant d’utiliser ces fonds avant cette date.
    • Que CentralPay peut refuser, différer, suspendre ou encadrer la mise à disposition au regard de ses obligations réglementaires, de sa politique de risque et des règles des réseaux de paiement.
  • Gestion des exceptions : en cas d’annulation, de remboursement, d’impayé ou de litige :
    • Si la transaction source est annulée/remboursée, les fonds ne seront pas mis à disposition.
    • En cas d’impayé (ex. chargeback carte) ou de risque, CentralPay peut retenir/ajuster les montants en attente ou compenser lors de règlements ultérieurs.
    • La date de déblocage peut être reportée (litige/incident) ; le Participant doit être informé via son interface/notifications.

Ce mécanisme ne constitue ni un séquestre au sens du droit civil, ni un service de conservation fiduciaire : il s’agit d’une mise à disposition différée sous contrôle exclusif de CentralPay.

3.5. Gestion des versements sortants

Fonctionnement

CentralPay peut mettre à disposition des Participants (et, selon les habilitations, à l’Agent agissant comme intermédiaire mandaté) différents modes de gestion des versements sortants :

  • Versements sortants automatisés (paramétrage de règles/plannings, lorsque prévu contractuellement)
  • Versements sortants ponctuels (demande via portail/API selon les droits accordés)

Conditions de conformité

Lorsque l’Agent est autorisé à transmettre des demandes de versement sortant pour le compte de ses Participants, il doit recueillir leur consentement et décrire clairement le mode de fonctionnement dans les CGU Agent. CentralPay demeure seule responsable de l’exécution et peut refuser, suspendre ou encadrer ces demandes conformément à ses obligations.

À retenir

Le dispositif présenté garantit :
- La séparation stricte des flux tiers / commissions / compte propre
- L’absence de droit de disposition de l’Agent sur les fonds de tiers
- La traçabilité complète des opérations (auditabilité)
- La supervision active par CentralPay
- La conformité aux exigences du CMF et aux attentes de supervision

Le respect de ce dispositif est obligatoire. Toute anomalie (fraude, incident, incohérence de ventilation, non-respect des procédures) doit être signalée immédiatement à votre Account Manager CentralPay.

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 sous-marchands 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 mandataire 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 mandataire 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

  1. Compréhension du modèle
    • Explication des services apportés par le mandataire
    • Définition de son modèle d’affaires
    • Validation par le service Risque & Conformité de CentralPay
  2. Offre Commerciale
    • Présentation
  3. Validation
    • Validation du mandataire par le service Risque & Conformité de CentralPay
    • Validation de la proposition commerciale et des conditions tarifaires par le mandataire
  4. Test & Intégration
    • Mise en place de la sandbox
    • Réunion de lancement de projet avec l’équipe technique
    • Phase d’intégration technique
  5. Instruction du dossier ACPR
    • Collecte des éléments nécessaires à la constitution du dossier
    • Préparation du dossier
    • Présentation du dossier
  6. Mise en production
    • Validation de la recette
    • Mise en production

2.2. Pièces à fournir à CentralPay

Prochainement

Error codes

ErrorDetails ATTRIBUTES
errorCodeCode 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 values
101MESSAGE_RECEIVED_INVALID
102MESSAGE_VERSION_NUMBER_NOT_SUPPORTED
103SENT_MESSAGES_LIMIT_EXCEEDED
201REQUIRED_ELEMENT_MISSING
202CRITICAL_MESSAGE_EXTENSION_NOT_RECOGNIZED
203FORMAT_ON_ONE_OR_MORE_ELEMENTS_INVALID_ACCORDING_SPECS
204DUPLICATE_DATA_ELEMENT
301TRANSACTION_ID_NOT_RECOGNIZED
302DATA_DECRYPTION_FAILURE
303ACCESS_DENIED_INVALID_ENDPOINT
304ISO_CODE_NOT_VALID
305TRANSACTION_DATA_NOT_VALID
306MCC_NOT_VALID_FOR_PAYMENT_SYSTEM
307SERIAL_NUMBER_NOT_VALID
402TRANSACTION_TIMED_OUT
403TRANSIENT_SYSTEM_FAILURE
404PERMANENT_SYSTEM_FAILURE
405SYSTEM_CONNECTION_FAILURE
911DATA_FIELDS_RELEVANCE_CHECK_FAILURE
912DUPLICATED_TRANSACTION_ID
ErrorComponent possible values
« C »THREE_DS_SDK
« S »THREE_DS_SERVER
« D »DIRECTORY_SERVER
« A »ACCESS_CONTROL_SERVER

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)

1. Intégration du 3DS 2.0

Tout ce processus doit se dérouler sur la même page web (ceci est une contrainte du process bancaire).

👉 Téléchargez les sources

1.1. Les grandes étapes du 3D Secure 2.0

👉 Consultez un exemple de formulaire de paiement CUSTOM intégrant le 3DS 2.0

1.2. 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.

1.3. 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).

1.4. 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.

1.5. 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é

1.6. 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é

1.7. 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"
}

1.8. 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)

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'

1.1. 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 test 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…

Exports comptables

Vous pouvez réaliser plusieurs exports de votre compte aux formats CSV, EXCEL, ou JSON depuis votre Portail Marchand. 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 Marchand Fichiers d’export .

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, etc.

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énominationSignification
wallet_ididentifiant du compte
wallet_namenom du compte
owner_namenom de la société
value_datedate de valeur de l’opération
operation_idréférence Centralpay de l’opération
operation_datetimedate d’opération
source_typetype d’opération
source_idréférence permettant de lier plusieurs opérations
naturenature de l’opération
debit_amountmontant des opérations de type « débit »
credit_amountmontant des opérations de type « crédit »
currencydevise de l’opération
custom_referenceréférence personnalisée de l’opération
custom_labelnom personnalisé de l’opération
third_party_ididentifiant du destinataire de l’opération
third_party_labelnom du destinataire de l’opération
third_party_countrypays du destinataire de l’opération
payout_numbernuméro du payout

Accès :

Recette Portail Marchand – Opérations
Production Portail Marchand – Opérations

2. Télécharger le rapport financier mensuel

Chaque début de mois, en plus de la facture, un relevé de compte est généré, puis mis à disposition dans l’espace sécurisé de votre compte ( Mes comptes Relevés de compte ). Il présente les montants totaux de crédit et de débit réalisés, incluant un détail « dont fonds » et « dont frais » afin de distinguer la nature.

Nous vous proposons deux types de relevés : détaillé ou synthétique. 
- Le relevé détaillé fait apparaitre l'ensemble des opérations de la période sélectionnée.
⚠️ Si vous possédez un grand nombre d'opérations, il est possible que celles-ci n'apparaissent pas sur le relevé. Dans ce cas, nous vous conseillons de réaliser un export au format CSV, Excel ou JSON.
- Le relevé synthétique regroupe vos opérations par jour et par type d'opération, pour la période sélectionnée.
Pour bien comprendre votre relevé de compte détaillé :

A) Le total du montant des débits sur votre compte pour la période donnée :
– dont fonds : ensemble des débits de nature « fond » (versements sortants, etc.)
– dont frais : ensemble des débits de nature « frais » (frais CentralPay, etc.)

B) Le total du montant des crédits sur votre compte pour la période donnée :
– dont fonds : ensemble des encaissements sur votre compte (= chiffre d’affaires).
– dont frais : ensemble des opérations pour compenser des opérations ou ajuster des frais (remboursement de frais, etc.).

C) Solde de clôture du mois précédent le relevé.

D) Solde de clôture du mois du relevé téléchargé.

Accès :

Recette Portail Marchand – Documents
Production Portail Marchand – Documents

ClearedOperation

jQuery(document).ready( function($) { window.live_699ea29da4c71 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_ClearedOperation.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29da4c71", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29da4c71.load(); });

Parcours d'entrée en relation

CentralPay propose plusieurs modes d’entrée en relation, selon votre situation :

  • Vous êtes un marchand standard, partenaire ou mandataire en relation directe avec CentralPay
  • Vous êtes un marchand participant d’un mandataire, ou un marchand standard rattaché à un partenaire technique 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.

1. Marchands en direct

Le parcours d’entrée en relation comporte six étapes principales.

1.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)

1.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

1.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)

1.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, versements, droits utilisateurs…).

1.5. Création du profil Marchand CentralPay

Le représentant légal reçoit un lien d’inscription sécurisé pour créer le profil :

  • 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 profil, menant à son ouverture

1.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 profil est débloqué
  • Vous pouvez encaisser vos premières transactions

2. Marchands liés à un partenaire technique

Si vous êtes un marchand intégré via un partenaire technique ou mandataire de CentralPay, le parcours est simplifié.

Vous entrez directement à l’étape 5 : Création du profil Marchand CentralPay.

2.1. Étape unique : Création du profil 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 le partenaire technique ou le mandataire.

L’analyse de conformité complète de CentralPay reste obligatoire avant validation du profil.

Bank Reconciliation

See more about Bank Reconciliation

jQuery(document).ready( function($) { window.live_699ea29da59d0 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Reconciliation wireTransfer.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29da59d0", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29da59d0.load(); });

Test IBAN values

Find below the list of HTTP return codes:

DE91100000000123456789AXABFRPP
AZ96AZEJ00000000001234567890AXABFRPP
CY21002001950000357001234567AXABFRPP
ES7921000813610123456789AXABFRPP
FR7630006000011234567890189AXABFRPP
FO9264600123456789AXABFRPP
FR7630002032531234567890168CRLYFRPPXXX

Développeurs

Articles

  • How to use the swagger
  • Authentication 3DS 2.2
  • Attachment
  • Balance Histories
  • BankAccount
  • Card token
  • CARD Transaction
  • Charge
  • ClearedOperation
  • CpayUser
  • Credit
  • Customer
  • Deposit
  • Deposits
  • Event
  • Exchange
  • Identity
  • Info
  • Installment Payment
  • MerchantInfo
  • MID
  • Movement
  • Origin
  • PIS
  • Payment Request
  • Payout
  • Point Of Sale
  • Refund
  • PendingOperation
  • Regularisation
  • RIB
  • SCT Transaction
  • SDD Transaction
  • Scenario
  • SourceType
  • Subscription
  • Transfer
  • TransferReversal
  • Wallet
  • Blacklist
  • WhiteList
  • Onboarding
  • Object status
  • Webhook notifications
  • 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 RCT (test) Api login and password. You can also use our test login : Doctest:4I9HJRTd
Don’t use your Production login for the tests, you’ll get a 401 error.


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

jQuery(document).ready( function($) { window.live_699ea29da6b4f = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_3D-Secure 2.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29da6b4f", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29da6b4f.load(); });

Attachment

jQuery(document).ready( function($) { window.live_699ea29da6dbe = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Attachment.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29da6dbe", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29da6dbe.load(); });

Balance Histories

jQuery(document).ready( function($) { window.live_699ea29da6fd4 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Balance Histories.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29da6fd4", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29da6fd4.load(); });

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.

jQuery(document).ready( function($) { window.live_699ea29da73ea = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Account.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29da73ea", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29da73ea.load(); });

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.

jQuery(document).ready( function($) { window.live_699ea29da78e9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Card Token.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29da78e9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29da78e9.load(); });

CARD Transaction

Transaction

See more about card transactions

jQuery(document).ready( function($) { window.live_699ea29da7ec6 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29da7ec6", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29da7ec6.load(); });

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).

jQuery(document).ready( function($) { window.live_699ea29da836e = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Card.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29da836e", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29da836e.load(); });

Credit

See more about Credit

jQuery(document).ready( function($) { window.live_699ea29da87d5 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Credit.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29da87d5", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29da87d5.load(); });

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.

jQuery(document).ready( function($) { window.live_699ea29da8bef = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Dispute.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29da8bef", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29da8bef.load(); });

Charge

jQuery(document).ready( function($) { window.live_699ea29da8e4f = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Charge.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29da8e4f", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29da8e4f.load(); });

ClearedOperation

jQuery(document).ready( function($) { window.live_699ea29da915a = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_ClearedOperation.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29da915a", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29da915a.load(); });

CpayUser

jQuery(document).ready( function($) { window.live_699ea29da93b7 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_CpayUser.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29da93b7", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29da93b7.load(); });

Credit

jQuery(document).ready( function($) { window.live_699ea29da9705 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Credit.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29da9705", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29da9705.load(); });

Customer

See more about Customer

jQuery(document).ready( function($) { window.live_699ea29da9bd4 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Customer.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29da9bd4", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29da9bd4.load(); });

Deposit

jQuery(document).ready( function($) { window.live_699ea29da9ed6 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Deposit.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29da9ed6", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29da9ed6.load(); });

Deposits

jQuery(document).ready( function($) { window.live_699ea29daa1e7 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Deposits.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29daa1e7", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29daa1e7.load(); });

Event

jQuery(document).ready( function($) { window.live_699ea29daa557 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Event.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29daa557", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29daa557.load(); });

Exchange

jQuery(document).ready( function($) { window.live_699ea29daa86d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Exchange.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29daa86d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29daa86d.load(); });

Identity

jQuery(document).ready( function($) { window.live_699ea29daab94 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Identity.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29daab94", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29daab94.load(); });

Info

jQuery(document).ready( function($) { window.live_699ea29daaefe = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Info.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29daaefe", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29daaefe.load(); });

Installment Payment

See more about Installment Payment

jQuery(document).ready( function($) { window.live_699ea29dab3c4 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Installment Payment.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29dab3c4", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29dab3c4.load(); });

MerchantInfo

jQuery(document).ready( function($) { window.live_699ea29dab6e4 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Merchant.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29dab6e4", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29dab6e4.load(); });

MID

jQuery(document).ready( function($) { window.live_699ea29daba0a = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_MID.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29daba0a", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29daba0a.load(); });

Movement

jQuery(document).ready( function($) { window.live_699ea29dabd17 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Movement.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29dabd17", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29dabd17.load(); });

Origin

See more about Payment Requests

jQuery(document).ready( function($) { window.live_699ea29dac206 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Origin.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29dac206", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29dac206.load(); });

PIS

See more about Payment Requests

jQuery(document).ready( function($) { window.live_699ea29dac73c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_PIS.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29dac73c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29dac73c.load(); });

Payment Request

See more about Payment Requests

jQuery(document).ready( function($) { window.live_699ea29dacc51 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Payment Request.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29dacc51", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29dacc51.load(); });
jQuery(document).ready( function($) { window.live_699ea29dacc56 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_PaymentRequestHistory.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29dacc56", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29dacc56.load(); });

Payout

See more about Payout

jQuery(document).ready( function($) { window.live_699ea29dad157 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Payout.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29dad157", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29dad157.load(); });
jQuery(document).ready( function($) { window.live_699ea29dad15b = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Merchant Payout Setup.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29dad15b", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29dad15b.load(); });

Point Of Sale

jQuery(document).ready( function($) { window.live_699ea29dad4ae = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Point Of Sale.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29dad4ae", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29dad4ae.load(); });

Refund

See more about Refund for Card Transaction
See more about Refund for SCT Transaction
See more about Refund for SDD Transaction

jQuery(document).ready( function($) { window.live_699ea29dadd3b = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Refund.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29dadd3b", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29dadd3b.load(); });

PendingOperation

jQuery(document).ready( function($) { window.live_699ea29dae0b3 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_PendingOperation.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29dae0b3", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29dae0b3.load(); });

Regularisation

jQuery(document).ready( function($) { window.live_699ea29dae3e0 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Regularisation.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29dae3e0", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29dae3e0.load(); });

RIB

jQuery(document).ready( function($) { window.live_699ea29dae6fc = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Rib.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29dae6fc", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29dae6fc.load(); });

SCT Transaction

SCT Transaction

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_699ea29daee12 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29daee12", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29daee12.load(); });

SCT Transaction Reversal

See more about SCT Transaction Reversal

jQuery(document).ready( function($) { window.live_699ea29daf255 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29daf255", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29daf255.load(); });

SCT Transaction Refund

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_699ea29daf6b9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction Refund.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29daf6b9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29daf6b9.load(); });

SCT transaction Refund Reversal

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_699ea29dafb3b = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT transaction Refund Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29dafb3b", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29dafb3b.load(); });

Bank Reconciliation

See more about Bank Reconciliation

jQuery(document).ready( function($) { window.live_699ea29daff99 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Reconciliation wireTransfer.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29daff99", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29daff99.load(); });

Bank Reconciliation external

See more about Bank Reconciliation

jQuery(document).ready( function($) { window.live_699ea29db0415 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Reconciliation external.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db0415", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db0415.load(); });

SDD Transaction

Mandate

See more about Mandate

jQuery(document).ready( function($) { window.live_699ea29db0bf6 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Mandate.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db0bf6", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db0bf6.load(); });

SDD Transaction

See more about SDD Transaction

jQuery(document).ready( function($) { window.live_699ea29db1135 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db1135", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db1135.load(); });

SDD Transaction Reversal

See more about SDD Transaction Reversal

jQuery(document).ready( function($) { window.live_699ea29db1643 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db1643", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db1643.load(); });

SDD Transaction Refund

jQuery(document).ready( function($) { window.live_699ea29db1971 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Refund.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db1971", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db1971.load(); });

SDD Transaction Refund Reversal

jQuery(document).ready( function($) { window.live_699ea29db1c67 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Refund Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db1c67", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db1c67.load(); });

Scenario

jQuery(document).ready( function($) { window.live_699ea29db1f48 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Scenario.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db1f48", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db1f48.load(); });

SourceType

jQuery(document).ready( function($) { window.live_699ea29db222c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SourceType.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db222c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db222c.load(); });

Subscription

Subscription Model

See more about Subscription Model

jQuery(document).ready( function($) { window.live_699ea29db2985 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Subscription Model.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db2985", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db2985.load(); });

Subscription

See more about Subscription

jQuery(document).ready( function($) { window.live_699ea29db2eab = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Subscription.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db2eab", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db2eab.load(); });

Invoice

See more about Invoice & invoiceItem

jQuery(document).ready( function($) { window.live_699ea29db33b0 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Invoice.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db33b0", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db33b0.load(); });

Transfer

jQuery(document).ready( function($) { window.live_699ea29db36ad = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Transfer.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db36ad", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db36ad.load(); });

TransferReversal

jQuery(document).ready( function($) { window.live_699ea29db3985 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Transfer Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db3985", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db3985.load(); });

Wallet

jQuery(document).ready( function($) { window.live_699ea29db3c43 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Wallet.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db3c43", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db3c43.load(); });

Blacklist

jQuery(document).ready( function($) { window.live_699ea29db3ef7 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Blacklist.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db3ef7", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db3ef7.load(); });

WhiteList

jQuery(document).ready( function($) { window.live_699ea29db41af = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Whitelist.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db41af", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db41af.load(); });

Onboarding

Create Enrollement

jQuery(document).ready( function($) { window.live_699ea29db4707 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Create enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db4707", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db4707.load(); });

jQuery(document).ready( function($) { window.live_699ea29db470b = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_User.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db470b", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db470b.load(); });

Complete enrollment

jQuery(document).ready( function($) { window.live_699ea29db4a4a = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Complete enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db4a4a", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db4a4a.load(); });

jQuery(document).ready( function($) { window.live_699ea29db4a4f = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Complete additional enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db4a4f", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db4a4f.load(); });

Update enrollment

jQuery(document).ready( function($) { window.live_699ea29db4d95 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Update enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db4d95", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db4d95.load(); });

jQuery(document).ready( function($) { window.live_699ea29db4d99 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Rollback enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db4d99", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db4d99.load(); });

Search enrollement

jQuery(document).ready( function($) { window.live_699ea29db50b9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Search enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db50b9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db50b9.load(); });

Enrollment Details

jQuery(document).ready( function($) { window.live_699ea29db5374 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Enrollment details.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db5374", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db5374.load(); });

E-money

jQuery(document).ready( function($) { window.live_699ea29db5650 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Autocomplete.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db5650", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db5650.load(); });

jQuery(document).ready( function($) { window.live_699ea29db5655 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Autoupdate.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db5655", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db5655.load(); });

Misc

jQuery(document).ready( function($) { window.live_699ea29db59f4 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Configuration.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29db59f4", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29db59f4.load(); });

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

StatusDescription
API_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

StatusDescription
CREATEDThe 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

StatusDescription
PENDINGThe 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 → REFUSED
PENDING → 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 Explanation
ACTIVEUNPAIDPayment 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, PIS 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 »

StatusDescription
SUCCESSThe 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 »

StatutDescription
CLEAREDProcessed refund.
UNCLEAREDRefund pending processing.
FAILURERefund in error.
CANCELEDRefund cancelled, either by you or by your customer via the customer portal.

CREDIT status

Status « Credit »

StatusDescription
CLEAREDCredit processed.
UNCLEAREDCredit pending processing
FAILURECredit in error.
CANCELEDCredit cancelled, either by you or by your Customer via the customer portal.

DISPUTES status

Status « Disputes »

StatutDescription
FRAUD_NOTICEDA preventive fraud alert sent by the issuer via the card scheme (e.g., Visa TC40). It is not a formal dispute nor a refund. Use it to anticipate controls and block similar attempts.
RETRIEVAL_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 »

StatusDescription
ACCEPTEDThe 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 »

StatusDescription
ACTIVEThe 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 »

StatutDescription
ACTIVEPending 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 »

StatusDescription
ACTIVEActive mandate, ready to use.
PENDINGMandate pending validation.
OBSOLETEInactive mandate, not usable.

BANK ACCOUNT status

StatusDescription
ACCEPTEDThe 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

StatusDescription
PAIDThe 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 »

StatusDescription
PENDINGPending receipt of the SCT Transaction.
RECEIVEDSCT Transaction received.
CANCELEDSCT Transaction cancelled before receipt.
REFUNDEDSCT Transaction refunded.

Webhook notifications

The MERCHANT-ENROLLMENT object

Prochainement

The WALLETS object

Prochainement

The BANKACCOUNT object

BANKACCOUNT_ACCEPTED
When 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_PENDING
When 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_UPDATED
When 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_UPDATED
When 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_CREATED
When 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_CREATED
When 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_CANCELED
When 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_UPDATED
When 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_CREATED
When 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_UPDATED
When 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_OTP
When 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_CREATED
When 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_UPDATED
When a deposit is updated

The DISPUTE object

DISPUTE_UPDATED
When 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_CREATED
When a dispute is created

The INSTALLMENT object

INSTALLMENTPAYMENT_CREATED
When 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_FAILED
When 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_UPDATED
When 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_CANCELED
When 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_ACTIVATED
When an installment is activated

INSTALLMENTPAYMENT_FAILURE
When an installment failed to be paid

INSTALLMENTPAYMENT_PAID
When 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_UNPAID
When 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_SUCCEEDED
When 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_FAILED
When 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_CREATED
When 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_UPDATED
An 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_DOCUMENTS
Some 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_DOCUMENTS
Some 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_CREATED
The 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_UPDATED
The account has been update. You receive those elements

ONBOARDING_ADDITIONAL_DOCUMENT_REQUESTED
Additionnal 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_UPDATED
Additionnal documents or information have been provided by the account holder in one ongoing onboarding.

ONBOARDING_ENROLLMENT_WORKFLOW_RESET
The 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_RESULT
The 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_CREATED
When an enrollement is created

The PAYMENT REQUEST object

PAYMENTREQUEST_CREATED
Happen 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_CANCELED
Happen 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_CLOSED
Happen 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_PAID
Happen 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_FAILED
Happen 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_SUCCEEDED
Happen 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_FAILED
Happen 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_SUCCEEDED
Happen 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_FAILED
Happen 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_SUCCEEDED
Happen 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_SUCCEEDED
Happen 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_SUCCEEDED
Happen 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_CREATED
When 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_UPDATED
When 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_CANCELED
When 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_PAID
When 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_CREATED
When a payout reversal has been created

The REFUND object

REFUND_CREATED
When 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_CANCELED
When 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_UPDATED
When a refund is updated

The SCT Transaction object

SCT_TRANSACTION_CREATED
When 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_UPDATED
When 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_RECEIVED
When 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_CANCELED
When 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_CREATED
When 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_RECEIVED
When 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_CANCELED
When a sct transaction refund is cancelled

SCT_TRANSACTION_REFUNDED_RECEIVED,
When a sct transaction refund is received

SCT_TRANSACTION_REFUNDED
When a sct transaction reversal is created

The SDD TRANSACTION object

SDDTRANSACTION_CREATED
When 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_CLEARED
When 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_VALIDATED
When 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_CANCELED
When 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_RENEWOTP
When 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_CREATED
When a SDD Transaction reversal is created

The MANDATE object

MANDATE_CREATED
When 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_SIGNED
When 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_OBSOLETED
When 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_RENEWOTP
When 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_CREATED
When 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_UPDATED
When 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_CREATED
When 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_FAILED
When 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_UPDATED
When 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_CANCELED
When 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_ACTIVE
When a Subscription is active

SUBSCRIPTION_FAILURE
When 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_UNPAID
When a Subscription is unpaid

SUBSCRIPTION_REACTIVATED
When 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_CREATED
When 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_UPDATED
When 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_DELETED
When 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_CREATED
When 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_UPDATED
When 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_CLOSED
When 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_REOPEN
When 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_SUCCEEDED
When 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_FAILED
When 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_SUCCEEDED
When 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_CANCELED
When 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_CAPTURED
When 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_EXPIRED
When 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_UPDATED
When 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_DISPUTED
When 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_FAILED
When 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_FRAUDULENT
When 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_ACCEPTED
When a transaction is refused because entering an acceptance rule

TRANSACTION_REFUNDED
When 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_RISKY
When a transaction is refused because of its risk score exceed the limit

TRANSACTION_THREEDS_AUTH_FAILED
When a transaction is declined because the card holder failed to authenticate himself during the 3DS process

The TRANSFER REVERSAL object

TRANSFERREVERSAL_SUCCEEDED
When 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_UPDATED
When 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_SUCCEEDED
When 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_UPDATED
When 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_CANCELED
When 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_CREATED
When a wire transfer is created

WIRETRANSFER_UPDATED
When a wire transfer is updated

WIRETRANSFER_RECEIVED
When a wire transfer is received

WIRETRANSFER_CANCELED
When a wire transfer is cancelled

Resources by type

Codes

HTTP Codes

Find below the list of HTTP return codes:

200OK
Note: The request was executed correctly
400BAD REQUEST
Note: Wrong parameter or rule
401UNAUTHORIZED
Note: Login / password are missing for HTTP authentication
402PAYMENT_REQUIRED
Note:  Authorization denied*
403FORBIDDEN
Note: Wrong authentication
404NOT FOUND
Note: Incorrect URL
500INTERNAL SERVER ERROR
Note: Server error

(*) Only possible for the creation of a transaction

Card authorization - Bank return codes

Issuer response codes returned to CentralPay after a card authorization request.

These values generally correspond to the ISO 8583 “Response code” (DE39) returned by card networks/issuers. Depending on the scheme, country, and routing, you may also receive network-specific or gateway-specific variants (for example alphanumeric or 3-digit codes).

Important: the same code can cover multiple issuer-side reasons. Unless explicitly stated, CentralPay passes these codes as received. For troubleshooting, combine the response code with your transaction context (amount, currency, 3DS result, merchant category, card brand, retries).

Most common response codes

CodeDescriptionRecommended action
00ApprovedProceed with capture / fulfillment.
02Contact card issuerAsk customer to contact their bank; retry only if customer confirms.
03Invalid acceptorCheck merchant/terminal configuration (MID/TID, acquirer routing).
04Pick up / retain cardDo not retry; follow your in-store procedure (if applicable).
05Do not honorGeneric decline: do not “loop” retries; ask customer to contact issuer or use another payment method.
07Honor with IDIf card-present: request ID verification; otherwise ask customer to contact issuer.
08Time-outRetry once after a short delay; if repeated, check connectivity/acquirer status.
10Unable to reverseEscalate to support with trace/reference; avoid repeated reversals.
11Partial approvalOnly relevant if your flow supports partial approvals (often prepaid); otherwise request another method.
12Invalid transactionCheck request consistency (type, lifecycle, capture/void rules); if persistent, escalate with logs.
13Invalid amountValidate amount format/currency decimals; check min/max constraints.
14Invalid card numberCustomer should re-enter card details; if repeated, use another card.
15Unknown issuerUse another card/payment method; escalate if routing issue suspected.
19Try again laterRetry once later; if repeated, ask customer to contact issuer.
30Format errorCheck field formats (PAN/expiry/CVV, currency, recurring flags); escalate if needed.
33Card expiredCustomer must use another card.
38PIN attempts exceededCardholder must contact issuer / reset PIN; do not retry.
39Transaction not allowedLikely product/merchant restriction; ask customer to contact issuer or use another method.
41Lost cardDo not retry; request another payment method.
43Stolen cardDo not retry; request another payment method.
51Insufficient fundsAsk customer to use another method or wait for funds; avoid repeated immediate retries.
54Expired cardCustomer must use another card.
55Incorrect PINCard-present only: customer must retry carefully or contact issuer after repeated failures.
57Transaction not permitted to cardholderIssuer restriction; ask customer to contact issuer or use another method.
58Transaction prohibited at terminalCheck merchant/terminal capabilities & configuration; may be MCC/terminal restriction.
59Suspected fraudDo not retry “blindly”; ask customer to contact issuer or use a different method; review fraud rules if frequent.
61Exceeds withdrawal/amount limitReduce amount or ask customer to contact issuer.
62Restricted cardIssuer restriction; customer should contact issuer.
65Frequency limit exceededWait and retry later; avoid repeated attempts in short timeframes.
68Response received too lateRetry once; check acquirer/network status if repeated.
75PIN attempts exceededSame as 38: cardholder must contact issuer.
82Invalid CVVCustomer should re-enter CVV; if repeated, use another card.
91Issuer/switch unavailableRetry later; if widespread, treat as incident (issuer/network outage).
94Duplicate requestAvoid immediate retries with same identifiers; ensure idempotency / unique reference.
95Contact acquirerEscalate to support/acquirer with transaction reference.
96System malfunctionRetry later; if repeated, escalate with traces/logs.

All response codes (exhaustive)

The following codes may be returned depending on the network, country, routing, or integration. This section is exhaustive compared to the previous version of this page, and includes both standard and non-standard variants.

CodeDescriptionRecommended action
00Transaction approved or successfully processedProceed with capture / fulfillment.
02Contact card issuerAsk the customer to contact their issuer; retry only if issuer confirms.
03Invalid acceptorCheck merchant/terminal configuration (MID/TID), acquirer routing, and credentials.
04Keep cardDo not retry; follow in-store procedure if applicable; request another payment method.
05Do not honorGeneric decline: avoid retry loops; ask customer to contact issuer or use another method.
06Transaction invalid for terminalCheck terminal capability / transaction type compatibility; verify integration parameters.
07Honor with IDIf card-present: request ID verification; otherwise ask customer to contact issuer.
08Time-OutRetry once after a short delay; if repeated, check network/acquirer connectivity.
09No originalFor reversals/adjustments: ensure you reference an existing original transaction; escalate if needed.
10Unable to reverseDo not repeat reversals blindly; escalate to support with transaction references.
11Partial approvalHandle partial approval if supported (often prepaid); otherwise request another method.
12Invalid transactionCheck transaction type/lifecycle (auth/capture/void/refund), parameters; escalate with logs if persistent.
13Invalid amountValidate amount format, currency decimals, and min/max constraints; retry after correction.
14Invalid cardholder numberCustomer should re-enter card details; if repeated, use another card.
15Unknown card issuerTry another card/payment method; if widespread, suspect routing/config issue and escalate.
17Invalid capture date (terminal business date)Check terminal business date / batch settings; retry after correction if applicable.
19Repeat transaction laterRetry once later; avoid multiple attempts in a short window; ask customer to contact issuer if repeated.
20No From AccountNot typical for purchase flows; verify transaction type and account fields; escalate if unexpected.
21No To AccountNot typical for purchase flows; verify transaction type and account fields; escalate if unexpected.
22Account not verifiedAsk customer to contact issuer; consider another payment method.
23Account not savedRetry later if applicable; otherwise use another method; escalate if recurring.
24No Credit AccountAsk customer to contact issuer; use another method.
25Unable to locate record in fileFor adjustments/reversals: verify original reference; escalate with trace/reference.
26Record duplicatedCheck idempotency and uniqueness of references; do not retry with same identifiers.
27‘Edit’ error in file update fieldCheck field formats and constraints; escalate with payload/logs.
28File access deniedConfiguration/permission issue: escalate to support/acquirer with context.
29File update not possibleEscalate with trace/reference; avoid repeating the same update operation.
30Format errorCheck request formatting (amount/currency, PAN/expiry, flags, message structure); escalate with logs.
31Identifier of acquiring organization unknownCheck acquirer routing and merchant configuration; escalate to support/acquirer.
32Transaction partially completedCheck final status via retrieval; avoid blind retry; escalate if inconsistent.
33Card validity date exceededCustomer must use another card.
34Implausible card dataCustomer should re-enter details; verify card data collection; use another card if repeated.
38Number of PIN attempts exceededDo not retry; customer must contact issuer / reset PIN.
39Transaction not allowedCheck transaction type and merchant capability; ask customer to contact issuer or use another method.
41Lost cardDo not retry; request another payment method.
42Special PickupDo not retry; request another method; in-store: follow procedure if applicable.
43Stolen cardDo not retry; request another payment method.
44Stolen cardDo not retry; request another payment method.
51Insufficient funds or overdraftAsk customer to use another method or wait for funds; avoid repeated immediate retries.
54Card expiredCustomer must use another card.
55Incorrect PINCard-present: retry carefully; if repeated, customer contacts issuer.
56Card not on fileVerify card details; customer should contact issuer or use another card.
57Transaction not authorized to this cardholderIssuer restriction; ask customer to contact issuer or use another method.
58Transaction prohibited at terminalCheck merchant/terminal capabilities and MCC/terminal restrictions; adjust configuration.
59Suspected fraudAvoid retry loops; customer contacts issuer or uses another method; review risk rules if frequent.
60The card acceptor must contact the buyerAsk customer to contact issuer / confirm details; avoid repeated attempts.
61Withdrawal amount over limitReduce amount or ask customer to contact issuer.
62Card use restrictedCustomer contacts issuer; use another method.
63MAC Key ErrorCryptographic/config issue: escalate to support/acquirer with trace and timestamps.
65Frequency limit exceededWait and retry later; avoid multiple attempts in short timeframe.
66Acquirer limit reachedEscalate to acquirer/support; retry only after confirmation.
67Card withheldDo not retry; request another method; in-store: follow procedure if applicable.
68Response not received or received too lateRetry once; if repeated, check acquirer/network status and escalate.
75Number of PIN attempts exceededSame as 38: do not retry; customer must contact issuer.
76Invalid AccountAsk customer to contact issuer; use another card/method.
77Issuer not participating in serviceUse another card or method; escalate if routing/regional issue suspected.
78Function not availableRemove/disable unsupported feature; verify transaction type and integration flags.
79Key validation errorCryptographic/config issue: escalate to support/acquirer with trace.
80Approved for purchase amount onlyIf you requested cash-back/extra: retry without it; otherwise proceed as approved.
81Unable to verify PINCard-present: retry; if repeated, customer contacts issuer or use another method.
82Invalid CVVRe-enter CVV; if repeated, use another card.
83Not refusedTreat as non-decline / ambiguous: verify final status via retrieval; escalate if inconsistent.
84Invalid transaction lifecycleCheck auth/capture/void/refund ordering and timing; fix integration logic.
85No key to useCryptographic/config issue: escalate to support/acquirer.
86KME synchronization errorCryptographic sync issue: escalate with logs, trace, timestamps.
87PIN errorCard-present: retry; if repeated, customer contacts issuer.
88MAC synchronization errorCryptographic sync issue: escalate with logs, trace, timestamps.
89Security violationStop retries; escalate to support/acquirer; review fraud/security configuration.
90Temporary system shutdownRetry later; if persistent, treat as incident and escalate.
91Card transmitter inaccessibleRetry later; if widespread, treat as issuer/network outage.
92Card issuer unknownUse another card; if repeated across cards, suspect routing/config and escalate.
93Transacation cannot be finalizedRetry later once; if persistent, escalate with trace/logs.
94Duplicate requestEnsure idempotency / unique references; do not resend the exact same request.
95Contact acquirerEscalate to support/acquirer with transaction reference and timestamps.
96System malfunctionRetry later; if repeated, escalate with traces/logs.
97No Funds TransferNot typical for purchase flows; verify transaction type; escalate if unexpected.
98Duplicate ReversalDo not repeat reversal; verify original reversal status; ensure idempotency.
99Duplicate TransactionCheck idempotency and client retries; ensure unique transaction identifiers.
N3Cash Service Not AvailableNot applicable to purchase flows; ignore unless supporting cash services.
N4Cash Back Request Exceeds Issuer LimitReduce cash-back amount or remove cash-back.
N7Declined for CVV2 failureRe-enter CVV; if repeated, use another card.
R0Stop Payment OrderDo not retry; customer must contact issuer.
R1Revocation of Authorisation OrderDo not retry; customer must contact issuer.
R3Revocation of all Authorisations OrderDo not retry; customer must contact issuer.
A0Withdrawal in contact modeNot applicable to e-commerce purchase flows; verify transaction type; remove cash/withdrawal feature if not supported.
A1VADS fallbackRouting/fallback case: verify gateway/acquirer configuration; escalate if frequent or unexpected.
000ApprovedProceed with capture / fulfillment.
001Approve with IDIf supported: apply ID verification; otherwise treat as approved.
002Partial approval (prepaid cards only)Handle partial approval if supported; otherwise request another method.
100RejectGeneric decline: avoid retry loops; ask customer to contact issuer or use another method.
101Card expired / invalid expiry dateCustomer must use another card.
106PIN attempts exceededDo not retry; customer must contact issuer.
107Please call issuerCustomer must contact issuer; retry only after confirmation.
109Invalid merchantCheck merchant configuration and routing; escalate to support/acquirer.
110Invalid amountValidate amount format/limits; retry after correction.
111Invalid account / Invalid MICR (traveler’s check)Ask customer to contact issuer; use another card/method.
115Requested function not supportedDisable unsupported feature/flag; verify transaction type.
117Invalid PINCard-present: retry carefully; if repeated, customer contacts issuer.
119Cardholder not registered / not authorizedCustomer must contact issuer; use another method.
122Invalid card security code (alias CID, 4DBC, 4CSC)Re-enter security code; if repeated, use another card.
125Invalid effective dateCheck date fields / terminal business date; escalate if applicable.
181Format errorCheck request formatting and fields; escalate with logs if persistent.
183Invalid currency codeVerify ISO currency code and acquirer configuration; correct and retry.
187Refuse – New card issuedCustomer must use another card; advise contacting issuer.
189Refuse – Merchant cancelled or closed / SECheck merchant status/configuration; escalate to support/acquirer.
200Refuse – Pick up cardDo not retry; request another method; in-store: follow procedure if applicable.
900Accepted – ATC synchronizationProceed but monitor; if repeated, escalate (potential chip/crypto sync issue).
909System malfunction (cryptographic error)Escalate to support/acquirer with trace, timestamps, and logs.
912Issuer not availableRetry later; if widespread, treat as issuer outage / incident.

Card Disputes - Bank Return codes

CB Scheme

CBDescriptionGIE DISPUTE
12Unauthorized TransactionTRANSACTION_NOT_AUTHORIZED
13Merchant Forced TransactionINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
14Unauthorized TransactionTRANSACTION_NOT_AUTHORIZED
15Guarantee by Card, by Day and by SIRETTRANSACTION_NOT_AUTHORIZED
16PIN Not VerifiedTRANSACTION_NOT_AUTHORIZED
17Invalid SIRETTRANSACTION_NOT_AUTHORIZED
18Certificate Not VerifiableTRANSACTION_NOT_AUTHORIZED
21Expired CardTRANSACTION_NOT_AUTHORIZED
22Late PresentmentINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
23Missing ImprintINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
25Exceeds Transaction Amount LimitINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
27Credit Not ProcessedTRANSACTION_NOT_AUTHORIZED
28Credit Processed as DebitTRANSACTION_NOT_AUTHORIZED
40Cancelled CardINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
41Documentation Not Provided or IllegibleINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
42Duplicate ProcessingDUPLICATE
43No Such Card NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
44Disputed AmountFRAUDULENT
45Disputed TransactionFRAUDULENT
46Merchant Bankruptcy or Judicial ReorganizationINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
61Merchant Suspended or TerminatedTRANSACTION_NOT_AUTHORIZED
62Transaction Not PermittedTRANSACTION_NOT_AUTHORIZED

Mastercard Scheme

MASTERCARDDescriptionGIE DISPUTE
4801Requested Transaction Data Not ReceivedTRANSACTION_NOT_AUTHORIZED
4802Cardholder Does Not Recognize TransactionTRANSACTION_NOT_AUTHORIZED
4807Cardholder Disputes a CreditFRAUDULENT
4808Authorization-Related ChargebackTRANSACTION_NOT_AUTHORIZED
4809Transaction Not AuthorizedFRAUDULENT
4810Fraud — Card-Not-Present EnvironmentFRAUDULENT
4522Goods or Services Not as Described / Not ReceivedOTHER
4811Credit Not ProcessedTRANSACTION_NOT_AUTHORIZED
4812Fraud — Card-Present EnvironmentTRANSACTION_NOT_AUTHORIZED
4831Goods or Services Not ReceivedINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4834Duplicate ProcessingDUPLICATE
4835Transaction Processing ErrorTRANSACTION_NOT_AUTHORIZED
4837No Cardholder Authorization (Lost/Stolen Card)FRAUDULENT
4840Fraudulent Processing of TransactionsFRAUDULENT
4841Cancelled Recurring TransactionTRANSACTION_NOT_AUTHORIZED
4842Counterfeit CardTRANSACTION_NOT_AUTHORIZED
4843Transaction Not Valid / Authorization ReversalTRANSACTION_NOT_AUTHORIZED
4846Non-Compliance With Authorization RequirementsINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4847Invalid Recurring TransactionINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4849Duplicate ProcessingDUPLICATE
4850ATM Cash Disbursement Not AuthorizedTRANSACTION_NOT_AUTHORIZED
4851Cardholder Disputes Transaction (Offline)TRANSACTION_NOT_AUTHORIZED
4853Cardholder Disputes Transaction Not as DescribedPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4854Exceeds Floor LimitPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4855Non-Receipt of Merchandise / ServicesPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4857Cardholder Disputes Transaction — Services Not ProvidedTRANSACTION_NOT_AUTHORIZED
4859Services Not Provided / Merchandise Not ReceivedTRANSACTION_NOT_AUTHORIZED
4860Transaction Processing ErrorTRANSACTION_NOT_AUTHORIZED
4862Cardholder Disputes Transaction — Invalid AuthorizationTRANSACTION_NOT_AUTHORIZED
4863Credit Not Processed / Cash Not DispensedFRAUDULENT
4870Chip Liability Shift — Counterfeit FraudFRAUDULENT
4871Chip Liability Shift — Lost/Stolen FraudFRAUDULENT
4880Late PresentmentTRANSACTION_NOT_AUTHORIZED
4890Currency Conversion DisputeTRANSACTION_NOT_AUTHORIZED
4900Defective/Not as Described MerchandiseOTHER
4901Credit Not ProcessedOTHER
4902Merchandise Not AcceptedOTHER
4903Incorrect Merchandise DeliveredOTHER
4905Services Not ProvidedOTHER
4908Cash Not DispensedOTHER

Visa Scheme

VISADescriptionGIE DISPUTE
10Fraud — Card-Absent EnvironmentFRAUDULENT
11Fraud — Card-Present EnvironmentTRANSACTION_NOT_AUTHORIZED
12Incorrect Transaction Amount or Account NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
13Fraudulent Transaction — No AuthorizationFRAUDULENT
30Services Not Provided or Merchandise Not ReceivedPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
41Credit Not ProcessedOTHER
53Not as Described or Defective MerchandiseOTHER
57Fraudulent Transaction — No Cardholder AuthorizationFRAUDULENT
62Counterfeit TransactionFRAUDULENT
70Processing ErrorOTHER
71Declined AuthorizationOTHER
72Cancelled TransactionOTHER
73Duplicate ProcessingOTHER
74Credit Not ProcessedOTHER
75Transaction Not RecognizedOTHER
76Incorrect Transaction Amount or Account NumberOTHER
77Non-Receipt of MerchandiseINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
78Fraudulent Transaction — No Cardholder AuthorizationOTHER
80Incorrect Transaction Amount or Account NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
81Fraudulent Transaction — Lost CardFRAUDULENT
82Fraudulent Transaction — Stolen CardDUPLICATE
83Fraudulent Transaction — Card-Absent EnvironmentFRAUDULENT
85Duplicate ProcessingOTHER
86Non-Compliance With AuthorizationDUPLICATE
93Late PresentmentFRAUDULENT
1001Fraud — Card-Absent Environment (E-Commerce)FRAUDULENT
1002Fraudulent Transaction — E-CommerceFRAUDULENT
1003Services Not Provided or Merchandise Not ReceivedFRAUDULENT
1004Fraudulent Transaction — No Cardholder AuthorizationFRAUDULENT
1005Not as Described or Defective MerchandiseFRAUDULENT
1101Processing Error — AuthorizationOTHER
1102Incorrect Transaction AmountOTHER
1103Exceeds Authorized AmountOTHER
1201Services Not Provided or Merchandise Not ReceivedOTHER
1202Not as Described Merchandise / ServiceOTHER
1203Recurring Transaction Not RecognizedOTHER
1204Defective MerchandiseINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
1205Services Not ProvidedINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
1206Non-Receipt of MerchandiseDUPLICATE
1207Duplicate ProcessingOTHER
1301Fraudulent Transaction — Card-Present EnvironmentPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
1302Fraudulent Transaction — No Cardholder AuthorizationOTHER
1303Fraudulent Transaction — Card-Absent EnvironmentOTHER
1304Duplicate ProcessingOTHER
1305Services Not Provided or Merchandise Not ReceivedOTHER
1306Credit Not ProcessedOTHER
1307Recurring Transaction Not RecognizedOTHER
1308Transaction Processing ErrorOTHER

Currency codes

List of currency codes:

AED
UAE Dirham
Currency code: 784
AFN
Afghani
Currency code: 971
ALL
Lek
Currency code: 008
AMD
Armenian Dram
Currency code: 051
ANG
Netherlands Antillean Guilder
Currency code: 532
AOA
Kwanza
Currency code: 973
ARS
Argentine Peso
Currency code: 032
AUD
Australian Dollar
Currency code: 036
AWG
Aruban Florin
Currency code: 533
AZN
Azerbaijanian Manat
Currency code: 944
BAM
Convertible Mark
Currency code: 977
BBD
Barbados Dollar
Currency code: 052
BDT
Taka
Currency code: 050
BGN
Bulgarian Lev
Currency code: 975
BHD
Bahraini Dinar
Currency code: 048
BIF
Burundi Franc
Currency code: 108
BMD
Bermudian Dollar
Currency code: 060
BND
Brunei Dollar
Currency code: 096
BOB
Boliviano
Currency code: 068
BOV
Mvdol
Currency code: 984
BRL
Brazilian Real
Currency code: 986
BSD
Bahamian Dollar
Currency code: 044
BTN
Ngultrum
Currency code: 064
BWP
Pula
Currency code: 072
BYR
Belarussian Ruble
Currency code: 974
BZD
Belize Dollar
Currency code: 084
CAD
Canadian Dollar
Currency code: 124
CDF
Congolese Franc
Currency code: 976
CHE
WIR Euro
Currency code: 947
CHF
Swiss Franc
Currency code: 756
CHW
WIR Franc
Currency code: 948
CLF
Unidad de Fomento
Currency code: 990
CLP
Chilean Peso
Currency code: 152
CNY
Yuan Renminbi
Currency code: 156
COP
Colombian Peso
Currency code: 170
COU
Unidad de Valor Real
Currency code: 970
CRC
Costa Rican Colon
Currency code: 188
CUC
Peso Convertible
Currency code: 931
CUP
Cuban Peso
Currency code: 192
CVE
Cabo Verde Escudo
Currency code: 132
CZK
Czech Koruna
Currency code: 203
DJF
Djibouti Franc
Currency code: 262
DKK
Danish Krone
Currency code: 208
DOP
Dominican Peso
Currency code: 214
DZD
Algerian Dinar
Currency code: 012
EGP
Egyptian Pound
Currency code: 818
ERN
Nakfa
Currency code: 232
ETB
Ethiopian Birr
Currency code: 230
EUR
Euro
Currency code: 978
FJD
Fiji Dollar
Currency code: 242
FKP
Falkland Islands Pound
Currency code: 238
GBP
Pound Sterling
Currency code: 826
GEL
Lari
Currency code: 981
GHS
Ghana Cedi
Currency code: 936
GIP
Gibraltar Pound
Currency code: 292
GMD
Dalasi
Currency code: 270
GNF
Guinea Franc
Currency code: 324
GTQ
Quetzal
Currency code: 320
GYD
Guyana Dollar
Currency code: 328
HKD
Hong Kong Dollar
Currency code: 344
HNL
Lempira
Currency code: 340
HRK
Kuna
Currency code: 191
HTG
Gourde
Currency code: 332
HUF
Forint
Currency code: 348
IDR
Rupiah
Currency code: 360
ILS
New Israeli Sheqel
Currency code: 376
INR
Indian Rupee
Currency code: 356
IQD
Iraqi Dinar
Currency code: 368
IRR
Iranian Rial
Currency code: 364
ISK
Iceland Krona
Currency code: 352
JMD
Jamaican Dollar
Currency code: 388
JOD
Jordanian Dinar
Currency code: 400
JPY
Yen
Currency code: 392
KES
Kenyan Shilling
Currency code: 404
KGS
Som
Currency code: 417
KHR
Riel
Currency code: 116
KMF
Comoro Franc
Currency code: 174
KPW
North Korean Won
Currency code: 408
KRW
Won
Currency code: 410
KWD
Kuwaiti Dinar
Currency code: 414
KYD
Cayman Islands Dollar
Currency code: 136
KZT
Tenge
Currency code: 398
LAK
Kip
Currency code: 418
LBP
Lebanese Pound
Currency code: 422
LKR
Sri Lanka Rupee
Currency code: 144
LRD
Liberian Dollar
Currency code: 430
LSL
Loti
Currency code: 426
LYD
Libyan Dinar
Currency code: 434
MAD
Moroccan Dirham
Currency code: 504
MDL
Moldovan Leu
Currency code: 498
MGA
Malagasy Ariary
Currency code: 969
MKD
Denar
Currency code: 807
MMK
Kyat
Currency code: 104
MNT
Tugrik
Currency code: 496
MOP
Pataca
Currency code: 446
MRO
Ouguiya
Currency code: 478
MUR
Mauritius Rupee
Currency code: 480
MVR
Rufiyaa
Currency code: 462
MWK
Kwacha
Currency code: 454
MXN
Mexican Peso
Currency code: 484
MXV
Mexican Unidad de Inversion (UDI)
Currency code: 979
MYR
Malaysian Ringgit
Currency code: 458
MZN
Mozambique Metical
Currency code: 943
NAD
Namibia Dollar
Currency code: 516
NGN
Naira
Currency code: 566
NIO
Cordoba Oro
Currency code: 558
NOK
Norwegian Krone
Currency code: 578
NPR
Nepalese Rupee
Currency code: 524
NZD
New Zealand Dollar
Currency code: 554
OMR
Rial Omani
Currency code: 512
PAB
Balboa
Currency code: 590
PEN
Nuevo Sol
Currency code: 604
PGK
Kina
Currency code: 598
PHP
Philippine Peso
Currency code: 608
PKR
Pakistan Rupee
Currency code: 586
PLN
Zloty
Currency code: 985
PYG
Guarani
Currency code: 600
QAR
Qatari Rial
Currency code: 634
RON
Romanian Leu
Currency code: 946
RSD
Serbian Dinar
Currency code: 941
RUB
Russian Ruble
Currency code: 643
RWF
Rwanda Franc
Currency code: 646
SAR
Saudi Riyal
Currency code: 682
SBD
Solomon Islands Dollar
Currency code: 090
SCR
Seychelles Rupee
Currency code: 690
SDG
Sudanese Pound
Currency code: 938
SEK
Swedish Krona
Currency code: 752
SGD
Singapore Dollar
Currency code: 702
SHP
Saint Helena Pound
Currency code: 654
SLL
Leone
Currency code: 694
SOS
Somali Shilling
Currency code: 706
SRD
Surinam Dollar
Currency code: 968
SSP
South Sudanese Pound
Currency code: 728
STD
Dobra
Currency code: 678
SVC
El Salvador Colon
Currency code: 222
SYP
Syrian Pound
Currency code: 760
SZL
Lilangeni
Currency code: 748
THB
Baht
Currency code: 764
TJS
Somoni
Currency code: 972
TMT
Turkmenistan New Manat
Currency code: 934
TND
Tunisian Dinar
Currency code: 788
TOP
Pa’anga
Currency code: 776
TRY
Turkish Lira
Currency code: 949
TTD
Trinidad and Tobago Dollar
Currency code: 780
TWD
New Taiwan Dollar
Currency code: 901
TZS
Tanzanian Shilling
Currency code: 834
UAH
Hryvnia
Currency code: 980
UGX
Uganda Shilling
Currency code: 800
USD
US Dollar
Currency code: 840
USN
US Dollar (Next day)
Currency code: 997
UYI
Uruguay Peso en Unidades Indexadas (URUIURUI)
Currency code: 940
UYU
Peso Uruguayo
Currency code: 858
UZS
Uzbekistan Sum
Currency code: 860
VEF
Bolivar
Currency code: 937
VND
Dong
Currency code: 704
VUV
Vatu
Currency code: 548
WST
Tala
Currency code: 882
XAG
Silver
Currency code: 961
XAU
Gold
Currency code: 959
XBA
Bond Markets Unit European Composite Unit (EURCO)
Currency code: 955
XBB
Bond Markets Unit European Monetary Unit (E.M.U.-6)
Currency code: 956
XBC
Bond Markets Unit European Unit of Account 9 (E.U.A.-9)
Currency code: 957
XBD
Bond Markets Unit European Unit of Account 17 (E.U.A.-17)
Currency code: 958
XCD
East Caribbean Dollar
Currency code: 951
XDR
SDR (Special Drawing Right)
Currency code: 960
XOF
CFA Franc BCEAO
Currency code: 952
XPD
Palladium
Currency code: 964
XPF
CFP Franc
Currency code: 953
XPT
Platinum
Currency code: 962
XSU
Sucre
Currency code: 994
XTS
Codes specifically reserved for testing purposes
Currency code: 963
XUA
ADB Unit of Account
Currency code: 965
XXX
The codes assigned for transactions where no currency is involved
Currency code: 999
YER
Yemeni Rial
Currency code: 886
ZAR
Rand
Currency code: 710
ZMW
Zambian Kwacha
Currency code: 967
ZWL
Zimbabwe Dollar
Currency 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 CodeDescription
AB05Timeout Creditor Agent
AB06Timeout Instructed Agent
AB07Offline Agent
AB08Offline Creditor Agent
AB09Error Creditor Agent
AB10Error Instructed Agent
AC01Incorrect Account Number
AC03Invalid Creditor Account Number
AC04Account Closed
AC06Account blocked, reason not specified
AC13Wrong Debtor account
AG01Forbidden on this type of account
AG02Operation/Transaction code incorrect, invalid file format
AG09Payment Not Received
AG10Agent Suspended
AG11Creditor Agent Suspended
AGNTIncorrect Agent
AM02Not Allowed Amount
AM04Insufficient Funds
AM05Duplicate payment
AM09Wrong Amount
AM23Amount Exceeds Settlement Limit
ARDTAlready a returned transaction
BE04Account address invalid
BE05Creditor Identifier incorrect
CUSTCustomer decision
CURRIncorrect Currency
CUTACancellation Upon Unable to Apply
CNORCreditor Bank is not Registered
DNORDebtor Bank is not Registered
DUPLDuplicate Payment
ED05Settlement Failed
ERINERI Option Not Supported
FF01Invalid File Format
FOCRPositive answer to the recall or RfRO
FRADFraudulent originated credit transfer
LEGLLegal Decision
MD01No valid mandate
MD02Mandate data missing or invalid
MD06Refund Request By End Customer
MD07Beneficiary Deceased
MS02By order of the beneficiary
MS03Reason not specified
NOASNo Answer From Customer
NOORNo Original Transaction Received
RC01Invalid BIC
RC07Invalid Creditor BIC Identifier
RR01Missing Debtor Account Or Identification
RR02Missing Debtors Name Or Address
RR03Missing Creditors Name Or Address
RR04Regulatory Reason
SL01Specific service offered by debtor Bank
TECHTechnical problems resulting in erroneous SCT’s
TM01Invalid Cut Off Time
UPAYUndue Payment

Country codes

List of country codes:

004
Afghanistan
Alpha2 code: AF
Alpha3 code: AFG
008
Albania
Alpha2 code: AL
Alpha3 code: ALB
010
Antarctica
Alpha2 code: AQ
Alpha3 code: ATA
012
Algeria
Alpha2 code: DZ
Alpha3 code: DZA
016
American Samoa
Alpha2 code: AS
Alpha3 code: ASM
020
Andorra
Alpha2 code: AD
Alpha3 code: AND
024
Angola
Alpha2 code: AO
Alpha3 code: AGO
028
Antigua and Barbuda
Alpha2 code: AG
Alpha3 code: ATG
031
Azerbaijan
Alpha2 code: AZ
Alpha3 code: AZE
032
Argentina
Alpha2 code: AR
Alpha3 code: ARG
036
Australia
Alpha2 code: AU
Alpha3 code: AUS
040
Austria
Alpha2 code: AT
Alpha3 code: AUT
044
Bahamas (the)
Alpha2 code: BS
Alpha3 code: BHS
048
Bahrain
Alpha2 code: BH
Alpha3 code: BHR
050
Bangladesh
Alpha2 code: BD
Alpha3 code: BGD
051
Armenia
Alpha2 code: AM
Alpha3 code: ARM
052
Barbados
Alpha2 code: BB
Alpha3 code: BRB
056
Belgium
Alpha2 code: BE
Alpha3 code: BEL
060
Bermuda
Alpha2 code: BM
Alpha3 code: BMU
064
Bhutan
Alpha2 code: BT
Alpha3 code: BTN
068
Bolivia, Plurinational State of
Alpha2 code: BO
Alpha3 code: BOL
070
Bosnia and Herzegovina
Alpha2 code: BA
Alpha3 code: BIH
072
Botswana
Alpha2 code: BW
Alpha3 code: BWA
074
Bouvet Island
Alpha2 code: BV
Alpha3 code: BVT
076
Brazil
Alpha2 code: BR
Alpha3 code: BRA
084
Belize
Alpha2 code: BZ
Alpha3 code: BLZ
086
British Indian Ocean Territory (the)
Alpha2 code: IO
Alpha3 code: IOT
090
Solomon Islands (the)
Alpha2 code: SB
Alpha3 code: SLB
092
Virgin Islands (British)
Alpha2 code: VG
Alpha3 code: VGB
096
Brunei Darussalam
Alpha2 code: BN
Alpha3 code: BRN
100
Bulgaria
Alpha2 code: BG
Alpha3 code: BGR
104
Myanmar
Alpha2 code: MM
Alpha3 code: MMR
108
Burundi
Alpha2 code: BI
Alpha3 code: BDI
112
Belarus
Alpha2 code: BY
Alpha3 code: BLR
116
Cambodia
Alpha2 code: KH
Alpha3 code: KHM
120
Cameroon
Alpha2 code: CM
Alpha3 code: CMR
124
Canada
Alpha2 code: CA
Alpha3 code: CAN
132
Cape Verde
Alpha2 code: CV
Alpha3 code: CPV
136
Cayman Islands (the)
Alpha2 code: KY
Alpha3 code: CYM
140
Central African Republic (the)
Alpha2 code: CF
Alpha3 code: CAF
144
Sri Lanka
Alpha2 code: LK
Alpha3 code: LKA
148
Chad
Alpha2 code: TD
Alpha3 code: TCD
152
Chile
Alpha2 code: CL
Alpha3 code: CHL
156
China
Alpha2 code: CN
Alpha3 code: CHN
158
Taiwan (Province of China)
Alpha2 code: TW
Alpha3 code: TWN
162
Christmas Island
Alpha2 code: CX
Alpha3 code: CXR
166
Cocos (Keeling) Islands (the)
Alpha2 code: CC
Alpha3 code: CCK
170
Colombia
Alpha2 code: CO
Alpha3 code: COL
174
Comoros
Alpha2 code: KM
Alpha3 code: COM
175
Mayotte
Alpha2 code: YT
Alpha3 code: MYT
178
Congo
Alpha2 code: CG
Alpha3 code: COG
180
Congo (the Democratic Republic of the)
Alpha2 code: CD
Alpha3 code: COD
184
Cook Islands (the)
Alpha2 code: CK
Alpha3 code: COK
188
Costa Rica
Alpha2 code: CR
Alpha3 code: CRI
191
Croatia
Alpha2 code: HR
Alpha3 code: HRV
192
Cuba
Alpha2 code: CU
Alpha3 code: CUB
196
Cyprus
Alpha2 code: CY
Alpha3 code: CYP
203
Czech Republic (the)
Alpha2 code: CZ
Alpha3 code: CZE
204
Benin
Alpha2 code: BJ
Alpha3 code: BEN
208
Denmark
Alpha2 code: DK
Alpha3 code: DNK
212
Dominica
Alpha2 code: DM
Alpha3 code: DMA
214
Dominican Republic (the)
Alpha2 code: DO
Alpha3 code: DOM
218
Ecuador
Alpha2 code: EC
Alpha3 code: ECU
222
El Salvador
Alpha2 code: SV
Alpha3 code: SLV
226
Equatorial Guinea
Alpha2 code: GQ
Alpha3 code: GNQ
231
Ethiopia
Alpha2 code: ET
Alpha3 code: ETH
232
Eritrea
Alpha2 code: ER
Alpha3 code: ERI
233
Estonia
Alpha2 code: EE
Alpha3 code: EST
234
Faroe Islands (the)
Alpha2 code: FO
Alpha3 code: FRO
238
Falkland Islands (the) [Malvinas]
Alpha2 code: FK
Alpha3 code: FLK
239
South Georgia and the South Sandwich Islands
Alpha2 code: GS
Alpha3 code: SGS
242
Fiji
Alpha2 code: FJ
Alpha3 code: FJI
246
Finland
Alpha2 code: FI
Alpha3 code: FIN
248
Ã…land Islands
Alpha2 code: AX
Alpha3 code: ALA
250
France
Alpha2 code: FR
Alpha3 code: FRA
254
French Guiana
Alpha2 code: GF
Alpha3 code: GUF
258
French Polynesia
Alpha2 code: PF
Alpha3 code: PYF
260
French Southern Territories (the)
Alpha2 code: TF
Alpha3 code: ATF
262
Djibouti
Alpha2 code: DJ
Alpha3 code: DJI
266
Gabon
Alpha2 code: GA
Alpha3 code: GAB
268
Georgia
Alpha2 code: GE
Alpha3 code: GEO
270
Gambia (The)
Alpha2 code: GM
Alpha3 code: GMB
275
Palestine, State of
Alpha2 code: PS
Alpha3 code: PSE
276
Germany
Alpha2 code: DE
Alpha3 code: DEU
288
Ghana
Alpha2 code: GH
Alpha3 code: GHA
292
Gibraltar
Alpha2 code: GI
Alpha3 code: GIB
296
Kiribati
Alpha2 code: KI
Alpha3 code: KIR
300
Greece
Alpha2 code: GR
Alpha3 code: GRC
304
Greenland
Alpha2 code: GL
Alpha3 code: GRL
308
Grenada
Alpha2 code: GD
Alpha3 code: GRD
312
Guadeloupe
Alpha2 code: GP
Alpha3 code: GLP
316
Guam
Alpha2 code: GU
Alpha3 code: GUM
320
Guatemala
Alpha2 code: GT
Alpha3 code: GTM
324
Guinea
Alpha2 code: GN
Alpha3 code: GIN
328
Guyana
Alpha2 code: GY
Alpha3 code: GUY
332
Haiti
Alpha2 code: HT
Alpha3 code: HTI
334
Heard Island and McDonald Islands
Alpha2 code: HM
Alpha3 code: HMD
336
Holy See (the) [Vatican City State]
Alpha2 code: VA
Alpha3 code: VAT
340
Honduras
Alpha2 code: HN
Alpha3 code: HND
344
Hong Kong
Alpha2 code: HK
Alpha3 code: HKG
348
Hungary
Alpha2 code: HU
Alpha3 code: HUN
352
Iceland
Alpha2 code: IS
Alpha3 code: ISL
356
India
Alpha2 code: IN
Alpha3 code: IND
360
Indonesia
Alpha2 code: ID
Alpha3 code: IDN
364
Iran (the Islamic Republic of)
Alpha2 code: IR
Alpha3 code: IRN
368
Iraq
Alpha2 code: IQ
Alpha3 code: IRQ
372
Ireland
Alpha2 code: IE
Alpha3 code: IRL
376
Israel
Alpha2 code: IL
Alpha3 code: ISR
380
Italy
Alpha2 code: IT
Alpha3 code: ITA
384
Ivory coast
Alpha2 code: CI
Alpha3 code: CIV
388
Jamaica
Alpha2 code: JM
Alpha3 code: JAM
392
Japan
Alpha2 code: JP
Alpha3 code: JPN
398
Kazakhstan
Alpha2 code: KZ
Alpha3 code: KAZ
400
Jordan
Alpha2 code: JO
Alpha3 code: JOR
404
Kenya
Alpha2 code: KE
Alpha3 code: KEN
408
Korea (the Democratic People’s Republic of)
Alpha2 code: KP
Alpha3 code: PRK
410
Korea (the Republic of)
Alpha2 code: KR
Alpha3 code: KOR
414
Kuwait
Alpha2 code: KW
Alpha3 code: KWT
417
Kyrgyzstan
Alpha2 code: KG
Alpha3 code: KGZ
418
Lao People’s Democratic Republic (the)
Alpha2 code: LA
Alpha3 code: LAO
422
Lebanon
Alpha2 code: LB
Alpha3 code: LBN
426
Lesotho
Alpha2 code: LS
Alpha3 code: LSO
428
Latvia
Alpha2 code: LV
Alpha3 code: LVA
430
Liberia
Alpha2 code: LR
Alpha3 code: LBR
434
Libya
Alpha2 code: LY
Alpha3 code: LBY
438
Liechtenstein
Alpha2 code: LI
Alpha3 code: LIE
440
Lithuania
Alpha2 code: LT
Alpha3 code: LTU
442
Luxembourg
Alpha2 code: LU
Alpha3 code: LUX
446
Macao
Alpha2 code: MO
Alpha3 code: MAC
450
Madagascar
Alpha2 code: MG
Alpha3 code: MDG
454
Malawi
Alpha2 code: MW
Alpha3 code: MWI
458
Malaysia
Alpha2 code: MY
Alpha3 code: MYS
462
Maldives
Alpha2 code: MV
Alpha3 code: MDV
466
Mali
Alpha2 code: ML
Alpha3 code: MLI
470
Malta
Alpha2 code: MT
Alpha3 code: MLT
474
Martinique
Alpha2 code: MQ
Alpha3 code: MTQ
478
Mauritania
Alpha2 code: MR
Alpha3 code: MRT
480
Mauritius
Alpha2 code: MU
Alpha3 code: MUS
484
Mexico
Alpha2 code: MX
Alpha3 code: MEX
492
Monaco
Alpha2 code: MC
Alpha3 code: MCO
496
Mongolia
Alpha2 code: MN
Alpha3 code: MNG
498
Moldova (the Republic of)
Alpha2 code: MD
Alpha3 code: MDA
499
Montenegro
Alpha2 code: ME
Alpha3 code: MNE
500
Montserrat
Alpha2 code: MS
Alpha3 code: MSR
504
Morocco
Alpha2 code: MA
Alpha3 code: MAR
508
Mozambique
Alpha2 code: MZ
Alpha3 code: MOZ
512
Oman
Alpha2 code: OM
Alpha3 code: OMN
516
Namibia
Alpha2 code: NA
Alpha3 code: NAM
520
Nauru
Alpha2 code: NR
Alpha3 code: NRU
524
Nepal
Alpha2 code: NP
Alpha3 code: NPL
528
Netherlands (the)
Alpha2 code: NL
Alpha3 code: NLD
531
Curacao
Alpha2 code: CW
Alpha3 code: CUW
533
Aruba
Alpha2 code: AW
Alpha3 code: ABW
534
Sint Maarten (Dutch part)
Alpha2 code: SX
Alpha3 code: SXM
535
Bonaire, Sint Eustatius and Saba
Alpha2 code: BQ
Alpha3 code: BES
540
New Caledonia
Alpha2 code: NC
Alpha3 code: NCL
548
Vanuatu
Alpha2 code: VU
Alpha3 code: VUT
554
New Zealand
Alpha2 code: NZ
Alpha3 code: NZL
558
Nicaragua
Alpha2 code: NI
Alpha3 code: NIC
562
Niger (the)
Alpha2 code: NE
Alpha3 code: NER
566
Nigeria
Alpha2 code: NG
Alpha3 code: NGA
570
Niue
Alpha2 code: NU
Alpha3 code: NIU
574
Norfolk Island
Alpha2 code: NF
Alpha3 code: NFK
578
Norway
Alpha2 code: NO
Alpha3 code: NOR
580
Northern Mariana Islands (the)
Alpha2 code: MP
Alpha3 code: MNP
581
United States Minor Outlying Islands (the)
Alpha2 code: UM
Alpha3 code: UMI
583
Micronesia (the Federated States of)
Alpha2 code: FM
Alpha3 code: FSM
584
Marshall Islands (the)
Alpha2 code: MH
Alpha3 code: MHL
585
Palau
Alpha2 code: PW
Alpha3 code: PLW
586
Pakistan
Alpha2 code: PK
Alpha3 code: PAK
591
Panama
Alpha2 code: PA
Alpha3 code: PAN
598
Papua New Guinea
Alpha2 code: PG
Alpha3 code: PNG
600
Paraguay
Alpha2 code: PY
Alpha3 code: PRY
604
Peru
Alpha2 code: PE
Alpha3 code: PER
608
Philippines (the)
Alpha2 code: PH
Alpha3 code: PHL
612
Pitcairn
Alpha2 code: PN
Alpha3 code: PCN
616
Poland
Alpha2 code: PL
Alpha3 code: POL
620
Portugal
Alpha2 code: PT
Alpha3 code: PRT
624
Guinea-Bissau
Alpha2 code: GW
Alpha3 code: GNB
626
Timor-Leste
Alpha2 code: TL
Alpha3 code: TLS
630
Puerto Rico
Alpha2 code: PR
Alpha3 code: PRI
634
Qatar
Alpha2 code: QA
Alpha3 code: QAT
638
Réunion
Alpha2 code: RE
Alpha3 code: REU
642
Romania
Alpha2 code: RO
Alpha3 code: ROU
643
Russian Federation (the)
Alpha2 code: RU
Alpha3 code: RUS
646
Rwanda
Alpha2 code: RW
Alpha3 code: RWA
652
Saint Barthélemy
Alpha2 code: BL
Alpha3 code: BLM
654
Saint Helena, Ascension and Tristan da Cunha
Alpha2 code: SH
Alpha3 code: SHN
659
Saint Kitts and Nevis
Alpha2 code: KN
Alpha3 code: KNA
660
Anguilla
Alpha2 code: AI
Alpha3 code: AIA
662
Saint Lucia
Alpha2 code: LC
Alpha3 code: LCA
663
Saint Martin (French part)
Alpha2 code: MF
Alpha3 code: MAF
666
Saint Pierre and Miquelon
Alpha2 code: PM
Alpha3 code: SPM
670
Saint Vincent and the Grenadines
Alpha2 code: VC
Alpha3 code: VCT
674
San Marino
Alpha2 code: SM
Alpha3 code: SMR
678
Sao Tome and Principe
Alpha2 code: ST
Alpha3 code: STP
682
Saudi Arabia
Alpha2 code: SA
Alpha3 code: SAU
686
Senegal
Alpha2 code: SN
Alpha3 code: SEN
688
Serbia
Alpha2 code: RS
Alpha3 code: SRB
690
Seychelles
Alpha2 code: SC
Alpha3 code: SYC
694
Sierra Leone
Alpha2 code: SL
Alpha3 code: SLE
702
Singapore
Alpha2 code: SG
Alpha3 code: SGP
703
Slovakia
Alpha2 code: SK
Alpha3 code: SVK
704
Viet Nam
Alpha2 code: VN
Alpha3 code: VNM
705
Slovenia
Alpha2 code: SI
Alpha3 code: SVN
706
Somalia
Alpha2 code: SO
Alpha3 code: SOM
710
South Africa
Alpha2 code: ZA
Alpha3 code: ZAF
716
Zimbabwe
Alpha2 code: ZW
Alpha3 code: ZWE
724
Spain
Alpha2 code: ES
Alpha3 code: ESP
728
South Sudan
Alpha2 code: SS
Alpha3 code: SSD
729
Sudan (the)
Alpha2 code: SD
Alpha3 code: SDN
732
Western Sahara
Alpha2 code: EH
Alpha3 code: ESH
740
Suriname
Alpha2 code: SR
Alpha3 code: SUR
744
Svalbard and Jan Mayen
Alpha2 code: SJ
Alpha3 code: SJM
748
Swaziland
Alpha2 code: SZ
Alpha3 code: SWZ
752
Sweden
Alpha2 code: SE
Alpha3 code: SWE
756
Switzerland
Alpha2 code: CH
Alpha3 code: CHE
760
Syrian Arab Republic (the)
Alpha2 code: SY
Alpha3 code: SYR
762
Tajikistan
Alpha2 code: TJ
Alpha3 code: TJK
764
Thailand
Alpha2 code: TH
Alpha3 code: THA
768
Togo
Alpha2 code: TG
Alpha3 code: TGO
772
Tokelau
Alpha2 code: TK
Alpha3 code: TKL
776
Tonga
Alpha2 code: TO
Alpha3 code: TON
780
Trinidad and Tobago
Alpha2 code: TT
Alpha3 code: TTO
784
United Arab Emirates (the)
Alpha2 code: AE
Alpha3 code: ARE
788
Tunisia
Alpha2 code: TN
Alpha3 code: TUN
792
Turkey
Alpha2 code: TR
Alpha3 code: TUR
795
Turkmenistan
Alpha2 code: TM
Alpha3 code: TKM
796
Turks and Caicos Islands (the)
Alpha2 code: TC
Alpha3 code: TCA
798
Tuvalu
Alpha2 code: TV
Alpha3 code: TUV
800
Uganda
Alpha2 code: UG
Alpha3 code: UGA
804
Ukraine
Alpha2 code: UA
Alpha3 code: UKR
807
Macedonia (the former Yugoslav Republic of)
Alpha2 code: MK
Alpha3 code: MKD
818
Egypt
Alpha2 code: EG
Alpha3 code: EGY
826
United Kingdom (the)
Alpha2 code: GB
Alpha3 code: GBR
831
Guernsey
Alpha2 code: GG
Alpha3 code: GGY
832
Jersey
Alpha2 code: JE
Alpha3 code: JEY
833
Isle of Man
Alpha2 code: IM
Alpha3 code: IMN
834
Tanzania, United Republic of
Alpha2 code: TZ
Alpha3 code: TZA
840
United States (the)
Alpha2 code: US
Alpha3 code: USA
850
Virgin Islands (U.S.)
Alpha2 code: VI
Alpha3 code: VIR
854
Burkina Faso
Alpha2 code: BF
Alpha3 code: BFA
858
Uruguay
Alpha2 code: UY
Alpha3 code: URY
860
Uzbekistan
Alpha2 code: UZ
Alpha3 code: UZB
862
Venezuela, Bolivarian Republic of
Alpha2 code: VE
Alpha3 code: VEN
876
Wallis and Futuna
Alpha2 code: WF
Alpha3 code: WLF
882
Samoa
Alpha2 code: WS
Alpha3 code: WSM
887
Yemen
Alpha2 code: YE
Alpha3 code: YEM
894
Zambia  
Alpha2 code: ZM
Alpha3 code: ZMB

Transfer purpose codes

ACCT : AccountManagement
ADCS : AdvisoryDonationCopyrightServices
ADMG : AdministrativeManagement
ADVA : AdvancePayment
AEMP : ActiveEmploymentPolicy
AGRT : AgriculturalTransfer
AIRB : Air
ALLW : Allowance
ALMY : AlimonyPayment
AMEX : Amex
ANNI : Annuity
ANTS : AnesthesiaServices
AREN : AccountsReceivablesEntry
AUCO : AuthenticatedCollections
B112 : TrailerFeePayment
BBSC : BabyBonusScheme
BCDM : BearerChequeDomestic
BCFG : BearerChequeForeign
BECH : ChildBenefit
BENE : UnemploymentDisabilityBenefit
BEXP : BusinessExpenses
BFWD : BondForward
BKDF : BankLoanDelayedDrawFunding
BKFE : BankLoanFees
BKFM : BankLoanFundingMemo
BKIP : BankLoanAccruedInterestPayment
BKPP : BankLoanPrincipalPaydown
BLDM : BuildingMaintenance
BNET : BondForwardNetting
BOCE : BackOfficeConversionEntry
BOND : Bonds
BONU : BonusPayment.
BR12 : TrailerFeeRebate
BUSB : Bus
CABD : CorporateActions-Bonds
CAEQ : CorporateActions-Equities
CAFI : CustodianManagementFeeInhouse
CASH : CashManagementTransfer
CBCR : CreditCard
CBFF : CapitalBuilding
CBFR : CapitalBuildingRetirement
CBLK : CardBulkClearing
CBTV : CableTVBill
CCHD : CashCompensationHelplessnessDisability
CCIR : CrossCurrencyIRS
CCPC : CCPClearedInitialMargin
CCPM : CCPClearedVariationMargin
CCRD : CreditCardPayment
CCSM : CCPClearedInitialMarginSegregatedCash
CDBL : CreditCardBill
CDCB : CardPaymentWithCashBack
CDCD : CashDisbursementCashSettlement
CDCS : CashDisbursementWithSurcharging
CDDP : CardDeferredPayment
CDEP : CreditDefaultEventPayment
CDOC : OriginalCredit
CDQC : QuasiCash
CFDI : CapitalFallingDueInhouse
CFEE : CancellationFee
CGDD : CardGeneratedDirectDebit
CHAR : CharityPayment
CLPR : CarLoanPrincipalRepayment
CMDT : CommodityTransfer
COLL : CollectionPayment
COMC : CommercialPayment
COMM : Commission
COMP : CompensationPayment
COMT : ConsumerThirdPartyConsolidatedPayment
CORT : TradeSettlementPayment
COST : Costs
CPEN : CashPenalties
CPKC : CarparkCharges
CPYR : Copyright
CRDS : CreditDefaultSwap
CRPR : CrossProduct
CRSP : CreditSupport
CRTL : CreditLine
CSDB : CashDisbursementCashManagement
CSLP : CompanySocialLoanPaymentToBank
CVCF : ConvalescentCareFacility
DBCR : DebitCard
DBTC : DebitCollectionPayment
DCRD : DebitCardPayment
DEBT : ChargesBorneByDebtor
DEPD : DependentSupportPayment
DEPT : Deposit
DERI : Derivatives
DICL : Diners
DIVD : Dividend
DMEQ : DurableMedicaleEquipment
DNTS : DentalServices
DSMT : PrintedOrderDisbursement
DVPM : DeliverAgainstPayment
ECPG : GuaranteedEPayment
ECPR : EPaymentReturn
ECPU : NonGuaranteedEPayment
EDUC : Education
EFTC : LowValueCredit
EFTD : LowValueDebit
ELEC : ElectricityBill
ENRG : Energies
EPAY : Epayment
EQPT : EquityOption
EQTS : Equities
EQUS : EquitySwap
ESTX : EstateTax
ETUP : EPurseTopUp
EXPT : ExoticOption
EXTD : ExchangeTradedDerivatives
FACT : FactorUpdateRelatedPayment
FAND : FinancialAidInCaseOfNaturalDisaster
FCOL : FeeCollection
FCPM : LatePaymentOfFeesAndCharges
FEES : PaymentOfFees
FERB : Ferry
FIXI : FixedIncome
FLCR : FleetCard
FNET : FuturesNettingPayment
FORW : ForwardForeignExchange
FREX : ForeignExchange
FUTR : Futures
FWBC : ForwardBrokerOwnedCashCollateral
FWCC : ForwardClientOwnedCashCollateral
FWLV : ForeignWorkerLevy
FWSB : ForwardBrokerOwnedCashCollateralSegregated
FWSC : ForwardClientOwnedSegregatedCashCollateral
FXNT : ForeignExchangeRelatedNetting
GAFA : GovernmentFamilyAllowance
GAHO : GovernmentHousingAllowance
GAMB : GamblingOrWageringPayment
GASB : GasBill
GDDS : PurchaseSaleOfGoods
GDSV : PurchaseSaleOfGoodsAndServices
GFRP : GuaranteeFundRightsPayment
GIFT : Gift
GOVI : GovernmentInsurance
GOVT : GovernmentPayment
GSCB : PurchaseSaleOfGoodsAndServicesWithCashBack
GSTX : GoodsServicesTax
GVEA : AustrianGovernmentEmployeesCategoryA
GVEB : AustrianGovernmentEmployeesCategoryB
GVEC : AustrianGovernmentEmployeesCategoryC
GVED : AustrianGovernmentEmployeesCategoryD
GWLT : GovermentWarLegislationTransfer
HEDG : Hedging
HLRP : PropertyLoanRepayment
HLST : PropertyLoanSettlement
HLTC : HomeHealthCare
HLTI : HealthInsurance
HREC : HousingRelatedContribution
HSPC : HospitalCare
HSTX : HousingTax
ICCP : IrrevocableCreditCardPayment
ICRF : IntermediateCareFacility
IDCP : IrrevocableDebitCardPayment
IHRP : InstalmentHirePurchaseAgreement
INPC : InsurancePremiumCar
INPR : InsurancePremiumRefund
INSC : PaymentOfInsuranceClaim
INSM : Installment
INSU : InsurancePremium
INTC : IntraCompanyPayment
INTE : Interest
INTP : IntraPartyPayment
INTX : IncomeTax
INVS : InvestmentAndSecurities
IPAY : InstantPayments
IPCA : InstantPaymentsCancellation
IPDO : InstantPaymentsForDonations
IPEA : InstantPaymentsInECommerceWithoutAddressData
IPEC : InstantPaymentsInECommerceWithAddressData
IPEW : InstantPaymentsInECommerce
IPPS : InstantPaymentsAtPOS
IPRT : InstantPaymentsReturn
IPU2 : InstantPaymentsUnattendedVendingMachineWith2FA
IPUW : InstantPaymentsUnattendedVendingMachineWithout2FA
IVPT : InvoicePayment
LBIN : LendingBuyInNetting
LBRI : LaborInsurance
LCOL : LendingCashCollateralFreeMovement
LFEE : LendingFees
LICF : LicenseFee
LIFI : LifeInsurance
LIMA : LiquidityManagement
LMEQ : LendingEquityMarkedToMarketCashCollateral
LMFI : LendingFixedIncomeMarkedToMarketCashCollateral
LMRK : LendingUnspecifiedTypeOfMarkedToMarketCashCollateral
LOAN : Loan
LOAR : LoanRepayment
LOTT : LotteryPayment
LREB : LendingRebatePayments
LREV : LendingRevenuePayments
LSFL : LendingClaimPayment
LTCF : LongTermCareFacility
MAFC : MedicalAidFundContribution
MARF : MedicalAidRefund
MARG : DailyMarginOnListedDerivatives
MBSB : MBSBrokerOwnedCashCollateral
MBSC : MBSClientOwnedCashCollateral
MCDM : MultiCurrenyChequeDomestic
MCFG : MultiCurrenyChequeForeign
MDCS : MedicalServices
MGCC : FuturesInitialMargin
MGSC : FuturesInitialMarginClientOwnedSegregatedCashCollateral
MOMA : MoneyMarket
MP2B : MobileP2BPayment
MP2P : MobileP2PPayment
MSVC : MultipleServiceTypes
MTUP : MobileTopUp
NETT : Netting
NITX : NetIncomeTax
NOWS : NotOtherwiseSpecified
NWCH : NetworkCharge
NWCM : NetworkCommunication
OCCC : ClientOwnedOCCPledgedCollateral
OCDM : OrderChequeDomestic
OCFG : OrderChequeForeign
OFEE : OpeningFee
OPBC : OTCOptionBrokerOwnedCashCollateral
OPCC : OTCOptionClientOwnedCashCollateral
OPSB : OTCOptionBrokerOwnedSegregatedCashCollateral
OPSC : OTCOptionClientOwnedCashSegregatedCashCollateral
OPTN : FXOption
OTCD : OTCDerivatives
OTHR : Other
OTLC : OtherTelecomRelatedBill
PADD : PreauthorizedDebit
PAYR : Payroll
PCOM : PropertyCompletionPayment
PDEP : PropertyDeposit
PEFC : PensionFundContribution
PENO : PaymentBasedOnEnforcementOrder
PENS : PensionPayment
PHON : TelephoneBill
PLDS : PropertyLoanDisbursement
PLRF : PropertyLoanRefinancing
POPE : PointOfPurchaseEntry
PPTI : PropertyInsurance
PRCP : PricePayment
PRME : PreciousMetal
PTSP : PaymentTerms
PTXP : PropertyTax
RAPI : RapidPaymentInstruction
RCKE : RepresentedCheckEntry
RCPT : ReceiptPayment
RDTX : RoadTax
REBT : Rebate
REFU : Refund
RELG : RentalLeaseGeneral
RENT : Rent
REOD : AccountOverdraftRepayment
REPO : RepurchaseAgreement
RETL : RetailPayment
RHBS : RehabilitationSupport
RIMB : ReimbursementOfAPreviousErroneousTransaction
RINP : RecurringInstallmentPayment
RLWY : Railway
ROYA : Royalties
RPBC : BilateralRepoBrokerOwnedCollateral
RPCC : RepoClientOwnedCollateral
RPNT : BilateralRepoInternetNetting
RPSB : BilateralRepoBrokerOwnedSegregatedCashCollateral
RPSC : BilateralRepoClientOwnedSegregatedCashCollateral
RRBN : RoundRobin
RRCT : ReimbursementReceivedCreditTransfer
RRTP : RelatedRequestToPay
RVPM : ReceiveAgainstPayment
RVPO : ReverseRepurchaseAgreement
SALA : SalaryPayment
SASW : ATM
SAVG : Savings
SBSC : SecuritiesBuySellSellBuyBack
SCIE : SingleCurrencyIRSExotic
SCIR : SingleCurrencyIRS
SCRP : SecuritiesCrossProducts
SCVE : PurchaseSaleOfServices
SECU : Securities
SEPI : SecuritiesPurchaseInhouse
SERV : ServiceCharges
SHBC : BrokerOwnedCollateralShortSale
SHCC : ClientOwnedCollateralShortSale
SHSL : ShortSell
SLEB : SecuritiesLendingAndBorrowing
SLOA : SecuredLoan
SLPI : PaymentSlipInstruction
SPLT : SplitPayments
SPSP : SalaryPensionSumPayment
SSBE : SocialSecurityBenefit
STDY : Study
SUBS : Subscription
SUPP : SupplierPayment
SWBC : SwapBrokerOwnedCashCollateral
SWCC : SwapClientOwnedCashCollateral
SWFP : SwapContractFinalPayment
SWPP : SwapContractPartialPayment
SWPT : Swaption
SWRS : SwapContractResetPayment
SWSB : SwapsBrokerOwnedSegregatedCashCollateral
SWSC : SwapsClientOwnedSegregatedCashCollateral
SWUF : SwapContractUpfrontPayment
TAXR : TaxRefund
TAXS : TaxPayment
TBAN : TBAPairOffNetting
TBAS : ToBeAnnounced
TBBC : TBABrokerOwnedCashCollateral
TBCC : TBAClientOwnedCashCollateral
TBIL : TelecommunicationsBill
TCSC : TownCouncilServiceCharges
TELI : TelephoneInitiatedTransaction
TLRF : NonUSMutualFundTrailerFeePayment
TLRR : NonUSMutualFundTrailerFeeRebatePayment
TMPG : TMPGClaimPayment
TPRI : TriPartyRepoInterest
TPRP : TriPartyRepoNetting
TRAD : Commercial
TRCP : TreasuryCrossProduct
TREA : TreasuryPayment
TRFD : TrustFund
TRNC : TruncatedPaymentSlip
TRPT : RoadPricing
TRVC : TravellerCheque
UBIL : Utilities
UNIT : UnitTrustPurchase
VATX : ValueAddedTaxPayment
VIEW : VisionCare
WEBI : InternetInitiatedTransaction
WHLD : WithHolding
WTER : WaterBill

SDD purpose codes

The categoryPurposeCode(1) and purposeCode(2) used in the SDDTransaction.

SALA(1) (2)Salary Payment
TREA(1) (2)Treasury Payment
ADVA(2)Advance Payment
AGRT(2)Agricultural Transfer
ALMY(2)Alimony Payment
BECH(2)Child Benefit
BENE(2)Unemployment Disability Benefit
BONU(2)Bonus Payment
CASH(1) (2)Cash Management Transfer
CBFF(2)Capital Building
CHAR(2)Charity Payment
COLL(2)Collection Payment
CMDT(2)Commodity Transfer
COMC(2)Commercial Payment
COMM(2)Commission
COST(2)Costs
CPYR(2)Copyright
DIVI(1) (2)Dividend
FREX(2)Foreign Exchange
GDDS(2)Purchase Sale Of Goods
GOVT(1) (2)Gouvernment Payment
IHRP(2)Instalment Hire Purchase Agreement
INTC(1) (2)Intra Company Payment
INSU(2)Insurance Premium
INTE(1) (2)Interest
LIFC(2)Licence Fee
LOAN(1) (2)Loan
LOAR(2)Loan Repayment
NETT(2)Netting
PAYR(2)Payment Roll
PENS(1) (2)Pension
REFU (2)Refund
RENT(2)Rent
ROYA(2)Royalties
SCVE(2)Purchase Sale Of Services
SECU(1) (2)Securities
SSBE(1) (2)Social Security Benefit
SUBS(2)Subscription
TAXS(1) (2)Tax Payment
COMT(2)Consumer Third Party Consolidated Payment
DBTC(2)Debit Collection Payment
SUPP(1) (2)Supplier Payment
HEDG(1) (2)Hedging
MSVC(2)Multiple Service Types
NOWS(2)Not Otherwise Specified
CARD(2)Card Payment
CDBL(2)Credit Card Bill
FERB(2)Ferry
AIRB(2)Air
BUSB(2)Bus
RLWY(2)Railway
CVCF(2)Convalescent Care Facility
DNTS(2)Dental Services
ANTS(2)Anesthesia Services
HLTC(2)Home Health Care
HSPC(2)Hospital Care
ICRF(2)Intermediate Care Facility
LTCF(2)Long Term Care Facility
MDCS(2)Medical Services
VIEW(2)Vision Care
DMEQ(2)Durable Medicale Equipment
CBTV(2)Cable TV Bill
ELEC(2)Electricity Bill
GASB(2)Gas Bill
PHON(2)Telephone Bill
OTLC(2)Other Telecom Related Bill
WTER(2)Water Bill
STDY(2)Study
PRCP(2)Price Payment
INSM(2)Installment
RINP(2)Recurring Installment Payment
OFEE(2)Opening Fee
CFEE(2)Cancellation Fee
GOVI(2)Government Insurance
INPC(2)Insurance Premium Car
LBRI(2)Labor Insurance
LIFI(2)Life Insurance
PPTI(2)Property Insurance
HLTI(2)Health Insurance
CLPR(2)Car Loan Principal Repayment
ESTX(2)Estate Tax
HLRP(2)Housing Loan Repayment
CSLP(2)Company Social Loan Payment To Bank
HSTX(2)Housing Tax
INTX(2)Income Tax
NITX(2)Net Income Tax
NWCH(2)Network Charge
NWCM(2)Network Communication
BEXP(2)Business Expenses
TRFD(2)Trust Fund
RCPT(2)Receipt
PTSP(2)Payment Terms
OTHR(2)Other
WHLD(1)(2)With Holding
CORT(1)Trade Settlement Payment
VATX(1)Value Added Tax Payment
TRAD(1)Trade

Error codes

ErrorDetails ATTRIBUTES
errorCodeCode 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 values
101MESSAGE_RECEIVED_INVALID
102MESSAGE_VERSION_NUMBER_NOT_SUPPORTED
103SENT_MESSAGES_LIMIT_EXCEEDED
201REQUIRED_ELEMENT_MISSING
202CRITICAL_MESSAGE_EXTENSION_NOT_RECOGNIZED
203FORMAT_ON_ONE_OR_MORE_ELEMENTS_INVALID_ACCORDING_SPECS
204DUPLICATE_DATA_ELEMENT
301TRANSACTION_ID_NOT_RECOGNIZED
302DATA_DECRYPTION_FAILURE
303ACCESS_DENIED_INVALID_ENDPOINT
304ISO_CODE_NOT_VALID
305TRANSACTION_DATA_NOT_VALID
306MCC_NOT_VALID_FOR_PAYMENT_SYSTEM
307SERIAL_NUMBER_NOT_VALID
402TRANSACTION_TIMED_OUT
403TRANSIENT_SYSTEM_FAILURE
404PERMANENT_SYSTEM_FAILURE
405SYSTEM_CONNECTION_FAILURE
911DATA_FIELDS_RELEVANCE_CHECK_FAILURE
912DUPLICATED_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:

DE91100000000123456789AXABFRPP
AZ96AZEJ00000000001234567890AXABFRPP
CY21002001950000357001234567AXABFRPP
ES7921000813610123456789AXABFRPP
FR7630006000011234567890189AXABFRPP
FO9264600123456789AXABFRPP
FR7630002032531234567890168CRLYFRPPXXX

Test cards Values

This page provides a list of test card PANs you can use to validate your CentralPay integration. Each PAN below triggers a predictable scenario (bank refusal, 3DS authentication outcome, or card attributes such as EEA / region / product type).

Note: 3DS outcome values (transStatus such as Y, C, D, I, N…) are described in the dedicated 3DS 2.2 BRW documentation.

Card details to use: for all test PANs on this page, the expiry date and CVC values are free. The only requirement is that the expiry date must be later than today’s date. The CVC must be 3 digits (for example: 123).

Legend: ✅ Success · ❌ Bank refusal · 🛡️ 3DS · 🔒 3DS Challenge · 🔁 3DS Decoupled · ℹ️ 3DS Info · 🧾 Non-3DS · 🧭 Attributes

Quick test cards (most common scenarios)

PANScenarioWhat you should observe
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)Authorization succeeds with a successful 3DS authentication.
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)Challenge flow expected (you must complete the challenge step to proceed).
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowDecoupled authentication scenario (handling depends on your 3DS implementation).
4556 1041 6038 2032✅🧾 Non-3DS success (Authentication = N)Authorization succeeds without 3DS.
4000 0000 0000 0077❌ Bank refusal – Insufficient funds (51)Authorization is refused with bank return code 51 (Insufficient funds).
4000 0000 0000 0085❌ Bank refusal – Do not honor (5)Authorization is refused with bank return code 5 (Do not honor / refused).

Bank refusal PANs: if a PAN is described as “for no-3DS, 3DS1.0 and 3DS2.0”, it means the authorization will be refused regardless of the authentication flow.

Visa Card numbers

1) Bank refusals (no-3DS / 3DS1.0 / 3DS2.0)

PANScenarioDescription
4000 0000 0000 0051❌ Card lost (41)This PAN simulates a bank refusal with return code 41 (Card lost), regardless of the authentication flow.
4000 0000 0000 0069❌ Fraud suspicion (59)This PAN simulates a bank refusal with return code 59 (Fraud suspicion), regardless of the authentication flow.
4000 0000 0000 0077❌ Insufficient funds (51)This PAN simulates a bank refusal with return code 51 (Insufficient funds), regardless of the authentication flow.
4000 0000 0000 0085❌ Do not honor / refused (5)This PAN simulates a bank refusal with return code 5 (Do not honor / refused), regardless of the authentication flow.

2) 3DS / Non-3DS scenarios

These PANs are designed to reproduce specific 3DS outcomes (transStatus) or a non-3DS path. If transStatus = C, a challenge flow is expected and must be completed.

PANScenarioDescription
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
4234 6319 8242 8908ℹ️🛡️ 3DS information only (transStatus = I)This PAN simulates a 3DS authentication with transStatus = I (Information only), to validate how you handle an informational 3DS outcome.
4234 6319 8242 8916🔁🛡️ 3DS decoupled (transStatus = D) – application flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using an application flow.
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using a browser flow.
4556 1041 6038 2032✅🧾 Non-3DS success (Authentication = N)This PAN simulates a successful authorization without 3DS (non-3DS flow). Authentication value returned is N.
4024 0071 7987 2394🧾 Non-3DS transaction (Authentication = N)This PAN simulates a non-3DS transaction (authentication = N) to validate your non-3DS payment path.

3) Card attributes simulation (EEA / region / productType / cardType)

These PANs are designed to simulate card metadata (EEA / region / productType / cardType). Use them to validate your business rules, reporting, segmentation, or routing logic based on card attributes.

PANAttributes returnedDescription
4032 0389 8296 2700🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=DEBITThis PAN simulates an EEA consumer debit card in Europe.
4032 0343 8883 4767🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=CREDITThis PAN simulates an EEA consumer credit card in Europe.
4020 0280 0191 2012🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates an EEA consumer card in Europe with cardType=UNKNOWN.
4032 0337 9569 2248🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
4032 0368 1354 0364🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=CREDITThis PAN simulates an EEA corporate credit card in Europe.
4032 0387 5662 0096🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates an EEA corporate card in Europe with cardType=UNKNOWN.
4032 0358 5604 7592🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=DEBITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and DEBIT.
4032 0302 9068 3219🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=CREDITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and CREDIT.
4032 0377 5134 3001🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates an EEA card in Europe with productType=UNKNOWN and cardType=UNKNOWN.
4032 0307 5488 6225🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in USA/CANADA.
4032 0310 2547 6341🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in USA/CANADA.
4032 0341 4311 3978🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates a non-EEA consumer card in USA/CANADA with cardType=UNKNOWN.
4032 0309 5816 7398🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in USA/CANADA.
4032 0375 4480 7536🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=CREDITThis PAN simulates a non-EEA corporate credit card in USA/CANADA.
4032 0366 9148 7225🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates a non-EEA corporate card in USA/CANADA with cardType=UNKNOWN.
4032 0325 8917 3860🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=DEBITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and DEBIT.
4032 0388 0897 9557🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=CREDITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and CREDIT.
4032 0374 2147 1240🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and cardType=UNKNOWN.

Mastercard Card numbers

1) 3DS / Non-3DS scenarios

PANScenarioDescription
5333 2591 5564 3223✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
5306 8899 4283 3340🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
5328 7203 8458 2224✅🧾 Non-3DS success (Authentication = N)This PAN simulates a successful authorization without 3DS (non-3DS flow). Authentication value returned is N.
5187 4346 4359 3002✅🧾 Non-3DS success (Authentication = N)This PAN simulates a successful authorization without 3DS (non-3DS flow). Authentication value returned is N.

2) Card attributes simulation (EEA / region / productType / cardType)

PANAttributes returnedDescription
5517 4500 0000 0168🧭 EEA=false ; region=US ; productType=CONSUMER ; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in the US.
5223 8599 0000 0174🧭 EEA=false ; region=US ; productType=CORPORATE ; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in the US.
5325 0900 0000 0115🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5325 0900 0000 0008🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5486 7467 7300 0005🧭 EEA=false ; region=EUROPE ; productType=CONSUMER ; cardType=DEBIT; Country=RUSThis PAN simulates a non-EEA consumer debit card with Country=RUS.
5588 1000 0000 0007🧭 EEA=false ; region=CEMEA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in CEMEA.
5122 9400 0000 0009🧭 EEA=false ; region=LATIN_AMERICA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in LATIN_AMERICA.

Amex Card numbers

1) 3DS / Non-3DS scenarios

PANScenarioDescription
3415 0209 8634 895✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
3486 3826 7931 507🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
3456 9539 9207 589✅🧾 Non-3DS success (Authentication = N)This PAN simulates a successful authorization without 3DS (non-3DS flow). Authentication value returned is N.

2) Card attributes simulation (EEA / region / productType)

PANAttributes returnedDescription
3415 0209 8634 895🧭 EEA=false ; region=EUROPE ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in Europe.
3486 3826 7931 507🧭 EEA=false ; region=EUROPE ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in Europe.
3718 4294 2351 004🧭 EEA=false ; region=EUROPE ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in Europe with productType=UNKNOWN.
3712 5311 3391 201🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in ASIA_PACIFIC.
3423 1631 7472 410🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in ASIA_PACIFIC.
3710 9829 7279 338🧭 EEA=false ; region=ASIA_PACIFIC ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in ASIA_PACIFIC with productType=UNKNOWN.

CB Card numbers

These PANs allow you to test how the card is classified under the CB scheme (CB vs co-badged CB_VISA / CB_MASTERCARD) in your integration and reporting.

PANScenarioDescription
4020 0235 6597 5380✅🧾 Non-3DS success – scheme: CBThis PAN simulates a successful authorization without 3DS on the CB scheme.
4020 0254 4041 8403✅🧾 Non-3DS success – scheme: CB_VISAThis PAN simulates a successful authorization without 3DS on the CB_VISA scheme.
5232 1035 2372 2651✅🧾 Non-3DS success – scheme: CB_MASTERCARDThis PAN simulates a successful authorization without 3DS on the CB_MASTERCARD scheme.

Troubleshooting (what to check)

If you don’t get the expected outcome, start by checking:

  • Bank refusals: verify the returned bank refusal code/message in your transaction response or webhook (e.g., 51, 41, 59, 5).
  • 3DS scenarios: verify the returned transStatus. If C, a challenge flow must be completed; if D, the expected handling depends on your decoupled implementation.
  • Card attributes: verify the returned card metadata (EEA / region / productType / cardType) in the payment method or transaction details.

Exports de données

Vous pouvez réaliser plusieurs exports de votre compte aux formats CSV, EXCEL, ou JSON depuis votre portail Marchand. 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 Marchand 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énominationSignification
transaction_creation_datedate de création
transaction_ididentifiant de transaction
transaction_amountmontant
transaction_currencydevise
transaction_payout_amountvaleur de devise de règlement
transaction_payout_currencydevise de règlement
transaction_commision_amountfrais sur la transaction
transaction_commision_currencydevise des frais
transaction_fee_amountfrais fixes par transaction
transaction_3ds3DS (0=non, 1=oui)
transaction_descriptiondescription définie par le marchand
transaction_sourceEC Ecommerce, DP Deposit, MO Mail order
transaction_bank_coderetour autorisation banque
transaction_statusstatut de la transaction
transaction_authorization_statusstatut de l’autorisation
transaction_authorization_codecode d’autorisation
transaction_capture_statusstatut de la capture
transaction_capture_datedate de la capture
transaction_capture_amountmontant de la capture
merchant_transaction_ididentifiant de transaction marchand
point_of_sale_ididentifiant du point de vente
point_of_sale_namenom du point de vente
merchant_ididentifiant marchand
merchant_namenom du marchand
dispute_amountmontant de la contestation
dispute_currencydevise de la contestation
dispute_datedate de la contestation
refund_amountmontant du remboursement
refund_currencydevise du remboursement
refund_datedate du remboursement
card_ididentifiant de la carte de paiement
card_first66 premiers chiffres de la carte
card_last44 derniers chiffres de la carte
card_cardholder_namenom du porteur
card_cardholder_emailemail du porteur
card_typetype de carte (crédit/débit/prepaid)
card_productnom du produit carte (Infinite, Gold…)
card_product_typecarte consumer ou corporate
card_commercial_brandréseau carte (VISA/Mastercard/CB)
card_regioncontinent d’origine de la carte
card_countrypays d’origine de la carte
card_establishment_namenom de l’établissement qui fournit la carte
customer_ididentifiant client
end_user_ipIP de l’utilisateur
end_user_languagelangue de l’utilisateur
browser_user_agentnavigateur de l’utilisateur
receipt_emailmail de réception de l’utilisateur
clearing_numbernuméro de clearing
merchant_category_codeactivité du marchand

Accès :

Recette Portail Marchand – Transactions
Production Portail Marchand – Transactions

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 :

Recette Portail Marchand – Remboursements cartes
Production Portail Marchand – 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 :

Recette Portail Marchand – Contestations cartes
Production Portail Marchand – 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 :

Recette Portail Marchand – Abonnements
Production Portail Marchand – Abonnements

Gestion des marchands

Articles

  • Informations générales
  • Demande d'enrôlementmerchant-enrollment
  • Compléter un enrôlementmerchant-enrollment
  • Validation d'un enrôlement
  • Compte de Monnaie Électronique limitécustomer / wallets
  • Déplafonner un compte de Monnaie Électroniquemerchant-enrollment
  • 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.

1. Types de comptes

CentralPay permet l’ouverture de deux types de comptes réglementés :

Type de compteDescriptionExemples d’usage
Compte 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 du marchand et de son éventuelle gestion par un mandataire (DME ou Agent).

2. Fonctionnement global de l’enrôlement

L’ouverture d’un compte passe systématiquement par une procédure d’enrôlement incluant :

  1. La création d’une demande d’enrôlement : initiation d’un dossier contenant les premières informations (email, nom, prénom)
  2. La complétion de l’enrôlement : soumission par l’utilisateur des informations réglementaires et des justificatifs (KYC/KYB)
  3. La validation de l’enrôlement : analyse par CentralPay, pouvant aboutir à une ouverture de compte, une demande complémentaire ou un refus

3. Deux interfaces possibles

InterfaceDescriptionPublic concerné
Portail d’enrôlement CentralPayInterface hébergée par CentralPay, accessible via lien personnalisé.Tous types d’utilisateurs
API d’enrôlementInterface technique permettant à un mandataire d’initier ou compléter des enrôlements via API.Mandataires autorisés selon leur statut

4. 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, ou les mandataires 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 KYC
Partenaire TechniqueOui*❌ Non❌ Non
Mandataire DMEOui, via API ou portail✅ Oui✅ Oui
Mandataire 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

1. Méthodes de création d’une demande d’enrôlement

1.1. Depuis le portail Marchand CentralPay

Un utilisateur connecté au portail CentralPay peut initier une demande d’enrôlement depuis le menu : Plateforme > Enrôlements > Créer

Recette Portail Marchand – Onboarding
Production Portail Marchand – 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.)

1.2. 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 Marchand
  • Soit entièrement via les endpoints API (voir partie « Compléter un enrôlement par API »)
Si 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": false

Si 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.

2. 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/siren
2. 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é.

2.1. Champs requis

ChampTypeObligatoireDescription
profile[firstname][value]string (255)✅ OuiPrénom du titulaire. Validation : caractères alphabétiques et tirets (-). Depuis la version 1.15.0
profile[lastname][value]string (255)✅ OuiNom du titulaire. Validation : caractères alphabétiques et tirets (-). Depuis la version 1.15.0
profile[email][value]string (255)✅ OuiAdresse email de contact. Depuis la version 1.15.0
profile[phone][value]string✅ OuiNuméro de téléphone international. Depuis la version 1.15.0
languagestring✅ OuiLangue préférée du marchand. Note : utilisez GET /api/locale pour les valeurs disponibles.
accountTypeenum✅ OuiType de profil marchand à créer. Note : utilisez GET /api/merchant-enrollment/account-type.
activitySectorUUID (36)✅ OuiSecteur d’activité du marchand. Note : utilisez GET /api/nauth/enrollment-claim/activity-sector.
activityAgeUUID (36)✅ Oui, si type = LEGAL_ENTITY ou INDIVIDUAL_WITH_STATUSAncienneté de l’activité. Note : utilisez GET /api/nauth/enrollment-claim/activity-age.
feeScheduleUUID (36)✅ OuiGrille tarifaire à appliquer. Note : obtenez les identifiants via POST /api/merchant-enrollment/fee-schedule.
identityBadgeUUID✅ Oui, si enrôlement via SIRENIdentifiant SIREN (activant le parcours simplifié).
contractUUID✅ Oui, si accountType = STANDARDContrat à appliquer. Note : utilisez GET /api/merchant-enrollment/contract.

2.2. Champs avancés (optionnels)

Personnalisation du parcours

ChampValeur par défautDescription
workflowModeSEQUENTIALMode de déroulement du parcours (seul le mode SEQUENTIAL est désormais disponible).
Note : valeurs valides : SEQUENTIAL
type—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, ARTISAN
Pour LEGAL_ENTITY : ASSOCIATION, PUBLIC, COMMERCIAL, EIG, CIVIL
turnoverIsFixedfalseSi true, verrouille la déclaration de chiffre d’affaires.
Note : facultatif

Paramètres de communication

ChampValeur par défautDescription
sendClaimEmailtrueEnvoie 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 profil Marchand 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.

ChampTypeDescription
profile[nationality][country]string (3)Nationalité (format ISO 3166-1 alpha-3).
profile[birthday][value]dateDate de naissance.
Validation : ≥ 18 ans, ≤ 110 ans
profile[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.

ChampTypeDescription
profile[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

ChampTypeDescription
contractUUID (36)Contrat à appliquer.
Obligatoire si accountType = STANDARD.
Note : GET /api/merchant-enrollment/contract
cguUUID (36)CGU à appliquer.
Note : POST /api/merchant-enrollment/cgu
Depuis version 1.18.0
customReferencestring (100)Référence personnalisée (usage interne).
payoutProfileUUID (36)Profil de versement à associer.
Note : POST /api/merchant-enrollment/payout-profile
administrativeContactstring (255)Contact administratif référent.
Depuis version 1.18.0
technicalContactstring (255)Contact technique.
Depuis version 1.18.0
financialContactstring (255)Contact financier.
Depuis version 1.18.0
addSecurityReferenceboolAffiche une référence de sécurité lors de la validation du contrat.
Uniquement valable pour : STANDARD, PARTNER, RESELLER.
Défaut : false
hookUUIDIdentifiant 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.

1. 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

2. 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 :

  1. Compléter le profil
  2. Déterminer le workflow
  3. Compléter le workflow
  4. Finaliser l’enrôlement

2.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}/activity
Content-Type : multipart/form-data

Exemple de champs attendus (activité « Identity Informations ») :

ChampTypeContraintes
firstname[value]string255 caractères
lastname[value]string255 caractères
mail[value]stringEmail valide
phone[value]stringNuméro international (min. 10 caractères)
birthday[value]stringDate au format YYYY-MM-DD, entre 18 et 110 ans
place_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.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 :

ChampTypeObligatoireNotes
typeEnum✅ OuiINDIVIDUAL, INDIVIDUAL_WITH_STATUS, LEGAL_ENTITY
bankAccountInEEACountrybool✅ Oui—
turnoverUUID (36)✅ OuiPOST /api/nauth/enrollment-claim/turnover
companyNamestring(255)Oui, si LEGAL_ENTITY—
activityAgeUUID (36)Oui, si LEGAL_ENTITY ou INDIVIDUAL_WITH_STATUSGET /api/nauth/enrollment-claim/activity-age
subTypeENUMRecommandéDépend du type (voir détails ci-dessous)
isCompanyboolOui, si 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é.

2.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.

1. 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 :

1.1 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 profil Marchand CentralPay (Merchant)
  • Du compte de paiement (Wallet)
  • Du profil utilisateur légal du profil Marchand CentralPay (BO User)
ℹ️ Ces entités sont accessibles immédiatement depuis vos outils de supervision (portail ou API).

1.2. 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.

1.3. 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.

2. 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 (Wallets) pour stocker et utiliser des valeurs numériques. Deux parcours complémentaires sont proposés :

  1. Création rapide d’un Wallet sans KYC (compte limité) : accessible immédiatement avec des plafonds réglementaires
  2. 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.

1. 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.

1.1. 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).

1.2. Étape 1 – Créer un Customer

Le Wallet doit être rattaché à un objet Customer représentant l’utilisateur final (voir Profils Clients)

1.3. Étape 2 – Créer un Wallet

  • POST /wallets

Champs obligatoires

ChampTypeDescriptionNote
customerIdUUIDIdentifiant du CustomerRequis sauf si merchantId est fourni
currencystring (3)Devise du Wallet (ex. "EUR")ISO 4217 – format 3 lettres

Champs optionnels

ChampTypeDescription
referencestringRéférence métier
activationDatedateDate d’activation
expirationDatedateDate d’expiration
additionalDataobjectDonnées personnalisées (JSON)

1.4. É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

2. Modifier un Wallet

  • POST /wallets/{walletId}

Ce service permet de mettre à jour certains attributs du Wallet sans le recréer.

Champs obligatoires

ChampTypeDescriptionNote
walletIdUUIDIdentifiant du Wallet à mettre à jourRequis dans l’URL et/ou le corps de requête

Champs optionnels

ChampTypeDescriptionNote
referencestringRéférence personnalisée du Wallet—
expirationDatedateDate d’expiration du WalletYYYY-MM-DD
activationDatedateDate d’activation du WalletYYYY-MM-DD
additionalDataobjectDonnées métier structurées (clé/valeur JSON)—
merchantIdUUIDPour rattacher un Wallet à un Merchant spécifiqueFacultatif – à ne pas confondre avec customerId

3. 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

ChampTypeDescriptionNote
walletIdUUID (36)Identifiant du WalletLe Wallet doit appartenir au Merchant connecté ou à l’un de ses sous-marchands

Description des champs

ChampTypeDescriptionNote
currencystringDevise du WalletISO 4217 (ex. EUR)
available[].amountintSolde disponible en centimesEx. : 10500 = 105,00 €
pending[].amountintSolde en attente (transactions en cours)—
referencestringRéférence du WalletFacultatif
additionalDataobjectDonnées personnaliséesJSON libre

4. 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

ChampTypeDescription
customerIdUUIDIdentifiant du Customer
currencystringDevise (ex. "EUR")

Paramètres optionnels

ChampTypeDescriptionNote
afterstringNe retourner que les Wallets créés après cette dateFormat ISO 8601
beforestringNe retourner que les Wallets créés avant cette dateFormat ISO 8601
limitstringNombre d’éléments par pageDéfaut : 10
pagestringIndex de la pageDéfaut : 1

5. 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.

1. Étape 1 – Créer un enrôlement

  • POST /merchant-enrollments

Vous devez inclure le walletId du Wallet limité existant.

Champs obligatoires

ChampTypeDescriptionNote
walletIdUUIDLien avec le Wallet ME à déplafonnerUUID valide
profile[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 ans
profile[place_of_birth][value]string (255)Lieu de naissance—
profile[country_of_birth][country]string (3)Pays de naissanceISO 3166-1 alpha-3
languagestring (3)"fr" ou "en"—
accountTypestring"BASIC"—
typestring"INDIVIDUAL"—
activitySectorUUID (36)Secteur d’activitéGET /api/nauth/enrollment-claim/activity-sector
feeScheduleUUID (36)Grille tarifairePOST /api/merchant-enrollment/fee-schedule
turnoverUUID (36)CA annuel attenduPOST /api/nauth/enrollment-claim/turnover
workflowDefinitionUUIDModèle de workflowfournie par CentralPay
profileWorkflowDefinitionUUIDModèle de profilfournie par CentralPay
workflowModestring"SEQUENTIAL"Requis
allowedEmailCommunicationbooleanConsentement à recevoir des emailstrue ou false

Champs facultatifs

ChampTypeDescription
sendClaimEmailbooleanEnvoi 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 interne
technicalContact, administrativeContact, financialContactstring(255)Contacts métiers
addSecurityReferencebooleanAffiche une référence sécurité (pour STANDARD, PARTNER, RESELLER)
hookUUIDHook technique
birthdayConfirmation[value]dateSi affilié à un agent

2. É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

ChampTypeObligatoireDescriptionNote
address[nameLine1]string✅ OuiNuméro et nom de rue—
address[locality]string✅ OuiVille de résidence—
address[postalCode]string✅ OuiCode postal—
address[country]string✅ OuiPays de résidenceISO 3166-1 alpha-3

Document d’identité

ChampTypeObligatoireDescriptionNote
identityDocument[type]string✅ OuiType de documentIDENTITY_CARD, PASSPORT, RESIDENCE_PERMIT, VISA, IDENTITY_DOCUMENT_RECEIPT
identityDocument[documents][0]fichier✅ OuiRecto ou scan principalJPG, JPEG ou PNG
identityDocument[documents][1]fichier✅ Oui, si IDENTITY_CARDVerso ou page complémentaireJPG, JPEG ou PNG
identityDocument[issuingCountry]string✅ OuiPays émetteurISO 3166-1 alpha-3
identityDocument[expiryDate]string❌ NonDate d’expirationFormat YYYY-MM-DD
identityDocument[checkId]string❌ NonID de contrôle (Onfido)—
identityDocument[documentNumber]string❌ NonNuméro du document—
identityDocument[mrzLine1]string❌ NonLigne MRZ 1—
identityDocument[mrzLine2]string❌ NonLigne MRZ 2—

Cas particuliers

ChampObligatoireConditionDescription
identityDocument[proofOfIdentityDocument]✅ Ouisi type = IDENTITY_DOCUMENT_RECEIPTJustificatif visuel du récépissé
identityDocument[proofOfIdentityDocuments][*]✅ OuiidemPlusieurs fichiers si applicable
identityDocument[proofOfIdentityDocumentExpiryDate]✅ Ouisi fichier proofOfIdentityDocument fourniFormat YYYY-MM-DD

Données bancaires (facultatif mais recommandé)

ChampTypeObligatoireDescriptionNote
iban[value]string❌ NonIBAN à vérifierFormat IBAN valide
bic[value]string❌ NonCode BIC/SWIFT—
ibanDocument[document]fichier❌ NonJustificatif bancaire (RIB, relevé)JPG, JPEG ou PNG

Données KYC complémentaires (riskData)

Tous les champs suivants sont requis sauf mention contraire.

ChampTypeObligatoireDescriptionNote
riskData[isPep]bool✅ OuiPersonne politiquement exposée ?défaut : false
riskData[isInSanctionList]bool✅ OuiAppartient à une liste de sanctions ?défaut : false
riskData[residentAlpha3Code]string✅ OuiPays de résidenceISO 3166-1 alpha-3
riskData[isHighRiskResident]bool✅ OuiPays de résidence à risque ?—
riskData[nationalityAlpha3Code]string✅ OuiNationalitéISO 3166-1 alpha-3
riskData[isHighRiskNationality]bool✅ OuiNationalité à risque ?—
riskData[isHighRiskMCCActivitySector]bool✅ OuiSecteur MCC à risque ?—
riskData[MCCActivitySector]int✅ OuiCode MCC (NAF ou secteur)—
riskData[monthlyLimit]int✅ OuiLimite mensuelle déclarée (en centimes)Ex. 150000 = 1500,00 €
riskData[monthlyLimitCurrencyAlphabeticCode]string✅ OuiDevise (ex. EUR)ISO 4217
riskData[isCrossBorderPayment]bool❌ NonPaiements transfrontaliers ?Défaut : true
riskData[declaredMonthlyRevenue]int❌ NonRevenus déclarés (en centimes)—
riskData[verifiedMonthlyRevenue]int✅ Oui, si full KYCRevenus vérifiés—

Documents complémentaires (si requis)

ChampTypeObligatoireDescriptionNote
proofOfAddressDocument[documents][0]fichier✅ Oui, si profil à risqueJustificatif de domicileJPG, JPEG ou PNG
incomeDocument[document]fichier✅ Oui, si full KYC requisJustificatif de revenus (1 doc)JPG, JPEG ou PNG
incomeDocument[documents][*]fichier✅ Oui, si full KYC requisPlusieurs fichiers possiblesJPG, JPEG ou PNG

Autres documents (si nécessaires à la levée de limite)

ChampTypeDescriptionNotes
additionalDocuments[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)

ChampTypeObligatoireDescription
metaDataJSON object✅ OuiMétadonnées libres, au format {"key": "value"} (peut être vide)

3. É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é

ChampTypeObligatoireDescriptionNote
identityDocument[type]string✅ OuiType de document à corrigerIDENTITY_CARD, PASSPORT, RESIDENCE_PERMIT, VISA, IDENTITY_DOCUMENT_RECEIPT
identityDocument[documents][0]fichier✅ OuiRecto du document (ou fichier unique)JPG, JPEG ou PNG
identityDocument[documents][1]fichier✅ Oui, si type = IDENTITY_CARDVerso de la CNIJPG, JPEG ou PNG
identityDocument[issuingCountry]string✅ Oui, si document transmisPays émetteurISO 3166-1 alpha-3

Document d’identité complémentaire (si requis)

ChampTypeObligatoireDescription
complementaryIdentityDocument[documents][0]fichier✅ Oui, si exigéScan ou photo supplémentaire
complementaryIdentityDocument[expiryDate]string✅ OuiDate d’expiration (YYYY-MM-DD)
complementaryIdentityDocument[documentNumber]string✅ OuiNuméro du document
complementaryIdentityDocument[mrzLine1]string✅ OuiMRZ ligne 1
complementaryIdentityDocument[mrzLine2]string✅ OuiMRZ ligne 2
complementaryIdentityDocument[issuingCountry]string✅ OuiPays émetteur (ISO alpha-3)

Documents de revenus

ChampTypeObligatoireDescription
incomeDocument[document]fichier✅ Oui, si requisFichier unique JPG/JPEG/PNG
incomeDocument[documents][*]fichier✅ Oui, si multiples attendusPlusieurs documents par index ([0], [1], etc.)

Compléments d’information personnelle

ChampTypeObligatoireDescription
profile[firstname][value]string❌ NonPrénom
profile[lastname][value]string❌ NonNom
profile[birthday][value]string❌ NonDate de naissance
profile[place_of_birth][value]string❌ NonLieu de naissance
profile[country_of_birth][country]string❌ NonPays de naissance (ISO 3166-1 alpha-3)

Correction d’adresse (si refusée)

ChampTypeObligatoireDescription
profile[address][nameLine1]string❌ NonAdresse – ligne 1
profile[address][postalCode]string❌ NonCode postal
profile[address][country]string❌ NonPays (ISO alpha-3)
profile[address][locality]string❌ NonVille

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.

ChampTypeObligatoireDescriptionNote
riskData[isPep]boolean✅ OuiPEP ?défaut : false
riskData[isInSanctionList]boolean✅ OuiSur une liste de sanctions ?défaut : false
riskData[residentAlpha3Code]string✅ OuiPays de résidenceISO alpha-3
riskData[isHighRiskResident]boolean✅ OuiPays de résidence à risque ?—
riskData[nationalityAlpha3Code]string✅ OuiNationalitéISO alpha-3
riskData[isHighRiskNationality]boolean✅ OuiNationalité à risque ?—
riskData[isHighRiskMCCActivitySector]boolean✅ OuiSecteur à risque ?—
riskData[MCCActivitySector]int✅ OuiCode MCC métier—
riskData[monthlyLimit]int✅ OuiLimite mensuelle (en centimes)[0 ; 190000]
riskData[monthlyLimitCurrencyAlphabeticCode]string✅ OuiDevise (ex. EUR)ISO 4217
riskData[isCrossBorderPayment]boolean❌ NonPaiements transfrontaliersdéfaut : true
riskData[declaredMonthlyRevenue]int❌ NonRevenus déclarés—
riskData[verifiedMonthlyRevenue]int✅ Oui, si full KYCRevenus vérifiés (centimes)

Documents additionnels (optionnels ou exigés)

ChampTypeObligatoireDescription
additionalDocuments[X]['type']string✅ Oui, si documents attendusType du justificatif
additionalDocuments[X]['documents'][X]fichier✅ OuiFichiers associés (JPG, JPEG, PNG)

Autres champs

ChampTypeObligatoireDescription
fullKycboolean❌ NonPermet d’imposer un KYC complet ou simplifié (true / false)

4. É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

ChampTypeObligatoireDescriptionNote
enrolmentIdUUID (36)✅ OuiIdentifiant 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

ChampTypeDescription
uuidUUIDIdentifiant unique de l’enrôlement
workflow.statusstringStatut du processus (ON_GOING, ACCEPTED, REFUSED)
workflow_modestring"SEQUENTIAL" ou "CONTINUAL"
workflow.activities[]tableauListe des activités (étapes) encore à compléter
profile[...]objetDonnées de profil déjà soumises, avec leur statut
conformity_statusstringÉtat de conformité global (ON_GOING, REVIEW, APPROVED, etc.)
created_atdatetimeDate de création de l’enrôlement
activity_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é

5. Schéma de validation KYC d’un compte de ME

Retours, statuts et webhooks

1. Codes de retour liés à la création de profil marchand

La création d’un profil 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 profil.

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 ➝

Tarifs

Articles

  • Offres commerciales
  • Frais d'interchange et réseaux cartes
  • Forfaits d'accompagnement

Offres commerciales

CentralPay propose une tarification juste et transparente, adaptée à votre volume d’encaissement et à votre activité. Les tarifs sont dégressifs : plus votre volume augmente, plus les frais unitaires diminuent.

Les frais sont calculés sur la base des volumes de transactions réalisées le mois précédent.

Deux solutions, selon votre besoin

Smart Collection

Accédez gratuitement à la solution d’encaissement : pas d’abonnement, vous payez uniquement des frais à l’utilisation.

Easy Wallet

Accédez à des services complémentaires (notamment la gestion de comptes / wallets) avec un forfait mensuel en plus des frais à l’utilisation.

Aucun surcoût lié aux réseaux cartes

Toutes les offres CentralPay intègrent les frais d’interchange et de réseaux cartes facturés par les banques : vous n’avez donc aucun surcoût à prévoir.

👉 Pour obtenir une estimation selon votre volume et contacter notre équipe commerciale :

Voir les tarifs publics 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 (Vente à distance, E-commerce)

Cartes émises dans l’Espace Economique Européen (EEE)

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitEEECB0,200%0,025%0,225%
Cartes personnellesDébitEEEVISA0,200%0,231%0,431%
Cartes personnellesDébitEEEMastercard0,200%0,219%0,419%
Cartes personnellesCréditEEECB0,300%0,025%0,325%
Cartes personnellesCréditEEEVISA0,300%0,231%0,531%
Cartes personnellesCréditEEEMastercard0,300%0,219%0,519%
Cartes professionnellesToutesEEECB0,900%0,025%0,925%
Cartes professionnellesToutesEEEVISA1,450%0,070%1,520%
Cartes professionnellesToutesEEEMastercard1,450%0,171%1,621%
Cartes personnellesToutesEEEAMEX0,000%1,600%1,600%
Cartes professionnellesToutesEEEAMEX0,000%1,600%1,600%

Cartes internationales, émises hors de l’Espace Economique Européen

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitInternationaleVISA1,150%1,343%2,493%
Cartes personnellesDébitInternationaleMastercard1,150%1,343%2,493%
Cartes personnellesCréditInternationaleVISA1,500%1,499%2,999%
Cartes personnellesCréditInternationaleMastercard1,500%0,951%2,451%
Cartes professionnellesToutesInternationaleVISA2,000%0,700%2,700%
Cartes professionnellesToutesInternationaleMastercard2,000%0,951%2,951%
Cartes personnellesToutesInternationaleAMEX0,000%2,400%2,400%
Cartes professionnellesToutesInternationaleAMEX0,000%2,400%2,400%

2. Frais d’interchange et réseaux carte (paiement de proximité)

Cartes émises dans l’Espace Economique Européen (EEE)

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitEEECB0,200%0,025%0,225%
Cartes personnellesDébitEEEVISA0,200%0,231%0,431%
Cartes personnellesDébitEEEMastercard0,200%0,219%0,419%
Cartes personnellesCréditEEECB0,300%0,025%0,325%
Cartes personnellesCréditEEEVISA0,300%0,231%0,531%
Cartes personnellesCréditEEEMastercard0,300%0,219%0,519%
Cartes professionnellesToutesEEECB0,900%0,025%0,925%
Cartes professionnellesToutesEEEVISA1,450%0,070%1,520%
Cartes professionnellesToutesEEEMastercard1,450%0,171%1,621%
Cartes personnellesToutesEEEAMEX0,000%1,600%1,600%
Cartes professionnellesToutesEEEAMEX0,000%1,600%1,600%

Cartes internationales, émises hors de l’Espace Economique Européen

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitInternationaleVISA1,150%1,343%2,493%
Cartes personnellesDébitInternationaleMastercard1,150%1,343%2,493%
Cartes personnellesCréditInternationaleVISA1,500%1,499%2,999%
Cartes personnellesCréditInternationaleMastercard1,500%0,951%2,451%
Cartes professionnellesToutesInternationaleVISA2,000%0,700%2,700%
Cartes professionnellesToutesInternationaleMastercard2,000%0,951%2,951%
Cartes personnellesToutesInternationaleAMEX0,000%2,400%2,400%
Cartes professionnellesToutesInternationaleAMEX0,000%2,400%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 autonomie
2 heures d’accompagnement équipe Service Client
Inclus
(offres Starter, Medium et Major Company)
Accompagnement standard
Analyse technique du projet par équipe Service Intégration
2 heures d’accompagnement équipe Service Intégration
2 heures d’accompagnement équipe Service Client
490 €
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 autonomie
3 heures d’accompagnement équipe Service Client
Inclus
(offres Medium et Major Partner)
Accompagnement standard
Analyse technique du projet par équipe Service Intégration
5 heures d’accompagnement équipe Service Intégration
5 heures d’accompagnement équipe Service Client
990 €
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 h
2 heures d’accompagnement équipe Service Client, consommables par périodes de 30 minutes.
250 €
Forfait d’accompagnement 5 h
5 heures d’accompagnement équipe Service Client, consommables par périodes de 30 minutes.
490 €
Forfait d’accompagnement 10 h
10 heures d’accompagnement équipe Service Client, consommables par périodes de 30 minutes.
890 €

CpayUser

jQuery(document).ready( function($) { window.live_699ea29ddca03 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_CpayUser.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29ddca03", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29ddca03.load(); });

Pièces justificatives : KYC / KYB

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

2.1. 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 versements sortants 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é

2.2. Personnes morales (KYB)

La création d’un profil Marchand 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 importante
Auto-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’organisme
Socié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 étranger
Socié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

3.1. 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

3.2. 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

3.3. 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

3.4. 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é

Bank Reconciliation external

See more about Bank Reconciliation

jQuery(document).ready( function($) { window.live_699ea29dddf2f = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Reconciliation external.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29dddf2f", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29dddf2f.load(); });

Test cards Values

This page provides a list of test card PANs you can use to validate your CentralPay integration. Each PAN below triggers a predictable scenario (bank refusal, 3DS authentication outcome, or card attributes such as EEA / region / product type).

Note: 3DS outcome values (transStatus such as Y, C, D, I, N…) are described in the dedicated 3DS 2.2 BRW documentation.

Card details to use: for all test PANs on this page, the expiry date and CVC values are free. The only requirement is that the expiry date must be later than today’s date. The CVC must be 3 digits (for example: 123).

Legend: ✅ Success · ❌ Bank refusal · 🛡️ 3DS · 🔒 3DS Challenge · 🔁 3DS Decoupled · ℹ️ 3DS Info · 🧾 Non-3DS · 🧭 Attributes

Quick test cards (most common scenarios)

PANScenarioWhat you should observe
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)Authorization succeeds with a successful 3DS authentication.
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)Challenge flow expected (you must complete the challenge step to proceed).
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowDecoupled authentication scenario (handling depends on your 3DS implementation).
4556 1041 6038 2032✅🧾 Non-3DS success (Authentication = N)Authorization succeeds without 3DS.
4000 0000 0000 0077❌ Bank refusal – Insufficient funds (51)Authorization is refused with bank return code 51 (Insufficient funds).
4000 0000 0000 0085❌ Bank refusal – Do not honor (5)Authorization is refused with bank return code 5 (Do not honor / refused).

Bank refusal PANs: if a PAN is described as “for no-3DS, 3DS1.0 and 3DS2.0”, it means the authorization will be refused regardless of the authentication flow.

Visa Card numbers

1) Bank refusals (no-3DS / 3DS1.0 / 3DS2.0)

PANScenarioDescription
4000 0000 0000 0051❌ Card lost (41)This PAN simulates a bank refusal with return code 41 (Card lost), regardless of the authentication flow.
4000 0000 0000 0069❌ Fraud suspicion (59)This PAN simulates a bank refusal with return code 59 (Fraud suspicion), regardless of the authentication flow.
4000 0000 0000 0077❌ Insufficient funds (51)This PAN simulates a bank refusal with return code 51 (Insufficient funds), regardless of the authentication flow.
4000 0000 0000 0085❌ Do not honor / refused (5)This PAN simulates a bank refusal with return code 5 (Do not honor / refused), regardless of the authentication flow.

2) 3DS / Non-3DS scenarios

These PANs are designed to reproduce specific 3DS outcomes (transStatus) or a non-3DS path. If transStatus = C, a challenge flow is expected and must be completed.

PANScenarioDescription
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
4234 6319 8242 8908ℹ️🛡️ 3DS information only (transStatus = I)This PAN simulates a 3DS authentication with transStatus = I (Information only), to validate how you handle an informational 3DS outcome.
4234 6319 8242 8916🔁🛡️ 3DS decoupled (transStatus = D) – application flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using an application flow.
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using a browser flow.
4556 1041 6038 2032✅🧾 Non-3DS success (Authentication = N)This PAN simulates a successful authorization without 3DS (non-3DS flow). Authentication value returned is N.
4024 0071 7987 2394🧾 Non-3DS transaction (Authentication = N)This PAN simulates a non-3DS transaction (authentication = N) to validate your non-3DS payment path.

3) Card attributes simulation (EEA / region / productType / cardType)

These PANs are designed to simulate card metadata (EEA / region / productType / cardType). Use them to validate your business rules, reporting, segmentation, or routing logic based on card attributes.

PANAttributes returnedDescription
4032 0389 8296 2700🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=DEBITThis PAN simulates an EEA consumer debit card in Europe.
4032 0343 8883 4767🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=CREDITThis PAN simulates an EEA consumer credit card in Europe.
4020 0280 0191 2012🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates an EEA consumer card in Europe with cardType=UNKNOWN.
4032 0337 9569 2248🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
4032 0368 1354 0364🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=CREDITThis PAN simulates an EEA corporate credit card in Europe.
4032 0387 5662 0096🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates an EEA corporate card in Europe with cardType=UNKNOWN.
4032 0358 5604 7592🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=DEBITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and DEBIT.
4032 0302 9068 3219🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=CREDITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and CREDIT.
4032 0377 5134 3001🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates an EEA card in Europe with productType=UNKNOWN and cardType=UNKNOWN.
4032 0307 5488 6225🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in USA/CANADA.
4032 0310 2547 6341🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in USA/CANADA.
4032 0341 4311 3978🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates a non-EEA consumer card in USA/CANADA with cardType=UNKNOWN.
4032 0309 5816 7398🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in USA/CANADA.
4032 0375 4480 7536🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=CREDITThis PAN simulates a non-EEA corporate credit card in USA/CANADA.
4032 0366 9148 7225🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates a non-EEA corporate card in USA/CANADA with cardType=UNKNOWN.
4032 0325 8917 3860🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=DEBITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and DEBIT.
4032 0388 0897 9557🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=CREDITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and CREDIT.
4032 0374 2147 1240🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and cardType=UNKNOWN.

Mastercard Card numbers

1) 3DS / Non-3DS scenarios

PANScenarioDescription
5333 2591 5564 3223✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
5306 8899 4283 3340🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
5328 7203 8458 2224✅🧾 Non-3DS success (Authentication = N)This PAN simulates a successful authorization without 3DS (non-3DS flow). Authentication value returned is N.
5187 4346 4359 3002✅🧾 Non-3DS success (Authentication = N)This PAN simulates a successful authorization without 3DS (non-3DS flow). Authentication value returned is N.

2) Card attributes simulation (EEA / region / productType / cardType)

PANAttributes returnedDescription
5517 4500 0000 0168🧭 EEA=false ; region=US ; productType=CONSUMER ; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in the US.
5223 8599 0000 0174🧭 EEA=false ; region=US ; productType=CORPORATE ; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in the US.
5325 0900 0000 0115🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5325 0900 0000 0008🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5486 7467 7300 0005🧭 EEA=false ; region=EUROPE ; productType=CONSUMER ; cardType=DEBIT; Country=RUSThis PAN simulates a non-EEA consumer debit card with Country=RUS.
5588 1000 0000 0007🧭 EEA=false ; region=CEMEA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in CEMEA.
5122 9400 0000 0009🧭 EEA=false ; region=LATIN_AMERICA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in LATIN_AMERICA.

Amex Card numbers

1) 3DS / Non-3DS scenarios

PANScenarioDescription
3415 0209 8634 895✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
3486 3826 7931 507🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
3456 9539 9207 589✅🧾 Non-3DS success (Authentication = N)This PAN simulates a successful authorization without 3DS (non-3DS flow). Authentication value returned is N.

2) Card attributes simulation (EEA / region / productType)

PANAttributes returnedDescription
3415 0209 8634 895🧭 EEA=false ; region=EUROPE ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in Europe.
3486 3826 7931 507🧭 EEA=false ; region=EUROPE ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in Europe.
3718 4294 2351 004🧭 EEA=false ; region=EUROPE ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in Europe with productType=UNKNOWN.
3712 5311 3391 201🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in ASIA_PACIFIC.
3423 1631 7472 410🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in ASIA_PACIFIC.
3710 9829 7279 338🧭 EEA=false ; region=ASIA_PACIFIC ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in ASIA_PACIFIC with productType=UNKNOWN.

CB Card numbers

These PANs allow you to test how the card is classified under the CB scheme (CB vs co-badged CB_VISA / CB_MASTERCARD) in your integration and reporting.

PANScenarioDescription
4020 0235 6597 5380✅🧾 Non-3DS success – scheme: CBThis PAN simulates a successful authorization without 3DS on the CB scheme.
4020 0254 4041 8403✅🧾 Non-3DS success – scheme: CB_VISAThis PAN simulates a successful authorization without 3DS on the CB_VISA scheme.
5232 1035 2372 2651✅🧾 Non-3DS success – scheme: CB_MASTERCARDThis PAN simulates a successful authorization without 3DS on the CB_MASTERCARD scheme.

Troubleshooting (what to check)

If you don’t get the expected outcome, start by checking:

  • Bank refusals: verify the returned bank refusal code/message in your transaction response or webhook (e.g., 51, 41, 59, 5).
  • 3DS scenarios: verify the returned transStatus. If C, a challenge flow must be completed; if D, the expected handling depends on your decoupled implementation.
  • Card attributes: verify the returned card metadata (EEA / region / productType / cardType) in the payment method or transaction details.

Documentation

Articles

  • Guide de démarrage rapide >
  • Marchand, comptes et canaux de vente
  • Automatisations, connexions et exports
  • Liens de paiement
  • Transaction par carte
  • Transaction par virement
  • Transaction prélèvement SEPA
  • Paiements récurrents
  • Authentification 3DS 2.2
  • Gestion des marchands
  • Transferts de paiements
  • Plugin CMS
  • Bonnes pratiques

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 profil marchand de test

CentralPay met à votre disposition un environnement de test (RCT) pour développer et valider votre intégration :

  • Profil de test « Marchand standard«  : Pour tester uniquement la solution d’encaissement Smart Collection, demandez un profil marchand de test via notre formulaire
  • Profil de test « Marchand partenaire ou mandataire » : Pour tester l’encaissement (Smart Collection) et les transferts de paiements (Easy Wallet), contactez notre service client. Nous créerons et paramétrerons votre profil marchand 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 profil marchand

Votre profil Marchand CentralPay peut être configuré de manière autonome ou avec l’accompagnement de notre équipe support.

ℹ️ Les paramétrages réalisés sur votre profil marchand de test (RCT) ne sont pas automatiquement répliqués en production (PROD). Veillez à les reconfigurer une fois votre profil 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 profil marchand
Règles d’acceptation
Versements sortants
Libellé de relevé bancaire
Notifications automatiques
Page de paiement Smart Form
Modèles de demandes de paiement
Tentatives auto. pour les échecs de prélèvement carte
Tentatives auto. 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 profil 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 de recette (RCT), préparez le passage en production (PRD).

ℹ️ Rappel : Aucun paramétrage n'est automatiquement copié de la RCT vers la 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 Marchand

Si nécessaire, vous pouvez effectuer une à deux transactions réelles à 1 € pour vérifier le bon fonctionnement du paiement en production.

Marchand, comptes et canaux de vente

Profil Marchand

Le Profil Marchand représente techniquement et opérationnellement un Marchand dans la plateforme CentralPay.

Il est le support de :
• Ses comptes : de paiement ou de monnaie électronique ;
• Son administration : accès API, profils utilisateurs, services de paiement disponibles ;
• Sa configuration technique : webhooks, notifications, points de vente, règles d’acceptation, comptes bancaires ;
• Son dossier réglementaire : KYC/KYB, LCB-FT, scoring de risque, contractualisation, grille tarifaire…

Le Profil Marchand correspond à l’objet API Merchant et est créé automatiquement après validation de son inscription (via l’objet API Merchant-Enrollment).

1. Types de profils selon le modèle contractuel

Chaque type de Marchand est associé à un modèle contractuel précis.

Standard Type : STANDARD

Le Marchand standard est une entreprise ou un professionnel qui encaisse des paiements pour son propre compte. Il dispose d’un ou plusieurs comptes de paiement, et peut accéder aux services CentralPay via API ou via un partenaire.

👉 En savoir plus sur le modèle Marchand

Partenaire Intégrateur Type : INTEGRATOR

Le Partenaire Intégrateur accompagne plusieurs Marchands standards dans leur intégration technique avec CentralPay. Chaque Marchand standard 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.

  • Peut disposer d’un compte de paiement et d’un compte de commission pour ses propres besoins
  • Un point de vente distinct est créé pour chaque Marchand accompagné
  • Peut réaliser des appels API et actions techniques via les accès délégués par le Marchand (suivi d’Instructions Techniques, paramétrage, RUN), sans accès aux soldes ni pouvoir d’initier/modifier/exécuter une opération de paiement en son nom propre
  • CentralPay facture chaque Marchand directement

👉 En savoir plus sur le modèle Partenaire Intégrateur

Partenaire Intégrateur MOBSP Type : INTEGRATOR + MOBSP

Le Partenaire 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 standard, 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 Partenaire Intégrateur MOBSP

Partenaire Technique Type : TECHNIQUE

Le Partenaire Technique développe une solution mutualisée (ex. marketplace, plateforme SaaS) et opère depuis un ou plusieurs points de vente ouverts à son nom, auxquels des Marchands standards peuvent être rattachés. Il utilise ses propres accès API pour transmettre des données commerciales et suivre les opérations rattachées à ces points de vente, sans jamais disposer d’un pouvoir d’exécution sur les opérations de paiement.

  • Un ou plusieurs points de vente peuvent être utilisés pour regrouper les activités des marchands (ex. marketplace, plateforme SaaS)
  • Accès API CentralPay propre au Partenaire Technique
  • CentralPay facture le Partenaire Technique
  • Ne peut pas initier l’enrôlement au nom et pour le compte des marchands (sauf cadre MOBSP applicable)

👉 En savoir plus sur le modèle Partenaire Technique

Partenaire Technique MOBSP Type : TECHNIQUE + 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êmes droits 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

Mandataire DME Type : DME

Le Mandataire DME (Distributeur de Monnaie Électronique) transmet des instructions de chargement, de transfert ou de remboursement en monnaie électronique pour le compte de Participants. Il agit dans le cadre du modèle monnaie électronique (devises CUSTOM) et peut percevoir une commission sur les opérations, sans fournir de services de paiement régulés (ex. virement SEPA, prélèvement, carte).

👉 En savoir plus sur le modèle Mandataire DME

Mandataire Agent Type : AGENT

Le Mandataire Agent est un Agent de Prestataire de Services de Paiement (Agent PSP) enregistré auprès de l’ACPR. Il agit au nom et pour le compte de CentralPay dans un périmètre strictement défini contractuellement. Selon le modèle retenu (Agent simple / Agent collecteur / Agent délégataire), il peut notamment accompagner l’enrôlement, réaliser certaines diligences KYC/KYB de niveau 1, et/ou intervenir dans la collecte, la ventilation et la mise à disposition des fonds via les mécanismes prévus par CentralPay. CentralPay demeure responsable des services de paiement fournis et des contrôles réglementaires.

👉 En savoir plus sur le modèle Mandataire Agent

Participant Type : BASIC

Les Participants sont des personnes physiques ou morales clientes d’un Marchand Mandataire de CentralPay (Agent ou DME). Ils disposent d’un ou plusieurs comptes de paiement ou de monnaie électronique pour recevoir des fonds émis par le Mandataire, et peuvent accéder au portail Marchand pour consulter leurs opérations et gérer leurs versements sortants.

Ils agissent pour vendre des produits ou services, pour une activité LMNP, ou pour des besoins non commerciaux (crowdfunding, wallet personnel, projets collectifs…).

Les participants ouvrent des comptes chez CentralPay. L’entrée en relation peut être initiée et/ou accompagnée par le Marchand Mandataire, mais les services régulés restent fournis par CentralPay. Le cadre d’utilisation des comptes est défini par les documents CentralPay applicables (et, le cas échéant, par les CGU du Mandataire pour les conditions commerciales et les services qu’il fournit).

2. Paramétrage des emails de contact

Vous pouvez personnaliser les adresses email de contact associées à votre profil marchand pour que les notifications, relances ou échanges contractuels soient bien adressés aux bons interlocuteurs.

  • Email contact : référent principal du profil marchand
  • 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 profil marchand. Elles peuvent être modifiées à tout moment depuis le Portail Marchand.

Accès à la configuration des emails de contact :

Recette Portail Marchand
Production Portail Marchand

Profils clients

Les profils clients (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 paiement (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 Marchand Compte Customers

Vos Customers disposent également d’un portail client leur permettant d’administrer les paiements réalisés avec votre entreprise :

Recette Portail Marchand – Customers
Production Portail Marchand – 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 vos comptes 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 Marchand ou dans vos exports de données

Lors de la création de votre profil Marchand CentralPay, un premier point de vente est créé automatiquement. Vous pouvez ensuite vous rendre sur votre portail Marchand pour paramétrer ce dernier, ou en créer de nouveaux :

Recette Portail Marchand – Points de vente
Production Portail Marchand – 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 profil marchand (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 profil marchand, 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 Marchand 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 Marchand…)
    • 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 Marchand…)
    • 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 emails 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, versement 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 versements 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 profil Marchand CentralPay. Ainsi, chaque compte de paiement sera lié à un compte bancaire différent et adressera des versements 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 :

Recette Portail Marchand – Comptes de paiement
Production Portail Marchand – 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 mandataire AGENT de CentralPay, vous pouvez créer des comptes pour vos marchands en utilisant le service de demande d’enrôlement.

Comptes de ME

ℹ️ Uniquement réservé aux Mandataires DME et à leurs sous-marchands.

Les comptes de ME (Monnaie Électronique) sont utilisés pour stocker et échanger des fonds dans une devise CUSTOM (devise dédiée à un mandataire DME). Un mandataire DME peut demander la création de comptes de ME pour les sous-marchands 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 mandataire 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 :

Recette Portail Marchand – Comptes de monnaie électronique
Production Portail Marchand – 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 mandataire 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 mandataire DME de CentralPay, vous pouvez demander la création de comptes de ME pour vos sous-marchands.

Automatisations, connexions et exports

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)
  • Versement sortant (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 profil Marchand 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 :

Recette Portail Marchand
Production Portail Marchand

Accès paramétrage de templates SMS :

Recette Portail Marchand
Production Portail Marchand

Accès paramétrage de templates hooks :

Recette Portail Marchand
Production Portail Marchand

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

Recette Portail Marchand
Production Portail Marchand

Accès paramétrage du pied de page d’email (footer) :

Recette Portail Marchand
Production Portail Marchand

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 :

Recette Portail Marchand
Production Portail Marchand

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’activation)

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 des transactions. Elle 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 transactions
    Cet outil permet de construire les règles spécifiques définissant les conditions d’acceptation d’un paiement
  • Scoring anti-fraude
    Le 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 faible
    Transaction acceptée
    Pas d’action
  • De 20 à 59 = risque moyen
    Transaction acceptée
    Action : Envoi événement avec détail du score pour revue manuelle et apprentissage
  • +60 = risque élevé
    Transaction refusée
    Action : 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

  • ALLOW
    Autorise le paiement
  • REFUSE
    Refuse le paiement
  • ALERT
    Adresse 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 versementEntier#payout_amount > 100
#payout_currencyDevise de versementChaî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

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')

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') 

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)

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.

Versement sortant

Les versements sortants sont des virements émis depuis votre compte de paiement CentralPay vers le compte bancaire associé.

Ils peuvent être réalisés manuellement depuis le Portail Marchand ou via l’API Payment, ou encore être automatisés selon la fréquence définie dans vos paramètres de reversement.

Depuis le Portail Marchand, seuls les profils utilisateurs titulaires du compte (dit « Legal ») peuvent paramétrer et exécuter les versements.

1. Modes de versement

1.1. Versement automatique

Le titulaire du compte peut définir la périodicité du versement automatique selon trois options :

  • Quotidienne
  • Hebdomadaire : choix du jour de la semaine (ex. chaque mardi)
  • Mensuelle : choix du jour du mois (ex. le 5 du mois)

Le service de versement automatique exécute chaque virement à 01h00 du jour sélectionné, à partir des fonds disponibles (AVAILABLE) sur le compte de paiement.

Cas d’un versement hebdomadaire programmé le mardi :
CentralPay exécutera la création du virement le mardi matin avec les fonds disponibles sur le compte de paiement jusqu’à 01h00.
ℹ️ En cas de versement quotidien, l’intégralité des fonds disponibles est virée chaque jour vers votre compte bancaire. 
Le solde de votre compte CentralPay est donc nul en début de journée.
Si vous devez effectuer des remboursements clients, ceux-ci pourront être réalisés à partir du début d’après-midi (vers 14h), une fois les fonds des transactions du jour crédités par les banques émettrices.
Une évolution permettra prochainement de différer les versements automatiques d’un ou plusieurs jours afin de conserver des fonds disponibles tout en maintenant une lecture comptable cohérente. Contactez le support si vous êtes concernés.

Lettrage des versements automatiques

Chaque versement automatique est associé à la liste détaillée des opérations incluses dans le virement. Cette fonction permet un rapprochement automatique entre les opérations encaissées et le versement correspondant.

Le détail des opérations d’un versement est accessible depuis le Portail Marchand Administration Mon compte Versements en sélectionnant le versement souhaité.

Le premier versement automatique ne contient pas encore de détail, car il initialise le système de lettrage. Les versements suivants incluent la liste complète des opérations concernées.

1.2. Versement manuel (via Portail Marchand ou API)

Un versement peut être exécuté manuellement depuis le Portail Marchand ou via l’API Payment. Le montant du versement peut être librement défini, dans la limite des fonds disponibles sur le compte.

Les ordres de versement effectués avant 05h00 sont exécutés immédiatement. Ceux créés après 05h00 sont exécutés le lendemain à 05h00.

2. Identification des opérations liées à chaque versement

Le lettrage des versements est une fonctionnalité du Portail Marchand qui associe chaque versement automatique à la liste détaillée des opérations incluses dans ce versement.

Périmètre : le lettrage s’applique exclusivement aux versements automatiques. Les versements manuels ne disposent pas de cette association automatique.

Contenu du détail : liste des opérations correspondant au versement, incluant les montants, dates de valeur et références nécessaires au rapprochement comptable.

2.1. Accéder au détail d’un versement automatique

Depuis le Portail Marchand Administration Mon compte Versements :

  • Sélectionnez le versement concerné dans la liste.
  • Ouvrez le détail du versement pour afficher les opérations associées.
  • Utilisez le bouton Exporter pour télécharger les données si nécessaire.

Ou, depuis le Portail Marchand Compte Mes opérations :

  • Filtrez par Type = Versement sortant ou par Date de valeur.
  • Dans la colonne Actions du versement, cliquez sur la flèche, puis sur Voir les opérations du versement.
ℹ️ Le premier versement automatique ne comporte pas de détail : il sert d’initialisation du lettrage.
Les versements automatiques suivants incluent la liste complète des opérations associées.

2. Disponibilité des fonds

Les versements comprennent uniquement les fonds disponibles (AVAILABLE) sur le compte de paiement. Les fonds issus d’une transaction par carte bancaire deviennent disponibles à J+2.

Exemple :
Une transaction carte réalisée le lundi apparaît en « Pending » le lundi, devient « Available » le mardi soir, le versement automatique est exécuté le mercredi à 01h00, et le virement SEPA est crédité sur le compte bancaire le jeudi.
Schéma de disponibilité des fonds
ℹ️ Le paramètre EscrowDate peut influer sur la date de disponibilité des fonds d’une transaction (cas spécifique aux partenaires / mandataires).

3. Création d’un versement manuel

3.1. Depuis le Portail Marchand

Seuls les utilisateurs titulaires du compte (« Legal ») ou disposant d’un rôle administrateur (« Natural Admin ») peuvent créer un versement manuel depuis le Portail Marchand.

Depuis le Portail Marchand Administration Mon compte Versements :

  • Cliquez sur Transferts externes.
  • Sélectionnez le compte d’émission.
  • Indiquez le montant du versement et l’IBAN destinataire.
  • Cliquez sur Confirmer le transfert.

Une fois validé, le versement est exécuté selon les délais mentionnés ci-dessus.

Recette Portail Marchand – Versements sortants
Production Portail Marchand – Versements sortants

3.2. Depuis l’API

La création d’un versement manuel peut également être réalisée via l’API Payment. Pour les détails techniques, consultez la documentation développeur : Développeurs Versement sortant .

4. Versements en devises via le réseau SWIFT

Les virements internationaux sont exécutés via le réseau SWIFT, contrairement aux virements SEPA utilisés dans la zone européenne. Ce service permet d’émettre des versements en euros ou dans d’autres devises vers des comptes situés hors zone SEPA.

Si le compte bénéficiaire n’est pas accessible via SEPA ou s’il s’agit d’un compte en devise, les versements peuvent être réalisés via SWIFT. Ce service est activé sur demande auprès de votre interlocuteur CentralPay.

ℹ️ Les virements SWIFT présentent des frais supérieurs aux virements SEPA. Il est possible de paramétrer un seuil de fonds disponibles avant déclenchement automatique des versements.

5. Retours, statuts et webhooks

Pour suivre le cycle de vie des versements et automatiser leur traitement :

  • Consulter la documentation des statuts de versement ➝
  • Consulter la documentation des webhooks de versement ➝

Exports comptables

Vous pouvez réaliser plusieurs exports de votre compte aux formats CSV, EXCEL, ou JSON depuis votre Portail Marchand. 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 Marchand Fichiers d’export .

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, etc.

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énominationSignification
wallet_ididentifiant du compte
wallet_namenom du compte
owner_namenom de la société
value_datedate de valeur de l’opération
operation_idréférence Centralpay de l’opération
operation_datetimedate d’opération
source_typetype d’opération
source_idréférence permettant de lier plusieurs opérations
naturenature de l’opération
debit_amountmontant des opérations de type « débit »
credit_amountmontant des opérations de type « crédit »
currencydevise de l’opération
custom_referenceréférence personnalisée de l’opération
custom_labelnom personnalisé de l’opération
third_party_ididentifiant du destinataire de l’opération
third_party_labelnom du destinataire de l’opération
third_party_countrypays du destinataire de l’opération
payout_numbernuméro du payout

Accès :

Recette Portail Marchand – Opérations
Production Portail Marchand – Opérations

2. Télécharger le rapport financier mensuel

Chaque début de mois, en plus de la facture, un relevé de compte est généré, puis mis à disposition dans l’espace sécurisé de votre compte ( Mes comptes Relevés de compte ). Il présente les montants totaux de crédit et de débit réalisés, incluant un détail « dont fonds » et « dont frais » afin de distinguer la nature.

Nous vous proposons deux types de relevés : détaillé ou synthétique. 
- Le relevé détaillé fait apparaitre l'ensemble des opérations de la période sélectionnée.
⚠️ Si vous possédez un grand nombre d'opérations, il est possible que celles-ci n'apparaissent pas sur le relevé. Dans ce cas, nous vous conseillons de réaliser un export au format CSV, Excel ou JSON.
- Le relevé synthétique regroupe vos opérations par jour et par type d'opération, pour la période sélectionnée.
Pour bien comprendre votre relevé de compte détaillé :

A) Le total du montant des débits sur votre compte pour la période donnée :
– dont fonds : ensemble des débits de nature « fond » (versements sortants, etc.)
– dont frais : ensemble des débits de nature « frais » (frais CentralPay, etc.)

B) Le total du montant des crédits sur votre compte pour la période donnée :
– dont fonds : ensemble des encaissements sur votre compte (= chiffre d’affaires).
– dont frais : ensemble des opérations pour compenser des opérations ou ajuster des frais (remboursement de frais, etc.).

C) Solde de clôture du mois précédent le relevé.

D) Solde de clôture du mois du relevé téléchargé.

Accès :

Recette Portail Marchand – Documents
Production Portail Marchand – Documents

Exports de données

Vous pouvez réaliser plusieurs exports de votre compte aux formats CSV, EXCEL, ou JSON depuis votre portail Marchand. 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 Marchand 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énominationSignification
transaction_creation_datedate de création
transaction_ididentifiant de transaction
transaction_amountmontant
transaction_currencydevise
transaction_payout_amountvaleur de devise de règlement
transaction_payout_currencydevise de règlement
transaction_commision_amountfrais sur la transaction
transaction_commision_currencydevise des frais
transaction_fee_amountfrais fixes par transaction
transaction_3ds3DS (0=non, 1=oui)
transaction_descriptiondescription définie par le marchand
transaction_sourceEC Ecommerce, DP Deposit, MO Mail order
transaction_bank_coderetour autorisation banque
transaction_statusstatut de la transaction
transaction_authorization_statusstatut de l’autorisation
transaction_authorization_codecode d’autorisation
transaction_capture_statusstatut de la capture
transaction_capture_datedate de la capture
transaction_capture_amountmontant de la capture
merchant_transaction_ididentifiant de transaction marchand
point_of_sale_ididentifiant du point de vente
point_of_sale_namenom du point de vente
merchant_ididentifiant marchand
merchant_namenom du marchand
dispute_amountmontant de la contestation
dispute_currencydevise de la contestation
dispute_datedate de la contestation
refund_amountmontant du remboursement
refund_currencydevise du remboursement
refund_datedate du remboursement
card_ididentifiant de la carte de paiement
card_first66 premiers chiffres de la carte
card_last44 derniers chiffres de la carte
card_cardholder_namenom du porteur
card_cardholder_emailemail du porteur
card_typetype de carte (crédit/débit/prepaid)
card_productnom du produit carte (Infinite, Gold…)
card_product_typecarte consumer ou corporate
card_commercial_brandréseau carte (VISA/Mastercard/CB)
card_regioncontinent d’origine de la carte
card_countrypays d’origine de la carte
card_establishment_namenom de l’établissement qui fournit la carte
customer_ididentifiant client
end_user_ipIP de l’utilisateur
end_user_languagelangue de l’utilisateur
browser_user_agentnavigateur de l’utilisateur
receipt_emailmail de réception de l’utilisateur
clearing_numbernuméro de clearing
merchant_category_codeactivité du marchand

Accès :

Recette Portail Marchand – Transactions
Production Portail Marchand – Transactions

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 :

Recette Portail Marchand – Remboursements cartes
Production Portail Marchand – 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 :

Recette Portail Marchand – Contestations cartes
Production Portail Marchand – 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 :

Recette Portail Marchand – Abonnements
Production Portail Marchand – Abonnements

Webhooks

Les webhooks permettent d’adresser des notifications HTTP sur les URL de votre choix en fonction des évènements (events) qui surviennent sur votre profil Marchand 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’un évènement intervient sur votre profil Marchand CentralPay. Par exemple, une transaction réussie ou échouée, la création d’un nouvel abonnement (subscription), 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, etc.). Les transactions ainsi créées sont automatiquement liées à la demande de paiement et permettent d’actualiser son statut (non payé, partiellement payé, payé, etc.).

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 (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 Marchand. 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 à renseigner
Paiements unitaires
Transaction par cartepaymentMethod[]=TRANSACTION
Pré-autorisation sur carte (réservé aux activités de locations)paymentMethod[]=TRANSACTION
transaction[source]=DP
Vérification carte (transaction à 0 €)paymentMethod[]=TRANSACTION
transaction[source]=RI
Transaction par virement bancairepaymentMethod[]=SCT_TRANSACTION
Transaction par prélèvement SEPApaymentMethod[]=SDD
sdd[remittanceInformation]
Transaction par initiation de paiementProchainement
Paiements récurrents
Abonnement par cartepaymentMethod[]=SUBSCRIPTION
subscriptionModel[subscriptionModelId]
Abonnement par prélèvement SEPApaymentMethod[]=SUBSCRIPTION
subscription[source]=SDD
subscriptionModel[subscriptionModelId]
Paiement fractionné par cartepaymentMethod[]=INSTALLMENT
intallment[intervalUnit]
installment[intervalCount]
installment [iterationCount]
Paiement fractionné par prélèvement SEPApaymentMethod[]=INSTALLMENT
installment[source]=SDD
intallment[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

⚠️ 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éfinition
amountMontant de la demande de paiement en centimes
merchantPaymentRequestIdRé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 Marchand

2.1. Création et types de demandes de paiement

Vous pouvez créer une demande de paiement depuis le Portail Marchand Demandes de paiement Liens de paiement Créer .

Les demandes de paiement créées depuis le Portail Marchand 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 :

Recette Portail Marchand – Demandes de paiement
Production Portail Marchand – 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 Marchand, ou via import de fichiers plats.

2.3. Création de demandes de paiements par import de fichiers plats

Depuis le Portail Marchand 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écharger le modèle :

  • Au format CSV➝
  • Au format JSON ➝

Quelques informations importantes :

DésginationDéfinition
profil_uuid*UUID du profil de demande de paiement
merchant_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 famille
first_namePrénom
email*Email du destinataire
phoneTéléphone du destinataire au format international (ex : 33612345678).
create_customerCréation d’un profil client « Customer » : renseigner « O » pour OUI ou « N » pour NON
link_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 paiement
language*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éfinition
NomNom du modèle de page
Template 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 redirection
URL 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 paiement
Couleur des boutonsCouleur des boutons de la page de paiement
Champs 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 :

Recette Portail Marchand – Paramétrage formulaire
Production Portail Marchand – 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.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é, etc.) 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 »)

1.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, etc.), le service de « pré-autorisation » donne la possibilité au marchand d’étendre le délai d’autorisation jusqu’à 30 jours.

1.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 Marchand. Allez dans Administration Mon profil marchand Technique Modifier , puis complétez le champ Hosts Custom Forms autorisés.

Accès :

Recette Portail Marchand – Administration
Production Portail Marchand – 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.

1.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 profil Marchand 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.

  1. Créez un objet customer via l’endpoint POST /customer ou récupérez le customerId s’il est déjà connu
  2. 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 »)

1. Caractéristiques

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.1. Le 3DS 2 « BRW » ou « Browser Authentication » (porteur participant – 1ère transaction)

Il 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 ➝

1.2. Le 3DS2 « 3RI Authentification » (porteur non participant – échéances de paiements récurrents)

Le 3DS Requestor Initiated (3RI) Authentications, ou Authentification Initialisée par le marchand, est utilisée lorsque le porteur n’est pas présent ou non participant.

Le 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’abonnement
    CentralPay 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 successives
    Vous 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 Marchand.

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 Marchand » 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 (Smart Form)

Apple Pay est intégré nativement au parcours de paiement carte du SmartForm (PaymentRequest > paymentMethod[]=TRANSACTION) dès que l’appareil de votre client est compatible.

Aucune action n’est requise de votre part. Le service est entièrement opéré par CentralPay (détection de l’appareil, gestion des certificats et des tokens Apple, sécurité PCI-DSS). Aucune donnée de carte n’est exposée côté marchand (périmètre PCI-DSS SAQ-A).

2. Apple Pay (Custom Form)

2.1. 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…)
🔐 Certificats requis pour une intégration Apple Pay (https://developer.apple.com/help/account/certificates/create-a-certificate-signing-request)

Pour traiter des paiements Apple Pay dans le cadre d’une intégration directe, le marchand doit disposer des éléments suivants :
• un certificat Merchant ID Identity ;
• un certificat Merchant Payment Processing G2.

Le marchand doit veiller à conserver l’ensemble des clés privées utilisées lors de la génération des CSR associées à ces certificats.

1. Merchant ID Identity
La génération d’un CSR basé sur une clé EC (256 bits) est requise.
Cette CSR sera générée par Centralpay

2. Merchant Payment Processing Certificate

Étapes principales :
• Demander le CSR généré par Centralpay
• Soumettre le CSR depuis le compte développeur Apple afin d’obtenir le Merchant Payment Processing Certificate.
• Installer le certificat sur le même poste macOS ayant servi à la génération de la CSR afin qu’il soit associé à la clé privée.
• Exporter l’identité complète au format .p12 (certificat + clé privée).

⚠️ Si l’option d’export au format .p12 n’est pas disponible, cela indique qu’une étape du processus n’a pas été correctement réalisée (clé privée manquante ou non associée).

Le fichier .p12 constitue un conteneur sécurisé permettant l’exploitation ultérieure de la clé privée associée au certificat, conformément au flux Apple Pay.

Notes importantes :
• Toute perte de la clé privée nécessite la recréation complète du certificat depuis le portail Apple Developer.
• La documentation Apple Pay peut prêter à confusion : l’utilisation d’OpenSSL ne concerne que le certificat Merchant ID Identity, et ne s’applique pas au Merchant Payment Processing Certificate.

2.2. 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. Cette méthode implique une responsabilité PCI-DSS importante de votre part (formulaire SAQ-D). Renseignez-vous et assurez-vous d'être en conformité avant de développer ce mode d'intégration.

Étape 1 : Déchiffrement du token Apple Pay (Backend)

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 (Backend)

Utilisez l’endpoint POST /cardToken de l’API CentralPay

ChampDescription
card[number]PAN de la carte extrait du token Apple Pay
card[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 Pay
amountMontant 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]=5454696696312664
card[expirationMonth]=12
card[expirationYear]=2031
onlinePaymentCryptogram=MGnp3S1LBgJxAANgdNCRAoABFIA=
applePayTransactionId=3d2b17abed2696ca...
amount=2500
currency=EUR
merchantPublicKey=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 (Backend)

Utilisez l’endpoint POST /transaction de l’API CentralPay

Champs requis :

cardToken=...
amount=2500
currency=EUR
pointOfSaleId=...
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 test. Ils ne sont pas interchangeables avec ceux de production
  • La clé publique CentralPay (merchantPublicKey) est également spécifique à l’environnement

2.3. Via token ApplePay chiffré (hybride)

ℹ️ 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.

2.3.1. Paramétrage du compte Apple

– Se connecter sur « https://developer.apple.com/« , créer un compte et valider le compte ‘developer’ à 99$)

– Aller sur https://developer.apple.com/account/resources/identifiers/list

– Dans « App IDs », choisir « Merchant IDs » :

Puis cliquer sur le « + » pour ajouter un « Identifier » :

Choisir « Merchant IDs » : 

Renseigner le nom de l’identifier et cliquez sur « Register » : 

Aller à https://developer.apple.com/account/resources, puis cliquer sur Identifiers 

Sur Identifier, sélectionner un Merchant IDs en utilisant le filtre en haut à droite

Sous « Apple Pay Payment Processing Certificate », cliquer sur « Create Certificate« .

Indiquez que ce « Merchant ID » ne sera PAS (No) utilisé uniquement pour la Chine.

A ce moment là cliquez sur « Choose File » afin d’envoyer le fichier CSR qui vous a été envoyé par CentralPay(uniquement CentralPay)

Vous pouvez télécharger le fichier généré.
Il reste à créer le certificat « Apple Pay Merchant Identity Certificate » 
Pour cela aller à https://developer.apple.com/account/resources, puis cliquer sur Identifiers et enfin cliquer sur l’Identifier que vous voulez éditer.
Une fois ouvert, cliquez sur « Create Certificate ».

Ajoutez votre certificat : 

Ajouter le domaine associé

Indiquez le nom de domaine en question : 

Téléchargez le fichier indiqué par Apple

Déployez le fichier indiqué par Apple sur un serveur du nom de domaine en question accessible à Apple, puis cliquez sur « Verify » :

Vous pourrez alors télécharger le certificat nécessaire.

2.3.2. Paiement via Applepay

Génération du certificat et clé dans le même fichier : 

openssl pkcs12 -in certificat.p12 -out certificat.pem -clcerts

Création d’un ApplePayToken avec Apple Pay JS API (Démo à https://applepaydemo.apple.com/apple-pay-js-api)

Frontend : 

<script crossorigin
src="https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js">
</script>
<style>
apple-pay-button {
--apple-pay-button-width: 250px;
--apple-pay-button-height: 100px;
--apple-pay-button-border-radius: 99px;
--apple-pay-button-padding: 0px 0px;
--apple-pay-button-box-sizing: border-box;
}
</style>
<apple-pay-button id="btn-card" buttonstyle="white-outline" type="plain" locale="fr-FR"></apple-pay-button>
<br />
<div data-info="gateway-link" class="text-small text-gray-light font-weight-normal ml-1">
<img src="https://docs.centralpay.com/wp-content/uploads/2024/10/paysecure_reassurance_1-fond_blanc.png" alt="CentralPay" style="max-width:200px"></a>
</div>
var request = {
countryCode: 'FR',
currencyCode: 'EUR',
supportedNetworks: ['visa', 'masterCard', 'amex'],
merchantCapabilities: ['supports3DS'],
total: { label: 'Your Merchant Name', amount: '10.00' },
}
var applepayversion = 3;
var session = new ApplePaySession(applepayversion, request);

session.onvalidatemerchant = event => {
// Call your own server to request a new merchant session.
console.log("event.validationURL :"+event.validationURL);

fetch('/applepay-session')
.then(res => res.json()) // Parse the response as JSON.
.then(merchantSession => {
session.completeMerchantValidation(merchantSession);
})
.catch(err => {
console.error("Error fetching merchant session : ", err);
});
};

session.onpaymentauthorized = (event) => {

var token = event.payment.token;
fetch(`https://api.centralpay.net/transaction`, {
method: "post",
body: JSON.stringify(
{
applePayToken: token,
endUserIp: "127.0.0.1",
currency: "EUR",
amount: 1000,
source="EC",
browserUserAgent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36",
merchantTransactionId="1234567890123456789"
}),
})
.then((response) => {
if (response.ok) {
return response.json();
}
appleSession.completePayment(ApplePaySession.STATUS_FAILURE);
})
.then((responseJson) => {
// Do something with the response
appleSession.completePayment(ApplePaySession.STATUS_SUCCESS);
})
.catch((error) => {
appleSession.completePayment(ApplePaySession.STATUS_FAILURE);
});
};

session.begin();

Backend : 

$router->map('GET', '/applepay-session', function (ServerRequestInterface $request) use ($twig) : ResponseInterface {

$APPLE_URL = "https://apple-pay-gateway.apple.com/paymentservices/paymentSession";

$curl = new Curl();
$curl->setHeader('Content-Type', 'application/json');
$curl->setOpt($ch, CURLOPT_SSLCERT, getcwd() . 'certificat.pem');
$curl->setOpt($ch, CURLOPT_SSLCERTPASSWD, "thesslpassword");
$curl->setOpt(CURLOPT_POSTFIELDS, '{
merchantIdentifier: "merchant.net.centralpay.test-form",
displayName: "MyStore",
initiative: "web",
initiativeContext: "merchant.net.centralpay.test-form"
}'
);
$curl->setOpt(CURLOPT_CUSTOMREQUEST, "POST");
$curl->setOpt(CURLOPT_URL, $APPLE_URL);
$curl->exec();
...
return new Laminas\Diactoros\Response\JsonResponse($curl->getResponse());
...
});

Création de CardToken avec votre token Apple pay chiffré. (Frontend)

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.

Utilisez l’endpoint POST /cardToken de l’API CentralPay
Champs requis :

curl --location 'https://test-api.centralpay.net/cardToken' \
--header 'Origin: https://example.centralpay.net' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'merchantPublicKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--data-urlencode 'endUserIp=xxxx.xxxx.xxxx.xxxx'
--data-urlencode 'applePayToken=xxxxxxxxxxxxxxxxxxxxxx'

Création de la transaction : (Backend)

Utilisez l’endpoint POST /transaction de l’API CentralPay
Champs requis :

curl --location 'https://api.centralpay.net/transaction' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: ••••••' \
--data-urlencode 'customerId=870005ca-xxxx-xxxx-xxxx-140fa71d6e01' \
--data-urlencode 'cardTokenId=xxxxxxxxxxxxxxxxxxxxxxxx'
--data-urlencode 'currency=EUR' \
--data-urlencode 'amount=1000' \
--data-urlencode 'endUserIp=xxxx.xxxx.xxxx.xxxx' \
--data-urlencode 'endUserLanguage=fre' \
--data-urlencode 'source=EC' \
--data-urlencode 'browserUserAgent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36' \
--data-urlencode 'browserAcceptLanguage=en_US' \
--data-urlencode 'email=xxxxx@example.com' \
--data-urlencode 'country=FRA' \
--data-urlencode 'merchantTransactionId=1234567890123456789'

Le cardToken encapsule déjà le contexte Apple Pay et les données d’authentification.

Création de Transaction avec votre token Apple pay chiffré. (Backend)

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.

Puis utilisez l’endpoint POST /transaction de l’API CentralPay

Champs requis :

curl --location 'https://api.centralpay.net/transaction' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: ••••••' \
--data-urlencode 'customerId=870005ca-xxxx-xxxx-xxxx-140fa71d6e01' \
--data-urlencode 'currency=EUR' \
--data-urlencode 'amount=1000' \
--data-urlencode 'endUserIp=xxxx.xxxx.xxxx.xxxx' \
--data-urlencode 'endUserLanguage=fre' \
--data-urlencode 'source=EC' \
--data-urlencode 'browserUserAgent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36' \
--data-urlencode 'browserAcceptLanguage=en_US' \
--data-urlencode 'email=xxxxx@example.com' \
--data-urlencode 'country=FRA' \
--data-urlencode 'merchantTransactionId=1234567890123456789'
--data-urlencode 'applePayToken=xxxxxxxxxxxxxxxxxxxxxxxx'

3. Google Pay (Smart Form)

Google Pay est nativement au parcours de paiement carte du SmartForm (PaymentRequest > paymentMethod[]=TRANSACTION), dès que l’appareil ou le navigateur de votre client est compatible.

Aucune action ne sera nécessaire de votre part. Le service sera entièrement opéré par CentralPay (détection de compatibilité Google Pay, gestion des certificats et des tokens, sécurité PCI-DSS). Aucune donnée de carte ne transite côté marchand, le flux relève du périmètre PCI-DSS SAQ-A.

4. Google Pay (Custom Form)

CentralPay permet l’intégration de Google Pay via le mode PAYMENT_GATEWAY, tel qu’imposé par Google Pay dans un contexte PSP multi-marchands, sans nécessiter de déchiffrement du token côté serveur.

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é
⚠️ Google Pay fournit un merchantId spécifique au domaine validé.
Ce merchantId est obligatoire pour toute Payment Request Google Pay.
L’utilisation d’un merchantId non associé au domaine entraîne une erreur Google Pay (Error 11).

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

ℹ️ Le bouton Google Pay est fourni par le SDK officiel Google Pay.
L’initiation du paiement et la génération du token sont entièrement contrôlées par Google Pay (hosted button).

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.Définir les types de cartes acceptées :

const allowedCardNetworks = ["AMEX", "MASTERCARD", "VISA"];

4. Définir le type de moyen de paiement :

Il existe deux type différents : PAN_ONLY et CRYPTOGRAM_3DS

⚠️​Le type PAN_ONLY permet de tokeniser le PAN d’un carte bancaire, cependant ce token n’est pas sécurisé pour effectuer un paiement, il est donc important de ne pas l’utiliser pour effectuer des paiements sur la plateforme Centralpay

const allowedCardAuthMethods = ["CRYPTOGRAM_3DS"];

5. Environnement de test ou production :

// Environnement de test
const paymentsClient = new google.payments.api.PaymentsClient({ environment: 'TEST' });

// Environnement de production
const 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 :

ChampDescription
amountMontant 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=2500
currency=EUR
merchantPublicKey=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=2500
currency=EUR
pointOfSaleId=...
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 Google 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 test
    Ils ne sont pas interchangeables avec ceux de production
  • La clé publique CentralPay (merchantPublicKey) est également spécifique à l’environnement

R-transaction carte

1. Remboursement – refund

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 Marchand. 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é.

⚠️ Si la carte sur laquelle vous tentez d'effectuer le remboursement est expirée ou que le compte a été clôturé, CentralPay ne pourra réaliser de remboursement. Dans ce cas, nous vous invitons à vous rapprocher de votre client pour lui demander un RIB à jour et procéder à un virement SEPA depuis votre banque.

2. Crédit – credit

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 – Dispute

Lorsqu’un porteur de carte conteste ou signale une transaction auprès de sa banque, le réseau (Visa, Mastercard, Carte Bancaire, etc.) peut notifier CentralPay afin d’initier une opération de contestation (Dispute).
Cette opération permet de suivre l’état du litige et d’agir selon le type de signal reçu : alerte de fraude, demande d’information, ou chargeback.

Chaque contestation est représentée dans le backoffice CentralPay par une opération distincte (Dispute), liée à la transaction d’origine. Les notifications sont également disponibles via le webhook DISPUTE_CREATED.

Pour tout paiement par carte, un client peut contester une transaction auprès de sa banque dans les délais suivants :

  • 120 jours à compter de la transaction pour les réseaux Visa et Mastercard ;
  • 13 mois à compter de la date d’opération pour le réseau français Carte Bancaire.
ℹ️ En France, la contestation est en principe réservée aux cas de fraude (carte volée, usurpée, utilisation abusive).
Dans d’autres pays européens, elle peut également être utilisée dans le cadre d’un litige commercial (produit non livré, service non conforme, etc.).

1. Alerte de fraude FRAUD_NOTICED

Ce statut correspond à une notification préventive de fraude transmise par le réseau (ex. : fichier TC40 pour Visa).
Il est déclenché lorsque la banque émettrice signale qu’un porteur affirme ne pas être à l’origine de la transaction (carte volée, copiée ou usurpée).

➡️ Aucun remboursement n’est initié à ce stade.
➡️ Ce signal vous permet d’anticiper un chargeback potentiel et de renforcer vos contrôles antifraude.

Bonnes pratiques :

  • Identifier la transaction concernée (montant, pays, carte, date).
  • Vérifier les transactions similaires (même carte, même compte, même IP).
  • Mettre la carte ou le compte en liste noire pour éviter de nouvelles tentatives.
  • Conserver les preuves d’authenticité (logs, preuves de livraison, consentement).
  • Ne pas contacter directement le porteur (le signal vient de sa banque).

2. Demande d’information RETRIEVAL_NOTICED

Ce statut correspond à une demande documentaire émise par la banque du porteur.
Il intervient lorsqu’un client ne reconnaît pas une transaction, sans parler de fraude.

La banque émettrice demande alors à CentralPay de solliciter le marchand pour fournir des éléments de preuve (facture, reçu, preuve de livraison, etc.).

➡️ Une réponse est attendue sous 7 jours.
➡️ Si les éléments sont acceptés, la contestation est clôturée (RETRIEVAL_CLOSE).
➡️ Si aucune réponse n’est transmise, la banque du porteur peut déclencher un chargeback.

3. Contestation officielle CHARGEBACK_NOTICED

Le chargeback correspond à une demande de remboursement formelle initiée par la banque émettrice.
Il peut résulter :

  • d’une fraude confirmée (suite à un FRAUD_NOTICED) ;
  • d’un litige non résolu (suite à un RETRIEVAL_NOTICED) ;
  • ou d’un autre motif reconnu par les réseaux (produit non reçu, montant incorrect, service non conforme, etc.).

Lorsqu’un chargeback est émis :

  • Le montant de la transaction est débité de votre compte de paiement afin de rembourser le porteur.
  • Des frais non remboursables s’appliquent pour chaque contestation reçue, même en cas d’issue favorable.
  • Vous disposez d’un délai de 20 jours calendaires pour répondre à la contestation en fournissant les éléments justificatifs :
    • Preuve de livraison ou d’exécution du service,
    • Preuve du consentement du porteur (obligatoire pour les transactions non 3-D Secure),
    • Autres pièces démontrant la légitimité du paiement.

À défaut de réponse dans le délai imparti, la contestation sera automatiquement perdue.

Une fois votre réponse transmise, la banque émettrice analyse les éléments fournis :

StatutDescription
CHARGEBACK_WONLes preuves ont été jugées suffisantes. Le montant de la transaction vous est recrédité.
CHARGEBACK_LOSTLa contestation est maintenue. Le remboursement au porteur devient définitif.

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 Marchand.

  1. Adresse email de l’expéditeur : Paramètrage depuis le point de vente
  2. Nom de l’expéditeur : Paramètrage depuis le point de vente
  3. Votre logo : Paramètrage depuis le point de vente
  4. Nom du point de vente : Paramètrage depuis le point de vente
  5. Texte de pied de page : Paramétrage depuis l’entrrée Configuration Email confirmation paiement Créer
  6. 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 profil Marchand CentralPay 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 de paiement 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 versements sortants (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 versements SWIFT afin qu'il ne soit réalisés qu'à partir d'un certain seuil, afin de mieux maitriser ses coûts de versement.

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.com
Booking.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.com
Chez 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 (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 :

CodeDescription
A1 – Repli VADSDSP2 et Soft decline
La 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 banque
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.
4, 7, 14, 15, 31, 33, 34, 41, 43, 54, 55, 56, 59, 63, 76Suspicion de fraude ou vol de la carte
La 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 atteint
La 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 invalide
La 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 Marchand Administration Comptes IBAN/BIC :

Il est également possible d’interroger l’API CentralPay avec le endpoint /bankAccount

Accès :

Recette Portail Marchand – Comptes
Production Portail Marchand – 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 Marchand Administration Comptes UUID :

Accès :

Recette Portail Marchand – Comptes
Production Portail Marchand – 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 Marchand Administration Comptes UUID :

Accès :

Recette Portail Marchand – Comptes
Production Portail Marchand – 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 :

  • Automatiquement
    Si 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 Transaction
    Si 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 paiement
    Si 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 Marchand 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 :

  1. Créer une PaymentRequest selon les modalités habituelles.
  2. 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

  1. L’utilisateur sélectionne « Pay by Bank » dans le formulaire
  2. Il choisit sa banque dans la liste proposée
  3. Il est redirigé vers l’environnement de sa banque pour valider l’opération de virement
  4. 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✅ Disponible🚫 Non disponible
Arkéa Banking Services✅ Disponible🚫 Non disponible
Arkéa Banque Entreprises et Institutionnels✅ Disponible✅ Disponible
Arkéa Banque Privée✅ Disponible✅ Disponible
AXA Banque✅ Disponible✅ Disponible
Banque BCP✅ Disponible✅ Disponible
Banque Chalus✅ Disponible✅ Disponible
Banque de Savoie✅ Disponible✅ Disponible
Banque des Territoires✅ Disponible🚫 Non disponible
Banque Européenne Crédit Mutuel✅ Disponible✅ Disponible
Banque Populaire✅ Disponible✅ Disponible
Banque Transatlantique✅ Disponible✅ Disponible
BBVA (Non activé)🚫 Non disponible🚫 Non disponible
BforBank✅ Disponible🚫 Non disponible
BNP Paribas✅ Disponible✅ Disponible
BNP Paribas Entreprises✅ Disponible🚫 Non disponible
BNP Paribas Nouvelle-Calédonie (Non activé)🚫 Non disponible🚫 Non disponible
BoursoBank✅ Disponible✅ Disponible
BRED✅ Disponible✅ Disponible
BTP Banque✅ Disponible✅ Disponible
Caisse d’Épargne Particuliers✅ Disponible✅ Disponible
Caisse d’Épargne Professionnels✅ Disponible✅ Disponible
CCMDirect (Non activé)🚫 Non disponible🚫 Non disponible
CIC✅ Disponible✅ Disponible
CIC Banque Privée✅ Disponible✅ Disponible
Crédit Agricole✅ Disponible✅ Disponible
Crédit Coopératif✅ Disponible✅ Disponible
Crédit Maritime✅ Disponible✅ Disponible
Crédit Mutuel✅ Disponible✅ Disponible
Crédit Mutuel de Bretagne✅ Disponible✅ Disponible
Crédit Mutuel du Sud Ouest✅ Disponible✅ Disponible
Fortuneo✅ Disponible✅ Disponible
Hello bank!✅ Disponible✅ Disponible
ING Wholesale Banking✅ Disponible🚫 Non disponible
La Banque Postale✅ Disponible✅ Disponible
LCL✅ Disponible✅ Disponible
Louvre Banque Privée✅ Disponible✅ Disponible
Manager.one✅ Disponible🚫 Non disponible
Memo Bank✅ Disponible✅ Disponible
Monabanq✅ Disponible✅ Disponible
N26✅ Disponible✅ Disponible
Nef Pro✅ Disponible🚫 Non disponible
Neuflize OBC (Non activé)🚫 Non disponible🚫 Non disponible
Palatine✅ Disponible✅ Disponible
Qonto✅ Disponible🚫 Non disponible
Revolut✅ Disponible🚫 Non disponible
Société Générale✅ Disponible✅ Disponible

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 Marchand. 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

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 profil Marchand CentralPay correspondant à votre ICS. Vous pouvez le retrouver depuis votre Portail Marchand en utilisant un profil avec des droits Admin : Administration Mon profil marchand 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

1.1. 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.

1.2. 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

1.3. 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ébiteur
    POST /bankAccount/{bankAccountId}
    Permet de mettre à jour l’IBAN d’un compte bancaire débiteur lié à un mandat SEPA existant.
  • Modifier une RUM
    Cette 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éancier
    En cas de changement de la structure juridique réalisant les prélèvements, un nouveau Profil Marchand CentralPay (Merchant) doit être créé. Les mandats existants devront alors être redéclarés sous ce nouveau profil 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 B2B
    NB : 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 :

  1. Créer des transactions SDD individuelles : pour réaliser une ou plusieurs transactions SDD par API en complète autonomie
  2. 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).
  3. 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

1.1. 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.

1.2. [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 Marchand.

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 Marchand. 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 de paiement 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.

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

Contestations
MD06 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 banque
MS02Raison non communiquée (peut inclure des contestations ou des rejets)
Rejets
AM04 Provisions insuffisantes
Tout autre codeRejets techniques divers (compte clôturé, bloqué, IBAN non atteignable…)

👉 Consultez la liste complète des codes de rejet SDD ➝

2. Statuts liés aux prélèvements SEPA

Consultez les Statuts des SDD Transaction ➝

Consultez les Statuts des Mandates ➝

Consultez les Statuts des bankAccount ➝ (à venir)

Consultez les Statuts des Subscription ➝

Consultez les Statuts des Installment ➝

3. Webhooks liés aux prélèvements SEPA

Consultez les Webhooks des SDD Transaction ➝

Consultez les Webhooks des Mandates ➝

Consultez les Webhooks des bankAccount ➝

Consultez les Webhooks des Customer ➝

Consultez les Webhooks des Subscription ➝

Consultez les Webhooks des Installment ➝

Paiements récurrents

Abonnement

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 Marchand. 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 :

Recette Portail Marchand – Modèles d’abonnements
Production Portail Marchand – Modèles d’abonnements

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 Marchand.

Accès :

Recette Portail Marchand – Paramétrages d’abonnements
Production Portail Marchand – Paramétrages d’abonnements

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 Marchand 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é

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

Accès :

Recette Portail Marchand – Paramétrages Paiements Fractionnés
Production Portail Marchand – Paramétrages Paiements Fractionnés

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)

1. Intégration du 3DS 2.0

Tout ce processus doit se dérouler sur la même page web (ceci est une contrainte du process bancaire).

👉 Téléchargez les sources

1.1. Les grandes étapes du 3D Secure 2.0

👉 Consultez un exemple de formulaire de paiement CUSTOM intégrant le 3DS 2.0

1.2. 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.

1.3. 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).

1.4. 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.

1.5. 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é

1.6. 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é

1.7. 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"
}

1.8. 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)

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'

1.1. 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 test 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…

Gestion des marchands

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.

1. Types de comptes

CentralPay permet l’ouverture de deux types de comptes réglementés :

Type de compteDescriptionExemples d’usage
Compte 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 du marchand et de son éventuelle gestion par un mandataire (DME ou Agent).

2. Fonctionnement global de l’enrôlement

L’ouverture d’un compte passe systématiquement par une procédure d’enrôlement incluant :

  1. La création d’une demande d’enrôlement : initiation d’un dossier contenant les premières informations (email, nom, prénom)
  2. La complétion de l’enrôlement : soumission par l’utilisateur des informations réglementaires et des justificatifs (KYC/KYB)
  3. La validation de l’enrôlement : analyse par CentralPay, pouvant aboutir à une ouverture de compte, une demande complémentaire ou un refus

3. Deux interfaces possibles

InterfaceDescriptionPublic concerné
Portail d’enrôlement CentralPayInterface hébergée par CentralPay, accessible via lien personnalisé.Tous types d’utilisateurs
API d’enrôlementInterface technique permettant à un mandataire d’initier ou compléter des enrôlements via API.Mandataires autorisés selon leur statut

4. 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, ou les mandataires 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 KYC
Partenaire TechniqueOui*❌ Non❌ Non
Mandataire DMEOui, via API ou portail✅ Oui✅ Oui
Mandataire 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

1. Méthodes de création d’une demande d’enrôlement

1.1. Depuis le portail Marchand CentralPay

Un utilisateur connecté au portail CentralPay peut initier une demande d’enrôlement depuis le menu : Plateforme > Enrôlements > Créer

Recette Portail Marchand – Onboarding
Production Portail Marchand – 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.)

1.2. 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 Marchand
  • Soit entièrement via les endpoints API (voir partie « Compléter un enrôlement par API »)
Si 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": false

Si 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.

2. 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/siren
2. 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é.

2.1. Champs requis

ChampTypeObligatoireDescription
profile[firstname][value]string (255)✅ OuiPrénom du titulaire. Validation : caractères alphabétiques et tirets (-). Depuis la version 1.15.0
profile[lastname][value]string (255)✅ OuiNom du titulaire. Validation : caractères alphabétiques et tirets (-). Depuis la version 1.15.0
profile[email][value]string (255)✅ OuiAdresse email de contact. Depuis la version 1.15.0
profile[phone][value]string✅ OuiNuméro de téléphone international. Depuis la version 1.15.0
languagestring✅ OuiLangue préférée du marchand. Note : utilisez GET /api/locale pour les valeurs disponibles.
accountTypeenum✅ OuiType de profil marchand à créer. Note : utilisez GET /api/merchant-enrollment/account-type.
activitySectorUUID (36)✅ OuiSecteur d’activité du marchand. Note : utilisez GET /api/nauth/enrollment-claim/activity-sector.
activityAgeUUID (36)✅ Oui, si type = LEGAL_ENTITY ou INDIVIDUAL_WITH_STATUSAncienneté de l’activité. Note : utilisez GET /api/nauth/enrollment-claim/activity-age.
feeScheduleUUID (36)✅ OuiGrille tarifaire à appliquer. Note : obtenez les identifiants via POST /api/merchant-enrollment/fee-schedule.
identityBadgeUUID✅ Oui, si enrôlement via SIRENIdentifiant SIREN (activant le parcours simplifié).
contractUUID✅ Oui, si accountType = STANDARDContrat à appliquer. Note : utilisez GET /api/merchant-enrollment/contract.

2.2. Champs avancés (optionnels)

Personnalisation du parcours

ChampValeur par défautDescription
workflowModeSEQUENTIALMode de déroulement du parcours (seul le mode SEQUENTIAL est désormais disponible).
Note : valeurs valides : SEQUENTIAL
type—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, ARTISAN
Pour LEGAL_ENTITY : ASSOCIATION, PUBLIC, COMMERCIAL, EIG, CIVIL
turnoverIsFixedfalseSi true, verrouille la déclaration de chiffre d’affaires.
Note : facultatif

Paramètres de communication

ChampValeur par défautDescription
sendClaimEmailtrueEnvoie 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 profil Marchand 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.

ChampTypeDescription
profile[nationality][country]string (3)Nationalité (format ISO 3166-1 alpha-3).
profile[birthday][value]dateDate de naissance.
Validation : ≥ 18 ans, ≤ 110 ans
profile[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.

ChampTypeDescription
profile[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

ChampTypeDescription
contractUUID (36)Contrat à appliquer.
Obligatoire si accountType = STANDARD.
Note : GET /api/merchant-enrollment/contract
cguUUID (36)CGU à appliquer.
Note : POST /api/merchant-enrollment/cgu
Depuis version 1.18.0
customReferencestring (100)Référence personnalisée (usage interne).
payoutProfileUUID (36)Profil de versement à associer.
Note : POST /api/merchant-enrollment/payout-profile
administrativeContactstring (255)Contact administratif référent.
Depuis version 1.18.0
technicalContactstring (255)Contact technique.
Depuis version 1.18.0
financialContactstring (255)Contact financier.
Depuis version 1.18.0
addSecurityReferenceboolAffiche une référence de sécurité lors de la validation du contrat.
Uniquement valable pour : STANDARD, PARTNER, RESELLER.
Défaut : false
hookUUIDIdentifiant 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.

1. 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

2. 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 :

  1. Compléter le profil
  2. Déterminer le workflow
  3. Compléter le workflow
  4. Finaliser l’enrôlement

2.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}/activity
Content-Type : multipart/form-data

Exemple de champs attendus (activité « Identity Informations ») :

ChampTypeContraintes
firstname[value]string255 caractères
lastname[value]string255 caractères
mail[value]stringEmail valide
phone[value]stringNuméro international (min. 10 caractères)
birthday[value]stringDate au format YYYY-MM-DD, entre 18 et 110 ans
place_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.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 :

ChampTypeObligatoireNotes
typeEnum✅ OuiINDIVIDUAL, INDIVIDUAL_WITH_STATUS, LEGAL_ENTITY
bankAccountInEEACountrybool✅ Oui—
turnoverUUID (36)✅ OuiPOST /api/nauth/enrollment-claim/turnover
companyNamestring(255)Oui, si LEGAL_ENTITY—
activityAgeUUID (36)Oui, si LEGAL_ENTITY ou INDIVIDUAL_WITH_STATUSGET /api/nauth/enrollment-claim/activity-age
subTypeENUMRecommandéDépend du type (voir détails ci-dessous)
isCompanyboolOui, si 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é.

2.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.

1. 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 :

1.1 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 profil Marchand CentralPay (Merchant)
  • Du compte de paiement (Wallet)
  • Du profil utilisateur légal du profil Marchand CentralPay (BO User)
ℹ️ Ces entités sont accessibles immédiatement depuis vos outils de supervision (portail ou API).

1.2. 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.

1.3. 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.

2. 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 (Wallets) pour stocker et utiliser des valeurs numériques. Deux parcours complémentaires sont proposés :

  1. Création rapide d’un Wallet sans KYC (compte limité) : accessible immédiatement avec des plafonds réglementaires
  2. 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.

1. 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.

1.1. 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).

1.2. Étape 1 – Créer un Customer

Le Wallet doit être rattaché à un objet Customer représentant l’utilisateur final (voir Profils Clients)

1.3. Étape 2 – Créer un Wallet

  • POST /wallets

Champs obligatoires

ChampTypeDescriptionNote
customerIdUUIDIdentifiant du CustomerRequis sauf si merchantId est fourni
currencystring (3)Devise du Wallet (ex. "EUR")ISO 4217 – format 3 lettres

Champs optionnels

ChampTypeDescription
referencestringRéférence métier
activationDatedateDate d’activation
expirationDatedateDate d’expiration
additionalDataobjectDonnées personnalisées (JSON)

1.4. É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

2. Modifier un Wallet

  • POST /wallets/{walletId}

Ce service permet de mettre à jour certains attributs du Wallet sans le recréer.

Champs obligatoires

ChampTypeDescriptionNote
walletIdUUIDIdentifiant du Wallet à mettre à jourRequis dans l’URL et/ou le corps de requête

Champs optionnels

ChampTypeDescriptionNote
referencestringRéférence personnalisée du Wallet—
expirationDatedateDate d’expiration du WalletYYYY-MM-DD
activationDatedateDate d’activation du WalletYYYY-MM-DD
additionalDataobjectDonnées métier structurées (clé/valeur JSON)—
merchantIdUUIDPour rattacher un Wallet à un Merchant spécifiqueFacultatif – à ne pas confondre avec customerId

3. 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

ChampTypeDescriptionNote
walletIdUUID (36)Identifiant du WalletLe Wallet doit appartenir au Merchant connecté ou à l’un de ses sous-marchands

Description des champs

ChampTypeDescriptionNote
currencystringDevise du WalletISO 4217 (ex. EUR)
available[].amountintSolde disponible en centimesEx. : 10500 = 105,00 €
pending[].amountintSolde en attente (transactions en cours)—
referencestringRéférence du WalletFacultatif
additionalDataobjectDonnées personnaliséesJSON libre

4. 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

ChampTypeDescription
customerIdUUIDIdentifiant du Customer
currencystringDevise (ex. "EUR")

Paramètres optionnels

ChampTypeDescriptionNote
afterstringNe retourner que les Wallets créés après cette dateFormat ISO 8601
beforestringNe retourner que les Wallets créés avant cette dateFormat ISO 8601
limitstringNombre d’éléments par pageDéfaut : 10
pagestringIndex de la pageDéfaut : 1

5. 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.

1. Étape 1 – Créer un enrôlement

  • POST /merchant-enrollments

Vous devez inclure le walletId du Wallet limité existant.

Champs obligatoires

ChampTypeDescriptionNote
walletIdUUIDLien avec le Wallet ME à déplafonnerUUID valide
profile[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 ans
profile[place_of_birth][value]string (255)Lieu de naissance—
profile[country_of_birth][country]string (3)Pays de naissanceISO 3166-1 alpha-3
languagestring (3)"fr" ou "en"—
accountTypestring"BASIC"—
typestring"INDIVIDUAL"—
activitySectorUUID (36)Secteur d’activitéGET /api/nauth/enrollment-claim/activity-sector
feeScheduleUUID (36)Grille tarifairePOST /api/merchant-enrollment/fee-schedule
turnoverUUID (36)CA annuel attenduPOST /api/nauth/enrollment-claim/turnover
workflowDefinitionUUIDModèle de workflowfournie par CentralPay
profileWorkflowDefinitionUUIDModèle de profilfournie par CentralPay
workflowModestring"SEQUENTIAL"Requis
allowedEmailCommunicationbooleanConsentement à recevoir des emailstrue ou false

Champs facultatifs

ChampTypeDescription
sendClaimEmailbooleanEnvoi 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 interne
technicalContact, administrativeContact, financialContactstring(255)Contacts métiers
addSecurityReferencebooleanAffiche une référence sécurité (pour STANDARD, PARTNER, RESELLER)
hookUUIDHook technique
birthdayConfirmation[value]dateSi affilié à un agent

2. É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

ChampTypeObligatoireDescriptionNote
address[nameLine1]string✅ OuiNuméro et nom de rue—
address[locality]string✅ OuiVille de résidence—
address[postalCode]string✅ OuiCode postal—
address[country]string✅ OuiPays de résidenceISO 3166-1 alpha-3

Document d’identité

ChampTypeObligatoireDescriptionNote
identityDocument[type]string✅ OuiType de documentIDENTITY_CARD, PASSPORT, RESIDENCE_PERMIT, VISA, IDENTITY_DOCUMENT_RECEIPT
identityDocument[documents][0]fichier✅ OuiRecto ou scan principalJPG, JPEG ou PNG
identityDocument[documents][1]fichier✅ Oui, si IDENTITY_CARDVerso ou page complémentaireJPG, JPEG ou PNG
identityDocument[issuingCountry]string✅ OuiPays émetteurISO 3166-1 alpha-3
identityDocument[expiryDate]string❌ NonDate d’expirationFormat YYYY-MM-DD
identityDocument[checkId]string❌ NonID de contrôle (Onfido)—
identityDocument[documentNumber]string❌ NonNuméro du document—
identityDocument[mrzLine1]string❌ NonLigne MRZ 1—
identityDocument[mrzLine2]string❌ NonLigne MRZ 2—

Cas particuliers

ChampObligatoireConditionDescription
identityDocument[proofOfIdentityDocument]✅ Ouisi type = IDENTITY_DOCUMENT_RECEIPTJustificatif visuel du récépissé
identityDocument[proofOfIdentityDocuments][*]✅ OuiidemPlusieurs fichiers si applicable
identityDocument[proofOfIdentityDocumentExpiryDate]✅ Ouisi fichier proofOfIdentityDocument fourniFormat YYYY-MM-DD

Données bancaires (facultatif mais recommandé)

ChampTypeObligatoireDescriptionNote
iban[value]string❌ NonIBAN à vérifierFormat IBAN valide
bic[value]string❌ NonCode BIC/SWIFT—
ibanDocument[document]fichier❌ NonJustificatif bancaire (RIB, relevé)JPG, JPEG ou PNG

Données KYC complémentaires (riskData)

Tous les champs suivants sont requis sauf mention contraire.

ChampTypeObligatoireDescriptionNote
riskData[isPep]bool✅ OuiPersonne politiquement exposée ?défaut : false
riskData[isInSanctionList]bool✅ OuiAppartient à une liste de sanctions ?défaut : false
riskData[residentAlpha3Code]string✅ OuiPays de résidenceISO 3166-1 alpha-3
riskData[isHighRiskResident]bool✅ OuiPays de résidence à risque ?—
riskData[nationalityAlpha3Code]string✅ OuiNationalitéISO 3166-1 alpha-3
riskData[isHighRiskNationality]bool✅ OuiNationalité à risque ?—
riskData[isHighRiskMCCActivitySector]bool✅ OuiSecteur MCC à risque ?—
riskData[MCCActivitySector]int✅ OuiCode MCC (NAF ou secteur)—
riskData[monthlyLimit]int✅ OuiLimite mensuelle déclarée (en centimes)Ex. 150000 = 1500,00 €
riskData[monthlyLimitCurrencyAlphabeticCode]string✅ OuiDevise (ex. EUR)ISO 4217
riskData[isCrossBorderPayment]bool❌ NonPaiements transfrontaliers ?Défaut : true
riskData[declaredMonthlyRevenue]int❌ NonRevenus déclarés (en centimes)—
riskData[verifiedMonthlyRevenue]int✅ Oui, si full KYCRevenus vérifiés—

Documents complémentaires (si requis)

ChampTypeObligatoireDescriptionNote
proofOfAddressDocument[documents][0]fichier✅ Oui, si profil à risqueJustificatif de domicileJPG, JPEG ou PNG
incomeDocument[document]fichier✅ Oui, si full KYC requisJustificatif de revenus (1 doc)JPG, JPEG ou PNG
incomeDocument[documents][*]fichier✅ Oui, si full KYC requisPlusieurs fichiers possiblesJPG, JPEG ou PNG

Autres documents (si nécessaires à la levée de limite)

ChampTypeDescriptionNotes
additionalDocuments[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)

ChampTypeObligatoireDescription
metaDataJSON object✅ OuiMétadonnées libres, au format {"key": "value"} (peut être vide)

3. É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é

ChampTypeObligatoireDescriptionNote
identityDocument[type]string✅ OuiType de document à corrigerIDENTITY_CARD, PASSPORT, RESIDENCE_PERMIT, VISA, IDENTITY_DOCUMENT_RECEIPT
identityDocument[documents][0]fichier✅ OuiRecto du document (ou fichier unique)JPG, JPEG ou PNG
identityDocument[documents][1]fichier✅ Oui, si type = IDENTITY_CARDVerso de la CNIJPG, JPEG ou PNG
identityDocument[issuingCountry]string✅ Oui, si document transmisPays émetteurISO 3166-1 alpha-3

Document d’identité complémentaire (si requis)

ChampTypeObligatoireDescription
complementaryIdentityDocument[documents][0]fichier✅ Oui, si exigéScan ou photo supplémentaire
complementaryIdentityDocument[expiryDate]string✅ OuiDate d’expiration (YYYY-MM-DD)
complementaryIdentityDocument[documentNumber]string✅ OuiNuméro du document
complementaryIdentityDocument[mrzLine1]string✅ OuiMRZ ligne 1
complementaryIdentityDocument[mrzLine2]string✅ OuiMRZ ligne 2
complementaryIdentityDocument[issuingCountry]string✅ OuiPays émetteur (ISO alpha-3)

Documents de revenus

ChampTypeObligatoireDescription
incomeDocument[document]fichier✅ Oui, si requisFichier unique JPG/JPEG/PNG
incomeDocument[documents][*]fichier✅ Oui, si multiples attendusPlusieurs documents par index ([0], [1], etc.)

Compléments d’information personnelle

ChampTypeObligatoireDescription
profile[firstname][value]string❌ NonPrénom
profile[lastname][value]string❌ NonNom
profile[birthday][value]string❌ NonDate de naissance
profile[place_of_birth][value]string❌ NonLieu de naissance
profile[country_of_birth][country]string❌ NonPays de naissance (ISO 3166-1 alpha-3)

Correction d’adresse (si refusée)

ChampTypeObligatoireDescription
profile[address][nameLine1]string❌ NonAdresse – ligne 1
profile[address][postalCode]string❌ NonCode postal
profile[address][country]string❌ NonPays (ISO alpha-3)
profile[address][locality]string❌ NonVille

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.

ChampTypeObligatoireDescriptionNote
riskData[isPep]boolean✅ OuiPEP ?défaut : false
riskData[isInSanctionList]boolean✅ OuiSur une liste de sanctions ?défaut : false
riskData[residentAlpha3Code]string✅ OuiPays de résidenceISO alpha-3
riskData[isHighRiskResident]boolean✅ OuiPays de résidence à risque ?—
riskData[nationalityAlpha3Code]string✅ OuiNationalitéISO alpha-3
riskData[isHighRiskNationality]boolean✅ OuiNationalité à risque ?—
riskData[isHighRiskMCCActivitySector]boolean✅ OuiSecteur à risque ?—
riskData[MCCActivitySector]int✅ OuiCode MCC métier—
riskData[monthlyLimit]int✅ OuiLimite mensuelle (en centimes)[0 ; 190000]
riskData[monthlyLimitCurrencyAlphabeticCode]string✅ OuiDevise (ex. EUR)ISO 4217
riskData[isCrossBorderPayment]boolean❌ NonPaiements transfrontaliersdéfaut : true
riskData[declaredMonthlyRevenue]int❌ NonRevenus déclarés—
riskData[verifiedMonthlyRevenue]int✅ Oui, si full KYCRevenus vérifiés (centimes)

Documents additionnels (optionnels ou exigés)

ChampTypeObligatoireDescription
additionalDocuments[X]['type']string✅ Oui, si documents attendusType du justificatif
additionalDocuments[X]['documents'][X]fichier✅ OuiFichiers associés (JPG, JPEG, PNG)

Autres champs

ChampTypeObligatoireDescription
fullKycboolean❌ NonPermet d’imposer un KYC complet ou simplifié (true / false)

4. É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

ChampTypeObligatoireDescriptionNote
enrolmentIdUUID (36)✅ OuiIdentifiant 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

ChampTypeDescription
uuidUUIDIdentifiant unique de l’enrôlement
workflow.statusstringStatut du processus (ON_GOING, ACCEPTED, REFUSED)
workflow_modestring"SEQUENTIAL" ou "CONTINUAL"
workflow.activities[]tableauListe des activités (étapes) encore à compléter
profile[...]objetDonnées de profil déjà soumises, avec leur statut
conformity_statusstringÉtat de conformité global (ON_GOING, REVIEW, APPROVED, etc.)
created_atdatetimeDate de création de l’enrôlement
activity_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é

5. Schéma de validation KYC d’un compte de ME

Retours, statuts et webhooks

1. Codes de retour liés à la création de profil marchand

La création d’un profil 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 profil.

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 ➝

Transferts de 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 d’une plateforme
  • Le transfert, permettant le transfert des transactions vers ces comptes de paiement et de monnaie électronique

Selon le modèle de contractualisation 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 marchands participants

Pour connaitre votre modèle de partenariat, veuillez vous rapprocher de votre contact CentralPay.

Transfert indépendant

1. Créer un transfert (Create a Transfer)

La fonction Create a Transfer permet aux marchands mandataires (Agents ou DME) de transférer des fonds entre deux comptes de leurs marchands participants. Ce transfert peut être initié :

  • Par un Agent lorsque les comptes sont des comptes de paiement
  • Par un DME lorsque les comptes sont des comptes de monnaie électronique

1.1. Cas d’usage

Ce mécanisme permet par exemple :

  • À un Agent d’orchestrer des débits et des crédits de fonds entre lui et ses marchands participants, ou vers des comptes destinataires définis
  • À un DME d’opérer des transferts de monnaie électronique entre ses marchands participants (par exemple dans le cadre d’une place de marché C2C)

CentralPay reste en charge de l’exécution effective des opérations, dans le cadre de la relation contractuelle avec les marchands participants.

1.2. Paramètres requis

ChampTypeObligatoireDescription
destinationWalletIdUUID✅ OuiIdentifiant du compte Centralpay destinataire (appartenant à un marchand participant).
amountInteger (en cents)✅ OuiMontant du transfert. Doit être strictement supérieur à 0.
sourceIdUUID✅ Oui, si sourceType est renseignéIdentifiant de la source de fonds (ex. : transaction, virement, crédit, SDD).
sourceTypeEnum✅ Oui, si sourceId est renseignéSource du transfert : TRANSACTION, SCT_TRANSACTION, CREDIT, SDD.

1.3. Paramètres optionnels

ChampTypeDescription
emissionWalletIdUUIDCompte émetteur si différent du compte principal du marchand mandataire.
currencyCode ISODevise du transfert (si différente de celle du compte).
feeIntegerMontant de la commission prélevée par le marchand mandataire, 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 marchand mandataire (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.

1.4. Règles de validation

  • Le destinationWalletId doit correspondre à un compte valide d’un marchand participant du mandataire
  • Le sourceId ne peut être utilisé que si l’objet lié est dans un statut accepté (CAPTURE, CLEARED, etc.)
  • Le montant autorisé dépend du solde disponible ou des fonds liés à la source (transaction, virement, etc.)

2. Fonctions complémentaires liées aux transferts

Les marchands mandataires disposent de plusieurs fonctions de gestion post-création d’un transfert, leur permettant d’ajuster, consulter ou annuler une opération, sous conditions.

2.1. 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 :

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert à modifier.
merchantTransferIdString❌ NonRéférence marchand mandataire.
escrowDateDate ISO❌ NonNouvelle date d’exécution différée.
transferGroupString❌ NonRegroupement de transferts.
descriptionString❌ NonDescription libre (max 256 caractères).
additionalDataKey/Value❌ NonDonnées complémentaires.
metaDataJSON❌ NonMétadonnées structurées.

La modification de la date d’escrow est notamment utile dans les flux conditionnés (ex : marketplace, délais de rétractation…).

2.2. 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 compte.

Paramètres :

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert à annuler.

⚠️ Une fois que les fonds sont disponibles (statut TRANSFERRED), cette fonction n’est plus accessible. Il faudra alors utiliser un TransferReversal.

2.3. Consulter un transfert (Retrieve a Transfer)

Permet d’obtenir l’ensemble des détails d’un transfert via son identifiant CentralPay.

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert.

2.4. Rechercher plusieurs transferts (List Transfers)

Permet de rechercher une liste de transferts selon plusieurs critères. Tous les paramètres sont optionnels.

ParamètreTypeDescription
merchantTransferIdString (100)Référence marchand mandataire.
destinationWalletIdUUIDCompte 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.

3. Retourner un transfert exécuté (Transfer Reversal)

Une fois un transfert exécuté (statut 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 marchands mandataires (Agent pour les comptes de paiement, DME pour les comptes de monnaie électronique), et doit respecter les règles de disponibilité des fonds.

3.1. Conditions d’utilisation

Le transfert initial doit :

  • Être dans le statut TRANSFERRED
  • Avoir des fonds disponibles dans le compte 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 compte destinataire
  • Inférieur ou égal à la somme initialement transférée
  • Diminué des éventuels reversals déjà effectués sur le transfert concerné

3.2. Créer un TransferReversal

Permet de retourner un montant vers le compte émetteur d’origine.

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert d’origine.
amountInteger✅ OuiMontant à rembourser (en centimes).
merchantTransferReversalIdString❌ NonRéférence marchand mandataire pour le suivi.
refundFeeBoolean❌ NonIndique si les frais du transfert initial sont remboursés (par défaut : true).
feeInteger❌ NonMontant des frais associés au reversal.
descriptionString❌ NonTexte libre explicatif (max. 256 caractères).
escrowDateDate ISO❌ NonDate d’exécution différée si applicable.
additionalDataKey/Value❌ NonPaires 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 compte source.

Règles importantes :

  • L’opération est visible dans les mouvements du compte (débit du compte destinataire, crédit du compte 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é)

4. 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.

4.1. Modifier un TransferReversal (Update)

Permet de modifier certaines informations sur un TransferReversal déjà créé.

ChampTypeObligatoireDescription
transferReversalIdUUID✅ OuiIdentifiant du TransferReversal à modifier
merchantTransferReversalIdString❌ NonRéférence marchand mandataire pour le suivi
descriptionString❌ NonTexte explicatif libre (256 caractères max)
escrowDateDate (ISO)❌ NonNouvelle date différée d’exécution, si applicable
additionalDataKey/Value❌ NonPaires clé/valeur pour usage métier spécifique

Cette fonction est accessible uniquement au niveau PARTNER ou supérieur.

4.2. Consulter un TransferReversal (Retrieve)

Permet de consulter les détails d’un TransferReversal à partir de son identifiant.

ChampTypeObligatoireDescription
transferReversalIdUUID✅ OuiIdentifiant du TransferReversal à consulter

L’objet retourné contient l’intégralité des informations métier, y compris : montant, date, statut, compte concerné, et historique de l’opération.

4.3. Rechercher des TransferReversals (List)

Permet d’interroger l’historique des TransferReversal selon plusieurs critères.

ParamètreTypeObligatoireDescription
merchantTransferReversalIdString❌ NonRéférence marchand mandataire
afterDate ISO❌ NonRetourne les éléments créés après cette date
beforeDate ISO❌ NonRetourne les éléments créés avant cette date
limitInteger❌ NonNombre d’éléments à retourner (par défaut : 10)
pageInteger❌ NonIndex 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.

1. 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

2. Paramétrer un transfert dans une transaction

Dans les quatre 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 :

ChampTypeObligatoireDescription
destinationWalletIdUUID✅ OuiCompte CentralPay bénéficiaire. Doit appartenir à un marchand participant autorisé.
amountInteger✅ OuiMontant du transfert en centimes.
currencyString❌ NonDevise du transfert (si différente de la devise de la transaction).
merchantTransferIdString❌ NonRéférence partenaire.
feeInteger❌ NonFrais applicables (prélevés sur le montant brut).
escrowDateDate ISO❌ NonDate différée d’exécution (si applicable).
transferGroupString❌ NonIdentifiant de groupe pour les suivis agrégés.
descriptionString❌ NonLibellé du transfert visible sur les relevés.
additionalDataKV pairs❌ NonDonné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é.

Versement sortant pour tiers

Le versement sortant 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 participant, en tant que mandataire CentralPay (Agent ou DME). Les partenaires (technique ou intégrateur) n’ont pas accès à cette fonction.

1. Objectif et périmètre

Ce service permet de :

  • Déclencher des versements manuels ou automatisés pour des marchands participants
  • Cibler un compte bancaire autorisé par le marchand participant
  • Utiliser un compte CentralPay comme source des fonds

Le partenaire régulé reste à l’initiative technique du versement, 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

2.1. L’API CentralPay

Endpoint : /payout/byThirdParty
➡️ Voir détails ci-dessous.

2.2. Le Portail Marchand CentralPay

Accessible pour les comptes disposant des droits adéquats (Agent ou DME).

  1. Accéder à Comptes liés
  2. Sélectionner le marchand concerné
  3. Accéder à l’onglet Comptes bancaires
  4. 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 marchand participant.

3.1. Limites d’usage

  • 1 versement / jour / marchand participant / devise
  • Compte bancaire cible validé par le marchand participant
  • Versement uniquement sur fonds disponibles

3.2. Paramètres API (BODY)

ParamètreTypeRequisDescription
currencyISO 4217✅ OuiDevise du versement (doit correspondre au compte bancaire).
destinationBankAccountIdUUID✅ OuiCompte bancaire bénéficiaire (lié au marchand 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 versements

4.1. Récupérer un payout

Endpoint : /payout/byThirdParty/retrieve
Paramètre : payoutId (UUID)

4.2. Lister les payouts

Endpoint : /payout/byThirdParty/list
Paramètre : walletId (UUID)

4.3. Statuts possibles :

StatutSignification
PENDINGVersement en cours de traitement
PAIDVersement exécuté avec succès
CANCELVersement 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 versements
  • 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 versement 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 CentralPay pour WooCommerce (WordPress).

ℹ️ La plateforme CentralPay prend en charge différents moyens (carte, virement et prélèvement SEPA, initiation de paiement) et modes de paiement (paiement en une fois, abonnement, en plusieurs fois, etc.). Ce plugin permet uniquement l'encaissement de transactions cartes unitaires. 

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

  • Pour WooCommerce ➝ Télécharger l’archive ZIP du plugin CentralPay

⚠️ Veillez à ne pas la décompresser manuellement.

2. Installation sur WordPress

  1. Connectez-vous à votre interface d’administration WordPress
  2. Allez dans Extensions > Ajouter
  3. Cliquez sur Téléverser une extension
  4. Sélectionnez le fichier centralpay220.zip et cliquez sur Installer maintenant
  5. Une fois l’installation terminée, cliquez sur Activer l’extension

3. Configuration du module

  1. Allez dans WooCommerce > Réglages > Paiements
  2. Cliquez sur CentralPay pour accéder à la configuration
  3. Renseignez les champs suivants puis cliquez sur Enregistrer les modifications :
ChampDescriptionAccès à la donnée
Identifiant marchandIl s’agit de votre Merchant Public Key. Ne pas confondre avec le Merchant UUID.Portail Marchand CentralPay > Administration > Technique > Copier « Merchant Public Key »
Login APIIdentifiant de votre utilisateur API CentralPayPortail Marchand CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »
Mot de passe APIMot de passe de votre utilisateur API CentralPayPortail Marchand 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 Marchand 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 profil marchand CentralPay de test)./
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 :

  1. Accédez à :
    Production : https://backoffice.centralpay.net/admin/hook/
    Test : https://test-backoffice.centralpay.net/admin/hook/
  2. 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.)
  3. 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 profil marchand de production.

5. Personnalisation du logo

Vous pouvez également personnaliser l’interface de paiement en ajoutant le logo de votre site via le Backoffice :

  1. Accédez à : https://backoffice.centralpay.net/admin/point_of_sale/
  2. Dans le détail de votre Point de Vente, cliquez sur Modifier
  3. 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 profil marchand CentralPay de test et renseigner les identifiants de ce profil 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

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

  1. Connectez-vous au back-office Prestashop
  2. Menu Modules > Modules
  3. Cliquez sur « Ajouter un nouveau module »
  4. Chargez l’archive .zip puis cliquez sur « Installer »

Prestashop v1.7

  1. Connectez-vous à l’administration de Prestashop
  2. Menu Modules > Modules Manager > Upload a module
  3. Déposez l’archive .zip ou cliquez pour la charger
  4. 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 Marchand CentralPay > Administration > Technique > Copier « Merchant Public Key »
Login APIIdentifiant de votre utilisateur API CentralPayPortail Marchand CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »
Secret Key (passeword API)Clé secrète API (à ne jamais diffuser)Portail Marchand 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 Marchand 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 :

  1. Il est redirigé vers une page sécurisée (hébergée ou intégrée)
  2. Il saisit ses informations de carte bancaire
  3. Le paiement est autorisé par la banque (3D Secure inclus)
  4. La commande est validée dans Prestashop avec le statut défini
  5. 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 Marchand > Aide & Support
  • Ou directement via support.centralpay.com

Magento

1. Téléchargement du module

  • Pour Magento ➝ Télécharger le plugin (v1.0)
ℹ️ Ce module est compatible avec Magento 1.7+

2. Installation du plugin

2.1 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)

2.2. 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.

2.3. 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.

3.1. Accéder à la configuration

Dans le menu d’administration Magento, rendez-vous dans : Stores Configuration Sales Payment Methods CentralPay

3.2. Paramètres à renseigner

Champ dans MagentoDescriptionObligatoireAccès à la donnée
Activer CentralPayActive le module dans l’environnement Magento.✅ OuiMagento
TitreNom du moyen de paiement visible côté client.✅ OuiMagento
Identifiant Marchand (merchantLogin)Identifiant d’API fourni par CentralPay.✅ OuiPortail Marchand CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »
Mot de passe API (merchantPassword)Mot de passe API associé à l’identifiant.✅ OuiPortail Marchand 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.✅ OuiPortail Marchand CentralPay > Administration > Technique > Copier « Merchant Public Key »
ID du point de venteIdentifiant unique de votre point de vente (UUID)❌ NonPortail Marchand 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.❌ NonMagento
Mode Test (sandbox)Permet d’utiliser l’environnement de test CentralPay.❌ NonMagento
Commande en attenteStatut Magento utilisé si le paiement est en cours ou en attente (ex. : 3DS).❌ NonMagento
Commande validéeStatut Magento utilisé si le paiement est accepté.❌ NonMagento

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

  1. Le client ajoute ses articles au panier et passe à la caisse
  2. Au moment du paiement, il choisit CentralPay comme méthode de paiement
  3. Il est redirigé vers l’interface de paiement CentralPay sécurisée
  4. Une fois le paiement effectué (ou refusé), il est redirigé vers votre site Magento
  5. 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.

Bonnes pratiques

Déclaration TVA par pays

CentralPay n’identifie pas le pays TVA des acheteurs : cette responsabilité incombe au marchand. Pour justifier correctement vos déclarations, collectez le pays de l’acheteur, conservez vos preuves, et transmettez‑les à CentralPay afin qu’elles figurent dans vos exports et historiques de transaction.

Public cible : marchands B2C vendant des biens ou services dans plusieurs pays de l’Union européenne.

1) Principe général

La TVA applicable dépend du pays de résidence de l’acheteur (consommateur final), non du pays du marchand ni du moyen de paiement utilisé.

Le marchand doit donc déterminer, conserver et déclarer le pays de son client afin d’appliquer la bonne TVA. CentralPay n’a ni la légitimité réglementaire ni la fiabilité technique pour déterminer ce pays à sa place.

En clair : vous êtes responsable de collecter et de stocker les informations nécessaires à la détermination du pays TVA.

2) Pourquoi CentralPay ne peut pas déterminer le pays du client

Les indices techniques accessibles à un PSP (carte, IP, etc.) ne permettent pas une identification fiable du pays de l’acheteur :

  • Pays BIN (carte) : peu fiable pour la TVA. Les cartes de banques en ligne sont souvent émises dans un autre pays que celui du détenteur.
  • Pays IP : faussé en cas d’utilisation de VPN, proxy, mobile ou cloud.
  • Payeur ≠ Acheteur : la personne qui paie n’est pas forcément celle soumise à la TVA (ex. carte d’un proche ou d’un employeur).

C’est pourquoi CentralPay ne réalise aucune analyse pour identifier le pays du client. Seul le marchand détient l’information fiscale valide.

3) Ce que vous devez faire en tant que marchand

3.1 Collecter le pays de l’acheteur

  • Intégrez la sélection du pays de facturation dans votre tunnel de commande.
  • Transmettez ces informations à CentralPay via l’API au moment de la transaction.

3.2 Transmettre le pays à CentralPay

Type de donnéeChamp à renseignerDescription
Pays de l’acheteur (obligatoire)Customer > countryCode ISO 3166‑1 alpha‑2 du pays du client.
⚠️ Si vous n’alimentez pas Customer.country, CentralPay ne peut pas afficher ni exporter le pays de vos acheteurs. Vos exports ne permettront donc pas de justifier vos déclarations TVA.

4) Ce que CentralPay fournit dans les exports

CentralPay met à disposition des exports comportant :

ColonneSourceUsage
Customer > countryValeur transmise par le marchand via Customer > countryPreuve déclarative du marchand, à utiliser pour la TVA.
Transaction > end_user_ipIP de l’acheteurIndice technique non probant.
Transaction > card_countryPays de la carte utilisée par l’acheteurIndice technique non probant.
sctTransaction > ibanIBAN de l’acheteur par virement bancaire (contenant le code pays)Indice technique non probant.
bankAccount > ibanIBAN de l’acheteur par prélèvement SEPA (contenant le code pays)Indice technique non probant.

Des exports personnalisés peuvent être mis en place si vous souhaitez inclure d’autres champs ou formats (SFTP, e‑mail…).

5) Bonnes pratiques de conformité TVA

  1. Toujours collecter le pays de facturation côté front (champ obligatoire ou déduit du profil client).
  2. Croiser au moins deux preuves non contradictoires pour chaque commande.
  3. Gérer les divergences : si les indices diffèrent (ex. IP ≠ carte), demandez un justificatif avant de facturer.
  4. Enregistrer les preuves pendant au moins 10 ans (durée légale pour les services numériques UE).
  5. Vous enregistrer à l’OSS/IOSS si vous vendez à des consommateurs dans plusieurs pays de l’UE.
  6. Relier facture, transaction et preuves pour chaque vente.

6) Exemples de cas

SituationDonnées collectéesAction recommandée
Adresse = FR, BIN = FRDeux preuves concordantesFacturez avec TVA FR
Adresse = FR, BIN = DE, IP = DEDivergenceDemandez un justificatif avant facturation
Aucun pays collectéDonnée manquanteNon‑conformité potentielle – corriger votre parcours

7) FAQ

CentralPay peut‑il déterminer le pays à ma place ?
Non. Nous exposons des indices (pays BIN, etc.), mais la décision et la preuve fiscale relèvent de vous.

Puis‑je me baser uniquement sur le BIN ?
Non, le BIN n’est pas une preuve fiable. Utilisez toujours le pays de facturation comme référence principale.

Comment vérifier que mes exports sont complets ?
Vérifiez la présence de buyer_country_declared dans vos fichiers. Si le champ est vide, votre front n’a pas transmis le pays.

Merchant Initiated Transaction (MIT)

Introduction

Une Merchant-Initiated Transaction (MIT) est un paiement initié sans interaction du titulaire de la carte, réalisé dans le cadre d’un contrat préexistant entre le marchand et son client. Ce modèle s’applique aux facturations récurrentes, variables ou usage-based.

Dans le cadre DSP2, une MIT peut être exemptée d’authentification SCA, à condition que :

  1. Le marchand dispose d’un mandat contractuel valide,
  2. Une transaction initiale CIT authentifiée (3DS) ait été réalisée.

Les MIT reposent donc sur une authentification antérieure réussie associée à un Customer et à un cardToken.

Documentation 3DS 2.2 (général)

1. CIT et MIT : quelle différence ?

Customer-Initiated Transaction (CIT)

Une transaction CIT est initiée par le titulaire de la carte. Elle implique généralement une authentification 3DS.

Rôles de la CIT initiale dans un flux MIT :

  • authentifier la carte et le porteur,
  • valider la création d’un Customer,
  • permettre la génération d’un cardToken,
  • servir de référence aux MIT futures.

Merchant-Initiated Transaction (MIT)

Une MIT est déclenchée par le marchand sans intervention du porteur, conformément au mandat conclu avec le client.

Cas d’usage :

  • facturation mensuelle à montant variable,
  • frais ponctuels supplémentaires,
  • utilisation de type usage-based.

2. Conditions nécessaires pour effectuer des MIT

Deux conditions doivent être réunies :

2.1. Exécution d’une CIT initiale authentifiée (3DS)

Cette CIT doit être :

  • authentifiée via 3DS,
  • capturée,
  • associée à un Customer et à un cardToken.

2.2. Existence d’un mandat commercial valide

Le mandat doit couvrir :

  • la nature des services,
  • le montant futur (fixe ou variable),
  • les conditions et fréquences de facturation,
  • l’accord explicite du client sur les paiements ultérieurs.
Documentation Formulaire de paiement CustomForm

3. Montant de la CIT initiale

Il est parfaitement conforme de réaliser une CIT initiale avec un montant symbolique (par exemple 1 € ou 0,01 €) pour :

  • authentifier la carte,
  • valider le contrat commercial,
  • générer un token utilisable pour des MIT ultérieures.

La CIT initiale n’a pas à couvrir le montant réel des MIT futures.

Remarque : Les transactions à 0€ type “vérification / empreinte carte authentifiée” fonctionnent pour certains schémas mais n’est pas universellement supporté par les banques partenaires, d’où la recommandation d’utiliser une transaction CIT authentifiée.
Également, bien que la CIT symbolique soit techniquement acceptable, l’émetteur peut — en fonction de son profil de risque, du schéma ou de l’ancienneté — décider de déclencher un challenge 3DS lors d’une MIT ultérieure."

4. Durée de validité d’une CIT pour générer des MIT

Il n’existe pas de limite imposée par CentralPay.
La durée de validité dépend exclusivement :

4.1. De l’ACS émetteur (banque du porteur)

Les pratiques observées dans le secteur :

  • conservation de la preuve d’authentification : ≈ 13 mois,
  • pour certains émetteurs : jusqu’à 36 mois.

Après expiration de la preuve 3DS, les MIT peuvent faire l’objet :

  • de soft declines,
  • de demandes d’authentification,
  • de rejets « SCA required ».

4.2. Du recours au 3DS 2.2 – 3RI

Dans certains cas, le marchand peut renouveler une authentification côté émetteur via 3RI, afin de prolonger la durée de validité du mandat.

Disponibilité schémas :

  • CB : support opérationnel,
  • Mastercard : support opérationnel,
  • Visa : support en cours d’évolution, non fiable à date.
Documentation 3DS 2.2 – 3RI

5. Une MIT peut-elle nécessiter une authentification 3DS ?

Oui. Une MIT peut être exceptionnellement requalifiée en CIT par l’émetteur (ACS), notamment dans les cas suivants :

  • ancienneté élevée de la CIT initiale,
  • suspicion de fraude,
  • règles RBA de l’émetteur,
  • montants atypiques ou plus élevés que prévu.

Réduire le risque de demande 3DS

  • utiliser 3RI lorsque supporté,
  • conserver un cadre contractuel clair,
  • refaire une CIT en cas d’échecs répétés.
Pour en savoir plus FAQ 3DS 2.2

6. Transactions MIT ou service d’abonnement de CentralPay : comment choisir ?

Il n’est pas obligatoire de passer par le module Subscription pour effectuer des MIT.

6.1. Utiliser le service d’abonnement si :

  • les montants sont fixes,
  • la fréquence est récurrente,
  • la logique est celle d’un abonnement.

6.2. Utiliser les transactions MIT si :

  • les montants sont variables (usage-based model),
  • les facturations sont ponctuelles,
  • les débits doivent être initiés par le marchand.
Documentation Transaction carte récurrente

7. Implémentation API : effectuer une transaction MIT

7.1. CIT initiale

Lors de la transaction CIT :

  • création d’un customer,
  • génération d’un cardTokenId,
  • authentification 3DS.

7.2. Transaction MIT

Chaque transaction MIT doit inclure :

  • customerId,
  • cardTokenId (ou cardId),
  • indication du contexte MIT dans les paramètres de transaction,
  • les métadonnées utiles pour rattacher la MIT à la CIT initiale.
Documentation Transaction carte récurrente > Abonnement depuis des transactions successives

8. Bonnes pratiques pour fiabiliser un flux MIT

8.1. Techniques

  • déclencher les MIT peu après la facturation,
  • regrouper les paiements lorsque pertinent,
  • utiliser 3RI pour rafraîchir l’authentification,
  • conserver un cardToken stable.

8.2. Gestion des refus

  • en cas de code indiquant « SCA required »,
    proposer au client une nouvelle CIT (paiement manuel),
    recréer un mandat MIT.

8.3. Contractuelles

  • conserver la preuve du mandat : CGV, logs d’acceptation, contrat, page d’information client.

9. FAQ MIT

Une CIT de 1 € suffit-elle pour un mandat MIT ?

Oui, si elle est authentifiée 3DS.

Combien de temps une CIT permet-elle de générer des MIT ?

Cela dépend de l’ACS : généralement 13 à 36 mois.

Une MIT peut-elle déclencher 3DS ?

Oui, si l’ACS l’exige (RBA, ancienneté de la CIT, montants atypiques).

Dois-je utiliser Subscription pour des montants variables ?

Non, le service subscription est généralement adapté à des modèles d’abonnements fixes. Réaliser une transaction CIT initiale + des transactions MIT ad-hoc est le modèle recommandé.

Que faire si le client change de carte ?

Une nouvelle CIT est nécessaire pour générer un nouveau token.

Verification of Payee (VoP)

À compter du 9 octobre 2025, la réglementation européenne impose aux banques de mettre en place la Verification of Payee (VoP) pour tous les virements SEPA (règlement IPR 2024/886, art. 5c).

L’objectif est de protéger les consommateurs contre les fraudes à l’IBAN.

1. Fonctionnement

Lorsqu’un virement est initié, la banque du payeur doit vérifier que le nom du bénéficiaire saisi correspond à celui associé à l’IBAN. Le résultat de cette vérification est affiché au payeur :

  • MATCH : correspondance exacte
  • CLOSE MATCH : correspondance partielle (ex. faute de frappe, abréviation, particule)
  • NO MATCH : aucune correspondance
  • CHECK NOT POSSIBLE : vérification impossible
⚠️ Le payeur reste libre de poursuivre ou non le virement.
Cependant, un NO MATCH ou un CLOSE MATCH augmentent fortement le risque d’abandon de la transaction.

2. Impacts pour les marchands

Afin d’éviter les rejets ou abandons de virements, il est essentiel de vérifier la cohérence du nom affiché à vos clients avec la raison sociale enregistrée sur votre compte CentralPay.

Cas fréquents :

  • Nom commercial / enseigne / marque → Si vous êtes connus sous un autre nom que votre raison sociale, transmettez-nous ces dénominations. Nous pourrons les déclarer manuellement afin d’améliorer le taux de correspondance.
  • vIBAN CentralPay → Vérifiez que vos interfaces et supports affichent bien la raison sociale du titulaire CentralPay associé à l’IBAN.
  • SmartForm (PaymentRequest) → Aucune action nécessaire : CentralPay affiche automatiquement le titulaire du compte.
  • Devis, factures, communications externes → Assurez-vous que la raison sociale présentée est identique à celle du compte bancaire communiqué à vos clients.
À retenir : 
- Vérifiez que votre raison sociale est correctement enregistrée et communiquée.
- Transmettez à CentralPay vos noms commerciaux ou marques si vous souhaitez les faire reconnaître.
- Harmonisez vos documents (factures, devis, emails) avec le nom officiel de votre compte bancaire.
- Informez vos clients :
* Lorsqu’ils effectuent un virement, le nom du bénéficiaire saisi doit correspondre strictement à votre raison sociale.
* En cas d’alerte de type Close match ou No match dans leur application bancaire, invitez-les à vérifier le nom renseigné.

FAQ - Verification Of Payee

À compter du 9 octobre 2025, la Vérification du bénéficiaire (VoP – Verification of Payee) deviendra obligatoire pour tous les virements SEPA, qu’ils soient classiques ou instantanés. Ce dispositif, gratuit pour les utilisateurs, vise à renforcer la sécurité des paiements en réduisant à la fois :

  • les fraudes au virement (notamment les fraudes au faux RIB),
  • les erreurs de saisie d’IBAN ou de nom du bénéficiaire.

Concrètement, avant l’exécution d’un virement, l’établissement du payeur doit interroger l’établissement du bénéficiaire pour vérifier la concordance entre l’IBAN et le nom du titulaire du compte. En cas de discordance, une alerte est affichée au payeur, qui conserve la liberté de poursuivre ou non l’opération.

Enjeux du dispositif

  • Protection des utilisateurs : limiter les virements mal orientés ou frauduleux.
  • Sécurité du système de paiement SEPA : accompagner le déploiement du virement instantané en Europe.
  • Confiance des entreprises et des particuliers : améliorer la transparence et la fiabilité des paiements.
  • Harmonisation européenne : instaurer une norme commune pour tous les PSP (banques, établissements de paiement et de monnaie électronique).

Base légale

  • Règlement (UE) 2021/1230 sur les virements instantanés en euros et la modification du règlement (UE) n° 260/2012 (SEPA), qui introduit l’obligation de VoP.
  • Règlement (UE) 2015/847 sur les informations accompagnant les transferts de fonds, qui impose la transmission exacte des informations sur le payeur et le bénéficiaire.
  • Code monétaire et financier :
    • Articles L.133-6 et L.133-7 relatifs à l’autorisation des opérations de paiement et à l’exactitude des informations,
    • Articles L.561-5 et suivants relatifs aux obligations de vigilance en matière de LCB-FT.
  • Doctrine de l’ACPR, qui dans plusieurs décisions a sanctionné l’insuffisance de dispositifs de vérification et de correspondance entre l’identité du client et son compte

Foire aux questions (FAQ)

1. Qu’est-ce que la VoP ?

La Vérification de l’Ordre de Paiement (VoP) est un service réglementaire instauré au niveau européen.
Elle permet de comparer automatiquement le nom du bénéficiaire d’un virement avec l’IBAN renseigné par le payeur, avant l’exécution du virement.
Objectif : renforcer la sécurité des paiements et réduire les fraudes (notamment fraude au faux RIB).

2. Qui est concerné ?

  • Les payeurs : particuliers ou entreprises qui initient un virement.
  • Les bénéficiaires : toute personne physique ou morale recevant des virements (vous, en tant que client CentralPay).
  • Les prestataires de services de paiement (PSP) : banques, établissements de paiement ou de monnaie électronique, qui doivent intégrer la VoP dans leurs systèmes.

3. Comment fonctionne la VoP concrètement ?

Lorsqu’un virement est initié :

  1. Le payeur saisit l’IBAN et le nom du bénéficiaire.
  2. Sa banque interroge le PSP du bénéficiaire (via un canal sécurisé) pour vérifier la concordance entre l’IBAN et le nom enregistré dans la base du bénéficiaire.
  3. La réponse est renvoyée au PSP du payeur et affichée au payeur.

4. Quels résultats peuvent apparaître ?

Trois cas sont possibles :

  • Correspondance exacte : l’IBAN et le nom concordent → le virement peut être initié sans alerte.
  • Correspondance partielle : l’IBAN correspond mais le nom est différent (fautes de frappe, abréviation, orthographe différente). Le payeur reçoit un avertissement et peut :
    • corriger le nom,
    • ou confirmer qu’il s’agit bien du bénéficiaire attendu.
  • Absence de correspondance : l’IBAN et le nom ne correspondent pas → le payeur reçoit une alerte forte. Il peut annuler ou décider de poursuivre en acceptant le risque.

Est-ce que la VoP bloque un virement ?

Non. La VoP ne bloque pas l’exécution d’un virement. Elle fournit une information supplémentaire au payeur qui reste libre de valider ou non l’opération.
Toutefois, certaines banques peuvent paramétrer des règles internes de blocage en cas de discordance totale.

Quels échanges ont lieu entre banques et PSP ?

  • Le PSP du bénéficiaire (ex. CentralPay) conserve dans sa base le nom exact du titulaire du compte.
  • Lors d’une requête VoP, il répond par un code standardisé indiquant : correspondance, correspondance partielle ou absence de correspondance.
  • Ces échanges sont sécurisés, tracés et limités aux seules données nécessaires, conformément au Règlement (UE) 2015/847 sur l’accompagnement des virements.
  • Aucune autre donnée personnelle (adresse, documents KYC, etc.) n’est transmise.

Quels sont les avantages de la VoP ?

  • Pour le payeur : réduction des risques de fraude au virement, détection des erreurs de saisie.
  • Pour le bénéficiaire : limitation des retards de paiement liés aux erreurs, sécurisation de l’image vis-à-vis de ses clients.
  • Pour le système financier : meilleure prévention des fraudes et conformité avec les standards européens.

Que dois-je faire en tant que bénéficiaire CentralPay ?

  • Communiquer à vos clients l’IBAN correct et le nom exact enregistré auprès de CentralPay (raison sociale complète, sans abréviation).
  • Vérifier que vos factures, contrats et supports incluent toujours les mêmes coordonnées bancaires.
  • En cas de changement de dénomination sociale ou d’utilisation d’un nom commercial, informer rapidement vos clients et CentralPay pour mettre à jour les données.

Que se passe-t-il en cas de non-concordance fréquente ?

Si vos clients rencontrent souvent des alertes VoP lors de virements, cela peut indiquer que vos coordonnées bancaires ne sont pas communiquées de façon homogène.

CentralPay peut vous accompagner pour réviser et harmoniser vos informations de paiement afin d’éviter les frictions.

Illustration du VoP par le CNMP

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

Webhooks

Les webhooks permettent d’adresser des notifications HTTP sur les URL de votre choix en fonction des évènements (events) qui surviennent sur votre profil Marchand 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’un évènement intervient sur votre profil Marchand CentralPay. Par exemple, une transaction réussie ou échouée, la création d’un nouvel abonnement (subscription), 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

Transferts de paiements

Articles

  • Informations générales
  • Transfert indépendanttransfer / transferReversal
  • Transfert via Transaction ou PaymentRequesttransaction / paymentRequest
  • Versement sortant 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 d’une plateforme
  • Le transfert, permettant le transfert des transactions vers ces comptes de paiement et de monnaie électronique

Selon le modèle de contractualisation 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 marchands participants

Pour connaitre votre modèle de partenariat, veuillez vous rapprocher de votre contact CentralPay.

Transfert indépendant

1. Créer un transfert (Create a Transfer)

La fonction Create a Transfer permet aux marchands mandataires (Agents ou DME) de transférer des fonds entre deux comptes de leurs marchands participants. Ce transfert peut être initié :

  • Par un Agent lorsque les comptes sont des comptes de paiement
  • Par un DME lorsque les comptes sont des comptes de monnaie électronique

1.1. Cas d’usage

Ce mécanisme permet par exemple :

  • À un Agent d’orchestrer des débits et des crédits de fonds entre lui et ses marchands participants, ou vers des comptes destinataires définis
  • À un DME d’opérer des transferts de monnaie électronique entre ses marchands participants (par exemple dans le cadre d’une place de marché C2C)

CentralPay reste en charge de l’exécution effective des opérations, dans le cadre de la relation contractuelle avec les marchands participants.

1.2. Paramètres requis

ChampTypeObligatoireDescription
destinationWalletIdUUID✅ OuiIdentifiant du compte Centralpay destinataire (appartenant à un marchand participant).
amountInteger (en cents)✅ OuiMontant du transfert. Doit être strictement supérieur à 0.
sourceIdUUID✅ Oui, si sourceType est renseignéIdentifiant de la source de fonds (ex. : transaction, virement, crédit, SDD).
sourceTypeEnum✅ Oui, si sourceId est renseignéSource du transfert : TRANSACTION, SCT_TRANSACTION, CREDIT, SDD.

1.3. Paramètres optionnels

ChampTypeDescription
emissionWalletIdUUIDCompte émetteur si différent du compte principal du marchand mandataire.
currencyCode ISODevise du transfert (si différente de celle du compte).
feeIntegerMontant de la commission prélevée par le marchand mandataire, 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 marchand mandataire (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.

1.4. Règles de validation

  • Le destinationWalletId doit correspondre à un compte valide d’un marchand participant du mandataire
  • Le sourceId ne peut être utilisé que si l’objet lié est dans un statut accepté (CAPTURE, CLEARED, etc.)
  • Le montant autorisé dépend du solde disponible ou des fonds liés à la source (transaction, virement, etc.)

2. Fonctions complémentaires liées aux transferts

Les marchands mandataires disposent de plusieurs fonctions de gestion post-création d’un transfert, leur permettant d’ajuster, consulter ou annuler une opération, sous conditions.

2.1. 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 :

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert à modifier.
merchantTransferIdString❌ NonRéférence marchand mandataire.
escrowDateDate ISO❌ NonNouvelle date d’exécution différée.
transferGroupString❌ NonRegroupement de transferts.
descriptionString❌ NonDescription libre (max 256 caractères).
additionalDataKey/Value❌ NonDonnées complémentaires.
metaDataJSON❌ NonMétadonnées structurées.

La modification de la date d’escrow est notamment utile dans les flux conditionnés (ex : marketplace, délais de rétractation…).

2.2. 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 compte.

Paramètres :

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert à annuler.

⚠️ Une fois que les fonds sont disponibles (statut TRANSFERRED), cette fonction n’est plus accessible. Il faudra alors utiliser un TransferReversal.

2.3. Consulter un transfert (Retrieve a Transfer)

Permet d’obtenir l’ensemble des détails d’un transfert via son identifiant CentralPay.

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert.

2.4. Rechercher plusieurs transferts (List Transfers)

Permet de rechercher une liste de transferts selon plusieurs critères. Tous les paramètres sont optionnels.

ParamètreTypeDescription
merchantTransferIdString (100)Référence marchand mandataire.
destinationWalletIdUUIDCompte 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.

3. Retourner un transfert exécuté (Transfer Reversal)

Une fois un transfert exécuté (statut 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 marchands mandataires (Agent pour les comptes de paiement, DME pour les comptes de monnaie électronique), et doit respecter les règles de disponibilité des fonds.

3.1. Conditions d’utilisation

Le transfert initial doit :

  • Être dans le statut TRANSFERRED
  • Avoir des fonds disponibles dans le compte 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 compte destinataire
  • Inférieur ou égal à la somme initialement transférée
  • Diminué des éventuels reversals déjà effectués sur le transfert concerné

3.2. Créer un TransferReversal

Permet de retourner un montant vers le compte émetteur d’origine.

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert d’origine.
amountInteger✅ OuiMontant à rembourser (en centimes).
merchantTransferReversalIdString❌ NonRéférence marchand mandataire pour le suivi.
refundFeeBoolean❌ NonIndique si les frais du transfert initial sont remboursés (par défaut : true).
feeInteger❌ NonMontant des frais associés au reversal.
descriptionString❌ NonTexte libre explicatif (max. 256 caractères).
escrowDateDate ISO❌ NonDate d’exécution différée si applicable.
additionalDataKey/Value❌ NonPaires 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 compte source.

Règles importantes :

  • L’opération est visible dans les mouvements du compte (débit du compte destinataire, crédit du compte 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é)

4. 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.

4.1. Modifier un TransferReversal (Update)

Permet de modifier certaines informations sur un TransferReversal déjà créé.

ChampTypeObligatoireDescription
transferReversalIdUUID✅ OuiIdentifiant du TransferReversal à modifier
merchantTransferReversalIdString❌ NonRéférence marchand mandataire pour le suivi
descriptionString❌ NonTexte explicatif libre (256 caractères max)
escrowDateDate (ISO)❌ NonNouvelle date différée d’exécution, si applicable
additionalDataKey/Value❌ NonPaires clé/valeur pour usage métier spécifique

Cette fonction est accessible uniquement au niveau PARTNER ou supérieur.

4.2. Consulter un TransferReversal (Retrieve)

Permet de consulter les détails d’un TransferReversal à partir de son identifiant.

ChampTypeObligatoireDescription
transferReversalIdUUID✅ OuiIdentifiant du TransferReversal à consulter

L’objet retourné contient l’intégralité des informations métier, y compris : montant, date, statut, compte concerné, et historique de l’opération.

4.3. Rechercher des TransferReversals (List)

Permet d’interroger l’historique des TransferReversal selon plusieurs critères.

ParamètreTypeObligatoireDescription
merchantTransferReversalIdString❌ NonRéférence marchand mandataire
afterDate ISO❌ NonRetourne les éléments créés après cette date
beforeDate ISO❌ NonRetourne les éléments créés avant cette date
limitInteger❌ NonNombre d’éléments à retourner (par défaut : 10)
pageInteger❌ NonIndex 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.

1. 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

2. Paramétrer un transfert dans une transaction

Dans les quatre 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 :

ChampTypeObligatoireDescription
destinationWalletIdUUID✅ OuiCompte CentralPay bénéficiaire. Doit appartenir à un marchand participant autorisé.
amountInteger✅ OuiMontant du transfert en centimes.
currencyString❌ NonDevise du transfert (si différente de la devise de la transaction).
merchantTransferIdString❌ NonRéférence partenaire.
feeInteger❌ NonFrais applicables (prélevés sur le montant brut).
escrowDateDate ISO❌ NonDate différée d’exécution (si applicable).
transferGroupString❌ NonIdentifiant de groupe pour les suivis agrégés.
descriptionString❌ NonLibellé du transfert visible sur les relevés.
additionalDataKV pairs❌ NonDonné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é.

Versement sortant pour tiers

Le versement sortant 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 participant, en tant que mandataire CentralPay (Agent ou DME). Les partenaires (technique ou intégrateur) n’ont pas accès à cette fonction.

1. Objectif et périmètre

Ce service permet de :

  • Déclencher des versements manuels ou automatisés pour des marchands participants
  • Cibler un compte bancaire autorisé par le marchand participant
  • Utiliser un compte CentralPay comme source des fonds

Le partenaire régulé reste à l’initiative technique du versement, 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

2.1. L’API CentralPay

Endpoint : /payout/byThirdParty
➡️ Voir détails ci-dessous.

2.2. Le Portail Marchand CentralPay

Accessible pour les comptes disposant des droits adéquats (Agent ou DME).

  1. Accéder à Comptes liés
  2. Sélectionner le marchand concerné
  3. Accéder à l’onglet Comptes bancaires
  4. 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 marchand participant.

3.1. Limites d’usage

  • 1 versement / jour / marchand participant / devise
  • Compte bancaire cible validé par le marchand participant
  • Versement uniquement sur fonds disponibles

3.2. Paramètres API (BODY)

ParamètreTypeRequisDescription
currencyISO 4217✅ OuiDevise du versement (doit correspondre au compte bancaire).
destinationBankAccountIdUUID✅ OuiCompte bancaire bénéficiaire (lié au marchand 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 versements

4.1. Récupérer un payout

Endpoint : /payout/byThirdParty/retrieve
Paramètre : payoutId (UUID)

4.2. Lister les payouts

Endpoint : /payout/byThirdParty/list
Paramètre : walletId (UUID)

4.3. Statuts possibles :

StatutSignification
PENDINGVersement en cours de traitement
PAIDVersement exécuté avec succès
CANCELVersement 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 versements
  • 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 versement 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) ➝

Credit

jQuery(document).ready( function($) { window.live_699ea29e22127 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Credit.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e22127", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e22127.load(); });

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 :

ZonePays ou territoire
Espace É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ède
Autres 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

Mandate

See more about Mandate

jQuery(document).ready( function($) { window.live_699ea29e22ca0 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Mandate.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e22ca0", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e22ca0.load(); });

Plugin CMS

Articles

  • WooCommerce
  • PrestaShop
  • Magento

WooCommerce

Ce guide vous accompagne dans l’installation, la configuration et l’utilisation du plugin CentralPay pour WooCommerce (WordPress).

ℹ️ La plateforme CentralPay prend en charge différents moyens (carte, virement et prélèvement SEPA, initiation de paiement) et modes de paiement (paiement en une fois, abonnement, en plusieurs fois, etc.). Ce plugin permet uniquement l'encaissement de transactions cartes unitaires. 

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

  • Pour WooCommerce ➝ Télécharger l’archive ZIP du plugin CentralPay

⚠️ Veillez à ne pas la décompresser manuellement.

2. Installation sur WordPress

  1. Connectez-vous à votre interface d’administration WordPress
  2. Allez dans Extensions > Ajouter
  3. Cliquez sur Téléverser une extension
  4. Sélectionnez le fichier centralpay220.zip et cliquez sur Installer maintenant
  5. Une fois l’installation terminée, cliquez sur Activer l’extension

3. Configuration du module

  1. Allez dans WooCommerce > Réglages > Paiements
  2. Cliquez sur CentralPay pour accéder à la configuration
  3. Renseignez les champs suivants puis cliquez sur Enregistrer les modifications :
ChampDescriptionAccès à la donnée
Identifiant marchandIl s’agit de votre Merchant Public Key. Ne pas confondre avec le Merchant UUID.Portail Marchand CentralPay > Administration > Technique > Copier « Merchant Public Key »
Login APIIdentifiant de votre utilisateur API CentralPayPortail Marchand CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »
Mot de passe APIMot de passe de votre utilisateur API CentralPayPortail Marchand 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 Marchand 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 profil marchand CentralPay de test)./
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 :

  1. Accédez à :
    Production : https://backoffice.centralpay.net/admin/hook/
    Test : https://test-backoffice.centralpay.net/admin/hook/
  2. 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.)
  3. 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 profil marchand de production.

5. Personnalisation du logo

Vous pouvez également personnaliser l’interface de paiement en ajoutant le logo de votre site via le Backoffice :

  1. Accédez à : https://backoffice.centralpay.net/admin/point_of_sale/
  2. Dans le détail de votre Point de Vente, cliquez sur Modifier
  3. 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 profil marchand CentralPay de test et renseigner les identifiants de ce profil 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

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

  1. Connectez-vous au back-office Prestashop
  2. Menu Modules > Modules
  3. Cliquez sur « Ajouter un nouveau module »
  4. Chargez l’archive .zip puis cliquez sur « Installer »

Prestashop v1.7

  1. Connectez-vous à l’administration de Prestashop
  2. Menu Modules > Modules Manager > Upload a module
  3. Déposez l’archive .zip ou cliquez pour la charger
  4. 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 Marchand CentralPay > Administration > Technique > Copier « Merchant Public Key »
Login APIIdentifiant de votre utilisateur API CentralPayPortail Marchand CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »
Secret Key (passeword API)Clé secrète API (à ne jamais diffuser)Portail Marchand 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 Marchand 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 :

  1. Il est redirigé vers une page sécurisée (hébergée ou intégrée)
  2. Il saisit ses informations de carte bancaire
  3. Le paiement est autorisé par la banque (3D Secure inclus)
  4. La commande est validée dans Prestashop avec le statut défini
  5. 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 Marchand > Aide & Support
  • Ou directement via support.centralpay.com

Magento

1. Téléchargement du module

  • Pour Magento ➝ Télécharger le plugin (v1.0)
ℹ️ Ce module est compatible avec Magento 1.7+

2. Installation du plugin

2.1 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)

2.2. 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.

2.3. 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.

3.1. Accéder à la configuration

Dans le menu d’administration Magento, rendez-vous dans : Stores Configuration Sales Payment Methods CentralPay

3.2. Paramètres à renseigner

Champ dans MagentoDescriptionObligatoireAccès à la donnée
Activer CentralPayActive le module dans l’environnement Magento.✅ OuiMagento
TitreNom du moyen de paiement visible côté client.✅ OuiMagento
Identifiant Marchand (merchantLogin)Identifiant d’API fourni par CentralPay.✅ OuiPortail Marchand CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »
Mot de passe API (merchantPassword)Mot de passe API associé à l’identifiant.✅ OuiPortail Marchand 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.✅ OuiPortail Marchand CentralPay > Administration > Technique > Copier « Merchant Public Key »
ID du point de venteIdentifiant unique de votre point de vente (UUID)❌ NonPortail Marchand 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.❌ NonMagento
Mode Test (sandbox)Permet d’utiliser l’environnement de test CentralPay.❌ NonMagento
Commande en attenteStatut Magento utilisé si le paiement est en cours ou en attente (ex. : 3DS).❌ NonMagento
Commande validéeStatut Magento utilisé si le paiement est accepté.❌ NonMagento

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

  1. Le client ajoute ses articles au panier et passe à la caisse
  2. Au moment du paiement, il choisit CentralPay comme méthode de paiement
  3. Il est redirigé vers l’interface de paiement CentralPay sécurisée
  4. Une fois le paiement effectué (ou refusé), il est redirigé vers votre site Magento
  5. 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
  • Modèles contractuels
  • Ouvrir un compte CentralPay
  • Utilisation des API CentralPay
  • Portail Marchand
  • Portail Client
  • Portail d'inscription
  • Tarifs
  • Logos et visuels
  • Trust Center

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 Marchand, 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 Marchand 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 Marchand :

Recette Portail Marchand – Aide et support
Production Portail Marchand 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 versements 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 API
Traitement des opérations de paiement
CPAY PORTALS
Portail d’inscription, client et marchand
99,9 %
sur une base annuelle
99,5 %
sur une base annuelle
Le critère d’atteinte de cette garantie correspond à la disponibilité de l’API de paiement.Le critère 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é.

Glossaire CentralPay

1. Les types d’acteurs

DésignationDescription
ActeurToute entité identifiée sur la plateforme CentralPay. Peut être un Profil Marchand, un Point de Vente, un établissement tiers, ou CentralPay.
Profil marchandLe Profil Marchand représente techniquement et opérationnellement un marchand dans la plateforme CentralPay. Il est le support de :
• Ses comptes : de paiement ou de monnaie électronique ;
• Son administration : accès API, profils utilisateurs, services disponibles ;
• Sa configuration technique : webhooks, notifications, points de vente, règles d’acceptation, comptes bancaires ;
• Son dossier réglementaire : KYC/KYB, LCB-FT, scoring de risque, contractualisation, grille tarifaire…

Le Profil Marchand correspond à l’objet API Merchant et est créé automatiquement après validation de son inscription (via l’objet API Merchant-Enrollment).
Marchand standardPersonne morale ou autoentreprise cliente de CentralPay, réalisant des opérations d’encaissement pour son propre compte lors de la vente de biens ou de services.
Peut être rattaché fonctionnellement à un Partenaire (Technique ou Intégrateur).
Dispose d’un Profil Marchand typé STANDARD.
Marchand PartenairePersonne morale cliente de CentralPay, disposant d’un Profil Marchand et pouvant relever de l’un des modèles suivants :
• Partenaire Technique : opère une solution mutualisée (ex. marketplace, plateforme SaaS) et dispose d’un ou plusieurs Points de Vente ouverts à son nom, auxquels des marchands standards peuvent être rattachés.
Dispose d’un Profil Marchand typé TECHNIQUE.
• Partenaire Intégrateur : intervient en soutien technique, via des accès délégués par les marchands standards, pour faciliter l’intégration et le RUN (sans mutualisation de point de vente au nom du partenaire).
Dispose d’un Profil Marchand typé INTEGRATEUR (le cas échéant).

Un Marchand Partenaire peut percevoir des commissions (selon modèle) et/ou être déclaré MOBSP pour accompagner l’entrée en relation des marchands.
Marchand MandatairePersonne morale cliente de CentralPay, agissant pour le compte de tiers, dans le cadre de l’un des statuts réglementaires suivants :
• Agent PSP : Agent de Prestataire de Services de Paiement de CentralPay, enregistré auprès de l’ACPR (Banque de France) et habilité à agir au nom et pour le compte de CentralPay dans un périmètre défini contractuellement (ex. opérations de débit/crédit et transferts pour compte de tiers).
Dispose d’un Profil Marchand typé AGENT.
• DME : Distributeur de Monnaie Électronique enregistré/déclaré par CentralPay auprès de l’ACPR (Banque de France) pour un projet impliquant l’émission, la distribution et l’échange de monnaie électronique (devises CUSTOM).
Dispose d’un Profil Marchand typé DME.
Sous-marchand / ParticipantPersonne morale ou physique cliente d’un Marchand Mandataire de CentralPay (Agent PSP ou DME).
• Sous-marchand : agit pour vendre des produits ou services, pour une activité LMNP,
• Participant : agit pour des besoins non commerciaux (crowdfunding, wallet personnel, projets collectifs…).
Dispose d’un Profil Marchand typé BASIC, avec un périmètre fonctionnel restreint.
ClientPersonne physique ou morale qui paie ou donne un ordre de paiement à un Marchand CentralPay (peut aussi être nommé porteur, payeur, débiteur).
Peut disposer ou non d’un Profil client (Customer).

Note : dans les documents réglementaires ou contractuels de CentralPay, le terme « Client » peut désigner le Marchand lui-même selon le contexte défini dans le document.
Profil clientReprésente un client enregistré par un Marchand dans la plateforme CentralPay.
Il est le support de :
• ses informations personnelles : nom, prénom, email, téléphone, raison sociale…
• ses moyens de paiement : cartes, mandats SEPA, IBAN, comptes bancaires…
• ses activités : demandes de paiement, historique de paiements…

Le Profil client correspond à l’objet API Customer.
Profils Utilisateur BOPersonnes physiques disposant d’un accès au Portail Marchand CentralPay pour consulter ou administrer un ou plusieurs Profils Marchand.
• Type Legal : représentant légal du Marchand.
• Type Natural : autre utilisateur habilité (finance, support, développement…).

Le Profil utilisateur BO correspond à l’entité API BO_user.
Profils Utilisateur APIEntité créée via la plateforme CentralPay permettant d’identifier l’utilisateur (personne ou système) réalisant des appels API sur un Profil Marchand.
Permet la traçabilité des actions et la gestion des autorisations.

Le Profil utilisateur API correspond à l’entité API api_user.
Point de Vente (ou POS)Représentation d’un site web, d’une boutique physique, ou d’une équipe de vente. Ils permettent de segmenter les opérations du Profil Marchand CentralPay à des fins :
• Techniques : pour réaliser des paramétrages différents par point de vente (notifications clients, notifications internes, nom d’expéditeur des emails de confirmation, logo affiché dans la page de paiement…)
• Administratives : pour limiter les droits de consultation ou de modification de vos profils utilisateurs BO à certains points de vente
• Comptables : pour filtrer les opérations par point de vente dans le Portail Marchand ou dans les exports de données

Le Point de vente correspond à l’objet API PointOfSale.

2. Les types de comptes

DésignationDescription
Compte de paiementCompte ouvert dans les livres de CentralPay au nom d’un Marchand. Ce compte est utilisé exclusivement pour la réalisation d’opérations de paiement (collecte de paiements en devises ISO, versement des fonds vers un compte bancaire…).

Il est représenté par l’objet Wallet type PS dans l’API CentralPay.
Compte de monnaie électroniqueCompte ouvert dans les livres de CentralPay au nom d’un Marchand. 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 type EM dans l’API CentralPay.
Compte de commissionCompte de paiement secondaire permettant d’isoler les flux de commissions et/ou certains prélèvements de frais (selon modèle).
Dans le cadre des modèles Partenaire/Mandataire, ce compte peut recevoir les commissions imputées aux transactions des marchands liés/participants, conformément aux règles contractuelles applicables.

Il est représenté par l’objet Wallet type CM dans l’API CentralPay.
Compte de réserveCompte de paiement secondaire permettant d’isoler des fonds de réserve CentralPay (pied de compte, collatéral ou réserve glissante). N’est pas autorisé à réaliser de versements sortants.

Il est représenté par l’objet Wallet type BM dans l’API CentralPay.
Compte de collecte « Agent »Compte de paiement ouvert dans les livres de CentralPay au nom d’un Agent. Il est dédié à la réception des fonds liés aux opérations initiées via le modèle Agent, avant leur ventilation / transfert vers les comptes de paiement des Marchands Participants. N’est pas autorisé à réaliser de versements sortants.

Il est représenté par l’objet Wallet type CL dans l’API CentralPay.
Compte de Traitement CentralPayLe Compte de Traitement désigne un mécanisme interne et transitoire utilisé par CentralPay pour recevoir, identifier et traiter temporairement des fonds liés à une opération de paiement, en vue de leur transmission au bénéficiaire final. Il n’est pas un compte de paiement ouvert pour un client, n’est mis à disposition d’aucun tiers et ne confère aucun droit de disposition.

Selon les implémentations techniques, ce mécanisme peut être matérialisé par des objets internes (ex. Wallet type TR) utilisés exclusivement par CentralPay pour le traitement opérationnel.

3. Les dénominations d’objets ou d’opérations

DésignationDescription
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 (selon les conditions contractuelles applicables).
Devises ISODevises conventionnelles aux normes ISO 4217 (exemple : EUR, USD, CHF, GBP…)
Devise CUSTOMDevise de monnaie électronique créée pour un Mandataire DME de CentralPay. La valeur de la devise CUSTOM est toujours adossée à celle d’une devise ISO (ex. EUR).
Instruction TechniqueDonnée / événement à finalité strictement technique et commerciale transmis à CentralPay (ex. références de commande, panier, commission, évènements logistiques). Une Instruction Technique n’est pas un ordre de paiement et ne déclenche aucun effet financier automatique : CentralPay reste seul décisionnaire du traitement et, le cas échéant, des mises à disposition de fonds.
Date de déblocageDate de mise à disposition différée pouvant être appliquée par CentralPay pour rendre des fonds utilisables par un bénéficiaire (ex. après livraison/expédition), selon la politique de risque et les règles applicables. Elle peut être déterminée à partir d’informations commerciales transmises, sans constituer une instruction de paiement.
Compte bancaireCompte bancaire externe lié à :
• un Profil Marchand pour réaliser des versements sortants (payout)
• ou à un Profil client pour réaliser des prélèvements SEPA ou des versements sortants.
Il est représenté par l’objet BankAccount dans l’API CentralPay.
Versement sortantVirement sortant d’un compte CentralPay vers un compte bancaire externe. Peut être réalisé par SEPA ou SWIFT.
Il est représenté par l’objet Payout dans l’API 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.
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.

Modèles contractuels

Marchand standard

Le modèle Marchand standard 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 Profil Marchand CentralPay
    Un profil marchand standard contenant un ou plusieurs comptes de paiement dédiés à votre activité, avec IBAN individuel, suivi des opérations et des versements.
  • Les services liés au compte
    Outils de gestion, profils utilisateurs, accès API, notifications, reporting…
  • Le service d’encaissement Smart
    Centralisation de vos flux, routage automatisé, gestion des statuts et des versements.
  • Transactions par carte bancaire
    Acceptation Visa/Mastercard, 3D Secure, Apple Pay/Google Pay, gestion des remboursements et des contestations.
  • Transactions par virement
    Génération d’IBAN virtuels, notifications de réception, rapprochements automatiques.
  • Transactions par prélèvement SEPA
    Débits ponctuels ou récurrents, gestion des mandats, suivi des rejets.

2. Frais et commissions

Des commissions fixes et variables sont appliquées en fonction des opérations réalisées (transactions, versements, rejets, etc.). Vous pouvez consulter les tarifications publiques sur notre site.

  • 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 sur votre compte bancaire ou vous adresser une demande de virement complémentaire.

Marchand Partenaire

CentralPay propose deux modèles distincts pour les partenaires souhaitant accompagner des marchands CentralPay dans leur intégration technique : le Partenaire Technique et le Partenaire Intégrateur. Dans les deux cas, les marchands restent en relation contractuelle directe avec CentralPay ; les modalités d’accès API, de mutualisation et de facturation diffèrent selon le modèle.

Selon la nature de leur activité, ces partenaires peuvent également être immatriculés à l’ORIAS en qualité d’IOBSP (mandataire – “MOBSP”) afin d’encadrer juridiquement certaines activités de présentation et d’accompagnement des marchands lors de leur entrée en relation avec CentralPay. Ce statut ne confère aucun droit d’accès aux fonds ni aucun pouvoir d’exécution d’opérations de paiement.

1. Partenaire Intégrateur

Le Partenaire Intégrateur est un prestataire technique mandaté par un ou plusieurs marchands standards. Il intervient en leur nom et pour leur compte, afin de faciliter leur connexion aux services CentralPay.

Chaque marchand standard dispose de son propre point de vente (POS), de son propre profil Marchand CentralPay, et signe directement ses documents de souscription et son contrat (CCSP) avec CentralPay. L’Intégrateur ne détient aucun droit contractuel sur les comptes ou fonds du marchand.

1.1. Responsabilités et fonctionnement

  • L’Intégrateur utilise les accès API délégués par chaque marchand (identifiants dédiés “Intégrateur”), dans le cadre d’un mandat contractuel entre l’Intégrateur et le marchand
  • Il peut réaliser des actions techniques nécessaires à l’intégration et au RUN (paramétrage, suivi d’Instructions Techniques, maintenance), exclusivement via ces accès, sans pouvoir consulter les soldes ni initier / modifier / annuler une opération de paiement
  • Les parcours sont généralement réalisés en “1 pour 1” : un client (payeur) règle un seul marchand, chaque marchand conservant son environnement et ses accès propres

1.2. Facturation

  • Chaque marchand est facturé directement par CentralPay au titre des services souscrits dans son CCSP
  • Le Partenaire Intégrateur n’intervient à aucun moment dans les flux financiers

1.3. Pour aller plus loin sur le modèle d’Intégrateur

  • Le Partenaire Intégrateur intervient exclusivement en soutien technique des marchands standards, 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 profil Marchand CentralPay : encaissements, versements, solde, paramétrage des accès API, gestion documentaire et contractuelle
  • CentralPay peut mettre à disposition de l’intégrateur un accès portail strictement limité à l’administration technique (suivi d’Instructions Techniques, paramétrages, opérations nécessaires au RUN). Cet accès n’autorise pas la consultation des soldes, ni la manipulation de transactions financières, ni l’initiation/modification/annulation d’opérations de paiement, ni la modification d’IBAN ou de paramètres financiers
  • Pour permettre la connexion, le marchand délègue à l’intégrateur des identifiants dédiés, avec des droits strictement limités et révocables à tout moment. Toutes les actions techniques sont réalisées via ces identifiants, sous la responsabilité du marchand
  • Si le Partenaire Intégrateur est immatriculé à l’ORIAS en qualité d’IOBSP (mandataire – “MOBSP”) et qu’un cadre contractuel distinct le prévoit, il peut accompagner le marchand dans son entrée en relation (ex. : transmission d’un lien d’inscription, assistance à la constitution du dossier). CentralPay reste seule décisionnaire de l’entrée en relation, de l’ouverture de compte et des contrôles réglementaires
  • À défaut, le Partenaire Intégrateur peut orienter le marchand vers CentralPay pour toute question contractuelle, tarifaire ou réglementaire liée aux services de paiement

2. Partenaire Technique

Le Partenaire Technique est un acteur qui développe une solution mutualisée (ex. : marketplace, plateforme SaaS), à destination de plusieurs marchands standards. Il opère depuis un ou plusieurs points de vente ouverts à son nom dans CentralPay, auxquels des marchands peuvent être rattachés.

Les opérations sont traitées par CentralPay au moyen d’un mécanisme interne de “Compte de Traitement” (utilisé par CentralPay pour recevoir et traiter temporairement les fonds en vue de leur transmission au bénéficiaire final). Le Partenaire Technique n’y dispose d’aucun droit de disposition : il transmet uniquement des données commerciales et conserve une visibilité sur les flux rattachés à ses points de vente, sans jamais pouvoir déclencher un transfert.

2.1. Responsabilités et fonctionnement

  • Le Partenaire Technique dispose de ses propres accès API délivrés par CentralPay
  • Il peut transmettre des Instructions Techniques (données commerciales, panier, commission, références, évènements logistiques…), et suivre les transactions rattachées aux marchands liés à ses points de vente
  • Il n’a aucun accès aux fonctionnalités de transfert (notamment l’endpoint transfer) et ne peut pas accéder aux soldes ni effectuer de versements : CentralPay décide et exécute les opérations et mises à disposition de fonds
  • Dans ce cadre, CentralPay peut gérer des paiements en mode “1 pour X” : un client (payeur) peut régler plusieurs marchands simultanément, CentralPay assurant ensuite la ventilation/mise à disposition au bénéfice des marchands

2.2. Facturation

  • Le Partenaire Technique est facturé par CentralPay en fonction des opérations réalisées via son (ou ses) point(s) de vente, conformément aux conditions prévues au CCSP et aux documents de souscription applicables
  • Lorsqu’une commission est prévue, CentralPay peut, sur la base des données commerciales transmises et selon les règles contractuelles, ventiler les flux : la part de commission est alors créditée sur le compte de commission du Partenaire Technique, sans que celui-ci ne détienne de fonds de tiers

Pour aller plus loin sur le modèle de 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 de marchands standards associés
  • Chaque marchand associé contracte directement avec CentralPay (CCSP et documents de souscription) et dispose de son propre profil Marchand CentralPay
  • Le Partenaire Technique transmet à CentralPay les données commerciales des transactions (montant commercial, références, commission, évènements logistiques…). Ces données ne déclenchent aucun effet financier automatique : CentralPay analyse, contrôle, puis décide de traiter l’opération et d’initier les mises à disposition nécessaires
  • CentralPay peut décider d’appliquer une retenue temporaire et/ou une date de déblocage pour la mise à disposition des fonds au bénéfice d’un marchand (ex. : jusqu’à une livraison/expédition), selon sa politique de risque, les règles des réseaux et ses obligations réglementaires
  • Le Partenaire Technique ne détient jamais de fonds de tiers, ne donne aucun ordre de paiement, et ne peut intervenir dans les versements ou la tenue de compte. Il n’agit ni pour compte de tiers ni au nom de CentralPay
  • L’accès du Partenaire Technique est limité à une vue et à des fonctionnalités strictement nécessaires à la transmission et au suivi d’Instructions Techniques ; il n’existe aucun accès au “Compte de Traitement” en tant que compte (pas de droit d’exécution, pas de droit de disposition, pas d’accès aux soldes)
  • En cas d’immatriculation ORIAS en qualité d’IOBSP (mandataire – “MOBSP”) et si un cadre contractuel distinct le prévoit, le Partenaire Technique peut accompagner les marchands dans leur entrée en relation (transmission de lien d’inscription, assistance documentaire), sous réserve de validation préalable par CentralPay

3. Règles de conformité communes

Pour les deux modèles :

  • Le Partenaire n’est pas prestataire de services de paiement, ne dispose d’aucun pouvoir d’exécution d’opérations de paiement et ne détient aucun fonds de tiers dans le cadre des services de paiement
  • Les comptes, la mise à disposition des fonds, les versements et la protection des fonds sont gérés et encadrés par CentralPay, en sa qualité de PSP
  • Aucune délégation réglementaire d’exécution de service de paiement (type agent PSP) n’est accordée à ces partenaires

3.1. Relation contractuelle avec les marchands

Le Partenaire (technique ou intégrateur) conserve sa propre relation commerciale avec ses utilisateurs et reste responsable des services proposés sur sa plateforme. Il définit librement les conditions générales d’utilisation applicables à ses services.

De leur côté, les marchands associés :

  • Ouvrent leur propre profil Marchand CentralPay, lors d’un parcours d’enrôlement individualisé
  • Signent directement avec CentralPay le CCSP et les documents de souscription applicables (dont la désignation éventuelle d’un partenaire)
  • Reconnaissent que le partenaire pourra réaliser certaines actions techniques dans le cadre de son intégration (ex. : transmission d’une commande, remontée de panier, suivi d’Instructions Techniques), sans que cela ne constitue un ordre de paiement ni un accès aux fonds

CentralPay agit alors directement auprès du marchand associé pour :

  • la création et la gestion de son compte (signature électronique, affectation des POS, rattachement au partenaire)
  • le traitement réglementaire des justificatifs transmis (KYC/KYB, lutte contre le blanchiment et le financement du terrorisme)
  • la mise à jour documentaire ou les vérifications complémentaires nécessaires à la bonne exécution des services de paiement

L’ensemble de cette organisation repose sur un dispositif contractuel strictement balisé :

  • Le partenaire signe un contrat dédié avec CentralPay, encadrant son rôle et ses droits d’accès (API/portail) et, le cas échéant, les modalités de commissionnement
  • Les marchands associés signent directement leurs documents contractuels CentralPay (CCSP et souscription), dans lesquels leur association au partenaire peut être précisée
  • Les conditions générales du partenaire s’appliquent uniquement à l’usage de sa propre plateforme. Elles ne peuvent ni interférer avec les services de paiement CentralPay, ni se substituer aux documents contractuels CentralPay

4. Déclaration ORIAS (IOBSP / “MOBSP”)

Un Partenaire Intégrateur ou un Partenaire Technique peut, si son activité le nécessite, être immatriculé à l’ORIAS en qualité d’IOBSP (mandataire – “MOBSP”). Ce statut est distinct de celui d’agent de prestataire de services de paiement (au sens de l’article L.523-1 du Code monétaire et financier).

Cette immatriculation peut permettre, selon le cadre contractuel applicable :

  • De présenter les services de CentralPay et d’assister le marchand dans ses démarches d’entrée en relation
  • D’accompagner la constitution du dossier (sans jamais se substituer aux contrôles réglementaires réalisés par CentralPay)

Ce statut ne modifie en rien les restrictions précédemment énoncées : il ne confère aucun droit sur les fonds et aucun pouvoir d’exécution d’opérations de paiement. CentralPay demeure seul responsable de l’entrée en relation, des contrôles réglementaires et de l’exécution des services de paiement.

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 :

  1. Envoyez un e-mail à notre service client qui inclut votre raison sociale et votre numéro SIREN
  2. 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

  1. Allez sur le site de l’ORIAS
  2. Faites défiler vers le bas jusqu’à voir la section Comment ça marche ?
  3. Cliquez sur S’inscrire

Vous serez redirigé vers le formulaire d’inscription.

2.2. Saisir les informations

  1. Entrez votre numéro SIREN
  2. Saisissez les informations sur votre entreprise. Assurez-vous de vous inscrire en tant que personne morale / entité juridique
  3. Saisissez les informations de votre représentant légal
  4. Saisissez les coordonnées de votre représentant légal
  5. Saisissez les coordonnées de votre entreprise, y compris votre site web si vous en avez un
  6. Entrez l’adresse de votre entreprise
  7. 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.

  1. Retournez sur le site de l’ORIAS
  2. Cliquez sur Connexion / Login
  3. Saisissez votre identifiant et votre mot de passe provisoire depuis votre email
  4. 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

  1. Cliquez sur Nouvelle inscription pour démarrer votre inscription, un formulaire apparaît
  2. Choisissez Activité IOB
  3. Choisissez ensuite Mandataire non-exclusif en opérations de banque et en services de paiement (MOBSP)
  4. Cliquez sur Soumettre

3.2. Fournissez des informations complémentaires

  1. 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.
  2. Pour la première question, choisissez la réponse : Je déclare que l’on ne me confie pas de fonds
  3. 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
  4. 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
  5. Cliquez sur Aller à l’étape « Pièces justificatives »

3.3. Fournissez vos documents justificatifs

  1. Soumettez votre KBIS
  2. Soumettez votre mandat d’attestation, qui est le certificat de mandat de l’étape 1.1
  3. Soumettez votre Capacité professionnelle pour « vous » (Niveau I IOBSP), qui constitue votre preuve d’aptitude professionnelle de l’étape 1.2.
  4. Cliquez sur Aller à l’étape suivante

3.4. Payez votre inscription

La dernière étape consiste à payer votre inscription.

  1. 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
  2. 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)
  3. Après avoir payé, cliquez sur Télécharger la facture pour télécharger votre reçu
  4. Cliquez sur Terminer la demande d’inscription pour finaliser votre inscription
  5. 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.

Marchand Mandataire

Agent de Prestataire de Services de Paiement (Agent PSP) ou Distributeur de Monnaie Électronique (DME)

Certains projets nécessitent un cadre réglementaire spécifique permettant à des mandataires d’agir au nom et pour le compte de CentralPay, établissement agréé et supervisé par l’ACPR. Deux statuts principaux peuvent être mobilisés en France :

  • L’Agent de Prestataire de Services de Paiement (Agent PSP), pour les projets nécessitant une gestion active des flux de paiement (encaissements, transferts, versements), dans le strict cadre d’un mandat et sous la responsabilité de CentralPay
  • Le Distributeur de Monnaie Électronique (DME), pour des projets reposant sur des mécanismes de valeur stockée / monnaie électronique (plateformes C2C, titres prépayés, réseaux fermés, etc.), dans le cadre d’un contrat de distribution

Ces modèles peuvent offrir une autonomie opérationnelle importante au mandataire, mais s’accompagnent de contraintes réglementaires fortes et d’une supervision permanente, sous la responsabilité de CentralPay.

1. Agent de Prestataire de Services de Paiement (Agent PSP)

1.1. Cas d’usage typiques

  • Plateformes B2B avec flux financiers complexes
  • Outils de gestion financière ou de trésorerie pour tiers
  • Solutions SaaS intégrant l’encaissement et la mise à disposition de fonds à des bénéficiaires

1.2. 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, au nom et pour le compte de CentralPay, dans les limites du mandat et des droits techniques configurés.

Fonctionnalités (selon périmètre contractuel et habilitations) :

  • Mise en relation commerciale et promotion des services CentralPay auprès des utilisateurs finaux (les “Participants”)
  • Accompagnement des Participants à l’ouverture de comptes CentralPay (parcours CentralPay et/ou parcours piloté par l’Agent, selon modèle retenu)
  • Ouverture, au nom de l’Agent, de comptes techniques dédiés à la ségrégation des flux (ex. compte de collecte et compte de commission), sans que l’Agent ne devienne propriétaire des fonds des Participants
  • Transmission à CentralPay des demandes/instructions nécessaires à la bonne exécution des services (ex. affectation des fonds, demandes de versement, demandes de remboursement), CentralPay restant seul exécutant
  • Gestion du support de premier niveau (N1) et traitement opérationnel défini comme prestation externalisée, avec escalade vers CentralPay lorsque requis

1.3. Les 3 options du modèle Agent (délégation KYC/KYB)

Le modèle Agent de CentralPay prévoit trois niveaux de délégation en matière d’inscription et de contrôles KYC/KYB. Une seule option est applicable à la fois, et le niveau retenu est formalisé contractuellement :

  • Option A – Agent simple (absence de délégation de contrôle) : l’Agent agit comme Agent PSP déclaré mais sans délégation KYC/KYB. Il se limite à la mise en relation commerciale et oriente les Participants vers les parcours/outils fournis par CentralPay. Il ne reçoit aucun mandat pour collecter des pièces justificatives ni effectuer des contrôles.
  • Option B – Agent collecteur (délégation de la complétude administrative) : l’Agent est mandaté pour constituer le dossier administratif du Participant pour le compte de CentralPay. Il collecte les pièces et réalise des vérifications strictement formelles de complétude (lisibilité, validité apparente, cohérence documentaire). Il ne réalise pas d’analyse de risque, ni filtrage sanctions/PPE, ni analyse approfondie ; la décision d’entrée en relation demeure celle de CentralPay.
  • Option C – Agent délégataire de contrôle (délégation de niveau 1) : option réservée aux Agents disposant d’une organisation conformité dédiée et expressément validée par CentralPay. L’Agent peut collecter les pièces KYC/KYB, vérifier la complétude/cohérence et assurer un contrôle de vigilance de niveau 1 exclusivement formel et administratif. Il peut également participer au traitement des alertes de niveau 1 (collecte/qualification administrative/transmission), selon des procédures strictes. CentralPay conserve la décision finale et peut révoquer l’option à tout moment en cas de défaillance.

1.4. CentralPay reste responsable

  • CentralPay reste pleinement responsable des services fournis aux Participants
  • L’Agent agit dans le strict cadre du mandat qui lui est confié, et selon les habilitations techniques mises en place
  • Toute activité réalisée via la plateforme est auditable, traçable et documentée

1.5. Contraintes réglementaires

  • Signature d’un contrat d’Agent et de ses documents associés
  • Enregistrement officiel en tant qu’Agent sur le registre de l’ACPR (via CentralPay)
  • Évaluation de la capacité organisationnelle du mandataire et exigences renforcées (conformité, sécurité, confidentialité, continuité, contrôle interne)
  • Reporting périodique à CentralPay (volume d’activité, incidents, qualité de service) et possibilité d’audit sur pièce ou sur site
  • Formations obligatoires des équipes opérationnelles, selon le périmètre de délégation

2. Distributeur de Monnaie Électronique (DME)

2.1. Cas d’usage typiques

  • 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

2.2. Rôle du DME

Le DME agit pour le compte de CentralPay dans la mise à disposition et la gestion opérationnelle de la monnaie électronique, dans les limites prévues par le contrat de distribution et les règles définies par CentralPay.

Fonctionnalités :

  • Mise en relation de CentralPay avec les utilisateurs finaux (les “sous-marchands” / utilisateurs de monnaie électronique)
  • Transmission à CentralPay des instructions de chargement (montant, bénéficiaire, commission), CentralPay restant seul émetteur/exécutant
  • Visualisation et suivi des opérations via un dispositif de suivi dédié (ex. vue consolidée / compte centralisateur selon modèle), sans droit de disposition sur les fonds
  • Transmission des demandes/instructions permettant la circulation de monnaie électronique entre utilisateurs dans un cadre défini (réseau fermé, règles contractuelles), sous contrôle de CentralPay
  • Transmission des demandes de remboursement de monnaie électronique à la demande de l’utilisateur, selon les règles applicables
  • Détention d’un compte de commission pour percevoir les frais définis dans ses CGU

2.3. Limites fonctionnelles

  • Le DME ne détient jamais les fonds : il agit comme intermédiaire et ne peut pas conserver, stocker ou utiliser les fonds collectés
  • Il n’est pas autorisé à créer/émettre lui-même de la monnaie électronique
  • Il ne peut pas offrir de services de paiement non explicitement autorisés dans le cadre contractuel défini par CentralPay
  • Il ne peut pas sous-traiter son activité, sauf accord explicite de CentralPay

2.4. Contraintes réglementaires

  • Signature d’un contrat de distribution avec CentralPay
  • Déclaration / formalités de mise en conformité réalisées sous l’initiative et la responsabilité de CentralPay, selon la réglementation applicable
  • 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 / des habilitations
    • Reporting régulier sur l’activité
    • Formation obligatoire des équipes du DME
    • Validation des CGU utilisées auprès des utilisateurs

Déclaration Agent PSP (ACPR)

Rôle de l’ACPR

L’ACPR (Autorité de Contrôle Prudentiel et de Résolution), adossée à la Banque de France, tient le registre des prestataires régulés et de leurs agents. Dans le cadre d’un modèle Agent PSP, CentralPay (établissement agréé) constitue et dépose la notification/dossier d’enregistrement de l’Agent et demeure l’unique interlocuteur de l’ACPR.

Le futur Agent ne peut pas déposer de dossier directement auprès de l’ACPR : les échanges sont pilotés par CentralPay, avec le concours de l’Agent (transmission de pièces, réponses aux questions, éléments d’organisation).

Étapes de déclaration d’un Agent

ÉtapeDescription
1. Cadrage & pré-qualificationAnalyse du modèle, du périmètre fonctionnel et des responsabilités ; validation juridique & conformité côté CentralPay
2. Constitution du dossierCollecte des pièces société/dirigeants, éléments d’organisation (process, contrôles, sécurité), CGU Agent/Participants, prévisions d’activité
3. Dépôt / échanges ACPRDépôt réalisé par CentralPay ; réponses aux demandes complémentaires pilotées par CentralPay avec l’aide de l’Agent
4. Enregistrement & activationÀ l’issue de l’enregistrement sur le registre public, CentralPay peut activer l’Agent en production (avant cela, l’activité reste bloquée)

1. Responsabilités de l’Agent

En tant qu’Agent PSP, l’Agent agit au nom et pour le compte de CentralPay dans le périmètre défini contractuellement. CentralPay reste pleinement responsable de la fourniture des services de paiement et de la conformité réglementaire ; toutefois, l’Agent doit appliquer strictement les procédures et exigences opérationnelles fixées par CentralPay, notamment en matière de LCB-FT et de lutte contre la fraude.

L’Agent est notamment responsable de :

  • La compréhension de l’activité de ses marchands/Participants et de la cohérence économique des opérations initiées via son modèle
  • La mise en œuvre des dispositifs opérationnels attendus (process internes, contrôles, traçabilité, gestion des incidents) et du respect des consignes CentralPay
  • La lutte contre la fraude (détection, escalade, coopération) et le respect des obligations de vigilance dans le périmètre confié
  • La coopération avec CentralPay en cas de demande d’information (contrôles, audit, questions ACPR), et la transmission rapide des pièces demandées

L’Agent doit signer :

  • Un Contrat d’Agent PSP avec CentralPay (mandat / externalisation / supervision / flux)
  • Le CCSP (Contrat Cadre de Services de Paiement) applicable à l’Agent en sa qualité de client professionnel de CentralPay (accès plateforme, services souscrits)
  • Des CGU Agent (ou documentation équivalente) encadrant sa relation avec ses Participants, incluant les mentions nécessaires sur les parcours, la ventilation, les dates de déblocage et les éventuelles demandes de versements

Selon le périmètre retenu (et les annexes applicables), certaines fonctions peuvent être déléguées à l’Agent (ex. collecte et contrôles formels KYC/KYB). CentralPay reste seule décisionnaire de l’entrée en relation, de l’ouverture/maintien des comptes et des décisions réglementaires.

2. Devenir Partenaire Agent CentralPay

Le processus d’enregistrement d’un Agent dépend de la complétude du dossier, du niveau de délégation opérationnelle et des échanges avec l’ACPR. En pratique, il s’étale généralement sur plusieurs semaines et peut être prolongé si des pièces complémentaires sont demandées.

2.1. Résumé des étapes

ÉtapeDétails
1. Compréhension du modèle– Cadrage du périmètre et des responsabilités
– Description des flux & cas d’usage
– Validation par les équipes Juridique & Conformité de CentralPay
2. Offre commerciale– Présentation par CentralPay
– Alignement sur le périmètre (technique, opérationnel, conformité)
3. Contractualisation– Signature du Contrat d’Agent
– Signature/acceptation du CCSP applicable à l’Agent
4. Test & intégration– Accès sandbox
– Intégration technique & recette
– Vérification des parcours (onboarding/consentement/affichages)
5. Instruction ACPR– Collecte des éléments réglementaires
– Constitution et dépôt du dossier auprès de l’ACPR par CentralPay
– Gestion des questions / compléments
6. Mise en production– Activation en production après enregistrement
– Tests en environnement de recette / production encadrée

2.2. Pièces à fournir à CentralPay

Phase 1 – Pré-constitution du dossier

  • CGU Agent / documentation contractuelle Participants (parcours, consentements, information “agent”, ventilation/commission, dates de déblocage, modalités de remboursement)
  • Définition des activités régulées, services associés, modèle d’affaires
  • Organigramme (y compris répartition des effectifs par service) et description des rôles clés
  • Structure de l’actionnariat / gouvernance
  • Flux prévisionnels sur 3 ans confiés à CentralPay (volumes, montants, typologies)
  • Nombre d’enrôlements prévisionnels sur 3 ans
  • Cas de reprise de KYC existant (migration) le cas échéant

Phase 2 – Déclaration auprès du régulateur

  • Signature du Contrat d’Agent (préalable au dépôt du dossier)
  • CentralPay collecte et dépose les pièces suivantes (liste indicative) :
    • Kbis < 3 mois de la société et, le cas échéant, des sociétés de tête/dirigeantes
    • Statuts à jour signés
    • Pièces d’identité couleur des dirigeants
    • CV des dirigeants datés et signés
    • Casier judiciaire des dirigeants (si demandé)
    • Déclarations de non-condamnation des dirigeants
    • Répartition de la détention des parts / actionnariat
    • Kbis des personnes morales actionnaires (si applicable) + organigramme de groupe (si applicable)
    • PV d’AG récents (fusion, perte > 50% du capital, changement direction, etc.)
    • Registre des bénéficiaires effectifs (si demandé)

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 : généralement ~2 semaines à compter de la réception d’un dossier complet
  • Délai ACPR : variable ; peut aller jusqu’à ~2 mois, avec premières questions sous 30 jours en général

2.4. Fin d’instruction

  • L’Agent peut démarrer l’activité uniquement après enregistrement effectif (publication sur le registre public)
  • Avant enregistrement, CentralPay n’active pas l’Agent en production et peut maintenir les comptes de l’Agent bloqués (IN/OUT)
  • L’Agent est référencé dans les registres publics avec un numéro/identifiant d’enregistrement pouvant devoir figurer dans certaines communications/mentions

2.5. Particularité – Agents Télécom SVA (numéros surtaxés)

  • Obligation de fournir un récapitulatif des minutes par opérateur
  • Transmission du détail de répartition des encaissements (ventilation) à CentralPay
  • CentralPay met en place des contrôles complémentaires afin de s’assurer que les marchands/Participants sont correctement crédités

3. Traitement des flux agent

Cette section définit les règles applicables au traitement et au contrôle des flux financiers dans un modèle Agent. Elle précise les responsabilités, la structure des comptes et les contrôles complémentaires mis en œuvre afin de répondre aux exigences légales et prudentielles.

3.1. Responsabilité de l’établissement

Conformément au Code monétaire et financier (CMF), l’Agent agit au nom et pour le compte de CentralPay. CentralPay demeure pleinement responsable du respect des obligations réglementaires, notamment en matière de LCB-FT, de sécurité et de protection des fonds.

CentralPay met en place un dispositif de contrôle interne couvrant l’ensemble du cycle des flux, y compris ceux traités dans le cadre de ses Agents (supervision, auditabilité, traçabilité).

3.2. Comptes opérationnels des agents

Pour les besoins de ségrégation des flux, CentralPay met à disposition (dans ses livres) :

  • Compte de Collecte : compte de transit destiné à recevoir les fonds liés aux opérations initiées via le modèle Agent, et à permettre leur affectation/ventilation vers les comptes des Participants
  • Compte de Commission : destiné à recevoir la rémunération revenant à l’Agent (commissions) et à régler les frais dus à CentralPay
  • Compte de paiement Agent (optionnel) : destiné aux opérations courantes de l’Agent pour son compte propre (approvisionnement, paiement de factures SaaS, etc.), distinct des flux tiers et des commissions

3.3. Traitement des opérations

Lorsqu’un Agent initie une transaction pour le compte d’un ou plusieurs Participants :

  1. L’Agent transmet à CentralPay les informations nécessaires à la ventilation (part des Participants, commission Agent, références), soit directement dans la transaction, soit au plus tard en fin de journée via un traitement par lot lorsque cela est objectivement nécessaire.
  2. CentralPay exécute ensuite, sous sa responsabilité, les opérations d’affectation/ventilation et, le cas échéant, les mouvements nécessaires (dont la commission vers le compte de commission), conformément au cadre contractuel et aux contrôles réglementaires.

Le Compte de Collecte doit rester un compte de transit : l’Agent ne doit pas conserver passivement des fonds de tiers au-delà des délais strictement nécessaires au traitement (pas de “trésorerie flottante”).

Les modalités de versement sortant (Payout) sont encadrées par CentralPay ; le Compte de Collecte n’a pas vocation à servir de compte de versement sortant “libre”.

3.4. Dates de déblocage et montants prévisionnels

Fonctionnement

Selon le modèle contractuel, l’Agent peut transmettre ou paramétrer (en qualité d’intermédiaire mandaté par le Participant) une date de déblocage (endpoint API : EscrowDate) correspondant à un évènement contractuel objectivable (ex. livraison/expédition/fin de prestation). Cette date ne produit aucun effet financier automatique : CentralPay demeure seule décisionnaire de la mise à disposition des fonds (acceptation, refus, report, encadrement).

Jusqu’à la date de déblocage :

  • Les fonds restent protégés et indisponibles (ni accessibles à l’Agent, ni utilisables par le Participant)
  • Le Participant peut visualiser l’opération sous forme d’opération à venir ou de montant prévisionnel, avec affichage de la date de disponibilité, sans constituer un crédit au solde disponible

Conditions de conformité

L’usage des dates de déblocage est autorisé uniquement si :

  • Information claire : l’Agent doit expliquer à ses Participants comment fonctionne la date de déblocage (principes, délais, exceptions).
  • Affichage transparent : l’interface Participant doit indiquer la date de l’opération, la date de disponibilité prévue et un statut “indisponible avant cette date”.
  • Mentions dans les CGU Agent : les CGU signées par les Participants doivent préciser :
    • Que la date de déblocage correspond à la date contractuelle à laquelle les fonds deviennent utilisables.
    • Qu’il est impossible pour le Participant d’utiliser ces fonds avant cette date.
    • Que CentralPay peut refuser, différer, suspendre ou encadrer la mise à disposition au regard de ses obligations réglementaires, de sa politique de risque et des règles des réseaux de paiement.
  • Gestion des exceptions : en cas d’annulation, de remboursement, d’impayé ou de litige :
    • Si la transaction source est annulée/remboursée, les fonds ne seront pas mis à disposition.
    • En cas d’impayé (ex. chargeback carte) ou de risque, CentralPay peut retenir/ajuster les montants en attente ou compenser lors de règlements ultérieurs.
    • La date de déblocage peut être reportée (litige/incident) ; le Participant doit être informé via son interface/notifications.

Ce mécanisme ne constitue ni un séquestre au sens du droit civil, ni un service de conservation fiduciaire : il s’agit d’une mise à disposition différée sous contrôle exclusif de CentralPay.

3.5. Gestion des versements sortants

Fonctionnement

CentralPay peut mettre à disposition des Participants (et, selon les habilitations, à l’Agent agissant comme intermédiaire mandaté) différents modes de gestion des versements sortants :

  • Versements sortants automatisés (paramétrage de règles/plannings, lorsque prévu contractuellement)
  • Versements sortants ponctuels (demande via portail/API selon les droits accordés)

Conditions de conformité

Lorsque l’Agent est autorisé à transmettre des demandes de versement sortant pour le compte de ses Participants, il doit recueillir leur consentement et décrire clairement le mode de fonctionnement dans les CGU Agent. CentralPay demeure seule responsable de l’exécution et peut refuser, suspendre ou encadrer ces demandes conformément à ses obligations.

À retenir

Le dispositif présenté garantit :
- La séparation stricte des flux tiers / commissions / compte propre
- L’absence de droit de disposition de l’Agent sur les fonds de tiers
- La traçabilité complète des opérations (auditabilité)
- La supervision active par CentralPay
- La conformité aux exigences du CMF et aux attentes de supervision

Le respect de ce dispositif est obligatoire. Toute anomalie (fraude, incident, incohérence de ventilation, non-respect des procédures) doit être signalée immédiatement à votre Account Manager CentralPay.

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 sous-marchands 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 mandataire 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 mandataire 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

  1. Compréhension du modèle
    • Explication des services apportés par le mandataire
    • Définition de son modèle d’affaires
    • Validation par le service Risque & Conformité de CentralPay
  2. Offre Commerciale
    • Présentation
  3. Validation
    • Validation du mandataire par le service Risque & Conformité de CentralPay
    • Validation de la proposition commerciale et des conditions tarifaires par le mandataire
  4. Test & Intégration
    • Mise en place de la sandbox
    • Réunion de lancement de projet avec l’équipe technique
    • Phase d’intégration technique
  5. Instruction du dossier ACPR
    • Collecte des éléments nécessaires à la constitution du dossier
    • Préparation du dossier
    • Présentation du dossier
  6. Mise en production
    • Validation de la recette
    • Mise en production

2.2. Pièces à fournir à CentralPay

Prochainement

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 standard, partenaire ou mandataire en relation directe avec CentralPay
  • Vous êtes un marchand participant d’un mandataire, ou un marchand standard rattaché à un partenaire technique 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.

1. Marchands en direct

Le parcours d’entrée en relation comporte six étapes principales.

1.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)

1.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

1.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)

1.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, versements, droits utilisateurs…).

1.5. Création du profil Marchand CentralPay

Le représentant légal reçoit un lien d’inscription sécurisé pour créer le profil :

  • 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 profil, menant à son ouverture

1.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 profil est débloqué
  • Vous pouvez encaisser vos premières transactions

2. Marchands liés à un partenaire technique

Si vous êtes un marchand intégré via un partenaire technique ou mandataire de CentralPay, le parcours est simplifié.

Vous entrez directement à l’étape 5 : Création du profil Marchand CentralPay.

2.1. Étape unique : Création du profil 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 le partenaire technique ou le mandataire.

L’analyse de conformité complète de CentralPay reste obligatoire avant validation du profil.

Pièces justificatives : KYC / KYB

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

2.1. 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 versements sortants 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é

2.2. Personnes morales (KYB)

La création d’un profil Marchand 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 importante
Auto-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’organisme
Socié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 étranger
Socié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

3.1. 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

3.2. 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

3.3. 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

3.4. 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 :

ZonePays ou territoire
Espace É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ède
Autres 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 profil Marchand 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 profil ou sa clôture immédiate.

1. Activités interdites de manière absolue

CatégorieExemples d’activités interdites
Activités illicitesVente de drogues, de produits illicites ou de substances interdites
Blanchiment d’argent, financement du terrorisme
Prostitution
Produits interdits ou réglementés sans autorisationVente de médicaments ou produits pharmaceutiques sans agrément
Vente d’alcool, de tabac ou de jeux d’argent sans licence
Vente d’armes, d’explosifs ou de dispositifs de piratage
Contenus et comportements illégauxDiffusion de contenus à caractère pornographique ou extrême
Activités incitant à la haine, au racisme ou faisant l’apologie du terrorisme
Diffusion d’images contraires à l’ordre public
Fraudes ou pratiques commerciales interditesUsurpation d’identité, fraude documentaire
Vente de produits contrefaits ou de marques non autorisées
Sites de phishing ou logiciels espions
Réseaux à risque ou non coopératifsOrganisations sectaires ou mouvements ultra-radicaux
Réseaux opérant dans des juridictions sous sanction ou non coopératives (ex. paradis fiscaux non reconnus)

1.1. 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)

2. 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 de réserve CentralPay afin de permettre de couvrir les R-transactions (rejets, refus, retours, remboursements, contestations, impayés) lorsque votre compte de paiement n’est pas solvable. 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 Marchand : Administration Versements 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 compte doit donc dépasser la valeur du pied de compte pour autoriser les versements sortants (payout).

Le détail du pied de compte est visible depuis le Portail Marchand : Administration Versements 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 sur votre compte de réserve 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 si votre compte de paiement n’est pas solvable. 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 Marchand : Administration Versements 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.

👉 Consultez les dernières versions en vigueur des conditions générales CentralPay

1. 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 applicables
Compte de paiementConditions générales de service de paiement
Compte de monnaie électroniqueConditions générales de service de monnaie électronique

Obligation d’acceptation :

Ces 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.

2. 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 standard), 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).

👉 Consultez les dernières versions en vigueur des conditions générales CentralPay

Utilisation des API CentralPay

Les APIs CentralPay permettent d’interagir de manière sécurisée avec notre plateforme pour créer des comptes, initier des paiements ou automatiser des opérations métiers.

Nos APIs reposent sur le protocole HTTP(S) et utilisent un format de réponse en JSON. L’authentification est obligatoire pour chaque requête, sauf exception précisée.

1. Les APIs disponibles

CentralPay met à disposition deux APIs principales :

APIDescriptionAccès
API Core PaymentGère toutes les fonctions liées aux opérations de paiement (initiation, transfert, remboursement, etc.)Tous les marchands
API OnboardingPermet la demande de création de comptes de paiement ou de monnaie électronique (enrôlements, wallet, etc.)Réservée aux marchands partenaires et mandataires (Agents, DME).

2. URLs des environnements

Deux environnements sont disponibles selon votre étape d’intégration :

ComposantEnvironnement de TESTEnvironnement de PRODUCTION
API Core Paymenthttps://test-api.centralpay.net/https://api.centralpay.net/
API Onboardinghttps://test-onboarding-api.centralpay.net/https://onboarding-api.centralpay.net/

Les identifiants d’accès sont différents entre test et production.

Vous pouvez également accéder à votre Portail Marchand à des fins de consultation ou de paramétrage :

ComposantEnvironnement de TESTEnvironnement de PRODUCTION
Portail Marchandhttps://test-backoffice.centralpay.net/https://backoffice.centralpay.net/

3. Authentification API

L’API CentralPay utilise l’authentification HTTP Basic, qui repose sur deux éléments obligatoires à inclure dans chaque appel :

  • Identifiant API (login)
  • Mot de passe API

Toutes les requêtes doivent être transmises en HTTPS. Ces identifiants sont distincts entre les environnements de test et de production.

Pour récupérer vos identifiants API, suivez les étapes suivantes :

3.1. Étape 1 – Accéder au Portail Marchand

  • Pour l’environnement de production : https://backoffice.centralpay.net/
  • Pour l’environnement de test : https://test-backoffice.centralpay.net/

3.2. Étape 2 – Ouvrir la section technique

Depuis le menu de navigation : Administration > Mon compte > Technique

  • Lien direct en production : https://backoffice.centralpay.net/admin/actor/account#technical_tab
  • Lien direct en test : https://test-backoffice.centralpay.net/admin/actor/account#technical_tab

3.3. Étape 3 – Récupérer l’Identifiant API (login)

  1. Dans l’onglet Technique, localisez la zone « Identifiant API »
  2. Cliquez sur l’identifiant affiché pour l’ouvrir en détail
  3. Copiez la valeur indiquée dans le champ Login

⚠️ Ce login est à fournir dans l’en-tête Authorization de vos requêtes (sous forme de base64 avec le mot de passe, voir plus bas).

3.4. Étape 4 – Générer un Mot de passe API

  1. Toujours dans le même écran, cliquez sur le bouton Modifier
  2. Cliquez ensuite sur Générer un mot de passe
  3. Copiez immédiatement le mot de passe généré, attention il n’est affiché qu’une seule fois
  4. Cliquez enfin sur Mettre à jour pour valider le nouveau mot de passe

Si vous perdez le mot de passe, vous devrez recommencer cette opération pour en générer un nouveau.

ℹ️ Bonnes pratiques :
- L’identifiant et le mot de passe peuvent être révoqués ou régénérés à tout moment depuis le portail marchand.
- Ne partagez jamais ces identifiants en clair.
- Stockez le mot de passe dans un gestionnaire sécurisé après sa génération.

4. Clé publique Marchand (MerchantPublicKey)

Certains services, comme cardToken, ne nécessitent pas d’identifiant/mot de passe mais uniquement une clé publique marchand (MerchantPublicKey) pour authentifier la requête.

Où la trouver :

  • Connectez-vous au Portail Marchand de production ou de test
  • Accédez à : Administration > Technique
  • Copiez la clé dans la section Merchant Public Key

5. Méthodes HTTP et MIME Types

Nos APIs sont conformes au style REST, avec les méthodes HTTP suivantes :

MéthodeUsage
POSTCréation ou mise à jour d’un objet
GETRecherche ou consultation d’un objet
DELETESuppression d’un objet

Les types MIME suivants sont utilisés :

  • application/x-www-form-urlencoded
  • multipart/form-data

Le Content-Type doit être systématiquement précisé dans les en-têtes HTTP.

6. En-têtes HTTP à utiliser

Chaque appel API doit inclure un certain nombre d’en-têtes HTTP correctement renseignés :

En-tête HTTPDescription
AuthorizationEncodage HTTP Basic avec l’identifiant et le mot de passe API
Content-TypeObligatoire pour toutes les requêtes. Doit être : application/x-www-form-urlencoded ou multipart/form-data
User-AgentFortement recommandé, utile pour tracer les intégrations
Idempotence-Key (optionnel mais conseillé)Permet d’éviter les doublons en cas de réémission d’une même requête

7. Idempotence : sécuriser les réémissions

L’en-tête Idempotence-Key permet de garantir qu’une même requête envoyée plusieurs fois avec la même clé ne sera traitée qu’une seule fois.

Cela est particulièrement utile lors d’une erreur réseau ou d’un doute sur la réussite d’un appel.

La valeur de l’en-tête Idempotence-Key est un hachage SHA1 des principaux champs métier de la requête. Elle doit être unique par combinaison fonctionnelle de données. Exemple pour une opération carte :

ℹ️ Idempotence-Key = sha1(card[number] + card[cvc] + card[expirationMonth] + card[expirationYear] + card[check] + merchantPublicKey)

La clé Idempotence-Key est valable pendant 24h maximum sur nos serveurs

8. Réponses HTTP

Chaque réponse retournée par l’API contient des éléments de traçabilité utiles dans les en-têtes :

En-tête HTTPDescription
Request-IdIdentifiant unique attribué à chaque appel. Peut être communiqué au support CentralPay en cas d’analyse ou de litige technique.

La réponse JSON du corps dépend bien sûr de la ressource appelée (paiement, transfert, onboarding…), mais le header Request-Id est systématique.

9. Déclaration de vos domaines pour les services CustomForm

Pour certains services tels que cardToken, qui dépendent des formulaires embarqués (CustomForm), il est nécessaire de déclarer au préalable les domaines web qui hébergent ces formulaires.

Sans cette déclaration, toute tentative d’appel aux services concernés depuis un domaine non autorisé entraînera une erreur 403 (Forbidden).

  1. Connectez-vous au Portail Marchand :
    • Production
    • Test
  2. Accédez à :
    • Administration > Mon compte > Technique
  3. Cliquez sur Modifier
  4. Dans le champ Hosts Custom Forms autorisés, saisissez l’URL ou les domaines à autoriser (ex : https://www.votre-site.com)
  5. Enregistrez les modifications

Une fois cette étape effectuée, les services comme cardToken pourront être appelés depuis les domaines déclarés, conformément aux règles de sécurité imposées par CentralPay.

Portail Marchand

Le Portail Marchand est une interface web connectée aux APIs de CentralPay. Il permet de consulter l’activité et d’administrer votre Profil Marchand CentralPay. Les marchands Partenaires et Mandataires peuvent également consulter l’activité des profils de leurs marchands standards et participants.

Accès :

Recette Portail Marchand
Production Portail Marchand

1. Fonctionnalités

Le Portail Marchand 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 versement sortant (« payout »)
  • De générer des exports et de télécharger les rapports financiers mensuels
  • Pour les marchands Partenaires et Mandataires uniquement :
    • De créer et de consulter les demandes d’inscription (« merchant-enrollment »)
    • De consulter l »activité des profils marchands standards ou participants associés
ℹ️ Les comptes ayant des droits "Basic" (marchands participants de mandataires CentralPay) peuvent uniquement consulter les opérations dont ils sont bénéficiaires (transfer) et gérer leurs paramètres de versement (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 Marchand.

2.1. Gestion des profils utilisateurs « Legal » et « Natural »

Lors de la création du Profil Marchand CentralPay, le responsable ayant réalisé l’inscription (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 versements 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 :

Recette Portail Marchand – Gestion des profils utilisateurs BO
Recette Portail Marchand – 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 Marchand (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 du Portail Marchand, 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 :

Recette Portail Marchand – Gestion des rôles utilisateurs BO
Production Portail Marchand – 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 :

Recette Portail Marchand – Gestion des catégories de point de vente
Production Portail Marchand – Gestion des catégories de point de vente

3. Liste des types d’opérations visibles sur le Portail Marchand

Type d’objetValeurFonction
AUTHORIZATIONDébitAutorisation de blocage d’un montant d’une carte bancaire
TRANSACTIONCréditTransaction carte
TRANSACTION_CANCELDébitAnnulation de transaction carte
REFUNDCréditRemboursement transaction carte
REFUND_CANCELDébitAnnulation d’un remboursement transaction carte
DISPUTEDébitImpayé suite à la contestation d’une transaction carte
DISPUTE_WONCréditAnnulation d’un impayé carte
TRANSFERDébitTransfert de fonds entre comptes CentralPay
TRANSFER_CANCELCréditAnnulation transfert en attente
TRANSFER_REVERSALCréditRetour d’un transfert validé
PAYOUTDébitVirement sortant du compte CentralPay
PAYOUT_CANCELCréditAnnulation d’un virement sortant
PAYOUT_REVERSALCréditRetour d’un virement sortant validé
SCT_TRANSACTIONCréditVirement entrant
SCT_TRANSACTION_CANCELDébitAnnulation virement entrant avant son arrivée
SCT_TRANSACTION_REFUNDDébitAnnulation virement entrant après son arrivée par le marchand
SCT_TRANSACTION_REVERSALDébitAnnulation virement entrant après son arrivée par CentralPay
CREDITDébitCrédit sur carte non lié à une transaction
CREDIT_CANCELCréditAnnulation d’un crédit sur carte
SDD_TRANSACTIONCréditPrélèvement SEPA d’un compte bancaire externe
SDD_TRANSACTION_CANCELDébitAnnulation d’un prélèvement d’un compte externe avant son arrivée
SDD_TRANSACTION_REVERSALDébitRemboursement d’un prélèvement d’un compte externe après son arrivée
DEPOSITCréditChargement d’une somme sur un compte CentralPay

Guide : Mes comptes

L’entrée Mes comptes du Portail Marchand CentralPay est l’espace dédié au suivi financier de vos comptes (comptes rattachés à votre Profil Marchand) : consultation des informations de compte, suivi des opérations réalisées et à venir, lecture des soldes historisés, et téléchargement des relevés mensuels officiels.

Cette rubrique est particulièrement utile pour les équipes comptables, la direction financière et les personnes en charge du rapprochement et des clôtures.

Accéder au Portail Marchand > Mes comptes

1. Sous-entrées disponibles

La rubrique Mes comptes se compose de 4 sous-entrées :

  • Vue d’ensemble
  • Opérations (incluant l’onglet Opérations à venir)
  • Solde
  • Relevés de compte
ℹ️ Selon votre profil ou votre configuration, l’accès à certaines sous-entrées peut varier. La logique fonctionnelle reste identique.

2. Vue d’ensemble

La sous-entrée Vue d’ensemble permet d’identifier rapidement le compte sélectionné et d’obtenir une lecture immédiate de sa situation financière.

2.1. Informations de compte

Vous y retrouvez notamment les informations clés du compte :

  • Titulaire du compte
  • IBAN et BIC
  • Devise
  • Type de compte
  • Libellé du compte (sélecteur utile si plusieurs comptes sont rattachés à votre profil marchand)

2.2. Solde temps réel

Le bloc Solde temps réel donne une vision instantanée du solde, avec une distinction utile pour la gestion quotidienne :

  • Fonds disponibles (Valeur immédiatement accessible sur votre compte)
  • Débits programmés (Montants des reversements et R-transactions programmés à une date ultérieure)
ℹ️ Selon votre configuration, un « solde de compte de réserve » peut également être affiché.

2.3. Évolution sur période

Un graphique permet d’observer l’évolution sur une période en combinant :

  • le solde
  • les opérations à venir (vision prévisionnelle)

3. Opérations

La sous-entrée Opérations affiche la liste des mouvements affectant le compte, avec un onglet Opérations à venir pour les mouvements attendus mais non encore réalisés. C’est la vue principale pour le rapprochement comptable et la production d’exports.

3.1. Deux notions de date à connaître

Pour une lecture comptable fiable, la vue distingue généralement :

  • Date de valeur : date à laquelle l’opération est considérée comme effective sur le plan financier/comptable (très utilisée pour le rapprochement et les clôtures).
  • Date d’opération : date/heure de l’évènement (utile pour investiguer une chronologie ou recouper un historique).
ℹ️ Recommandation : pour une clôture ou un rapprochement, partez plutôt de la « date de valeur ». Pour une investigation, la « date d’opération » est souvent plus parlante.

3.2. Rechercher une opération

Le moteur de recherche permet de retrouver rapidement une opération à partir d’un critère comptable, d’une référence ou d’un identifiant.

Filtres essentiels

FiltreÀ quoi ça sertParticularités / Bonnes pratiques
CompteRestreindre l’affichage aux opérations d’un compte spécifique.Indispensable si plusieurs comptes sont rattachés à votre profil. Commencez par sélectionner le compte avant d’appliquer d’autres filtres.
Période (date de valeur)Filtrer les opérations sur une période comptable de référence.Base de travail pour les clôtures et le rapprochement. Recommandé : définissez toujours une période avant d’ajouter des critères plus fins (référence, montant, etc.).
MontantRechercher une ou plusieurs opérations correspondant à un montant précis.À combiner avec Compte et Période pour éviter trop de résultats, surtout si vous avez un volume d’opérations de même montant important.
RéférenceRetrouver une opération via votre référence métier personnalisée (commande, facture, identifiant interne, etc.).Très utile si vos équipes utilisent un identifiant commun entre votre système et CentralPay. Peut aussi servir à regrouper plusieurs lignes liées à un même évènement selon votre paramétrage.
Operation IDRechercher une opération via son identifiant CentralPay unique.Le filtre le plus précis : un Operation ID correspond à une ligne unique. À privilégier pour les investigations support/audit lorsque l’identifiant est connu.
LibelléRechercher une opération à partir de son intitulé descriptif (recherche par mots-clés).Utile lorsque vous ne disposez pas d’un identifiant (Operation ID, référence). Pratique pour retrouver une opération “à partir de ce qui est visible” dans la liste.
TypeIsoler une famille d’opérations (carte, virement, prélèvement, remboursement, contestations, etc.).Idéal pour analyser un périmètre (ex. uniquement les virements entrants) ou préparer un export ciblé avant rapprochement.

Filtres avancés

Les filtres avancés sont utiles pour les investigations (support/audit), l’analyse de reversements et les exports comptables. Le tableau ci-dessous résume leur objectif et leurs particularités.

FiltreÀ quoi ça sertParticularités / Bonnes pratiques
NatureQualifier l’origine comptable et fonctionnelle d’une opération afin de distinguer rapidement les écritures Frais, Fonds et Gestion. Frais : opérations liées aux coûts et commissions débités ou crédités sur le compte, associés à l’utilisation des services (ex. frais d’opérations, commissions, remboursements ou corrections de frais).
Fonds : opérations correspondant aux flux financiers qui entrent ou sortent du compte dans le cadre de son activité (ex. transactions clients, versements sortants, remboursements de transaction).
Gestion : opérations internes CentralPay réalisées pour ajuster ou sécuriser le solde du compte (ex. mouvements de réserve, gage espèces, ajustements techniques ou écritures de régularisation).
Source IDRegrouper des opérations liées entre elles (ex. une autorisation carte, la transaction associée, et son remboursement) afin d’analyser un parcours complet. Le Source ID est un identifiant permettant de regrouper différentes opérations liées.
Vous pouvez soit :
• cliquer sur « Filtrer par ce Source ID » depuis une opération de la liste des résultats ;
• ou renseigner le Source ID dans le moteur de recherche afin d’afficher toutes les opérations rattachées à ce même identifiant.
Numéro de payoutRetrouver toutes les opérations liées à un reversement (payout) et en analyser la composition (fonds, frais, ajustements…). Ce filtre regroupe toutes les opérations rattachées à un même reversement (payout), ce qui permet d’en comprendre le détail et la composition.

Comment obtenir le numéro de payout ?
• Recherchez l’opération de versement sortant (PAYOUT), ouvrez son détail (bouton d’action), puis cliquez sur « Voir les opérations du payout » : le portail applique automatiquement le filtre et affiche les opérations concernées.
• À défaut, vous pouvez le déduire depuis la référence du versement sortant : les derniers chiffres correspondent au numéro de payout (ex. PAYOUT-7usge67-153 → numéro de payout = 153).

À noter : le détail des opérations d’un versement sortant est disponible uniquement lorsque les payouts automatiques sont activés. Le premier payout automatique peut ne pas afficher le détail attendu (calibrage du mode de calcul).
Tiers
(Tiers / Type tiers / ID tiers / Pays tiers)
Filtrer les opérations selon la contrepartie impliquée (autre que vous), pour analyser des flux par acteur.Le tiers est la personne morale ou physique impliquée dans l’opération autre que vous (par exemple un client, CentralPay, un autre marchand, un compte externe…).
Vous pouvez filtrer soit :
• par Tiers : nom du tiers (champ libre) ;
• par ID tiers : identifiant CentralPay du tiers (par exemple CustomerID ou MerchantID), pour une recherche précise ;
• par Type tiers : un des quatre types suivants : Customer, Marchand, CentralPay, Compte externe ;
• par Pays tiers : pays dans lequel le tiers est déclaré (par exemple selon la région d’émission de sa carte si c’est un Customer), ce qui peut être utile notamment pour certains besoins de reporting (ex. déclarations de TVA).

3.3. Synthèse débits / crédits

La page présente une synthèse des débits et crédits sur la période filtrée (volume et montant), avec une ventilation possible par nature d’opération (frais, fonds, gestion). Cette lecture permet de vérifier rapidement la cohérence d’une période avant export.

3.4. Exports comptables personnalisés

Depuis la vue Opérations, vous pouvez générer des exports aux formats CSV, Excel ou JSON. Le principe est simple :

  • Paramétrez votre recherche (compte, période, filtres utiles).
  • Lancez la recherche, puis cliquez sur Exporter.
  • Vous recevez le fichier par email et pouvez le télécharger à tout moment depuis le Portail Marchand (rubrique Fichiers d’export).
Voir la documentation : Exports comptables et relevés de compte

4. Solde

La sous-entrée Solde fournit une vision historisée des soldes par compte, structurée par date de valeur (lecture « fin de journée »).

Vous y retrouvez généralement :

  • Solde de clôture (fin de journée)
  • Opérations à venir (agrégat des mouvements attendus)
  • Solde prévisionnel (solde tenant compte des opérations à venir)
ℹ️ Cas d’usage : justifier un solde « à date » (clôture, contrôle interne), ou comparer une situation constatée vs prévisionnelle.

5. Relevés de compte

La sous-entrée Relevés de compte donne accès aux relevés mensuels officiels de votre compte CentralPay. Ces documents sont les justificatifs de référence pour la comptabilité et les preuves administratives.

Chaque début de mois, en plus de la facture, un relevé de compte est généré et mis à disposition dans l’espace sécurisé : Mes comptes > Relevés de compte.

Deux types de relevés peuvent être proposés :

  • Relevé détaillé : fait apparaître l’ensemble des opérations de la période.
  • Relevé synthétique : regroupe les opérations par jour et par type d’opération.
⚠️ Si vous possédez un grand nombre d’opérations, il est possible que toutes n’apparaissent pas sur le relevé détaillé. Dans ce cas, nous vous conseillons de réaliser un export au format CSV, Excel ou JSON.
Voir la documentation : Exports comptables et relevés de compte

6. Actions fréquentes

6.1. Clôture mensuelle

  1. Allez dans Opérations, filtrez par Compte et Période (date de valeur).
  2. Vérifiez la synthèse débits / crédits et la ventilation par nature (frais / fonds / gestion).
  3. Générez un export comptable (colonnes adaptées à votre rapprochement).
  4. Ou téléchargez directement le relevé mensuel dans Relevés de compte pour archivage et justificatif officiel (1 relevé par compte).

6.2. Rapprochement des opérations liée à un versement sortant (payout)

  1. Allez dans Mes comptes > Opérations et, si besoin, sélectionnez d’abord le Compte concerné.
  2. Retrouvez l’opération de versement sortant (PAYOUT), ouvrez son détail (bouton d’action), puis cliquez sur « Voir les opérations du payout » : le Portail applique automatiquement le filtre Numéro de payout et affiche uniquement les opérations rattachées à ce versement.
  3. Analysez la composition du versement à l’aide du filtre Nature pour distinguer les lignes de Fonds, Frais et Gestion (ajustements), puis vérifiez la cohérence du montant global.
  4. Si nécessaire, générez un export (CSV / Excel / JSON) afin d’archiver le détail du payout ou de l’intégrer à votre rapprochement.
ℹ️ Alternative : le numéro de payout peut aussi être déduit de la référence du versement sortant (ex. PAYOUT-7usge67-153 → numéro de payout = 153).
⚠️ Le détail des opérations d’un versement sortant est disponible uniquement lorsque les payouts automatiques sont activés. Le premier payout automatique peut ne pas afficher le détail attendu (calibrage du mode de calcul).

6.3. Justifier un solde à date

  1. Allez dans Solde pour retrouver le solde de clôture à la date souhaitée.
  2. Complétez si nécessaire par le relevé mensuel dans Relevés de compte.

Portail Client

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 profil Marchand CentralPay :

Recette Portail Client
Production Portail Client

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 Marchand : Compte Customer Détail CustomerId

  • Portail Client de RCT : https://test-customer.centralpay.net/customer/?uuid=[CustomerId]
  • Portail Client de PROD : https://customer.centralpay.net/customer/?uuid=[CustomerId]

Portail d'inscription

Le portail d’inscription permet la création d’un profil Marchand CentralPay en assurant les étapes d’entrée en relation : 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 marchands Mandataires, il permet donc de créer facilement des Profils Marchands Participants 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’inscription à l’un de vos futurs participants, vous pouvez utiliser le service de demande d’enrôlement.

Accès :

Recette Portail d’Inscription
Production Portail d’Inscription

Tarifs

Offres commerciales

CentralPay propose une tarification juste et transparente, adaptée à votre volume d’encaissement et à votre activité. Les tarifs sont dégressifs : plus votre volume augmente, plus les frais unitaires diminuent.

Les frais sont calculés sur la base des volumes de transactions réalisées le mois précédent.

Deux solutions, selon votre besoin

Smart Collection

Accédez gratuitement à la solution d’encaissement : pas d’abonnement, vous payez uniquement des frais à l’utilisation.

Easy Wallet

Accédez à des services complémentaires (notamment la gestion de comptes / wallets) avec un forfait mensuel en plus des frais à l’utilisation.

Aucun surcoût lié aux réseaux cartes

Toutes les offres CentralPay intègrent les frais d’interchange et de réseaux cartes facturés par les banques : vous n’avez donc aucun surcoût à prévoir.

👉 Pour obtenir une estimation selon votre volume et contacter notre équipe commerciale :

Voir les tarifs publics 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 (Vente à distance, E-commerce)

Cartes émises dans l’Espace Economique Européen (EEE)

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitEEECB0,200%0,025%0,225%
Cartes personnellesDébitEEEVISA0,200%0,231%0,431%
Cartes personnellesDébitEEEMastercard0,200%0,219%0,419%
Cartes personnellesCréditEEECB0,300%0,025%0,325%
Cartes personnellesCréditEEEVISA0,300%0,231%0,531%
Cartes personnellesCréditEEEMastercard0,300%0,219%0,519%
Cartes professionnellesToutesEEECB0,900%0,025%0,925%
Cartes professionnellesToutesEEEVISA1,450%0,070%1,520%
Cartes professionnellesToutesEEEMastercard1,450%0,171%1,621%
Cartes personnellesToutesEEEAMEX0,000%1,600%1,600%
Cartes professionnellesToutesEEEAMEX0,000%1,600%1,600%

Cartes internationales, émises hors de l’Espace Economique Européen

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitInternationaleVISA1,150%1,343%2,493%
Cartes personnellesDébitInternationaleMastercard1,150%1,343%2,493%
Cartes personnellesCréditInternationaleVISA1,500%1,499%2,999%
Cartes personnellesCréditInternationaleMastercard1,500%0,951%2,451%
Cartes professionnellesToutesInternationaleVISA2,000%0,700%2,700%
Cartes professionnellesToutesInternationaleMastercard2,000%0,951%2,951%
Cartes personnellesToutesInternationaleAMEX0,000%2,400%2,400%
Cartes professionnellesToutesInternationaleAMEX0,000%2,400%2,400%

2. Frais d’interchange et réseaux carte (paiement de proximité)

Cartes émises dans l’Espace Economique Européen (EEE)

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitEEECB0,200%0,025%0,225%
Cartes personnellesDébitEEEVISA0,200%0,231%0,431%
Cartes personnellesDébitEEEMastercard0,200%0,219%0,419%
Cartes personnellesCréditEEECB0,300%0,025%0,325%
Cartes personnellesCréditEEEVISA0,300%0,231%0,531%
Cartes personnellesCréditEEEMastercard0,300%0,219%0,519%
Cartes professionnellesToutesEEECB0,900%0,025%0,925%
Cartes professionnellesToutesEEEVISA1,450%0,070%1,520%
Cartes professionnellesToutesEEEMastercard1,450%0,171%1,621%
Cartes personnellesToutesEEEAMEX0,000%1,600%1,600%
Cartes professionnellesToutesEEEAMEX0,000%1,600%1,600%

Cartes internationales, émises hors de l’Espace Economique Européen

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitInternationaleVISA1,150%1,343%2,493%
Cartes personnellesDébitInternationaleMastercard1,150%1,343%2,493%
Cartes personnellesCréditInternationaleVISA1,500%1,499%2,999%
Cartes personnellesCréditInternationaleMastercard1,500%0,951%2,451%
Cartes professionnellesToutesInternationaleVISA2,000%0,700%2,700%
Cartes professionnellesToutesInternationaleMastercard2,000%0,951%2,951%
Cartes personnellesToutesInternationaleAMEX0,000%2,400%2,400%
Cartes professionnellesToutesInternationaleAMEX0,000%2,400%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 autonomie
2 heures d’accompagnement équipe Service Client
Inclus
(offres Starter, Medium et Major Company)
Accompagnement standard
Analyse technique du projet par équipe Service Intégration
2 heures d’accompagnement équipe Service Intégration
2 heures d’accompagnement équipe Service Client
490 €
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 autonomie
3 heures d’accompagnement équipe Service Client
Inclus
(offres Medium et Major Partner)
Accompagnement standard
Analyse technique du projet par équipe Service Intégration
5 heures d’accompagnement équipe Service Intégration
5 heures d’accompagnement équipe Service Client
990 €
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 h
2 heures d’accompagnement équipe Service Client, consommables par périodes de 30 minutes.
250 €
Forfait d’accompagnement 5 h
5 heures d’accompagnement équipe Service Client, consommables par périodes de 30 minutes.
490 €
Forfait d’accompagnement 10 h
10 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

Trust Center

Conformité et résilience opérationnelle

Dernière mise à jour : 30 juin 2025

« Notre engagement pour protéger vos transactions et assurer un service sans interruption. Un dispositif aligné sur les exigences européennes en matière de sécurité et de continuité des services financiers »

1. Gouvernance et organisation de la sécurité

Chez CentralPay, la sécurité n’est pas seulement un ensemble de règles techniques, mais une démarche de gouvernance intégrée à tous les niveaux de l’entreprise. Notre dispositif repose sur une organisation claire, des responsabilités définies et une supervision régulière par la direction.

La politique de sécurité constitue le socle de ce dispositif. Elle fixe les principes directeurs en matière de protection des données et de continuité des services. Mise à jour chaque année, elle est validée en comité de direction et diffusée à l’ensemble des collaborateurs concernés. Chaque employé est ainsi sensibilisé aux bonnes pratiques et s’engage à respecter les règles établies.

La gouvernance TIC est structurée autour de plusieurs acteurs clés. Le Responsable de la Sécurité des Systèmes d’Information (RSSI) pilote la stratégie globale, supervise les contrôles de sécurité et veille à la conformité avec les standards internationaux (PCI DSS, DORA). La direction technique est en charge de l’exploitation quotidienne des infrastructures et garantit la disponibilité des systèmes critiques. Enfin, un Comité TIC se réunit régulièrement afin d’analyser les incidents, de valider les évolutions techniques et budgétaires, et d’assurer une amélioration continue de la sécurité.

Cette organisation permet de concilier réactivité opérationnelle et exigence réglementaire. Elle offre également à nos clients une visibilité claire : la sécurité est suivie, pilotée et contrôlée de manière documentée, avec un partage des responsabilités entre le management, les équipes techniques et la direction générale.

2. Gestion des accès et habilitations

La gestion des accès constitue l’un des piliers de la sécurité de CentralPay. Chaque droit d’accès est attribué selon une procédure formalisée et validée par le management, afin de s’assurer qu’il corresponde strictement aux besoins métier du collaborateur. À l’arrivée d’un nouvel employé, ses accès sont créés dans l’Active Directory et validés par son supérieur hiérarchique ; au départ, ils sont immédiatement révoqués par le service informatique.

La sécurité repose également sur le principe du moindre privilège : nul ne peut accéder à plus de ressources que ce qui est strictement nécessaire à sa mission. Les accès sensibles, comme ceux aux systèmes critiques ou aux bases de données, font systématiquement l’objet d’une authentification multi-facteurs (MFA). Pour renforcer ce dispositif, des revues périodiques des habilitations sont menées chaque trimestre, permettant d’identifier et de corriger toute anomalie.

Cette rigueur garantit une maîtrise complète des identités et des droits, et protège nos clients contre tout risque d’accès non autorisé à leurs données.

3. Sécurité technique

La sécurité technique de CentralPay repose sur une architecture conçue selon les principes de défense en profondeur. Chaque couche – du réseau jusqu’aux applications – bénéficie de mécanismes de protection redondants et régulièrement testés.

Cloisonnement des réseaux

L’infrastructure est segmentée en plusieurs zones :

  • DMZ publique pour les serveurs exposés à Internet (reverse proxy, WAF, relais SMTP) ;
  • zone interne pour les bases de données et services sensibles ;
  • réseau administratif réservé aux opérations d’administration ;
  • zone de logs isolée pour la collecte et l’analyse des journaux.

Les flux entre ces zones sont strictement contrôlés par des firewalls en redondance, configurés en stateful inspection et avec des règles de NAT. Ces firewalls intègrent des mécanismes d’anti-spoofing et de détection d’anomalies de trafic. Les configurations sont maintenues par le groupe « administrateurs systèmes et réseau » et font l’objet d’une revue périodique.

Protection physique et logique

L’accès aux locaux de production est contrôlé par badge nominatif, surveillance vidéo et télésurveillance (SECURITAS). L’accès aux salles serveurs et à la zone PCI est limité aux personnes habilitées.
Sur le plan logique, chaque accès aux systèmes se fait par identifiant unique, renforcé par MFA. Les droits sont attribués en fonction des rôles définis et selon le principe du moindre privilège.

Surveillance et détection d’intrusion

La surveillance est assurée en continu grâce à une combinaison d’outils :

  • Zabbix, pour le monitoring temps réel des serveurs, applications et flux critiques ;
  • Wazuh, intégré avec Snort, pour la détection d’intrusions et la corrélation des événements ;
  • ElasticSearch/Kibana, pour l’agrégation et la visualisation des logs.

Les alertes critiques sont transmises en temps réel aux équipes techniques par mail et SMS, et leur traitement est tracé dans un registre d’incidents.

Chiffrement et gestion des clés

Les données de paiement sensibles (PAN, dates d’expiration) sont chiffrées en AES-256 et rendues illisibles via un hash SHA-512 avec salt pour les comparaisons.
La gestion des clés est réalisée exclusivement au sein de modules matériels de sécurité (HSM) certifiés. La clé maîtresse est fragmentée en plusieurs composantes, détenues par des personnes distinctes, afin d’éviter tout risque de compromission. Les clés applicatives ne peuvent pas être exportées en clair et leur usage est strictement tracé.

En combinant ces mesures, CentralPay garantit un environnement technique robuste, conforme aux exigences PCI DSS 4.0.1 et aux standards de résilience DORA.

4. Gestion des risques et des incidents

La maîtrise des risques constitue un axe stratégique de la gouvernance CentralPay. L’approche adoptée vise à anticiper les menaces, limiter leur probabilité de survenance et garantir une réponse rapide et efficace en cas d’incident.

Gestion des risques

Chaque année, une étude de risques est menée sur la base de la méthodologie Ebios, intégrant :

  • l’identification des risques liés à la sécurité (intrusions, attaques malveillantes, fuites de données) et au fonctionnement (pannes techniques, défaillances logicielles) ;
  • leur analyse en termes de probabilité et d’impact métier ;
  • leur classification en Low, Medium ou High ;
  • leur traitement via des mesures de prévention (patching, segmentation réseau, chiffrement, supervision) ou de mitigation (plans de contournement, redondances).

Le registre des risques est mis à jour en continu et présenté lors des revues annuelles de direction.

Gestion des incidents

CentralPay a mis en place une procédure complète de gestion des incidents, alignée sur les obligations DORA et les orientations de l’EBA :

  • Détection : par monitoring automatisé (Zabbix, Wazuh) ou par signalement interne/externe (clients, partenaires).
  • Qualification : chaque incident est analysé et classé selon son impact, sa durée, sa portée géographique et sa criticité.
  • Priorisation : une matrice d’évaluation (urgence de résolution et impact financier) permet de définir des niveaux de priorité allant de 1 à 4.
  • Notification réglementaire : les incidents qualifiés comme « majeurs » font l’objet d’un reporting à l’ACPR :
    • rapport initial transmis dans les 4 heures,
    • rapport intermédiaire sous 3 jours ouvrés,
    • rapport final sous 20 jours.

Transparence et retour d’expérience

En parallèle du reporting réglementaire, les incidents majeurs font l’objet d’une communication transparente envers les clients impactés. Une analyse post-mortem est systématiquement menée afin de tirer les enseignements, renforcer les procédures existantes et mettre en place des actions correctives.

Ce dispositif permet à CentralPay non seulement de répondre efficacement aux incidents, mais surtout de renforcer continuellement sa résilience et la confiance de ses clients.

5. Tests de résilience

CentralPay considère que la résilience d’une infrastructure ne se prouve pas uniquement sur le papier mais par des tests réguliers et documentés. C’est pourquoi la plateforme organise différents scénarios de test visant à mesurer son niveau de sécurité, sa capacité de reprise et la réactivité de ses équipes.

Tests d’intrusion

Les tests d’intrusion sont réalisés de manière récurrente par des équipes internes et par des prestataires spécialisés, afin de bénéficier d’un regard externe indépendant. Trois méthodologies sont appliquées :

  • Black-box : l’auditeur ne dispose d’aucune information préalable, ce qui simule le comportement d’un attaquant externe ;
  • Grey-box : l’auditeur dispose d’informations partielles (comptes utilisateurs limités, schémas d’architecture simplifiés) afin de reproduire un scénario réaliste d’utilisateur malveillant ;
  • White-box : l’auditeur dispose d’une connaissance complète de l’architecture, permettant une analyse approfondie et la détection de vulnérabilités complexes.

Ces tests couvrent à la fois les couches réseau et applicatives, avec un focus particulier sur les vulnérabilités répertoriées par le Top Ten OWASP. Les résultats font l’objet de rapports détaillés, comprenant une classification des failles selon leur criticité (Critical, High, Medium, Low) et des recommandations de remédiation.

Tests de segmentation réseau

CentralPay réalise aussi des tests de segmentation afin de vérifier que les cloisonnements logiques entre les zones (DMZ, interne, administration, logs) sont efficaces et qu’aucun flux non autorisé n’est possible. Ces tests garantissent que, même en cas de compromission d’une zone exposée, l’attaquant ne puisse pas atteindre les systèmes critiques.

Exercices de simulation et bascules PCA

En parallèle des tests techniques, des exercices de simulation de crise sont menés. Ces exercices impliquent plusieurs équipes (techniques, conformité, direction) et simulent des scénarios d’attaque ou de panne majeure. L’objectif est de tester non seulement la robustesse de l’infrastructure, mais aussi la qualité de la coordination et de la communication en situation de crise.

Enfin, des tests de bascule PCA sont organisés au minimum une fois par an. Ils permettent de vérifier que les services critiques peuvent être transférés vers le site secondaire dans les délais prévus et que les équipes maîtrisent parfaitement les procédures de reprise.

Ces différents tests, documentés et suivis, démontrent la volonté de CentralPay de s’inscrire dans une démarche d’amélioration continue de sa résilience.

6. Haute disponibilité et PCA

La disponibilité des services de paiement est une exigence absolue pour CentralPay. Afin de garantir une continuité sans faille, l’entreprise a conçu son architecture autour du principe de haute disponibilité (HA) et d’un Plan de Continuité d’Activité (PCA) multi-sites.

Architecture multi-sites

CentralPay dispose de deux sites distincts : un site de production principal et un site secondaire dédié au PCA. Ces sites sont opérés par des fournisseurs différents, intègrent un routage BGP et utilisent des accès Internet fournis par plusieurs opérateurs, ce qui réduit le risque de dépendance vis-à-vis d’un seul acteur.

Redondance des composants

Chaque composant critique est déployé en redondance :

  • Firewalls et load balancers : configurés en actif/actif ou actif/passif, permettant une bascule automatique en cas de défaillance ;
  • Serveurs applicatifs : répartis sur plusieurs nœuds afin de garantir la tolérance aux pannes ;
  • Bases de données : répliquées en temps réel entre les sites de production et de PCA, assurant un RPO quasi nul ;
  • Proxys applicatifs et WAF : disposés en frontal pour absorber les charges et filtrer les menaces, avec bascule automatique.

Objectifs de reprise (RTO et RPO)

  • RPO (Recovery Point Objective) : grâce à la réplication continue, les données critiques peuvent être restaurées à l’état quasi instantané précédant l’incident ;
  • RTO (Recovery Time Objective) : les mécanismes de bascule automatique permettent un retour en service des applications critiques en quelques minutes à une heure maximum selon le type de composant.

Scénarios de bascule et tests

Le PCA est conçu pour répondre à divers scénarios : panne matérielle, défaillance réseau, indisponibilité d’un datacenter, attaque cyber majeure. Chaque scénario dispose d’un plan d’action documenté. Des tests réguliers de bascule confirment que les engagements RTO/RPO sont tenus dans la pratique.

Grâce à ce dispositif, CentralPay assure à ses clients que, même en cas d’incident majeur, leurs transactions de paiement resteront disponibles et sécurisées.

7. Continuité et sauvegardes

La continuité des services de CentralPay ne repose pas uniquement sur la redondance de son infrastructure et le PCA. Elle est également assurée par une politique stricte de sauvegarde et de restauration des données.

Sauvegardes quotidiennes et chiffrées

Les données critiques – qu’il s’agisse des données de paiement ou des données opérationnelles de la plateforme – font l’objet de sauvegardes quotidiennes. Celles-ci sont chiffrées en AES-256, conformément aux standards internationaux, afin de garantir leur confidentialité en cas d’accès non autorisé.

Stockage sécurisé et rotation

Les sauvegardes sont stockées selon une logique de redondance et de rotation :

  • Une copie est conservée sur les serveurs de sauvegarde internes, protégés par des accès restreints ;
  • Une copie est déplacée et conservée dans un coffre-fort sécurisé ;
  • D’autres copies sont externalisées hors site, afin de garantir la disponibilité même en cas de sinistre physique affectant un site.

La rotation régulière des supports assure que les sauvegardes restent fiables et exploitables.

Tests de restauration

La valeur d’une sauvegarde ne se mesure pas uniquement à sa conservation mais aussi à sa capacité à être restaurée. CentralPay procède donc à des tests de restauration réguliers, qui permettent de vérifier non seulement l’intégrité des données sauvegardées mais aussi la rapidité avec laquelle elles peuvent être réinjectées dans le système de production.

Grâce à cette approche, CentralPay garantit que, même en cas d’incident majeur, ses clients ne subiront pas de perte significative de données et pourront reprendre leurs activités sans interruption prolongée.

8. Gestion des prestataires critiques

CentralPay est conscient que la sécurité et la continuité de ses services dépendent également de la solidité de ses partenaires. C’est pourquoi l’entreprise a mis en place une gouvernance stricte autour de la gestion des prestataires critiques, en particulier ceux qui participent directement à l’hébergement, au traitement des données ou aux services de paiement.

Audits et certifications

Chaque année, un audit est conduit auprès de l’hébergeur principal et des prestataires considérés comme critiques. L’objectif est de vérifier la solidité de leurs dispositifs de sécurité, leurs capacités de continuité et leur conformité réglementaire.
Pour les prestataires qui traitent, stockent ou transmettent des données de cartes, CentralPay exige la certification PCI DSS et obtient une attestation de conformité (AOC) actualisée chaque année.

Clauses contractuelles et supervision

Les contrats avec les prestataires critiques incluent des clauses spécifiques DORA, portant notamment sur :

  • les engagements de service (SLA en matière de disponibilité et de performance),
  • les obligations de sécurité,
  • la mise en place d’un PCA/PRA compatible avec celui de CentralPay,
  • la notification immédiate en cas d’incident de sécurité.

CentralPay conserve une cartographie actualisée de l’ensemble de ses prestataires critiques et de leurs services associés. Ce registre est régulièrement mis à jour et constitue une base de reporting vers l’ACPR et les autorités de supervision.

Pérennité et amélioration continue

Enfin, la relation avec les prestataires ne se limite pas à un contrôle ponctuel. Les résultats des audits, les tests de continuité et les incidents éventuels sont présentés en comité de gouvernance. Des plans d’action sont ensuite décidés pour renforcer la sécurité ou la disponibilité des services externalisés.

Ainsi, CentralPay garantit à ses clients que les tiers qui contribuent à ses services critiques sont soumis au même niveau d’exigence que ses propres équipes.

FAQ - Conformité et résilience

Gouvernance et responsabilités

Qui est responsable de la sécurité chez CentralPay ?
La sécurité est pilotée par notre RSSI (Responsable de la Sécurité des Systèmes d’Information), rattaché directement à la Présidence. Le RSSI s’appuie sur un comité TIC et sur un cadre de gestion des risques aligné sur ISO 27005 et sur le règlement DORA. Le RSSI est joignable à l’adresse suivante : rssi@centralpay.com

Avez-vous une politique de sécurité documentée ?
Oui. Notre Politique de Sécurité du Système d’Information (PSSI) définit les règles applicables à l’ensemble de nos équipes et de nos prestataires. Elle couvre la classification des données, la gestion des accès, la protection des systèmes, la gestion des incidents, la continuité d’activité et l’encadrement des prestataires TIC.

Comment intégrez-vous la sécurité dans vos décisions stratégiques ?
La sécurité et la résilience sont intégrées à notre cadre global de gestion des risques. Celui-ci inclut une cartographie alignée ISO/DORA, une politique d’appétence aux risques, et un suivi par indicateurs (KRI). Les décisions de sécurité sont arbitrées au sein du comité Sécurité & Conformité et validées par la Direction Générale.

Comment contrôlez-vous vos dispositifs de sécurité ?
Nous appliquons le modèle des trois lignes de défense : les équipes métiers réalisent les contrôles opérationnels, la conformité et le contrôle permanent assurent la supervision, et le contrôle périodique réalise une évaluation indépendante.

Protection des données et des systèmes

Comment protégez-vous les données et systèmes de CentralPay ?
Toutes les données sont chiffrées : TLS 1.2/1.3 pour les échanges en transit et AES-256 pour le stockage. Les données de carte sont traitées uniquement dans un environnement certifié PCI DSS niveau 1 et immédiatement tokenisées, afin qu’aucun numéro complet ne soit conservé en clair.

Nos infrastructures sont segmentées et protégées par des firewalls, IDS/IPS et une supervision SOC. Les accès aux environnements sensibles sont limités, appliquent le principe du moindre privilège et sont protégés par MFA. Tous les postes de travail sont chiffrés, sécurisés par antivirus/EDR et mis à jour automatiquement.

Tests et contrôles de sécurité

Réalisez-vous des tests de sécurité ?
Oui. Nous effectuons régulièrement des tests de pénétration indépendants, des scans automatisés de vulnérabilités et des audits externes (dont PCI DSS). Ces contrôles permettent d’identifier les failles et de renforcer en permanence notre dispositif.

Comment gérez-vous la journalisation et les logs ?
Les journaux sont conservés 24 mois, horodatés, protégés par chiffrement et intégrés dans notre système de supervision (SIEM). Leur accès est strictement restreint aux équipes habilitées.

Comment gérez-vous les vulnérabilités et mises à jour ?
Nous appliquons une politique stricte de patch management : correction des vulnérabilités critiques sous 24h, vulnérabilités hautes sous 7 jours, et autres correctifs selon une fréquence planifiée. Le suivi est assuré par des scans et des rapports de conformité.

Organisation et culture sécurité

Comment sensibilisez-vous vos collaborateurs à la sécurité ?
Tous les collaborateurs suivent une formation annuelle obligatoire sur la cybersécurité, le RGPD et la LCB-FT. Des campagnes de sensibilisation régulières (exercices phishing, e-learning) complètent ce dispositif. Les équipes techniques bénéficient de formations renforcées.

Comment garantissez-vous que les accès restent limités ?
Nous appliquons le principe du moindre privilège : chaque utilisateur n’accède qu’aux ressources nécessaires à sa mission. Les droits sont justifiés, temporaires et systématiquement tracés.

Comment encadrez-vous les accès administrateurs ?
Les accès à privilèges élevés sont limités à un nombre restreint de personnes, soumis à MFA, tracés et revus régulièrement. Ils ne sont accordés que pour des besoins précis et pour une durée limitée.

Anticipation et amélioration continue

Comment anticipez-vous les menaces émergentes ?
Nous assurons une veille cybersécurité active via les bulletins CERT-FR, ANSSI, éditeurs logiciels et fournisseurs cloud. Cette activité de threat intelligence permet d’adapter nos défenses en temps réel.

Comment améliorez-vous en permanence votre sécurité ?
Chaque incident, audit ou test fait l’objet d’un retour d’expérience documenté et d’un plan d’actions correctives. Nos politiques et procédures sont revues annuellement pour intégrer ces enseignements et les évolutions réglementaires.

Résilience et continuité

Comment assurez-vous la continuité de vos services ?
Nous disposons d’un Plan d’Urgence et de Poursuite d’Activité (PUPA) intégrant un PCA (continuité) et un PRI (reprise). Ces plans sont régulièrement testés à travers des exercices de crise et des scénarios de bascule.

Comment garantissez-vous la disponibilité et la redondance ?
Nos services reposent sur une architecture redondée au sein de plusieurs zones européennes, permettant d’assurer une disponibilité de plus de 99,95 %.

Quels sont vos objectifs de RPO et RTO ?
CentralPay définit et teste régulièrement ses objectifs de continuité :

  • RPO (Recovery Point Objective) : inférieur à 1 minute pour les systèmes critiques, grâce à la réplication temps réel des données.
  • RTO (Recovery Time Objective) : inférieur à 15 mn pour la reprise des services essentiels, grâce à l’architecture redondée et aux procédures de bascule.
    Ces objectifs sont validés lors de nos exercices PCA/PRI et intégrés dans notre dispositif DORA.

Comment gérez-vous vos sauvegardes ?
Les sauvegardes sont chiffrées, isolées, redondées et régulièrement testées pour garantir leur restauration. Elles suivent les mêmes politiques de sécurité que les environnements de production.

Réalisez-vous des tests de résilience conformément à DORA ?
Oui. Nous réalisons des exercices de crise (cyberattaques simulées, pannes critiques), des tests de charge et de performance, des scénarios de bascule et, pour les fonctions critiques, des tests avancés de type TLPT (Threat-Led Penetration Testing).

Relations avec les prestataires

Comment sélectionnez-vous vos prestataires critiques ?
Chaque prestataire fait l’objet d’une due diligence (sécurité, conformité, localisation des données, SLA). Les contrats incluent des clauses RGPD et DORA (sécurité, notification d’incident, droit d’audit).

Comment contrôlez-vous vos prestataires dans la durée ?
Nous tenons un registre DORA recensant tous nos prestataires TIC et identifiant les prestataires critiques. Ces derniers font l’objet d’un suivi renforcé : revues régulières, audits, attestations ISO/PCI et évaluations de résilience.

Gestion des incidents

Que se passe-t-il en cas d’incident de sécurité ?
Nous appliquons une procédure de gestion des incidents incluant : détection, qualification, confinement, remédiation et forensic. Si nécessaire, nous notifions la CNIL sous 72h et informons les clients concernés. Chaque incident majeur donne lieu à un retour d’expérience et à un plan d’actions correctives suivi jusqu’à sa clôture.

Protection des données personnelles

Dernière mise à jour : 15/09/2025

Chez CentralPay, la protection des données personnelles est au cœur de nos engagements. En tant qu’Établissement de Monnaie Électronique agréé par l’ACPR (n° d’agrément 17138 nous traitons des données personnelles conformément au Règlement Général sur la Protection des Données (RGPD – UE 2016/679) et à la législation française applicable.

Cette politique présente, de manière claire et transparente, les traitements de données personnelles que nous réalisons dans le cadre de l’exécution de nos services de paiement.

1. Qui est responsable du traitement ?

Le responsable de traitement est :
CentralPay – 19 rue Edouard VAILLANT – 37000 TOURS
Contact DPO : dpo@centralpay.com

2. Quelles données collectons-nous ?

CentralPay collecte uniquement les données strictement nécessaires à la fourniture de ses services de paiement et au respect de ses obligations légales et réglementaires.

Données d’identification

  • Nom, prénom, civilité.
  • Date et lieu de naissance.
  • Nationalité.
  • Qualité (dirigeant, représentant légal, UBO).

Données de contact

  • Adresse email.
  • Numéro de téléphone (mobile ou fixe).
  • Adresse postale professionnelle ou personnelle (selon le cas).

Données de paiement

  • Coordonnées bancaires : IBAN et BIC.
  • Données de carte : numéro de carte (collecté uniquement dans un environnement sécurisé PCI DSS et immédiatement tokenisé), date d’expiration, schéma (Visa, Mastercard, etc.), pays émetteur, 4 derniers chiffres.
  • Important : CentralPay n’expose jamais le numéro complet ni le cryptogramme au marchand.

Données transactionnelles

  • Identifiant de transaction, date et heure.
  • Montant, devise, statut de paiement.
  • Référence commande (orderId).
  • Historique des opérations (paiements uniques, récurrents, fractionnés, remboursements).

Données de sécurité et de lutte contre la fraude

  • Adresse IP de connexion.
  • Empreinte technique du terminal (navigateur, langue, résolution écran) lors de l’authentification 3DS.
  • Résultats et scores antifraude internes.
  • Statut éventuel de mise en surveillance (liste noire technique).

Données de conformité KYC/LCB-FT

  • Pièces d’identité (CNI, passeport, titre de séjour).
  • Justificatifs de domicile (facture d’énergie, quittance).
  • Documents légaux de l’entreprise (Kbis, statuts, registre des bénéficiaires effectifs).
  • Informations sur les UBO (noms, pourcentages de détention).

Données techniques (liées aux services)

  • Journaux applicatifs et techniques (logs API).
  • Événements de traitement (webhooks envoyés aux marchands).
  • Identifiants techniques de suivi (transactionId, customerId, etc.).

3. Pour quelles finalités utilisons-nous vos données ?

CentralPay traite vos données personnelles uniquement pour des finalités déterminées, explicites et légitimes. Chaque traitement repose sur une base légale conforme au RGPD.

Exécution des paiements et gestion des services

  • Finalité : exécuter vos opérations de paiement (SEPA, carte, prélèvement, virement, récurrents ou fractionnés), assurer la facturation et gérer les flux financiers.
  • Données concernées : coordonnées bancaires (IBAN, BIC), données de carte (token, schéma, pays, PAN masqué), identifiants de transaction, montants, devises, références commandes.
  • Base légale : exécution du contrat (art. 6.1.b RGPD).

Vérification d’identité et obligations réglementaires (KYC/LCB-FT)

  • Finalité : satisfaire aux obligations légales de lutte contre le blanchiment des capitaux et le financement du terrorisme (LCB-FT), et aux exigences de supervision de l’ACPR.
  • Données concernées : données d’identification (nom, prénom, date de naissance, nationalité), pièces d’identité, justificatifs de domicile, documents légaux de l’entreprise, informations sur les UBO.
  • Base légale : obligation légale (art. 6.1.c RGPD, Code monétaire et financier art. L561-1 et suivants).

Prévention et détection de la fraude

  • Finalité : sécuriser les transactions, prévenir les paiements non autorisés ou frauduleux, appliquer les règles d’authentification renforcée (DSP2/3DS).
  • Données concernées : adresse IP, empreinte technique du navigateur/appareil, schéma et pays émetteur de la carte, résultats des contrôles antifraude, statut éventuel de mise en surveillance.
  • Base légale : obligation légale (DSP2) et intérêt légitime (sécurité des paiements – art. 6.1.f RGPD).

Gestion de la relation client et du support

  • Finalité : communiquer avec les clients et utilisateurs (confirmation d’opérations, envoi de liens de paiement, notifications), répondre aux demandes de support, assurer le suivi des réclamations et litiges.
  • Données concernées : email, téléphone, identifiants client, données transactionnelles associées.
  • Base légale : exécution du contrat (art. 6.1.b RGPD) et intérêt légitime (gestion de la relation client).

Respect d’obligations comptables, fiscales et probatoires

  • Finalité : conserver certaines données pour répondre aux obligations légales de conservation (Code de commerce, Code général des impôts), produire des justificatifs comptables et probatoires.
  • Données concernées : données transactionnelles (montants, devises, dates, statuts, références), coordonnées bancaires liées aux opérations.
  • Base légale : obligation légale (art. 6.1.c RGPD).

Amélioration de nos services et sécurité technique

  • Finalité : analyser l’usage de nos services, optimiser la performance, assurer la résilience et la cybersécurité, conformément au règlement DORA.
  • Données concernées : journaux techniques (logs), événements (webhooks), identifiants techniques, statistiques d’usage anonymisées.
  • Base légale : intérêt légitime (art. 6.1.f RGPD).

4. Quelle est la base légale de ces traitements ?

Chaque traitement repose sur une base légale clairement définie :

  • Exécution du contrat (art. 6.1.b RGPD) : exécution des paiements, gestion de compte, relation client, support.
  • Obligation légale (art. 6.1.c RGPD) : conformité LCB-FT (art. L561 CMF), obligations comptables et fiscales (Code de commerce, CGI), obligations réglementaires (DSP2, ACPR).
  • Intérêt légitime (art. 6.1.f RGPD) : prévention de la fraude, sécurité des systèmes, gestion des litiges, amélioration des services.
  • Consentement (art. 6.1.a RGPD) : uniquement pour certaines communications marketing optionnelles ou si requis par la loi.

5. Combien de temps conservons-nous vos données ?

CentralPay applique un calendrier de conservation strict, conforme aux exigences du RGPD, du Code monétaire et financier et du Code de commerce.

Nous distinguons :

a) Transactions financières (écritures comptables et probatoires)

  • Conservées 10 ans conformément aux obligations comptables et probatoires (art. L123-22 Code de commerce).
  • Données concernées : identifiants de transaction (transactionId), date, montant, devise, statut, référence commande (orderId).
  • Ces informations sont nécessaires à la preuve contractuelle et à la comptabilité et ne sont pas anonymisées.

b) Données personnelles associées aux transactions

  • Conservées 24 mois maximum puis anonymisées de manière irréversible.
  • Données concernées :
    • Coordonnées du payeur (email, téléphone),
    • Adresse IP, empreinte navigateur/appareil (3DS),
    • Données carte (token, PAN masqué, date d’expiration, schéma, pays émetteur),
    • Résultats antifraude (score, statut blacklist).
  • Ces informations ne sont plus conservées au-delà de 24 mois car elles ne sont plus nécessaires ni légalement ni contractuellement.

c) Données relatives aux cartes de paiement

  • Conservées jusqu’à 24 mois après la date d’expiration de la carte, puis supprimées/anonymisées.
  • CentralPay n’expose jamais le PAN complet ni le CVC hors de sa zone PCI DSS.

d) Données relatives aux comptes bancaires (IBAN/BIC) et mandats SEPA

  • Conservées pendant la durée du mandat + 10 ans (preuve contractuelle), puis supprimées/anonymisées.

e) Données KYC / LCB-FT

  • Conservées 5 ans après la fin de la relation d’affaires (art. L561-12 CMF), puis supprimées/anonymisées.
  • Données concernées : pièces d’identité, justificatifs de domicile, documents légaux de l’entreprise, informations sur les UBO.

f) Abonnements et paiements fractionnés

  • Conservés pendant la durée de l’abonnement + 5 ans (exigences probatoires), puis anonymisés.
  • Données concernées : identifiant d’abonnement, échéancier, lien vers moyen de paiement.

g) Journaux techniques et webhooks

  • Conservés 24 mois maximum, puis anonymisés.
  • Données concernées : logs API, événements de traitement, identifiants techniques (customerId, eventId), statuts, horodatages.

6. Qui sont les destinataires de vos données ?

Vos données peuvent être transmises uniquement à :

  • Services internes CentralPay (opérations, conformité, support, sécurité).
  • Partenaires de paiement et établissements bancaires (acquéreurs, systèmes de règlement SEPA, schémas carte).
  • Prestataires techniques (hébergement cloud, prestataire KYC, envoi SMS/email), soumis à des clauses contractuelles conformes RGPD.
  • Autorités compétentes (ACPR, TRACFIN, Banque de France, autorités judiciaires).

Nous ne revendons jamais vos données à des tiers.

7. Où sont traitées vos données ?

  • Les données sont hébergées dans l’Union européenne et majoritairement en Frane
  • En cas de transfert hors UE (ex. prestataire SMS, email), des clauses contractuelles types (SCC) et mesures supplémentaires sont mises en place pour garantir un niveau de protection équivalent.

8. Quels sont vos droits ?

Conformément aux articles 15 à 22 du RGPD, vous disposez de :

  • Droit d’accès, rectification, effacement.
  • Droit à la limitation, opposition, portabilité.
  • Droit de retrait du consentement (le cas échéant).
  • Droit d’introduire une réclamation auprès de la CNIL.

Vous pouvez exercer vos droits en écrivant à : dpo@centralpay.com (réponse sous 30 jours).

9. Sécurité

CentralPay met en œuvre une politique de sécurité alignée sur les standards PCI DSS, ISO 27001/27005 et sur le règlement européen DORA (Digital Operational Resilience Act). Nos dispositifs couvrent l’ensemble du cycle de vie des données et des services de paiement afin de garantir leur confidentialité, leur intégrité et leur disponibilité.

La sécurité est d’abord assurée par une gouvernance claire et une gestion proactive des risques. Nous disposons d’un cadre de gestion des risques validé par la direction, qui comprend une politique d’appétence au risque, une cartographie alignée sur les normes ISO et DORA, ainsi que des indicateurs de risque suivis régulièrement. Ce cadre est mis en œuvre à travers une organisation en trois lignes de défense et piloté par un comité de sécurité et de conformité.

La protection des données repose sur un chiffrement systématique, tant en transit (TLS 1.2/1.3) qu’au repos (AES-256), avec une gestion centralisée des clés. Les données de paiement sont traitées exclusivement dans un environnement certifié PCI DSS niveau 1 et font l’objet d’une tokenisation irréversible qui évite toute exposition des numéros complets de carte ou des cryptogrammes. De plus, nous appliquons des politiques strictes de purge et d’anonymisation automatique des données personnelles à l’issue des durées de conservation prévues par le RGPD.

Les accès aux systèmes sont strictement contrôlés grâce à une gestion des identités centralisée et basée sur le principe du moindre privilège. Chaque collaborateur est soumis à une authentification forte à deux facteurs (MFA), et les habilitations font l’objet de revues régulières afin de garantir leur pertinence.

Nos infrastructures font l’objet d’une surveillance permanente. Les opérations sensibles sont journalisées de manière exhaustive et horodatée, et un système de supervision en temps réel, couplé à un SIEM, permet de détecter rapidement les incidents de sécurité.

La résilience opérationnelle est assurée par un dispositif de continuité aligné sur DORA. CentralPay a mis en place un Plan d’Urgence et de Poursuite d’Activité (PUPA) incluant des volets PCA et PRI, régulièrement testés. Des tests de pénétration et des exercices de gestion de crise sont organisés chaque année, tandis qu’une politique stricte d’externalisation TIC garantit l’évaluation continue des prestataires critiques et la tenue d’un registre d’information réglementaire.

La gestion des incidents suit une procédure formalisée de détection, classification et traitement. En cas d’incident majeur, nous respectons les délais de notification réglementaire auprès de l’ACPR et de la CNIL, et un retour d’expérience systématique est organisé afin d’améliorer en permanence le dispositif de sécurité.

Enfin, CentralPay s’inscrit dans une logique d’amélioration continue. Des audits internes et externes, y compris des audits indépendants PCI DSS et de cybersécurité, sont réalisés régulièrement. Nos dispositifs de contrôle permanent et d’audit périodique sont revus chaque année afin de garantir leur efficacité et leur conformité aux normes internationales et aux exigences réglementaires.

10. Mise à jour de la politique

Cette politique peut être modifiée pour refléter l’évolution des traitements et obligations légales. Toute mise à jour sera publiée sur notre site et, si nécessaire, communiquée aux clients concernés.

FAQ - Protection des données personnelles

Gouvernance et responsabilités

Responsable du traitement et contact DPO

CentralPay, Établissement de Monnaie Électronique (EME), est responsable du traitement pour ses services de paiement.
Contact DPO : dpo@centralpay.com (réponse sous 30 jours).

Données collectées

Quelles données collectons-nous ?

Dans le cadre de la fourniture de ses services de paiement et afin de respecter ses obligations légales, CentralPay collecte uniquement les données strictement nécessaires. Ces données varient en fonction du type d’opération (paiement, vérification KYC, lutte contre la fraude, support client). Elles se répartissent en plusieurs catégories :

  • Données d’identification : nom, prénom, civilité, date et lieu de naissance, nationalité, qualité (par exemple représentant légal, dirigeant ou bénéficiaire effectif – UBO).
  • Données de contact : adresse email, numéro de téléphone, adresse postale.
  • Données de paiement : coordonnées bancaires (IBAN, BIC) ; données de carte traitées exclusivement dans un environnement certifié PCI DSS (numéro complet et CVC collectés uniquement pour être tokenisés et jamais exposés en clair), date d’expiration, schéma (Visa, Mastercard…), pays émetteur, 4 derniers chiffres.
  • Données transactionnelles : identifiant de transaction (transactionId), date et heure, montant, devise, statut, référence commande (orderId), historique des opérations (paiements uniques, récurrents, fractionnés, remboursements).
  • Données de sécurité et de lutte contre la fraude : adresse IP, empreinte 3DS (navigateur/appareil), résultats et scores antifraude, statut éventuel de mise en surveillance technique.
  • Données de conformité KYC/LCB-FT : pièces d’identité officielles, justificatifs de domicile, documents légaux de l’entreprise (ex. Kbis, statuts), informations sur les bénéficiaires effectifs (UBO et pourcentages de détention).
  • Données techniques : journaux applicatifs (logs API), événements transmis aux marchands (webhooks), identifiants techniques (customerId, eventId).

CentralPay ne collecte aucune donnée sensible au sens de l’article 9 du RGPD (santé, religion, opinions politiques, orientation sexuelle, etc.), sauf si la loi l’imposait de manière exceptionnelle.

Finalités

Pourquoi utilisons-nous vos données ?

CentralPay traite vos données personnelles uniquement pour des finalités déterminées, explicites et légitimes. Ces traitements s’inscrivent dans le cadre de l’exécution de nos services de paiement, du respect de nos obligations réglementaires et de la sécurité de nos systèmes. Les principales finalités sont les suivantes :

  • Exécution des paiements : traitement des opérations de paiement (SEPA, carte bancaire, paiements récurrents ou fractionnés), gestion des flux financiers, émission de factures et suivi des règlements.
  • Respect des obligations réglementaires : application des règles de lutte contre le blanchiment des capitaux et le financement du terrorisme (LCB-FT), vérification d’identité (KYC), conservation légale des documents, supervision par l’ACPR.
  • Prévention et détection de la fraude : mise en œuvre des contrôles de sécurité exigés par la DSP2 (authentification forte, 3DS), calcul de scores antifraude et gestion des alertes.
  • Relation client et support : communication avec les clients et utilisateurs (notifications, confirmations, envoi de liens de paiement), traitement des demandes de support, gestion des réclamations et litiges.
  • Obligations comptables et fiscales : conservation des pièces probatoires, respect des règles du Code de commerce et du Code général des impôts.
  • Amélioration et sécurité technique : suivi de la performance et de la disponibilité de nos services, renforcement de la résilience opérationnelle conformément au règlement DORA, amélioration continue de l’expérience client et de la sécurité de nos systèmes.

Bases légales

Sur quelles bases légales reposent nos traitements ?

CentralPay traite vos données personnelles uniquement pour des finalités déterminées, explicites et légitimes. Ces traitements s’inscrivent dans le cadre de l’exécution de nos services de paiement, du respect de nos obligations réglementaires et de la sécurité de nos systèmes. Les principales finalités sont les suivantes :

  • Exécution des paiements : traitement des opérations de paiement (SEPA, carte bancaire, paiements récurrents ou fractionnés), gestion des flux financiers, émission de factures et suivi des règlements.
  • Respect des obligations réglementaires : application des règles de lutte contre le blanchiment des capitaux et le financement du terrorisme (LCB-FT), vérification d’identité (KYC), conservation légale des documents, supervision par l’ACPR.
  • Prévention et détection de la fraude : mise en œuvre des contrôles de sécurité exigés par la DSP2 (authentification forte, 3DS), calcul de scores antifraude et gestion des alertes.
  • Relation client et support : communication avec les clients et utilisateurs (notifications, confirmations, envoi de liens de paiement), traitement des demandes de support, gestion des réclamations et litiges.
  • Obligations comptables et fiscales : conservation des pièces probatoires, respect des règles du Code de commerce et du Code général des impôts.
  • Amélioration et sécurité technique : suivi de la performance et de la disponibilité de nos services, renforcement de la résilience opérationnelle conformément au règlement DORA, amélioration continue de l’expérience client et de la sécurité de nos systèmes.

Pendant combien de temps conservons-nous vos données ?

CentralPay applique des délais de conservation précis, fondés sur les obligations légales et les besoins opérationnels. À l’issue de ces délais, les données sont soit supprimées, soit anonymisées de façon irréversible.

  • Transactions financières (écritures probatoires) : conservées 10 ans, conformément au Code de commerce.
  • Données personnelles associées aux transactions (email, téléphone, IP, empreintes 3DS, PAN masqué, token de carte, scores fraude) : conservées 24 mois maximum, puis supprimées ou anonymisées.
  • Données de carte (token + métadonnées) : conservées jusqu’à 24 mois après la date d’expiration de la carte. Le PAN complet et le CVC ne sont jamais exposés en clair.
  • Payment Requests (emails/SMS) : conservées 24 mois maximum.
  • Abonnements et paiements fractionnés : conservés pendant la durée de l’abonnement + 5 ans.
  • Comptes bancaires (IBAN/BIC) et mandats SEPA : conservés pendant la durée du mandat + 10 ans (preuve contractuelle).
  • KYC / LCB-FT : données conservées 5 ans après la fin de la relation d’affaires (art. L561-12 CMF).
  • Journaux techniques et webhooks : conservés 24 mois.

Au-delà de ces durées, CentralPay ne conserve que des données anonymisées ou strictement nécessaires au respect d’une obligation légale.

Localisation et transferts

Où vos données sont-elles traitées ?

Les données traitées par CentralPay sont hébergées en priorité dans l’Union européenne, principalement en France, dans des environnements certifiés PCI DSS et ISO 27001.

À ce jour, CentralPay ne transfère pas de données personnelles hors de l’Union européenne.
Si un transfert hors UE devait être nécessaire à l’avenir (par exemple pour un prestataire SMS ou email), il serait encadré par :

  • une analyse d’impact du transfert,
  • la mise en place des Clauses Contractuelles Types (SCC) de la Commission européenne,
  • des mesures techniques complémentaires (chiffrement, segmentation, contrôle d’accès),
  • et une information transparente de nos clients.

Transfert de données hors UE : comment procédons-nous ?

À ce jour, CentralPay ne transfère pas de données personnelles hors de l’Union européenne.
Toutes les données sont hébergées et traitées dans l’UE, principalement en France et au sein d’infrastructures certifiées (PCI DSS).

Si, à l’avenir, un transfert hors UE devait être nécessaire (par exemple pour un prestataire SMS ou email), CentralPay s’engage à :

  • procéder à une analyse d’impact sur le transfert,
  • appliquer les Clauses Contractuelles Types (SCC) de la Commission européenne,
  • mettre en place des mesures techniques supplémentaires (chiffrement, cloisonnement, contrôle d’accès),
  • et informer ses clients en toute transparence.

Nature des données

Traitons-nous des données sensibles ?

Non. CentralPay ne traite aucune donnée sensible au sens de l’article 9 du RGPD (santé, religion, opinions politiques, orientation sexuelle, etc.).
Nous collectons uniquement les informations strictement nécessaires à l’exécution des paiements et au respect de nos obligations légales (LCB-FT, supervision ACPR).

Collectons-nous des données de mineurs ?

CentralPay fournit ses services exclusivement à des professionnels (B2B). Nous ne collectons donc pas volontairement de données de mineurs.
Si, indirectement, un mineur est amené à effectuer un paiement, le traitement reste limité aux données de paiement nécessaires (ex. coordonnées bancaires ou carte), et toujours sous la responsabilité de son représentant légal lorsqu’une vérification est requise.

Conformité RGPD

Réalisons-nous des analyses d’impact (PIA)?

Oui, nous réalisons des AIPD (PIA) pour les traitements susceptibles d’engendrer un risque élevé (ex. KYC, antifraude/3DS, tokenisation carte, analyses longitudinales). Les risques résiduels et mesures de réduction sont documentés.

Comment garantissons-nous la minimisation et le privacy by design ?

Nous collectons uniquement les champs nécessaires par finalité, cloisonnons les environnements (prod/préprod), nous n’utilisons aucune donnée réelle en test, limitons les payloads webhooks au minimum utile, et appliquons des purges/anonymisations automatiques à l’échéance.

Comment CentralPay documente sa conformité RGPD ?

  • Politique RGPD publique (site).
  • Registre des traitements (interne, à jour).
  • PIA sur les traitements à risque (interne).
  • Politiques/procédures (sécurité, purge, incidents, droits).
  • Rapports de contrôle interne (ACPR).

Sous-traitants

Comment encadrons-nous nos prestataires ?

Chaque prestataire est contractuellement encadré (art. 28) : mesures de sécurité, confidentialité, notification d’incident, audibilité, localisation des données, sous-traitance en cascade contrôlée. Due diligence initiale + réévaluation régulière (sécurité, SLA, conformité).

Quels prestataires utilisons-nous ?

Sur demande et après NDA, nous pouvons fournir la liste à jour par catégorie de nos prestataires (hébergement/cloud, KYC, envoi email/SMS, anti-fraude, support) en indiquant la zone géographique.

Comment sélectionnons-nous nos prestataires essentiels ?

CentralPay applique une politique d’encadrement des sous-traitants alignée à la fois sur le RGPD (art. 28) et sur le règlement DORA.

Lors de la sélection, nous menons une due diligence approfondie couvrant la sécurité (certifications, mesures techniques), la conformité réglementaire (RGPD, DSP2, LCB-FT), la localisation et le régime juridique des données, la solidité financière du prestataire ainsi que les niveaux de service (SLA) proposés. Pour les prestataires critiques, nous examinons en particulier leur intégration dans la chaîne de valeur des services de paiement et leur rôle en matière de résilience opérationnelle.

Chaque relation contractuelle inclut des clauses conformes à l’article 28 RGPD (confidentialité, sécurité, notification d’incident, limitation des sous-traitances en cascade) ainsi que, le cas échéant, des Clauses Contractuelles Types (SCC) pour encadrer les transferts hors Union européenne.

Conformément à DORA, nous tenons un registre d’information des prestataires TIC et identifions ceux considérés comme prestataires critiques. Ces prestataires font l’objet d’une évaluation renforcée, avec des exigences contractuelles spécifiques en matière de disponibilité, d’intégrité, de continuité et de tests de résilience.

Le suivi est assuré au travers de revues régulières (contrôles, rapports d’audit, attestations de conformité type SOC/ISO, questionnaires de sécurité), d’un droit d’audit contractuel et de mécanismes de reporting périodique. Nous intégrons ces évaluations dans notre cartographie des risques TIC et nos comités de suivi DORA.

Sécurité et résilience

Quelles protections techniques appliquons-nous ?

CentralPay protège les données et les systèmes en combinant des mécanismes techniques robustes et conformes aux meilleurs standards internationaux.
Les échanges sont sécurisés par un chiffrement systématique : TLS 1.2/1.3 pour les données en transit et AES-256 pour les données au repos, avec une gestion centralisée des clés.
Les données de carte sont traitées exclusivement dans un environnement PCI DSS niveau 1, avec collecte en zone dédiée et tokenisation irréversible pour éviter toute exposition du PAN complet.
Les accès aux systèmes sont contrôlés par des mécanismes RBAC (role-based access control) et protégés par une authentification forte (MFA), avec des revues régulières des habilitations.
Toutes les actions sensibles font l’objet d’une journalisation horodatée et inviolable, intégrée dans un SIEM qui assure la détection et l’alerte en temps réel.
L’infrastructure est cloisonnée : segmentation des réseaux, séparation stricte des environnements (production, test, préproduction) et gestion sécurisée des secrets.
Enfin, CentralPay teste régulièrement son dispositif à travers des tests de pénétration, des scans de vulnérabilités et des audits externes indépendants.

Comment notre organisation garantit la sécurité ?

La sécurité ne repose pas uniquement sur la technologie mais aussi sur une organisation et une gouvernance solides.
CentralPay applique un cadre de gestion des risques intégrant une cartographie détaillée, des indicateurs de suivi (KRI) et une politique d’appétence au risque validée par la direction.
La supervision s’appuie sur le modèle reconnu des trois lignes de défense : les opérations assurent les contrôles de premier niveau, une fonction indépendante de conformité et de contrôle permanent supervise la deuxième ligne, et l’audit interne constitue la troisième ligne.
Un comité sécurité et conformité se réunit régulièrement pour piloter la stratégie et mettre à jour les politiques et procédures clés (gestion des accès, incidents, purges, exercice des droits RGPD).
Enfin, la culture sécurité est renforcée par des formations régulières des équipes, couvrant la cybersécurité, la protection des données personnelles et les obligations LCB-FT.

Que faisons-nous en cas d’incident de sécurité ?

CentralPay dispose d’une procédure formalisée de gestion des incidents.
En cas d’incident, nous procédons à une détection rapide, une qualification et un confinement immédiat, suivis d’actions de remédiation.
Les événements sont intégralement journalisés et investigués (forensic) afin d’identifier la cause et d’éviter leur récurrence.
Lorsque la réglementation l’impose, nous notifions la CNIL dans un délai maximum de 72 heures et informons les personnes concernées en cas de risque élevé.
Chaque incident donne lieu à un retour d’expérience (REX) et à la mise en place d’un plan d’actions correctives, qui est suivi jusqu’à sa résolution complète.

Nos audits de sécurité

CentralPay est soumis à plusieurs niveaux de contrôle et de tests de sécurité, à la fois internes et externes :

  • Audits externes réguliers :
    • Certification annuelle PCI DSS niveau 1 sur la collecte et le traitement des données de paiement,
    • Audits indépendants de cybersécurité,
    • Tests de pénétration réalisés par des prestataires tiers pour identifier et corriger les vulnérabilités.
  • Contrôles internes permanents (seconde ligne de défense) : revues des habilitations, scans de vulnérabilités, surveillance des systèmes critiques.
  • Audits périodiques indépendants (troisième ligne de défense) : audit interne et audit externe du dispositif de sécurité, conformité réglementaire (ACPR, DORA).
  • Revue annuelle des politiques : l’ensemble de nos politiques de sécurité, de purge, d’incidents et de gestion des prestataires est revu et validé chaque année par la direction.
  • Tests de résilience conformément à DORA :
    • Plans de Continuité et de Reprise d’Activité (PCA/PRI) testés régulièrement pour valider la capacité à maintenir les services en cas d’incident majeur,
    • Exercices de crise simulant des scénarios de cyberattaque ou d’indisponibilité critique,
    • Tests de charge et de performance sur les infrastructures critiques,
    • Scénarios de bascule et redondance entre environnements pour garantir la disponibilité,
    • Pour les fonctions critiques, recours progressif à des tests de résilience avancés de type “TLPT” (Threat-Led Penetration Testing), exigés par DORA pour les acteurs significatifs.

Droits des personnes

Quels sont vos droits et comment les exercer ?

En application des articles 15 à 22 du RGPD, vous disposez des droits suivants sur vos données personnelles :

  • droit d’accès,
  • droit de rectification,
  • droit à l’effacement,
  • droit à la limitation,
  • droit d’opposition,
  • droit à la portabilité,
  • droit de retrait du consentement.

Vous pouvez exercer vos droits en adressant une demande à : dpo@centralpay.com.
Nous nous engageons à vous répondre dans un délai de 30 jours maximum, sauf cas exceptionnel justifiant une prolongation. En cas de difficulté, vous pouvez également saisir la CNIL.

Comment concilions-nous effacement et obligations légales ?

CentralPay respecte le droit à l’effacement prévu par le RGPD, mais certaines données doivent être conservées en raison d’obligations légales.
Nous supprimons ou anonymisons toutes les données personnelles qui ne sont plus nécessaires.
En revanche, lorsque la loi nous impose de conserver certaines informations (par exemple les écritures comptables pendant 10 ans ou les données KYC pendant 5 ans après la fin de la relation), ces données sont maintenues mais :

  • leur accès est strictement limité,
  • elles ne sont utilisées que pour les finalités imposées par la loi (contrôle ACPR, TRACFIN, obligations probatoires).

Ainsi, nous trouvons un équilibre entre le respect des droits des personnes et nos obligations réglementaires.

Autres garanties

Utilisons-nous des décisions automatisées ou du profilage ?

CentralPay n’applique aucune décision entièrement automatisée produisant des effets juridiques ou significatifs sur les personnes, au sens de l’article 22 du RGPD.
Nous utilisons en revanche des outils de scoring antifraude qui calculent un niveau de risque sur les transactions. Ces résultats servent uniquement d’aide à la décision : lorsqu’un cas est sensible ou à risque, il est systématiquement revu et validé par un contrôle humain.

Utilisons-nous des cookies ou traceurs à des fins publicitaires ?

Sur les parcours de paiement et dans les API, CentralPay n’utilise aucun cookie publicitaire ni traceur marketing. Seuls des cookies ou traceurs strictement nécessaires au fonctionnement technique et à la sécurité des parcours (ex. gestion de session, authentification) peuvent être utilisés.
À ce stade, aucun mécanisme de consentement via bannière n’est nécessaire, puisque nous n’utilisons pas de cookies optionnels.

Comment assurons-nous la résilience et les sauvegardes ?

Oui. L’infrastructure est redondée sur deux data centers localisés en France ; les sauvegardes sont chiffrées et externalisées, testées régulièrement (restores) et retiennent les mêmes contrôles d’accès que la production.

Avons-nous une politique de purge et d’anonymisation documentée ?

Oui, avec délais par objet (transactions/personnelles 24 mois, cartes jusqu’à 24 mois après date d’expiration, KYC 5 ans post-relation, mandats 10 ans, logs 24 mois) et mécanismes (suppression vs anonymisation irréversible), plus traces de purge (logs d’exécution).

Nos environnements de test contiennent-ils des données réelles ?

CentralPay n’utilise jamais de données personnelles réelles dans ses environnements de test ou de préproduction. Tous nos jeux de données internes (ex. cartes, IBAN, profils clients) sont synthétiques ou fictifs et conformes aux standards PCI DSS.

Cependant, les utilisateurs de nos environnements de test (par ex. marchands intégrateurs) peuvent techniquement saisir leurs propres données. Cette pratique est formellement interdite et encadrée par nos conditions d’utilisation.

Si un utilisateur insère par erreur des données personnelles dans un environnement de test, celles-ci :

  • ne sont pas utilisées à des fins de traitement de paiement réel,
  • ne sont pas répliquées en production,
  • et font l’objet d’une purge automatique ou manuelle dès leur détection.

Comment CentralPay gère-t-il l’accès des équipes support aux données ?

Les équipes support de CentralPay n’ont pas d’accès direct et permanent aux données personnelles. L’accès est accordé uniquement en cas de besoin opérationnel (par exemple pour résoudre un incident ou assister un client), et selon les principes suivants :

  • Accès temporaire et justifié : chaque accès est accordé pour une durée limitée et doit être motivé par un ticket ou une demande validée.
  • Principe du moindre privilège : l’agent support ne voit que les données strictement nécessaires pour traiter la demande.
  • Authentification forte (MFA) : tous les accès sont sécurisés par une authentification à plusieurs facteurs.
  • Traçabilité complète : chaque action effectuée par un membre du support est enregistrée et auditée.
  • Revue régulière des habilitations : les droits d’accès sont revus mensuellement pour s’assurer qu’ils restent justifiés.
  • Masquage des données sensibles : les champs sensibles (ex. numéro complet de carte, CVC, IBAN complet) sont systématiquement masqués dans les interfaces, afin que le support ne puisse jamais les visualiser en clair.

Offrons-nous des clauses contractuelles spécifiques RGPD à vos clients ?

Nos CGU/contrats intègrent les clauses nécessaires (confidentialité, sécurité, coopération incidents, sous-traitance, conservation/purge). Des avenants RGPD sont possibles selon les cas d’usage.

Partageons-nous nos politiques et procédures internes ?

La Politique RGPD publique est disponible en ligne. Les politiques internes détaillées (procédures incidents, purge, sécurité) ne sont, par défaut, pas partagées.

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, etc.). Les transactions ainsi créées sont automatiquement liées à la demande de paiement et permettent d’actualiser son statut (non payé, partiellement payé, payé, etc.).

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

Customer

See more about Customer

jQuery(document).ready( function($) { window.live_699ea29e3ed00 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Customer.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e3ed00", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e3ed00.load(); });

Trust Center

Articles

  • Conformité et résilience opérationnelleDORA
  • Protection des données personnellesRGPD

Conformité et résilience opérationnelle

Dernière mise à jour : 30 juin 2025

« Notre engagement pour protéger vos transactions et assurer un service sans interruption. Un dispositif aligné sur les exigences européennes en matière de sécurité et de continuité des services financiers »

1. Gouvernance et organisation de la sécurité

Chez CentralPay, la sécurité n’est pas seulement un ensemble de règles techniques, mais une démarche de gouvernance intégrée à tous les niveaux de l’entreprise. Notre dispositif repose sur une organisation claire, des responsabilités définies et une supervision régulière par la direction.

La politique de sécurité constitue le socle de ce dispositif. Elle fixe les principes directeurs en matière de protection des données et de continuité des services. Mise à jour chaque année, elle est validée en comité de direction et diffusée à l’ensemble des collaborateurs concernés. Chaque employé est ainsi sensibilisé aux bonnes pratiques et s’engage à respecter les règles établies.

La gouvernance TIC est structurée autour de plusieurs acteurs clés. Le Responsable de la Sécurité des Systèmes d’Information (RSSI) pilote la stratégie globale, supervise les contrôles de sécurité et veille à la conformité avec les standards internationaux (PCI DSS, DORA). La direction technique est en charge de l’exploitation quotidienne des infrastructures et garantit la disponibilité des systèmes critiques. Enfin, un Comité TIC se réunit régulièrement afin d’analyser les incidents, de valider les évolutions techniques et budgétaires, et d’assurer une amélioration continue de la sécurité.

Cette organisation permet de concilier réactivité opérationnelle et exigence réglementaire. Elle offre également à nos clients une visibilité claire : la sécurité est suivie, pilotée et contrôlée de manière documentée, avec un partage des responsabilités entre le management, les équipes techniques et la direction générale.

2. Gestion des accès et habilitations

La gestion des accès constitue l’un des piliers de la sécurité de CentralPay. Chaque droit d’accès est attribué selon une procédure formalisée et validée par le management, afin de s’assurer qu’il corresponde strictement aux besoins métier du collaborateur. À l’arrivée d’un nouvel employé, ses accès sont créés dans l’Active Directory et validés par son supérieur hiérarchique ; au départ, ils sont immédiatement révoqués par le service informatique.

La sécurité repose également sur le principe du moindre privilège : nul ne peut accéder à plus de ressources que ce qui est strictement nécessaire à sa mission. Les accès sensibles, comme ceux aux systèmes critiques ou aux bases de données, font systématiquement l’objet d’une authentification multi-facteurs (MFA). Pour renforcer ce dispositif, des revues périodiques des habilitations sont menées chaque trimestre, permettant d’identifier et de corriger toute anomalie.

Cette rigueur garantit une maîtrise complète des identités et des droits, et protège nos clients contre tout risque d’accès non autorisé à leurs données.

3. Sécurité technique

La sécurité technique de CentralPay repose sur une architecture conçue selon les principes de défense en profondeur. Chaque couche – du réseau jusqu’aux applications – bénéficie de mécanismes de protection redondants et régulièrement testés.

Cloisonnement des réseaux

L’infrastructure est segmentée en plusieurs zones :

  • DMZ publique pour les serveurs exposés à Internet (reverse proxy, WAF, relais SMTP) ;
  • zone interne pour les bases de données et services sensibles ;
  • réseau administratif réservé aux opérations d’administration ;
  • zone de logs isolée pour la collecte et l’analyse des journaux.

Les flux entre ces zones sont strictement contrôlés par des firewalls en redondance, configurés en stateful inspection et avec des règles de NAT. Ces firewalls intègrent des mécanismes d’anti-spoofing et de détection d’anomalies de trafic. Les configurations sont maintenues par le groupe « administrateurs systèmes et réseau » et font l’objet d’une revue périodique.

Protection physique et logique

L’accès aux locaux de production est contrôlé par badge nominatif, surveillance vidéo et télésurveillance (SECURITAS). L’accès aux salles serveurs et à la zone PCI est limité aux personnes habilitées.
Sur le plan logique, chaque accès aux systèmes se fait par identifiant unique, renforcé par MFA. Les droits sont attribués en fonction des rôles définis et selon le principe du moindre privilège.

Surveillance et détection d’intrusion

La surveillance est assurée en continu grâce à une combinaison d’outils :

  • Zabbix, pour le monitoring temps réel des serveurs, applications et flux critiques ;
  • Wazuh, intégré avec Snort, pour la détection d’intrusions et la corrélation des événements ;
  • ElasticSearch/Kibana, pour l’agrégation et la visualisation des logs.

Les alertes critiques sont transmises en temps réel aux équipes techniques par mail et SMS, et leur traitement est tracé dans un registre d’incidents.

Chiffrement et gestion des clés

Les données de paiement sensibles (PAN, dates d’expiration) sont chiffrées en AES-256 et rendues illisibles via un hash SHA-512 avec salt pour les comparaisons.
La gestion des clés est réalisée exclusivement au sein de modules matériels de sécurité (HSM) certifiés. La clé maîtresse est fragmentée en plusieurs composantes, détenues par des personnes distinctes, afin d’éviter tout risque de compromission. Les clés applicatives ne peuvent pas être exportées en clair et leur usage est strictement tracé.

En combinant ces mesures, CentralPay garantit un environnement technique robuste, conforme aux exigences PCI DSS 4.0.1 et aux standards de résilience DORA.

4. Gestion des risques et des incidents

La maîtrise des risques constitue un axe stratégique de la gouvernance CentralPay. L’approche adoptée vise à anticiper les menaces, limiter leur probabilité de survenance et garantir une réponse rapide et efficace en cas d’incident.

Gestion des risques

Chaque année, une étude de risques est menée sur la base de la méthodologie Ebios, intégrant :

  • l’identification des risques liés à la sécurité (intrusions, attaques malveillantes, fuites de données) et au fonctionnement (pannes techniques, défaillances logicielles) ;
  • leur analyse en termes de probabilité et d’impact métier ;
  • leur classification en Low, Medium ou High ;
  • leur traitement via des mesures de prévention (patching, segmentation réseau, chiffrement, supervision) ou de mitigation (plans de contournement, redondances).

Le registre des risques est mis à jour en continu et présenté lors des revues annuelles de direction.

Gestion des incidents

CentralPay a mis en place une procédure complète de gestion des incidents, alignée sur les obligations DORA et les orientations de l’EBA :

  • Détection : par monitoring automatisé (Zabbix, Wazuh) ou par signalement interne/externe (clients, partenaires).
  • Qualification : chaque incident est analysé et classé selon son impact, sa durée, sa portée géographique et sa criticité.
  • Priorisation : une matrice d’évaluation (urgence de résolution et impact financier) permet de définir des niveaux de priorité allant de 1 à 4.
  • Notification réglementaire : les incidents qualifiés comme « majeurs » font l’objet d’un reporting à l’ACPR :
    • rapport initial transmis dans les 4 heures,
    • rapport intermédiaire sous 3 jours ouvrés,
    • rapport final sous 20 jours.

Transparence et retour d’expérience

En parallèle du reporting réglementaire, les incidents majeurs font l’objet d’une communication transparente envers les clients impactés. Une analyse post-mortem est systématiquement menée afin de tirer les enseignements, renforcer les procédures existantes et mettre en place des actions correctives.

Ce dispositif permet à CentralPay non seulement de répondre efficacement aux incidents, mais surtout de renforcer continuellement sa résilience et la confiance de ses clients.

5. Tests de résilience

CentralPay considère que la résilience d’une infrastructure ne se prouve pas uniquement sur le papier mais par des tests réguliers et documentés. C’est pourquoi la plateforme organise différents scénarios de test visant à mesurer son niveau de sécurité, sa capacité de reprise et la réactivité de ses équipes.

Tests d’intrusion

Les tests d’intrusion sont réalisés de manière récurrente par des équipes internes et par des prestataires spécialisés, afin de bénéficier d’un regard externe indépendant. Trois méthodologies sont appliquées :

  • Black-box : l’auditeur ne dispose d’aucune information préalable, ce qui simule le comportement d’un attaquant externe ;
  • Grey-box : l’auditeur dispose d’informations partielles (comptes utilisateurs limités, schémas d’architecture simplifiés) afin de reproduire un scénario réaliste d’utilisateur malveillant ;
  • White-box : l’auditeur dispose d’une connaissance complète de l’architecture, permettant une analyse approfondie et la détection de vulnérabilités complexes.

Ces tests couvrent à la fois les couches réseau et applicatives, avec un focus particulier sur les vulnérabilités répertoriées par le Top Ten OWASP. Les résultats font l’objet de rapports détaillés, comprenant une classification des failles selon leur criticité (Critical, High, Medium, Low) et des recommandations de remédiation.

Tests de segmentation réseau

CentralPay réalise aussi des tests de segmentation afin de vérifier que les cloisonnements logiques entre les zones (DMZ, interne, administration, logs) sont efficaces et qu’aucun flux non autorisé n’est possible. Ces tests garantissent que, même en cas de compromission d’une zone exposée, l’attaquant ne puisse pas atteindre les systèmes critiques.

Exercices de simulation et bascules PCA

En parallèle des tests techniques, des exercices de simulation de crise sont menés. Ces exercices impliquent plusieurs équipes (techniques, conformité, direction) et simulent des scénarios d’attaque ou de panne majeure. L’objectif est de tester non seulement la robustesse de l’infrastructure, mais aussi la qualité de la coordination et de la communication en situation de crise.

Enfin, des tests de bascule PCA sont organisés au minimum une fois par an. Ils permettent de vérifier que les services critiques peuvent être transférés vers le site secondaire dans les délais prévus et que les équipes maîtrisent parfaitement les procédures de reprise.

Ces différents tests, documentés et suivis, démontrent la volonté de CentralPay de s’inscrire dans une démarche d’amélioration continue de sa résilience.

6. Haute disponibilité et PCA

La disponibilité des services de paiement est une exigence absolue pour CentralPay. Afin de garantir une continuité sans faille, l’entreprise a conçu son architecture autour du principe de haute disponibilité (HA) et d’un Plan de Continuité d’Activité (PCA) multi-sites.

Architecture multi-sites

CentralPay dispose de deux sites distincts : un site de production principal et un site secondaire dédié au PCA. Ces sites sont opérés par des fournisseurs différents, intègrent un routage BGP et utilisent des accès Internet fournis par plusieurs opérateurs, ce qui réduit le risque de dépendance vis-à-vis d’un seul acteur.

Redondance des composants

Chaque composant critique est déployé en redondance :

  • Firewalls et load balancers : configurés en actif/actif ou actif/passif, permettant une bascule automatique en cas de défaillance ;
  • Serveurs applicatifs : répartis sur plusieurs nœuds afin de garantir la tolérance aux pannes ;
  • Bases de données : répliquées en temps réel entre les sites de production et de PCA, assurant un RPO quasi nul ;
  • Proxys applicatifs et WAF : disposés en frontal pour absorber les charges et filtrer les menaces, avec bascule automatique.

Objectifs de reprise (RTO et RPO)

  • RPO (Recovery Point Objective) : grâce à la réplication continue, les données critiques peuvent être restaurées à l’état quasi instantané précédant l’incident ;
  • RTO (Recovery Time Objective) : les mécanismes de bascule automatique permettent un retour en service des applications critiques en quelques minutes à une heure maximum selon le type de composant.

Scénarios de bascule et tests

Le PCA est conçu pour répondre à divers scénarios : panne matérielle, défaillance réseau, indisponibilité d’un datacenter, attaque cyber majeure. Chaque scénario dispose d’un plan d’action documenté. Des tests réguliers de bascule confirment que les engagements RTO/RPO sont tenus dans la pratique.

Grâce à ce dispositif, CentralPay assure à ses clients que, même en cas d’incident majeur, leurs transactions de paiement resteront disponibles et sécurisées.

7. Continuité et sauvegardes

La continuité des services de CentralPay ne repose pas uniquement sur la redondance de son infrastructure et le PCA. Elle est également assurée par une politique stricte de sauvegarde et de restauration des données.

Sauvegardes quotidiennes et chiffrées

Les données critiques – qu’il s’agisse des données de paiement ou des données opérationnelles de la plateforme – font l’objet de sauvegardes quotidiennes. Celles-ci sont chiffrées en AES-256, conformément aux standards internationaux, afin de garantir leur confidentialité en cas d’accès non autorisé.

Stockage sécurisé et rotation

Les sauvegardes sont stockées selon une logique de redondance et de rotation :

  • Une copie est conservée sur les serveurs de sauvegarde internes, protégés par des accès restreints ;
  • Une copie est déplacée et conservée dans un coffre-fort sécurisé ;
  • D’autres copies sont externalisées hors site, afin de garantir la disponibilité même en cas de sinistre physique affectant un site.

La rotation régulière des supports assure que les sauvegardes restent fiables et exploitables.

Tests de restauration

La valeur d’une sauvegarde ne se mesure pas uniquement à sa conservation mais aussi à sa capacité à être restaurée. CentralPay procède donc à des tests de restauration réguliers, qui permettent de vérifier non seulement l’intégrité des données sauvegardées mais aussi la rapidité avec laquelle elles peuvent être réinjectées dans le système de production.

Grâce à cette approche, CentralPay garantit que, même en cas d’incident majeur, ses clients ne subiront pas de perte significative de données et pourront reprendre leurs activités sans interruption prolongée.

8. Gestion des prestataires critiques

CentralPay est conscient que la sécurité et la continuité de ses services dépendent également de la solidité de ses partenaires. C’est pourquoi l’entreprise a mis en place une gouvernance stricte autour de la gestion des prestataires critiques, en particulier ceux qui participent directement à l’hébergement, au traitement des données ou aux services de paiement.

Audits et certifications

Chaque année, un audit est conduit auprès de l’hébergeur principal et des prestataires considérés comme critiques. L’objectif est de vérifier la solidité de leurs dispositifs de sécurité, leurs capacités de continuité et leur conformité réglementaire.
Pour les prestataires qui traitent, stockent ou transmettent des données de cartes, CentralPay exige la certification PCI DSS et obtient une attestation de conformité (AOC) actualisée chaque année.

Clauses contractuelles et supervision

Les contrats avec les prestataires critiques incluent des clauses spécifiques DORA, portant notamment sur :

  • les engagements de service (SLA en matière de disponibilité et de performance),
  • les obligations de sécurité,
  • la mise en place d’un PCA/PRA compatible avec celui de CentralPay,
  • la notification immédiate en cas d’incident de sécurité.

CentralPay conserve une cartographie actualisée de l’ensemble de ses prestataires critiques et de leurs services associés. Ce registre est régulièrement mis à jour et constitue une base de reporting vers l’ACPR et les autorités de supervision.

Pérennité et amélioration continue

Enfin, la relation avec les prestataires ne se limite pas à un contrôle ponctuel. Les résultats des audits, les tests de continuité et les incidents éventuels sont présentés en comité de gouvernance. Des plans d’action sont ensuite décidés pour renforcer la sécurité ou la disponibilité des services externalisés.

Ainsi, CentralPay garantit à ses clients que les tiers qui contribuent à ses services critiques sont soumis au même niveau d’exigence que ses propres équipes.

FAQ - Conformité et résilience

Gouvernance et responsabilités

Qui est responsable de la sécurité chez CentralPay ?
La sécurité est pilotée par notre RSSI (Responsable de la Sécurité des Systèmes d’Information), rattaché directement à la Présidence. Le RSSI s’appuie sur un comité TIC et sur un cadre de gestion des risques aligné sur ISO 27005 et sur le règlement DORA. Le RSSI est joignable à l’adresse suivante : rssi@centralpay.com

Avez-vous une politique de sécurité documentée ?
Oui. Notre Politique de Sécurité du Système d’Information (PSSI) définit les règles applicables à l’ensemble de nos équipes et de nos prestataires. Elle couvre la classification des données, la gestion des accès, la protection des systèmes, la gestion des incidents, la continuité d’activité et l’encadrement des prestataires TIC.

Comment intégrez-vous la sécurité dans vos décisions stratégiques ?
La sécurité et la résilience sont intégrées à notre cadre global de gestion des risques. Celui-ci inclut une cartographie alignée ISO/DORA, une politique d’appétence aux risques, et un suivi par indicateurs (KRI). Les décisions de sécurité sont arbitrées au sein du comité Sécurité & Conformité et validées par la Direction Générale.

Comment contrôlez-vous vos dispositifs de sécurité ?
Nous appliquons le modèle des trois lignes de défense : les équipes métiers réalisent les contrôles opérationnels, la conformité et le contrôle permanent assurent la supervision, et le contrôle périodique réalise une évaluation indépendante.

Protection des données et des systèmes

Comment protégez-vous les données et systèmes de CentralPay ?
Toutes les données sont chiffrées : TLS 1.2/1.3 pour les échanges en transit et AES-256 pour le stockage. Les données de carte sont traitées uniquement dans un environnement certifié PCI DSS niveau 1 et immédiatement tokenisées, afin qu’aucun numéro complet ne soit conservé en clair.

Nos infrastructures sont segmentées et protégées par des firewalls, IDS/IPS et une supervision SOC. Les accès aux environnements sensibles sont limités, appliquent le principe du moindre privilège et sont protégés par MFA. Tous les postes de travail sont chiffrés, sécurisés par antivirus/EDR et mis à jour automatiquement.

Tests et contrôles de sécurité

Réalisez-vous des tests de sécurité ?
Oui. Nous effectuons régulièrement des tests de pénétration indépendants, des scans automatisés de vulnérabilités et des audits externes (dont PCI DSS). Ces contrôles permettent d’identifier les failles et de renforcer en permanence notre dispositif.

Comment gérez-vous la journalisation et les logs ?
Les journaux sont conservés 24 mois, horodatés, protégés par chiffrement et intégrés dans notre système de supervision (SIEM). Leur accès est strictement restreint aux équipes habilitées.

Comment gérez-vous les vulnérabilités et mises à jour ?
Nous appliquons une politique stricte de patch management : correction des vulnérabilités critiques sous 24h, vulnérabilités hautes sous 7 jours, et autres correctifs selon une fréquence planifiée. Le suivi est assuré par des scans et des rapports de conformité.

Organisation et culture sécurité

Comment sensibilisez-vous vos collaborateurs à la sécurité ?
Tous les collaborateurs suivent une formation annuelle obligatoire sur la cybersécurité, le RGPD et la LCB-FT. Des campagnes de sensibilisation régulières (exercices phishing, e-learning) complètent ce dispositif. Les équipes techniques bénéficient de formations renforcées.

Comment garantissez-vous que les accès restent limités ?
Nous appliquons le principe du moindre privilège : chaque utilisateur n’accède qu’aux ressources nécessaires à sa mission. Les droits sont justifiés, temporaires et systématiquement tracés.

Comment encadrez-vous les accès administrateurs ?
Les accès à privilèges élevés sont limités à un nombre restreint de personnes, soumis à MFA, tracés et revus régulièrement. Ils ne sont accordés que pour des besoins précis et pour une durée limitée.

Anticipation et amélioration continue

Comment anticipez-vous les menaces émergentes ?
Nous assurons une veille cybersécurité active via les bulletins CERT-FR, ANSSI, éditeurs logiciels et fournisseurs cloud. Cette activité de threat intelligence permet d’adapter nos défenses en temps réel.

Comment améliorez-vous en permanence votre sécurité ?
Chaque incident, audit ou test fait l’objet d’un retour d’expérience documenté et d’un plan d’actions correctives. Nos politiques et procédures sont revues annuellement pour intégrer ces enseignements et les évolutions réglementaires.

Résilience et continuité

Comment assurez-vous la continuité de vos services ?
Nous disposons d’un Plan d’Urgence et de Poursuite d’Activité (PUPA) intégrant un PCA (continuité) et un PRI (reprise). Ces plans sont régulièrement testés à travers des exercices de crise et des scénarios de bascule.

Comment garantissez-vous la disponibilité et la redondance ?
Nos services reposent sur une architecture redondée au sein de plusieurs zones européennes, permettant d’assurer une disponibilité de plus de 99,95 %.

Quels sont vos objectifs de RPO et RTO ?
CentralPay définit et teste régulièrement ses objectifs de continuité :

  • RPO (Recovery Point Objective) : inférieur à 1 minute pour les systèmes critiques, grâce à la réplication temps réel des données.
  • RTO (Recovery Time Objective) : inférieur à 15 mn pour la reprise des services essentiels, grâce à l’architecture redondée et aux procédures de bascule.
    Ces objectifs sont validés lors de nos exercices PCA/PRI et intégrés dans notre dispositif DORA.

Comment gérez-vous vos sauvegardes ?
Les sauvegardes sont chiffrées, isolées, redondées et régulièrement testées pour garantir leur restauration. Elles suivent les mêmes politiques de sécurité que les environnements de production.

Réalisez-vous des tests de résilience conformément à DORA ?
Oui. Nous réalisons des exercices de crise (cyberattaques simulées, pannes critiques), des tests de charge et de performance, des scénarios de bascule et, pour les fonctions critiques, des tests avancés de type TLPT (Threat-Led Penetration Testing).

Relations avec les prestataires

Comment sélectionnez-vous vos prestataires critiques ?
Chaque prestataire fait l’objet d’une due diligence (sécurité, conformité, localisation des données, SLA). Les contrats incluent des clauses RGPD et DORA (sécurité, notification d’incident, droit d’audit).

Comment contrôlez-vous vos prestataires dans la durée ?
Nous tenons un registre DORA recensant tous nos prestataires TIC et identifiant les prestataires critiques. Ces derniers font l’objet d’un suivi renforcé : revues régulières, audits, attestations ISO/PCI et évaluations de résilience.

Gestion des incidents

Que se passe-t-il en cas d’incident de sécurité ?
Nous appliquons une procédure de gestion des incidents incluant : détection, qualification, confinement, remédiation et forensic. Si nécessaire, nous notifions la CNIL sous 72h et informons les clients concernés. Chaque incident majeur donne lieu à un retour d’expérience et à un plan d’actions correctives suivi jusqu’à sa clôture.

Protection des données personnelles

Dernière mise à jour : 15/09/2025

Chez CentralPay, la protection des données personnelles est au cœur de nos engagements. En tant qu’Établissement de Monnaie Électronique agréé par l’ACPR (n° d’agrément 17138 nous traitons des données personnelles conformément au Règlement Général sur la Protection des Données (RGPD – UE 2016/679) et à la législation française applicable.

Cette politique présente, de manière claire et transparente, les traitements de données personnelles que nous réalisons dans le cadre de l’exécution de nos services de paiement.

1. Qui est responsable du traitement ?

Le responsable de traitement est :
CentralPay – 19 rue Edouard VAILLANT – 37000 TOURS
Contact DPO : dpo@centralpay.com

2. Quelles données collectons-nous ?

CentralPay collecte uniquement les données strictement nécessaires à la fourniture de ses services de paiement et au respect de ses obligations légales et réglementaires.

Données d’identification

  • Nom, prénom, civilité.
  • Date et lieu de naissance.
  • Nationalité.
  • Qualité (dirigeant, représentant légal, UBO).

Données de contact

  • Adresse email.
  • Numéro de téléphone (mobile ou fixe).
  • Adresse postale professionnelle ou personnelle (selon le cas).

Données de paiement

  • Coordonnées bancaires : IBAN et BIC.
  • Données de carte : numéro de carte (collecté uniquement dans un environnement sécurisé PCI DSS et immédiatement tokenisé), date d’expiration, schéma (Visa, Mastercard, etc.), pays émetteur, 4 derniers chiffres.
  • Important : CentralPay n’expose jamais le numéro complet ni le cryptogramme au marchand.

Données transactionnelles

  • Identifiant de transaction, date et heure.
  • Montant, devise, statut de paiement.
  • Référence commande (orderId).
  • Historique des opérations (paiements uniques, récurrents, fractionnés, remboursements).

Données de sécurité et de lutte contre la fraude

  • Adresse IP de connexion.
  • Empreinte technique du terminal (navigateur, langue, résolution écran) lors de l’authentification 3DS.
  • Résultats et scores antifraude internes.
  • Statut éventuel de mise en surveillance (liste noire technique).

Données de conformité KYC/LCB-FT

  • Pièces d’identité (CNI, passeport, titre de séjour).
  • Justificatifs de domicile (facture d’énergie, quittance).
  • Documents légaux de l’entreprise (Kbis, statuts, registre des bénéficiaires effectifs).
  • Informations sur les UBO (noms, pourcentages de détention).

Données techniques (liées aux services)

  • Journaux applicatifs et techniques (logs API).
  • Événements de traitement (webhooks envoyés aux marchands).
  • Identifiants techniques de suivi (transactionId, customerId, etc.).

3. Pour quelles finalités utilisons-nous vos données ?

CentralPay traite vos données personnelles uniquement pour des finalités déterminées, explicites et légitimes. Chaque traitement repose sur une base légale conforme au RGPD.

Exécution des paiements et gestion des services

  • Finalité : exécuter vos opérations de paiement (SEPA, carte, prélèvement, virement, récurrents ou fractionnés), assurer la facturation et gérer les flux financiers.
  • Données concernées : coordonnées bancaires (IBAN, BIC), données de carte (token, schéma, pays, PAN masqué), identifiants de transaction, montants, devises, références commandes.
  • Base légale : exécution du contrat (art. 6.1.b RGPD).

Vérification d’identité et obligations réglementaires (KYC/LCB-FT)

  • Finalité : satisfaire aux obligations légales de lutte contre le blanchiment des capitaux et le financement du terrorisme (LCB-FT), et aux exigences de supervision de l’ACPR.
  • Données concernées : données d’identification (nom, prénom, date de naissance, nationalité), pièces d’identité, justificatifs de domicile, documents légaux de l’entreprise, informations sur les UBO.
  • Base légale : obligation légale (art. 6.1.c RGPD, Code monétaire et financier art. L561-1 et suivants).

Prévention et détection de la fraude

  • Finalité : sécuriser les transactions, prévenir les paiements non autorisés ou frauduleux, appliquer les règles d’authentification renforcée (DSP2/3DS).
  • Données concernées : adresse IP, empreinte technique du navigateur/appareil, schéma et pays émetteur de la carte, résultats des contrôles antifraude, statut éventuel de mise en surveillance.
  • Base légale : obligation légale (DSP2) et intérêt légitime (sécurité des paiements – art. 6.1.f RGPD).

Gestion de la relation client et du support

  • Finalité : communiquer avec les clients et utilisateurs (confirmation d’opérations, envoi de liens de paiement, notifications), répondre aux demandes de support, assurer le suivi des réclamations et litiges.
  • Données concernées : email, téléphone, identifiants client, données transactionnelles associées.
  • Base légale : exécution du contrat (art. 6.1.b RGPD) et intérêt légitime (gestion de la relation client).

Respect d’obligations comptables, fiscales et probatoires

  • Finalité : conserver certaines données pour répondre aux obligations légales de conservation (Code de commerce, Code général des impôts), produire des justificatifs comptables et probatoires.
  • Données concernées : données transactionnelles (montants, devises, dates, statuts, références), coordonnées bancaires liées aux opérations.
  • Base légale : obligation légale (art. 6.1.c RGPD).

Amélioration de nos services et sécurité technique

  • Finalité : analyser l’usage de nos services, optimiser la performance, assurer la résilience et la cybersécurité, conformément au règlement DORA.
  • Données concernées : journaux techniques (logs), événements (webhooks), identifiants techniques, statistiques d’usage anonymisées.
  • Base légale : intérêt légitime (art. 6.1.f RGPD).

4. Quelle est la base légale de ces traitements ?

Chaque traitement repose sur une base légale clairement définie :

  • Exécution du contrat (art. 6.1.b RGPD) : exécution des paiements, gestion de compte, relation client, support.
  • Obligation légale (art. 6.1.c RGPD) : conformité LCB-FT (art. L561 CMF), obligations comptables et fiscales (Code de commerce, CGI), obligations réglementaires (DSP2, ACPR).
  • Intérêt légitime (art. 6.1.f RGPD) : prévention de la fraude, sécurité des systèmes, gestion des litiges, amélioration des services.
  • Consentement (art. 6.1.a RGPD) : uniquement pour certaines communications marketing optionnelles ou si requis par la loi.

5. Combien de temps conservons-nous vos données ?

CentralPay applique un calendrier de conservation strict, conforme aux exigences du RGPD, du Code monétaire et financier et du Code de commerce.

Nous distinguons :

a) Transactions financières (écritures comptables et probatoires)

  • Conservées 10 ans conformément aux obligations comptables et probatoires (art. L123-22 Code de commerce).
  • Données concernées : identifiants de transaction (transactionId), date, montant, devise, statut, référence commande (orderId).
  • Ces informations sont nécessaires à la preuve contractuelle et à la comptabilité et ne sont pas anonymisées.

b) Données personnelles associées aux transactions

  • Conservées 24 mois maximum puis anonymisées de manière irréversible.
  • Données concernées :
    • Coordonnées du payeur (email, téléphone),
    • Adresse IP, empreinte navigateur/appareil (3DS),
    • Données carte (token, PAN masqué, date d’expiration, schéma, pays émetteur),
    • Résultats antifraude (score, statut blacklist).
  • Ces informations ne sont plus conservées au-delà de 24 mois car elles ne sont plus nécessaires ni légalement ni contractuellement.

c) Données relatives aux cartes de paiement

  • Conservées jusqu’à 24 mois après la date d’expiration de la carte, puis supprimées/anonymisées.
  • CentralPay n’expose jamais le PAN complet ni le CVC hors de sa zone PCI DSS.

d) Données relatives aux comptes bancaires (IBAN/BIC) et mandats SEPA

  • Conservées pendant la durée du mandat + 10 ans (preuve contractuelle), puis supprimées/anonymisées.

e) Données KYC / LCB-FT

  • Conservées 5 ans après la fin de la relation d’affaires (art. L561-12 CMF), puis supprimées/anonymisées.
  • Données concernées : pièces d’identité, justificatifs de domicile, documents légaux de l’entreprise, informations sur les UBO.

f) Abonnements et paiements fractionnés

  • Conservés pendant la durée de l’abonnement + 5 ans (exigences probatoires), puis anonymisés.
  • Données concernées : identifiant d’abonnement, échéancier, lien vers moyen de paiement.

g) Journaux techniques et webhooks

  • Conservés 24 mois maximum, puis anonymisés.
  • Données concernées : logs API, événements de traitement, identifiants techniques (customerId, eventId), statuts, horodatages.

6. Qui sont les destinataires de vos données ?

Vos données peuvent être transmises uniquement à :

  • Services internes CentralPay (opérations, conformité, support, sécurité).
  • Partenaires de paiement et établissements bancaires (acquéreurs, systèmes de règlement SEPA, schémas carte).
  • Prestataires techniques (hébergement cloud, prestataire KYC, envoi SMS/email), soumis à des clauses contractuelles conformes RGPD.
  • Autorités compétentes (ACPR, TRACFIN, Banque de France, autorités judiciaires).

Nous ne revendons jamais vos données à des tiers.

7. Où sont traitées vos données ?

  • Les données sont hébergées dans l’Union européenne et majoritairement en Frane
  • En cas de transfert hors UE (ex. prestataire SMS, email), des clauses contractuelles types (SCC) et mesures supplémentaires sont mises en place pour garantir un niveau de protection équivalent.

8. Quels sont vos droits ?

Conformément aux articles 15 à 22 du RGPD, vous disposez de :

  • Droit d’accès, rectification, effacement.
  • Droit à la limitation, opposition, portabilité.
  • Droit de retrait du consentement (le cas échéant).
  • Droit d’introduire une réclamation auprès de la CNIL.

Vous pouvez exercer vos droits en écrivant à : dpo@centralpay.com (réponse sous 30 jours).

9. Sécurité

CentralPay met en œuvre une politique de sécurité alignée sur les standards PCI DSS, ISO 27001/27005 et sur le règlement européen DORA (Digital Operational Resilience Act). Nos dispositifs couvrent l’ensemble du cycle de vie des données et des services de paiement afin de garantir leur confidentialité, leur intégrité et leur disponibilité.

La sécurité est d’abord assurée par une gouvernance claire et une gestion proactive des risques. Nous disposons d’un cadre de gestion des risques validé par la direction, qui comprend une politique d’appétence au risque, une cartographie alignée sur les normes ISO et DORA, ainsi que des indicateurs de risque suivis régulièrement. Ce cadre est mis en œuvre à travers une organisation en trois lignes de défense et piloté par un comité de sécurité et de conformité.

La protection des données repose sur un chiffrement systématique, tant en transit (TLS 1.2/1.3) qu’au repos (AES-256), avec une gestion centralisée des clés. Les données de paiement sont traitées exclusivement dans un environnement certifié PCI DSS niveau 1 et font l’objet d’une tokenisation irréversible qui évite toute exposition des numéros complets de carte ou des cryptogrammes. De plus, nous appliquons des politiques strictes de purge et d’anonymisation automatique des données personnelles à l’issue des durées de conservation prévues par le RGPD.

Les accès aux systèmes sont strictement contrôlés grâce à une gestion des identités centralisée et basée sur le principe du moindre privilège. Chaque collaborateur est soumis à une authentification forte à deux facteurs (MFA), et les habilitations font l’objet de revues régulières afin de garantir leur pertinence.

Nos infrastructures font l’objet d’une surveillance permanente. Les opérations sensibles sont journalisées de manière exhaustive et horodatée, et un système de supervision en temps réel, couplé à un SIEM, permet de détecter rapidement les incidents de sécurité.

La résilience opérationnelle est assurée par un dispositif de continuité aligné sur DORA. CentralPay a mis en place un Plan d’Urgence et de Poursuite d’Activité (PUPA) incluant des volets PCA et PRI, régulièrement testés. Des tests de pénétration et des exercices de gestion de crise sont organisés chaque année, tandis qu’une politique stricte d’externalisation TIC garantit l’évaluation continue des prestataires critiques et la tenue d’un registre d’information réglementaire.

La gestion des incidents suit une procédure formalisée de détection, classification et traitement. En cas d’incident majeur, nous respectons les délais de notification réglementaire auprès de l’ACPR et de la CNIL, et un retour d’expérience systématique est organisé afin d’améliorer en permanence le dispositif de sécurité.

Enfin, CentralPay s’inscrit dans une logique d’amélioration continue. Des audits internes et externes, y compris des audits indépendants PCI DSS et de cybersécurité, sont réalisés régulièrement. Nos dispositifs de contrôle permanent et d’audit périodique sont revus chaque année afin de garantir leur efficacité et leur conformité aux normes internationales et aux exigences réglementaires.

10. Mise à jour de la politique

Cette politique peut être modifiée pour refléter l’évolution des traitements et obligations légales. Toute mise à jour sera publiée sur notre site et, si nécessaire, communiquée aux clients concernés.

FAQ - Protection des données personnelles

Gouvernance et responsabilités

Responsable du traitement et contact DPO

CentralPay, Établissement de Monnaie Électronique (EME), est responsable du traitement pour ses services de paiement.
Contact DPO : dpo@centralpay.com (réponse sous 30 jours).

Données collectées

Quelles données collectons-nous ?

Dans le cadre de la fourniture de ses services de paiement et afin de respecter ses obligations légales, CentralPay collecte uniquement les données strictement nécessaires. Ces données varient en fonction du type d’opération (paiement, vérification KYC, lutte contre la fraude, support client). Elles se répartissent en plusieurs catégories :

  • Données d’identification : nom, prénom, civilité, date et lieu de naissance, nationalité, qualité (par exemple représentant légal, dirigeant ou bénéficiaire effectif – UBO).
  • Données de contact : adresse email, numéro de téléphone, adresse postale.
  • Données de paiement : coordonnées bancaires (IBAN, BIC) ; données de carte traitées exclusivement dans un environnement certifié PCI DSS (numéro complet et CVC collectés uniquement pour être tokenisés et jamais exposés en clair), date d’expiration, schéma (Visa, Mastercard…), pays émetteur, 4 derniers chiffres.
  • Données transactionnelles : identifiant de transaction (transactionId), date et heure, montant, devise, statut, référence commande (orderId), historique des opérations (paiements uniques, récurrents, fractionnés, remboursements).
  • Données de sécurité et de lutte contre la fraude : adresse IP, empreinte 3DS (navigateur/appareil), résultats et scores antifraude, statut éventuel de mise en surveillance technique.
  • Données de conformité KYC/LCB-FT : pièces d’identité officielles, justificatifs de domicile, documents légaux de l’entreprise (ex. Kbis, statuts), informations sur les bénéficiaires effectifs (UBO et pourcentages de détention).
  • Données techniques : journaux applicatifs (logs API), événements transmis aux marchands (webhooks), identifiants techniques (customerId, eventId).

CentralPay ne collecte aucune donnée sensible au sens de l’article 9 du RGPD (santé, religion, opinions politiques, orientation sexuelle, etc.), sauf si la loi l’imposait de manière exceptionnelle.

Finalités

Pourquoi utilisons-nous vos données ?

CentralPay traite vos données personnelles uniquement pour des finalités déterminées, explicites et légitimes. Ces traitements s’inscrivent dans le cadre de l’exécution de nos services de paiement, du respect de nos obligations réglementaires et de la sécurité de nos systèmes. Les principales finalités sont les suivantes :

  • Exécution des paiements : traitement des opérations de paiement (SEPA, carte bancaire, paiements récurrents ou fractionnés), gestion des flux financiers, émission de factures et suivi des règlements.
  • Respect des obligations réglementaires : application des règles de lutte contre le blanchiment des capitaux et le financement du terrorisme (LCB-FT), vérification d’identité (KYC), conservation légale des documents, supervision par l’ACPR.
  • Prévention et détection de la fraude : mise en œuvre des contrôles de sécurité exigés par la DSP2 (authentification forte, 3DS), calcul de scores antifraude et gestion des alertes.
  • Relation client et support : communication avec les clients et utilisateurs (notifications, confirmations, envoi de liens de paiement), traitement des demandes de support, gestion des réclamations et litiges.
  • Obligations comptables et fiscales : conservation des pièces probatoires, respect des règles du Code de commerce et du Code général des impôts.
  • Amélioration et sécurité technique : suivi de la performance et de la disponibilité de nos services, renforcement de la résilience opérationnelle conformément au règlement DORA, amélioration continue de l’expérience client et de la sécurité de nos systèmes.

Bases légales

Sur quelles bases légales reposent nos traitements ?

CentralPay traite vos données personnelles uniquement pour des finalités déterminées, explicites et légitimes. Ces traitements s’inscrivent dans le cadre de l’exécution de nos services de paiement, du respect de nos obligations réglementaires et de la sécurité de nos systèmes. Les principales finalités sont les suivantes :

  • Exécution des paiements : traitement des opérations de paiement (SEPA, carte bancaire, paiements récurrents ou fractionnés), gestion des flux financiers, émission de factures et suivi des règlements.
  • Respect des obligations réglementaires : application des règles de lutte contre le blanchiment des capitaux et le financement du terrorisme (LCB-FT), vérification d’identité (KYC), conservation légale des documents, supervision par l’ACPR.
  • Prévention et détection de la fraude : mise en œuvre des contrôles de sécurité exigés par la DSP2 (authentification forte, 3DS), calcul de scores antifraude et gestion des alertes.
  • Relation client et support : communication avec les clients et utilisateurs (notifications, confirmations, envoi de liens de paiement), traitement des demandes de support, gestion des réclamations et litiges.
  • Obligations comptables et fiscales : conservation des pièces probatoires, respect des règles du Code de commerce et du Code général des impôts.
  • Amélioration et sécurité technique : suivi de la performance et de la disponibilité de nos services, renforcement de la résilience opérationnelle conformément au règlement DORA, amélioration continue de l’expérience client et de la sécurité de nos systèmes.

Pendant combien de temps conservons-nous vos données ?

CentralPay applique des délais de conservation précis, fondés sur les obligations légales et les besoins opérationnels. À l’issue de ces délais, les données sont soit supprimées, soit anonymisées de façon irréversible.

  • Transactions financières (écritures probatoires) : conservées 10 ans, conformément au Code de commerce.
  • Données personnelles associées aux transactions (email, téléphone, IP, empreintes 3DS, PAN masqué, token de carte, scores fraude) : conservées 24 mois maximum, puis supprimées ou anonymisées.
  • Données de carte (token + métadonnées) : conservées jusqu’à 24 mois après la date d’expiration de la carte. Le PAN complet et le CVC ne sont jamais exposés en clair.
  • Payment Requests (emails/SMS) : conservées 24 mois maximum.
  • Abonnements et paiements fractionnés : conservés pendant la durée de l’abonnement + 5 ans.
  • Comptes bancaires (IBAN/BIC) et mandats SEPA : conservés pendant la durée du mandat + 10 ans (preuve contractuelle).
  • KYC / LCB-FT : données conservées 5 ans après la fin de la relation d’affaires (art. L561-12 CMF).
  • Journaux techniques et webhooks : conservés 24 mois.

Au-delà de ces durées, CentralPay ne conserve que des données anonymisées ou strictement nécessaires au respect d’une obligation légale.

Localisation et transferts

Où vos données sont-elles traitées ?

Les données traitées par CentralPay sont hébergées en priorité dans l’Union européenne, principalement en France, dans des environnements certifiés PCI DSS et ISO 27001.

À ce jour, CentralPay ne transfère pas de données personnelles hors de l’Union européenne.
Si un transfert hors UE devait être nécessaire à l’avenir (par exemple pour un prestataire SMS ou email), il serait encadré par :

  • une analyse d’impact du transfert,
  • la mise en place des Clauses Contractuelles Types (SCC) de la Commission européenne,
  • des mesures techniques complémentaires (chiffrement, segmentation, contrôle d’accès),
  • et une information transparente de nos clients.

Transfert de données hors UE : comment procédons-nous ?

À ce jour, CentralPay ne transfère pas de données personnelles hors de l’Union européenne.
Toutes les données sont hébergées et traitées dans l’UE, principalement en France et au sein d’infrastructures certifiées (PCI DSS).

Si, à l’avenir, un transfert hors UE devait être nécessaire (par exemple pour un prestataire SMS ou email), CentralPay s’engage à :

  • procéder à une analyse d’impact sur le transfert,
  • appliquer les Clauses Contractuelles Types (SCC) de la Commission européenne,
  • mettre en place des mesures techniques supplémentaires (chiffrement, cloisonnement, contrôle d’accès),
  • et informer ses clients en toute transparence.

Nature des données

Traitons-nous des données sensibles ?

Non. CentralPay ne traite aucune donnée sensible au sens de l’article 9 du RGPD (santé, religion, opinions politiques, orientation sexuelle, etc.).
Nous collectons uniquement les informations strictement nécessaires à l’exécution des paiements et au respect de nos obligations légales (LCB-FT, supervision ACPR).

Collectons-nous des données de mineurs ?

CentralPay fournit ses services exclusivement à des professionnels (B2B). Nous ne collectons donc pas volontairement de données de mineurs.
Si, indirectement, un mineur est amené à effectuer un paiement, le traitement reste limité aux données de paiement nécessaires (ex. coordonnées bancaires ou carte), et toujours sous la responsabilité de son représentant légal lorsqu’une vérification est requise.

Conformité RGPD

Réalisons-nous des analyses d’impact (PIA)?

Oui, nous réalisons des AIPD (PIA) pour les traitements susceptibles d’engendrer un risque élevé (ex. KYC, antifraude/3DS, tokenisation carte, analyses longitudinales). Les risques résiduels et mesures de réduction sont documentés.

Comment garantissons-nous la minimisation et le privacy by design ?

Nous collectons uniquement les champs nécessaires par finalité, cloisonnons les environnements (prod/préprod), nous n’utilisons aucune donnée réelle en test, limitons les payloads webhooks au minimum utile, et appliquons des purges/anonymisations automatiques à l’échéance.

Comment CentralPay documente sa conformité RGPD ?

  • Politique RGPD publique (site).
  • Registre des traitements (interne, à jour).
  • PIA sur les traitements à risque (interne).
  • Politiques/procédures (sécurité, purge, incidents, droits).
  • Rapports de contrôle interne (ACPR).

Sous-traitants

Comment encadrons-nous nos prestataires ?

Chaque prestataire est contractuellement encadré (art. 28) : mesures de sécurité, confidentialité, notification d’incident, audibilité, localisation des données, sous-traitance en cascade contrôlée. Due diligence initiale + réévaluation régulière (sécurité, SLA, conformité).

Quels prestataires utilisons-nous ?

Sur demande et après NDA, nous pouvons fournir la liste à jour par catégorie de nos prestataires (hébergement/cloud, KYC, envoi email/SMS, anti-fraude, support) en indiquant la zone géographique.

Comment sélectionnons-nous nos prestataires essentiels ?

CentralPay applique une politique d’encadrement des sous-traitants alignée à la fois sur le RGPD (art. 28) et sur le règlement DORA.

Lors de la sélection, nous menons une due diligence approfondie couvrant la sécurité (certifications, mesures techniques), la conformité réglementaire (RGPD, DSP2, LCB-FT), la localisation et le régime juridique des données, la solidité financière du prestataire ainsi que les niveaux de service (SLA) proposés. Pour les prestataires critiques, nous examinons en particulier leur intégration dans la chaîne de valeur des services de paiement et leur rôle en matière de résilience opérationnelle.

Chaque relation contractuelle inclut des clauses conformes à l’article 28 RGPD (confidentialité, sécurité, notification d’incident, limitation des sous-traitances en cascade) ainsi que, le cas échéant, des Clauses Contractuelles Types (SCC) pour encadrer les transferts hors Union européenne.

Conformément à DORA, nous tenons un registre d’information des prestataires TIC et identifions ceux considérés comme prestataires critiques. Ces prestataires font l’objet d’une évaluation renforcée, avec des exigences contractuelles spécifiques en matière de disponibilité, d’intégrité, de continuité et de tests de résilience.

Le suivi est assuré au travers de revues régulières (contrôles, rapports d’audit, attestations de conformité type SOC/ISO, questionnaires de sécurité), d’un droit d’audit contractuel et de mécanismes de reporting périodique. Nous intégrons ces évaluations dans notre cartographie des risques TIC et nos comités de suivi DORA.

Sécurité et résilience

Quelles protections techniques appliquons-nous ?

CentralPay protège les données et les systèmes en combinant des mécanismes techniques robustes et conformes aux meilleurs standards internationaux.
Les échanges sont sécurisés par un chiffrement systématique : TLS 1.2/1.3 pour les données en transit et AES-256 pour les données au repos, avec une gestion centralisée des clés.
Les données de carte sont traitées exclusivement dans un environnement PCI DSS niveau 1, avec collecte en zone dédiée et tokenisation irréversible pour éviter toute exposition du PAN complet.
Les accès aux systèmes sont contrôlés par des mécanismes RBAC (role-based access control) et protégés par une authentification forte (MFA), avec des revues régulières des habilitations.
Toutes les actions sensibles font l’objet d’une journalisation horodatée et inviolable, intégrée dans un SIEM qui assure la détection et l’alerte en temps réel.
L’infrastructure est cloisonnée : segmentation des réseaux, séparation stricte des environnements (production, test, préproduction) et gestion sécurisée des secrets.
Enfin, CentralPay teste régulièrement son dispositif à travers des tests de pénétration, des scans de vulnérabilités et des audits externes indépendants.

Comment notre organisation garantit la sécurité ?

La sécurité ne repose pas uniquement sur la technologie mais aussi sur une organisation et une gouvernance solides.
CentralPay applique un cadre de gestion des risques intégrant une cartographie détaillée, des indicateurs de suivi (KRI) et une politique d’appétence au risque validée par la direction.
La supervision s’appuie sur le modèle reconnu des trois lignes de défense : les opérations assurent les contrôles de premier niveau, une fonction indépendante de conformité et de contrôle permanent supervise la deuxième ligne, et l’audit interne constitue la troisième ligne.
Un comité sécurité et conformité se réunit régulièrement pour piloter la stratégie et mettre à jour les politiques et procédures clés (gestion des accès, incidents, purges, exercice des droits RGPD).
Enfin, la culture sécurité est renforcée par des formations régulières des équipes, couvrant la cybersécurité, la protection des données personnelles et les obligations LCB-FT.

Que faisons-nous en cas d’incident de sécurité ?

CentralPay dispose d’une procédure formalisée de gestion des incidents.
En cas d’incident, nous procédons à une détection rapide, une qualification et un confinement immédiat, suivis d’actions de remédiation.
Les événements sont intégralement journalisés et investigués (forensic) afin d’identifier la cause et d’éviter leur récurrence.
Lorsque la réglementation l’impose, nous notifions la CNIL dans un délai maximum de 72 heures et informons les personnes concernées en cas de risque élevé.
Chaque incident donne lieu à un retour d’expérience (REX) et à la mise en place d’un plan d’actions correctives, qui est suivi jusqu’à sa résolution complète.

Nos audits de sécurité

CentralPay est soumis à plusieurs niveaux de contrôle et de tests de sécurité, à la fois internes et externes :

  • Audits externes réguliers :
    • Certification annuelle PCI DSS niveau 1 sur la collecte et le traitement des données de paiement,
    • Audits indépendants de cybersécurité,
    • Tests de pénétration réalisés par des prestataires tiers pour identifier et corriger les vulnérabilités.
  • Contrôles internes permanents (seconde ligne de défense) : revues des habilitations, scans de vulnérabilités, surveillance des systèmes critiques.
  • Audits périodiques indépendants (troisième ligne de défense) : audit interne et audit externe du dispositif de sécurité, conformité réglementaire (ACPR, DORA).
  • Revue annuelle des politiques : l’ensemble de nos politiques de sécurité, de purge, d’incidents et de gestion des prestataires est revu et validé chaque année par la direction.
  • Tests de résilience conformément à DORA :
    • Plans de Continuité et de Reprise d’Activité (PCA/PRI) testés régulièrement pour valider la capacité à maintenir les services en cas d’incident majeur,
    • Exercices de crise simulant des scénarios de cyberattaque ou d’indisponibilité critique,
    • Tests de charge et de performance sur les infrastructures critiques,
    • Scénarios de bascule et redondance entre environnements pour garantir la disponibilité,
    • Pour les fonctions critiques, recours progressif à des tests de résilience avancés de type “TLPT” (Threat-Led Penetration Testing), exigés par DORA pour les acteurs significatifs.

Droits des personnes

Quels sont vos droits et comment les exercer ?

En application des articles 15 à 22 du RGPD, vous disposez des droits suivants sur vos données personnelles :

  • droit d’accès,
  • droit de rectification,
  • droit à l’effacement,
  • droit à la limitation,
  • droit d’opposition,
  • droit à la portabilité,
  • droit de retrait du consentement.

Vous pouvez exercer vos droits en adressant une demande à : dpo@centralpay.com.
Nous nous engageons à vous répondre dans un délai de 30 jours maximum, sauf cas exceptionnel justifiant une prolongation. En cas de difficulté, vous pouvez également saisir la CNIL.

Comment concilions-nous effacement et obligations légales ?

CentralPay respecte le droit à l’effacement prévu par le RGPD, mais certaines données doivent être conservées en raison d’obligations légales.
Nous supprimons ou anonymisons toutes les données personnelles qui ne sont plus nécessaires.
En revanche, lorsque la loi nous impose de conserver certaines informations (par exemple les écritures comptables pendant 10 ans ou les données KYC pendant 5 ans après la fin de la relation), ces données sont maintenues mais :

  • leur accès est strictement limité,
  • elles ne sont utilisées que pour les finalités imposées par la loi (contrôle ACPR, TRACFIN, obligations probatoires).

Ainsi, nous trouvons un équilibre entre le respect des droits des personnes et nos obligations réglementaires.

Autres garanties

Utilisons-nous des décisions automatisées ou du profilage ?

CentralPay n’applique aucune décision entièrement automatisée produisant des effets juridiques ou significatifs sur les personnes, au sens de l’article 22 du RGPD.
Nous utilisons en revanche des outils de scoring antifraude qui calculent un niveau de risque sur les transactions. Ces résultats servent uniquement d’aide à la décision : lorsqu’un cas est sensible ou à risque, il est systématiquement revu et validé par un contrôle humain.

Utilisons-nous des cookies ou traceurs à des fins publicitaires ?

Sur les parcours de paiement et dans les API, CentralPay n’utilise aucun cookie publicitaire ni traceur marketing. Seuls des cookies ou traceurs strictement nécessaires au fonctionnement technique et à la sécurité des parcours (ex. gestion de session, authentification) peuvent être utilisés.
À ce stade, aucun mécanisme de consentement via bannière n’est nécessaire, puisque nous n’utilisons pas de cookies optionnels.

Comment assurons-nous la résilience et les sauvegardes ?

Oui. L’infrastructure est redondée sur deux data centers localisés en France ; les sauvegardes sont chiffrées et externalisées, testées régulièrement (restores) et retiennent les mêmes contrôles d’accès que la production.

Avons-nous une politique de purge et d’anonymisation documentée ?

Oui, avec délais par objet (transactions/personnelles 24 mois, cartes jusqu’à 24 mois après date d’expiration, KYC 5 ans post-relation, mandats 10 ans, logs 24 mois) et mécanismes (suppression vs anonymisation irréversible), plus traces de purge (logs d’exécution).

Nos environnements de test contiennent-ils des données réelles ?

CentralPay n’utilise jamais de données personnelles réelles dans ses environnements de test ou de préproduction. Tous nos jeux de données internes (ex. cartes, IBAN, profils clients) sont synthétiques ou fictifs et conformes aux standards PCI DSS.

Cependant, les utilisateurs de nos environnements de test (par ex. marchands intégrateurs) peuvent techniquement saisir leurs propres données. Cette pratique est formellement interdite et encadrée par nos conditions d’utilisation.

Si un utilisateur insère par erreur des données personnelles dans un environnement de test, celles-ci :

  • ne sont pas utilisées à des fins de traitement de paiement réel,
  • ne sont pas répliquées en production,
  • et font l’objet d’une purge automatique ou manuelle dès leur détection.

Comment CentralPay gère-t-il l’accès des équipes support aux données ?

Les équipes support de CentralPay n’ont pas d’accès direct et permanent aux données personnelles. L’accès est accordé uniquement en cas de besoin opérationnel (par exemple pour résoudre un incident ou assister un client), et selon les principes suivants :

  • Accès temporaire et justifié : chaque accès est accordé pour une durée limitée et doit être motivé par un ticket ou une demande validée.
  • Principe du moindre privilège : l’agent support ne voit que les données strictement nécessaires pour traiter la demande.
  • Authentification forte (MFA) : tous les accès sont sécurisés par une authentification à plusieurs facteurs.
  • Traçabilité complète : chaque action effectuée par un membre du support est enregistrée et auditée.
  • Revue régulière des habilitations : les droits d’accès sont revus mensuellement pour s’assurer qu’ils restent justifiés.
  • Masquage des données sensibles : les champs sensibles (ex. numéro complet de carte, CVC, IBAN complet) sont systématiquement masqués dans les interfaces, afin que le support ne puisse jamais les visualiser en clair.

Offrons-nous des clauses contractuelles spécifiques RGPD à vos clients ?

Nos CGU/contrats intègrent les clauses nécessaires (confidentialité, sécurité, coopération incidents, sous-traitance, conservation/purge). Des avenants RGPD sont possibles selon les cas d’usage.

Partageons-nous nos politiques et procédures internes ?

La Politique RGPD publique est disponible en ligne. Les politiques internes détaillées (procédures incidents, purge, sécurité) ne sont, par défaut, pas partagées.

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 profil Marchand 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 profil ou sa clôture immédiate.

1. Activités interdites de manière absolue

CatégorieExemples d’activités interdites
Activités illicitesVente de drogues, de produits illicites ou de substances interdites
Blanchiment d’argent, financement du terrorisme
Prostitution
Produits interdits ou réglementés sans autorisationVente de médicaments ou produits pharmaceutiques sans agrément
Vente d’alcool, de tabac ou de jeux d’argent sans licence
Vente d’armes, d’explosifs ou de dispositifs de piratage
Contenus et comportements illégauxDiffusion de contenus à caractère pornographique ou extrême
Activités incitant à la haine, au racisme ou faisant l’apologie du terrorisme
Diffusion d’images contraires à l’ordre public
Fraudes ou pratiques commerciales interditesUsurpation d’identité, fraude documentaire
Vente de produits contrefaits ou de marques non autorisées
Sites de phishing ou logiciels espions
Réseaux à risque ou non coopératifsOrganisations sectaires ou mouvements ultra-radicaux
Réseaux opérant dans des juridictions sous sanction ou non coopératives (ex. paradis fiscaux non reconnus)

1.1. 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)

2. 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.

SDD Transaction

See more about SDD Transaction

jQuery(document).ready( function($) { window.live_699ea29e43811 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e43811", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e43811.load(); });

Principes de réserve

La réserve représente les sommes qui sont maintenues sur votre compte de réserve CentralPay afin de permettre de couvrir les R-transactions (rejets, refus, retours, remboursements, contestations, impayés) lorsque votre compte de paiement n’est pas solvable. 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 Marchand : Administration Versements 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 compte doit donc dépasser la valeur du pied de compte pour autoriser les versements sortants (payout).

Le détail du pied de compte est visible depuis le Portail Marchand : Administration Versements 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 sur votre compte de réserve 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 si votre compte de paiement n’est pas solvable. 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 Marchand : Administration Versements Seuil variable

Demandes de paiement

La demande de paiement (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 Marchand. 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 à renseigner
Paiements unitaires
Transaction par cartepaymentMethod[]=TRANSACTION
Pré-autorisation sur carte (réservé aux activités de locations)paymentMethod[]=TRANSACTION
transaction[source]=DP
Vérification carte (transaction à 0 €)paymentMethod[]=TRANSACTION
transaction[source]=RI
Transaction par virement bancairepaymentMethod[]=SCT_TRANSACTION
Transaction par prélèvement SEPApaymentMethod[]=SDD
sdd[remittanceInformation]
Transaction par initiation de paiementProchainement
Paiements récurrents
Abonnement par cartepaymentMethod[]=SUBSCRIPTION
subscriptionModel[subscriptionModelId]
Abonnement par prélèvement SEPApaymentMethod[]=SUBSCRIPTION
subscription[source]=SDD
subscriptionModel[subscriptionModelId]
Paiement fractionné par cartepaymentMethod[]=INSTALLMENT
intallment[intervalUnit]
installment[intervalCount]
installment [iterationCount]
Paiement fractionné par prélèvement SEPApaymentMethod[]=INSTALLMENT
installment[source]=SDD
intallment[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

⚠️ 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éfinition
amountMontant de la demande de paiement en centimes
merchantPaymentRequestIdRé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 Marchand

2.1. Création et types de demandes de paiement

Vous pouvez créer une demande de paiement depuis le Portail Marchand Demandes de paiement Liens de paiement Créer .

Les demandes de paiement créées depuis le Portail Marchand 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 :

Recette Portail Marchand – Demandes de paiement
Production Portail Marchand – 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 Marchand, ou via import de fichiers plats.

2.3. Création de demandes de paiements par import de fichiers plats

Depuis le Portail Marchand 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écharger le modèle :

  • Au format CSV➝
  • Au format JSON ➝

Quelques informations importantes :

DésginationDéfinition
profil_uuid*UUID du profil de demande de paiement
merchant_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 famille
first_namePrénom
email*Email du destinataire
phoneTéléphone du destinataire au format international (ex : 33612345678).
create_customerCréation d’un profil client « Customer » : renseigner « O » pour OUI ou « N » pour NON
link_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 paiement
language*Langue de la communication et de la page de paiement (FRE pour français, ENG pour anglais…)
Les champs avec un * sont obligatoires.

Bonnes pratiques

Articles

  • Déclaration TVA par pays
  • Merchant Initiated Transaction (MIT)
  • Verification of Payee (VoP)

Déclaration TVA par pays

CentralPay n’identifie pas le pays TVA des acheteurs : cette responsabilité incombe au marchand. Pour justifier correctement vos déclarations, collectez le pays de l’acheteur, conservez vos preuves, et transmettez‑les à CentralPay afin qu’elles figurent dans vos exports et historiques de transaction.

Public cible : marchands B2C vendant des biens ou services dans plusieurs pays de l’Union européenne.

1) Principe général

La TVA applicable dépend du pays de résidence de l’acheteur (consommateur final), non du pays du marchand ni du moyen de paiement utilisé.

Le marchand doit donc déterminer, conserver et déclarer le pays de son client afin d’appliquer la bonne TVA. CentralPay n’a ni la légitimité réglementaire ni la fiabilité technique pour déterminer ce pays à sa place.

En clair : vous êtes responsable de collecter et de stocker les informations nécessaires à la détermination du pays TVA.

2) Pourquoi CentralPay ne peut pas déterminer le pays du client

Les indices techniques accessibles à un PSP (carte, IP, etc.) ne permettent pas une identification fiable du pays de l’acheteur :

  • Pays BIN (carte) : peu fiable pour la TVA. Les cartes de banques en ligne sont souvent émises dans un autre pays que celui du détenteur.
  • Pays IP : faussé en cas d’utilisation de VPN, proxy, mobile ou cloud.
  • Payeur ≠ Acheteur : la personne qui paie n’est pas forcément celle soumise à la TVA (ex. carte d’un proche ou d’un employeur).

C’est pourquoi CentralPay ne réalise aucune analyse pour identifier le pays du client. Seul le marchand détient l’information fiscale valide.

3) Ce que vous devez faire en tant que marchand

3.1 Collecter le pays de l’acheteur

  • Intégrez la sélection du pays de facturation dans votre tunnel de commande.
  • Transmettez ces informations à CentralPay via l’API au moment de la transaction.

3.2 Transmettre le pays à CentralPay

Type de donnéeChamp à renseignerDescription
Pays de l’acheteur (obligatoire)Customer > countryCode ISO 3166‑1 alpha‑2 du pays du client.
⚠️ Si vous n’alimentez pas Customer.country, CentralPay ne peut pas afficher ni exporter le pays de vos acheteurs. Vos exports ne permettront donc pas de justifier vos déclarations TVA.

4) Ce que CentralPay fournit dans les exports

CentralPay met à disposition des exports comportant :

ColonneSourceUsage
Customer > countryValeur transmise par le marchand via Customer > countryPreuve déclarative du marchand, à utiliser pour la TVA.
Transaction > end_user_ipIP de l’acheteurIndice technique non probant.
Transaction > card_countryPays de la carte utilisée par l’acheteurIndice technique non probant.
sctTransaction > ibanIBAN de l’acheteur par virement bancaire (contenant le code pays)Indice technique non probant.
bankAccount > ibanIBAN de l’acheteur par prélèvement SEPA (contenant le code pays)Indice technique non probant.

Des exports personnalisés peuvent être mis en place si vous souhaitez inclure d’autres champs ou formats (SFTP, e‑mail…).

5) Bonnes pratiques de conformité TVA

  1. Toujours collecter le pays de facturation côté front (champ obligatoire ou déduit du profil client).
  2. Croiser au moins deux preuves non contradictoires pour chaque commande.
  3. Gérer les divergences : si les indices diffèrent (ex. IP ≠ carte), demandez un justificatif avant de facturer.
  4. Enregistrer les preuves pendant au moins 10 ans (durée légale pour les services numériques UE).
  5. Vous enregistrer à l’OSS/IOSS si vous vendez à des consommateurs dans plusieurs pays de l’UE.
  6. Relier facture, transaction et preuves pour chaque vente.

6) Exemples de cas

SituationDonnées collectéesAction recommandée
Adresse = FR, BIN = FRDeux preuves concordantesFacturez avec TVA FR
Adresse = FR, BIN = DE, IP = DEDivergenceDemandez un justificatif avant facturation
Aucun pays collectéDonnée manquanteNon‑conformité potentielle – corriger votre parcours

7) FAQ

CentralPay peut‑il déterminer le pays à ma place ?
Non. Nous exposons des indices (pays BIN, etc.), mais la décision et la preuve fiscale relèvent de vous.

Puis‑je me baser uniquement sur le BIN ?
Non, le BIN n’est pas une preuve fiable. Utilisez toujours le pays de facturation comme référence principale.

Comment vérifier que mes exports sont complets ?
Vérifiez la présence de buyer_country_declared dans vos fichiers. Si le champ est vide, votre front n’a pas transmis le pays.

Merchant Initiated Transaction (MIT)

Introduction

Une Merchant-Initiated Transaction (MIT) est un paiement initié sans interaction du titulaire de la carte, réalisé dans le cadre d’un contrat préexistant entre le marchand et son client. Ce modèle s’applique aux facturations récurrentes, variables ou usage-based.

Dans le cadre DSP2, une MIT peut être exemptée d’authentification SCA, à condition que :

  1. Le marchand dispose d’un mandat contractuel valide,
  2. Une transaction initiale CIT authentifiée (3DS) ait été réalisée.

Les MIT reposent donc sur une authentification antérieure réussie associée à un Customer et à un cardToken.

Documentation 3DS 2.2 (général)

1. CIT et MIT : quelle différence ?

Customer-Initiated Transaction (CIT)

Une transaction CIT est initiée par le titulaire de la carte. Elle implique généralement une authentification 3DS.

Rôles de la CIT initiale dans un flux MIT :

  • authentifier la carte et le porteur,
  • valider la création d’un Customer,
  • permettre la génération d’un cardToken,
  • servir de référence aux MIT futures.

Merchant-Initiated Transaction (MIT)

Une MIT est déclenchée par le marchand sans intervention du porteur, conformément au mandat conclu avec le client.

Cas d’usage :

  • facturation mensuelle à montant variable,
  • frais ponctuels supplémentaires,
  • utilisation de type usage-based.

2. Conditions nécessaires pour effectuer des MIT

Deux conditions doivent être réunies :

2.1. Exécution d’une CIT initiale authentifiée (3DS)

Cette CIT doit être :

  • authentifiée via 3DS,
  • capturée,
  • associée à un Customer et à un cardToken.

2.2. Existence d’un mandat commercial valide

Le mandat doit couvrir :

  • la nature des services,
  • le montant futur (fixe ou variable),
  • les conditions et fréquences de facturation,
  • l’accord explicite du client sur les paiements ultérieurs.
Documentation Formulaire de paiement CustomForm

3. Montant de la CIT initiale

Il est parfaitement conforme de réaliser une CIT initiale avec un montant symbolique (par exemple 1 € ou 0,01 €) pour :

  • authentifier la carte,
  • valider le contrat commercial,
  • générer un token utilisable pour des MIT ultérieures.

La CIT initiale n’a pas à couvrir le montant réel des MIT futures.

Remarque : Les transactions à 0€ type “vérification / empreinte carte authentifiée” fonctionnent pour certains schémas mais n’est pas universellement supporté par les banques partenaires, d’où la recommandation d’utiliser une transaction CIT authentifiée.
Également, bien que la CIT symbolique soit techniquement acceptable, l’émetteur peut — en fonction de son profil de risque, du schéma ou de l’ancienneté — décider de déclencher un challenge 3DS lors d’une MIT ultérieure."

4. Durée de validité d’une CIT pour générer des MIT

Il n’existe pas de limite imposée par CentralPay.
La durée de validité dépend exclusivement :

4.1. De l’ACS émetteur (banque du porteur)

Les pratiques observées dans le secteur :

  • conservation de la preuve d’authentification : ≈ 13 mois,
  • pour certains émetteurs : jusqu’à 36 mois.

Après expiration de la preuve 3DS, les MIT peuvent faire l’objet :

  • de soft declines,
  • de demandes d’authentification,
  • de rejets « SCA required ».

4.2. Du recours au 3DS 2.2 – 3RI

Dans certains cas, le marchand peut renouveler une authentification côté émetteur via 3RI, afin de prolonger la durée de validité du mandat.

Disponibilité schémas :

  • CB : support opérationnel,
  • Mastercard : support opérationnel,
  • Visa : support en cours d’évolution, non fiable à date.
Documentation 3DS 2.2 – 3RI

5. Une MIT peut-elle nécessiter une authentification 3DS ?

Oui. Une MIT peut être exceptionnellement requalifiée en CIT par l’émetteur (ACS), notamment dans les cas suivants :

  • ancienneté élevée de la CIT initiale,
  • suspicion de fraude,
  • règles RBA de l’émetteur,
  • montants atypiques ou plus élevés que prévu.

Réduire le risque de demande 3DS

  • utiliser 3RI lorsque supporté,
  • conserver un cadre contractuel clair,
  • refaire une CIT en cas d’échecs répétés.
Pour en savoir plus FAQ 3DS 2.2

6. Transactions MIT ou service d’abonnement de CentralPay : comment choisir ?

Il n’est pas obligatoire de passer par le module Subscription pour effectuer des MIT.

6.1. Utiliser le service d’abonnement si :

  • les montants sont fixes,
  • la fréquence est récurrente,
  • la logique est celle d’un abonnement.

6.2. Utiliser les transactions MIT si :

  • les montants sont variables (usage-based model),
  • les facturations sont ponctuelles,
  • les débits doivent être initiés par le marchand.
Documentation Transaction carte récurrente

7. Implémentation API : effectuer une transaction MIT

7.1. CIT initiale

Lors de la transaction CIT :

  • création d’un customer,
  • génération d’un cardTokenId,
  • authentification 3DS.

7.2. Transaction MIT

Chaque transaction MIT doit inclure :

  • customerId,
  • cardTokenId (ou cardId),
  • indication du contexte MIT dans les paramètres de transaction,
  • les métadonnées utiles pour rattacher la MIT à la CIT initiale.
Documentation Transaction carte récurrente > Abonnement depuis des transactions successives

8. Bonnes pratiques pour fiabiliser un flux MIT

8.1. Techniques

  • déclencher les MIT peu après la facturation,
  • regrouper les paiements lorsque pertinent,
  • utiliser 3RI pour rafraîchir l’authentification,
  • conserver un cardToken stable.

8.2. Gestion des refus

  • en cas de code indiquant « SCA required »,
    proposer au client une nouvelle CIT (paiement manuel),
    recréer un mandat MIT.

8.3. Contractuelles

  • conserver la preuve du mandat : CGV, logs d’acceptation, contrat, page d’information client.

9. FAQ MIT

Une CIT de 1 € suffit-elle pour un mandat MIT ?

Oui, si elle est authentifiée 3DS.

Combien de temps une CIT permet-elle de générer des MIT ?

Cela dépend de l’ACS : généralement 13 à 36 mois.

Une MIT peut-elle déclencher 3DS ?

Oui, si l’ACS l’exige (RBA, ancienneté de la CIT, montants atypiques).

Dois-je utiliser Subscription pour des montants variables ?

Non, le service subscription est généralement adapté à des modèles d’abonnements fixes. Réaliser une transaction CIT initiale + des transactions MIT ad-hoc est le modèle recommandé.

Que faire si le client change de carte ?

Une nouvelle CIT est nécessaire pour générer un nouveau token.

Verification of Payee (VoP)

À compter du 9 octobre 2025, la réglementation européenne impose aux banques de mettre en place la Verification of Payee (VoP) pour tous les virements SEPA (règlement IPR 2024/886, art. 5c).

L’objectif est de protéger les consommateurs contre les fraudes à l’IBAN.

1. Fonctionnement

Lorsqu’un virement est initié, la banque du payeur doit vérifier que le nom du bénéficiaire saisi correspond à celui associé à l’IBAN. Le résultat de cette vérification est affiché au payeur :

  • MATCH : correspondance exacte
  • CLOSE MATCH : correspondance partielle (ex. faute de frappe, abréviation, particule)
  • NO MATCH : aucune correspondance
  • CHECK NOT POSSIBLE : vérification impossible
⚠️ Le payeur reste libre de poursuivre ou non le virement.
Cependant, un NO MATCH ou un CLOSE MATCH augmentent fortement le risque d’abandon de la transaction.

2. Impacts pour les marchands

Afin d’éviter les rejets ou abandons de virements, il est essentiel de vérifier la cohérence du nom affiché à vos clients avec la raison sociale enregistrée sur votre compte CentralPay.

Cas fréquents :

  • Nom commercial / enseigne / marque → Si vous êtes connus sous un autre nom que votre raison sociale, transmettez-nous ces dénominations. Nous pourrons les déclarer manuellement afin d’améliorer le taux de correspondance.
  • vIBAN CentralPay → Vérifiez que vos interfaces et supports affichent bien la raison sociale du titulaire CentralPay associé à l’IBAN.
  • SmartForm (PaymentRequest) → Aucune action nécessaire : CentralPay affiche automatiquement le titulaire du compte.
  • Devis, factures, communications externes → Assurez-vous que la raison sociale présentée est identique à celle du compte bancaire communiqué à vos clients.
À retenir : 
- Vérifiez que votre raison sociale est correctement enregistrée et communiquée.
- Transmettez à CentralPay vos noms commerciaux ou marques si vous souhaitez les faire reconnaître.
- Harmonisez vos documents (factures, devis, emails) avec le nom officiel de votre compte bancaire.
- Informez vos clients :
* Lorsqu’ils effectuent un virement, le nom du bénéficiaire saisi doit correspondre strictement à votre raison sociale.
* En cas d’alerte de type Close match ou No match dans leur application bancaire, invitez-les à vérifier le nom renseigné.

FAQ - Verification Of Payee

À compter du 9 octobre 2025, la Vérification du bénéficiaire (VoP – Verification of Payee) deviendra obligatoire pour tous les virements SEPA, qu’ils soient classiques ou instantanés. Ce dispositif, gratuit pour les utilisateurs, vise à renforcer la sécurité des paiements en réduisant à la fois :

  • les fraudes au virement (notamment les fraudes au faux RIB),
  • les erreurs de saisie d’IBAN ou de nom du bénéficiaire.

Concrètement, avant l’exécution d’un virement, l’établissement du payeur doit interroger l’établissement du bénéficiaire pour vérifier la concordance entre l’IBAN et le nom du titulaire du compte. En cas de discordance, une alerte est affichée au payeur, qui conserve la liberté de poursuivre ou non l’opération.

Enjeux du dispositif

  • Protection des utilisateurs : limiter les virements mal orientés ou frauduleux.
  • Sécurité du système de paiement SEPA : accompagner le déploiement du virement instantané en Europe.
  • Confiance des entreprises et des particuliers : améliorer la transparence et la fiabilité des paiements.
  • Harmonisation européenne : instaurer une norme commune pour tous les PSP (banques, établissements de paiement et de monnaie électronique).

Base légale

  • Règlement (UE) 2021/1230 sur les virements instantanés en euros et la modification du règlement (UE) n° 260/2012 (SEPA), qui introduit l’obligation de VoP.
  • Règlement (UE) 2015/847 sur les informations accompagnant les transferts de fonds, qui impose la transmission exacte des informations sur le payeur et le bénéficiaire.
  • Code monétaire et financier :
    • Articles L.133-6 et L.133-7 relatifs à l’autorisation des opérations de paiement et à l’exactitude des informations,
    • Articles L.561-5 et suivants relatifs aux obligations de vigilance en matière de LCB-FT.
  • Doctrine de l’ACPR, qui dans plusieurs décisions a sanctionné l’insuffisance de dispositifs de vérification et de correspondance entre l’identité du client et son compte

Foire aux questions (FAQ)

1. Qu’est-ce que la VoP ?

La Vérification de l’Ordre de Paiement (VoP) est un service réglementaire instauré au niveau européen.
Elle permet de comparer automatiquement le nom du bénéficiaire d’un virement avec l’IBAN renseigné par le payeur, avant l’exécution du virement.
Objectif : renforcer la sécurité des paiements et réduire les fraudes (notamment fraude au faux RIB).

2. Qui est concerné ?

  • Les payeurs : particuliers ou entreprises qui initient un virement.
  • Les bénéficiaires : toute personne physique ou morale recevant des virements (vous, en tant que client CentralPay).
  • Les prestataires de services de paiement (PSP) : banques, établissements de paiement ou de monnaie électronique, qui doivent intégrer la VoP dans leurs systèmes.

3. Comment fonctionne la VoP concrètement ?

Lorsqu’un virement est initié :

  1. Le payeur saisit l’IBAN et le nom du bénéficiaire.
  2. Sa banque interroge le PSP du bénéficiaire (via un canal sécurisé) pour vérifier la concordance entre l’IBAN et le nom enregistré dans la base du bénéficiaire.
  3. La réponse est renvoyée au PSP du payeur et affichée au payeur.

4. Quels résultats peuvent apparaître ?

Trois cas sont possibles :

  • Correspondance exacte : l’IBAN et le nom concordent → le virement peut être initié sans alerte.
  • Correspondance partielle : l’IBAN correspond mais le nom est différent (fautes de frappe, abréviation, orthographe différente). Le payeur reçoit un avertissement et peut :
    • corriger le nom,
    • ou confirmer qu’il s’agit bien du bénéficiaire attendu.
  • Absence de correspondance : l’IBAN et le nom ne correspondent pas → le payeur reçoit une alerte forte. Il peut annuler ou décider de poursuivre en acceptant le risque.

Est-ce que la VoP bloque un virement ?

Non. La VoP ne bloque pas l’exécution d’un virement. Elle fournit une information supplémentaire au payeur qui reste libre de valider ou non l’opération.
Toutefois, certaines banques peuvent paramétrer des règles internes de blocage en cas de discordance totale.

Quels échanges ont lieu entre banques et PSP ?

  • Le PSP du bénéficiaire (ex. CentralPay) conserve dans sa base le nom exact du titulaire du compte.
  • Lors d’une requête VoP, il répond par un code standardisé indiquant : correspondance, correspondance partielle ou absence de correspondance.
  • Ces échanges sont sécurisés, tracés et limités aux seules données nécessaires, conformément au Règlement (UE) 2015/847 sur l’accompagnement des virements.
  • Aucune autre donnée personnelle (adresse, documents KYC, etc.) n’est transmise.

Quels sont les avantages de la VoP ?

  • Pour le payeur : réduction des risques de fraude au virement, détection des erreurs de saisie.
  • Pour le bénéficiaire : limitation des retards de paiement liés aux erreurs, sécurisation de l’image vis-à-vis de ses clients.
  • Pour le système financier : meilleure prévention des fraudes et conformité avec les standards européens.

Que dois-je faire en tant que bénéficiaire CentralPay ?

  • Communiquer à vos clients l’IBAN correct et le nom exact enregistré auprès de CentralPay (raison sociale complète, sans abréviation).
  • Vérifier que vos factures, contrats et supports incluent toujours les mêmes coordonnées bancaires.
  • En cas de changement de dénomination sociale ou d’utilisation d’un nom commercial, informer rapidement vos clients et CentralPay pour mettre à jour les données.

Que se passe-t-il en cas de non-concordance fréquente ?

Si vos clients rencontrent souvent des alertes VoP lors de virements, cela peut indiquer que vos coordonnées bancaires ne sont pas communiquées de façon homogène.

CentralPay peut vous accompagner pour réviser et harmoniser vos informations de paiement afin d’éviter les frictions.

Illustration du VoP par le CNMP

SDD Transaction Reversal

See more about SDD Transaction Reversal

jQuery(document).ready( function($) { window.live_699ea29e48816 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e48816", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e48816.load(); });

Deposit

jQuery(document).ready( function($) { window.live_699ea29e48a6a = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Deposit.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e48a6a", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e48a6a.load(); });

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éfinition
NomNom du modèle de page
Template 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 redirection
URL 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 paiement
Couleur des boutonsCouleur des boutons de la page de paiement
Champs 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 :

Recette Portail Marchand – Paramétrage formulaire
Production Portail Marchand – 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é.

SDD Transaction Refund

jQuery(document).ready( function($) { window.live_699ea29e49432 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Refund.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e49432", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e49432.load(); });

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.

👉 Consultez les dernières versions en vigueur des conditions générales CentralPay

1. 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 applicables
Compte de paiementConditions générales de service de paiement
Compte de monnaie électroniqueConditions générales de service de monnaie électronique

Obligation d’acceptation :

Ces 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.

2. 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 standard), 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).

👉 Consultez les dernières versions en vigueur des conditions générales CentralPay

Deposits

jQuery(document).ready( function($) { window.live_699ea29e49ae5 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Deposits.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e49ae5", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e49ae5.load(); });

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 ➝

Guide : Mes comptes

L’entrée Mes comptes du Portail Marchand CentralPay est l’espace dédié au suivi financier de vos comptes (comptes rattachés à votre Profil Marchand) : consultation des informations de compte, suivi des opérations réalisées et à venir, lecture des soldes historisés, et téléchargement des relevés mensuels officiels.

Cette rubrique est particulièrement utile pour les équipes comptables, la direction financière et les personnes en charge du rapprochement et des clôtures.

Accéder au Portail Marchand > Mes comptes

1. Sous-entrées disponibles

La rubrique Mes comptes se compose de 4 sous-entrées :

  • Vue d’ensemble
  • Opérations (incluant l’onglet Opérations à venir)
  • Solde
  • Relevés de compte
ℹ️ Selon votre profil ou votre configuration, l’accès à certaines sous-entrées peut varier. La logique fonctionnelle reste identique.

2. Vue d’ensemble

La sous-entrée Vue d’ensemble permet d’identifier rapidement le compte sélectionné et d’obtenir une lecture immédiate de sa situation financière.

2.1. Informations de compte

Vous y retrouvez notamment les informations clés du compte :

  • Titulaire du compte
  • IBAN et BIC
  • Devise
  • Type de compte
  • Libellé du compte (sélecteur utile si plusieurs comptes sont rattachés à votre profil marchand)

2.2. Solde temps réel

Le bloc Solde temps réel donne une vision instantanée du solde, avec une distinction utile pour la gestion quotidienne :

  • Fonds disponibles (Valeur immédiatement accessible sur votre compte)
  • Débits programmés (Montants des reversements et R-transactions programmés à une date ultérieure)
ℹ️ Selon votre configuration, un « solde de compte de réserve » peut également être affiché.

2.3. Évolution sur période

Un graphique permet d’observer l’évolution sur une période en combinant :

  • le solde
  • les opérations à venir (vision prévisionnelle)

3. Opérations

La sous-entrée Opérations affiche la liste des mouvements affectant le compte, avec un onglet Opérations à venir pour les mouvements attendus mais non encore réalisés. C’est la vue principale pour le rapprochement comptable et la production d’exports.

3.1. Deux notions de date à connaître

Pour une lecture comptable fiable, la vue distingue généralement :

  • Date de valeur : date à laquelle l’opération est considérée comme effective sur le plan financier/comptable (très utilisée pour le rapprochement et les clôtures).
  • Date d’opération : date/heure de l’évènement (utile pour investiguer une chronologie ou recouper un historique).
ℹ️ Recommandation : pour une clôture ou un rapprochement, partez plutôt de la « date de valeur ». Pour une investigation, la « date d’opération » est souvent plus parlante.

3.2. Rechercher une opération

Le moteur de recherche permet de retrouver rapidement une opération à partir d’un critère comptable, d’une référence ou d’un identifiant.

Filtres essentiels

FiltreÀ quoi ça sertParticularités / Bonnes pratiques
CompteRestreindre l’affichage aux opérations d’un compte spécifique.Indispensable si plusieurs comptes sont rattachés à votre profil. Commencez par sélectionner le compte avant d’appliquer d’autres filtres.
Période (date de valeur)Filtrer les opérations sur une période comptable de référence.Base de travail pour les clôtures et le rapprochement. Recommandé : définissez toujours une période avant d’ajouter des critères plus fins (référence, montant, etc.).
MontantRechercher une ou plusieurs opérations correspondant à un montant précis.À combiner avec Compte et Période pour éviter trop de résultats, surtout si vous avez un volume d’opérations de même montant important.
RéférenceRetrouver une opération via votre référence métier personnalisée (commande, facture, identifiant interne, etc.).Très utile si vos équipes utilisent un identifiant commun entre votre système et CentralPay. Peut aussi servir à regrouper plusieurs lignes liées à un même évènement selon votre paramétrage.
Operation IDRechercher une opération via son identifiant CentralPay unique.Le filtre le plus précis : un Operation ID correspond à une ligne unique. À privilégier pour les investigations support/audit lorsque l’identifiant est connu.
LibelléRechercher une opération à partir de son intitulé descriptif (recherche par mots-clés).Utile lorsque vous ne disposez pas d’un identifiant (Operation ID, référence). Pratique pour retrouver une opération “à partir de ce qui est visible” dans la liste.
TypeIsoler une famille d’opérations (carte, virement, prélèvement, remboursement, contestations, etc.).Idéal pour analyser un périmètre (ex. uniquement les virements entrants) ou préparer un export ciblé avant rapprochement.

Filtres avancés

Les filtres avancés sont utiles pour les investigations (support/audit), l’analyse de reversements et les exports comptables. Le tableau ci-dessous résume leur objectif et leurs particularités.

FiltreÀ quoi ça sertParticularités / Bonnes pratiques
NatureQualifier l’origine comptable et fonctionnelle d’une opération afin de distinguer rapidement les écritures Frais, Fonds et Gestion. Frais : opérations liées aux coûts et commissions débités ou crédités sur le compte, associés à l’utilisation des services (ex. frais d’opérations, commissions, remboursements ou corrections de frais).
Fonds : opérations correspondant aux flux financiers qui entrent ou sortent du compte dans le cadre de son activité (ex. transactions clients, versements sortants, remboursements de transaction).
Gestion : opérations internes CentralPay réalisées pour ajuster ou sécuriser le solde du compte (ex. mouvements de réserve, gage espèces, ajustements techniques ou écritures de régularisation).
Source IDRegrouper des opérations liées entre elles (ex. une autorisation carte, la transaction associée, et son remboursement) afin d’analyser un parcours complet. Le Source ID est un identifiant permettant de regrouper différentes opérations liées.
Vous pouvez soit :
• cliquer sur « Filtrer par ce Source ID » depuis une opération de la liste des résultats ;
• ou renseigner le Source ID dans le moteur de recherche afin d’afficher toutes les opérations rattachées à ce même identifiant.
Numéro de payoutRetrouver toutes les opérations liées à un reversement (payout) et en analyser la composition (fonds, frais, ajustements…). Ce filtre regroupe toutes les opérations rattachées à un même reversement (payout), ce qui permet d’en comprendre le détail et la composition.

Comment obtenir le numéro de payout ?
• Recherchez l’opération de versement sortant (PAYOUT), ouvrez son détail (bouton d’action), puis cliquez sur « Voir les opérations du payout » : le portail applique automatiquement le filtre et affiche les opérations concernées.
• À défaut, vous pouvez le déduire depuis la référence du versement sortant : les derniers chiffres correspondent au numéro de payout (ex. PAYOUT-7usge67-153 → numéro de payout = 153).

À noter : le détail des opérations d’un versement sortant est disponible uniquement lorsque les payouts automatiques sont activés. Le premier payout automatique peut ne pas afficher le détail attendu (calibrage du mode de calcul).
Tiers
(Tiers / Type tiers / ID tiers / Pays tiers)
Filtrer les opérations selon la contrepartie impliquée (autre que vous), pour analyser des flux par acteur.Le tiers est la personne morale ou physique impliquée dans l’opération autre que vous (par exemple un client, CentralPay, un autre marchand, un compte externe…).
Vous pouvez filtrer soit :
• par Tiers : nom du tiers (champ libre) ;
• par ID tiers : identifiant CentralPay du tiers (par exemple CustomerID ou MerchantID), pour une recherche précise ;
• par Type tiers : un des quatre types suivants : Customer, Marchand, CentralPay, Compte externe ;
• par Pays tiers : pays dans lequel le tiers est déclaré (par exemple selon la région d’émission de sa carte si c’est un Customer), ce qui peut être utile notamment pour certains besoins de reporting (ex. déclarations de TVA).

3.3. Synthèse débits / crédits

La page présente une synthèse des débits et crédits sur la période filtrée (volume et montant), avec une ventilation possible par nature d’opération (frais, fonds, gestion). Cette lecture permet de vérifier rapidement la cohérence d’une période avant export.

3.4. Exports comptables personnalisés

Depuis la vue Opérations, vous pouvez générer des exports aux formats CSV, Excel ou JSON. Le principe est simple :

  • Paramétrez votre recherche (compte, période, filtres utiles).
  • Lancez la recherche, puis cliquez sur Exporter.
  • Vous recevez le fichier par email et pouvez le télécharger à tout moment depuis le Portail Marchand (rubrique Fichiers d’export).
Voir la documentation : Exports comptables et relevés de compte

4. Solde

La sous-entrée Solde fournit une vision historisée des soldes par compte, structurée par date de valeur (lecture « fin de journée »).

Vous y retrouvez généralement :

  • Solde de clôture (fin de journée)
  • Opérations à venir (agrégat des mouvements attendus)
  • Solde prévisionnel (solde tenant compte des opérations à venir)
ℹ️ Cas d’usage : justifier un solde « à date » (clôture, contrôle interne), ou comparer une situation constatée vs prévisionnelle.

5. Relevés de compte

La sous-entrée Relevés de compte donne accès aux relevés mensuels officiels de votre compte CentralPay. Ces documents sont les justificatifs de référence pour la comptabilité et les preuves administratives.

Chaque début de mois, en plus de la facture, un relevé de compte est généré et mis à disposition dans l’espace sécurisé : Mes comptes > Relevés de compte.

Deux types de relevés peuvent être proposés :

  • Relevé détaillé : fait apparaître l’ensemble des opérations de la période.
  • Relevé synthétique : regroupe les opérations par jour et par type d’opération.
⚠️ Si vous possédez un grand nombre d’opérations, il est possible que toutes n’apparaissent pas sur le relevé détaillé. Dans ce cas, nous vous conseillons de réaliser un export au format CSV, Excel ou JSON.
Voir la documentation : Exports comptables et relevés de compte

6. Actions fréquentes

6.1. Clôture mensuelle

  1. Allez dans Opérations, filtrez par Compte et Période (date de valeur).
  2. Vérifiez la synthèse débits / crédits et la ventilation par nature (frais / fonds / gestion).
  3. Générez un export comptable (colonnes adaptées à votre rapprochement).
  4. Ou téléchargez directement le relevé mensuel dans Relevés de compte pour archivage et justificatif officiel (1 relevé par compte).

6.2. Rapprochement des opérations liée à un versement sortant (payout)

  1. Allez dans Mes comptes > Opérations et, si besoin, sélectionnez d’abord le Compte concerné.
  2. Retrouvez l’opération de versement sortant (PAYOUT), ouvrez son détail (bouton d’action), puis cliquez sur « Voir les opérations du payout » : le Portail applique automatiquement le filtre Numéro de payout et affiche uniquement les opérations rattachées à ce versement.
  3. Analysez la composition du versement à l’aide du filtre Nature pour distinguer les lignes de Fonds, Frais et Gestion (ajustements), puis vérifiez la cohérence du montant global.
  4. Si nécessaire, générez un export (CSV / Excel / JSON) afin d’archiver le détail du payout ou de l’intégrer à votre rapprochement.
ℹ️ Alternative : le numéro de payout peut aussi être déduit de la référence du versement sortant (ex. PAYOUT-7usge67-153 → numéro de payout = 153).
⚠️ Le détail des opérations d’un versement sortant est disponible uniquement lorsque les payouts automatiques sont activés. Le premier payout automatique peut ne pas afficher le détail attendu (calibrage du mode de calcul).

6.3. Justifier un solde à date

  1. Allez dans Solde pour retrouver le solde de clôture à la date souhaitée.
  2. Complétez si nécessaire par le relevé mensuel dans Relevés de compte.

SDD Transaction Refund Reversal

jQuery(document).ready( function($) { window.live_699ea29e4b740 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Refund Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e4b740", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e4b740.load(); });

Informations générales

1. Fonctionnement

Une transaction carte comprend une succession d’actions :

1.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é, etc.) 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 »)

1.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, etc.), le service de « pré-autorisation » donne la possibilité au marchand d’étendre le délai d’autorisation jusqu’à 30 jours.

1.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).

Offres commerciales

CentralPay propose une tarification juste et transparente, adaptée à votre volume d’encaissement et à votre activité. Les tarifs sont dégressifs : plus votre volume augmente, plus les frais unitaires diminuent.

Les frais sont calculés sur la base des volumes de transactions réalisées le mois précédent.

Deux solutions, selon votre besoin

Smart Collection

Accédez gratuitement à la solution d’encaissement : pas d’abonnement, vous payez uniquement des frais à l’utilisation.

Easy Wallet

Accédez à des services complémentaires (notamment la gestion de comptes / wallets) avec un forfait mensuel en plus des frais à l’utilisation.

Aucun surcoût lié aux réseaux cartes

Toutes les offres CentralPay intègrent les frais d’interchange et de réseaux cartes facturés par les banques : vous n’avez donc aucun surcoût à prévoir.

👉 Pour obtenir une estimation selon votre volume et contacter notre équipe commerciale :

Voir les tarifs publics CentralPay

Event

jQuery(document).ready( function($) { window.live_699ea29e4c413 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Event.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e4c413", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e4c413.load(); });

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 Marchand. Allez dans Administration Mon profil marchand Technique Modifier , puis complétez le champ Hosts Custom Forms autorisés.

Accès :

Recette Portail Marchand – Administration
Production Portail Marchand – 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.

1.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 profil Marchand 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.

  1. Créez un objet customer via l’endpoint POST /customer ou récupérez le customerId s’il est déjà connu
  2. 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.

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 (Vente à distance, E-commerce)

Cartes émises dans l’Espace Economique Européen (EEE)

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitEEECB0,200%0,025%0,225%
Cartes personnellesDébitEEEVISA0,200%0,231%0,431%
Cartes personnellesDébitEEEMastercard0,200%0,219%0,419%
Cartes personnellesCréditEEECB0,300%0,025%0,325%
Cartes personnellesCréditEEEVISA0,300%0,231%0,531%
Cartes personnellesCréditEEEMastercard0,300%0,219%0,519%
Cartes professionnellesToutesEEECB0,900%0,025%0,925%
Cartes professionnellesToutesEEEVISA1,450%0,070%1,520%
Cartes professionnellesToutesEEEMastercard1,450%0,171%1,621%
Cartes personnellesToutesEEEAMEX0,000%1,600%1,600%
Cartes professionnellesToutesEEEAMEX0,000%1,600%1,600%

Cartes internationales, émises hors de l’Espace Economique Européen

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitInternationaleVISA1,150%1,343%2,493%
Cartes personnellesDébitInternationaleMastercard1,150%1,343%2,493%
Cartes personnellesCréditInternationaleVISA1,500%1,499%2,999%
Cartes personnellesCréditInternationaleMastercard1,500%0,951%2,451%
Cartes professionnellesToutesInternationaleVISA2,000%0,700%2,700%
Cartes professionnellesToutesInternationaleMastercard2,000%0,951%2,951%
Cartes personnellesToutesInternationaleAMEX0,000%2,400%2,400%
Cartes professionnellesToutesInternationaleAMEX0,000%2,400%2,400%

2. Frais d’interchange et réseaux carte (paiement de proximité)

Cartes émises dans l’Espace Economique Européen (EEE)

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitEEECB0,200%0,025%0,225%
Cartes personnellesDébitEEEVISA0,200%0,231%0,431%
Cartes personnellesDébitEEEMastercard0,200%0,219%0,419%
Cartes personnellesCréditEEECB0,300%0,025%0,325%
Cartes personnellesCréditEEEVISA0,300%0,231%0,531%
Cartes personnellesCréditEEEMastercard0,300%0,219%0,519%
Cartes professionnellesToutesEEECB0,900%0,025%0,925%
Cartes professionnellesToutesEEEVISA1,450%0,070%1,520%
Cartes professionnellesToutesEEEMastercard1,450%0,171%1,621%
Cartes personnellesToutesEEEAMEX0,000%1,600%1,600%
Cartes professionnellesToutesEEEAMEX0,000%1,600%1,600%

Cartes internationales, émises hors de l’Espace Economique Européen

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitInternationaleVISA1,150%1,343%2,493%
Cartes personnellesDébitInternationaleMastercard1,150%1,343%2,493%
Cartes personnellesCréditInternationaleVISA1,500%1,499%2,999%
Cartes personnellesCréditInternationaleMastercard1,500%0,951%2,451%
Cartes professionnellesToutesInternationaleVISA2,000%0,700%2,700%
Cartes professionnellesToutesInternationaleMastercard2,000%0,951%2,951%
Cartes personnellesToutesInternationaleAMEX0,000%2,400%2,400%
Cartes professionnellesToutesInternationaleAMEX0,000%2,400%2,400%

Subscription Model

See more about Subscription Model

jQuery(document).ready( function($) { window.live_699ea29e4e813 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Subscription Model.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e4e813", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e4e813.load(); });

Exchange

jQuery(document).ready( function($) { window.live_699ea29e4ea86 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Exchange.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e4ea86", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e4ea86.load(); });

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 »)

1. Caractéristiques

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.1. Le 3DS 2 « BRW » ou « Browser Authentication » (porteur participant – 1ère transaction)

Il 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 ➝

1.2. Le 3DS2 « 3RI Authentification » (porteur non participant – échéances de paiements récurrents)

Le 3DS Requestor Initiated (3RI) Authentications, ou Authentification Initialisée par le marchand, est utilisée lorsque le porteur n’est pas présent ou non participant.

Le 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 ➝

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 autonomie
2 heures d’accompagnement équipe Service Client
Inclus
(offres Starter, Medium et Major Company)
Accompagnement standard
Analyse technique du projet par équipe Service Intégration
2 heures d’accompagnement équipe Service Intégration
2 heures d’accompagnement équipe Service Client
490 €
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 autonomie
3 heures d’accompagnement équipe Service Client
Inclus
(offres Medium et Major Partner)
Accompagnement standard
Analyse technique du projet par équipe Service Intégration
5 heures d’accompagnement équipe Service Intégration
5 heures d’accompagnement équipe Service Client
990 €
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 h
2 heures d’accompagnement équipe Service Client, consommables par périodes de 30 minutes.
250 €
Forfait d’accompagnement 5 h
5 heures d’accompagnement équipe Service Client, consommables par périodes de 30 minutes.
490 €
Forfait d’accompagnement 10 h
10 heures d’accompagnement équipe Service Client, consommables par périodes de 30 minutes.
890 €

Subscription

See more about Subscription

jQuery(document).ready( function($) { window.live_699ea29e4f776 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Subscription.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e4f776", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e4f776.load(); });

Logos CentralPay

Logo CentralPay SVG
Logo CentralPay blanc SVG
Logo CentralPay PNG
Logo CentralPay blanc PNG

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

Invoice

See more about Invoice & invoiceItem

jQuery(document).ready( function($) { window.live_699ea29e50993 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Invoice.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e50993", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e50993.load(); });

Identity

jQuery(document).ready( function($) { window.live_699ea29e50c13 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Identity.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e50c13", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e50c13.load(); });

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

Transaction carte récurrente

Selon les besoins de votre activité, CentralPay propose plusieurs modes de transactions récurrentes :

  • Abonnement depuis un modèle d’abonnement
    CentralPay 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 successives
    Vous 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 Marchand.

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 Marchand » 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.

Create Enrollement

jQuery(document).ready( function($) { window.live_699ea29e51eec = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Create enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e51eec", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e51eec.load(); });

jQuery(document).ready( function($) { window.live_699ea29e51ef0 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_User.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e51ef0", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e51ef0.load(); });

Info

jQuery(document).ready( function($) { window.live_699ea29e5217c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Info.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e5217c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e5217c.load(); });

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

Transaction carte via wallet

1. Apple Pay (Smart Form)

Apple Pay est intégré nativement au parcours de paiement carte du SmartForm (PaymentRequest > paymentMethod[]=TRANSACTION) dès que l’appareil de votre client est compatible.

Aucune action n’est requise de votre part. Le service est entièrement opéré par CentralPay (détection de l’appareil, gestion des certificats et des tokens Apple, sécurité PCI-DSS). Aucune donnée de carte n’est exposée côté marchand (périmètre PCI-DSS SAQ-A).

2. Apple Pay (Custom Form)

2.1. 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…)
🔐 Certificats requis pour une intégration Apple Pay (https://developer.apple.com/help/account/certificates/create-a-certificate-signing-request)

Pour traiter des paiements Apple Pay dans le cadre d’une intégration directe, le marchand doit disposer des éléments suivants :
• un certificat Merchant ID Identity ;
• un certificat Merchant Payment Processing G2.

Le marchand doit veiller à conserver l’ensemble des clés privées utilisées lors de la génération des CSR associées à ces certificats.

1. Merchant ID Identity
La génération d’un CSR basé sur une clé EC (256 bits) est requise.
Cette CSR sera générée par Centralpay

2. Merchant Payment Processing Certificate

Étapes principales :
• Demander le CSR généré par Centralpay
• Soumettre le CSR depuis le compte développeur Apple afin d’obtenir le Merchant Payment Processing Certificate.
• Installer le certificat sur le même poste macOS ayant servi à la génération de la CSR afin qu’il soit associé à la clé privée.
• Exporter l’identité complète au format .p12 (certificat + clé privée).

⚠️ Si l’option d’export au format .p12 n’est pas disponible, cela indique qu’une étape du processus n’a pas été correctement réalisée (clé privée manquante ou non associée).

Le fichier .p12 constitue un conteneur sécurisé permettant l’exploitation ultérieure de la clé privée associée au certificat, conformément au flux Apple Pay.

Notes importantes :
• Toute perte de la clé privée nécessite la recréation complète du certificat depuis le portail Apple Developer.
• La documentation Apple Pay peut prêter à confusion : l’utilisation d’OpenSSL ne concerne que le certificat Merchant ID Identity, et ne s’applique pas au Merchant Payment Processing Certificate.

2.2. 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. Cette méthode implique une responsabilité PCI-DSS importante de votre part (formulaire SAQ-D). Renseignez-vous et assurez-vous d'être en conformité avant de développer ce mode d'intégration.

Étape 1 : Déchiffrement du token Apple Pay (Backend)

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 (Backend)

Utilisez l’endpoint POST /cardToken de l’API CentralPay

ChampDescription
card[number]PAN de la carte extrait du token Apple Pay
card[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 Pay
amountMontant 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]=5454696696312664
card[expirationMonth]=12
card[expirationYear]=2031
onlinePaymentCryptogram=MGnp3S1LBgJxAANgdNCRAoABFIA=
applePayTransactionId=3d2b17abed2696ca...
amount=2500
currency=EUR
merchantPublicKey=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 (Backend)

Utilisez l’endpoint POST /transaction de l’API CentralPay

Champs requis :

cardToken=...
amount=2500
currency=EUR
pointOfSaleId=...
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 test. Ils ne sont pas interchangeables avec ceux de production
  • La clé publique CentralPay (merchantPublicKey) est également spécifique à l’environnement

2.3. Via token ApplePay chiffré (hybride)

ℹ️ 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.

2.3.1. Paramétrage du compte Apple

– Se connecter sur « https://developer.apple.com/« , créer un compte et valider le compte ‘developer’ à 99$)

– Aller sur https://developer.apple.com/account/resources/identifiers/list

– Dans « App IDs », choisir « Merchant IDs » :

Puis cliquer sur le « + » pour ajouter un « Identifier » :

Choisir « Merchant IDs » : 

Renseigner le nom de l’identifier et cliquez sur « Register » : 

Aller à https://developer.apple.com/account/resources, puis cliquer sur Identifiers 

Sur Identifier, sélectionner un Merchant IDs en utilisant le filtre en haut à droite

Sous « Apple Pay Payment Processing Certificate », cliquer sur « Create Certificate« .

Indiquez que ce « Merchant ID » ne sera PAS (No) utilisé uniquement pour la Chine.

A ce moment là cliquez sur « Choose File » afin d’envoyer le fichier CSR qui vous a été envoyé par CentralPay(uniquement CentralPay)

Vous pouvez télécharger le fichier généré.
Il reste à créer le certificat « Apple Pay Merchant Identity Certificate » 
Pour cela aller à https://developer.apple.com/account/resources, puis cliquer sur Identifiers et enfin cliquer sur l’Identifier que vous voulez éditer.
Une fois ouvert, cliquez sur « Create Certificate ».

Ajoutez votre certificat : 

Ajouter le domaine associé

Indiquez le nom de domaine en question : 

Téléchargez le fichier indiqué par Apple

Déployez le fichier indiqué par Apple sur un serveur du nom de domaine en question accessible à Apple, puis cliquez sur « Verify » :

Vous pourrez alors télécharger le certificat nécessaire.

2.3.2. Paiement via Applepay

Génération du certificat et clé dans le même fichier : 

openssl pkcs12 -in certificat.p12 -out certificat.pem -clcerts

Création d’un ApplePayToken avec Apple Pay JS API (Démo à https://applepaydemo.apple.com/apple-pay-js-api)

Frontend : 

<script crossorigin
src="https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js">
</script>
<style>
apple-pay-button {
--apple-pay-button-width: 250px;
--apple-pay-button-height: 100px;
--apple-pay-button-border-radius: 99px;
--apple-pay-button-padding: 0px 0px;
--apple-pay-button-box-sizing: border-box;
}
</style>
<apple-pay-button id="btn-card" buttonstyle="white-outline" type="plain" locale="fr-FR"></apple-pay-button>
<br />
<div data-info="gateway-link" class="text-small text-gray-light font-weight-normal ml-1">
<img src="https://docs.centralpay.com/wp-content/uploads/2024/10/paysecure_reassurance_1-fond_blanc.png" alt="CentralPay" style="max-width:200px"></a>
</div>
var request = {
countryCode: 'FR',
currencyCode: 'EUR',
supportedNetworks: ['visa', 'masterCard', 'amex'],
merchantCapabilities: ['supports3DS'],
total: { label: 'Your Merchant Name', amount: '10.00' },
}
var applepayversion = 3;
var session = new ApplePaySession(applepayversion, request);

session.onvalidatemerchant = event => {
// Call your own server to request a new merchant session.
console.log("event.validationURL :"+event.validationURL);

fetch('/applepay-session')
.then(res => res.json()) // Parse the response as JSON.
.then(merchantSession => {
session.completeMerchantValidation(merchantSession);
})
.catch(err => {
console.error("Error fetching merchant session : ", err);
});
};

session.onpaymentauthorized = (event) => {

var token = event.payment.token;
fetch(`https://api.centralpay.net/transaction`, {
method: "post",
body: JSON.stringify(
{
applePayToken: token,
endUserIp: "127.0.0.1",
currency: "EUR",
amount: 1000,
source="EC",
browserUserAgent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36",
merchantTransactionId="1234567890123456789"
}),
})
.then((response) => {
if (response.ok) {
return response.json();
}
appleSession.completePayment(ApplePaySession.STATUS_FAILURE);
})
.then((responseJson) => {
// Do something with the response
appleSession.completePayment(ApplePaySession.STATUS_SUCCESS);
})
.catch((error) => {
appleSession.completePayment(ApplePaySession.STATUS_FAILURE);
});
};

session.begin();

Backend : 

$router->map('GET', '/applepay-session', function (ServerRequestInterface $request) use ($twig) : ResponseInterface {

$APPLE_URL = "https://apple-pay-gateway.apple.com/paymentservices/paymentSession";

$curl = new Curl();
$curl->setHeader('Content-Type', 'application/json');
$curl->setOpt($ch, CURLOPT_SSLCERT, getcwd() . 'certificat.pem');
$curl->setOpt($ch, CURLOPT_SSLCERTPASSWD, "thesslpassword");
$curl->setOpt(CURLOPT_POSTFIELDS, '{
merchantIdentifier: "merchant.net.centralpay.test-form",
displayName: "MyStore",
initiative: "web",
initiativeContext: "merchant.net.centralpay.test-form"
}'
);
$curl->setOpt(CURLOPT_CUSTOMREQUEST, "POST");
$curl->setOpt(CURLOPT_URL, $APPLE_URL);
$curl->exec();
...
return new Laminas\Diactoros\Response\JsonResponse($curl->getResponse());
...
});

Création de CardToken avec votre token Apple pay chiffré. (Frontend)

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.

Utilisez l’endpoint POST /cardToken de l’API CentralPay
Champs requis :

curl --location 'https://test-api.centralpay.net/cardToken' \
--header 'Origin: https://example.centralpay.net' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'merchantPublicKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--data-urlencode 'endUserIp=xxxx.xxxx.xxxx.xxxx'
--data-urlencode 'applePayToken=xxxxxxxxxxxxxxxxxxxxxx'

Création de la transaction : (Backend)

Utilisez l’endpoint POST /transaction de l’API CentralPay
Champs requis :

curl --location 'https://api.centralpay.net/transaction' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: ••••••' \
--data-urlencode 'customerId=870005ca-xxxx-xxxx-xxxx-140fa71d6e01' \
--data-urlencode 'cardTokenId=xxxxxxxxxxxxxxxxxxxxxxxx'
--data-urlencode 'currency=EUR' \
--data-urlencode 'amount=1000' \
--data-urlencode 'endUserIp=xxxx.xxxx.xxxx.xxxx' \
--data-urlencode 'endUserLanguage=fre' \
--data-urlencode 'source=EC' \
--data-urlencode 'browserUserAgent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36' \
--data-urlencode 'browserAcceptLanguage=en_US' \
--data-urlencode 'email=xxxxx@example.com' \
--data-urlencode 'country=FRA' \
--data-urlencode 'merchantTransactionId=1234567890123456789'

Le cardToken encapsule déjà le contexte Apple Pay et les données d’authentification.

Création de Transaction avec votre token Apple pay chiffré. (Backend)

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.

Puis utilisez l’endpoint POST /transaction de l’API CentralPay

Champs requis :

curl --location 'https://api.centralpay.net/transaction' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: ••••••' \
--data-urlencode 'customerId=870005ca-xxxx-xxxx-xxxx-140fa71d6e01' \
--data-urlencode 'currency=EUR' \
--data-urlencode 'amount=1000' \
--data-urlencode 'endUserIp=xxxx.xxxx.xxxx.xxxx' \
--data-urlencode 'endUserLanguage=fre' \
--data-urlencode 'source=EC' \
--data-urlencode 'browserUserAgent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36' \
--data-urlencode 'browserAcceptLanguage=en_US' \
--data-urlencode 'email=xxxxx@example.com' \
--data-urlencode 'country=FRA' \
--data-urlencode 'merchantTransactionId=1234567890123456789'
--data-urlencode 'applePayToken=xxxxxxxxxxxxxxxxxxxxxxxx'

3. Google Pay (Smart Form)

Google Pay est nativement au parcours de paiement carte du SmartForm (PaymentRequest > paymentMethod[]=TRANSACTION), dès que l’appareil ou le navigateur de votre client est compatible.

Aucune action ne sera nécessaire de votre part. Le service sera entièrement opéré par CentralPay (détection de compatibilité Google Pay, gestion des certificats et des tokens, sécurité PCI-DSS). Aucune donnée de carte ne transite côté marchand, le flux relève du périmètre PCI-DSS SAQ-A.

4. Google Pay (Custom Form)

CentralPay permet l’intégration de Google Pay via le mode PAYMENT_GATEWAY, tel qu’imposé par Google Pay dans un contexte PSP multi-marchands, sans nécessiter de déchiffrement du token côté serveur.

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é
⚠️ Google Pay fournit un merchantId spécifique au domaine validé.
Ce merchantId est obligatoire pour toute Payment Request Google Pay.
L’utilisation d’un merchantId non associé au domaine entraîne une erreur Google Pay (Error 11).

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

ℹ️ Le bouton Google Pay est fourni par le SDK officiel Google Pay.
L’initiation du paiement et la génération du token sont entièrement contrôlées par Google Pay (hosted button).

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.Définir les types de cartes acceptées :

const allowedCardNetworks = ["AMEX", "MASTERCARD", "VISA"];

4. Définir le type de moyen de paiement :

Il existe deux type différents : PAN_ONLY et CRYPTOGRAM_3DS

⚠️​Le type PAN_ONLY permet de tokeniser le PAN d’un carte bancaire, cependant ce token n’est pas sécurisé pour effectuer un paiement, il est donc important de ne pas l’utiliser pour effectuer des paiements sur la plateforme Centralpay

const allowedCardAuthMethods = ["CRYPTOGRAM_3DS"];

5. Environnement de test ou production :

// Environnement de test
const paymentsClient = new google.payments.api.PaymentsClient({ environment: 'TEST' });

// Environnement de production
const 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 :

ChampDescription
amountMontant 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=2500
currency=EUR
merchantPublicKey=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=2500
currency=EUR
pointOfSaleId=...
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 Google 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 test
    Ils ne sont pas interchangeables avec ceux de production
  • La clé publique CentralPay (merchantPublicKey) est également spécifique à l’environnement

Installment Payment

See more about Installment Payment

jQuery(document).ready( function($) { window.live_699ea29e573bd = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Installment Payment.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e573bd", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e573bd.load(); });

Complete enrollment

jQuery(document).ready( function($) { window.live_699ea29e5766d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Complete enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e5766d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e5766d.load(); });

jQuery(document).ready( function($) { window.live_699ea29e57672 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Complete additional enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e57672", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e57672.load(); });

R-transaction carte

1. Remboursement – refund

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 Marchand. 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é.

⚠️ Si la carte sur laquelle vous tentez d'effectuer le remboursement est expirée ou que le compte a été clôturé, CentralPay ne pourra réaliser de remboursement. Dans ce cas, nous vous invitons à vous rapprocher de votre client pour lui demander un RIB à jour et procéder à un virement SEPA depuis votre banque.

2. Crédit – credit

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 – Dispute

Lorsqu’un porteur de carte conteste ou signale une transaction auprès de sa banque, le réseau (Visa, Mastercard, Carte Bancaire, etc.) peut notifier CentralPay afin d’initier une opération de contestation (Dispute).
Cette opération permet de suivre l’état du litige et d’agir selon le type de signal reçu : alerte de fraude, demande d’information, ou chargeback.

Chaque contestation est représentée dans le backoffice CentralPay par une opération distincte (Dispute), liée à la transaction d’origine. Les notifications sont également disponibles via le webhook DISPUTE_CREATED.

Pour tout paiement par carte, un client peut contester une transaction auprès de sa banque dans les délais suivants :

  • 120 jours à compter de la transaction pour les réseaux Visa et Mastercard ;
  • 13 mois à compter de la date d’opération pour le réseau français Carte Bancaire.
ℹ️ En France, la contestation est en principe réservée aux cas de fraude (carte volée, usurpée, utilisation abusive).
Dans d’autres pays européens, elle peut également être utilisée dans le cadre d’un litige commercial (produit non livré, service non conforme, etc.).

1. Alerte de fraude FRAUD_NOTICED

Ce statut correspond à une notification préventive de fraude transmise par le réseau (ex. : fichier TC40 pour Visa).
Il est déclenché lorsque la banque émettrice signale qu’un porteur affirme ne pas être à l’origine de la transaction (carte volée, copiée ou usurpée).

➡️ Aucun remboursement n’est initié à ce stade.
➡️ Ce signal vous permet d’anticiper un chargeback potentiel et de renforcer vos contrôles antifraude.

Bonnes pratiques :

  • Identifier la transaction concernée (montant, pays, carte, date).
  • Vérifier les transactions similaires (même carte, même compte, même IP).
  • Mettre la carte ou le compte en liste noire pour éviter de nouvelles tentatives.
  • Conserver les preuves d’authenticité (logs, preuves de livraison, consentement).
  • Ne pas contacter directement le porteur (le signal vient de sa banque).

2. Demande d’information RETRIEVAL_NOTICED

Ce statut correspond à une demande documentaire émise par la banque du porteur.
Il intervient lorsqu’un client ne reconnaît pas une transaction, sans parler de fraude.

La banque émettrice demande alors à CentralPay de solliciter le marchand pour fournir des éléments de preuve (facture, reçu, preuve de livraison, etc.).

➡️ Une réponse est attendue sous 7 jours.
➡️ Si les éléments sont acceptés, la contestation est clôturée (RETRIEVAL_CLOSE).
➡️ Si aucune réponse n’est transmise, la banque du porteur peut déclencher un chargeback.

3. Contestation officielle CHARGEBACK_NOTICED

Le chargeback correspond à une demande de remboursement formelle initiée par la banque émettrice.
Il peut résulter :

  • d’une fraude confirmée (suite à un FRAUD_NOTICED) ;
  • d’un litige non résolu (suite à un RETRIEVAL_NOTICED) ;
  • ou d’un autre motif reconnu par les réseaux (produit non reçu, montant incorrect, service non conforme, etc.).

Lorsqu’un chargeback est émis :

  • Le montant de la transaction est débité de votre compte de paiement afin de rembourser le porteur.
  • Des frais non remboursables s’appliquent pour chaque contestation reçue, même en cas d’issue favorable.
  • Vous disposez d’un délai de 20 jours calendaires pour répondre à la contestation en fournissant les éléments justificatifs :
    • Preuve de livraison ou d’exécution du service,
    • Preuve du consentement du porteur (obligatoire pour les transactions non 3-D Secure),
    • Autres pièces démontrant la légitimité du paiement.

À défaut de réponse dans le délai imparti, la contestation sera automatiquement perdue.

Une fois votre réponse transmise, la banque émettrice analyse les éléments fournis :

StatutDescription
CHARGEBACK_WONLes preuves ont été jugées suffisantes. Le montant de la transaction vous est recrédité.
CHARGEBACK_LOSTLa contestation est maintenue. Le remboursement au porteur devient définitif.

MerchantInfo

jQuery(document).ready( function($) { window.live_699ea29e58317 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Merchant.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e58317", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e58317.load(); });

Conformité et résilience opérationnelle

Dernière mise à jour : 30 juin 2025

« Notre engagement pour protéger vos transactions et assurer un service sans interruption. Un dispositif aligné sur les exigences européennes en matière de sécurité et de continuité des services financiers »

1. Gouvernance et organisation de la sécurité

Chez CentralPay, la sécurité n’est pas seulement un ensemble de règles techniques, mais une démarche de gouvernance intégrée à tous les niveaux de l’entreprise. Notre dispositif repose sur une organisation claire, des responsabilités définies et une supervision régulière par la direction.

La politique de sécurité constitue le socle de ce dispositif. Elle fixe les principes directeurs en matière de protection des données et de continuité des services. Mise à jour chaque année, elle est validée en comité de direction et diffusée à l’ensemble des collaborateurs concernés. Chaque employé est ainsi sensibilisé aux bonnes pratiques et s’engage à respecter les règles établies.

La gouvernance TIC est structurée autour de plusieurs acteurs clés. Le Responsable de la Sécurité des Systèmes d’Information (RSSI) pilote la stratégie globale, supervise les contrôles de sécurité et veille à la conformité avec les standards internationaux (PCI DSS, DORA). La direction technique est en charge de l’exploitation quotidienne des infrastructures et garantit la disponibilité des systèmes critiques. Enfin, un Comité TIC se réunit régulièrement afin d’analyser les incidents, de valider les évolutions techniques et budgétaires, et d’assurer une amélioration continue de la sécurité.

Cette organisation permet de concilier réactivité opérationnelle et exigence réglementaire. Elle offre également à nos clients une visibilité claire : la sécurité est suivie, pilotée et contrôlée de manière documentée, avec un partage des responsabilités entre le management, les équipes techniques et la direction générale.

2. Gestion des accès et habilitations

La gestion des accès constitue l’un des piliers de la sécurité de CentralPay. Chaque droit d’accès est attribué selon une procédure formalisée et validée par le management, afin de s’assurer qu’il corresponde strictement aux besoins métier du collaborateur. À l’arrivée d’un nouvel employé, ses accès sont créés dans l’Active Directory et validés par son supérieur hiérarchique ; au départ, ils sont immédiatement révoqués par le service informatique.

La sécurité repose également sur le principe du moindre privilège : nul ne peut accéder à plus de ressources que ce qui est strictement nécessaire à sa mission. Les accès sensibles, comme ceux aux systèmes critiques ou aux bases de données, font systématiquement l’objet d’une authentification multi-facteurs (MFA). Pour renforcer ce dispositif, des revues périodiques des habilitations sont menées chaque trimestre, permettant d’identifier et de corriger toute anomalie.

Cette rigueur garantit une maîtrise complète des identités et des droits, et protège nos clients contre tout risque d’accès non autorisé à leurs données.

3. Sécurité technique

La sécurité technique de CentralPay repose sur une architecture conçue selon les principes de défense en profondeur. Chaque couche – du réseau jusqu’aux applications – bénéficie de mécanismes de protection redondants et régulièrement testés.

Cloisonnement des réseaux

L’infrastructure est segmentée en plusieurs zones :

  • DMZ publique pour les serveurs exposés à Internet (reverse proxy, WAF, relais SMTP) ;
  • zone interne pour les bases de données et services sensibles ;
  • réseau administratif réservé aux opérations d’administration ;
  • zone de logs isolée pour la collecte et l’analyse des journaux.

Les flux entre ces zones sont strictement contrôlés par des firewalls en redondance, configurés en stateful inspection et avec des règles de NAT. Ces firewalls intègrent des mécanismes d’anti-spoofing et de détection d’anomalies de trafic. Les configurations sont maintenues par le groupe « administrateurs systèmes et réseau » et font l’objet d’une revue périodique.

Protection physique et logique

L’accès aux locaux de production est contrôlé par badge nominatif, surveillance vidéo et télésurveillance (SECURITAS). L’accès aux salles serveurs et à la zone PCI est limité aux personnes habilitées.
Sur le plan logique, chaque accès aux systèmes se fait par identifiant unique, renforcé par MFA. Les droits sont attribués en fonction des rôles définis et selon le principe du moindre privilège.

Surveillance et détection d’intrusion

La surveillance est assurée en continu grâce à une combinaison d’outils :

  • Zabbix, pour le monitoring temps réel des serveurs, applications et flux critiques ;
  • Wazuh, intégré avec Snort, pour la détection d’intrusions et la corrélation des événements ;
  • ElasticSearch/Kibana, pour l’agrégation et la visualisation des logs.

Les alertes critiques sont transmises en temps réel aux équipes techniques par mail et SMS, et leur traitement est tracé dans un registre d’incidents.

Chiffrement et gestion des clés

Les données de paiement sensibles (PAN, dates d’expiration) sont chiffrées en AES-256 et rendues illisibles via un hash SHA-512 avec salt pour les comparaisons.
La gestion des clés est réalisée exclusivement au sein de modules matériels de sécurité (HSM) certifiés. La clé maîtresse est fragmentée en plusieurs composantes, détenues par des personnes distinctes, afin d’éviter tout risque de compromission. Les clés applicatives ne peuvent pas être exportées en clair et leur usage est strictement tracé.

En combinant ces mesures, CentralPay garantit un environnement technique robuste, conforme aux exigences PCI DSS 4.0.1 et aux standards de résilience DORA.

4. Gestion des risques et des incidents

La maîtrise des risques constitue un axe stratégique de la gouvernance CentralPay. L’approche adoptée vise à anticiper les menaces, limiter leur probabilité de survenance et garantir une réponse rapide et efficace en cas d’incident.

Gestion des risques

Chaque année, une étude de risques est menée sur la base de la méthodologie Ebios, intégrant :

  • l’identification des risques liés à la sécurité (intrusions, attaques malveillantes, fuites de données) et au fonctionnement (pannes techniques, défaillances logicielles) ;
  • leur analyse en termes de probabilité et d’impact métier ;
  • leur classification en Low, Medium ou High ;
  • leur traitement via des mesures de prévention (patching, segmentation réseau, chiffrement, supervision) ou de mitigation (plans de contournement, redondances).

Le registre des risques est mis à jour en continu et présenté lors des revues annuelles de direction.

Gestion des incidents

CentralPay a mis en place une procédure complète de gestion des incidents, alignée sur les obligations DORA et les orientations de l’EBA :

  • Détection : par monitoring automatisé (Zabbix, Wazuh) ou par signalement interne/externe (clients, partenaires).
  • Qualification : chaque incident est analysé et classé selon son impact, sa durée, sa portée géographique et sa criticité.
  • Priorisation : une matrice d’évaluation (urgence de résolution et impact financier) permet de définir des niveaux de priorité allant de 1 à 4.
  • Notification réglementaire : les incidents qualifiés comme « majeurs » font l’objet d’un reporting à l’ACPR :
    • rapport initial transmis dans les 4 heures,
    • rapport intermédiaire sous 3 jours ouvrés,
    • rapport final sous 20 jours.

Transparence et retour d’expérience

En parallèle du reporting réglementaire, les incidents majeurs font l’objet d’une communication transparente envers les clients impactés. Une analyse post-mortem est systématiquement menée afin de tirer les enseignements, renforcer les procédures existantes et mettre en place des actions correctives.

Ce dispositif permet à CentralPay non seulement de répondre efficacement aux incidents, mais surtout de renforcer continuellement sa résilience et la confiance de ses clients.

5. Tests de résilience

CentralPay considère que la résilience d’une infrastructure ne se prouve pas uniquement sur le papier mais par des tests réguliers et documentés. C’est pourquoi la plateforme organise différents scénarios de test visant à mesurer son niveau de sécurité, sa capacité de reprise et la réactivité de ses équipes.

Tests d’intrusion

Les tests d’intrusion sont réalisés de manière récurrente par des équipes internes et par des prestataires spécialisés, afin de bénéficier d’un regard externe indépendant. Trois méthodologies sont appliquées :

  • Black-box : l’auditeur ne dispose d’aucune information préalable, ce qui simule le comportement d’un attaquant externe ;
  • Grey-box : l’auditeur dispose d’informations partielles (comptes utilisateurs limités, schémas d’architecture simplifiés) afin de reproduire un scénario réaliste d’utilisateur malveillant ;
  • White-box : l’auditeur dispose d’une connaissance complète de l’architecture, permettant une analyse approfondie et la détection de vulnérabilités complexes.

Ces tests couvrent à la fois les couches réseau et applicatives, avec un focus particulier sur les vulnérabilités répertoriées par le Top Ten OWASP. Les résultats font l’objet de rapports détaillés, comprenant une classification des failles selon leur criticité (Critical, High, Medium, Low) et des recommandations de remédiation.

Tests de segmentation réseau

CentralPay réalise aussi des tests de segmentation afin de vérifier que les cloisonnements logiques entre les zones (DMZ, interne, administration, logs) sont efficaces et qu’aucun flux non autorisé n’est possible. Ces tests garantissent que, même en cas de compromission d’une zone exposée, l’attaquant ne puisse pas atteindre les systèmes critiques.

Exercices de simulation et bascules PCA

En parallèle des tests techniques, des exercices de simulation de crise sont menés. Ces exercices impliquent plusieurs équipes (techniques, conformité, direction) et simulent des scénarios d’attaque ou de panne majeure. L’objectif est de tester non seulement la robustesse de l’infrastructure, mais aussi la qualité de la coordination et de la communication en situation de crise.

Enfin, des tests de bascule PCA sont organisés au minimum une fois par an. Ils permettent de vérifier que les services critiques peuvent être transférés vers le site secondaire dans les délais prévus et que les équipes maîtrisent parfaitement les procédures de reprise.

Ces différents tests, documentés et suivis, démontrent la volonté de CentralPay de s’inscrire dans une démarche d’amélioration continue de sa résilience.

6. Haute disponibilité et PCA

La disponibilité des services de paiement est une exigence absolue pour CentralPay. Afin de garantir une continuité sans faille, l’entreprise a conçu son architecture autour du principe de haute disponibilité (HA) et d’un Plan de Continuité d’Activité (PCA) multi-sites.

Architecture multi-sites

CentralPay dispose de deux sites distincts : un site de production principal et un site secondaire dédié au PCA. Ces sites sont opérés par des fournisseurs différents, intègrent un routage BGP et utilisent des accès Internet fournis par plusieurs opérateurs, ce qui réduit le risque de dépendance vis-à-vis d’un seul acteur.

Redondance des composants

Chaque composant critique est déployé en redondance :

  • Firewalls et load balancers : configurés en actif/actif ou actif/passif, permettant une bascule automatique en cas de défaillance ;
  • Serveurs applicatifs : répartis sur plusieurs nœuds afin de garantir la tolérance aux pannes ;
  • Bases de données : répliquées en temps réel entre les sites de production et de PCA, assurant un RPO quasi nul ;
  • Proxys applicatifs et WAF : disposés en frontal pour absorber les charges et filtrer les menaces, avec bascule automatique.

Objectifs de reprise (RTO et RPO)

  • RPO (Recovery Point Objective) : grâce à la réplication continue, les données critiques peuvent être restaurées à l’état quasi instantané précédant l’incident ;
  • RTO (Recovery Time Objective) : les mécanismes de bascule automatique permettent un retour en service des applications critiques en quelques minutes à une heure maximum selon le type de composant.

Scénarios de bascule et tests

Le PCA est conçu pour répondre à divers scénarios : panne matérielle, défaillance réseau, indisponibilité d’un datacenter, attaque cyber majeure. Chaque scénario dispose d’un plan d’action documenté. Des tests réguliers de bascule confirment que les engagements RTO/RPO sont tenus dans la pratique.

Grâce à ce dispositif, CentralPay assure à ses clients que, même en cas d’incident majeur, leurs transactions de paiement resteront disponibles et sécurisées.

7. Continuité et sauvegardes

La continuité des services de CentralPay ne repose pas uniquement sur la redondance de son infrastructure et le PCA. Elle est également assurée par une politique stricte de sauvegarde et de restauration des données.

Sauvegardes quotidiennes et chiffrées

Les données critiques – qu’il s’agisse des données de paiement ou des données opérationnelles de la plateforme – font l’objet de sauvegardes quotidiennes. Celles-ci sont chiffrées en AES-256, conformément aux standards internationaux, afin de garantir leur confidentialité en cas d’accès non autorisé.

Stockage sécurisé et rotation

Les sauvegardes sont stockées selon une logique de redondance et de rotation :

  • Une copie est conservée sur les serveurs de sauvegarde internes, protégés par des accès restreints ;
  • Une copie est déplacée et conservée dans un coffre-fort sécurisé ;
  • D’autres copies sont externalisées hors site, afin de garantir la disponibilité même en cas de sinistre physique affectant un site.

La rotation régulière des supports assure que les sauvegardes restent fiables et exploitables.

Tests de restauration

La valeur d’une sauvegarde ne se mesure pas uniquement à sa conservation mais aussi à sa capacité à être restaurée. CentralPay procède donc à des tests de restauration réguliers, qui permettent de vérifier non seulement l’intégrité des données sauvegardées mais aussi la rapidité avec laquelle elles peuvent être réinjectées dans le système de production.

Grâce à cette approche, CentralPay garantit que, même en cas d’incident majeur, ses clients ne subiront pas de perte significative de données et pourront reprendre leurs activités sans interruption prolongée.

8. Gestion des prestataires critiques

CentralPay est conscient que la sécurité et la continuité de ses services dépendent également de la solidité de ses partenaires. C’est pourquoi l’entreprise a mis en place une gouvernance stricte autour de la gestion des prestataires critiques, en particulier ceux qui participent directement à l’hébergement, au traitement des données ou aux services de paiement.

Audits et certifications

Chaque année, un audit est conduit auprès de l’hébergeur principal et des prestataires considérés comme critiques. L’objectif est de vérifier la solidité de leurs dispositifs de sécurité, leurs capacités de continuité et leur conformité réglementaire.
Pour les prestataires qui traitent, stockent ou transmettent des données de cartes, CentralPay exige la certification PCI DSS et obtient une attestation de conformité (AOC) actualisée chaque année.

Clauses contractuelles et supervision

Les contrats avec les prestataires critiques incluent des clauses spécifiques DORA, portant notamment sur :

  • les engagements de service (SLA en matière de disponibilité et de performance),
  • les obligations de sécurité,
  • la mise en place d’un PCA/PRA compatible avec celui de CentralPay,
  • la notification immédiate en cas d’incident de sécurité.

CentralPay conserve une cartographie actualisée de l’ensemble de ses prestataires critiques et de leurs services associés. Ce registre est régulièrement mis à jour et constitue une base de reporting vers l’ACPR et les autorités de supervision.

Pérennité et amélioration continue

Enfin, la relation avec les prestataires ne se limite pas à un contrôle ponctuel. Les résultats des audits, les tests de continuité et les incidents éventuels sont présentés en comité de gouvernance. Des plans d’action sont ensuite décidés pour renforcer la sécurité ou la disponibilité des services externalisés.

Ainsi, CentralPay garantit à ses clients que les tiers qui contribuent à ses services critiques sont soumis au même niveau d’exigence que ses propres équipes.

Articles

  • FAQ - Conformité et résilienceDORA

FAQ - Conformité et résilience

Gouvernance et responsabilités

Qui est responsable de la sécurité chez CentralPay ?
La sécurité est pilotée par notre RSSI (Responsable de la Sécurité des Systèmes d’Information), rattaché directement à la Présidence. Le RSSI s’appuie sur un comité TIC et sur un cadre de gestion des risques aligné sur ISO 27005 et sur le règlement DORA. Le RSSI est joignable à l’adresse suivante : rssi@centralpay.com

Avez-vous une politique de sécurité documentée ?
Oui. Notre Politique de Sécurité du Système d’Information (PSSI) définit les règles applicables à l’ensemble de nos équipes et de nos prestataires. Elle couvre la classification des données, la gestion des accès, la protection des systèmes, la gestion des incidents, la continuité d’activité et l’encadrement des prestataires TIC.

Comment intégrez-vous la sécurité dans vos décisions stratégiques ?
La sécurité et la résilience sont intégrées à notre cadre global de gestion des risques. Celui-ci inclut une cartographie alignée ISO/DORA, une politique d’appétence aux risques, et un suivi par indicateurs (KRI). Les décisions de sécurité sont arbitrées au sein du comité Sécurité & Conformité et validées par la Direction Générale.

Comment contrôlez-vous vos dispositifs de sécurité ?
Nous appliquons le modèle des trois lignes de défense : les équipes métiers réalisent les contrôles opérationnels, la conformité et le contrôle permanent assurent la supervision, et le contrôle périodique réalise une évaluation indépendante.

Protection des données et des systèmes

Comment protégez-vous les données et systèmes de CentralPay ?
Toutes les données sont chiffrées : TLS 1.2/1.3 pour les échanges en transit et AES-256 pour le stockage. Les données de carte sont traitées uniquement dans un environnement certifié PCI DSS niveau 1 et immédiatement tokenisées, afin qu’aucun numéro complet ne soit conservé en clair.

Nos infrastructures sont segmentées et protégées par des firewalls, IDS/IPS et une supervision SOC. Les accès aux environnements sensibles sont limités, appliquent le principe du moindre privilège et sont protégés par MFA. Tous les postes de travail sont chiffrés, sécurisés par antivirus/EDR et mis à jour automatiquement.

Tests et contrôles de sécurité

Réalisez-vous des tests de sécurité ?
Oui. Nous effectuons régulièrement des tests de pénétration indépendants, des scans automatisés de vulnérabilités et des audits externes (dont PCI DSS). Ces contrôles permettent d’identifier les failles et de renforcer en permanence notre dispositif.

Comment gérez-vous la journalisation et les logs ?
Les journaux sont conservés 24 mois, horodatés, protégés par chiffrement et intégrés dans notre système de supervision (SIEM). Leur accès est strictement restreint aux équipes habilitées.

Comment gérez-vous les vulnérabilités et mises à jour ?
Nous appliquons une politique stricte de patch management : correction des vulnérabilités critiques sous 24h, vulnérabilités hautes sous 7 jours, et autres correctifs selon une fréquence planifiée. Le suivi est assuré par des scans et des rapports de conformité.

Organisation et culture sécurité

Comment sensibilisez-vous vos collaborateurs à la sécurité ?
Tous les collaborateurs suivent une formation annuelle obligatoire sur la cybersécurité, le RGPD et la LCB-FT. Des campagnes de sensibilisation régulières (exercices phishing, e-learning) complètent ce dispositif. Les équipes techniques bénéficient de formations renforcées.

Comment garantissez-vous que les accès restent limités ?
Nous appliquons le principe du moindre privilège : chaque utilisateur n’accède qu’aux ressources nécessaires à sa mission. Les droits sont justifiés, temporaires et systématiquement tracés.

Comment encadrez-vous les accès administrateurs ?
Les accès à privilèges élevés sont limités à un nombre restreint de personnes, soumis à MFA, tracés et revus régulièrement. Ils ne sont accordés que pour des besoins précis et pour une durée limitée.

Anticipation et amélioration continue

Comment anticipez-vous les menaces émergentes ?
Nous assurons une veille cybersécurité active via les bulletins CERT-FR, ANSSI, éditeurs logiciels et fournisseurs cloud. Cette activité de threat intelligence permet d’adapter nos défenses en temps réel.

Comment améliorez-vous en permanence votre sécurité ?
Chaque incident, audit ou test fait l’objet d’un retour d’expérience documenté et d’un plan d’actions correctives. Nos politiques et procédures sont revues annuellement pour intégrer ces enseignements et les évolutions réglementaires.

Résilience et continuité

Comment assurez-vous la continuité de vos services ?
Nous disposons d’un Plan d’Urgence et de Poursuite d’Activité (PUPA) intégrant un PCA (continuité) et un PRI (reprise). Ces plans sont régulièrement testés à travers des exercices de crise et des scénarios de bascule.

Comment garantissez-vous la disponibilité et la redondance ?
Nos services reposent sur une architecture redondée au sein de plusieurs zones européennes, permettant d’assurer une disponibilité de plus de 99,95 %.

Quels sont vos objectifs de RPO et RTO ?
CentralPay définit et teste régulièrement ses objectifs de continuité :

  • RPO (Recovery Point Objective) : inférieur à 1 minute pour les systèmes critiques, grâce à la réplication temps réel des données.
  • RTO (Recovery Time Objective) : inférieur à 15 mn pour la reprise des services essentiels, grâce à l’architecture redondée et aux procédures de bascule.
    Ces objectifs sont validés lors de nos exercices PCA/PRI et intégrés dans notre dispositif DORA.

Comment gérez-vous vos sauvegardes ?
Les sauvegardes sont chiffrées, isolées, redondées et régulièrement testées pour garantir leur restauration. Elles suivent les mêmes politiques de sécurité que les environnements de production.

Réalisez-vous des tests de résilience conformément à DORA ?
Oui. Nous réalisons des exercices de crise (cyberattaques simulées, pannes critiques), des tests de charge et de performance, des scénarios de bascule et, pour les fonctions critiques, des tests avancés de type TLPT (Threat-Led Penetration Testing).

Relations avec les prestataires

Comment sélectionnez-vous vos prestataires critiques ?
Chaque prestataire fait l’objet d’une due diligence (sécurité, conformité, localisation des données, SLA). Les contrats incluent des clauses RGPD et DORA (sécurité, notification d’incident, droit d’audit).

Comment contrôlez-vous vos prestataires dans la durée ?
Nous tenons un registre DORA recensant tous nos prestataires TIC et identifiant les prestataires critiques. Ces derniers font l’objet d’un suivi renforcé : revues régulières, audits, attestations ISO/PCI et évaluations de résilience.

Gestion des incidents

Que se passe-t-il en cas d’incident de sécurité ?
Nous appliquons une procédure de gestion des incidents incluant : détection, qualification, confinement, remédiation et forensic. Si nécessaire, nous notifions la CNIL sous 72h et informons les clients concernés. Chaque incident majeur donne lieu à un retour d’expérience et à un plan d’actions correctives suivi jusqu’à sa clôture.

Update enrollment

jQuery(document).ready( function($) { window.live_699ea29e59d1b = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Update enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e59d1b", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e59d1b.load(); });

jQuery(document).ready( function($) { window.live_699ea29e59d20 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Rollback enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e59d20", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e59d20.load(); });

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 Marchand.

  1. Adresse email de l’expéditeur : Paramètrage depuis le point de vente
  2. Nom de l’expéditeur : Paramètrage depuis le point de vente
  3. Votre logo : Paramètrage depuis le point de vente
  4. Nom du point de vente : Paramètrage depuis le point de vente
  5. Texte de pied de page : Paramétrage depuis l’entrrée Configuration Email confirmation paiement Créer
  6. Langue d’affichage : Renseigner la valeur « endUserLanguage » dans la requête de Transaction (anglais par défaut)

Protection des données personnelles

Dernière mise à jour : 15/09/2025

Chez CentralPay, la protection des données personnelles est au cœur de nos engagements. En tant qu’Établissement de Monnaie Électronique agréé par l’ACPR (n° d’agrément 17138 nous traitons des données personnelles conformément au Règlement Général sur la Protection des Données (RGPD – UE 2016/679) et à la législation française applicable.

Cette politique présente, de manière claire et transparente, les traitements de données personnelles que nous réalisons dans le cadre de l’exécution de nos services de paiement.

1. Qui est responsable du traitement ?

Le responsable de traitement est :
CentralPay – 19 rue Edouard VAILLANT – 37000 TOURS
Contact DPO : dpo@centralpay.com

2. Quelles données collectons-nous ?

CentralPay collecte uniquement les données strictement nécessaires à la fourniture de ses services de paiement et au respect de ses obligations légales et réglementaires.

Données d’identification

  • Nom, prénom, civilité.
  • Date et lieu de naissance.
  • Nationalité.
  • Qualité (dirigeant, représentant légal, UBO).

Données de contact

  • Adresse email.
  • Numéro de téléphone (mobile ou fixe).
  • Adresse postale professionnelle ou personnelle (selon le cas).

Données de paiement

  • Coordonnées bancaires : IBAN et BIC.
  • Données de carte : numéro de carte (collecté uniquement dans un environnement sécurisé PCI DSS et immédiatement tokenisé), date d’expiration, schéma (Visa, Mastercard, etc.), pays émetteur, 4 derniers chiffres.
  • Important : CentralPay n’expose jamais le numéro complet ni le cryptogramme au marchand.

Données transactionnelles

  • Identifiant de transaction, date et heure.
  • Montant, devise, statut de paiement.
  • Référence commande (orderId).
  • Historique des opérations (paiements uniques, récurrents, fractionnés, remboursements).

Données de sécurité et de lutte contre la fraude

  • Adresse IP de connexion.
  • Empreinte technique du terminal (navigateur, langue, résolution écran) lors de l’authentification 3DS.
  • Résultats et scores antifraude internes.
  • Statut éventuel de mise en surveillance (liste noire technique).

Données de conformité KYC/LCB-FT

  • Pièces d’identité (CNI, passeport, titre de séjour).
  • Justificatifs de domicile (facture d’énergie, quittance).
  • Documents légaux de l’entreprise (Kbis, statuts, registre des bénéficiaires effectifs).
  • Informations sur les UBO (noms, pourcentages de détention).

Données techniques (liées aux services)

  • Journaux applicatifs et techniques (logs API).
  • Événements de traitement (webhooks envoyés aux marchands).
  • Identifiants techniques de suivi (transactionId, customerId, etc.).

3. Pour quelles finalités utilisons-nous vos données ?

CentralPay traite vos données personnelles uniquement pour des finalités déterminées, explicites et légitimes. Chaque traitement repose sur une base légale conforme au RGPD.

Exécution des paiements et gestion des services

  • Finalité : exécuter vos opérations de paiement (SEPA, carte, prélèvement, virement, récurrents ou fractionnés), assurer la facturation et gérer les flux financiers.
  • Données concernées : coordonnées bancaires (IBAN, BIC), données de carte (token, schéma, pays, PAN masqué), identifiants de transaction, montants, devises, références commandes.
  • Base légale : exécution du contrat (art. 6.1.b RGPD).

Vérification d’identité et obligations réglementaires (KYC/LCB-FT)

  • Finalité : satisfaire aux obligations légales de lutte contre le blanchiment des capitaux et le financement du terrorisme (LCB-FT), et aux exigences de supervision de l’ACPR.
  • Données concernées : données d’identification (nom, prénom, date de naissance, nationalité), pièces d’identité, justificatifs de domicile, documents légaux de l’entreprise, informations sur les UBO.
  • Base légale : obligation légale (art. 6.1.c RGPD, Code monétaire et financier art. L561-1 et suivants).

Prévention et détection de la fraude

  • Finalité : sécuriser les transactions, prévenir les paiements non autorisés ou frauduleux, appliquer les règles d’authentification renforcée (DSP2/3DS).
  • Données concernées : adresse IP, empreinte technique du navigateur/appareil, schéma et pays émetteur de la carte, résultats des contrôles antifraude, statut éventuel de mise en surveillance.
  • Base légale : obligation légale (DSP2) et intérêt légitime (sécurité des paiements – art. 6.1.f RGPD).

Gestion de la relation client et du support

  • Finalité : communiquer avec les clients et utilisateurs (confirmation d’opérations, envoi de liens de paiement, notifications), répondre aux demandes de support, assurer le suivi des réclamations et litiges.
  • Données concernées : email, téléphone, identifiants client, données transactionnelles associées.
  • Base légale : exécution du contrat (art. 6.1.b RGPD) et intérêt légitime (gestion de la relation client).

Respect d’obligations comptables, fiscales et probatoires

  • Finalité : conserver certaines données pour répondre aux obligations légales de conservation (Code de commerce, Code général des impôts), produire des justificatifs comptables et probatoires.
  • Données concernées : données transactionnelles (montants, devises, dates, statuts, références), coordonnées bancaires liées aux opérations.
  • Base légale : obligation légale (art. 6.1.c RGPD).

Amélioration de nos services et sécurité technique

  • Finalité : analyser l’usage de nos services, optimiser la performance, assurer la résilience et la cybersécurité, conformément au règlement DORA.
  • Données concernées : journaux techniques (logs), événements (webhooks), identifiants techniques, statistiques d’usage anonymisées.
  • Base légale : intérêt légitime (art. 6.1.f RGPD).

4. Quelle est la base légale de ces traitements ?

Chaque traitement repose sur une base légale clairement définie :

  • Exécution du contrat (art. 6.1.b RGPD) : exécution des paiements, gestion de compte, relation client, support.
  • Obligation légale (art. 6.1.c RGPD) : conformité LCB-FT (art. L561 CMF), obligations comptables et fiscales (Code de commerce, CGI), obligations réglementaires (DSP2, ACPR).
  • Intérêt légitime (art. 6.1.f RGPD) : prévention de la fraude, sécurité des systèmes, gestion des litiges, amélioration des services.
  • Consentement (art. 6.1.a RGPD) : uniquement pour certaines communications marketing optionnelles ou si requis par la loi.

5. Combien de temps conservons-nous vos données ?

CentralPay applique un calendrier de conservation strict, conforme aux exigences du RGPD, du Code monétaire et financier et du Code de commerce.

Nous distinguons :

a) Transactions financières (écritures comptables et probatoires)

  • Conservées 10 ans conformément aux obligations comptables et probatoires (art. L123-22 Code de commerce).
  • Données concernées : identifiants de transaction (transactionId), date, montant, devise, statut, référence commande (orderId).
  • Ces informations sont nécessaires à la preuve contractuelle et à la comptabilité et ne sont pas anonymisées.

b) Données personnelles associées aux transactions

  • Conservées 24 mois maximum puis anonymisées de manière irréversible.
  • Données concernées :
    • Coordonnées du payeur (email, téléphone),
    • Adresse IP, empreinte navigateur/appareil (3DS),
    • Données carte (token, PAN masqué, date d’expiration, schéma, pays émetteur),
    • Résultats antifraude (score, statut blacklist).
  • Ces informations ne sont plus conservées au-delà de 24 mois car elles ne sont plus nécessaires ni légalement ni contractuellement.

c) Données relatives aux cartes de paiement

  • Conservées jusqu’à 24 mois après la date d’expiration de la carte, puis supprimées/anonymisées.
  • CentralPay n’expose jamais le PAN complet ni le CVC hors de sa zone PCI DSS.

d) Données relatives aux comptes bancaires (IBAN/BIC) et mandats SEPA

  • Conservées pendant la durée du mandat + 10 ans (preuve contractuelle), puis supprimées/anonymisées.

e) Données KYC / LCB-FT

  • Conservées 5 ans après la fin de la relation d’affaires (art. L561-12 CMF), puis supprimées/anonymisées.
  • Données concernées : pièces d’identité, justificatifs de domicile, documents légaux de l’entreprise, informations sur les UBO.

f) Abonnements et paiements fractionnés

  • Conservés pendant la durée de l’abonnement + 5 ans (exigences probatoires), puis anonymisés.
  • Données concernées : identifiant d’abonnement, échéancier, lien vers moyen de paiement.

g) Journaux techniques et webhooks

  • Conservés 24 mois maximum, puis anonymisés.
  • Données concernées : logs API, événements de traitement, identifiants techniques (customerId, eventId), statuts, horodatages.

6. Qui sont les destinataires de vos données ?

Vos données peuvent être transmises uniquement à :

  • Services internes CentralPay (opérations, conformité, support, sécurité).
  • Partenaires de paiement et établissements bancaires (acquéreurs, systèmes de règlement SEPA, schémas carte).
  • Prestataires techniques (hébergement cloud, prestataire KYC, envoi SMS/email), soumis à des clauses contractuelles conformes RGPD.
  • Autorités compétentes (ACPR, TRACFIN, Banque de France, autorités judiciaires).

Nous ne revendons jamais vos données à des tiers.

7. Où sont traitées vos données ?

  • Les données sont hébergées dans l’Union européenne et majoritairement en Frane
  • En cas de transfert hors UE (ex. prestataire SMS, email), des clauses contractuelles types (SCC) et mesures supplémentaires sont mises en place pour garantir un niveau de protection équivalent.

8. Quels sont vos droits ?

Conformément aux articles 15 à 22 du RGPD, vous disposez de :

  • Droit d’accès, rectification, effacement.
  • Droit à la limitation, opposition, portabilité.
  • Droit de retrait du consentement (le cas échéant).
  • Droit d’introduire une réclamation auprès de la CNIL.

Vous pouvez exercer vos droits en écrivant à : dpo@centralpay.com (réponse sous 30 jours).

9. Sécurité

CentralPay met en œuvre une politique de sécurité alignée sur les standards PCI DSS, ISO 27001/27005 et sur le règlement européen DORA (Digital Operational Resilience Act). Nos dispositifs couvrent l’ensemble du cycle de vie des données et des services de paiement afin de garantir leur confidentialité, leur intégrité et leur disponibilité.

La sécurité est d’abord assurée par une gouvernance claire et une gestion proactive des risques. Nous disposons d’un cadre de gestion des risques validé par la direction, qui comprend une politique d’appétence au risque, une cartographie alignée sur les normes ISO et DORA, ainsi que des indicateurs de risque suivis régulièrement. Ce cadre est mis en œuvre à travers une organisation en trois lignes de défense et piloté par un comité de sécurité et de conformité.

La protection des données repose sur un chiffrement systématique, tant en transit (TLS 1.2/1.3) qu’au repos (AES-256), avec une gestion centralisée des clés. Les données de paiement sont traitées exclusivement dans un environnement certifié PCI DSS niveau 1 et font l’objet d’une tokenisation irréversible qui évite toute exposition des numéros complets de carte ou des cryptogrammes. De plus, nous appliquons des politiques strictes de purge et d’anonymisation automatique des données personnelles à l’issue des durées de conservation prévues par le RGPD.

Les accès aux systèmes sont strictement contrôlés grâce à une gestion des identités centralisée et basée sur le principe du moindre privilège. Chaque collaborateur est soumis à une authentification forte à deux facteurs (MFA), et les habilitations font l’objet de revues régulières afin de garantir leur pertinence.

Nos infrastructures font l’objet d’une surveillance permanente. Les opérations sensibles sont journalisées de manière exhaustive et horodatée, et un système de supervision en temps réel, couplé à un SIEM, permet de détecter rapidement les incidents de sécurité.

La résilience opérationnelle est assurée par un dispositif de continuité aligné sur DORA. CentralPay a mis en place un Plan d’Urgence et de Poursuite d’Activité (PUPA) incluant des volets PCA et PRI, régulièrement testés. Des tests de pénétration et des exercices de gestion de crise sont organisés chaque année, tandis qu’une politique stricte d’externalisation TIC garantit l’évaluation continue des prestataires critiques et la tenue d’un registre d’information réglementaire.

La gestion des incidents suit une procédure formalisée de détection, classification et traitement. En cas d’incident majeur, nous respectons les délais de notification réglementaire auprès de l’ACPR et de la CNIL, et un retour d’expérience systématique est organisé afin d’améliorer en permanence le dispositif de sécurité.

Enfin, CentralPay s’inscrit dans une logique d’amélioration continue. Des audits internes et externes, y compris des audits indépendants PCI DSS et de cybersécurité, sont réalisés régulièrement. Nos dispositifs de contrôle permanent et d’audit périodique sont revus chaque année afin de garantir leur efficacité et leur conformité aux normes internationales et aux exigences réglementaires.

10. Mise à jour de la politique

Cette politique peut être modifiée pour refléter l’évolution des traitements et obligations légales. Toute mise à jour sera publiée sur notre site et, si nécessaire, communiquée aux clients concernés.

Articles

  • FAQ - Protection des données personnellesRGPD

FAQ - Protection des données personnelles

Gouvernance et responsabilités

Responsable du traitement et contact DPO

CentralPay, Établissement de Monnaie Électronique (EME), est responsable du traitement pour ses services de paiement.
Contact DPO : dpo@centralpay.com (réponse sous 30 jours).

Données collectées

Quelles données collectons-nous ?

Dans le cadre de la fourniture de ses services de paiement et afin de respecter ses obligations légales, CentralPay collecte uniquement les données strictement nécessaires. Ces données varient en fonction du type d’opération (paiement, vérification KYC, lutte contre la fraude, support client). Elles se répartissent en plusieurs catégories :

  • Données d’identification : nom, prénom, civilité, date et lieu de naissance, nationalité, qualité (par exemple représentant légal, dirigeant ou bénéficiaire effectif – UBO).
  • Données de contact : adresse email, numéro de téléphone, adresse postale.
  • Données de paiement : coordonnées bancaires (IBAN, BIC) ; données de carte traitées exclusivement dans un environnement certifié PCI DSS (numéro complet et CVC collectés uniquement pour être tokenisés et jamais exposés en clair), date d’expiration, schéma (Visa, Mastercard…), pays émetteur, 4 derniers chiffres.
  • Données transactionnelles : identifiant de transaction (transactionId), date et heure, montant, devise, statut, référence commande (orderId), historique des opérations (paiements uniques, récurrents, fractionnés, remboursements).
  • Données de sécurité et de lutte contre la fraude : adresse IP, empreinte 3DS (navigateur/appareil), résultats et scores antifraude, statut éventuel de mise en surveillance technique.
  • Données de conformité KYC/LCB-FT : pièces d’identité officielles, justificatifs de domicile, documents légaux de l’entreprise (ex. Kbis, statuts), informations sur les bénéficiaires effectifs (UBO et pourcentages de détention).
  • Données techniques : journaux applicatifs (logs API), événements transmis aux marchands (webhooks), identifiants techniques (customerId, eventId).

CentralPay ne collecte aucune donnée sensible au sens de l’article 9 du RGPD (santé, religion, opinions politiques, orientation sexuelle, etc.), sauf si la loi l’imposait de manière exceptionnelle.

Finalités

Pourquoi utilisons-nous vos données ?

CentralPay traite vos données personnelles uniquement pour des finalités déterminées, explicites et légitimes. Ces traitements s’inscrivent dans le cadre de l’exécution de nos services de paiement, du respect de nos obligations réglementaires et de la sécurité de nos systèmes. Les principales finalités sont les suivantes :

  • Exécution des paiements : traitement des opérations de paiement (SEPA, carte bancaire, paiements récurrents ou fractionnés), gestion des flux financiers, émission de factures et suivi des règlements.
  • Respect des obligations réglementaires : application des règles de lutte contre le blanchiment des capitaux et le financement du terrorisme (LCB-FT), vérification d’identité (KYC), conservation légale des documents, supervision par l’ACPR.
  • Prévention et détection de la fraude : mise en œuvre des contrôles de sécurité exigés par la DSP2 (authentification forte, 3DS), calcul de scores antifraude et gestion des alertes.
  • Relation client et support : communication avec les clients et utilisateurs (notifications, confirmations, envoi de liens de paiement), traitement des demandes de support, gestion des réclamations et litiges.
  • Obligations comptables et fiscales : conservation des pièces probatoires, respect des règles du Code de commerce et du Code général des impôts.
  • Amélioration et sécurité technique : suivi de la performance et de la disponibilité de nos services, renforcement de la résilience opérationnelle conformément au règlement DORA, amélioration continue de l’expérience client et de la sécurité de nos systèmes.

Bases légales

Sur quelles bases légales reposent nos traitements ?

CentralPay traite vos données personnelles uniquement pour des finalités déterminées, explicites et légitimes. Ces traitements s’inscrivent dans le cadre de l’exécution de nos services de paiement, du respect de nos obligations réglementaires et de la sécurité de nos systèmes. Les principales finalités sont les suivantes :

  • Exécution des paiements : traitement des opérations de paiement (SEPA, carte bancaire, paiements récurrents ou fractionnés), gestion des flux financiers, émission de factures et suivi des règlements.
  • Respect des obligations réglementaires : application des règles de lutte contre le blanchiment des capitaux et le financement du terrorisme (LCB-FT), vérification d’identité (KYC), conservation légale des documents, supervision par l’ACPR.
  • Prévention et détection de la fraude : mise en œuvre des contrôles de sécurité exigés par la DSP2 (authentification forte, 3DS), calcul de scores antifraude et gestion des alertes.
  • Relation client et support : communication avec les clients et utilisateurs (notifications, confirmations, envoi de liens de paiement), traitement des demandes de support, gestion des réclamations et litiges.
  • Obligations comptables et fiscales : conservation des pièces probatoires, respect des règles du Code de commerce et du Code général des impôts.
  • Amélioration et sécurité technique : suivi de la performance et de la disponibilité de nos services, renforcement de la résilience opérationnelle conformément au règlement DORA, amélioration continue de l’expérience client et de la sécurité de nos systèmes.

Pendant combien de temps conservons-nous vos données ?

CentralPay applique des délais de conservation précis, fondés sur les obligations légales et les besoins opérationnels. À l’issue de ces délais, les données sont soit supprimées, soit anonymisées de façon irréversible.

  • Transactions financières (écritures probatoires) : conservées 10 ans, conformément au Code de commerce.
  • Données personnelles associées aux transactions (email, téléphone, IP, empreintes 3DS, PAN masqué, token de carte, scores fraude) : conservées 24 mois maximum, puis supprimées ou anonymisées.
  • Données de carte (token + métadonnées) : conservées jusqu’à 24 mois après la date d’expiration de la carte. Le PAN complet et le CVC ne sont jamais exposés en clair.
  • Payment Requests (emails/SMS) : conservées 24 mois maximum.
  • Abonnements et paiements fractionnés : conservés pendant la durée de l’abonnement + 5 ans.
  • Comptes bancaires (IBAN/BIC) et mandats SEPA : conservés pendant la durée du mandat + 10 ans (preuve contractuelle).
  • KYC / LCB-FT : données conservées 5 ans après la fin de la relation d’affaires (art. L561-12 CMF).
  • Journaux techniques et webhooks : conservés 24 mois.

Au-delà de ces durées, CentralPay ne conserve que des données anonymisées ou strictement nécessaires au respect d’une obligation légale.

Localisation et transferts

Où vos données sont-elles traitées ?

Les données traitées par CentralPay sont hébergées en priorité dans l’Union européenne, principalement en France, dans des environnements certifiés PCI DSS et ISO 27001.

À ce jour, CentralPay ne transfère pas de données personnelles hors de l’Union européenne.
Si un transfert hors UE devait être nécessaire à l’avenir (par exemple pour un prestataire SMS ou email), il serait encadré par :

  • une analyse d’impact du transfert,
  • la mise en place des Clauses Contractuelles Types (SCC) de la Commission européenne,
  • des mesures techniques complémentaires (chiffrement, segmentation, contrôle d’accès),
  • et une information transparente de nos clients.

Transfert de données hors UE : comment procédons-nous ?

À ce jour, CentralPay ne transfère pas de données personnelles hors de l’Union européenne.
Toutes les données sont hébergées et traitées dans l’UE, principalement en France et au sein d’infrastructures certifiées (PCI DSS).

Si, à l’avenir, un transfert hors UE devait être nécessaire (par exemple pour un prestataire SMS ou email), CentralPay s’engage à :

  • procéder à une analyse d’impact sur le transfert,
  • appliquer les Clauses Contractuelles Types (SCC) de la Commission européenne,
  • mettre en place des mesures techniques supplémentaires (chiffrement, cloisonnement, contrôle d’accès),
  • et informer ses clients en toute transparence.

Nature des données

Traitons-nous des données sensibles ?

Non. CentralPay ne traite aucune donnée sensible au sens de l’article 9 du RGPD (santé, religion, opinions politiques, orientation sexuelle, etc.).
Nous collectons uniquement les informations strictement nécessaires à l’exécution des paiements et au respect de nos obligations légales (LCB-FT, supervision ACPR).

Collectons-nous des données de mineurs ?

CentralPay fournit ses services exclusivement à des professionnels (B2B). Nous ne collectons donc pas volontairement de données de mineurs.
Si, indirectement, un mineur est amené à effectuer un paiement, le traitement reste limité aux données de paiement nécessaires (ex. coordonnées bancaires ou carte), et toujours sous la responsabilité de son représentant légal lorsqu’une vérification est requise.

Conformité RGPD

Réalisons-nous des analyses d’impact (PIA)?

Oui, nous réalisons des AIPD (PIA) pour les traitements susceptibles d’engendrer un risque élevé (ex. KYC, antifraude/3DS, tokenisation carte, analyses longitudinales). Les risques résiduels et mesures de réduction sont documentés.

Comment garantissons-nous la minimisation et le privacy by design ?

Nous collectons uniquement les champs nécessaires par finalité, cloisonnons les environnements (prod/préprod), nous n’utilisons aucune donnée réelle en test, limitons les payloads webhooks au minimum utile, et appliquons des purges/anonymisations automatiques à l’échéance.

Comment CentralPay documente sa conformité RGPD ?

  • Politique RGPD publique (site).
  • Registre des traitements (interne, à jour).
  • PIA sur les traitements à risque (interne).
  • Politiques/procédures (sécurité, purge, incidents, droits).
  • Rapports de contrôle interne (ACPR).

Sous-traitants

Comment encadrons-nous nos prestataires ?

Chaque prestataire est contractuellement encadré (art. 28) : mesures de sécurité, confidentialité, notification d’incident, audibilité, localisation des données, sous-traitance en cascade contrôlée. Due diligence initiale + réévaluation régulière (sécurité, SLA, conformité).

Quels prestataires utilisons-nous ?

Sur demande et après NDA, nous pouvons fournir la liste à jour par catégorie de nos prestataires (hébergement/cloud, KYC, envoi email/SMS, anti-fraude, support) en indiquant la zone géographique.

Comment sélectionnons-nous nos prestataires essentiels ?

CentralPay applique une politique d’encadrement des sous-traitants alignée à la fois sur le RGPD (art. 28) et sur le règlement DORA.

Lors de la sélection, nous menons une due diligence approfondie couvrant la sécurité (certifications, mesures techniques), la conformité réglementaire (RGPD, DSP2, LCB-FT), la localisation et le régime juridique des données, la solidité financière du prestataire ainsi que les niveaux de service (SLA) proposés. Pour les prestataires critiques, nous examinons en particulier leur intégration dans la chaîne de valeur des services de paiement et leur rôle en matière de résilience opérationnelle.

Chaque relation contractuelle inclut des clauses conformes à l’article 28 RGPD (confidentialité, sécurité, notification d’incident, limitation des sous-traitances en cascade) ainsi que, le cas échéant, des Clauses Contractuelles Types (SCC) pour encadrer les transferts hors Union européenne.

Conformément à DORA, nous tenons un registre d’information des prestataires TIC et identifions ceux considérés comme prestataires critiques. Ces prestataires font l’objet d’une évaluation renforcée, avec des exigences contractuelles spécifiques en matière de disponibilité, d’intégrité, de continuité et de tests de résilience.

Le suivi est assuré au travers de revues régulières (contrôles, rapports d’audit, attestations de conformité type SOC/ISO, questionnaires de sécurité), d’un droit d’audit contractuel et de mécanismes de reporting périodique. Nous intégrons ces évaluations dans notre cartographie des risques TIC et nos comités de suivi DORA.

Sécurité et résilience

Quelles protections techniques appliquons-nous ?

CentralPay protège les données et les systèmes en combinant des mécanismes techniques robustes et conformes aux meilleurs standards internationaux.
Les échanges sont sécurisés par un chiffrement systématique : TLS 1.2/1.3 pour les données en transit et AES-256 pour les données au repos, avec une gestion centralisée des clés.
Les données de carte sont traitées exclusivement dans un environnement PCI DSS niveau 1, avec collecte en zone dédiée et tokenisation irréversible pour éviter toute exposition du PAN complet.
Les accès aux systèmes sont contrôlés par des mécanismes RBAC (role-based access control) et protégés par une authentification forte (MFA), avec des revues régulières des habilitations.
Toutes les actions sensibles font l’objet d’une journalisation horodatée et inviolable, intégrée dans un SIEM qui assure la détection et l’alerte en temps réel.
L’infrastructure est cloisonnée : segmentation des réseaux, séparation stricte des environnements (production, test, préproduction) et gestion sécurisée des secrets.
Enfin, CentralPay teste régulièrement son dispositif à travers des tests de pénétration, des scans de vulnérabilités et des audits externes indépendants.

Comment notre organisation garantit la sécurité ?

La sécurité ne repose pas uniquement sur la technologie mais aussi sur une organisation et une gouvernance solides.
CentralPay applique un cadre de gestion des risques intégrant une cartographie détaillée, des indicateurs de suivi (KRI) et une politique d’appétence au risque validée par la direction.
La supervision s’appuie sur le modèle reconnu des trois lignes de défense : les opérations assurent les contrôles de premier niveau, une fonction indépendante de conformité et de contrôle permanent supervise la deuxième ligne, et l’audit interne constitue la troisième ligne.
Un comité sécurité et conformité se réunit régulièrement pour piloter la stratégie et mettre à jour les politiques et procédures clés (gestion des accès, incidents, purges, exercice des droits RGPD).
Enfin, la culture sécurité est renforcée par des formations régulières des équipes, couvrant la cybersécurité, la protection des données personnelles et les obligations LCB-FT.

Que faisons-nous en cas d’incident de sécurité ?

CentralPay dispose d’une procédure formalisée de gestion des incidents.
En cas d’incident, nous procédons à une détection rapide, une qualification et un confinement immédiat, suivis d’actions de remédiation.
Les événements sont intégralement journalisés et investigués (forensic) afin d’identifier la cause et d’éviter leur récurrence.
Lorsque la réglementation l’impose, nous notifions la CNIL dans un délai maximum de 72 heures et informons les personnes concernées en cas de risque élevé.
Chaque incident donne lieu à un retour d’expérience (REX) et à la mise en place d’un plan d’actions correctives, qui est suivi jusqu’à sa résolution complète.

Nos audits de sécurité

CentralPay est soumis à plusieurs niveaux de contrôle et de tests de sécurité, à la fois internes et externes :

  • Audits externes réguliers :
    • Certification annuelle PCI DSS niveau 1 sur la collecte et le traitement des données de paiement,
    • Audits indépendants de cybersécurité,
    • Tests de pénétration réalisés par des prestataires tiers pour identifier et corriger les vulnérabilités.
  • Contrôles internes permanents (seconde ligne de défense) : revues des habilitations, scans de vulnérabilités, surveillance des systèmes critiques.
  • Audits périodiques indépendants (troisième ligne de défense) : audit interne et audit externe du dispositif de sécurité, conformité réglementaire (ACPR, DORA).
  • Revue annuelle des politiques : l’ensemble de nos politiques de sécurité, de purge, d’incidents et de gestion des prestataires est revu et validé chaque année par la direction.
  • Tests de résilience conformément à DORA :
    • Plans de Continuité et de Reprise d’Activité (PCA/PRI) testés régulièrement pour valider la capacité à maintenir les services en cas d’incident majeur,
    • Exercices de crise simulant des scénarios de cyberattaque ou d’indisponibilité critique,
    • Tests de charge et de performance sur les infrastructures critiques,
    • Scénarios de bascule et redondance entre environnements pour garantir la disponibilité,
    • Pour les fonctions critiques, recours progressif à des tests de résilience avancés de type “TLPT” (Threat-Led Penetration Testing), exigés par DORA pour les acteurs significatifs.

Droits des personnes

Quels sont vos droits et comment les exercer ?

En application des articles 15 à 22 du RGPD, vous disposez des droits suivants sur vos données personnelles :

  • droit d’accès,
  • droit de rectification,
  • droit à l’effacement,
  • droit à la limitation,
  • droit d’opposition,
  • droit à la portabilité,
  • droit de retrait du consentement.

Vous pouvez exercer vos droits en adressant une demande à : dpo@centralpay.com.
Nous nous engageons à vous répondre dans un délai de 30 jours maximum, sauf cas exceptionnel justifiant une prolongation. En cas de difficulté, vous pouvez également saisir la CNIL.

Comment concilions-nous effacement et obligations légales ?

CentralPay respecte le droit à l’effacement prévu par le RGPD, mais certaines données doivent être conservées en raison d’obligations légales.
Nous supprimons ou anonymisons toutes les données personnelles qui ne sont plus nécessaires.
En revanche, lorsque la loi nous impose de conserver certaines informations (par exemple les écritures comptables pendant 10 ans ou les données KYC pendant 5 ans après la fin de la relation), ces données sont maintenues mais :

  • leur accès est strictement limité,
  • elles ne sont utilisées que pour les finalités imposées par la loi (contrôle ACPR, TRACFIN, obligations probatoires).

Ainsi, nous trouvons un équilibre entre le respect des droits des personnes et nos obligations réglementaires.

Autres garanties

Utilisons-nous des décisions automatisées ou du profilage ?

CentralPay n’applique aucune décision entièrement automatisée produisant des effets juridiques ou significatifs sur les personnes, au sens de l’article 22 du RGPD.
Nous utilisons en revanche des outils de scoring antifraude qui calculent un niveau de risque sur les transactions. Ces résultats servent uniquement d’aide à la décision : lorsqu’un cas est sensible ou à risque, il est systématiquement revu et validé par un contrôle humain.

Utilisons-nous des cookies ou traceurs à des fins publicitaires ?

Sur les parcours de paiement et dans les API, CentralPay n’utilise aucun cookie publicitaire ni traceur marketing. Seuls des cookies ou traceurs strictement nécessaires au fonctionnement technique et à la sécurité des parcours (ex. gestion de session, authentification) peuvent être utilisés.
À ce stade, aucun mécanisme de consentement via bannière n’est nécessaire, puisque nous n’utilisons pas de cookies optionnels.

Comment assurons-nous la résilience et les sauvegardes ?

Oui. L’infrastructure est redondée sur deux data centers localisés en France ; les sauvegardes sont chiffrées et externalisées, testées régulièrement (restores) et retiennent les mêmes contrôles d’accès que la production.

Avons-nous une politique de purge et d’anonymisation documentée ?

Oui, avec délais par objet (transactions/personnelles 24 mois, cartes jusqu’à 24 mois après date d’expiration, KYC 5 ans post-relation, mandats 10 ans, logs 24 mois) et mécanismes (suppression vs anonymisation irréversible), plus traces de purge (logs d’exécution).

Nos environnements de test contiennent-ils des données réelles ?

CentralPay n’utilise jamais de données personnelles réelles dans ses environnements de test ou de préproduction. Tous nos jeux de données internes (ex. cartes, IBAN, profils clients) sont synthétiques ou fictifs et conformes aux standards PCI DSS.

Cependant, les utilisateurs de nos environnements de test (par ex. marchands intégrateurs) peuvent techniquement saisir leurs propres données. Cette pratique est formellement interdite et encadrée par nos conditions d’utilisation.

Si un utilisateur insère par erreur des données personnelles dans un environnement de test, celles-ci :

  • ne sont pas utilisées à des fins de traitement de paiement réel,
  • ne sont pas répliquées en production,
  • et font l’objet d’une purge automatique ou manuelle dès leur détection.

Comment CentralPay gère-t-il l’accès des équipes support aux données ?

Les équipes support de CentralPay n’ont pas d’accès direct et permanent aux données personnelles. L’accès est accordé uniquement en cas de besoin opérationnel (par exemple pour résoudre un incident ou assister un client), et selon les principes suivants :

  • Accès temporaire et justifié : chaque accès est accordé pour une durée limitée et doit être motivé par un ticket ou une demande validée.
  • Principe du moindre privilège : l’agent support ne voit que les données strictement nécessaires pour traiter la demande.
  • Authentification forte (MFA) : tous les accès sont sécurisés par une authentification à plusieurs facteurs.
  • Traçabilité complète : chaque action effectuée par un membre du support est enregistrée et auditée.
  • Revue régulière des habilitations : les droits d’accès sont revus mensuellement pour s’assurer qu’ils restent justifiés.
  • Masquage des données sensibles : les champs sensibles (ex. numéro complet de carte, CVC, IBAN complet) sont systématiquement masqués dans les interfaces, afin que le support ne puisse jamais les visualiser en clair.

Offrons-nous des clauses contractuelles spécifiques RGPD à vos clients ?

Nos CGU/contrats intègrent les clauses nécessaires (confidentialité, sécurité, coopération incidents, sous-traitance, conservation/purge). Des avenants RGPD sont possibles selon les cas d’usage.

Partageons-nous nos politiques et procédures internes ?

La Politique RGPD publique est disponible en ligne. Les politiques internes détaillées (procédures incidents, purge, sécurité) ne sont, par défaut, pas partagées.

Search enrollement

jQuery(document).ready( function($) { window.live_699ea29e5ce28 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Search enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e5ce28", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e5ce28.load(); });

MID

jQuery(document).ready( function($) { window.live_699ea29e5d0af = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_MID.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e5d0af", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e5d0af.load(); });

Movement

jQuery(document).ready( function($) { window.live_699ea29e5d343 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Movement.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e5d343", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e5d343.load(); });

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 profil Marchand CentralPay 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.

Enrollment Details

jQuery(document).ready( function($) { window.live_699ea29e5d7de = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Enrollment details.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e5d7de", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e5d7de.load(); });

Origin

See more about Payment Requests

jQuery(document).ready( function($) { window.live_699ea29e5dc31 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Origin.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e5dc31", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e5dc31.load(); });

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 de paiement 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 versements sortants (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 versements SWIFT afin qu'il ne soit réalisés qu'à partir d'un certain seuil, afin de mieux maitriser ses coûts de versement.

PIS

See more about Payment Requests

jQuery(document).ready( function($) { window.live_699ea29e5e368 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_PIS.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e5e368", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e5e368.load(); });

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.com
Booking.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.com
Chez 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 (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 :

CodeDescription
A1 – Repli VADSDSP2 et Soft decline
La 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 banque
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.
4, 7, 14, 15, 31, 33, 34, 41, 43, 54, 55, 56, 59, 63, 76Suspicion de fraude ou vol de la carte
La 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 atteint
La 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 invalide
La 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 ➝

Payment Request

See more about Payment Requests

jQuery(document).ready( function($) { window.live_699ea29e5f251 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Payment Request.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e5f251", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e5f251.load(); });
jQuery(document).ready( function($) { window.live_699ea29e5f256 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_PaymentRequestHistory.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e5f256", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e5f256.load(); });

E-money

jQuery(document).ready( function($) { window.live_699ea29e5f505 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Autocomplete.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e5f505", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e5f505.load(); });

jQuery(document).ready( function($) { window.live_699ea29e5f509 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Autoupdate.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e5f509", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e5f509.load(); });

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).

Payout

See more about Payout

jQuery(document).ready( function($) { window.live_699ea29e5fdc5 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Payout.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e5fdc5", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e5fdc5.load(); });
jQuery(document).ready( function($) { window.live_699ea29e5fdc9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Merchant Payout Setup.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e5fdc9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e5fdc9.load(); });

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 Marchand Administration Comptes IBAN/BIC :

Il est également possible d’interroger l’API CentralPay avec le endpoint /bankAccount

Accès :

Recette Portail Marchand – Comptes
Production Portail Marchand – 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 Marchand Administration Comptes UUID :

Accès :

Recette Portail Marchand – Comptes
Production Portail Marchand – 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 Marchand Administration Comptes UUID :

Accès :

Recette Portail Marchand – Comptes
Production Portail Marchand – 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.

Misc

jQuery(document).ready( function($) { window.live_699ea29e61353 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Configuration.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e61353", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e61353.load(); });

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

StatusDescription
API_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.

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 :

  • Automatiquement
    Si 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 Transaction
    Si 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 paiement
    Si 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 Marchand 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

Point Of Sale

jQuery(document).ready( function($) { window.live_699ea29e62189 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Point Of Sale.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e62189", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e62189.load(); });

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

StatusDescription
CREATEDThe 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.

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 :

  1. Créer une PaymentRequest selon les modalités habituelles.
  2. 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

  1. L’utilisateur sélectionne « Pay by Bank » dans le formulaire
  2. Il choisit sa banque dans la liste proposée
  3. Il est redirigé vers l’environnement de sa banque pour valider l’opération de virement
  4. 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✅ Disponible🚫 Non disponible
Arkéa Banking Services✅ Disponible🚫 Non disponible
Arkéa Banque Entreprises et Institutionnels✅ Disponible✅ Disponible
Arkéa Banque Privée✅ Disponible✅ Disponible
AXA Banque✅ Disponible✅ Disponible
Banque BCP✅ Disponible✅ Disponible
Banque Chalus✅ Disponible✅ Disponible
Banque de Savoie✅ Disponible✅ Disponible
Banque des Territoires✅ Disponible🚫 Non disponible
Banque Européenne Crédit Mutuel✅ Disponible✅ Disponible
Banque Populaire✅ Disponible✅ Disponible
Banque Transatlantique✅ Disponible✅ Disponible
BBVA (Non activé)🚫 Non disponible🚫 Non disponible
BforBank✅ Disponible🚫 Non disponible
BNP Paribas✅ Disponible✅ Disponible
BNP Paribas Entreprises✅ Disponible🚫 Non disponible
BNP Paribas Nouvelle-Calédonie (Non activé)🚫 Non disponible🚫 Non disponible
BoursoBank✅ Disponible✅ Disponible
BRED✅ Disponible✅ Disponible
BTP Banque✅ Disponible✅ Disponible
Caisse d’Épargne Particuliers✅ Disponible✅ Disponible
Caisse d’Épargne Professionnels✅ Disponible✅ Disponible
CCMDirect (Non activé)🚫 Non disponible🚫 Non disponible
CIC✅ Disponible✅ Disponible
CIC Banque Privée✅ Disponible✅ Disponible
Crédit Agricole✅ Disponible✅ Disponible
Crédit Coopératif✅ Disponible✅ Disponible
Crédit Maritime✅ Disponible✅ Disponible
Crédit Mutuel✅ Disponible✅ Disponible
Crédit Mutuel de Bretagne✅ Disponible✅ Disponible
Crédit Mutuel du Sud Ouest✅ Disponible✅ Disponible
Fortuneo✅ Disponible✅ Disponible
Hello bank!✅ Disponible✅ Disponible
ING Wholesale Banking✅ Disponible🚫 Non disponible
La Banque Postale✅ Disponible✅ Disponible
LCL✅ Disponible✅ Disponible
Louvre Banque Privée✅ Disponible✅ Disponible
Manager.one✅ Disponible🚫 Non disponible
Memo Bank✅ Disponible✅ Disponible
Monabanq✅ Disponible✅ Disponible
N26✅ Disponible✅ Disponible
Nef Pro✅ Disponible🚫 Non disponible
Neuflize OBC (Non activé)🚫 Non disponible🚫 Non disponible
Palatine✅ Disponible✅ Disponible
Qonto✅ Disponible🚫 Non disponible
Revolut✅ Disponible🚫 Non disponible
Société Générale✅ Disponible✅ Disponible

Refund

See more about Refund for Card Transaction
See more about Refund for SCT Transaction
See more about Refund for SDD Transaction

jQuery(document).ready( function($) { window.live_699ea29e63af4 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Refund.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e63af4", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e63af4.load(); });

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

StatusDescription
PENDINGThe 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 → REFUSED
PENDING → 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.

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

PendingOperation

jQuery(document).ready( function($) { window.live_699ea29e64757 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_PendingOperation.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e64757", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e64757.load(); });

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 Marchand. 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é.

Regularisation

jQuery(document).ready( function($) { window.live_699ea29e64c12 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Regularisation.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e64c12", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e64c12.load(); });

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 Explanation
ACTIVEUNPAIDPayment 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, PIS 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.

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é.

RIB

jQuery(document).ready( function($) { window.live_699ea29e65566 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Rib.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e65566", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e65566.load(); });

TRANSACTION status

Status « Transaction »

StatusDescription
SUCCESSThe 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.

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 ➝

SCT Transaction

Articles

  • SCT Transaction
  • SCT Transaction Reversal
  • SCT Transaction Refund
  • SCT transaction Refund Reversal
  • Bank Reconciliation
  • Bank Reconciliation external

SCT Transaction

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_699ea29e662d9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e662d9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e662d9.load(); });

SCT Transaction Reversal

See more about SCT Transaction Reversal

jQuery(document).ready( function($) { window.live_699ea29e666f9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e666f9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e666f9.load(); });

SCT Transaction Refund

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_699ea29e66b80 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction Refund.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e66b80", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e66b80.load(); });

SCT transaction Refund Reversal

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_699ea29e67009 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT transaction Refund Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e67009", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e67009.load(); });

Bank Reconciliation

See more about Bank Reconciliation

jQuery(document).ready( function($) { window.live_699ea29e67472 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Reconciliation wireTransfer.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e67472", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e67472.load(); });

Bank Reconciliation external

See more about Bank Reconciliation

jQuery(document).ready( function($) { window.live_699ea29e678d7 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Reconciliation external.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e678d7", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e678d7.load(); });

REFUND status

Statuts « Refund »

StatutDescription
CLEAREDProcessed refund.
UNCLEAREDRefund pending processing.
FAILURERefund in error.
CANCELEDRefund cancelled, either by you or by your customer via the customer portal.

Informations générales

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

SDD Transaction

Articles

  • Mandate
  • SDD Transaction
  • SDD Transaction Reversal
  • SDD Transaction Refund
  • SDD Transaction Refund Reversal

Mandate

See more about Mandate

jQuery(document).ready( function($) { window.live_699ea29e686af = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Mandate.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e686af", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e686af.load(); });

SDD Transaction

See more about SDD Transaction

jQuery(document).ready( function($) { window.live_699ea29e68b14 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e68b14", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e68b14.load(); });

SDD Transaction Reversal

See more about SDD Transaction Reversal

jQuery(document).ready( function($) { window.live_699ea29e68f4c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e68f4c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e68f4c.load(); });

SDD Transaction Refund

jQuery(document).ready( function($) { window.live_699ea29e691ad = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Refund.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e691ad", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e691ad.load(); });

SDD Transaction Refund Reversal

jQuery(document).ready( function($) { window.live_699ea29e69427 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Refund Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e69427", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e69427.load(); });

CREDIT status

Status « Credit »

StatusDescription
CLEAREDCredit processed.
UNCLEAREDCredit pending processing
FAILURECredit in error.
CANCELEDCredit cancelled, either by you or by your Customer via the customer portal.

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.

Scenario

jQuery(document).ready( function($) { window.live_699ea29e69b86 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Scenario.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e69b86", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e69b86.load(); });

DISPUTES status

Status « Disputes »

StatutDescription
FRAUD_NOTICEDA preventive fraud alert sent by the issuer via the card scheme (e.g., Visa TC40). It is not a formal dispute nor a refund. Use it to anticipate controls and block similar attempts.
RETRIEVAL_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.

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

SourceType

jQuery(document).ready( function($) { window.live_699ea29e6a483 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SourceType.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e6a483", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e6a483.load(); });

SUBSCRIPTION status

Status « Subscription »

StatusDescription
ACCEPTEDThe 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.

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 profil Marchand CentralPay correspondant à votre ICS. Vous pouvez le retrouver depuis votre Portail Marchand en utilisant un profil avec des droits Admin : Administration Mon profil marchand 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

1.1. 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.

1.2. 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

1.3. 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ébiteur
    POST /bankAccount/{bankAccountId}
    Permet de mettre à jour l’IBAN d’un compte bancaire débiteur lié à un mandat SEPA existant.
  • Modifier une RUM
    Cette 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éancier
    En cas de changement de la structure juridique réalisant les prélèvements, un nouveau Profil Marchand CentralPay (Merchant) doit être créé. Les mandats existants devront alors être redéclarés sous ce nouveau profil 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 B2B
    NB : 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

Subscription

Articles

  • Subscription Model
  • Subscription
  • Invoice

Subscription Model

See more about Subscription Model

jQuery(document).ready( function($) { window.live_699ea29e6b82c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Subscription Model.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e6b82c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e6b82c.load(); });

Subscription

See more about Subscription

jQuery(document).ready( function($) { window.live_699ea29e6bc6c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Subscription.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e6bc6c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e6bc6c.load(); });

Invoice

See more about Invoice & invoiceItem

jQuery(document).ready( function($) { window.live_699ea29e6c086 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Invoice.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e6c086", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e6c086.load(); });

INSTALLMENT status

Status « Subscription »

StatusDescription
ACTIVEThe 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 »

StatutDescription
ACTIVEPending 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.

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 :

  1. Créer des transactions SDD individuelles : pour réaliser une ou plusieurs transactions SDD par API en complète autonomie
  2. 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).
  3. 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

1.1. 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.

1.2. [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 Marchand.

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.

Transfer

jQuery(document).ready( function($) { window.live_699ea29e6d0be = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Transfer.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e6d0be", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e6d0be.load(); });

MANDATE status

Status « Mandate »

StatusDescription
ACTIVEActive mandate, ready to use.
PENDINGMandate pending validation.
OBSOLETEInactive mandate, not usable.

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 Marchand. 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 de paiement 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.

TransferReversal

jQuery(document).ready( function($) { window.live_699ea29e6d9d2 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Transfer Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e6d9d2", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e6d9d2.load(); });

BANK ACCOUNT status

StatusDescription
ACCEPTEDThe 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, …).

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

Contestations
MD06 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 banque
MS02Raison non communiquée (peut inclure des contestations ou des rejets)
Rejets
AM04 Provisions insuffisantes
Tout autre codeRejets techniques divers (compte clôturé, bloqué, IBAN non atteignable…)

👉 Consultez la liste complète des codes de rejet SDD ➝

2. Statuts liés aux prélèvements SEPA

Consultez les Statuts des SDD Transaction ➝

Consultez les Statuts des Mandates ➝

Consultez les Statuts des bankAccount ➝ (à venir)

Consultez les Statuts des Subscription ➝

Consultez les Statuts des Installment ➝

3. Webhooks liés aux prélèvements SEPA

Consultez les Webhooks des SDD Transaction ➝

Consultez les Webhooks des Mandates ➝

Consultez les Webhooks des bankAccount ➝

Consultez les Webhooks des Customer ➝

Consultez les Webhooks des Subscription ➝

Consultez les Webhooks des Installment ➝

PAYOUT status

StatusDescription
PAIDThe 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.

Abonnement

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 Marchand. 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 :

Recette Portail Marchand – Modèles d’abonnements
Production Portail Marchand – Modèles d’abonnements

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 Marchand.

Accès :

Recette Portail Marchand – Paramétrages d’abonnements
Production Portail Marchand – Paramétrages d’abonnements

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 Marchand 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

Wallet

jQuery(document).ready( function($) { window.live_699ea29e6f9c8 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Wallet.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e6f9c8", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e6f9c8.load(); });

SCT TRANSACTION status

Status « SCT Transaction »

StatusDescription
PENDINGPending receipt of the SCT Transaction.
RECEIVEDSCT Transaction received.
CANCELEDSCT Transaction cancelled before receipt.
REFUNDEDSCT Transaction refunded.

Fractionné

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

Accès :

Recette Portail Marchand – Paramétrages Paiements Fractionnés
Production Portail Marchand – Paramétrages Paiements Fractionnés

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

Blacklist

jQuery(document).ready( function($) { window.live_699ea29e7097d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Blacklist.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e7097d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e7097d.load(); });

3DS 2.2 BRW (paiement unitaire)

1. Intégration du 3DS 2.0

Tout ce processus doit se dérouler sur la même page web (ceci est une contrainte du process bancaire).

👉 Téléchargez les sources

1.1. Les grandes étapes du 3D Secure 2.0

👉 Consultez un exemple de formulaire de paiement CUSTOM intégrant le 3DS 2.0

1.2. 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.

1.3. 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).

1.4. 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.

1.5. 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é

1.6. 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é

1.7. 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"
}

1.8. 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'

The MERCHANT-ENROLLMENT object

Prochainement

WhiteList

jQuery(document).ready( function($) { window.live_699ea29e720b4 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Whitelist.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e720b4", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e720b4.load(); });

3DS 2.2 3RI (paiements récurrents)

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'

1.1. 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'

The WALLETS object

Prochainement

The BANKACCOUNT object

BANKACCOUNT_ACCEPTED
When 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_PENDING
When 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_UPDATED
When 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": []
}

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 test 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…

Onboarding

Articles

  • Create Enrollement
  • Complete enrollment
  • Update enrollment
  • Search enrollement
  • Enrollment Details
  • E-money
  • Misc

Create Enrollement

jQuery(document).ready( function($) { window.live_699ea29e741be = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Create enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e741be", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e741be.load(); });

jQuery(document).ready( function($) { window.live_699ea29e741c2 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_User.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e741c2", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e741c2.load(); });

Complete enrollment

jQuery(document).ready( function($) { window.live_699ea29e7448b = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Complete enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e7448b", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e7448b.load(); });

jQuery(document).ready( function($) { window.live_699ea29e74491 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Complete additional enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e74491", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e74491.load(); });

Update enrollment

jQuery(document).ready( function($) { window.live_699ea29e74706 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Update enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e74706", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e74706.load(); });

jQuery(document).ready( function($) { window.live_699ea29e7470b = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Rollback enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e7470b", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e7470b.load(); });

Search enrollement

jQuery(document).ready( function($) { window.live_699ea29e74969 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Search enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e74969", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e74969.load(); });

Enrollment Details

jQuery(document).ready( function($) { window.live_699ea29e74b4f = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Enrollment details.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e74b4f", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e74b4f.load(); });

E-money

jQuery(document).ready( function($) { window.live_699ea29e74d8d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Autocomplete.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e74d8d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e74d8d.load(); });

jQuery(document).ready( function($) { window.live_699ea29e74d92 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Autoupdate.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e74d92", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e74d92.load(); });

Misc

jQuery(document).ready( function($) { window.live_699ea29e74fe4 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Configuration.yaml", dom_id: "#wp-swagger-ui-container-live_699ea29e74fe4", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_699ea29e74fe4.load(); });

The CARD object

CARD_UPDATED
When 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_CREATED
When 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"
}

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.

1. Types de comptes

CentralPay permet l’ouverture de deux types de comptes réglementés :

Type de compteDescriptionExemples d’usage
Compte 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 du marchand et de son éventuelle gestion par un mandataire (DME ou Agent).

2. Fonctionnement global de l’enrôlement

L’ouverture d’un compte passe systématiquement par une procédure d’enrôlement incluant :

  1. La création d’une demande d’enrôlement : initiation d’un dossier contenant les premières informations (email, nom, prénom)
  2. La complétion de l’enrôlement : soumission par l’utilisateur des informations réglementaires et des justificatifs (KYC/KYB)
  3. La validation de l’enrôlement : analyse par CentralPay, pouvant aboutir à une ouverture de compte, une demande complémentaire ou un refus

3. Deux interfaces possibles

InterfaceDescriptionPublic concerné
Portail d’enrôlement CentralPayInterface hébergée par CentralPay, accessible via lien personnalisé.Tous types d’utilisateurs
API d’enrôlementInterface technique permettant à un mandataire d’initier ou compléter des enrôlements via API.Mandataires autorisés selon leur statut

4. 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, ou les mandataires 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 KYC
Partenaire TechniqueOui*❌ Non❌ Non
Mandataire DMEOui, via API ou portail✅ Oui✅ Oui
Mandataire 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.

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

StatusDescription
API_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

StatusDescription
CREATEDThe 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

StatusDescription
PENDINGThe 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 → REFUSED
PENDING → 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 Explanation
ACTIVEUNPAIDPayment 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, PIS 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 »

StatusDescription
SUCCESSThe 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 »

StatutDescription
CLEAREDProcessed refund.
UNCLEAREDRefund pending processing.
FAILURERefund in error.
CANCELEDRefund cancelled, either by you or by your customer via the customer portal.

CREDIT status

Status « Credit »

StatusDescription
CLEAREDCredit processed.
UNCLEAREDCredit pending processing
FAILURECredit in error.
CANCELEDCredit cancelled, either by you or by your Customer via the customer portal.

DISPUTES status

Status « Disputes »

StatutDescription
FRAUD_NOTICEDA preventive fraud alert sent by the issuer via the card scheme (e.g., Visa TC40). It is not a formal dispute nor a refund. Use it to anticipate controls and block similar attempts.
RETRIEVAL_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 »

StatusDescription
ACCEPTEDThe 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 »

StatusDescription
ACTIVEThe 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 »

StatutDescription
ACTIVEPending 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 »

StatusDescription
ACTIVEActive mandate, ready to use.
PENDINGMandate pending validation.
OBSOLETEInactive mandate, not usable.

BANK ACCOUNT status

StatusDescription
ACCEPTEDThe 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

StatusDescription
PAIDThe 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 »

StatusDescription
PENDINGPending receipt of the SCT Transaction.
RECEIVEDSCT Transaction received.
CANCELEDSCT Transaction cancelled before receipt.
REFUNDEDSCT Transaction refunded.

Demande d'enrôlement

1. Méthodes de création d’une demande d’enrôlement

1.1. Depuis le portail Marchand CentralPay

Un utilisateur connecté au portail CentralPay peut initier une demande d’enrôlement depuis le menu : Plateforme > Enrôlements > Créer

Recette Portail Marchand – Onboarding
Production Portail Marchand – 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.)

1.2. 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 Marchand
  • Soit entièrement via les endpoints API (voir partie « Compléter un enrôlement par API »)
Si 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": false

Si 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.

2. 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/siren
2. 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é.

2.1. Champs requis

ChampTypeObligatoireDescription
profile[firstname][value]string (255)✅ OuiPrénom du titulaire. Validation : caractères alphabétiques et tirets (-). Depuis la version 1.15.0
profile[lastname][value]string (255)✅ OuiNom du titulaire. Validation : caractères alphabétiques et tirets (-). Depuis la version 1.15.0
profile[email][value]string (255)✅ OuiAdresse email de contact. Depuis la version 1.15.0
profile[phone][value]string✅ OuiNuméro de téléphone international. Depuis la version 1.15.0
languagestring✅ OuiLangue préférée du marchand. Note : utilisez GET /api/locale pour les valeurs disponibles.
accountTypeenum✅ OuiType de profil marchand à créer. Note : utilisez GET /api/merchant-enrollment/account-type.
activitySectorUUID (36)✅ OuiSecteur d’activité du marchand. Note : utilisez GET /api/nauth/enrollment-claim/activity-sector.
activityAgeUUID (36)✅ Oui, si type = LEGAL_ENTITY ou INDIVIDUAL_WITH_STATUSAncienneté de l’activité. Note : utilisez GET /api/nauth/enrollment-claim/activity-age.
feeScheduleUUID (36)✅ OuiGrille tarifaire à appliquer. Note : obtenez les identifiants via POST /api/merchant-enrollment/fee-schedule.
identityBadgeUUID✅ Oui, si enrôlement via SIRENIdentifiant SIREN (activant le parcours simplifié).
contractUUID✅ Oui, si accountType = STANDARDContrat à appliquer. Note : utilisez GET /api/merchant-enrollment/contract.

2.2. Champs avancés (optionnels)

Personnalisation du parcours

ChampValeur par défautDescription
workflowModeSEQUENTIALMode de déroulement du parcours (seul le mode SEQUENTIAL est désormais disponible).
Note : valeurs valides : SEQUENTIAL
type—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, ARTISAN
Pour LEGAL_ENTITY : ASSOCIATION, PUBLIC, COMMERCIAL, EIG, CIVIL
turnoverIsFixedfalseSi true, verrouille la déclaration de chiffre d’affaires.
Note : facultatif

Paramètres de communication

ChampValeur par défautDescription
sendClaimEmailtrueEnvoie 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 profil Marchand 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.

ChampTypeDescription
profile[nationality][country]string (3)Nationalité (format ISO 3166-1 alpha-3).
profile[birthday][value]dateDate de naissance.
Validation : ≥ 18 ans, ≤ 110 ans
profile[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.

ChampTypeDescription
profile[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

ChampTypeDescription
contractUUID (36)Contrat à appliquer.
Obligatoire si accountType = STANDARD.
Note : GET /api/merchant-enrollment/contract
cguUUID (36)CGU à appliquer.
Note : POST /api/merchant-enrollment/cgu
Depuis version 1.18.0
customReferencestring (100)Référence personnalisée (usage interne).
payoutProfileUUID (36)Profil de versement à associer.
Note : POST /api/merchant-enrollment/payout-profile
administrativeContactstring (255)Contact administratif référent.
Depuis version 1.18.0
technicalContactstring (255)Contact technique.
Depuis version 1.18.0
financialContactstring (255)Contact financier.
Depuis version 1.18.0
addSecurityReferenceboolAffiche une référence de sécurité lors de la validation du contrat.
Uniquement valable pour : STANDARD, PARTNER, RESELLER.
Défaut : false
hookUUIDIdentifiant de webhook à notifier.
Note : voir onglet Full API reference pour obtenir les valeurs possibles.

The CREDIT object

CREDIT_CREATED
When 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_CANCELED
When 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_UPDATED
When 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": []
  }
}

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_ACCEPTED
When 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_PENDING
When 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_UPDATED
When 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_UPDATED
When 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_CREATED
When 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_CREATED
When 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_CANCELED
When 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_UPDATED
When 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_CREATED
When 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_UPDATED
When 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_OTP
When 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_CREATED
When 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_UPDATED
When a deposit is updated

The DISPUTE object

DISPUTE_UPDATED
When 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_CREATED
When a dispute is created

The INSTALLMENT object

INSTALLMENTPAYMENT_CREATED
When 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_FAILED
When 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_UPDATED
When 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_CANCELED
When 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_ACTIVATED
When an installment is activated

INSTALLMENTPAYMENT_FAILURE
When an installment failed to be paid

INSTALLMENTPAYMENT_PAID
When 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_UNPAID
When 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_SUCCEEDED
When 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_FAILED
When 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_CREATED
When 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_UPDATED
An 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_DOCUMENTS
Some 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_DOCUMENTS
Some 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_CREATED
The 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_UPDATED
The account has been update. You receive those elements

ONBOARDING_ADDITIONAL_DOCUMENT_REQUESTED
Additionnal 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_UPDATED
Additionnal documents or information have been provided by the account holder in one ongoing onboarding.

ONBOARDING_ENROLLMENT_WORKFLOW_RESET
The 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_RESULT
The 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_CREATED
When an enrollement is created

The PAYMENT REQUEST object

PAYMENTREQUEST_CREATED
Happen 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_CANCELED
Happen 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_CLOSED
Happen 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_PAID
Happen 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_FAILED
Happen 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_SUCCEEDED
Happen 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_FAILED
Happen 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_SUCCEEDED
Happen 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_FAILED
Happen 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_SUCCEEDED
Happen 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_SUCCEEDED
Happen 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_SUCCEEDED
Happen 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_CREATED
When 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_UPDATED
When 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_CANCELED
When 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_PAID
When 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_CREATED
When a payout reversal has been created

The REFUND object

REFUND_CREATED
When 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_CANCELED
When 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_UPDATED
When a refund is updated

The SCT Transaction object

SCT_TRANSACTION_CREATED
When 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_UPDATED
When 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_RECEIVED
When 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_CANCELED
When 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_CREATED
When 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_RECEIVED
When 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_CANCELED
When a sct transaction refund is cancelled

SCT_TRANSACTION_REFUNDED_RECEIVED,
When a sct transaction refund is received

SCT_TRANSACTION_REFUNDED
When a sct transaction reversal is created

The SDD TRANSACTION object

SDDTRANSACTION_CREATED
When 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_CLEARED
When 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_VALIDATED
When 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_CANCELED
When 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_RENEWOTP
When 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_CREATED
When a SDD Transaction reversal is created

The MANDATE object

MANDATE_CREATED
When 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_SIGNED
When 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_OBSOLETED
When 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_RENEWOTP
When 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_CREATED
When 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_UPDATED
When 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_CREATED
When 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_FAILED
When 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_UPDATED
When 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_CANCELED
When 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_ACTIVE
When a Subscription is active

SUBSCRIPTION_FAILURE
When 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_UNPAID
When a Subscription is unpaid

SUBSCRIPTION_REACTIVATED
When 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_CREATED
When 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_UPDATED
When 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_DELETED
When 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_CREATED
When 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_UPDATED
When 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_CLOSED
When 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_REOPEN
When 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_SUCCEEDED
When 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_FAILED
When 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_SUCCEEDED
When 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_CANCELED
When 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_CAPTURED
When 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_EXPIRED
When 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_UPDATED
When 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_DISPUTED
When 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_FAILED
When 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_FRAUDULENT
When 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_ACCEPTED
When a transaction is refused because entering an acceptance rule

TRANSACTION_REFUNDED
When 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_RISKY
When a transaction is refused because of its risk score exceed the limit

TRANSACTION_THREEDS_AUTH_FAILED
When a transaction is declined because the card holder failed to authenticate himself during the 3DS process

The TRANSFER REVERSAL object

TRANSFERREVERSAL_SUCCEEDED
When 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_UPDATED
When 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_SUCCEEDED
When 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_UPDATED
When 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_CANCELED
When 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_CREATED
When a wire transfer is created

WIRETRANSFER_UPDATED
When a wire transfer is updated

WIRETRANSFER_RECEIVED
When a wire transfer is received

WIRETRANSFER_CANCELED
When a wire transfer is cancelled

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.

1. 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

2. 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 :

  1. Compléter le profil
  2. Déterminer le workflow
  3. Compléter le workflow
  4. Finaliser l’enrôlement

2.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}/activity
Content-Type : multipart/form-data

Exemple de champs attendus (activité « Identity Informations ») :

ChampTypeContraintes
firstname[value]string255 caractères
lastname[value]string255 caractères
mail[value]stringEmail valide
phone[value]stringNuméro international (min. 10 caractères)
birthday[value]stringDate au format YYYY-MM-DD, entre 18 et 110 ans
place_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.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 :

ChampTypeObligatoireNotes
typeEnum✅ OuiINDIVIDUAL, INDIVIDUAL_WITH_STATUS, LEGAL_ENTITY
bankAccountInEEACountrybool✅ Oui—
turnoverUUID (36)✅ OuiPOST /api/nauth/enrollment-claim/turnover
companyNamestring(255)Oui, si LEGAL_ENTITY—
activityAgeUUID (36)Oui, si LEGAL_ENTITY ou INDIVIDUAL_WITH_STATUSGET /api/nauth/enrollment-claim/activity-age
subTypeENUMRecommandéDépend du type (voir détails ci-dessous)
isCompanyboolOui, si 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é.

2.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

The CUSTOMER object

CUSTOMER_CREATED
When 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_UPDATED
When 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_OTP
When 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": []
  }
}

Resources by type

Articles

  • Codes
  • Test values

Codes

HTTP Codes

Find below the list of HTTP return codes:

200OK
Note: The request was executed correctly
400BAD REQUEST
Note: Wrong parameter or rule
401UNAUTHORIZED
Note: Login / password are missing for HTTP authentication
402PAYMENT_REQUIRED
Note:  Authorization denied*
403FORBIDDEN
Note: Wrong authentication
404NOT FOUND
Note: Incorrect URL
500INTERNAL SERVER ERROR
Note: Server error

(*) Only possible for the creation of a transaction

Card authorization - Bank return codes

Issuer response codes returned to CentralPay after a card authorization request.

These values generally correspond to the ISO 8583 “Response code” (DE39) returned by card networks/issuers. Depending on the scheme, country, and routing, you may also receive network-specific or gateway-specific variants (for example alphanumeric or 3-digit codes).

Important: the same code can cover multiple issuer-side reasons. Unless explicitly stated, CentralPay passes these codes as received. For troubleshooting, combine the response code with your transaction context (amount, currency, 3DS result, merchant category, card brand, retries).

Most common response codes

CodeDescriptionRecommended action
00ApprovedProceed with capture / fulfillment.
02Contact card issuerAsk customer to contact their bank; retry only if customer confirms.
03Invalid acceptorCheck merchant/terminal configuration (MID/TID, acquirer routing).
04Pick up / retain cardDo not retry; follow your in-store procedure (if applicable).
05Do not honorGeneric decline: do not “loop” retries; ask customer to contact issuer or use another payment method.
07Honor with IDIf card-present: request ID verification; otherwise ask customer to contact issuer.
08Time-outRetry once after a short delay; if repeated, check connectivity/acquirer status.
10Unable to reverseEscalate to support with trace/reference; avoid repeated reversals.
11Partial approvalOnly relevant if your flow supports partial approvals (often prepaid); otherwise request another method.
12Invalid transactionCheck request consistency (type, lifecycle, capture/void rules); if persistent, escalate with logs.
13Invalid amountValidate amount format/currency decimals; check min/max constraints.
14Invalid card numberCustomer should re-enter card details; if repeated, use another card.
15Unknown issuerUse another card/payment method; escalate if routing issue suspected.
19Try again laterRetry once later; if repeated, ask customer to contact issuer.
30Format errorCheck field formats (PAN/expiry/CVV, currency, recurring flags); escalate if needed.
33Card expiredCustomer must use another card.
38PIN attempts exceededCardholder must contact issuer / reset PIN; do not retry.
39Transaction not allowedLikely product/merchant restriction; ask customer to contact issuer or use another method.
41Lost cardDo not retry; request another payment method.
43Stolen cardDo not retry; request another payment method.
51Insufficient fundsAsk customer to use another method or wait for funds; avoid repeated immediate retries.
54Expired cardCustomer must use another card.
55Incorrect PINCard-present only: customer must retry carefully or contact issuer after repeated failures.
57Transaction not permitted to cardholderIssuer restriction; ask customer to contact issuer or use another method.
58Transaction prohibited at terminalCheck merchant/terminal capabilities & configuration; may be MCC/terminal restriction.
59Suspected fraudDo not retry “blindly”; ask customer to contact issuer or use a different method; review fraud rules if frequent.
61Exceeds withdrawal/amount limitReduce amount or ask customer to contact issuer.
62Restricted cardIssuer restriction; customer should contact issuer.
65Frequency limit exceededWait and retry later; avoid repeated attempts in short timeframes.
68Response received too lateRetry once; check acquirer/network status if repeated.
75PIN attempts exceededSame as 38: cardholder must contact issuer.
82Invalid CVVCustomer should re-enter CVV; if repeated, use another card.
91Issuer/switch unavailableRetry later; if widespread, treat as incident (issuer/network outage).
94Duplicate requestAvoid immediate retries with same identifiers; ensure idempotency / unique reference.
95Contact acquirerEscalate to support/acquirer with transaction reference.
96System malfunctionRetry later; if repeated, escalate with traces/logs.

All response codes (exhaustive)

The following codes may be returned depending on the network, country, routing, or integration. This section is exhaustive compared to the previous version of this page, and includes both standard and non-standard variants.

CodeDescriptionRecommended action
00Transaction approved or successfully processedProceed with capture / fulfillment.
02Contact card issuerAsk the customer to contact their issuer; retry only if issuer confirms.
03Invalid acceptorCheck merchant/terminal configuration (MID/TID), acquirer routing, and credentials.
04Keep cardDo not retry; follow in-store procedure if applicable; request another payment method.
05Do not honorGeneric decline: avoid retry loops; ask customer to contact issuer or use another method.
06Transaction invalid for terminalCheck terminal capability / transaction type compatibility; verify integration parameters.
07Honor with IDIf card-present: request ID verification; otherwise ask customer to contact issuer.
08Time-OutRetry once after a short delay; if repeated, check network/acquirer connectivity.
09No originalFor reversals/adjustments: ensure you reference an existing original transaction; escalate if needed.
10Unable to reverseDo not repeat reversals blindly; escalate to support with transaction references.
11Partial approvalHandle partial approval if supported (often prepaid); otherwise request another method.
12Invalid transactionCheck transaction type/lifecycle (auth/capture/void/refund), parameters; escalate with logs if persistent.
13Invalid amountValidate amount format, currency decimals, and min/max constraints; retry after correction.
14Invalid cardholder numberCustomer should re-enter card details; if repeated, use another card.
15Unknown card issuerTry another card/payment method; if widespread, suspect routing/config issue and escalate.
17Invalid capture date (terminal business date)Check terminal business date / batch settings; retry after correction if applicable.
19Repeat transaction laterRetry once later; avoid multiple attempts in a short window; ask customer to contact issuer if repeated.
20No From AccountNot typical for purchase flows; verify transaction type and account fields; escalate if unexpected.
21No To AccountNot typical for purchase flows; verify transaction type and account fields; escalate if unexpected.
22Account not verifiedAsk customer to contact issuer; consider another payment method.
23Account not savedRetry later if applicable; otherwise use another method; escalate if recurring.
24No Credit AccountAsk customer to contact issuer; use another method.
25Unable to locate record in fileFor adjustments/reversals: verify original reference; escalate with trace/reference.
26Record duplicatedCheck idempotency and uniqueness of references; do not retry with same identifiers.
27‘Edit’ error in file update fieldCheck field formats and constraints; escalate with payload/logs.
28File access deniedConfiguration/permission issue: escalate to support/acquirer with context.
29File update not possibleEscalate with trace/reference; avoid repeating the same update operation.
30Format errorCheck request formatting (amount/currency, PAN/expiry, flags, message structure); escalate with logs.
31Identifier of acquiring organization unknownCheck acquirer routing and merchant configuration; escalate to support/acquirer.
32Transaction partially completedCheck final status via retrieval; avoid blind retry; escalate if inconsistent.
33Card validity date exceededCustomer must use another card.
34Implausible card dataCustomer should re-enter details; verify card data collection; use another card if repeated.
38Number of PIN attempts exceededDo not retry; customer must contact issuer / reset PIN.
39Transaction not allowedCheck transaction type and merchant capability; ask customer to contact issuer or use another method.
41Lost cardDo not retry; request another payment method.
42Special PickupDo not retry; request another method; in-store: follow procedure if applicable.
43Stolen cardDo not retry; request another payment method.
44Stolen cardDo not retry; request another payment method.
51Insufficient funds or overdraftAsk customer to use another method or wait for funds; avoid repeated immediate retries.
54Card expiredCustomer must use another card.
55Incorrect PINCard-present: retry carefully; if repeated, customer contacts issuer.
56Card not on fileVerify card details; customer should contact issuer or use another card.
57Transaction not authorized to this cardholderIssuer restriction; ask customer to contact issuer or use another method.
58Transaction prohibited at terminalCheck merchant/terminal capabilities and MCC/terminal restrictions; adjust configuration.
59Suspected fraudAvoid retry loops; customer contacts issuer or uses another method; review risk rules if frequent.
60The card acceptor must contact the buyerAsk customer to contact issuer / confirm details; avoid repeated attempts.
61Withdrawal amount over limitReduce amount or ask customer to contact issuer.
62Card use restrictedCustomer contacts issuer; use another method.
63MAC Key ErrorCryptographic/config issue: escalate to support/acquirer with trace and timestamps.
65Frequency limit exceededWait and retry later; avoid multiple attempts in short timeframe.
66Acquirer limit reachedEscalate to acquirer/support; retry only after confirmation.
67Card withheldDo not retry; request another method; in-store: follow procedure if applicable.
68Response not received or received too lateRetry once; if repeated, check acquirer/network status and escalate.
75Number of PIN attempts exceededSame as 38: do not retry; customer must contact issuer.
76Invalid AccountAsk customer to contact issuer; use another card/method.
77Issuer not participating in serviceUse another card or method; escalate if routing/regional issue suspected.
78Function not availableRemove/disable unsupported feature; verify transaction type and integration flags.
79Key validation errorCryptographic/config issue: escalate to support/acquirer with trace.
80Approved for purchase amount onlyIf you requested cash-back/extra: retry without it; otherwise proceed as approved.
81Unable to verify PINCard-present: retry; if repeated, customer contacts issuer or use another method.
82Invalid CVVRe-enter CVV; if repeated, use another card.
83Not refusedTreat as non-decline / ambiguous: verify final status via retrieval; escalate if inconsistent.
84Invalid transaction lifecycleCheck auth/capture/void/refund ordering and timing; fix integration logic.
85No key to useCryptographic/config issue: escalate to support/acquirer.
86KME synchronization errorCryptographic sync issue: escalate with logs, trace, timestamps.
87PIN errorCard-present: retry; if repeated, customer contacts issuer.
88MAC synchronization errorCryptographic sync issue: escalate with logs, trace, timestamps.
89Security violationStop retries; escalate to support/acquirer; review fraud/security configuration.
90Temporary system shutdownRetry later; if persistent, treat as incident and escalate.
91Card transmitter inaccessibleRetry later; if widespread, treat as issuer/network outage.
92Card issuer unknownUse another card; if repeated across cards, suspect routing/config and escalate.
93Transacation cannot be finalizedRetry later once; if persistent, escalate with trace/logs.
94Duplicate requestEnsure idempotency / unique references; do not resend the exact same request.
95Contact acquirerEscalate to support/acquirer with transaction reference and timestamps.
96System malfunctionRetry later; if repeated, escalate with traces/logs.
97No Funds TransferNot typical for purchase flows; verify transaction type; escalate if unexpected.
98Duplicate ReversalDo not repeat reversal; verify original reversal status; ensure idempotency.
99Duplicate TransactionCheck idempotency and client retries; ensure unique transaction identifiers.
N3Cash Service Not AvailableNot applicable to purchase flows; ignore unless supporting cash services.
N4Cash Back Request Exceeds Issuer LimitReduce cash-back amount or remove cash-back.
N7Declined for CVV2 failureRe-enter CVV; if repeated, use another card.
R0Stop Payment OrderDo not retry; customer must contact issuer.
R1Revocation of Authorisation OrderDo not retry; customer must contact issuer.
R3Revocation of all Authorisations OrderDo not retry; customer must contact issuer.
A0Withdrawal in contact modeNot applicable to e-commerce purchase flows; verify transaction type; remove cash/withdrawal feature if not supported.
A1VADS fallbackRouting/fallback case: verify gateway/acquirer configuration; escalate if frequent or unexpected.
000ApprovedProceed with capture / fulfillment.
001Approve with IDIf supported: apply ID verification; otherwise treat as approved.
002Partial approval (prepaid cards only)Handle partial approval if supported; otherwise request another method.
100RejectGeneric decline: avoid retry loops; ask customer to contact issuer or use another method.
101Card expired / invalid expiry dateCustomer must use another card.
106PIN attempts exceededDo not retry; customer must contact issuer.
107Please call issuerCustomer must contact issuer; retry only after confirmation.
109Invalid merchantCheck merchant configuration and routing; escalate to support/acquirer.
110Invalid amountValidate amount format/limits; retry after correction.
111Invalid account / Invalid MICR (traveler’s check)Ask customer to contact issuer; use another card/method.
115Requested function not supportedDisable unsupported feature/flag; verify transaction type.
117Invalid PINCard-present: retry carefully; if repeated, customer contacts issuer.
119Cardholder not registered / not authorizedCustomer must contact issuer; use another method.
122Invalid card security code (alias CID, 4DBC, 4CSC)Re-enter security code; if repeated, use another card.
125Invalid effective dateCheck date fields / terminal business date; escalate if applicable.
181Format errorCheck request formatting and fields; escalate with logs if persistent.
183Invalid currency codeVerify ISO currency code and acquirer configuration; correct and retry.
187Refuse – New card issuedCustomer must use another card; advise contacting issuer.
189Refuse – Merchant cancelled or closed / SECheck merchant status/configuration; escalate to support/acquirer.
200Refuse – Pick up cardDo not retry; request another method; in-store: follow procedure if applicable.
900Accepted – ATC synchronizationProceed but monitor; if repeated, escalate (potential chip/crypto sync issue).
909System malfunction (cryptographic error)Escalate to support/acquirer with trace, timestamps, and logs.
912Issuer not availableRetry later; if widespread, treat as issuer outage / incident.

Card Disputes - Bank Return codes

CB Scheme

CBDescriptionGIE DISPUTE
12Unauthorized TransactionTRANSACTION_NOT_AUTHORIZED
13Merchant Forced TransactionINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
14Unauthorized TransactionTRANSACTION_NOT_AUTHORIZED
15Guarantee by Card, by Day and by SIRETTRANSACTION_NOT_AUTHORIZED
16PIN Not VerifiedTRANSACTION_NOT_AUTHORIZED
17Invalid SIRETTRANSACTION_NOT_AUTHORIZED
18Certificate Not VerifiableTRANSACTION_NOT_AUTHORIZED
21Expired CardTRANSACTION_NOT_AUTHORIZED
22Late PresentmentINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
23Missing ImprintINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
25Exceeds Transaction Amount LimitINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
27Credit Not ProcessedTRANSACTION_NOT_AUTHORIZED
28Credit Processed as DebitTRANSACTION_NOT_AUTHORIZED
40Cancelled CardINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
41Documentation Not Provided or IllegibleINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
42Duplicate ProcessingDUPLICATE
43No Such Card NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
44Disputed AmountFRAUDULENT
45Disputed TransactionFRAUDULENT
46Merchant Bankruptcy or Judicial ReorganizationINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
61Merchant Suspended or TerminatedTRANSACTION_NOT_AUTHORIZED
62Transaction Not PermittedTRANSACTION_NOT_AUTHORIZED

Mastercard Scheme

MASTERCARDDescriptionGIE DISPUTE
4801Requested Transaction Data Not ReceivedTRANSACTION_NOT_AUTHORIZED
4802Cardholder Does Not Recognize TransactionTRANSACTION_NOT_AUTHORIZED
4807Cardholder Disputes a CreditFRAUDULENT
4808Authorization-Related ChargebackTRANSACTION_NOT_AUTHORIZED
4809Transaction Not AuthorizedFRAUDULENT
4810Fraud — Card-Not-Present EnvironmentFRAUDULENT
4522Goods or Services Not as Described / Not ReceivedOTHER
4811Credit Not ProcessedTRANSACTION_NOT_AUTHORIZED
4812Fraud — Card-Present EnvironmentTRANSACTION_NOT_AUTHORIZED
4831Goods or Services Not ReceivedINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4834Duplicate ProcessingDUPLICATE
4835Transaction Processing ErrorTRANSACTION_NOT_AUTHORIZED
4837No Cardholder Authorization (Lost/Stolen Card)FRAUDULENT
4840Fraudulent Processing of TransactionsFRAUDULENT
4841Cancelled Recurring TransactionTRANSACTION_NOT_AUTHORIZED
4842Counterfeit CardTRANSACTION_NOT_AUTHORIZED
4843Transaction Not Valid / Authorization ReversalTRANSACTION_NOT_AUTHORIZED
4846Non-Compliance With Authorization RequirementsINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4847Invalid Recurring TransactionINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4849Duplicate ProcessingDUPLICATE
4850ATM Cash Disbursement Not AuthorizedTRANSACTION_NOT_AUTHORIZED
4851Cardholder Disputes Transaction (Offline)TRANSACTION_NOT_AUTHORIZED
4853Cardholder Disputes Transaction Not as DescribedPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4854Exceeds Floor LimitPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4855Non-Receipt of Merchandise / ServicesPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4857Cardholder Disputes Transaction — Services Not ProvidedTRANSACTION_NOT_AUTHORIZED
4859Services Not Provided / Merchandise Not ReceivedTRANSACTION_NOT_AUTHORIZED
4860Transaction Processing ErrorTRANSACTION_NOT_AUTHORIZED
4862Cardholder Disputes Transaction — Invalid AuthorizationTRANSACTION_NOT_AUTHORIZED
4863Credit Not Processed / Cash Not DispensedFRAUDULENT
4870Chip Liability Shift — Counterfeit FraudFRAUDULENT
4871Chip Liability Shift — Lost/Stolen FraudFRAUDULENT
4880Late PresentmentTRANSACTION_NOT_AUTHORIZED
4890Currency Conversion DisputeTRANSACTION_NOT_AUTHORIZED
4900Defective/Not as Described MerchandiseOTHER
4901Credit Not ProcessedOTHER
4902Merchandise Not AcceptedOTHER
4903Incorrect Merchandise DeliveredOTHER
4905Services Not ProvidedOTHER
4908Cash Not DispensedOTHER

Visa Scheme

VISADescriptionGIE DISPUTE
10Fraud — Card-Absent EnvironmentFRAUDULENT
11Fraud — Card-Present EnvironmentTRANSACTION_NOT_AUTHORIZED
12Incorrect Transaction Amount or Account NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
13Fraudulent Transaction — No AuthorizationFRAUDULENT
30Services Not Provided or Merchandise Not ReceivedPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
41Credit Not ProcessedOTHER
53Not as Described or Defective MerchandiseOTHER
57Fraudulent Transaction — No Cardholder AuthorizationFRAUDULENT
62Counterfeit TransactionFRAUDULENT
70Processing ErrorOTHER
71Declined AuthorizationOTHER
72Cancelled TransactionOTHER
73Duplicate ProcessingOTHER
74Credit Not ProcessedOTHER
75Transaction Not RecognizedOTHER
76Incorrect Transaction Amount or Account NumberOTHER
77Non-Receipt of MerchandiseINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
78Fraudulent Transaction — No Cardholder AuthorizationOTHER
80Incorrect Transaction Amount or Account NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
81Fraudulent Transaction — Lost CardFRAUDULENT
82Fraudulent Transaction — Stolen CardDUPLICATE
83Fraudulent Transaction — Card-Absent EnvironmentFRAUDULENT
85Duplicate ProcessingOTHER
86Non-Compliance With AuthorizationDUPLICATE
93Late PresentmentFRAUDULENT
1001Fraud — Card-Absent Environment (E-Commerce)FRAUDULENT
1002Fraudulent Transaction — E-CommerceFRAUDULENT
1003Services Not Provided or Merchandise Not ReceivedFRAUDULENT
1004Fraudulent Transaction — No Cardholder AuthorizationFRAUDULENT
1005Not as Described or Defective MerchandiseFRAUDULENT
1101Processing Error — AuthorizationOTHER
1102Incorrect Transaction AmountOTHER
1103Exceeds Authorized AmountOTHER
1201Services Not Provided or Merchandise Not ReceivedOTHER
1202Not as Described Merchandise / ServiceOTHER
1203Recurring Transaction Not RecognizedOTHER
1204Defective MerchandiseINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
1205Services Not ProvidedINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
1206Non-Receipt of MerchandiseDUPLICATE
1207Duplicate ProcessingOTHER
1301Fraudulent Transaction — Card-Present EnvironmentPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
1302Fraudulent Transaction — No Cardholder AuthorizationOTHER
1303Fraudulent Transaction — Card-Absent EnvironmentOTHER
1304Duplicate ProcessingOTHER
1305Services Not Provided or Merchandise Not ReceivedOTHER
1306Credit Not ProcessedOTHER
1307Recurring Transaction Not RecognizedOTHER
1308Transaction Processing ErrorOTHER

Currency codes

List of currency codes:

AED
UAE Dirham
Currency code: 784
AFN
Afghani
Currency code: 971
ALL
Lek
Currency code: 008
AMD
Armenian Dram
Currency code: 051
ANG
Netherlands Antillean Guilder
Currency code: 532
AOA
Kwanza
Currency code: 973
ARS
Argentine Peso
Currency code: 032
AUD
Australian Dollar
Currency code: 036
AWG
Aruban Florin
Currency code: 533
AZN
Azerbaijanian Manat
Currency code: 944
BAM
Convertible Mark
Currency code: 977
BBD
Barbados Dollar
Currency code: 052
BDT
Taka
Currency code: 050
BGN
Bulgarian Lev
Currency code: 975
BHD
Bahraini Dinar
Currency code: 048
BIF
Burundi Franc
Currency code: 108
BMD
Bermudian Dollar
Currency code: 060
BND
Brunei Dollar
Currency code: 096
BOB
Boliviano
Currency code: 068
BOV
Mvdol
Currency code: 984
BRL
Brazilian Real
Currency code: 986
BSD
Bahamian Dollar
Currency code: 044
BTN
Ngultrum
Currency code: 064
BWP
Pula
Currency code: 072
BYR
Belarussian Ruble
Currency code: 974
BZD
Belize Dollar
Currency code: 084
CAD
Canadian Dollar
Currency code: 124
CDF
Congolese Franc
Currency code: 976
CHE
WIR Euro
Currency code: 947
CHF
Swiss Franc
Currency code: 756
CHW
WIR Franc
Currency code: 948
CLF
Unidad de Fomento
Currency code: 990
CLP
Chilean Peso
Currency code: 152
CNY
Yuan Renminbi
Currency code: 156
COP
Colombian Peso
Currency code: 170
COU
Unidad de Valor Real
Currency code: 970
CRC
Costa Rican Colon
Currency code: 188
CUC
Peso Convertible
Currency code: 931
CUP
Cuban Peso
Currency code: 192
CVE
Cabo Verde Escudo
Currency code: 132
CZK
Czech Koruna
Currency code: 203
DJF
Djibouti Franc
Currency code: 262
DKK
Danish Krone
Currency code: 208
DOP
Dominican Peso
Currency code: 214
DZD
Algerian Dinar
Currency code: 012
EGP
Egyptian Pound
Currency code: 818
ERN
Nakfa
Currency code: 232
ETB
Ethiopian Birr
Currency code: 230
EUR
Euro
Currency code: 978
FJD
Fiji Dollar
Currency code: 242
FKP
Falkland Islands Pound
Currency code: 238
GBP
Pound Sterling
Currency code: 826
GEL
Lari
Currency code: 981
GHS
Ghana Cedi
Currency code: 936
GIP
Gibraltar Pound
Currency code: 292
GMD
Dalasi
Currency code: 270
GNF
Guinea Franc
Currency code: 324
GTQ
Quetzal
Currency code: 320
GYD
Guyana Dollar
Currency code: 328
HKD
Hong Kong Dollar
Currency code: 344
HNL
Lempira
Currency code: 340
HRK
Kuna
Currency code: 191
HTG
Gourde
Currency code: 332
HUF
Forint
Currency code: 348
IDR
Rupiah
Currency code: 360
ILS
New Israeli Sheqel
Currency code: 376
INR
Indian Rupee
Currency code: 356
IQD
Iraqi Dinar
Currency code: 368
IRR
Iranian Rial
Currency code: 364
ISK
Iceland Krona
Currency code: 352
JMD
Jamaican Dollar
Currency code: 388
JOD
Jordanian Dinar
Currency code: 400
JPY
Yen
Currency code: 392
KES
Kenyan Shilling
Currency code: 404
KGS
Som
Currency code: 417
KHR
Riel
Currency code: 116
KMF
Comoro Franc
Currency code: 174
KPW
North Korean Won
Currency code: 408
KRW
Won
Currency code: 410
KWD
Kuwaiti Dinar
Currency code: 414
KYD
Cayman Islands Dollar
Currency code: 136
KZT
Tenge
Currency code: 398
LAK
Kip
Currency code: 418
LBP
Lebanese Pound
Currency code: 422
LKR
Sri Lanka Rupee
Currency code: 144
LRD
Liberian Dollar
Currency code: 430
LSL
Loti
Currency code: 426
LYD
Libyan Dinar
Currency code: 434
MAD
Moroccan Dirham
Currency code: 504
MDL
Moldovan Leu
Currency code: 498
MGA
Malagasy Ariary
Currency code: 969
MKD
Denar
Currency code: 807
MMK
Kyat
Currency code: 104
MNT
Tugrik
Currency code: 496
MOP
Pataca
Currency code: 446
MRO
Ouguiya
Currency code: 478
MUR
Mauritius Rupee
Currency code: 480
MVR
Rufiyaa
Currency code: 462
MWK
Kwacha
Currency code: 454
MXN
Mexican Peso
Currency code: 484
MXV
Mexican Unidad de Inversion (UDI)
Currency code: 979
MYR
Malaysian Ringgit
Currency code: 458
MZN
Mozambique Metical
Currency code: 943
NAD
Namibia Dollar
Currency code: 516
NGN
Naira
Currency code: 566
NIO
Cordoba Oro
Currency code: 558
NOK
Norwegian Krone
Currency code: 578
NPR
Nepalese Rupee
Currency code: 524
NZD
New Zealand Dollar
Currency code: 554
OMR
Rial Omani
Currency code: 512
PAB
Balboa
Currency code: 590
PEN
Nuevo Sol
Currency code: 604
PGK
Kina
Currency code: 598
PHP
Philippine Peso
Currency code: 608
PKR
Pakistan Rupee
Currency code: 586
PLN
Zloty
Currency code: 985
PYG
Guarani
Currency code: 600
QAR
Qatari Rial
Currency code: 634
RON
Romanian Leu
Currency code: 946
RSD
Serbian Dinar
Currency code: 941
RUB
Russian Ruble
Currency code: 643
RWF
Rwanda Franc
Currency code: 646
SAR
Saudi Riyal
Currency code: 682
SBD
Solomon Islands Dollar
Currency code: 090
SCR
Seychelles Rupee
Currency code: 690
SDG
Sudanese Pound
Currency code: 938
SEK
Swedish Krona
Currency code: 752
SGD
Singapore Dollar
Currency code: 702
SHP
Saint Helena Pound
Currency code: 654
SLL
Leone
Currency code: 694
SOS
Somali Shilling
Currency code: 706
SRD
Surinam Dollar
Currency code: 968
SSP
South Sudanese Pound
Currency code: 728
STD
Dobra
Currency code: 678
SVC
El Salvador Colon
Currency code: 222
SYP
Syrian Pound
Currency code: 760
SZL
Lilangeni
Currency code: 748
THB
Baht
Currency code: 764
TJS
Somoni
Currency code: 972
TMT
Turkmenistan New Manat
Currency code: 934
TND
Tunisian Dinar
Currency code: 788
TOP
Pa’anga
Currency code: 776
TRY
Turkish Lira
Currency code: 949
TTD
Trinidad and Tobago Dollar
Currency code: 780
TWD
New Taiwan Dollar
Currency code: 901
TZS
Tanzanian Shilling
Currency code: 834
UAH
Hryvnia
Currency code: 980
UGX
Uganda Shilling
Currency code: 800
USD
US Dollar
Currency code: 840
USN
US Dollar (Next day)
Currency code: 997
UYI
Uruguay Peso en Unidades Indexadas (URUIURUI)
Currency code: 940
UYU
Peso Uruguayo
Currency code: 858
UZS
Uzbekistan Sum
Currency code: 860
VEF
Bolivar
Currency code: 937
VND
Dong
Currency code: 704
VUV
Vatu
Currency code: 548
WST
Tala
Currency code: 882
XAG
Silver
Currency code: 961
XAU
Gold
Currency code: 959
XBA
Bond Markets Unit European Composite Unit (EURCO)
Currency code: 955
XBB
Bond Markets Unit European Monetary Unit (E.M.U.-6)
Currency code: 956
XBC
Bond Markets Unit European Unit of Account 9 (E.U.A.-9)
Currency code: 957
XBD
Bond Markets Unit European Unit of Account 17 (E.U.A.-17)
Currency code: 958
XCD
East Caribbean Dollar
Currency code: 951
XDR
SDR (Special Drawing Right)
Currency code: 960
XOF
CFA Franc BCEAO
Currency code: 952
XPD
Palladium
Currency code: 964
XPF
CFP Franc
Currency code: 953
XPT
Platinum
Currency code: 962
XSU
Sucre
Currency code: 994
XTS
Codes specifically reserved for testing purposes
Currency code: 963
XUA
ADB Unit of Account
Currency code: 965
XXX
The codes assigned for transactions where no currency is involved
Currency code: 999
YER
Yemeni Rial
Currency code: 886
ZAR
Rand
Currency code: 710
ZMW
Zambian Kwacha
Currency code: 967
ZWL
Zimbabwe Dollar
Currency 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 CodeDescription
AB05Timeout Creditor Agent
AB06Timeout Instructed Agent
AB07Offline Agent
AB08Offline Creditor Agent
AB09Error Creditor Agent
AB10Error Instructed Agent
AC01Incorrect Account Number
AC03Invalid Creditor Account Number
AC04Account Closed
AC06Account blocked, reason not specified
AC13Wrong Debtor account
AG01Forbidden on this type of account
AG02Operation/Transaction code incorrect, invalid file format
AG09Payment Not Received
AG10Agent Suspended
AG11Creditor Agent Suspended
AGNTIncorrect Agent
AM02Not Allowed Amount
AM04Insufficient Funds
AM05Duplicate payment
AM09Wrong Amount
AM23Amount Exceeds Settlement Limit
ARDTAlready a returned transaction
BE04Account address invalid
BE05Creditor Identifier incorrect
CUSTCustomer decision
CURRIncorrect Currency
CUTACancellation Upon Unable to Apply
CNORCreditor Bank is not Registered
DNORDebtor Bank is not Registered
DUPLDuplicate Payment
ED05Settlement Failed
ERINERI Option Not Supported
FF01Invalid File Format
FOCRPositive answer to the recall or RfRO
FRADFraudulent originated credit transfer
LEGLLegal Decision
MD01No valid mandate
MD02Mandate data missing or invalid
MD06Refund Request By End Customer
MD07Beneficiary Deceased
MS02By order of the beneficiary
MS03Reason not specified
NOASNo Answer From Customer
NOORNo Original Transaction Received
RC01Invalid BIC
RC07Invalid Creditor BIC Identifier
RR01Missing Debtor Account Or Identification
RR02Missing Debtors Name Or Address
RR03Missing Creditors Name Or Address
RR04Regulatory Reason
SL01Specific service offered by debtor Bank
TECHTechnical problems resulting in erroneous SCT’s
TM01Invalid Cut Off Time
UPAYUndue Payment

Country codes

List of country codes:

004
Afghanistan
Alpha2 code: AF
Alpha3 code: AFG
008
Albania
Alpha2 code: AL
Alpha3 code: ALB
010
Antarctica
Alpha2 code: AQ
Alpha3 code: ATA
012
Algeria
Alpha2 code: DZ
Alpha3 code: DZA
016
American Samoa
Alpha2 code: AS
Alpha3 code: ASM
020
Andorra
Alpha2 code: AD
Alpha3 code: AND
024
Angola
Alpha2 code: AO
Alpha3 code: AGO
028
Antigua and Barbuda
Alpha2 code: AG
Alpha3 code: ATG
031
Azerbaijan
Alpha2 code: AZ
Alpha3 code: AZE
032
Argentina
Alpha2 code: AR
Alpha3 code: ARG
036
Australia
Alpha2 code: AU
Alpha3 code: AUS
040
Austria
Alpha2 code: AT
Alpha3 code: AUT
044
Bahamas (the)
Alpha2 code: BS
Alpha3 code: BHS
048
Bahrain
Alpha2 code: BH
Alpha3 code: BHR
050
Bangladesh
Alpha2 code: BD
Alpha3 code: BGD
051
Armenia
Alpha2 code: AM
Alpha3 code: ARM
052
Barbados
Alpha2 code: BB
Alpha3 code: BRB
056
Belgium
Alpha2 code: BE
Alpha3 code: BEL
060
Bermuda
Alpha2 code: BM
Alpha3 code: BMU
064
Bhutan
Alpha2 code: BT
Alpha3 code: BTN
068
Bolivia, Plurinational State of
Alpha2 code: BO
Alpha3 code: BOL
070
Bosnia and Herzegovina
Alpha2 code: BA
Alpha3 code: BIH
072
Botswana
Alpha2 code: BW
Alpha3 code: BWA
074
Bouvet Island
Alpha2 code: BV
Alpha3 code: BVT
076
Brazil
Alpha2 code: BR
Alpha3 code: BRA
084
Belize
Alpha2 code: BZ
Alpha3 code: BLZ
086
British Indian Ocean Territory (the)
Alpha2 code: IO
Alpha3 code: IOT
090
Solomon Islands (the)
Alpha2 code: SB
Alpha3 code: SLB
092
Virgin Islands (British)
Alpha2 code: VG
Alpha3 code: VGB
096
Brunei Darussalam
Alpha2 code: BN
Alpha3 code: BRN
100
Bulgaria
Alpha2 code: BG
Alpha3 code: BGR
104
Myanmar
Alpha2 code: MM
Alpha3 code: MMR
108
Burundi
Alpha2 code: BI
Alpha3 code: BDI
112
Belarus
Alpha2 code: BY
Alpha3 code: BLR
116
Cambodia
Alpha2 code: KH
Alpha3 code: KHM
120
Cameroon
Alpha2 code: CM
Alpha3 code: CMR
124
Canada
Alpha2 code: CA
Alpha3 code: CAN
132
Cape Verde
Alpha2 code: CV
Alpha3 code: CPV
136
Cayman Islands (the)
Alpha2 code: KY
Alpha3 code: CYM
140
Central African Republic (the)
Alpha2 code: CF
Alpha3 code: CAF
144
Sri Lanka
Alpha2 code: LK
Alpha3 code: LKA
148
Chad
Alpha2 code: TD
Alpha3 code: TCD
152
Chile
Alpha2 code: CL
Alpha3 code: CHL
156
China
Alpha2 code: CN
Alpha3 code: CHN
158
Taiwan (Province of China)
Alpha2 code: TW
Alpha3 code: TWN
162
Christmas Island
Alpha2 code: CX
Alpha3 code: CXR
166
Cocos (Keeling) Islands (the)
Alpha2 code: CC
Alpha3 code: CCK
170
Colombia
Alpha2 code: CO
Alpha3 code: COL
174
Comoros
Alpha2 code: KM
Alpha3 code: COM
175
Mayotte
Alpha2 code: YT
Alpha3 code: MYT
178
Congo
Alpha2 code: CG
Alpha3 code: COG
180
Congo (the Democratic Republic of the)
Alpha2 code: CD
Alpha3 code: COD
184
Cook Islands (the)
Alpha2 code: CK
Alpha3 code: COK
188
Costa Rica
Alpha2 code: CR
Alpha3 code: CRI
191
Croatia
Alpha2 code: HR
Alpha3 code: HRV
192
Cuba
Alpha2 code: CU
Alpha3 code: CUB
196
Cyprus
Alpha2 code: CY
Alpha3 code: CYP
203
Czech Republic (the)
Alpha2 code: CZ
Alpha3 code: CZE
204
Benin
Alpha2 code: BJ
Alpha3 code: BEN
208
Denmark
Alpha2 code: DK
Alpha3 code: DNK
212
Dominica
Alpha2 code: DM
Alpha3 code: DMA
214
Dominican Republic (the)
Alpha2 code: DO
Alpha3 code: DOM
218
Ecuador
Alpha2 code: EC
Alpha3 code: ECU
222
El Salvador
Alpha2 code: SV
Alpha3 code: SLV
226
Equatorial Guinea
Alpha2 code: GQ
Alpha3 code: GNQ
231
Ethiopia
Alpha2 code: ET
Alpha3 code: ETH
232
Eritrea
Alpha2 code: ER
Alpha3 code: ERI
233
Estonia
Alpha2 code: EE
Alpha3 code: EST
234
Faroe Islands (the)
Alpha2 code: FO
Alpha3 code: FRO
238
Falkland Islands (the) [Malvinas]
Alpha2 code: FK
Alpha3 code: FLK
239
South Georgia and the South Sandwich Islands
Alpha2 code: GS
Alpha3 code: SGS
242
Fiji
Alpha2 code: FJ
Alpha3 code: FJI
246
Finland
Alpha2 code: FI
Alpha3 code: FIN
248
Ã…land Islands
Alpha2 code: AX
Alpha3 code: ALA
250
France
Alpha2 code: FR
Alpha3 code: FRA
254
French Guiana
Alpha2 code: GF
Alpha3 code: GUF
258
French Polynesia
Alpha2 code: PF
Alpha3 code: PYF
260
French Southern Territories (the)
Alpha2 code: TF
Alpha3 code: ATF
262
Djibouti
Alpha2 code: DJ
Alpha3 code: DJI
266
Gabon
Alpha2 code: GA
Alpha3 code: GAB
268
Georgia
Alpha2 code: GE
Alpha3 code: GEO
270
Gambia (The)
Alpha2 code: GM
Alpha3 code: GMB
275
Palestine, State of
Alpha2 code: PS
Alpha3 code: PSE
276
Germany
Alpha2 code: DE
Alpha3 code: DEU
288
Ghana
Alpha2 code: GH
Alpha3 code: GHA
292
Gibraltar
Alpha2 code: GI
Alpha3 code: GIB
296
Kiribati
Alpha2 code: KI
Alpha3 code: KIR
300
Greece
Alpha2 code: GR
Alpha3 code: GRC
304
Greenland
Alpha2 code: GL
Alpha3 code: GRL
308
Grenada
Alpha2 code: GD
Alpha3 code: GRD
312
Guadeloupe
Alpha2 code: GP
Alpha3 code: GLP
316
Guam
Alpha2 code: GU
Alpha3 code: GUM
320
Guatemala
Alpha2 code: GT
Alpha3 code: GTM
324
Guinea
Alpha2 code: GN
Alpha3 code: GIN
328
Guyana
Alpha2 code: GY
Alpha3 code: GUY
332
Haiti
Alpha2 code: HT
Alpha3 code: HTI
334
Heard Island and McDonald Islands
Alpha2 code: HM
Alpha3 code: HMD
336
Holy See (the) [Vatican City State]
Alpha2 code: VA
Alpha3 code: VAT
340
Honduras
Alpha2 code: HN
Alpha3 code: HND
344
Hong Kong
Alpha2 code: HK
Alpha3 code: HKG
348
Hungary
Alpha2 code: HU
Alpha3 code: HUN
352
Iceland
Alpha2 code: IS
Alpha3 code: ISL
356
India
Alpha2 code: IN
Alpha3 code: IND
360
Indonesia
Alpha2 code: ID
Alpha3 code: IDN
364
Iran (the Islamic Republic of)
Alpha2 code: IR
Alpha3 code: IRN
368
Iraq
Alpha2 code: IQ
Alpha3 code: IRQ
372
Ireland
Alpha2 code: IE
Alpha3 code: IRL
376
Israel
Alpha2 code: IL
Alpha3 code: ISR
380
Italy
Alpha2 code: IT
Alpha3 code: ITA
384
Ivory coast
Alpha2 code: CI
Alpha3 code: CIV
388
Jamaica
Alpha2 code: JM
Alpha3 code: JAM
392
Japan
Alpha2 code: JP
Alpha3 code: JPN
398
Kazakhstan
Alpha2 code: KZ
Alpha3 code: KAZ
400
Jordan
Alpha2 code: JO
Alpha3 code: JOR
404
Kenya
Alpha2 code: KE
Alpha3 code: KEN
408
Korea (the Democratic People’s Republic of)
Alpha2 code: KP
Alpha3 code: PRK
410
Korea (the Republic of)
Alpha2 code: KR
Alpha3 code: KOR
414
Kuwait
Alpha2 code: KW
Alpha3 code: KWT
417
Kyrgyzstan
Alpha2 code: KG
Alpha3 code: KGZ
418
Lao People’s Democratic Republic (the)
Alpha2 code: LA
Alpha3 code: LAO
422
Lebanon
Alpha2 code: LB
Alpha3 code: LBN
426
Lesotho
Alpha2 code: LS
Alpha3 code: LSO
428
Latvia
Alpha2 code: LV
Alpha3 code: LVA
430
Liberia
Alpha2 code: LR
Alpha3 code: LBR
434
Libya
Alpha2 code: LY
Alpha3 code: LBY
438
Liechtenstein
Alpha2 code: LI
Alpha3 code: LIE
440
Lithuania
Alpha2 code: LT
Alpha3 code: LTU
442
Luxembourg
Alpha2 code: LU
Alpha3 code: LUX
446
Macao
Alpha2 code: MO
Alpha3 code: MAC
450
Madagascar
Alpha2 code: MG
Alpha3 code: MDG
454
Malawi
Alpha2 code: MW
Alpha3 code: MWI
458
Malaysia
Alpha2 code: MY
Alpha3 code: MYS
462
Maldives
Alpha2 code: MV
Alpha3 code: MDV
466
Mali
Alpha2 code: ML
Alpha3 code: MLI
470
Malta
Alpha2 code: MT
Alpha3 code: MLT
474
Martinique
Alpha2 code: MQ
Alpha3 code: MTQ
478
Mauritania
Alpha2 code: MR
Alpha3 code: MRT
480
Mauritius
Alpha2 code: MU
Alpha3 code: MUS
484
Mexico
Alpha2 code: MX
Alpha3 code: MEX
492
Monaco
Alpha2 code: MC
Alpha3 code: MCO
496
Mongolia
Alpha2 code: MN
Alpha3 code: MNG
498
Moldova (the Republic of)
Alpha2 code: MD
Alpha3 code: MDA
499
Montenegro
Alpha2 code: ME
Alpha3 code: MNE
500
Montserrat
Alpha2 code: MS
Alpha3 code: MSR
504
Morocco
Alpha2 code: MA
Alpha3 code: MAR
508
Mozambique
Alpha2 code: MZ
Alpha3 code: MOZ
512
Oman
Alpha2 code: OM
Alpha3 code: OMN
516
Namibia
Alpha2 code: NA
Alpha3 code: NAM
520
Nauru
Alpha2 code: NR
Alpha3 code: NRU
524
Nepal
Alpha2 code: NP
Alpha3 code: NPL
528
Netherlands (the)
Alpha2 code: NL
Alpha3 code: NLD
531
Curacao
Alpha2 code: CW
Alpha3 code: CUW
533
Aruba
Alpha2 code: AW
Alpha3 code: ABW
534
Sint Maarten (Dutch part)
Alpha2 code: SX
Alpha3 code: SXM
535
Bonaire, Sint Eustatius and Saba
Alpha2 code: BQ
Alpha3 code: BES
540
New Caledonia
Alpha2 code: NC
Alpha3 code: NCL
548
Vanuatu
Alpha2 code: VU
Alpha3 code: VUT
554
New Zealand
Alpha2 code: NZ
Alpha3 code: NZL
558
Nicaragua
Alpha2 code: NI
Alpha3 code: NIC
562
Niger (the)
Alpha2 code: NE
Alpha3 code: NER
566
Nigeria
Alpha2 code: NG
Alpha3 code: NGA
570
Niue
Alpha2 code: NU
Alpha3 code: NIU
574
Norfolk Island
Alpha2 code: NF
Alpha3 code: NFK
578
Norway
Alpha2 code: NO
Alpha3 code: NOR
580
Northern Mariana Islands (the)
Alpha2 code: MP
Alpha3 code: MNP
581
United States Minor Outlying Islands (the)
Alpha2 code: UM
Alpha3 code: UMI
583
Micronesia (the Federated States of)
Alpha2 code: FM
Alpha3 code: FSM
584
Marshall Islands (the)
Alpha2 code: MH
Alpha3 code: MHL
585
Palau
Alpha2 code: PW
Alpha3 code: PLW
586
Pakistan
Alpha2 code: PK
Alpha3 code: PAK
591
Panama
Alpha2 code: PA
Alpha3 code: PAN
598
Papua New Guinea
Alpha2 code: PG
Alpha3 code: PNG
600
Paraguay
Alpha2 code: PY
Alpha3 code: PRY
604
Peru
Alpha2 code: PE
Alpha3 code: PER
608
Philippines (the)
Alpha2 code: PH
Alpha3 code: PHL
612
Pitcairn
Alpha2 code: PN
Alpha3 code: PCN
616
Poland
Alpha2 code: PL
Alpha3 code: POL
620
Portugal
Alpha2 code: PT
Alpha3 code: PRT
624
Guinea-Bissau
Alpha2 code: GW
Alpha3 code: GNB
626
Timor-Leste
Alpha2 code: TL
Alpha3 code: TLS
630
Puerto Rico
Alpha2 code: PR
Alpha3 code: PRI
634
Qatar
Alpha2 code: QA
Alpha3 code: QAT
638
Réunion
Alpha2 code: RE
Alpha3 code: REU
642
Romania
Alpha2 code: RO
Alpha3 code: ROU
643
Russian Federation (the)
Alpha2 code: RU
Alpha3 code: RUS
646
Rwanda
Alpha2 code: RW
Alpha3 code: RWA
652
Saint Barthélemy
Alpha2 code: BL
Alpha3 code: BLM
654
Saint Helena, Ascension and Tristan da Cunha
Alpha2 code: SH
Alpha3 code: SHN
659
Saint Kitts and Nevis
Alpha2 code: KN
Alpha3 code: KNA
660
Anguilla
Alpha2 code: AI
Alpha3 code: AIA
662
Saint Lucia
Alpha2 code: LC
Alpha3 code: LCA
663
Saint Martin (French part)
Alpha2 code: MF
Alpha3 code: MAF
666
Saint Pierre and Miquelon
Alpha2 code: PM
Alpha3 code: SPM
670
Saint Vincent and the Grenadines
Alpha2 code: VC
Alpha3 code: VCT
674
San Marino
Alpha2 code: SM
Alpha3 code: SMR
678
Sao Tome and Principe
Alpha2 code: ST
Alpha3 code: STP
682
Saudi Arabia
Alpha2 code: SA
Alpha3 code: SAU
686
Senegal
Alpha2 code: SN
Alpha3 code: SEN
688
Serbia
Alpha2 code: RS
Alpha3 code: SRB
690
Seychelles
Alpha2 code: SC
Alpha3 code: SYC
694
Sierra Leone
Alpha2 code: SL
Alpha3 code: SLE
702
Singapore
Alpha2 code: SG
Alpha3 code: SGP
703
Slovakia
Alpha2 code: SK
Alpha3 code: SVK
704
Viet Nam
Alpha2 code: VN
Alpha3 code: VNM
705
Slovenia
Alpha2 code: SI
Alpha3 code: SVN
706
Somalia
Alpha2 code: SO
Alpha3 code: SOM
710
South Africa
Alpha2 code: ZA
Alpha3 code: ZAF
716
Zimbabwe
Alpha2 code: ZW
Alpha3 code: ZWE
724
Spain
Alpha2 code: ES
Alpha3 code: ESP
728
South Sudan
Alpha2 code: SS
Alpha3 code: SSD
729
Sudan (the)
Alpha2 code: SD
Alpha3 code: SDN
732
Western Sahara
Alpha2 code: EH
Alpha3 code: ESH
740
Suriname
Alpha2 code: SR
Alpha3 code: SUR
744
Svalbard and Jan Mayen
Alpha2 code: SJ
Alpha3 code: SJM
748
Swaziland
Alpha2 code: SZ
Alpha3 code: SWZ
752
Sweden
Alpha2 code: SE
Alpha3 code: SWE
756
Switzerland
Alpha2 code: CH
Alpha3 code: CHE
760
Syrian Arab Republic (the)
Alpha2 code: SY
Alpha3 code: SYR
762
Tajikistan
Alpha2 code: TJ
Alpha3 code: TJK
764
Thailand
Alpha2 code: TH
Alpha3 code: THA
768
Togo
Alpha2 code: TG
Alpha3 code: TGO
772
Tokelau
Alpha2 code: TK
Alpha3 code: TKL
776
Tonga
Alpha2 code: TO
Alpha3 code: TON
780
Trinidad and Tobago
Alpha2 code: TT
Alpha3 code: TTO
784
United Arab Emirates (the)
Alpha2 code: AE
Alpha3 code: ARE
788
Tunisia
Alpha2 code: TN
Alpha3 code: TUN
792
Turkey
Alpha2 code: TR
Alpha3 code: TUR
795
Turkmenistan
Alpha2 code: TM
Alpha3 code: TKM
796
Turks and Caicos Islands (the)
Alpha2 code: TC
Alpha3 code: TCA
798
Tuvalu
Alpha2 code: TV
Alpha3 code: TUV
800
Uganda
Alpha2 code: UG
Alpha3 code: UGA
804
Ukraine
Alpha2 code: UA
Alpha3 code: UKR
807
Macedonia (the former Yugoslav Republic of)
Alpha2 code: MK
Alpha3 code: MKD
818
Egypt
Alpha2 code: EG
Alpha3 code: EGY
826
United Kingdom (the)
Alpha2 code: GB
Alpha3 code: GBR
831
Guernsey
Alpha2 code: GG
Alpha3 code: GGY
832
Jersey
Alpha2 code: JE
Alpha3 code: JEY
833
Isle of Man
Alpha2 code: IM
Alpha3 code: IMN
834
Tanzania, United Republic of
Alpha2 code: TZ
Alpha3 code: TZA
840
United States (the)
Alpha2 code: US
Alpha3 code: USA
850
Virgin Islands (U.S.)
Alpha2 code: VI
Alpha3 code: VIR
854
Burkina Faso
Alpha2 code: BF
Alpha3 code: BFA
858
Uruguay
Alpha2 code: UY
Alpha3 code: URY
860
Uzbekistan
Alpha2 code: UZ
Alpha3 code: UZB
862
Venezuela, Bolivarian Republic of
Alpha2 code: VE
Alpha3 code: VEN
876
Wallis and Futuna
Alpha2 code: WF
Alpha3 code: WLF
882
Samoa
Alpha2 code: WS
Alpha3 code: WSM
887
Yemen
Alpha2 code: YE
Alpha3 code: YEM
894
Zambia  
Alpha2 code: ZM
Alpha3 code: ZMB

Transfer purpose codes

ACCT : AccountManagement
ADCS : AdvisoryDonationCopyrightServices
ADMG : AdministrativeManagement
ADVA : AdvancePayment
AEMP : ActiveEmploymentPolicy
AGRT : AgriculturalTransfer
AIRB : Air
ALLW : Allowance
ALMY : AlimonyPayment
AMEX : Amex
ANNI : Annuity
ANTS : AnesthesiaServices
AREN : AccountsReceivablesEntry
AUCO : AuthenticatedCollections
B112 : TrailerFeePayment
BBSC : BabyBonusScheme
BCDM : BearerChequeDomestic
BCFG : BearerChequeForeign
BECH : ChildBenefit
BENE : UnemploymentDisabilityBenefit
BEXP : BusinessExpenses
BFWD : BondForward
BKDF : BankLoanDelayedDrawFunding
BKFE : BankLoanFees
BKFM : BankLoanFundingMemo
BKIP : BankLoanAccruedInterestPayment
BKPP : BankLoanPrincipalPaydown
BLDM : BuildingMaintenance
BNET : BondForwardNetting
BOCE : BackOfficeConversionEntry
BOND : Bonds
BONU : BonusPayment.
BR12 : TrailerFeeRebate
BUSB : Bus
CABD : CorporateActions-Bonds
CAEQ : CorporateActions-Equities
CAFI : CustodianManagementFeeInhouse
CASH : CashManagementTransfer
CBCR : CreditCard
CBFF : CapitalBuilding
CBFR : CapitalBuildingRetirement
CBLK : CardBulkClearing
CBTV : CableTVBill
CCHD : CashCompensationHelplessnessDisability
CCIR : CrossCurrencyIRS
CCPC : CCPClearedInitialMargin
CCPM : CCPClearedVariationMargin
CCRD : CreditCardPayment
CCSM : CCPClearedInitialMarginSegregatedCash
CDBL : CreditCardBill
CDCB : CardPaymentWithCashBack
CDCD : CashDisbursementCashSettlement
CDCS : CashDisbursementWithSurcharging
CDDP : CardDeferredPayment
CDEP : CreditDefaultEventPayment
CDOC : OriginalCredit
CDQC : QuasiCash
CFDI : CapitalFallingDueInhouse
CFEE : CancellationFee
CGDD : CardGeneratedDirectDebit
CHAR : CharityPayment
CLPR : CarLoanPrincipalRepayment
CMDT : CommodityTransfer
COLL : CollectionPayment
COMC : CommercialPayment
COMM : Commission
COMP : CompensationPayment
COMT : ConsumerThirdPartyConsolidatedPayment
CORT : TradeSettlementPayment
COST : Costs
CPEN : CashPenalties
CPKC : CarparkCharges
CPYR : Copyright
CRDS : CreditDefaultSwap
CRPR : CrossProduct
CRSP : CreditSupport
CRTL : CreditLine
CSDB : CashDisbursementCashManagement
CSLP : CompanySocialLoanPaymentToBank
CVCF : ConvalescentCareFacility
DBCR : DebitCard
DBTC : DebitCollectionPayment
DCRD : DebitCardPayment
DEBT : ChargesBorneByDebtor
DEPD : DependentSupportPayment
DEPT : Deposit
DERI : Derivatives
DICL : Diners
DIVD : Dividend
DMEQ : DurableMedicaleEquipment
DNTS : DentalServices
DSMT : PrintedOrderDisbursement
DVPM : DeliverAgainstPayment
ECPG : GuaranteedEPayment
ECPR : EPaymentReturn
ECPU : NonGuaranteedEPayment
EDUC : Education
EFTC : LowValueCredit
EFTD : LowValueDebit
ELEC : ElectricityBill
ENRG : Energies
EPAY : Epayment
EQPT : EquityOption
EQTS : Equities
EQUS : EquitySwap
ESTX : EstateTax
ETUP : EPurseTopUp
EXPT : ExoticOption
EXTD : ExchangeTradedDerivatives
FACT : FactorUpdateRelatedPayment
FAND : FinancialAidInCaseOfNaturalDisaster
FCOL : FeeCollection
FCPM : LatePaymentOfFeesAndCharges
FEES : PaymentOfFees
FERB : Ferry
FIXI : FixedIncome
FLCR : FleetCard
FNET : FuturesNettingPayment
FORW : ForwardForeignExchange
FREX : ForeignExchange
FUTR : Futures
FWBC : ForwardBrokerOwnedCashCollateral
FWCC : ForwardClientOwnedCashCollateral
FWLV : ForeignWorkerLevy
FWSB : ForwardBrokerOwnedCashCollateralSegregated
FWSC : ForwardClientOwnedSegregatedCashCollateral
FXNT : ForeignExchangeRelatedNetting
GAFA : GovernmentFamilyAllowance
GAHO : GovernmentHousingAllowance
GAMB : GamblingOrWageringPayment
GASB : GasBill
GDDS : PurchaseSaleOfGoods
GDSV : PurchaseSaleOfGoodsAndServices
GFRP : GuaranteeFundRightsPayment
GIFT : Gift
GOVI : GovernmentInsurance
GOVT : GovernmentPayment
GSCB : PurchaseSaleOfGoodsAndServicesWithCashBack
GSTX : GoodsServicesTax
GVEA : AustrianGovernmentEmployeesCategoryA
GVEB : AustrianGovernmentEmployeesCategoryB
GVEC : AustrianGovernmentEmployeesCategoryC
GVED : AustrianGovernmentEmployeesCategoryD
GWLT : GovermentWarLegislationTransfer
HEDG : Hedging
HLRP : PropertyLoanRepayment
HLST : PropertyLoanSettlement
HLTC : HomeHealthCare
HLTI : HealthInsurance
HREC : HousingRelatedContribution
HSPC : HospitalCare
HSTX : HousingTax
ICCP : IrrevocableCreditCardPayment
ICRF : IntermediateCareFacility
IDCP : IrrevocableDebitCardPayment
IHRP : InstalmentHirePurchaseAgreement
INPC : InsurancePremiumCar
INPR : InsurancePremiumRefund
INSC : PaymentOfInsuranceClaim
INSM : Installment
INSU : InsurancePremium
INTC : IntraCompanyPayment
INTE : Interest
INTP : IntraPartyPayment
INTX : IncomeTax
INVS : InvestmentAndSecurities
IPAY : InstantPayments
IPCA : InstantPaymentsCancellation
IPDO : InstantPaymentsForDonations
IPEA : InstantPaymentsInECommerceWithoutAddressData
IPEC : InstantPaymentsInECommerceWithAddressData
IPEW : InstantPaymentsInECommerce
IPPS : InstantPaymentsAtPOS
IPRT : InstantPaymentsReturn
IPU2 : InstantPaymentsUnattendedVendingMachineWith2FA
IPUW : InstantPaymentsUnattendedVendingMachineWithout2FA
IVPT : InvoicePayment
LBIN : LendingBuyInNetting
LBRI : LaborInsurance
LCOL : LendingCashCollateralFreeMovement
LFEE : LendingFees
LICF : LicenseFee
LIFI : LifeInsurance
LIMA : LiquidityManagement
LMEQ : LendingEquityMarkedToMarketCashCollateral
LMFI : LendingFixedIncomeMarkedToMarketCashCollateral
LMRK : LendingUnspecifiedTypeOfMarkedToMarketCashCollateral
LOAN : Loan
LOAR : LoanRepayment
LOTT : LotteryPayment
LREB : LendingRebatePayments
LREV : LendingRevenuePayments
LSFL : LendingClaimPayment
LTCF : LongTermCareFacility
MAFC : MedicalAidFundContribution
MARF : MedicalAidRefund
MARG : DailyMarginOnListedDerivatives
MBSB : MBSBrokerOwnedCashCollateral
MBSC : MBSClientOwnedCashCollateral
MCDM : MultiCurrenyChequeDomestic
MCFG : MultiCurrenyChequeForeign
MDCS : MedicalServices
MGCC : FuturesInitialMargin
MGSC : FuturesInitialMarginClientOwnedSegregatedCashCollateral
MOMA : MoneyMarket
MP2B : MobileP2BPayment
MP2P : MobileP2PPayment
MSVC : MultipleServiceTypes
MTUP : MobileTopUp
NETT : Netting
NITX : NetIncomeTax
NOWS : NotOtherwiseSpecified
NWCH : NetworkCharge
NWCM : NetworkCommunication
OCCC : ClientOwnedOCCPledgedCollateral
OCDM : OrderChequeDomestic
OCFG : OrderChequeForeign
OFEE : OpeningFee
OPBC : OTCOptionBrokerOwnedCashCollateral
OPCC : OTCOptionClientOwnedCashCollateral
OPSB : OTCOptionBrokerOwnedSegregatedCashCollateral
OPSC : OTCOptionClientOwnedCashSegregatedCashCollateral
OPTN : FXOption
OTCD : OTCDerivatives
OTHR : Other
OTLC : OtherTelecomRelatedBill
PADD : PreauthorizedDebit
PAYR : Payroll
PCOM : PropertyCompletionPayment
PDEP : PropertyDeposit
PEFC : PensionFundContribution
PENO : PaymentBasedOnEnforcementOrder
PENS : PensionPayment
PHON : TelephoneBill
PLDS : PropertyLoanDisbursement
PLRF : PropertyLoanRefinancing
POPE : PointOfPurchaseEntry
PPTI : PropertyInsurance
PRCP : PricePayment
PRME : PreciousMetal
PTSP : PaymentTerms
PTXP : PropertyTax
RAPI : RapidPaymentInstruction
RCKE : RepresentedCheckEntry
RCPT : ReceiptPayment
RDTX : RoadTax
REBT : Rebate
REFU : Refund
RELG : RentalLeaseGeneral
RENT : Rent
REOD : AccountOverdraftRepayment
REPO : RepurchaseAgreement
RETL : RetailPayment
RHBS : RehabilitationSupport
RIMB : ReimbursementOfAPreviousErroneousTransaction
RINP : RecurringInstallmentPayment
RLWY : Railway
ROYA : Royalties
RPBC : BilateralRepoBrokerOwnedCollateral
RPCC : RepoClientOwnedCollateral
RPNT : BilateralRepoInternetNetting
RPSB : BilateralRepoBrokerOwnedSegregatedCashCollateral
RPSC : BilateralRepoClientOwnedSegregatedCashCollateral
RRBN : RoundRobin
RRCT : ReimbursementReceivedCreditTransfer
RRTP : RelatedRequestToPay
RVPM : ReceiveAgainstPayment
RVPO : ReverseRepurchaseAgreement
SALA : SalaryPayment
SASW : ATM
SAVG : Savings
SBSC : SecuritiesBuySellSellBuyBack
SCIE : SingleCurrencyIRSExotic
SCIR : SingleCurrencyIRS
SCRP : SecuritiesCrossProducts
SCVE : PurchaseSaleOfServices
SECU : Securities
SEPI : SecuritiesPurchaseInhouse
SERV : ServiceCharges
SHBC : BrokerOwnedCollateralShortSale
SHCC : ClientOwnedCollateralShortSale
SHSL : ShortSell
SLEB : SecuritiesLendingAndBorrowing
SLOA : SecuredLoan
SLPI : PaymentSlipInstruction
SPLT : SplitPayments
SPSP : SalaryPensionSumPayment
SSBE : SocialSecurityBenefit
STDY : Study
SUBS : Subscription
SUPP : SupplierPayment
SWBC : SwapBrokerOwnedCashCollateral
SWCC : SwapClientOwnedCashCollateral
SWFP : SwapContractFinalPayment
SWPP : SwapContractPartialPayment
SWPT : Swaption
SWRS : SwapContractResetPayment
SWSB : SwapsBrokerOwnedSegregatedCashCollateral
SWSC : SwapsClientOwnedSegregatedCashCollateral
SWUF : SwapContractUpfrontPayment
TAXR : TaxRefund
TAXS : TaxPayment
TBAN : TBAPairOffNetting
TBAS : ToBeAnnounced
TBBC : TBABrokerOwnedCashCollateral
TBCC : TBAClientOwnedCashCollateral
TBIL : TelecommunicationsBill
TCSC : TownCouncilServiceCharges
TELI : TelephoneInitiatedTransaction
TLRF : NonUSMutualFundTrailerFeePayment
TLRR : NonUSMutualFundTrailerFeeRebatePayment
TMPG : TMPGClaimPayment
TPRI : TriPartyRepoInterest
TPRP : TriPartyRepoNetting
TRAD : Commercial
TRCP : TreasuryCrossProduct
TREA : TreasuryPayment
TRFD : TrustFund
TRNC : TruncatedPaymentSlip
TRPT : RoadPricing
TRVC : TravellerCheque
UBIL : Utilities
UNIT : UnitTrustPurchase
VATX : ValueAddedTaxPayment
VIEW : VisionCare
WEBI : InternetInitiatedTransaction
WHLD : WithHolding
WTER : WaterBill

SDD purpose codes

The categoryPurposeCode(1) and purposeCode(2) used in the SDDTransaction.

SALA(1) (2)Salary Payment
TREA(1) (2)Treasury Payment
ADVA(2)Advance Payment
AGRT(2)Agricultural Transfer
ALMY(2)Alimony Payment
BECH(2)Child Benefit
BENE(2)Unemployment Disability Benefit
BONU(2)Bonus Payment
CASH(1) (2)Cash Management Transfer
CBFF(2)Capital Building
CHAR(2)Charity Payment
COLL(2)Collection Payment
CMDT(2)Commodity Transfer
COMC(2)Commercial Payment
COMM(2)Commission
COST(2)Costs
CPYR(2)Copyright
DIVI(1) (2)Dividend
FREX(2)Foreign Exchange
GDDS(2)Purchase Sale Of Goods
GOVT(1) (2)Gouvernment Payment
IHRP(2)Instalment Hire Purchase Agreement
INTC(1) (2)Intra Company Payment
INSU(2)Insurance Premium
INTE(1) (2)Interest
LIFC(2)Licence Fee
LOAN(1) (2)Loan
LOAR(2)Loan Repayment
NETT(2)Netting
PAYR(2)Payment Roll
PENS(1) (2)Pension
REFU (2)Refund
RENT(2)Rent
ROYA(2)Royalties
SCVE(2)Purchase Sale Of Services
SECU(1) (2)Securities
SSBE(1) (2)Social Security Benefit
SUBS(2)Subscription
TAXS(1) (2)Tax Payment
COMT(2)Consumer Third Party Consolidated Payment
DBTC(2)Debit Collection Payment
SUPP(1) (2)Supplier Payment
HEDG(1) (2)Hedging
MSVC(2)Multiple Service Types
NOWS(2)Not Otherwise Specified
CARD(2)Card Payment
CDBL(2)Credit Card Bill
FERB(2)Ferry
AIRB(2)Air
BUSB(2)Bus
RLWY(2)Railway
CVCF(2)Convalescent Care Facility
DNTS(2)Dental Services
ANTS(2)Anesthesia Services
HLTC(2)Home Health Care
HSPC(2)Hospital Care
ICRF(2)Intermediate Care Facility
LTCF(2)Long Term Care Facility
MDCS(2)Medical Services
VIEW(2)Vision Care
DMEQ(2)Durable Medicale Equipment
CBTV(2)Cable TV Bill
ELEC(2)Electricity Bill
GASB(2)Gas Bill
PHON(2)Telephone Bill
OTLC(2)Other Telecom Related Bill
WTER(2)Water Bill
STDY(2)Study
PRCP(2)Price Payment
INSM(2)Installment
RINP(2)Recurring Installment Payment
OFEE(2)Opening Fee
CFEE(2)Cancellation Fee
GOVI(2)Government Insurance
INPC(2)Insurance Premium Car
LBRI(2)Labor Insurance
LIFI(2)Life Insurance
PPTI(2)Property Insurance
HLTI(2)Health Insurance
CLPR(2)Car Loan Principal Repayment
ESTX(2)Estate Tax
HLRP(2)Housing Loan Repayment
CSLP(2)Company Social Loan Payment To Bank
HSTX(2)Housing Tax
INTX(2)Income Tax
NITX(2)Net Income Tax
NWCH(2)Network Charge
NWCM(2)Network Communication
BEXP(2)Business Expenses
TRFD(2)Trust Fund
RCPT(2)Receipt
PTSP(2)Payment Terms
OTHR(2)Other
WHLD(1)(2)With Holding
CORT(1)Trade Settlement Payment
VATX(1)Value Added Tax Payment
TRAD(1)Trade

Error codes

ErrorDetails ATTRIBUTES
errorCodeCode 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 values
101MESSAGE_RECEIVED_INVALID
102MESSAGE_VERSION_NUMBER_NOT_SUPPORTED
103SENT_MESSAGES_LIMIT_EXCEEDED
201REQUIRED_ELEMENT_MISSING
202CRITICAL_MESSAGE_EXTENSION_NOT_RECOGNIZED
203FORMAT_ON_ONE_OR_MORE_ELEMENTS_INVALID_ACCORDING_SPECS
204DUPLICATE_DATA_ELEMENT
301TRANSACTION_ID_NOT_RECOGNIZED
302DATA_DECRYPTION_FAILURE
303ACCESS_DENIED_INVALID_ENDPOINT
304ISO_CODE_NOT_VALID
305TRANSACTION_DATA_NOT_VALID
306MCC_NOT_VALID_FOR_PAYMENT_SYSTEM
307SERIAL_NUMBER_NOT_VALID
402TRANSACTION_TIMED_OUT
403TRANSIENT_SYSTEM_FAILURE
404PERMANENT_SYSTEM_FAILURE
405SYSTEM_CONNECTION_FAILURE
911DATA_FIELDS_RELEVANCE_CHECK_FAILURE
912DUPLICATED_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:

DE91100000000123456789AXABFRPP
AZ96AZEJ00000000001234567890AXABFRPP
CY21002001950000357001234567AXABFRPP
ES7921000813610123456789AXABFRPP
FR7630006000011234567890189AXABFRPP
FO9264600123456789AXABFRPP
FR7630002032531234567890168CRLYFRPPXXX

Test cards Values

This page provides a list of test card PANs you can use to validate your CentralPay integration. Each PAN below triggers a predictable scenario (bank refusal, 3DS authentication outcome, or card attributes such as EEA / region / product type).

Note: 3DS outcome values (transStatus such as Y, C, D, I, N…) are described in the dedicated 3DS 2.2 BRW documentation.

Card details to use: for all test PANs on this page, the expiry date and CVC values are free. The only requirement is that the expiry date must be later than today’s date. The CVC must be 3 digits (for example: 123).

Legend: ✅ Success · ❌ Bank refusal · 🛡️ 3DS · 🔒 3DS Challenge · 🔁 3DS Decoupled · ℹ️ 3DS Info · 🧾 Non-3DS · 🧭 Attributes

Quick test cards (most common scenarios)

PANScenarioWhat you should observe
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)Authorization succeeds with a successful 3DS authentication.
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)Challenge flow expected (you must complete the challenge step to proceed).
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowDecoupled authentication scenario (handling depends on your 3DS implementation).
4556 1041 6038 2032✅🧾 Non-3DS success (Authentication = N)Authorization succeeds without 3DS.
4000 0000 0000 0077❌ Bank refusal – Insufficient funds (51)Authorization is refused with bank return code 51 (Insufficient funds).
4000 0000 0000 0085❌ Bank refusal – Do not honor (5)Authorization is refused with bank return code 5 (Do not honor / refused).

Bank refusal PANs: if a PAN is described as “for no-3DS, 3DS1.0 and 3DS2.0”, it means the authorization will be refused regardless of the authentication flow.

Visa Card numbers

1) Bank refusals (no-3DS / 3DS1.0 / 3DS2.0)

PANScenarioDescription
4000 0000 0000 0051❌ Card lost (41)This PAN simulates a bank refusal with return code 41 (Card lost), regardless of the authentication flow.
4000 0000 0000 0069❌ Fraud suspicion (59)This PAN simulates a bank refusal with return code 59 (Fraud suspicion), regardless of the authentication flow.
4000 0000 0000 0077❌ Insufficient funds (51)This PAN simulates a bank refusal with return code 51 (Insufficient funds), regardless of the authentication flow.
4000 0000 0000 0085❌ Do not honor / refused (5)This PAN simulates a bank refusal with return code 5 (Do not honor / refused), regardless of the authentication flow.

2) 3DS / Non-3DS scenarios

These PANs are designed to reproduce specific 3DS outcomes (transStatus) or a non-3DS path. If transStatus = C, a challenge flow is expected and must be completed.

PANScenarioDescription
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
4234 6319 8242 8908ℹ️🛡️ 3DS information only (transStatus = I)This PAN simulates a 3DS authentication with transStatus = I (Information only), to validate how you handle an informational 3DS outcome.
4234 6319 8242 8916🔁🛡️ 3DS decoupled (transStatus = D) – application flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using an application flow.
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using a browser flow.
4556 1041 6038 2032✅🧾 Non-3DS success (Authentication = N)This PAN simulates a successful authorization without 3DS (non-3DS flow). Authentication value returned is N.
4024 0071 7987 2394🧾 Non-3DS transaction (Authentication = N)This PAN simulates a non-3DS transaction (authentication = N) to validate your non-3DS payment path.

3) Card attributes simulation (EEA / region / productType / cardType)

These PANs are designed to simulate card metadata (EEA / region / productType / cardType). Use them to validate your business rules, reporting, segmentation, or routing logic based on card attributes.

PANAttributes returnedDescription
4032 0389 8296 2700🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=DEBITThis PAN simulates an EEA consumer debit card in Europe.
4032 0343 8883 4767🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=CREDITThis PAN simulates an EEA consumer credit card in Europe.
4020 0280 0191 2012🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates an EEA consumer card in Europe with cardType=UNKNOWN.
4032 0337 9569 2248🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
4032 0368 1354 0364🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=CREDITThis PAN simulates an EEA corporate credit card in Europe.
4032 0387 5662 0096🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates an EEA corporate card in Europe with cardType=UNKNOWN.
4032 0358 5604 7592🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=DEBITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and DEBIT.
4032 0302 9068 3219🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=CREDITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and CREDIT.
4032 0377 5134 3001🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates an EEA card in Europe with productType=UNKNOWN and cardType=UNKNOWN.
4032 0307 5488 6225🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in USA/CANADA.
4032 0310 2547 6341🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in USA/CANADA.
4032 0341 4311 3978🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates a non-EEA consumer card in USA/CANADA with cardType=UNKNOWN.
4032 0309 5816 7398🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in USA/CANADA.
4032 0375 4480 7536🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=CREDITThis PAN simulates a non-EEA corporate credit card in USA/CANADA.
4032 0366 9148 7225🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates a non-EEA corporate card in USA/CANADA with cardType=UNKNOWN.
4032 0325 8917 3860🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=DEBITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and DEBIT.
4032 0388 0897 9557🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=CREDITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and CREDIT.
4032 0374 2147 1240🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and cardType=UNKNOWN.

Mastercard Card numbers

1) 3DS / Non-3DS scenarios

PANScenarioDescription
5333 2591 5564 3223✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
5306 8899 4283 3340🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
5328 7203 8458 2224✅🧾 Non-3DS success (Authentication = N)This PAN simulates a successful authorization without 3DS (non-3DS flow). Authentication value returned is N.
5187 4346 4359 3002✅🧾 Non-3DS success (Authentication = N)This PAN simulates a successful authorization without 3DS (non-3DS flow). Authentication value returned is N.

2) Card attributes simulation (EEA / region / productType / cardType)

PANAttributes returnedDescription
5517 4500 0000 0168🧭 EEA=false ; region=US ; productType=CONSUMER ; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in the US.
5223 8599 0000 0174🧭 EEA=false ; region=US ; productType=CORPORATE ; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in the US.
5325 0900 0000 0115🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5325 0900 0000 0008🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5486 7467 7300 0005🧭 EEA=false ; region=EUROPE ; productType=CONSUMER ; cardType=DEBIT; Country=RUSThis PAN simulates a non-EEA consumer debit card with Country=RUS.
5588 1000 0000 0007🧭 EEA=false ; region=CEMEA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in CEMEA.
5122 9400 0000 0009🧭 EEA=false ; region=LATIN_AMERICA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in LATIN_AMERICA.

Amex Card numbers

1) 3DS / Non-3DS scenarios

PANScenarioDescription
3415 0209 8634 895✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
3486 3826 7931 507🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
3456 9539 9207 589✅🧾 Non-3DS success (Authentication = N)This PAN simulates a successful authorization without 3DS (non-3DS flow). Authentication value returned is N.

2) Card attributes simulation (EEA / region / productType)

PANAttributes returnedDescription
3415 0209 8634 895🧭 EEA=false ; region=EUROPE ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in Europe.
3486 3826 7931 507🧭 EEA=false ; region=EUROPE ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in Europe.
3718 4294 2351 004🧭 EEA=false ; region=EUROPE ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in Europe with productType=UNKNOWN.
3712 5311 3391 201🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in ASIA_PACIFIC.
3423 1631 7472 410🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in ASIA_PACIFIC.
3710 9829 7279 338🧭 EEA=false ; region=ASIA_PACIFIC ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in ASIA_PACIFIC with productType=UNKNOWN.

CB Card numbers

These PANs allow you to test how the card is classified under the CB scheme (CB vs co-badged CB_VISA / CB_MASTERCARD) in your integration and reporting.

PANScenarioDescription
4020 0235 6597 5380✅🧾 Non-3DS success – scheme: CBThis PAN simulates a successful authorization without 3DS on the CB scheme.
4020 0254 4041 8403✅🧾 Non-3DS success – scheme: CB_VISAThis PAN simulates a successful authorization without 3DS on the CB_VISA scheme.
5232 1035 2372 2651✅🧾 Non-3DS success – scheme: CB_MASTERCARDThis PAN simulates a successful authorization without 3DS on the CB_MASTERCARD scheme.

Troubleshooting (what to check)

If you don’t get the expected outcome, start by checking:

  • Bank refusals: verify the returned bank refusal code/message in your transaction response or webhook (e.g., 51, 41, 59, 5).
  • 3DS scenarios: verify the returned transStatus. If C, a challenge flow must be completed; if D, the expected handling depends on your decoupled implementation.
  • Card attributes: verify the returned card metadata (EEA / region / productType / cardType) in the payment method or transaction details.

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.

1. 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 :

1.1 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 profil Marchand CentralPay (Merchant)
  • Du compte de paiement (Wallet)
  • Du profil utilisateur légal du profil Marchand CentralPay (BO User)
ℹ️ Ces entités sont accessibles immédiatement depuis vos outils de supervision (portail ou API).

1.2. 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.

1.3. 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.

2. 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.)

The DEPOSIT object

DEPOSIT_CREATED
When 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_UPDATED
When a deposit is updated

Compte de Monnaie Électronique limité

CentralPay permet la création de comptes de monnaie électronique (Wallets) pour stocker et utiliser des valeurs numériques. Deux parcours complémentaires sont proposés :

  1. Création rapide d’un Wallet sans KYC (compte limité) : accessible immédiatement avec des plafonds réglementaires
  2. 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.

1. 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.

1.1. 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).

1.2. Étape 1 – Créer un Customer

Le Wallet doit être rattaché à un objet Customer représentant l’utilisateur final (voir Profils Clients)

1.3. Étape 2 – Créer un Wallet

  • POST /wallets

Champs obligatoires

ChampTypeDescriptionNote
customerIdUUIDIdentifiant du CustomerRequis sauf si merchantId est fourni
currencystring (3)Devise du Wallet (ex. "EUR")ISO 4217 – format 3 lettres

Champs optionnels

ChampTypeDescription
referencestringRéférence métier
activationDatedateDate d’activation
expirationDatedateDate d’expiration
additionalDataobjectDonnées personnalisées (JSON)

1.4. É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

2. Modifier un Wallet

  • POST /wallets/{walletId}

Ce service permet de mettre à jour certains attributs du Wallet sans le recréer.

Champs obligatoires

ChampTypeDescriptionNote
walletIdUUIDIdentifiant du Wallet à mettre à jourRequis dans l’URL et/ou le corps de requête

Champs optionnels

ChampTypeDescriptionNote
referencestringRéférence personnalisée du Wallet—
expirationDatedateDate d’expiration du WalletYYYY-MM-DD
activationDatedateDate d’activation du WalletYYYY-MM-DD
additionalDataobjectDonnées métier structurées (clé/valeur JSON)—
merchantIdUUIDPour rattacher un Wallet à un Merchant spécifiqueFacultatif – à ne pas confondre avec customerId

3. 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

ChampTypeDescriptionNote
walletIdUUID (36)Identifiant du WalletLe Wallet doit appartenir au Merchant connecté ou à l’un de ses sous-marchands

Description des champs

ChampTypeDescriptionNote
currencystringDevise du WalletISO 4217 (ex. EUR)
available[].amountintSolde disponible en centimesEx. : 10500 = 105,00 €
pending[].amountintSolde en attente (transactions en cours)—
referencestringRéférence du WalletFacultatif
additionalDataobjectDonnées personnaliséesJSON libre

4. 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

ChampTypeDescription
customerIdUUIDIdentifiant du Customer
currencystringDevise (ex. "EUR")

Paramètres optionnels

ChampTypeDescriptionNote
afterstringNe retourner que les Wallets créés après cette dateFormat ISO 8601
beforestringNe retourner que les Wallets créés avant cette dateFormat ISO 8601
limitstringNombre d’éléments par pageDéfaut : 10
pagestringIndex de la pageDéfaut : 1

5. Schéma de création d’un compte de ME limité

The DISPUTE object

DISPUTE_UPDATED
When 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_CREATED
When a dispute is created

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.

1. Étape 1 – Créer un enrôlement

  • POST /merchant-enrollments

Vous devez inclure le walletId du Wallet limité existant.

Champs obligatoires

ChampTypeDescriptionNote
walletIdUUIDLien avec le Wallet ME à déplafonnerUUID valide
profile[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 ans
profile[place_of_birth][value]string (255)Lieu de naissance—
profile[country_of_birth][country]string (3)Pays de naissanceISO 3166-1 alpha-3
languagestring (3)"fr" ou "en"—
accountTypestring"BASIC"—
typestring"INDIVIDUAL"—
activitySectorUUID (36)Secteur d’activitéGET /api/nauth/enrollment-claim/activity-sector
feeScheduleUUID (36)Grille tarifairePOST /api/merchant-enrollment/fee-schedule
turnoverUUID (36)CA annuel attenduPOST /api/nauth/enrollment-claim/turnover
workflowDefinitionUUIDModèle de workflowfournie par CentralPay
profileWorkflowDefinitionUUIDModèle de profilfournie par CentralPay
workflowModestring"SEQUENTIAL"Requis
allowedEmailCommunicationbooleanConsentement à recevoir des emailstrue ou false

Champs facultatifs

ChampTypeDescription
sendClaimEmailbooleanEnvoi 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 interne
technicalContact, administrativeContact, financialContactstring(255)Contacts métiers
addSecurityReferencebooleanAffiche une référence sécurité (pour STANDARD, PARTNER, RESELLER)
hookUUIDHook technique
birthdayConfirmation[value]dateSi affilié à un agent

2. É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

ChampTypeObligatoireDescriptionNote
address[nameLine1]string✅ OuiNuméro et nom de rue—
address[locality]string✅ OuiVille de résidence—
address[postalCode]string✅ OuiCode postal—
address[country]string✅ OuiPays de résidenceISO 3166-1 alpha-3

Document d’identité

ChampTypeObligatoireDescriptionNote
identityDocument[type]string✅ OuiType de documentIDENTITY_CARD, PASSPORT, RESIDENCE_PERMIT, VISA, IDENTITY_DOCUMENT_RECEIPT
identityDocument[documents][0]fichier✅ OuiRecto ou scan principalJPG, JPEG ou PNG
identityDocument[documents][1]fichier✅ Oui, si IDENTITY_CARDVerso ou page complémentaireJPG, JPEG ou PNG
identityDocument[issuingCountry]string✅ OuiPays émetteurISO 3166-1 alpha-3
identityDocument[expiryDate]string❌ NonDate d’expirationFormat YYYY-MM-DD
identityDocument[checkId]string❌ NonID de contrôle (Onfido)—
identityDocument[documentNumber]string❌ NonNuméro du document—
identityDocument[mrzLine1]string❌ NonLigne MRZ 1—
identityDocument[mrzLine2]string❌ NonLigne MRZ 2—

Cas particuliers

ChampObligatoireConditionDescription
identityDocument[proofOfIdentityDocument]✅ Ouisi type = IDENTITY_DOCUMENT_RECEIPTJustificatif visuel du récépissé
identityDocument[proofOfIdentityDocuments][*]✅ OuiidemPlusieurs fichiers si applicable
identityDocument[proofOfIdentityDocumentExpiryDate]✅ Ouisi fichier proofOfIdentityDocument fourniFormat YYYY-MM-DD

Données bancaires (facultatif mais recommandé)

ChampTypeObligatoireDescriptionNote
iban[value]string❌ NonIBAN à vérifierFormat IBAN valide
bic[value]string❌ NonCode BIC/SWIFT—
ibanDocument[document]fichier❌ NonJustificatif bancaire (RIB, relevé)JPG, JPEG ou PNG

Données KYC complémentaires (riskData)

Tous les champs suivants sont requis sauf mention contraire.

ChampTypeObligatoireDescriptionNote
riskData[isPep]bool✅ OuiPersonne politiquement exposée ?défaut : false
riskData[isInSanctionList]bool✅ OuiAppartient à une liste de sanctions ?défaut : false
riskData[residentAlpha3Code]string✅ OuiPays de résidenceISO 3166-1 alpha-3
riskData[isHighRiskResident]bool✅ OuiPays de résidence à risque ?—
riskData[nationalityAlpha3Code]string✅ OuiNationalitéISO 3166-1 alpha-3
riskData[isHighRiskNationality]bool✅ OuiNationalité à risque ?—
riskData[isHighRiskMCCActivitySector]bool✅ OuiSecteur MCC à risque ?—
riskData[MCCActivitySector]int✅ OuiCode MCC (NAF ou secteur)—
riskData[monthlyLimit]int✅ OuiLimite mensuelle déclarée (en centimes)Ex. 150000 = 1500,00 €
riskData[monthlyLimitCurrencyAlphabeticCode]string✅ OuiDevise (ex. EUR)ISO 4217
riskData[isCrossBorderPayment]bool❌ NonPaiements transfrontaliers ?Défaut : true
riskData[declaredMonthlyRevenue]int❌ NonRevenus déclarés (en centimes)—
riskData[verifiedMonthlyRevenue]int✅ Oui, si full KYCRevenus vérifiés—

Documents complémentaires (si requis)

ChampTypeObligatoireDescriptionNote
proofOfAddressDocument[documents][0]fichier✅ Oui, si profil à risqueJustificatif de domicileJPG, JPEG ou PNG
incomeDocument[document]fichier✅ Oui, si full KYC requisJustificatif de revenus (1 doc)JPG, JPEG ou PNG
incomeDocument[documents][*]fichier✅ Oui, si full KYC requisPlusieurs fichiers possiblesJPG, JPEG ou PNG

Autres documents (si nécessaires à la levée de limite)

ChampTypeDescriptionNotes
additionalDocuments[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)

ChampTypeObligatoireDescription
metaDataJSON object✅ OuiMétadonnées libres, au format {"key": "value"} (peut être vide)

3. É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é

ChampTypeObligatoireDescriptionNote
identityDocument[type]string✅ OuiType de document à corrigerIDENTITY_CARD, PASSPORT, RESIDENCE_PERMIT, VISA, IDENTITY_DOCUMENT_RECEIPT
identityDocument[documents][0]fichier✅ OuiRecto du document (ou fichier unique)JPG, JPEG ou PNG
identityDocument[documents][1]fichier✅ Oui, si type = IDENTITY_CARDVerso de la CNIJPG, JPEG ou PNG
identityDocument[issuingCountry]string✅ Oui, si document transmisPays émetteurISO 3166-1 alpha-3

Document d’identité complémentaire (si requis)

ChampTypeObligatoireDescription
complementaryIdentityDocument[documents][0]fichier✅ Oui, si exigéScan ou photo supplémentaire
complementaryIdentityDocument[expiryDate]string✅ OuiDate d’expiration (YYYY-MM-DD)
complementaryIdentityDocument[documentNumber]string✅ OuiNuméro du document
complementaryIdentityDocument[mrzLine1]string✅ OuiMRZ ligne 1
complementaryIdentityDocument[mrzLine2]string✅ OuiMRZ ligne 2
complementaryIdentityDocument[issuingCountry]string✅ OuiPays émetteur (ISO alpha-3)

Documents de revenus

ChampTypeObligatoireDescription
incomeDocument[document]fichier✅ Oui, si requisFichier unique JPG/JPEG/PNG
incomeDocument[documents][*]fichier✅ Oui, si multiples attendusPlusieurs documents par index ([0], [1], etc.)

Compléments d’information personnelle

ChampTypeObligatoireDescription
profile[firstname][value]string❌ NonPrénom
profile[lastname][value]string❌ NonNom
profile[birthday][value]string❌ NonDate de naissance
profile[place_of_birth][value]string❌ NonLieu de naissance
profile[country_of_birth][country]string❌ NonPays de naissance (ISO 3166-1 alpha-3)

Correction d’adresse (si refusée)

ChampTypeObligatoireDescription
profile[address][nameLine1]string❌ NonAdresse – ligne 1
profile[address][postalCode]string❌ NonCode postal
profile[address][country]string❌ NonPays (ISO alpha-3)
profile[address][locality]string❌ NonVille

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.

ChampTypeObligatoireDescriptionNote
riskData[isPep]boolean✅ OuiPEP ?défaut : false
riskData[isInSanctionList]boolean✅ OuiSur une liste de sanctions ?défaut : false
riskData[residentAlpha3Code]string✅ OuiPays de résidenceISO alpha-3
riskData[isHighRiskResident]boolean✅ OuiPays de résidence à risque ?—
riskData[nationalityAlpha3Code]string✅ OuiNationalitéISO alpha-3
riskData[isHighRiskNationality]boolean✅ OuiNationalité à risque ?—
riskData[isHighRiskMCCActivitySector]boolean✅ OuiSecteur à risque ?—
riskData[MCCActivitySector]int✅ OuiCode MCC métier—
riskData[monthlyLimit]int✅ OuiLimite mensuelle (en centimes)[0 ; 190000]
riskData[monthlyLimitCurrencyAlphabeticCode]string✅ OuiDevise (ex. EUR)ISO 4217
riskData[isCrossBorderPayment]boolean❌ NonPaiements transfrontaliersdéfaut : true
riskData[declaredMonthlyRevenue]int❌ NonRevenus déclarés—
riskData[verifiedMonthlyRevenue]int✅ Oui, si full KYCRevenus vérifiés (centimes)

Documents additionnels (optionnels ou exigés)

ChampTypeObligatoireDescription
additionalDocuments[X]['type']string✅ Oui, si documents attendusType du justificatif
additionalDocuments[X]['documents'][X]fichier✅ OuiFichiers associés (JPG, JPEG, PNG)

Autres champs

ChampTypeObligatoireDescription
fullKycboolean❌ NonPermet d’imposer un KYC complet ou simplifié (true / false)

4. É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

ChampTypeObligatoireDescriptionNote
enrolmentIdUUID (36)✅ OuiIdentifiant 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

ChampTypeDescription
uuidUUIDIdentifiant unique de l’enrôlement
workflow.statusstringStatut du processus (ON_GOING, ACCEPTED, REFUSED)
workflow_modestring"SEQUENTIAL" ou "CONTINUAL"
workflow.activities[]tableauListe des activités (étapes) encore à compléter
profile[...]objetDonnées de profil déjà soumises, avec leur statut
conformity_statusstringÉtat de conformité global (ON_GOING, REVIEW, APPROVED, etc.)
created_atdatetimeDate de création de l’enrôlement
activity_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é

5. Schéma de validation KYC d’un compte de ME

The INSTALLMENT object

INSTALLMENTPAYMENT_CREATED
When 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_FAILED
When 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_UPDATED
When 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_CANCELED
When 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_ACTIVATED
When an installment is activated

INSTALLMENTPAYMENT_FAILURE
When an installment failed to be paid

INSTALLMENTPAYMENT_PAID
When 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_UNPAID
When 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_SUCCEEDED
When 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_FAILED
When 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_CREATED
When 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_UPDATED
An 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_DOCUMENTS
Some 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_DOCUMENTS
Some 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_CREATED
The 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_UPDATED
The account has been update. You receive those elements

ONBOARDING_ADDITIONAL_DOCUMENT_REQUESTED
Additionnal 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_UPDATED
Additionnal documents or information have been provided by the account holder in one ongoing onboarding.

ONBOARDING_ENROLLMENT_WORKFLOW_RESET
The 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_RESULT
The 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_CREATED
When an enrollement is created

Retours, statuts et webhooks

1. Codes de retour liés à la création de profil marchand

La création d’un profil 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 profil.

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 ➝

The PAYMENT REQUEST object

PAYMENTREQUEST_CREATED
Happen 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_CANCELED
Happen 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_CLOSED
Happen 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_PAID
Happen 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_FAILED
Happen 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_SUCCEEDED
Happen 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_FAILED
Happen 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_SUCCEEDED
Happen 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_FAILED
Happen 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_SUCCEEDED
Happen 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_SUCCEEDED
Happen 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_SUCCEEDED
Happen 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"
}

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 d’une plateforme
  • Le transfert, permettant le transfert des transactions vers ces comptes de paiement et de monnaie électronique

Selon le modèle de contractualisation 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 marchands participants

Pour connaitre votre modèle de partenariat, veuillez vous rapprocher de votre contact CentralPay.

The PAYOUT object

PAYOUT_CREATED
When 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_UPDATED
When 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_CANCELED
When 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_PAID
When 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_CREATED
When a payout reversal has been created

Transfert indépendant

1. Créer un transfert (Create a Transfer)

La fonction Create a Transfer permet aux marchands mandataires (Agents ou DME) de transférer des fonds entre deux comptes de leurs marchands participants. Ce transfert peut être initié :

  • Par un Agent lorsque les comptes sont des comptes de paiement
  • Par un DME lorsque les comptes sont des comptes de monnaie électronique

1.1. Cas d’usage

Ce mécanisme permet par exemple :

  • À un Agent d’orchestrer des débits et des crédits de fonds entre lui et ses marchands participants, ou vers des comptes destinataires définis
  • À un DME d’opérer des transferts de monnaie électronique entre ses marchands participants (par exemple dans le cadre d’une place de marché C2C)

CentralPay reste en charge de l’exécution effective des opérations, dans le cadre de la relation contractuelle avec les marchands participants.

1.2. Paramètres requis

ChampTypeObligatoireDescription
destinationWalletIdUUID✅ OuiIdentifiant du compte Centralpay destinataire (appartenant à un marchand participant).
amountInteger (en cents)✅ OuiMontant du transfert. Doit être strictement supérieur à 0.
sourceIdUUID✅ Oui, si sourceType est renseignéIdentifiant de la source de fonds (ex. : transaction, virement, crédit, SDD).
sourceTypeEnum✅ Oui, si sourceId est renseignéSource du transfert : TRANSACTION, SCT_TRANSACTION, CREDIT, SDD.

1.3. Paramètres optionnels

ChampTypeDescription
emissionWalletIdUUIDCompte émetteur si différent du compte principal du marchand mandataire.
currencyCode ISODevise du transfert (si différente de celle du compte).
feeIntegerMontant de la commission prélevée par le marchand mandataire, 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 marchand mandataire (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.

1.4. Règles de validation

  • Le destinationWalletId doit correspondre à un compte valide d’un marchand participant du mandataire
  • Le sourceId ne peut être utilisé que si l’objet lié est dans un statut accepté (CAPTURE, CLEARED, etc.)
  • Le montant autorisé dépend du solde disponible ou des fonds liés à la source (transaction, virement, etc.)

2. Fonctions complémentaires liées aux transferts

Les marchands mandataires disposent de plusieurs fonctions de gestion post-création d’un transfert, leur permettant d’ajuster, consulter ou annuler une opération, sous conditions.

2.1. 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 :

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert à modifier.
merchantTransferIdString❌ NonRéférence marchand mandataire.
escrowDateDate ISO❌ NonNouvelle date d’exécution différée.
transferGroupString❌ NonRegroupement de transferts.
descriptionString❌ NonDescription libre (max 256 caractères).
additionalDataKey/Value❌ NonDonnées complémentaires.
metaDataJSON❌ NonMétadonnées structurées.

La modification de la date d’escrow est notamment utile dans les flux conditionnés (ex : marketplace, délais de rétractation…).

2.2. 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 compte.

Paramètres :

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert à annuler.

⚠️ Une fois que les fonds sont disponibles (statut TRANSFERRED), cette fonction n’est plus accessible. Il faudra alors utiliser un TransferReversal.

2.3. Consulter un transfert (Retrieve a Transfer)

Permet d’obtenir l’ensemble des détails d’un transfert via son identifiant CentralPay.

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert.

2.4. Rechercher plusieurs transferts (List Transfers)

Permet de rechercher une liste de transferts selon plusieurs critères. Tous les paramètres sont optionnels.

ParamètreTypeDescription
merchantTransferIdString (100)Référence marchand mandataire.
destinationWalletIdUUIDCompte 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.

3. Retourner un transfert exécuté (Transfer Reversal)

Une fois un transfert exécuté (statut 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 marchands mandataires (Agent pour les comptes de paiement, DME pour les comptes de monnaie électronique), et doit respecter les règles de disponibilité des fonds.

3.1. Conditions d’utilisation

Le transfert initial doit :

  • Être dans le statut TRANSFERRED
  • Avoir des fonds disponibles dans le compte 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 compte destinataire
  • Inférieur ou égal à la somme initialement transférée
  • Diminué des éventuels reversals déjà effectués sur le transfert concerné

3.2. Créer un TransferReversal

Permet de retourner un montant vers le compte émetteur d’origine.

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert d’origine.
amountInteger✅ OuiMontant à rembourser (en centimes).
merchantTransferReversalIdString❌ NonRéférence marchand mandataire pour le suivi.
refundFeeBoolean❌ NonIndique si les frais du transfert initial sont remboursés (par défaut : true).
feeInteger❌ NonMontant des frais associés au reversal.
descriptionString❌ NonTexte libre explicatif (max. 256 caractères).
escrowDateDate ISO❌ NonDate d’exécution différée si applicable.
additionalDataKey/Value❌ NonPaires 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 compte source.

Règles importantes :

  • L’opération est visible dans les mouvements du compte (débit du compte destinataire, crédit du compte 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é)

4. 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.

4.1. Modifier un TransferReversal (Update)

Permet de modifier certaines informations sur un TransferReversal déjà créé.

ChampTypeObligatoireDescription
transferReversalIdUUID✅ OuiIdentifiant du TransferReversal à modifier
merchantTransferReversalIdString❌ NonRéférence marchand mandataire pour le suivi
descriptionString❌ NonTexte explicatif libre (256 caractères max)
escrowDateDate (ISO)❌ NonNouvelle date différée d’exécution, si applicable
additionalDataKey/Value❌ NonPaires clé/valeur pour usage métier spécifique

Cette fonction est accessible uniquement au niveau PARTNER ou supérieur.

4.2. Consulter un TransferReversal (Retrieve)

Permet de consulter les détails d’un TransferReversal à partir de son identifiant.

ChampTypeObligatoireDescription
transferReversalIdUUID✅ OuiIdentifiant du TransferReversal à consulter

L’objet retourné contient l’intégralité des informations métier, y compris : montant, date, statut, compte concerné, et historique de l’opération.

4.3. Rechercher des TransferReversals (List)

Permet d’interroger l’historique des TransferReversal selon plusieurs critères.

ParamètreTypeObligatoireDescription
merchantTransferReversalIdString❌ NonRéférence marchand mandataire
afterDate ISO❌ NonRetourne les éléments créés après cette date
beforeDate ISO❌ NonRetourne les éléments créés avant cette date
limitInteger❌ NonNombre d’éléments à retourner (par défaut : 10)
pageInteger❌ NonIndex 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.

The REFUND object

REFUND_CREATED
When 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_CANCELED
When 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_UPDATED
When a refund is updated

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.

1. 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

2. Paramétrer un transfert dans une transaction

Dans les quatre 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 :

ChampTypeObligatoireDescription
destinationWalletIdUUID✅ OuiCompte CentralPay bénéficiaire. Doit appartenir à un marchand participant autorisé.
amountInteger✅ OuiMontant du transfert en centimes.
currencyString❌ NonDevise du transfert (si différente de la devise de la transaction).
merchantTransferIdString❌ NonRéférence partenaire.
feeInteger❌ NonFrais applicables (prélevés sur le montant brut).
escrowDateDate ISO❌ NonDate différée d’exécution (si applicable).
transferGroupString❌ NonIdentifiant de groupe pour les suivis agrégés.
descriptionString❌ NonLibellé du transfert visible sur les relevés.
additionalDataKV pairs❌ NonDonné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é.

The SCT Transaction object

SCT_TRANSACTION_CREATED
When 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_UPDATED
When 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_RECEIVED
When 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_CANCELED
When 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_CREATED
When 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_RECEIVED
When 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_CANCELED
When a sct transaction refund is cancelled

SCT_TRANSACTION_REFUNDED_RECEIVED,
When a sct transaction refund is received

SCT_TRANSACTION_REFUNDED
When a sct transaction reversal is created

Versement sortant pour tiers

Le versement sortant 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 participant, en tant que mandataire CentralPay (Agent ou DME). Les partenaires (technique ou intégrateur) n’ont pas accès à cette fonction.

1. Objectif et périmètre

Ce service permet de :

  • Déclencher des versements manuels ou automatisés pour des marchands participants
  • Cibler un compte bancaire autorisé par le marchand participant
  • Utiliser un compte CentralPay comme source des fonds

Le partenaire régulé reste à l’initiative technique du versement, 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

2.1. L’API CentralPay

Endpoint : /payout/byThirdParty
➡️ Voir détails ci-dessous.

2.2. Le Portail Marchand CentralPay

Accessible pour les comptes disposant des droits adéquats (Agent ou DME).

  1. Accéder à Comptes liés
  2. Sélectionner le marchand concerné
  3. Accéder à l’onglet Comptes bancaires
  4. 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 marchand participant.

3.1. Limites d’usage

  • 1 versement / jour / marchand participant / devise
  • Compte bancaire cible validé par le marchand participant
  • Versement uniquement sur fonds disponibles

3.2. Paramètres API (BODY)

ParamètreTypeRequisDescription
currencyISO 4217✅ OuiDevise du versement (doit correspondre au compte bancaire).
destinationBankAccountIdUUID✅ OuiCompte bancaire bénéficiaire (lié au marchand 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 versements

4.1. Récupérer un payout

Endpoint : /payout/byThirdParty/retrieve
Paramètre : payoutId (UUID)

4.2. Lister les payouts

Endpoint : /payout/byThirdParty/list
Paramètre : walletId (UUID)

4.3. Statuts possibles :

StatutSignification
PENDINGVersement en cours de traitement
PAIDVersement exécuté avec succès
CANCELVersement 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 versements
  • 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 versement ou d’exiger des documents justificatifs en cas de doute sur l’opération

The SDD TRANSACTION object

SDDTRANSACTION_CREATED
When 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_CLEARED
When 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_VALIDATED
When 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_CANCELED
When 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_RENEWOTP
When 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_CREATED
When a SDD Transaction reversal is created

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 CentralPay pour WooCommerce (WordPress).

ℹ️ La plateforme CentralPay prend en charge différents moyens (carte, virement et prélèvement SEPA, initiation de paiement) et modes de paiement (paiement en une fois, abonnement, en plusieurs fois, etc.). Ce plugin permet uniquement l'encaissement de transactions cartes unitaires. 

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

  • Pour WooCommerce ➝ Télécharger l’archive ZIP du plugin CentralPay

⚠️ Veillez à ne pas la décompresser manuellement.

2. Installation sur WordPress

  1. Connectez-vous à votre interface d’administration WordPress
  2. Allez dans Extensions > Ajouter
  3. Cliquez sur Téléverser une extension
  4. Sélectionnez le fichier centralpay220.zip et cliquez sur Installer maintenant
  5. Une fois l’installation terminée, cliquez sur Activer l’extension

3. Configuration du module

  1. Allez dans WooCommerce > Réglages > Paiements
  2. Cliquez sur CentralPay pour accéder à la configuration
  3. Renseignez les champs suivants puis cliquez sur Enregistrer les modifications :
ChampDescriptionAccès à la donnée
Identifiant marchandIl s’agit de votre Merchant Public Key. Ne pas confondre avec le Merchant UUID.Portail Marchand CentralPay > Administration > Technique > Copier « Merchant Public Key »
Login APIIdentifiant de votre utilisateur API CentralPayPortail Marchand CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »
Mot de passe APIMot de passe de votre utilisateur API CentralPayPortail Marchand 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 Marchand 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 profil marchand CentralPay de test)./
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 :

  1. Accédez à :
    Production : https://backoffice.centralpay.net/admin/hook/
    Test : https://test-backoffice.centralpay.net/admin/hook/
  2. 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.)
  3. 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 profil marchand de production.

5. Personnalisation du logo

Vous pouvez également personnaliser l’interface de paiement en ajoutant le logo de votre site via le Backoffice :

  1. Accédez à : https://backoffice.centralpay.net/admin/point_of_sale/
  2. Dans le détail de votre Point de Vente, cliquez sur Modifier
  3. 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 profil marchand CentralPay de test et renseigner les identifiants de ce profil 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.

The MANDATE object

MANDATE_CREATED
When 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_SIGNED
When 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_OBSOLETED
When 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_RENEWOTP
When 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_CREATED
When 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_UPDATED
When 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_CREATED
When 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_FAILED
When 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_UPDATED
When 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_CANCELED
When 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_ACTIVE
When a Subscription is active

SUBSCRIPTION_FAILURE
When 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_UNPAID
When a Subscription is unpaid

SUBSCRIPTION_REACTIVATED
When 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_CREATED
When 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_UPDATED
When 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_DELETED
When 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_CREATED
When 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_UPDATED
When 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_CLOSED
When 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_REOPEN
When 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_SUCCEEDED
When 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_FAILED
When 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"
}

PrestaShop

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

  1. Connectez-vous au back-office Prestashop
  2. Menu Modules > Modules
  3. Cliquez sur « Ajouter un nouveau module »
  4. Chargez l’archive .zip puis cliquez sur « Installer »

Prestashop v1.7

  1. Connectez-vous à l’administration de Prestashop
  2. Menu Modules > Modules Manager > Upload a module
  3. Déposez l’archive .zip ou cliquez pour la charger
  4. 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 Marchand CentralPay > Administration > Technique > Copier « Merchant Public Key »
Login APIIdentifiant de votre utilisateur API CentralPayPortail Marchand CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »
Secret Key (passeword API)Clé secrète API (à ne jamais diffuser)Portail Marchand 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 Marchand 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 :

  1. Il est redirigé vers une page sécurisée (hébergée ou intégrée)
  2. Il saisit ses informations de carte bancaire
  3. Le paiement est autorisé par la banque (3D Secure inclus)
  4. La commande est validée dans Prestashop avec le statut défini
  5. 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 Marchand > Aide & Support
  • Ou directement via support.centralpay.com

The TRANSACTION object

TRANSACTION_SUCCEEDED
When 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_CANCELED
When 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_CAPTURED
When 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_EXPIRED
When 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_UPDATED
When 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_DISPUTED
When 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_FAILED
When 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_FRAUDULENT
When 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_ACCEPTED
When a transaction is refused because entering an acceptance rule

TRANSACTION_REFUNDED
When 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_RISKY
When a transaction is refused because of its risk score exceed the limit

TRANSACTION_THREEDS_AUTH_FAILED
When a transaction is declined because the card holder failed to authenticate himself during the 3DS process

Magento

1. Téléchargement du module

  • Pour Magento ➝ Télécharger le plugin (v1.0)
ℹ️ Ce module est compatible avec Magento 1.7+

2. Installation du plugin

2.1 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)

2.2. 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.

2.3. 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.

3.1. Accéder à la configuration

Dans le menu d’administration Magento, rendez-vous dans : Stores Configuration Sales Payment Methods CentralPay

3.2. Paramètres à renseigner

Champ dans MagentoDescriptionObligatoireAccès à la donnée
Activer CentralPayActive le module dans l’environnement Magento.✅ OuiMagento
TitreNom du moyen de paiement visible côté client.✅ OuiMagento
Identifiant Marchand (merchantLogin)Identifiant d’API fourni par CentralPay.✅ OuiPortail Marchand CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »
Mot de passe API (merchantPassword)Mot de passe API associé à l’identifiant.✅ OuiPortail Marchand 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.✅ OuiPortail Marchand CentralPay > Administration > Technique > Copier « Merchant Public Key »
ID du point de venteIdentifiant unique de votre point de vente (UUID)❌ NonPortail Marchand 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.❌ NonMagento
Mode Test (sandbox)Permet d’utiliser l’environnement de test CentralPay.❌ NonMagento
Commande en attenteStatut Magento utilisé si le paiement est en cours ou en attente (ex. : 3DS).❌ NonMagento
Commande validéeStatut Magento utilisé si le paiement est accepté.❌ NonMagento

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

  1. Le client ajoute ses articles au panier et passe à la caisse
  2. Au moment du paiement, il choisit CentralPay comme méthode de paiement
  3. Il est redirigé vers l’interface de paiement CentralPay sécurisée
  4. Une fois le paiement effectué (ou refusé), il est redirigé vers votre site Magento
  5. 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.

Déclaration TVA par pays

CentralPay n’identifie pas le pays TVA des acheteurs : cette responsabilité incombe au marchand. Pour justifier correctement vos déclarations, collectez le pays de l’acheteur, conservez vos preuves, et transmettez‑les à CentralPay afin qu’elles figurent dans vos exports et historiques de transaction.

Public cible : marchands B2C vendant des biens ou services dans plusieurs pays de l’Union européenne.

1) Principe général

La TVA applicable dépend du pays de résidence de l’acheteur (consommateur final), non du pays du marchand ni du moyen de paiement utilisé.

Le marchand doit donc déterminer, conserver et déclarer le pays de son client afin d’appliquer la bonne TVA. CentralPay n’a ni la légitimité réglementaire ni la fiabilité technique pour déterminer ce pays à sa place.

En clair : vous êtes responsable de collecter et de stocker les informations nécessaires à la détermination du pays TVA.

2) Pourquoi CentralPay ne peut pas déterminer le pays du client

Les indices techniques accessibles à un PSP (carte, IP, etc.) ne permettent pas une identification fiable du pays de l’acheteur :

  • Pays BIN (carte) : peu fiable pour la TVA. Les cartes de banques en ligne sont souvent émises dans un autre pays que celui du détenteur.
  • Pays IP : faussé en cas d’utilisation de VPN, proxy, mobile ou cloud.
  • Payeur ≠ Acheteur : la personne qui paie n’est pas forcément celle soumise à la TVA (ex. carte d’un proche ou d’un employeur).

C’est pourquoi CentralPay ne réalise aucune analyse pour identifier le pays du client. Seul le marchand détient l’information fiscale valide.

3) Ce que vous devez faire en tant que marchand

3.1 Collecter le pays de l’acheteur

  • Intégrez la sélection du pays de facturation dans votre tunnel de commande.
  • Transmettez ces informations à CentralPay via l’API au moment de la transaction.

3.2 Transmettre le pays à CentralPay

Type de donnéeChamp à renseignerDescription
Pays de l’acheteur (obligatoire)Customer > countryCode ISO 3166‑1 alpha‑2 du pays du client.
⚠️ Si vous n’alimentez pas Customer.country, CentralPay ne peut pas afficher ni exporter le pays de vos acheteurs. Vos exports ne permettront donc pas de justifier vos déclarations TVA.

4) Ce que CentralPay fournit dans les exports

CentralPay met à disposition des exports comportant :

ColonneSourceUsage
Customer > countryValeur transmise par le marchand via Customer > countryPreuve déclarative du marchand, à utiliser pour la TVA.
Transaction > end_user_ipIP de l’acheteurIndice technique non probant.
Transaction > card_countryPays de la carte utilisée par l’acheteurIndice technique non probant.
sctTransaction > ibanIBAN de l’acheteur par virement bancaire (contenant le code pays)Indice technique non probant.
bankAccount > ibanIBAN de l’acheteur par prélèvement SEPA (contenant le code pays)Indice technique non probant.

Des exports personnalisés peuvent être mis en place si vous souhaitez inclure d’autres champs ou formats (SFTP, e‑mail…).

5) Bonnes pratiques de conformité TVA

  1. Toujours collecter le pays de facturation côté front (champ obligatoire ou déduit du profil client).
  2. Croiser au moins deux preuves non contradictoires pour chaque commande.
  3. Gérer les divergences : si les indices diffèrent (ex. IP ≠ carte), demandez un justificatif avant de facturer.
  4. Enregistrer les preuves pendant au moins 10 ans (durée légale pour les services numériques UE).
  5. Vous enregistrer à l’OSS/IOSS si vous vendez à des consommateurs dans plusieurs pays de l’UE.
  6. Relier facture, transaction et preuves pour chaque vente.

6) Exemples de cas

SituationDonnées collectéesAction recommandée
Adresse = FR, BIN = FRDeux preuves concordantesFacturez avec TVA FR
Adresse = FR, BIN = DE, IP = DEDivergenceDemandez un justificatif avant facturation
Aucun pays collectéDonnée manquanteNon‑conformité potentielle – corriger votre parcours

7) FAQ

CentralPay peut‑il déterminer le pays à ma place ?
Non. Nous exposons des indices (pays BIN, etc.), mais la décision et la preuve fiscale relèvent de vous.

Puis‑je me baser uniquement sur le BIN ?
Non, le BIN n’est pas une preuve fiable. Utilisez toujours le pays de facturation comme référence principale.

Comment vérifier que mes exports sont complets ?
Vérifiez la présence de buyer_country_declared dans vos fichiers. Si le champ est vide, votre front n’a pas transmis le pays.

The TRANSFER REVERSAL object

TRANSFERREVERSAL_SUCCEEDED
When 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_UPDATED
When 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_SUCCEEDED
When 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_UPDATED
When 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_CANCELED
When 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"
}

Merchant Initiated Transaction (MIT)

Introduction

Une Merchant-Initiated Transaction (MIT) est un paiement initié sans interaction du titulaire de la carte, réalisé dans le cadre d’un contrat préexistant entre le marchand et son client. Ce modèle s’applique aux facturations récurrentes, variables ou usage-based.

Dans le cadre DSP2, une MIT peut être exemptée d’authentification SCA, à condition que :

  1. Le marchand dispose d’un mandat contractuel valide,
  2. Une transaction initiale CIT authentifiée (3DS) ait été réalisée.

Les MIT reposent donc sur une authentification antérieure réussie associée à un Customer et à un cardToken.

Documentation 3DS 2.2 (général)

1. CIT et MIT : quelle différence ?

Customer-Initiated Transaction (CIT)

Une transaction CIT est initiée par le titulaire de la carte. Elle implique généralement une authentification 3DS.

Rôles de la CIT initiale dans un flux MIT :

  • authentifier la carte et le porteur,
  • valider la création d’un Customer,
  • permettre la génération d’un cardToken,
  • servir de référence aux MIT futures.

Merchant-Initiated Transaction (MIT)

Une MIT est déclenchée par le marchand sans intervention du porteur, conformément au mandat conclu avec le client.

Cas d’usage :

  • facturation mensuelle à montant variable,
  • frais ponctuels supplémentaires,
  • utilisation de type usage-based.

2. Conditions nécessaires pour effectuer des MIT

Deux conditions doivent être réunies :

2.1. Exécution d’une CIT initiale authentifiée (3DS)

Cette CIT doit être :

  • authentifiée via 3DS,
  • capturée,
  • associée à un Customer et à un cardToken.

2.2. Existence d’un mandat commercial valide

Le mandat doit couvrir :

  • la nature des services,
  • le montant futur (fixe ou variable),
  • les conditions et fréquences de facturation,
  • l’accord explicite du client sur les paiements ultérieurs.
Documentation Formulaire de paiement CustomForm

3. Montant de la CIT initiale

Il est parfaitement conforme de réaliser une CIT initiale avec un montant symbolique (par exemple 1 € ou 0,01 €) pour :

  • authentifier la carte,
  • valider le contrat commercial,
  • générer un token utilisable pour des MIT ultérieures.

La CIT initiale n’a pas à couvrir le montant réel des MIT futures.

Remarque : Les transactions à 0€ type “vérification / empreinte carte authentifiée” fonctionnent pour certains schémas mais n’est pas universellement supporté par les banques partenaires, d’où la recommandation d’utiliser une transaction CIT authentifiée.
Également, bien que la CIT symbolique soit techniquement acceptable, l’émetteur peut — en fonction de son profil de risque, du schéma ou de l’ancienneté — décider de déclencher un challenge 3DS lors d’une MIT ultérieure."

4. Durée de validité d’une CIT pour générer des MIT

Il n’existe pas de limite imposée par CentralPay.
La durée de validité dépend exclusivement :

4.1. De l’ACS émetteur (banque du porteur)

Les pratiques observées dans le secteur :

  • conservation de la preuve d’authentification : ≈ 13 mois,
  • pour certains émetteurs : jusqu’à 36 mois.

Après expiration de la preuve 3DS, les MIT peuvent faire l’objet :

  • de soft declines,
  • de demandes d’authentification,
  • de rejets « SCA required ».

4.2. Du recours au 3DS 2.2 – 3RI

Dans certains cas, le marchand peut renouveler une authentification côté émetteur via 3RI, afin de prolonger la durée de validité du mandat.

Disponibilité schémas :

  • CB : support opérationnel,
  • Mastercard : support opérationnel,
  • Visa : support en cours d’évolution, non fiable à date.
Documentation 3DS 2.2 – 3RI

5. Une MIT peut-elle nécessiter une authentification 3DS ?

Oui. Une MIT peut être exceptionnellement requalifiée en CIT par l’émetteur (ACS), notamment dans les cas suivants :

  • ancienneté élevée de la CIT initiale,
  • suspicion de fraude,
  • règles RBA de l’émetteur,
  • montants atypiques ou plus élevés que prévu.

Réduire le risque de demande 3DS

  • utiliser 3RI lorsque supporté,
  • conserver un cadre contractuel clair,
  • refaire une CIT en cas d’échecs répétés.
Pour en savoir plus FAQ 3DS 2.2

6. Transactions MIT ou service d’abonnement de CentralPay : comment choisir ?

Il n’est pas obligatoire de passer par le module Subscription pour effectuer des MIT.

6.1. Utiliser le service d’abonnement si :

  • les montants sont fixes,
  • la fréquence est récurrente,
  • la logique est celle d’un abonnement.

6.2. Utiliser les transactions MIT si :

  • les montants sont variables (usage-based model),
  • les facturations sont ponctuelles,
  • les débits doivent être initiés par le marchand.
Documentation Transaction carte récurrente

7. Implémentation API : effectuer une transaction MIT

7.1. CIT initiale

Lors de la transaction CIT :

  • création d’un customer,
  • génération d’un cardTokenId,
  • authentification 3DS.

7.2. Transaction MIT

Chaque transaction MIT doit inclure :

  • customerId,
  • cardTokenId (ou cardId),
  • indication du contexte MIT dans les paramètres de transaction,
  • les métadonnées utiles pour rattacher la MIT à la CIT initiale.
Documentation Transaction carte récurrente > Abonnement depuis des transactions successives

8. Bonnes pratiques pour fiabiliser un flux MIT

8.1. Techniques

  • déclencher les MIT peu après la facturation,
  • regrouper les paiements lorsque pertinent,
  • utiliser 3RI pour rafraîchir l’authentification,
  • conserver un cardToken stable.

8.2. Gestion des refus

  • en cas de code indiquant « SCA required »,
    proposer au client une nouvelle CIT (paiement manuel),
    recréer un mandat MIT.

8.3. Contractuelles

  • conserver la preuve du mandat : CGV, logs d’acceptation, contrat, page d’information client.

9. FAQ MIT

Une CIT de 1 € suffit-elle pour un mandat MIT ?

Oui, si elle est authentifiée 3DS.

Combien de temps une CIT permet-elle de générer des MIT ?

Cela dépend de l’ACS : généralement 13 à 36 mois.

Une MIT peut-elle déclencher 3DS ?

Oui, si l’ACS l’exige (RBA, ancienneté de la CIT, montants atypiques).

Dois-je utiliser Subscription pour des montants variables ?

Non, le service subscription est généralement adapté à des modèles d’abonnements fixes. Réaliser une transaction CIT initiale + des transactions MIT ad-hoc est le modèle recommandé.

Que faire si le client change de carte ?

Une nouvelle CIT est nécessaire pour générer un nouveau token.

The WIRETRANSFER object (Deprecated)

WIRETRANSFER_CREATED
When a wire transfer is created

WIRETRANSFER_UPDATED
When a wire transfer is updated

WIRETRANSFER_RECEIVED
When a wire transfer is received

WIRETRANSFER_CANCELED
When a wire transfer is cancelled

Verification of Payee (VoP)

À compter du 9 octobre 2025, la réglementation européenne impose aux banques de mettre en place la Verification of Payee (VoP) pour tous les virements SEPA (règlement IPR 2024/886, art. 5c).

L’objectif est de protéger les consommateurs contre les fraudes à l’IBAN.

1. Fonctionnement

Lorsqu’un virement est initié, la banque du payeur doit vérifier que le nom du bénéficiaire saisi correspond à celui associé à l’IBAN. Le résultat de cette vérification est affiché au payeur :

  • MATCH : correspondance exacte
  • CLOSE MATCH : correspondance partielle (ex. faute de frappe, abréviation, particule)
  • NO MATCH : aucune correspondance
  • CHECK NOT POSSIBLE : vérification impossible
⚠️ Le payeur reste libre de poursuivre ou non le virement.
Cependant, un NO MATCH ou un CLOSE MATCH augmentent fortement le risque d’abandon de la transaction.

2. Impacts pour les marchands

Afin d’éviter les rejets ou abandons de virements, il est essentiel de vérifier la cohérence du nom affiché à vos clients avec la raison sociale enregistrée sur votre compte CentralPay.

Cas fréquents :

  • Nom commercial / enseigne / marque → Si vous êtes connus sous un autre nom que votre raison sociale, transmettez-nous ces dénominations. Nous pourrons les déclarer manuellement afin d’améliorer le taux de correspondance.
  • vIBAN CentralPay → Vérifiez que vos interfaces et supports affichent bien la raison sociale du titulaire CentralPay associé à l’IBAN.
  • SmartForm (PaymentRequest) → Aucune action nécessaire : CentralPay affiche automatiquement le titulaire du compte.
  • Devis, factures, communications externes → Assurez-vous que la raison sociale présentée est identique à celle du compte bancaire communiqué à vos clients.
À retenir : 
- Vérifiez que votre raison sociale est correctement enregistrée et communiquée.
- Transmettez à CentralPay vos noms commerciaux ou marques si vous souhaitez les faire reconnaître.
- Harmonisez vos documents (factures, devis, emails) avec le nom officiel de votre compte bancaire.
- Informez vos clients :
* Lorsqu’ils effectuent un virement, le nom du bénéficiaire saisi doit correspondre strictement à votre raison sociale.
* En cas d’alerte de type Close match ou No match dans leur application bancaire, invitez-les à vérifier le nom renseigné.

Articles

  • FAQ - Verification Of Payee

FAQ - Verification Of Payee

À compter du 9 octobre 2025, la Vérification du bénéficiaire (VoP – Verification of Payee) deviendra obligatoire pour tous les virements SEPA, qu’ils soient classiques ou instantanés. Ce dispositif, gratuit pour les utilisateurs, vise à renforcer la sécurité des paiements en réduisant à la fois :

  • les fraudes au virement (notamment les fraudes au faux RIB),
  • les erreurs de saisie d’IBAN ou de nom du bénéficiaire.

Concrètement, avant l’exécution d’un virement, l’établissement du payeur doit interroger l’établissement du bénéficiaire pour vérifier la concordance entre l’IBAN et le nom du titulaire du compte. En cas de discordance, une alerte est affichée au payeur, qui conserve la liberté de poursuivre ou non l’opération.

Enjeux du dispositif

  • Protection des utilisateurs : limiter les virements mal orientés ou frauduleux.
  • Sécurité du système de paiement SEPA : accompagner le déploiement du virement instantané en Europe.
  • Confiance des entreprises et des particuliers : améliorer la transparence et la fiabilité des paiements.
  • Harmonisation européenne : instaurer une norme commune pour tous les PSP (banques, établissements de paiement et de monnaie électronique).

Base légale

  • Règlement (UE) 2021/1230 sur les virements instantanés en euros et la modification du règlement (UE) n° 260/2012 (SEPA), qui introduit l’obligation de VoP.
  • Règlement (UE) 2015/847 sur les informations accompagnant les transferts de fonds, qui impose la transmission exacte des informations sur le payeur et le bénéficiaire.
  • Code monétaire et financier :
    • Articles L.133-6 et L.133-7 relatifs à l’autorisation des opérations de paiement et à l’exactitude des informations,
    • Articles L.561-5 et suivants relatifs aux obligations de vigilance en matière de LCB-FT.
  • Doctrine de l’ACPR, qui dans plusieurs décisions a sanctionné l’insuffisance de dispositifs de vérification et de correspondance entre l’identité du client et son compte

Foire aux questions (FAQ)

1. Qu’est-ce que la VoP ?

La Vérification de l’Ordre de Paiement (VoP) est un service réglementaire instauré au niveau européen.
Elle permet de comparer automatiquement le nom du bénéficiaire d’un virement avec l’IBAN renseigné par le payeur, avant l’exécution du virement.
Objectif : renforcer la sécurité des paiements et réduire les fraudes (notamment fraude au faux RIB).

2. Qui est concerné ?

  • Les payeurs : particuliers ou entreprises qui initient un virement.
  • Les bénéficiaires : toute personne physique ou morale recevant des virements (vous, en tant que client CentralPay).
  • Les prestataires de services de paiement (PSP) : banques, établissements de paiement ou de monnaie électronique, qui doivent intégrer la VoP dans leurs systèmes.

3. Comment fonctionne la VoP concrètement ?

Lorsqu’un virement est initié :

  1. Le payeur saisit l’IBAN et le nom du bénéficiaire.
  2. Sa banque interroge le PSP du bénéficiaire (via un canal sécurisé) pour vérifier la concordance entre l’IBAN et le nom enregistré dans la base du bénéficiaire.
  3. La réponse est renvoyée au PSP du payeur et affichée au payeur.

4. Quels résultats peuvent apparaître ?

Trois cas sont possibles :

  • Correspondance exacte : l’IBAN et le nom concordent → le virement peut être initié sans alerte.
  • Correspondance partielle : l’IBAN correspond mais le nom est différent (fautes de frappe, abréviation, orthographe différente). Le payeur reçoit un avertissement et peut :
    • corriger le nom,
    • ou confirmer qu’il s’agit bien du bénéficiaire attendu.
  • Absence de correspondance : l’IBAN et le nom ne correspondent pas → le payeur reçoit une alerte forte. Il peut annuler ou décider de poursuivre en acceptant le risque.

Est-ce que la VoP bloque un virement ?

Non. La VoP ne bloque pas l’exécution d’un virement. Elle fournit une information supplémentaire au payeur qui reste libre de valider ou non l’opération.
Toutefois, certaines banques peuvent paramétrer des règles internes de blocage en cas de discordance totale.

Quels échanges ont lieu entre banques et PSP ?

  • Le PSP du bénéficiaire (ex. CentralPay) conserve dans sa base le nom exact du titulaire du compte.
  • Lors d’une requête VoP, il répond par un code standardisé indiquant : correspondance, correspondance partielle ou absence de correspondance.
  • Ces échanges sont sécurisés, tracés et limités aux seules données nécessaires, conformément au Règlement (UE) 2015/847 sur l’accompagnement des virements.
  • Aucune autre donnée personnelle (adresse, documents KYC, etc.) n’est transmise.

Quels sont les avantages de la VoP ?

  • Pour le payeur : réduction des risques de fraude au virement, détection des erreurs de saisie.
  • Pour le bénéficiaire : limitation des retards de paiement liés aux erreurs, sécurisation de l’image vis-à-vis de ses clients.
  • Pour le système financier : meilleure prévention des fraudes et conformité avec les standards européens.

Que dois-je faire en tant que bénéficiaire CentralPay ?

  • Communiquer à vos clients l’IBAN correct et le nom exact enregistré auprès de CentralPay (raison sociale complète, sans abréviation).
  • Vérifier que vos factures, contrats et supports incluent toujours les mêmes coordonnées bancaires.
  • En cas de changement de dénomination sociale ou d’utilisation d’un nom commercial, informer rapidement vos clients et CentralPay pour mettre à jour les données.

Que se passe-t-il en cas de non-concordance fréquente ?

Si vos clients rencontrent souvent des alertes VoP lors de virements, cela peut indiquer que vos coordonnées bancaires ne sont pas communiquées de façon homogène.

CentralPay peut vous accompagner pour réviser et harmoniser vos informations de paiement afin d’éviter les frictions.

Illustration du VoP par le CNMP

Codes

Articles

  • HTTP Codes
  • Card authorization - Bank return codes
  • Card Disputes - 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:

200OK
Note: The request was executed correctly
400BAD REQUEST
Note: Wrong parameter or rule
401UNAUTHORIZED
Note: Login / password are missing for HTTP authentication
402PAYMENT_REQUIRED
Note:  Authorization denied*
403FORBIDDEN
Note: Wrong authentication
404NOT FOUND
Note: Incorrect URL
500INTERNAL SERVER ERROR
Note: Server error

(*) Only possible for the creation of a transaction

Card authorization - Bank return codes

Issuer response codes returned to CentralPay after a card authorization request.

These values generally correspond to the ISO 8583 “Response code” (DE39) returned by card networks/issuers. Depending on the scheme, country, and routing, you may also receive network-specific or gateway-specific variants (for example alphanumeric or 3-digit codes).

Important: the same code can cover multiple issuer-side reasons. Unless explicitly stated, CentralPay passes these codes as received. For troubleshooting, combine the response code with your transaction context (amount, currency, 3DS result, merchant category, card brand, retries).

Most common response codes

CodeDescriptionRecommended action
00ApprovedProceed with capture / fulfillment.
02Contact card issuerAsk customer to contact their bank; retry only if customer confirms.
03Invalid acceptorCheck merchant/terminal configuration (MID/TID, acquirer routing).
04Pick up / retain cardDo not retry; follow your in-store procedure (if applicable).
05Do not honorGeneric decline: do not “loop” retries; ask customer to contact issuer or use another payment method.
07Honor with IDIf card-present: request ID verification; otherwise ask customer to contact issuer.
08Time-outRetry once after a short delay; if repeated, check connectivity/acquirer status.
10Unable to reverseEscalate to support with trace/reference; avoid repeated reversals.
11Partial approvalOnly relevant if your flow supports partial approvals (often prepaid); otherwise request another method.
12Invalid transactionCheck request consistency (type, lifecycle, capture/void rules); if persistent, escalate with logs.
13Invalid amountValidate amount format/currency decimals; check min/max constraints.
14Invalid card numberCustomer should re-enter card details; if repeated, use another card.
15Unknown issuerUse another card/payment method; escalate if routing issue suspected.
19Try again laterRetry once later; if repeated, ask customer to contact issuer.
30Format errorCheck field formats (PAN/expiry/CVV, currency, recurring flags); escalate if needed.
33Card expiredCustomer must use another card.
38PIN attempts exceededCardholder must contact issuer / reset PIN; do not retry.
39Transaction not allowedLikely product/merchant restriction; ask customer to contact issuer or use another method.
41Lost cardDo not retry; request another payment method.
43Stolen cardDo not retry; request another payment method.
51Insufficient fundsAsk customer to use another method or wait for funds; avoid repeated immediate retries.
54Expired cardCustomer must use another card.
55Incorrect PINCard-present only: customer must retry carefully or contact issuer after repeated failures.
57Transaction not permitted to cardholderIssuer restriction; ask customer to contact issuer or use another method.
58Transaction prohibited at terminalCheck merchant/terminal capabilities & configuration; may be MCC/terminal restriction.
59Suspected fraudDo not retry “blindly”; ask customer to contact issuer or use a different method; review fraud rules if frequent.
61Exceeds withdrawal/amount limitReduce amount or ask customer to contact issuer.
62Restricted cardIssuer restriction; customer should contact issuer.
65Frequency limit exceededWait and retry later; avoid repeated attempts in short timeframes.
68Response received too lateRetry once; check acquirer/network status if repeated.
75PIN attempts exceededSame as 38: cardholder must contact issuer.
82Invalid CVVCustomer should re-enter CVV; if repeated, use another card.
91Issuer/switch unavailableRetry later; if widespread, treat as incident (issuer/network outage).
94Duplicate requestAvoid immediate retries with same identifiers; ensure idempotency / unique reference.
95Contact acquirerEscalate to support/acquirer with transaction reference.
96System malfunctionRetry later; if repeated, escalate with traces/logs.

All response codes (exhaustive)

The following codes may be returned depending on the network, country, routing, or integration. This section is exhaustive compared to the previous version of this page, and includes both standard and non-standard variants.

CodeDescriptionRecommended action
00Transaction approved or successfully processedProceed with capture / fulfillment.
02Contact card issuerAsk the customer to contact their issuer; retry only if issuer confirms.
03Invalid acceptorCheck merchant/terminal configuration (MID/TID), acquirer routing, and credentials.
04Keep cardDo not retry; follow in-store procedure if applicable; request another payment method.
05Do not honorGeneric decline: avoid retry loops; ask customer to contact issuer or use another method.
06Transaction invalid for terminalCheck terminal capability / transaction type compatibility; verify integration parameters.
07Honor with IDIf card-present: request ID verification; otherwise ask customer to contact issuer.
08Time-OutRetry once after a short delay; if repeated, check network/acquirer connectivity.
09No originalFor reversals/adjustments: ensure you reference an existing original transaction; escalate if needed.
10Unable to reverseDo not repeat reversals blindly; escalate to support with transaction references.
11Partial approvalHandle partial approval if supported (often prepaid); otherwise request another method.
12Invalid transactionCheck transaction type/lifecycle (auth/capture/void/refund), parameters; escalate with logs if persistent.
13Invalid amountValidate amount format, currency decimals, and min/max constraints; retry after correction.
14Invalid cardholder numberCustomer should re-enter card details; if repeated, use another card.
15Unknown card issuerTry another card/payment method; if widespread, suspect routing/config issue and escalate.
17Invalid capture date (terminal business date)Check terminal business date / batch settings; retry after correction if applicable.
19Repeat transaction laterRetry once later; avoid multiple attempts in a short window; ask customer to contact issuer if repeated.
20No From AccountNot typical for purchase flows; verify transaction type and account fields; escalate if unexpected.
21No To AccountNot typical for purchase flows; verify transaction type and account fields; escalate if unexpected.
22Account not verifiedAsk customer to contact issuer; consider another payment method.
23Account not savedRetry later if applicable; otherwise use another method; escalate if recurring.
24No Credit AccountAsk customer to contact issuer; use another method.
25Unable to locate record in fileFor adjustments/reversals: verify original reference; escalate with trace/reference.
26Record duplicatedCheck idempotency and uniqueness of references; do not retry with same identifiers.
27‘Edit’ error in file update fieldCheck field formats and constraints; escalate with payload/logs.
28File access deniedConfiguration/permission issue: escalate to support/acquirer with context.
29File update not possibleEscalate with trace/reference; avoid repeating the same update operation.
30Format errorCheck request formatting (amount/currency, PAN/expiry, flags, message structure); escalate with logs.
31Identifier of acquiring organization unknownCheck acquirer routing and merchant configuration; escalate to support/acquirer.
32Transaction partially completedCheck final status via retrieval; avoid blind retry; escalate if inconsistent.
33Card validity date exceededCustomer must use another card.
34Implausible card dataCustomer should re-enter details; verify card data collection; use another card if repeated.
38Number of PIN attempts exceededDo not retry; customer must contact issuer / reset PIN.
39Transaction not allowedCheck transaction type and merchant capability; ask customer to contact issuer or use another method.
41Lost cardDo not retry; request another payment method.
42Special PickupDo not retry; request another method; in-store: follow procedure if applicable.
43Stolen cardDo not retry; request another payment method.
44Stolen cardDo not retry; request another payment method.
51Insufficient funds or overdraftAsk customer to use another method or wait for funds; avoid repeated immediate retries.
54Card expiredCustomer must use another card.
55Incorrect PINCard-present: retry carefully; if repeated, customer contacts issuer.
56Card not on fileVerify card details; customer should contact issuer or use another card.
57Transaction not authorized to this cardholderIssuer restriction; ask customer to contact issuer or use another method.
58Transaction prohibited at terminalCheck merchant/terminal capabilities and MCC/terminal restrictions; adjust configuration.
59Suspected fraudAvoid retry loops; customer contacts issuer or uses another method; review risk rules if frequent.
60The card acceptor must contact the buyerAsk customer to contact issuer / confirm details; avoid repeated attempts.
61Withdrawal amount over limitReduce amount or ask customer to contact issuer.
62Card use restrictedCustomer contacts issuer; use another method.
63MAC Key ErrorCryptographic/config issue: escalate to support/acquirer with trace and timestamps.
65Frequency limit exceededWait and retry later; avoid multiple attempts in short timeframe.
66Acquirer limit reachedEscalate to acquirer/support; retry only after confirmation.
67Card withheldDo not retry; request another method; in-store: follow procedure if applicable.
68Response not received or received too lateRetry once; if repeated, check acquirer/network status and escalate.
75Number of PIN attempts exceededSame as 38: do not retry; customer must contact issuer.
76Invalid AccountAsk customer to contact issuer; use another card/method.
77Issuer not participating in serviceUse another card or method; escalate if routing/regional issue suspected.
78Function not availableRemove/disable unsupported feature; verify transaction type and integration flags.
79Key validation errorCryptographic/config issue: escalate to support/acquirer with trace.
80Approved for purchase amount onlyIf you requested cash-back/extra: retry without it; otherwise proceed as approved.
81Unable to verify PINCard-present: retry; if repeated, customer contacts issuer or use another method.
82Invalid CVVRe-enter CVV; if repeated, use another card.
83Not refusedTreat as non-decline / ambiguous: verify final status via retrieval; escalate if inconsistent.
84Invalid transaction lifecycleCheck auth/capture/void/refund ordering and timing; fix integration logic.
85No key to useCryptographic/config issue: escalate to support/acquirer.
86KME synchronization errorCryptographic sync issue: escalate with logs, trace, timestamps.
87PIN errorCard-present: retry; if repeated, customer contacts issuer.
88MAC synchronization errorCryptographic sync issue: escalate with logs, trace, timestamps.
89Security violationStop retries; escalate to support/acquirer; review fraud/security configuration.
90Temporary system shutdownRetry later; if persistent, treat as incident and escalate.
91Card transmitter inaccessibleRetry later; if widespread, treat as issuer/network outage.
92Card issuer unknownUse another card; if repeated across cards, suspect routing/config and escalate.
93Transacation cannot be finalizedRetry later once; if persistent, escalate with trace/logs.
94Duplicate requestEnsure idempotency / unique references; do not resend the exact same request.
95Contact acquirerEscalate to support/acquirer with transaction reference and timestamps.
96System malfunctionRetry later; if repeated, escalate with traces/logs.
97No Funds TransferNot typical for purchase flows; verify transaction type; escalate if unexpected.
98Duplicate ReversalDo not repeat reversal; verify original reversal status; ensure idempotency.
99Duplicate TransactionCheck idempotency and client retries; ensure unique transaction identifiers.
N3Cash Service Not AvailableNot applicable to purchase flows; ignore unless supporting cash services.
N4Cash Back Request Exceeds Issuer LimitReduce cash-back amount or remove cash-back.
N7Declined for CVV2 failureRe-enter CVV; if repeated, use another card.
R0Stop Payment OrderDo not retry; customer must contact issuer.
R1Revocation of Authorisation OrderDo not retry; customer must contact issuer.
R3Revocation of all Authorisations OrderDo not retry; customer must contact issuer.
A0Withdrawal in contact modeNot applicable to e-commerce purchase flows; verify transaction type; remove cash/withdrawal feature if not supported.
A1VADS fallbackRouting/fallback case: verify gateway/acquirer configuration; escalate if frequent or unexpected.
000ApprovedProceed with capture / fulfillment.
001Approve with IDIf supported: apply ID verification; otherwise treat as approved.
002Partial approval (prepaid cards only)Handle partial approval if supported; otherwise request another method.
100RejectGeneric decline: avoid retry loops; ask customer to contact issuer or use another method.
101Card expired / invalid expiry dateCustomer must use another card.
106PIN attempts exceededDo not retry; customer must contact issuer.
107Please call issuerCustomer must contact issuer; retry only after confirmation.
109Invalid merchantCheck merchant configuration and routing; escalate to support/acquirer.
110Invalid amountValidate amount format/limits; retry after correction.
111Invalid account / Invalid MICR (traveler’s check)Ask customer to contact issuer; use another card/method.
115Requested function not supportedDisable unsupported feature/flag; verify transaction type.
117Invalid PINCard-present: retry carefully; if repeated, customer contacts issuer.
119Cardholder not registered / not authorizedCustomer must contact issuer; use another method.
122Invalid card security code (alias CID, 4DBC, 4CSC)Re-enter security code; if repeated, use another card.
125Invalid effective dateCheck date fields / terminal business date; escalate if applicable.
181Format errorCheck request formatting and fields; escalate with logs if persistent.
183Invalid currency codeVerify ISO currency code and acquirer configuration; correct and retry.
187Refuse – New card issuedCustomer must use another card; advise contacting issuer.
189Refuse – Merchant cancelled or closed / SECheck merchant status/configuration; escalate to support/acquirer.
200Refuse – Pick up cardDo not retry; request another method; in-store: follow procedure if applicable.
900Accepted – ATC synchronizationProceed but monitor; if repeated, escalate (potential chip/crypto sync issue).
909System malfunction (cryptographic error)Escalate to support/acquirer with trace, timestamps, and logs.
912Issuer not availableRetry later; if widespread, treat as issuer outage / incident.

Card Disputes - Bank Return codes

CB Scheme

CBDescriptionGIE DISPUTE
12Unauthorized TransactionTRANSACTION_NOT_AUTHORIZED
13Merchant Forced TransactionINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
14Unauthorized TransactionTRANSACTION_NOT_AUTHORIZED
15Guarantee by Card, by Day and by SIRETTRANSACTION_NOT_AUTHORIZED
16PIN Not VerifiedTRANSACTION_NOT_AUTHORIZED
17Invalid SIRETTRANSACTION_NOT_AUTHORIZED
18Certificate Not VerifiableTRANSACTION_NOT_AUTHORIZED
21Expired CardTRANSACTION_NOT_AUTHORIZED
22Late PresentmentINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
23Missing ImprintINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
25Exceeds Transaction Amount LimitINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
27Credit Not ProcessedTRANSACTION_NOT_AUTHORIZED
28Credit Processed as DebitTRANSACTION_NOT_AUTHORIZED
40Cancelled CardINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
41Documentation Not Provided or IllegibleINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
42Duplicate ProcessingDUPLICATE
43No Such Card NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
44Disputed AmountFRAUDULENT
45Disputed TransactionFRAUDULENT
46Merchant Bankruptcy or Judicial ReorganizationINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
61Merchant Suspended or TerminatedTRANSACTION_NOT_AUTHORIZED
62Transaction Not PermittedTRANSACTION_NOT_AUTHORIZED

Mastercard Scheme

MASTERCARDDescriptionGIE DISPUTE
4801Requested Transaction Data Not ReceivedTRANSACTION_NOT_AUTHORIZED
4802Cardholder Does Not Recognize TransactionTRANSACTION_NOT_AUTHORIZED
4807Cardholder Disputes a CreditFRAUDULENT
4808Authorization-Related ChargebackTRANSACTION_NOT_AUTHORIZED
4809Transaction Not AuthorizedFRAUDULENT
4810Fraud — Card-Not-Present EnvironmentFRAUDULENT
4522Goods or Services Not as Described / Not ReceivedOTHER
4811Credit Not ProcessedTRANSACTION_NOT_AUTHORIZED
4812Fraud — Card-Present EnvironmentTRANSACTION_NOT_AUTHORIZED
4831Goods or Services Not ReceivedINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4834Duplicate ProcessingDUPLICATE
4835Transaction Processing ErrorTRANSACTION_NOT_AUTHORIZED
4837No Cardholder Authorization (Lost/Stolen Card)FRAUDULENT
4840Fraudulent Processing of TransactionsFRAUDULENT
4841Cancelled Recurring TransactionTRANSACTION_NOT_AUTHORIZED
4842Counterfeit CardTRANSACTION_NOT_AUTHORIZED
4843Transaction Not Valid / Authorization ReversalTRANSACTION_NOT_AUTHORIZED
4846Non-Compliance With Authorization RequirementsINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4847Invalid Recurring TransactionINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4849Duplicate ProcessingDUPLICATE
4850ATM Cash Disbursement Not AuthorizedTRANSACTION_NOT_AUTHORIZED
4851Cardholder Disputes Transaction (Offline)TRANSACTION_NOT_AUTHORIZED
4853Cardholder Disputes Transaction Not as DescribedPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4854Exceeds Floor LimitPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4855Non-Receipt of Merchandise / ServicesPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4857Cardholder Disputes Transaction — Services Not ProvidedTRANSACTION_NOT_AUTHORIZED
4859Services Not Provided / Merchandise Not ReceivedTRANSACTION_NOT_AUTHORIZED
4860Transaction Processing ErrorTRANSACTION_NOT_AUTHORIZED
4862Cardholder Disputes Transaction — Invalid AuthorizationTRANSACTION_NOT_AUTHORIZED
4863Credit Not Processed / Cash Not DispensedFRAUDULENT
4870Chip Liability Shift — Counterfeit FraudFRAUDULENT
4871Chip Liability Shift — Lost/Stolen FraudFRAUDULENT
4880Late PresentmentTRANSACTION_NOT_AUTHORIZED
4890Currency Conversion DisputeTRANSACTION_NOT_AUTHORIZED
4900Defective/Not as Described MerchandiseOTHER
4901Credit Not ProcessedOTHER
4902Merchandise Not AcceptedOTHER
4903Incorrect Merchandise DeliveredOTHER
4905Services Not ProvidedOTHER
4908Cash Not DispensedOTHER

Visa Scheme

VISADescriptionGIE DISPUTE
10Fraud — Card-Absent EnvironmentFRAUDULENT
11Fraud — Card-Present EnvironmentTRANSACTION_NOT_AUTHORIZED
12Incorrect Transaction Amount or Account NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
13Fraudulent Transaction — No AuthorizationFRAUDULENT
30Services Not Provided or Merchandise Not ReceivedPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
41Credit Not ProcessedOTHER
53Not as Described or Defective MerchandiseOTHER
57Fraudulent Transaction — No Cardholder AuthorizationFRAUDULENT
62Counterfeit TransactionFRAUDULENT
70Processing ErrorOTHER
71Declined AuthorizationOTHER
72Cancelled TransactionOTHER
73Duplicate ProcessingOTHER
74Credit Not ProcessedOTHER
75Transaction Not RecognizedOTHER
76Incorrect Transaction Amount or Account NumberOTHER
77Non-Receipt of MerchandiseINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
78Fraudulent Transaction — No Cardholder AuthorizationOTHER
80Incorrect Transaction Amount or Account NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
81Fraudulent Transaction — Lost CardFRAUDULENT
82Fraudulent Transaction — Stolen CardDUPLICATE
83Fraudulent Transaction — Card-Absent EnvironmentFRAUDULENT
85Duplicate ProcessingOTHER
86Non-Compliance With AuthorizationDUPLICATE
93Late PresentmentFRAUDULENT
1001Fraud — Card-Absent Environment (E-Commerce)FRAUDULENT
1002Fraudulent Transaction — E-CommerceFRAUDULENT
1003Services Not Provided or Merchandise Not ReceivedFRAUDULENT
1004Fraudulent Transaction — No Cardholder AuthorizationFRAUDULENT
1005Not as Described or Defective MerchandiseFRAUDULENT
1101Processing Error — AuthorizationOTHER
1102Incorrect Transaction AmountOTHER
1103Exceeds Authorized AmountOTHER
1201Services Not Provided or Merchandise Not ReceivedOTHER
1202Not as Described Merchandise / ServiceOTHER
1203Recurring Transaction Not RecognizedOTHER
1204Defective MerchandiseINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
1205Services Not ProvidedINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
1206Non-Receipt of MerchandiseDUPLICATE
1207Duplicate ProcessingOTHER
1301Fraudulent Transaction — Card-Present EnvironmentPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
1302Fraudulent Transaction — No Cardholder AuthorizationOTHER
1303Fraudulent Transaction — Card-Absent EnvironmentOTHER
1304Duplicate ProcessingOTHER
1305Services Not Provided or Merchandise Not ReceivedOTHER
1306Credit Not ProcessedOTHER
1307Recurring Transaction Not RecognizedOTHER
1308Transaction Processing ErrorOTHER

Currency codes

List of currency codes:

AED
UAE Dirham
Currency code: 784
AFN
Afghani
Currency code: 971
ALL
Lek
Currency code: 008
AMD
Armenian Dram
Currency code: 051
ANG
Netherlands Antillean Guilder
Currency code: 532
AOA
Kwanza
Currency code: 973
ARS
Argentine Peso
Currency code: 032
AUD
Australian Dollar
Currency code: 036
AWG
Aruban Florin
Currency code: 533
AZN
Azerbaijanian Manat
Currency code: 944
BAM
Convertible Mark
Currency code: 977
BBD
Barbados Dollar
Currency code: 052
BDT
Taka
Currency code: 050
BGN
Bulgarian Lev
Currency code: 975
BHD
Bahraini Dinar
Currency code: 048
BIF
Burundi Franc
Currency code: 108
BMD
Bermudian Dollar
Currency code: 060
BND
Brunei Dollar
Currency code: 096
BOB
Boliviano
Currency code: 068
BOV
Mvdol
Currency code: 984
BRL
Brazilian Real
Currency code: 986
BSD
Bahamian Dollar
Currency code: 044
BTN
Ngultrum
Currency code: 064
BWP
Pula
Currency code: 072
BYR
Belarussian Ruble
Currency code: 974
BZD
Belize Dollar
Currency code: 084
CAD
Canadian Dollar
Currency code: 124
CDF
Congolese Franc
Currency code: 976
CHE
WIR Euro
Currency code: 947
CHF
Swiss Franc
Currency code: 756
CHW
WIR Franc
Currency code: 948
CLF
Unidad de Fomento
Currency code: 990
CLP
Chilean Peso
Currency code: 152
CNY
Yuan Renminbi
Currency code: 156
COP
Colombian Peso
Currency code: 170
COU
Unidad de Valor Real
Currency code: 970
CRC
Costa Rican Colon
Currency code: 188
CUC
Peso Convertible
Currency code: 931
CUP
Cuban Peso
Currency code: 192
CVE
Cabo Verde Escudo
Currency code: 132
CZK
Czech Koruna
Currency code: 203
DJF
Djibouti Franc
Currency code: 262
DKK
Danish Krone
Currency code: 208
DOP
Dominican Peso
Currency code: 214
DZD
Algerian Dinar
Currency code: 012
EGP
Egyptian Pound
Currency code: 818
ERN
Nakfa
Currency code: 232
ETB
Ethiopian Birr
Currency code: 230
EUR
Euro
Currency code: 978
FJD
Fiji Dollar
Currency code: 242
FKP
Falkland Islands Pound
Currency code: 238
GBP
Pound Sterling
Currency code: 826
GEL
Lari
Currency code: 981
GHS
Ghana Cedi
Currency code: 936
GIP
Gibraltar Pound
Currency code: 292
GMD
Dalasi
Currency code: 270
GNF
Guinea Franc
Currency code: 324
GTQ
Quetzal
Currency code: 320
GYD
Guyana Dollar
Currency code: 328
HKD
Hong Kong Dollar
Currency code: 344
HNL
Lempira
Currency code: 340
HRK
Kuna
Currency code: 191
HTG
Gourde
Currency code: 332
HUF
Forint
Currency code: 348
IDR
Rupiah
Currency code: 360
ILS
New Israeli Sheqel
Currency code: 376
INR
Indian Rupee
Currency code: 356
IQD
Iraqi Dinar
Currency code: 368
IRR
Iranian Rial
Currency code: 364
ISK
Iceland Krona
Currency code: 352
JMD
Jamaican Dollar
Currency code: 388
JOD
Jordanian Dinar
Currency code: 400
JPY
Yen
Currency code: 392
KES
Kenyan Shilling
Currency code: 404
KGS
Som
Currency code: 417
KHR
Riel
Currency code: 116
KMF
Comoro Franc
Currency code: 174
KPW
North Korean Won
Currency code: 408
KRW
Won
Currency code: 410
KWD
Kuwaiti Dinar
Currency code: 414
KYD
Cayman Islands Dollar
Currency code: 136
KZT
Tenge
Currency code: 398
LAK
Kip
Currency code: 418
LBP
Lebanese Pound
Currency code: 422
LKR
Sri Lanka Rupee
Currency code: 144
LRD
Liberian Dollar
Currency code: 430
LSL
Loti
Currency code: 426
LYD
Libyan Dinar
Currency code: 434
MAD
Moroccan Dirham
Currency code: 504
MDL
Moldovan Leu
Currency code: 498
MGA
Malagasy Ariary
Currency code: 969
MKD
Denar
Currency code: 807
MMK
Kyat
Currency code: 104
MNT
Tugrik
Currency code: 496
MOP
Pataca
Currency code: 446
MRO
Ouguiya
Currency code: 478
MUR
Mauritius Rupee
Currency code: 480
MVR
Rufiyaa
Currency code: 462
MWK
Kwacha
Currency code: 454
MXN
Mexican Peso
Currency code: 484
MXV
Mexican Unidad de Inversion (UDI)
Currency code: 979
MYR
Malaysian Ringgit
Currency code: 458
MZN
Mozambique Metical
Currency code: 943
NAD
Namibia Dollar
Currency code: 516
NGN
Naira
Currency code: 566
NIO
Cordoba Oro
Currency code: 558
NOK
Norwegian Krone
Currency code: 578
NPR
Nepalese Rupee
Currency code: 524
NZD
New Zealand Dollar
Currency code: 554
OMR
Rial Omani
Currency code: 512
PAB
Balboa
Currency code: 590
PEN
Nuevo Sol
Currency code: 604
PGK
Kina
Currency code: 598
PHP
Philippine Peso
Currency code: 608
PKR
Pakistan Rupee
Currency code: 586
PLN
Zloty
Currency code: 985
PYG
Guarani
Currency code: 600
QAR
Qatari Rial
Currency code: 634
RON
Romanian Leu
Currency code: 946
RSD
Serbian Dinar
Currency code: 941
RUB
Russian Ruble
Currency code: 643
RWF
Rwanda Franc
Currency code: 646
SAR
Saudi Riyal
Currency code: 682
SBD
Solomon Islands Dollar
Currency code: 090
SCR
Seychelles Rupee
Currency code: 690
SDG
Sudanese Pound
Currency code: 938
SEK
Swedish Krona
Currency code: 752
SGD
Singapore Dollar
Currency code: 702
SHP
Saint Helena Pound
Currency code: 654
SLL
Leone
Currency code: 694
SOS
Somali Shilling
Currency code: 706
SRD
Surinam Dollar
Currency code: 968
SSP
South Sudanese Pound
Currency code: 728
STD
Dobra
Currency code: 678
SVC
El Salvador Colon
Currency code: 222
SYP
Syrian Pound
Currency code: 760
SZL
Lilangeni
Currency code: 748
THB
Baht
Currency code: 764
TJS
Somoni
Currency code: 972
TMT
Turkmenistan New Manat
Currency code: 934
TND
Tunisian Dinar
Currency code: 788
TOP
Pa’anga
Currency code: 776
TRY
Turkish Lira
Currency code: 949
TTD
Trinidad and Tobago Dollar
Currency code: 780
TWD
New Taiwan Dollar
Currency code: 901
TZS
Tanzanian Shilling
Currency code: 834
UAH
Hryvnia
Currency code: 980
UGX
Uganda Shilling
Currency code: 800
USD
US Dollar
Currency code: 840
USN
US Dollar (Next day)
Currency code: 997
UYI
Uruguay Peso en Unidades Indexadas (URUIURUI)
Currency code: 940
UYU
Peso Uruguayo
Currency code: 858
UZS
Uzbekistan Sum
Currency code: 860
VEF
Bolivar
Currency code: 937
VND
Dong
Currency code: 704
VUV
Vatu
Currency code: 548
WST
Tala
Currency code: 882
XAG
Silver
Currency code: 961
XAU
Gold
Currency code: 959
XBA
Bond Markets Unit European Composite Unit (EURCO)
Currency code: 955
XBB
Bond Markets Unit European Monetary Unit (E.M.U.-6)
Currency code: 956
XBC
Bond Markets Unit European Unit of Account 9 (E.U.A.-9)
Currency code: 957
XBD
Bond Markets Unit European Unit of Account 17 (E.U.A.-17)
Currency code: 958
XCD
East Caribbean Dollar
Currency code: 951
XDR
SDR (Special Drawing Right)
Currency code: 960
XOF
CFA Franc BCEAO
Currency code: 952
XPD
Palladium
Currency code: 964
XPF
CFP Franc
Currency code: 953
XPT
Platinum
Currency code: 962
XSU
Sucre
Currency code: 994
XTS
Codes specifically reserved for testing purposes
Currency code: 963
XUA
ADB Unit of Account
Currency code: 965
XXX
The codes assigned for transactions where no currency is involved
Currency code: 999
YER
Yemeni Rial
Currency code: 886
ZAR
Rand
Currency code: 710
ZMW
Zambian Kwacha
Currency code: 967
ZWL
Zimbabwe Dollar
Currency 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 CodeDescription
AB05Timeout Creditor Agent
AB06Timeout Instructed Agent
AB07Offline Agent
AB08Offline Creditor Agent
AB09Error Creditor Agent
AB10Error Instructed Agent
AC01Incorrect Account Number
AC03Invalid Creditor Account Number
AC04Account Closed
AC06Account blocked, reason not specified
AC13Wrong Debtor account
AG01Forbidden on this type of account
AG02Operation/Transaction code incorrect, invalid file format
AG09Payment Not Received
AG10Agent Suspended
AG11Creditor Agent Suspended
AGNTIncorrect Agent
AM02Not Allowed Amount
AM04Insufficient Funds
AM05Duplicate payment
AM09Wrong Amount
AM23Amount Exceeds Settlement Limit
ARDTAlready a returned transaction
BE04Account address invalid
BE05Creditor Identifier incorrect
CUSTCustomer decision
CURRIncorrect Currency
CUTACancellation Upon Unable to Apply
CNORCreditor Bank is not Registered
DNORDebtor Bank is not Registered
DUPLDuplicate Payment
ED05Settlement Failed
ERINERI Option Not Supported
FF01Invalid File Format
FOCRPositive answer to the recall or RfRO
FRADFraudulent originated credit transfer
LEGLLegal Decision
MD01No valid mandate
MD02Mandate data missing or invalid
MD06Refund Request By End Customer
MD07Beneficiary Deceased
MS02By order of the beneficiary
MS03Reason not specified
NOASNo Answer From Customer
NOORNo Original Transaction Received
RC01Invalid BIC
RC07Invalid Creditor BIC Identifier
RR01Missing Debtor Account Or Identification
RR02Missing Debtors Name Or Address
RR03Missing Creditors Name Or Address
RR04Regulatory Reason
SL01Specific service offered by debtor Bank
TECHTechnical problems resulting in erroneous SCT’s
TM01Invalid Cut Off Time
UPAYUndue Payment

Country codes

List of country codes:

004
Afghanistan
Alpha2 code: AF
Alpha3 code: AFG
008
Albania
Alpha2 code: AL
Alpha3 code: ALB
010
Antarctica
Alpha2 code: AQ
Alpha3 code: ATA
012
Algeria
Alpha2 code: DZ
Alpha3 code: DZA
016
American Samoa
Alpha2 code: AS
Alpha3 code: ASM
020
Andorra
Alpha2 code: AD
Alpha3 code: AND
024
Angola
Alpha2 code: AO
Alpha3 code: AGO
028
Antigua and Barbuda
Alpha2 code: AG
Alpha3 code: ATG
031
Azerbaijan
Alpha2 code: AZ
Alpha3 code: AZE
032
Argentina
Alpha2 code: AR
Alpha3 code: ARG
036
Australia
Alpha2 code: AU
Alpha3 code: AUS
040
Austria
Alpha2 code: AT
Alpha3 code: AUT
044
Bahamas (the)
Alpha2 code: BS
Alpha3 code: BHS
048
Bahrain
Alpha2 code: BH
Alpha3 code: BHR
050
Bangladesh
Alpha2 code: BD
Alpha3 code: BGD
051
Armenia
Alpha2 code: AM
Alpha3 code: ARM
052
Barbados
Alpha2 code: BB
Alpha3 code: BRB
056
Belgium
Alpha2 code: BE
Alpha3 code: BEL
060
Bermuda
Alpha2 code: BM
Alpha3 code: BMU
064
Bhutan
Alpha2 code: BT
Alpha3 code: BTN
068
Bolivia, Plurinational State of
Alpha2 code: BO
Alpha3 code: BOL
070
Bosnia and Herzegovina
Alpha2 code: BA
Alpha3 code: BIH
072
Botswana
Alpha2 code: BW
Alpha3 code: BWA
074
Bouvet Island
Alpha2 code: BV
Alpha3 code: BVT
076
Brazil
Alpha2 code: BR
Alpha3 code: BRA
084
Belize
Alpha2 code: BZ
Alpha3 code: BLZ
086
British Indian Ocean Territory (the)
Alpha2 code: IO
Alpha3 code: IOT
090
Solomon Islands (the)
Alpha2 code: SB
Alpha3 code: SLB
092
Virgin Islands (British)
Alpha2 code: VG
Alpha3 code: VGB
096
Brunei Darussalam
Alpha2 code: BN
Alpha3 code: BRN
100
Bulgaria
Alpha2 code: BG
Alpha3 code: BGR
104
Myanmar
Alpha2 code: MM
Alpha3 code: MMR
108
Burundi
Alpha2 code: BI
Alpha3 code: BDI
112
Belarus
Alpha2 code: BY
Alpha3 code: BLR
116
Cambodia
Alpha2 code: KH
Alpha3 code: KHM
120
Cameroon
Alpha2 code: CM
Alpha3 code: CMR
124
Canada
Alpha2 code: CA
Alpha3 code: CAN
132
Cape Verde
Alpha2 code: CV
Alpha3 code: CPV
136
Cayman Islands (the)
Alpha2 code: KY
Alpha3 code: CYM
140
Central African Republic (the)
Alpha2 code: CF
Alpha3 code: CAF
144
Sri Lanka
Alpha2 code: LK
Alpha3 code: LKA
148
Chad
Alpha2 code: TD
Alpha3 code: TCD
152
Chile
Alpha2 code: CL
Alpha3 code: CHL
156
China
Alpha2 code: CN
Alpha3 code: CHN
158
Taiwan (Province of China)
Alpha2 code: TW
Alpha3 code: TWN
162
Christmas Island
Alpha2 code: CX
Alpha3 code: CXR
166
Cocos (Keeling) Islands (the)
Alpha2 code: CC
Alpha3 code: CCK
170
Colombia
Alpha2 code: CO
Alpha3 code: COL
174
Comoros
Alpha2 code: KM
Alpha3 code: COM
175
Mayotte
Alpha2 code: YT
Alpha3 code: MYT
178
Congo
Alpha2 code: CG
Alpha3 code: COG
180
Congo (the Democratic Republic of the)
Alpha2 code: CD
Alpha3 code: COD
184
Cook Islands (the)
Alpha2 code: CK
Alpha3 code: COK
188
Costa Rica
Alpha2 code: CR
Alpha3 code: CRI
191
Croatia
Alpha2 code: HR
Alpha3 code: HRV
192
Cuba
Alpha2 code: CU
Alpha3 code: CUB
196
Cyprus
Alpha2 code: CY
Alpha3 code: CYP
203
Czech Republic (the)
Alpha2 code: CZ
Alpha3 code: CZE
204
Benin
Alpha2 code: BJ
Alpha3 code: BEN
208
Denmark
Alpha2 code: DK
Alpha3 code: DNK
212
Dominica
Alpha2 code: DM
Alpha3 code: DMA
214
Dominican Republic (the)
Alpha2 code: DO
Alpha3 code: DOM
218
Ecuador
Alpha2 code: EC
Alpha3 code: ECU
222
El Salvador
Alpha2 code: SV
Alpha3 code: SLV
226
Equatorial Guinea
Alpha2 code: GQ
Alpha3 code: GNQ
231
Ethiopia
Alpha2 code: ET
Alpha3 code: ETH
232
Eritrea
Alpha2 code: ER
Alpha3 code: ERI
233
Estonia
Alpha2 code: EE
Alpha3 code: EST
234
Faroe Islands (the)
Alpha2 code: FO
Alpha3 code: FRO
238
Falkland Islands (the) [Malvinas]
Alpha2 code: FK
Alpha3 code: FLK
239
South Georgia and the South Sandwich Islands
Alpha2 code: GS
Alpha3 code: SGS
242
Fiji
Alpha2 code: FJ
Alpha3 code: FJI
246
Finland
Alpha2 code: FI
Alpha3 code: FIN
248
Ã…land Islands
Alpha2 code: AX
Alpha3 code: ALA
250
France
Alpha2 code: FR
Alpha3 code: FRA
254
French Guiana
Alpha2 code: GF
Alpha3 code: GUF
258
French Polynesia
Alpha2 code: PF
Alpha3 code: PYF
260
French Southern Territories (the)
Alpha2 code: TF
Alpha3 code: ATF
262
Djibouti
Alpha2 code: DJ
Alpha3 code: DJI
266
Gabon
Alpha2 code: GA
Alpha3 code: GAB
268
Georgia
Alpha2 code: GE
Alpha3 code: GEO
270
Gambia (The)
Alpha2 code: GM
Alpha3 code: GMB
275
Palestine, State of
Alpha2 code: PS
Alpha3 code: PSE
276
Germany
Alpha2 code: DE
Alpha3 code: DEU
288
Ghana
Alpha2 code: GH
Alpha3 code: GHA
292
Gibraltar
Alpha2 code: GI
Alpha3 code: GIB
296
Kiribati
Alpha2 code: KI
Alpha3 code: KIR
300
Greece
Alpha2 code: GR
Alpha3 code: GRC
304
Greenland
Alpha2 code: GL
Alpha3 code: GRL
308
Grenada
Alpha2 code: GD
Alpha3 code: GRD
312
Guadeloupe
Alpha2 code: GP
Alpha3 code: GLP
316
Guam
Alpha2 code: GU
Alpha3 code: GUM
320
Guatemala
Alpha2 code: GT
Alpha3 code: GTM
324
Guinea
Alpha2 code: GN
Alpha3 code: GIN
328
Guyana
Alpha2 code: GY
Alpha3 code: GUY
332
Haiti
Alpha2 code: HT
Alpha3 code: HTI
334
Heard Island and McDonald Islands
Alpha2 code: HM
Alpha3 code: HMD
336
Holy See (the) [Vatican City State]
Alpha2 code: VA
Alpha3 code: VAT
340
Honduras
Alpha2 code: HN
Alpha3 code: HND
344
Hong Kong
Alpha2 code: HK
Alpha3 code: HKG
348
Hungary
Alpha2 code: HU
Alpha3 code: HUN
352
Iceland
Alpha2 code: IS
Alpha3 code: ISL
356
India
Alpha2 code: IN
Alpha3 code: IND
360
Indonesia
Alpha2 code: ID
Alpha3 code: IDN
364
Iran (the Islamic Republic of)
Alpha2 code: IR
Alpha3 code: IRN
368
Iraq
Alpha2 code: IQ
Alpha3 code: IRQ
372
Ireland
Alpha2 code: IE
Alpha3 code: IRL
376
Israel
Alpha2 code: IL
Alpha3 code: ISR
380
Italy
Alpha2 code: IT
Alpha3 code: ITA
384
Ivory coast
Alpha2 code: CI
Alpha3 code: CIV
388
Jamaica
Alpha2 code: JM
Alpha3 code: JAM
392
Japan
Alpha2 code: JP
Alpha3 code: JPN
398
Kazakhstan
Alpha2 code: KZ
Alpha3 code: KAZ
400
Jordan
Alpha2 code: JO
Alpha3 code: JOR
404
Kenya
Alpha2 code: KE
Alpha3 code: KEN
408
Korea (the Democratic People’s Republic of)
Alpha2 code: KP
Alpha3 code: PRK
410
Korea (the Republic of)
Alpha2 code: KR
Alpha3 code: KOR
414
Kuwait
Alpha2 code: KW
Alpha3 code: KWT
417
Kyrgyzstan
Alpha2 code: KG
Alpha3 code: KGZ
418
Lao People’s Democratic Republic (the)
Alpha2 code: LA
Alpha3 code: LAO
422
Lebanon
Alpha2 code: LB
Alpha3 code: LBN
426
Lesotho
Alpha2 code: LS
Alpha3 code: LSO
428
Latvia
Alpha2 code: LV
Alpha3 code: LVA
430
Liberia
Alpha2 code: LR
Alpha3 code: LBR
434
Libya
Alpha2 code: LY
Alpha3 code: LBY
438
Liechtenstein
Alpha2 code: LI
Alpha3 code: LIE
440
Lithuania
Alpha2 code: LT
Alpha3 code: LTU
442
Luxembourg
Alpha2 code: LU
Alpha3 code: LUX
446
Macao
Alpha2 code: MO
Alpha3 code: MAC
450
Madagascar
Alpha2 code: MG
Alpha3 code: MDG
454
Malawi
Alpha2 code: MW
Alpha3 code: MWI
458
Malaysia
Alpha2 code: MY
Alpha3 code: MYS
462
Maldives
Alpha2 code: MV
Alpha3 code: MDV
466
Mali
Alpha2 code: ML
Alpha3 code: MLI
470
Malta
Alpha2 code: MT
Alpha3 code: MLT
474
Martinique
Alpha2 code: MQ
Alpha3 code: MTQ
478
Mauritania
Alpha2 code: MR
Alpha3 code: MRT
480
Mauritius
Alpha2 code: MU
Alpha3 code: MUS
484
Mexico
Alpha2 code: MX
Alpha3 code: MEX
492
Monaco
Alpha2 code: MC
Alpha3 code: MCO
496
Mongolia
Alpha2 code: MN
Alpha3 code: MNG
498
Moldova (the Republic of)
Alpha2 code: MD
Alpha3 code: MDA
499
Montenegro
Alpha2 code: ME
Alpha3 code: MNE
500
Montserrat
Alpha2 code: MS
Alpha3 code: MSR
504
Morocco
Alpha2 code: MA
Alpha3 code: MAR
508
Mozambique
Alpha2 code: MZ
Alpha3 code: MOZ
512
Oman
Alpha2 code: OM
Alpha3 code: OMN
516
Namibia
Alpha2 code: NA
Alpha3 code: NAM
520
Nauru
Alpha2 code: NR
Alpha3 code: NRU
524
Nepal
Alpha2 code: NP
Alpha3 code: NPL
528
Netherlands (the)
Alpha2 code: NL
Alpha3 code: NLD
531
Curacao
Alpha2 code: CW
Alpha3 code: CUW
533
Aruba
Alpha2 code: AW
Alpha3 code: ABW
534
Sint Maarten (Dutch part)
Alpha2 code: SX
Alpha3 code: SXM
535
Bonaire, Sint Eustatius and Saba
Alpha2 code: BQ
Alpha3 code: BES
540
New Caledonia
Alpha2 code: NC
Alpha3 code: NCL
548
Vanuatu
Alpha2 code: VU
Alpha3 code: VUT
554
New Zealand
Alpha2 code: NZ
Alpha3 code: NZL
558
Nicaragua
Alpha2 code: NI
Alpha3 code: NIC
562
Niger (the)
Alpha2 code: NE
Alpha3 code: NER
566
Nigeria
Alpha2 code: NG
Alpha3 code: NGA
570
Niue
Alpha2 code: NU
Alpha3 code: NIU
574
Norfolk Island
Alpha2 code: NF
Alpha3 code: NFK
578
Norway
Alpha2 code: NO
Alpha3 code: NOR
580
Northern Mariana Islands (the)
Alpha2 code: MP
Alpha3 code: MNP
581
United States Minor Outlying Islands (the)
Alpha2 code: UM
Alpha3 code: UMI
583
Micronesia (the Federated States of)
Alpha2 code: FM
Alpha3 code: FSM
584
Marshall Islands (the)
Alpha2 code: MH
Alpha3 code: MHL
585
Palau
Alpha2 code: PW
Alpha3 code: PLW
586
Pakistan
Alpha2 code: PK
Alpha3 code: PAK
591
Panama
Alpha2 code: PA
Alpha3 code: PAN
598
Papua New Guinea
Alpha2 code: PG
Alpha3 code: PNG
600
Paraguay
Alpha2 code: PY
Alpha3 code: PRY
604
Peru
Alpha2 code: PE
Alpha3 code: PER
608
Philippines (the)
Alpha2 code: PH
Alpha3 code: PHL
612
Pitcairn
Alpha2 code: PN
Alpha3 code: PCN
616
Poland
Alpha2 code: PL
Alpha3 code: POL
620
Portugal
Alpha2 code: PT
Alpha3 code: PRT
624
Guinea-Bissau
Alpha2 code: GW
Alpha3 code: GNB
626
Timor-Leste
Alpha2 code: TL
Alpha3 code: TLS
630
Puerto Rico
Alpha2 code: PR
Alpha3 code: PRI
634
Qatar
Alpha2 code: QA
Alpha3 code: QAT
638
Réunion
Alpha2 code: RE
Alpha3 code: REU
642
Romania
Alpha2 code: RO
Alpha3 code: ROU
643
Russian Federation (the)
Alpha2 code: RU
Alpha3 code: RUS
646
Rwanda
Alpha2 code: RW
Alpha3 code: RWA
652
Saint Barthélemy
Alpha2 code: BL
Alpha3 code: BLM
654
Saint Helena, Ascension and Tristan da Cunha
Alpha2 code: SH
Alpha3 code: SHN
659
Saint Kitts and Nevis
Alpha2 code: KN
Alpha3 code: KNA
660
Anguilla
Alpha2 code: AI
Alpha3 code: AIA
662
Saint Lucia
Alpha2 code: LC
Alpha3 code: LCA
663
Saint Martin (French part)
Alpha2 code: MF
Alpha3 code: MAF
666
Saint Pierre and Miquelon
Alpha2 code: PM
Alpha3 code: SPM
670
Saint Vincent and the Grenadines
Alpha2 code: VC
Alpha3 code: VCT
674
San Marino
Alpha2 code: SM
Alpha3 code: SMR
678
Sao Tome and Principe
Alpha2 code: ST
Alpha3 code: STP
682
Saudi Arabia
Alpha2 code: SA
Alpha3 code: SAU
686
Senegal
Alpha2 code: SN
Alpha3 code: SEN
688
Serbia
Alpha2 code: RS
Alpha3 code: SRB
690
Seychelles
Alpha2 code: SC
Alpha3 code: SYC
694
Sierra Leone
Alpha2 code: SL
Alpha3 code: SLE
702
Singapore
Alpha2 code: SG
Alpha3 code: SGP
703
Slovakia
Alpha2 code: SK
Alpha3 code: SVK
704
Viet Nam
Alpha2 code: VN
Alpha3 code: VNM
705
Slovenia
Alpha2 code: SI
Alpha3 code: SVN
706
Somalia
Alpha2 code: SO
Alpha3 code: SOM
710
South Africa
Alpha2 code: ZA
Alpha3 code: ZAF
716
Zimbabwe
Alpha2 code: ZW
Alpha3 code: ZWE
724
Spain
Alpha2 code: ES
Alpha3 code: ESP
728
South Sudan
Alpha2 code: SS
Alpha3 code: SSD
729
Sudan (the)
Alpha2 code: SD
Alpha3 code: SDN
732
Western Sahara
Alpha2 code: EH
Alpha3 code: ESH
740
Suriname
Alpha2 code: SR
Alpha3 code: SUR
744
Svalbard and Jan Mayen
Alpha2 code: SJ
Alpha3 code: SJM
748
Swaziland
Alpha2 code: SZ
Alpha3 code: SWZ
752
Sweden
Alpha2 code: SE
Alpha3 code: SWE
756
Switzerland
Alpha2 code: CH
Alpha3 code: CHE
760
Syrian Arab Republic (the)
Alpha2 code: SY
Alpha3 code: SYR
762
Tajikistan
Alpha2 code: TJ
Alpha3 code: TJK
764
Thailand
Alpha2 code: TH
Alpha3 code: THA
768
Togo
Alpha2 code: TG
Alpha3 code: TGO
772
Tokelau
Alpha2 code: TK
Alpha3 code: TKL
776
Tonga
Alpha2 code: TO
Alpha3 code: TON
780
Trinidad and Tobago
Alpha2 code: TT
Alpha3 code: TTO
784
United Arab Emirates (the)
Alpha2 code: AE
Alpha3 code: ARE
788
Tunisia
Alpha2 code: TN
Alpha3 code: TUN
792
Turkey
Alpha2 code: TR
Alpha3 code: TUR
795
Turkmenistan
Alpha2 code: TM
Alpha3 code: TKM
796
Turks and Caicos Islands (the)
Alpha2 code: TC
Alpha3 code: TCA
798
Tuvalu
Alpha2 code: TV
Alpha3 code: TUV
800
Uganda
Alpha2 code: UG
Alpha3 code: UGA
804
Ukraine
Alpha2 code: UA
Alpha3 code: UKR
807
Macedonia (the former Yugoslav Republic of)
Alpha2 code: MK
Alpha3 code: MKD
818
Egypt
Alpha2 code: EG
Alpha3 code: EGY
826
United Kingdom (the)
Alpha2 code: GB
Alpha3 code: GBR
831
Guernsey
Alpha2 code: GG
Alpha3 code: GGY
832
Jersey
Alpha2 code: JE
Alpha3 code: JEY
833
Isle of Man
Alpha2 code: IM
Alpha3 code: IMN
834
Tanzania, United Republic of
Alpha2 code: TZ
Alpha3 code: TZA
840
United States (the)
Alpha2 code: US
Alpha3 code: USA
850
Virgin Islands (U.S.)
Alpha2 code: VI
Alpha3 code: VIR
854
Burkina Faso
Alpha2 code: BF
Alpha3 code: BFA
858
Uruguay
Alpha2 code: UY
Alpha3 code: URY
860
Uzbekistan
Alpha2 code: UZ
Alpha3 code: UZB
862
Venezuela, Bolivarian Republic of
Alpha2 code: VE
Alpha3 code: VEN
876
Wallis and Futuna
Alpha2 code: WF
Alpha3 code: WLF
882
Samoa
Alpha2 code: WS
Alpha3 code: WSM
887
Yemen
Alpha2 code: YE
Alpha3 code: YEM
894
Zambia  
Alpha2 code: ZM
Alpha3 code: ZMB

Transfer purpose codes

ACCT : AccountManagement
ADCS : AdvisoryDonationCopyrightServices
ADMG : AdministrativeManagement
ADVA : AdvancePayment
AEMP : ActiveEmploymentPolicy
AGRT : AgriculturalTransfer
AIRB : Air
ALLW : Allowance
ALMY : AlimonyPayment
AMEX : Amex
ANNI : Annuity
ANTS : AnesthesiaServices
AREN : AccountsReceivablesEntry
AUCO : AuthenticatedCollections
B112 : TrailerFeePayment
BBSC : BabyBonusScheme
BCDM : BearerChequeDomestic
BCFG : BearerChequeForeign
BECH : ChildBenefit
BENE : UnemploymentDisabilityBenefit
BEXP : BusinessExpenses
BFWD : BondForward
BKDF : BankLoanDelayedDrawFunding
BKFE : BankLoanFees
BKFM : BankLoanFundingMemo
BKIP : BankLoanAccruedInterestPayment
BKPP : BankLoanPrincipalPaydown
BLDM : BuildingMaintenance
BNET : BondForwardNetting
BOCE : BackOfficeConversionEntry
BOND : Bonds
BONU : BonusPayment.
BR12 : TrailerFeeRebate
BUSB : Bus
CABD : CorporateActions-Bonds
CAEQ : CorporateActions-Equities
CAFI : CustodianManagementFeeInhouse
CASH : CashManagementTransfer
CBCR : CreditCard
CBFF : CapitalBuilding
CBFR : CapitalBuildingRetirement
CBLK : CardBulkClearing
CBTV : CableTVBill
CCHD : CashCompensationHelplessnessDisability
CCIR : CrossCurrencyIRS
CCPC : CCPClearedInitialMargin
CCPM : CCPClearedVariationMargin
CCRD : CreditCardPayment
CCSM : CCPClearedInitialMarginSegregatedCash
CDBL : CreditCardBill
CDCB : CardPaymentWithCashBack
CDCD : CashDisbursementCashSettlement
CDCS : CashDisbursementWithSurcharging
CDDP : CardDeferredPayment
CDEP : CreditDefaultEventPayment
CDOC : OriginalCredit
CDQC : QuasiCash
CFDI : CapitalFallingDueInhouse
CFEE : CancellationFee
CGDD : CardGeneratedDirectDebit
CHAR : CharityPayment
CLPR : CarLoanPrincipalRepayment
CMDT : CommodityTransfer
COLL : CollectionPayment
COMC : CommercialPayment
COMM : Commission
COMP : CompensationPayment
COMT : ConsumerThirdPartyConsolidatedPayment
CORT : TradeSettlementPayment
COST : Costs
CPEN : CashPenalties
CPKC : CarparkCharges
CPYR : Copyright
CRDS : CreditDefaultSwap
CRPR : CrossProduct
CRSP : CreditSupport
CRTL : CreditLine
CSDB : CashDisbursementCashManagement
CSLP : CompanySocialLoanPaymentToBank
CVCF : ConvalescentCareFacility
DBCR : DebitCard
DBTC : DebitCollectionPayment
DCRD : DebitCardPayment
DEBT : ChargesBorneByDebtor
DEPD : DependentSupportPayment
DEPT : Deposit
DERI : Derivatives
DICL : Diners
DIVD : Dividend
DMEQ : DurableMedicaleEquipment
DNTS : DentalServices
DSMT : PrintedOrderDisbursement
DVPM : DeliverAgainstPayment
ECPG : GuaranteedEPayment
ECPR : EPaymentReturn
ECPU : NonGuaranteedEPayment
EDUC : Education
EFTC : LowValueCredit
EFTD : LowValueDebit
ELEC : ElectricityBill
ENRG : Energies
EPAY : Epayment
EQPT : EquityOption
EQTS : Equities
EQUS : EquitySwap
ESTX : EstateTax
ETUP : EPurseTopUp
EXPT : ExoticOption
EXTD : ExchangeTradedDerivatives
FACT : FactorUpdateRelatedPayment
FAND : FinancialAidInCaseOfNaturalDisaster
FCOL : FeeCollection
FCPM : LatePaymentOfFeesAndCharges
FEES : PaymentOfFees
FERB : Ferry
FIXI : FixedIncome
FLCR : FleetCard
FNET : FuturesNettingPayment
FORW : ForwardForeignExchange
FREX : ForeignExchange
FUTR : Futures
FWBC : ForwardBrokerOwnedCashCollateral
FWCC : ForwardClientOwnedCashCollateral
FWLV : ForeignWorkerLevy
FWSB : ForwardBrokerOwnedCashCollateralSegregated
FWSC : ForwardClientOwnedSegregatedCashCollateral
FXNT : ForeignExchangeRelatedNetting
GAFA : GovernmentFamilyAllowance
GAHO : GovernmentHousingAllowance
GAMB : GamblingOrWageringPayment
GASB : GasBill
GDDS : PurchaseSaleOfGoods
GDSV : PurchaseSaleOfGoodsAndServices
GFRP : GuaranteeFundRightsPayment
GIFT : Gift
GOVI : GovernmentInsurance
GOVT : GovernmentPayment
GSCB : PurchaseSaleOfGoodsAndServicesWithCashBack
GSTX : GoodsServicesTax
GVEA : AustrianGovernmentEmployeesCategoryA
GVEB : AustrianGovernmentEmployeesCategoryB
GVEC : AustrianGovernmentEmployeesCategoryC
GVED : AustrianGovernmentEmployeesCategoryD
GWLT : GovermentWarLegislationTransfer
HEDG : Hedging
HLRP : PropertyLoanRepayment
HLST : PropertyLoanSettlement
HLTC : HomeHealthCare
HLTI : HealthInsurance
HREC : HousingRelatedContribution
HSPC : HospitalCare
HSTX : HousingTax
ICCP : IrrevocableCreditCardPayment
ICRF : IntermediateCareFacility
IDCP : IrrevocableDebitCardPayment
IHRP : InstalmentHirePurchaseAgreement
INPC : InsurancePremiumCar
INPR : InsurancePremiumRefund
INSC : PaymentOfInsuranceClaim
INSM : Installment
INSU : InsurancePremium
INTC : IntraCompanyPayment
INTE : Interest
INTP : IntraPartyPayment
INTX : IncomeTax
INVS : InvestmentAndSecurities
IPAY : InstantPayments
IPCA : InstantPaymentsCancellation
IPDO : InstantPaymentsForDonations
IPEA : InstantPaymentsInECommerceWithoutAddressData
IPEC : InstantPaymentsInECommerceWithAddressData
IPEW : InstantPaymentsInECommerce
IPPS : InstantPaymentsAtPOS
IPRT : InstantPaymentsReturn
IPU2 : InstantPaymentsUnattendedVendingMachineWith2FA
IPUW : InstantPaymentsUnattendedVendingMachineWithout2FA
IVPT : InvoicePayment
LBIN : LendingBuyInNetting
LBRI : LaborInsurance
LCOL : LendingCashCollateralFreeMovement
LFEE : LendingFees
LICF : LicenseFee
LIFI : LifeInsurance
LIMA : LiquidityManagement
LMEQ : LendingEquityMarkedToMarketCashCollateral
LMFI : LendingFixedIncomeMarkedToMarketCashCollateral
LMRK : LendingUnspecifiedTypeOfMarkedToMarketCashCollateral
LOAN : Loan
LOAR : LoanRepayment
LOTT : LotteryPayment
LREB : LendingRebatePayments
LREV : LendingRevenuePayments
LSFL : LendingClaimPayment
LTCF : LongTermCareFacility
MAFC : MedicalAidFundContribution
MARF : MedicalAidRefund
MARG : DailyMarginOnListedDerivatives
MBSB : MBSBrokerOwnedCashCollateral
MBSC : MBSClientOwnedCashCollateral
MCDM : MultiCurrenyChequeDomestic
MCFG : MultiCurrenyChequeForeign
MDCS : MedicalServices
MGCC : FuturesInitialMargin
MGSC : FuturesInitialMarginClientOwnedSegregatedCashCollateral
MOMA : MoneyMarket
MP2B : MobileP2BPayment
MP2P : MobileP2PPayment
MSVC : MultipleServiceTypes
MTUP : MobileTopUp
NETT : Netting
NITX : NetIncomeTax
NOWS : NotOtherwiseSpecified
NWCH : NetworkCharge
NWCM : NetworkCommunication
OCCC : ClientOwnedOCCPledgedCollateral
OCDM : OrderChequeDomestic
OCFG : OrderChequeForeign
OFEE : OpeningFee
OPBC : OTCOptionBrokerOwnedCashCollateral
OPCC : OTCOptionClientOwnedCashCollateral
OPSB : OTCOptionBrokerOwnedSegregatedCashCollateral
OPSC : OTCOptionClientOwnedCashSegregatedCashCollateral
OPTN : FXOption
OTCD : OTCDerivatives
OTHR : Other
OTLC : OtherTelecomRelatedBill
PADD : PreauthorizedDebit
PAYR : Payroll
PCOM : PropertyCompletionPayment
PDEP : PropertyDeposit
PEFC : PensionFundContribution
PENO : PaymentBasedOnEnforcementOrder
PENS : PensionPayment
PHON : TelephoneBill
PLDS : PropertyLoanDisbursement
PLRF : PropertyLoanRefinancing
POPE : PointOfPurchaseEntry
PPTI : PropertyInsurance
PRCP : PricePayment
PRME : PreciousMetal
PTSP : PaymentTerms
PTXP : PropertyTax
RAPI : RapidPaymentInstruction
RCKE : RepresentedCheckEntry
RCPT : ReceiptPayment
RDTX : RoadTax
REBT : Rebate
REFU : Refund
RELG : RentalLeaseGeneral
RENT : Rent
REOD : AccountOverdraftRepayment
REPO : RepurchaseAgreement
RETL : RetailPayment
RHBS : RehabilitationSupport
RIMB : ReimbursementOfAPreviousErroneousTransaction
RINP : RecurringInstallmentPayment
RLWY : Railway
ROYA : Royalties
RPBC : BilateralRepoBrokerOwnedCollateral
RPCC : RepoClientOwnedCollateral
RPNT : BilateralRepoInternetNetting
RPSB : BilateralRepoBrokerOwnedSegregatedCashCollateral
RPSC : BilateralRepoClientOwnedSegregatedCashCollateral
RRBN : RoundRobin
RRCT : ReimbursementReceivedCreditTransfer
RRTP : RelatedRequestToPay
RVPM : ReceiveAgainstPayment
RVPO : ReverseRepurchaseAgreement
SALA : SalaryPayment
SASW : ATM
SAVG : Savings
SBSC : SecuritiesBuySellSellBuyBack
SCIE : SingleCurrencyIRSExotic
SCIR : SingleCurrencyIRS
SCRP : SecuritiesCrossProducts
SCVE : PurchaseSaleOfServices
SECU : Securities
SEPI : SecuritiesPurchaseInhouse
SERV : ServiceCharges
SHBC : BrokerOwnedCollateralShortSale
SHCC : ClientOwnedCollateralShortSale
SHSL : ShortSell
SLEB : SecuritiesLendingAndBorrowing
SLOA : SecuredLoan
SLPI : PaymentSlipInstruction
SPLT : SplitPayments
SPSP : SalaryPensionSumPayment
SSBE : SocialSecurityBenefit
STDY : Study
SUBS : Subscription
SUPP : SupplierPayment
SWBC : SwapBrokerOwnedCashCollateral
SWCC : SwapClientOwnedCashCollateral
SWFP : SwapContractFinalPayment
SWPP : SwapContractPartialPayment
SWPT : Swaption
SWRS : SwapContractResetPayment
SWSB : SwapsBrokerOwnedSegregatedCashCollateral
SWSC : SwapsClientOwnedSegregatedCashCollateral
SWUF : SwapContractUpfrontPayment
TAXR : TaxRefund
TAXS : TaxPayment
TBAN : TBAPairOffNetting
TBAS : ToBeAnnounced
TBBC : TBABrokerOwnedCashCollateral
TBCC : TBAClientOwnedCashCollateral
TBIL : TelecommunicationsBill
TCSC : TownCouncilServiceCharges
TELI : TelephoneInitiatedTransaction
TLRF : NonUSMutualFundTrailerFeePayment
TLRR : NonUSMutualFundTrailerFeeRebatePayment
TMPG : TMPGClaimPayment
TPRI : TriPartyRepoInterest
TPRP : TriPartyRepoNetting
TRAD : Commercial
TRCP : TreasuryCrossProduct
TREA : TreasuryPayment
TRFD : TrustFund
TRNC : TruncatedPaymentSlip
TRPT : RoadPricing
TRVC : TravellerCheque
UBIL : Utilities
UNIT : UnitTrustPurchase
VATX : ValueAddedTaxPayment
VIEW : VisionCare
WEBI : InternetInitiatedTransaction
WHLD : WithHolding
WTER : WaterBill

SDD purpose codes

The categoryPurposeCode(1) and purposeCode(2) used in the SDDTransaction.

SALA(1) (2)Salary Payment
TREA(1) (2)Treasury Payment
ADVA(2)Advance Payment
AGRT(2)Agricultural Transfer
ALMY(2)Alimony Payment
BECH(2)Child Benefit
BENE(2)Unemployment Disability Benefit
BONU(2)Bonus Payment
CASH(1) (2)Cash Management Transfer
CBFF(2)Capital Building
CHAR(2)Charity Payment
COLL(2)Collection Payment
CMDT(2)Commodity Transfer
COMC(2)Commercial Payment
COMM(2)Commission
COST(2)Costs
CPYR(2)Copyright
DIVI(1) (2)Dividend
FREX(2)Foreign Exchange
GDDS(2)Purchase Sale Of Goods
GOVT(1) (2)Gouvernment Payment
IHRP(2)Instalment Hire Purchase Agreement
INTC(1) (2)Intra Company Payment
INSU(2)Insurance Premium
INTE(1) (2)Interest
LIFC(2)Licence Fee
LOAN(1) (2)Loan
LOAR(2)Loan Repayment
NETT(2)Netting
PAYR(2)Payment Roll
PENS(1) (2)Pension
REFU (2)Refund
RENT(2)Rent
ROYA(2)Royalties
SCVE(2)Purchase Sale Of Services
SECU(1) (2)Securities
SSBE(1) (2)Social Security Benefit
SUBS(2)Subscription
TAXS(1) (2)Tax Payment
COMT(2)Consumer Third Party Consolidated Payment
DBTC(2)Debit Collection Payment
SUPP(1) (2)Supplier Payment
HEDG(1) (2)Hedging
MSVC(2)Multiple Service Types
NOWS(2)Not Otherwise Specified
CARD(2)Card Payment
CDBL(2)Credit Card Bill
FERB(2)Ferry
AIRB(2)Air
BUSB(2)Bus
RLWY(2)Railway
CVCF(2)Convalescent Care Facility
DNTS(2)Dental Services
ANTS(2)Anesthesia Services
HLTC(2)Home Health Care
HSPC(2)Hospital Care
ICRF(2)Intermediate Care Facility
LTCF(2)Long Term Care Facility
MDCS(2)Medical Services
VIEW(2)Vision Care
DMEQ(2)Durable Medicale Equipment
CBTV(2)Cable TV Bill
ELEC(2)Electricity Bill
GASB(2)Gas Bill
PHON(2)Telephone Bill
OTLC(2)Other Telecom Related Bill
WTER(2)Water Bill
STDY(2)Study
PRCP(2)Price Payment
INSM(2)Installment
RINP(2)Recurring Installment Payment
OFEE(2)Opening Fee
CFEE(2)Cancellation Fee
GOVI(2)Government Insurance
INPC(2)Insurance Premium Car
LBRI(2)Labor Insurance
LIFI(2)Life Insurance
PPTI(2)Property Insurance
HLTI(2)Health Insurance
CLPR(2)Car Loan Principal Repayment
ESTX(2)Estate Tax
HLRP(2)Housing Loan Repayment
CSLP(2)Company Social Loan Payment To Bank
HSTX(2)Housing Tax
INTX(2)Income Tax
NITX(2)Net Income Tax
NWCH(2)Network Charge
NWCM(2)Network Communication
BEXP(2)Business Expenses
TRFD(2)Trust Fund
RCPT(2)Receipt
PTSP(2)Payment Terms
OTHR(2)Other
WHLD(1)(2)With Holding
CORT(1)Trade Settlement Payment
VATX(1)Value Added Tax Payment
TRAD(1)Trade

Error codes

ErrorDetails ATTRIBUTES
errorCodeCode 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 values
101MESSAGE_RECEIVED_INVALID
102MESSAGE_VERSION_NUMBER_NOT_SUPPORTED
103SENT_MESSAGES_LIMIT_EXCEEDED
201REQUIRED_ELEMENT_MISSING
202CRITICAL_MESSAGE_EXTENSION_NOT_RECOGNIZED
203FORMAT_ON_ONE_OR_MORE_ELEMENTS_INVALID_ACCORDING_SPECS
204DUPLICATE_DATA_ELEMENT
301TRANSACTION_ID_NOT_RECOGNIZED
302DATA_DECRYPTION_FAILURE
303ACCESS_DENIED_INVALID_ENDPOINT
304ISO_CODE_NOT_VALID
305TRANSACTION_DATA_NOT_VALID
306MCC_NOT_VALID_FOR_PAYMENT_SYSTEM
307SERIAL_NUMBER_NOT_VALID
402TRANSACTION_TIMED_OUT
403TRANSIENT_SYSTEM_FAILURE
404PERMANENT_SYSTEM_FAILURE
405SYSTEM_CONNECTION_FAILURE
911DATA_FIELDS_RELEVANCE_CHECK_FAILURE
912DUPLICATED_TRANSACTION_ID
ErrorComponent possible values
« C »THREE_DS_SDK
« S »THREE_DS_SERVER
« D »DIRECTORY_SERVER
« A »ACCESS_CONTROL_SERVER

Test values

Articles

  • Test IBAN values
  • Test cards Values

Test IBAN values

Find below the list of HTTP return codes:

DE91100000000123456789AXABFRPP
AZ96AZEJ00000000001234567890AXABFRPP
CY21002001950000357001234567AXABFRPP
ES7921000813610123456789AXABFRPP
FR7630006000011234567890189AXABFRPP
FO9264600123456789AXABFRPP
FR7630002032531234567890168CRLYFRPPXXX

Test cards Values

This page provides a list of test card PANs you can use to validate your CentralPay integration. Each PAN below triggers a predictable scenario (bank refusal, 3DS authentication outcome, or card attributes such as EEA / region / product type).

Note: 3DS outcome values (transStatus such as Y, C, D, I, N…) are described in the dedicated 3DS 2.2 BRW documentation.

Card details to use: for all test PANs on this page, the expiry date and CVC values are free. The only requirement is that the expiry date must be later than today’s date. The CVC must be 3 digits (for example: 123).

Legend: ✅ Success · ❌ Bank refusal · 🛡️ 3DS · 🔒 3DS Challenge · 🔁 3DS Decoupled · ℹ️ 3DS Info · 🧾 Non-3DS · 🧭 Attributes

Quick test cards (most common scenarios)

PANScenarioWhat you should observe
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)Authorization succeeds with a successful 3DS authentication.
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)Challenge flow expected (you must complete the challenge step to proceed).
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowDecoupled authentication scenario (handling depends on your 3DS implementation).
4556 1041 6038 2032✅🧾 Non-3DS success (Authentication = N)Authorization succeeds without 3DS.
4000 0000 0000 0077❌ Bank refusal – Insufficient funds (51)Authorization is refused with bank return code 51 (Insufficient funds).
4000 0000 0000 0085❌ Bank refusal – Do not honor (5)Authorization is refused with bank return code 5 (Do not honor / refused).

Bank refusal PANs: if a PAN is described as “for no-3DS, 3DS1.0 and 3DS2.0”, it means the authorization will be refused regardless of the authentication flow.

Visa Card numbers

1) Bank refusals (no-3DS / 3DS1.0 / 3DS2.0)

PANScenarioDescription
4000 0000 0000 0051❌ Card lost (41)This PAN simulates a bank refusal with return code 41 (Card lost), regardless of the authentication flow.
4000 0000 0000 0069❌ Fraud suspicion (59)This PAN simulates a bank refusal with return code 59 (Fraud suspicion), regardless of the authentication flow.
4000 0000 0000 0077❌ Insufficient funds (51)This PAN simulates a bank refusal with return code 51 (Insufficient funds), regardless of the authentication flow.
4000 0000 0000 0085❌ Do not honor / refused (5)This PAN simulates a bank refusal with return code 5 (Do not honor / refused), regardless of the authentication flow.

2) 3DS / Non-3DS scenarios

These PANs are designed to reproduce specific 3DS outcomes (transStatus) or a non-3DS path. If transStatus = C, a challenge flow is expected and must be completed.

PANScenarioDescription
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
4234 6319 8242 8908ℹ️🛡️ 3DS information only (transStatus = I)This PAN simulates a 3DS authentication with transStatus = I (Information only), to validate how you handle an informational 3DS outcome.
4234 6319 8242 8916🔁🛡️ 3DS decoupled (transStatus = D) – application flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using an application flow.
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using a browser flow.
4556 1041 6038 2032✅🧾 Non-3DS success (Authentication = N)This PAN simulates a successful authorization without 3DS (non-3DS flow). Authentication value returned is N.
4024 0071 7987 2394🧾 Non-3DS transaction (Authentication = N)This PAN simulates a non-3DS transaction (authentication = N) to validate your non-3DS payment path.

3) Card attributes simulation (EEA / region / productType / cardType)

These PANs are designed to simulate card metadata (EEA / region / productType / cardType). Use them to validate your business rules, reporting, segmentation, or routing logic based on card attributes.

PANAttributes returnedDescription
4032 0389 8296 2700🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=DEBITThis PAN simulates an EEA consumer debit card in Europe.
4032 0343 8883 4767🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=CREDITThis PAN simulates an EEA consumer credit card in Europe.
4020 0280 0191 2012🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates an EEA consumer card in Europe with cardType=UNKNOWN.
4032 0337 9569 2248🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
4032 0368 1354 0364🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=CREDITThis PAN simulates an EEA corporate credit card in Europe.
4032 0387 5662 0096🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates an EEA corporate card in Europe with cardType=UNKNOWN.
4032 0358 5604 7592🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=DEBITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and DEBIT.
4032 0302 9068 3219🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=CREDITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and CREDIT.
4032 0377 5134 3001🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates an EEA card in Europe with productType=UNKNOWN and cardType=UNKNOWN.
4032 0307 5488 6225🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in USA/CANADA.
4032 0310 2547 6341🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in USA/CANADA.
4032 0341 4311 3978🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates a non-EEA consumer card in USA/CANADA with cardType=UNKNOWN.
4032 0309 5816 7398🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in USA/CANADA.
4032 0375 4480 7536🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=CREDITThis PAN simulates a non-EEA corporate credit card in USA/CANADA.
4032 0366 9148 7225🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates a non-EEA corporate card in USA/CANADA with cardType=UNKNOWN.
4032 0325 8917 3860🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=DEBITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and DEBIT.
4032 0388 0897 9557🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=CREDITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and CREDIT.
4032 0374 2147 1240🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and cardType=UNKNOWN.

Mastercard Card numbers

1) 3DS / Non-3DS scenarios

PANScenarioDescription
5333 2591 5564 3223✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
5306 8899 4283 3340🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
5328 7203 8458 2224✅🧾 Non-3DS success (Authentication = N)This PAN simulates a successful authorization without 3DS (non-3DS flow). Authentication value returned is N.
5187 4346 4359 3002✅🧾 Non-3DS success (Authentication = N)This PAN simulates a successful authorization without 3DS (non-3DS flow). Authentication value returned is N.

2) Card attributes simulation (EEA / region / productType / cardType)

PANAttributes returnedDescription
5517 4500 0000 0168🧭 EEA=false ; region=US ; productType=CONSUMER ; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in the US.
5223 8599 0000 0174🧭 EEA=false ; region=US ; productType=CORPORATE ; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in the US.
5325 0900 0000 0115🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5325 0900 0000 0008🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5486 7467 7300 0005🧭 EEA=false ; region=EUROPE ; productType=CONSUMER ; cardType=DEBIT; Country=RUSThis PAN simulates a non-EEA consumer debit card with Country=RUS.
5588 1000 0000 0007🧭 EEA=false ; region=CEMEA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in CEMEA.
5122 9400 0000 0009🧭 EEA=false ; region=LATIN_AMERICA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in LATIN_AMERICA.

Amex Card numbers

1) 3DS / Non-3DS scenarios

PANScenarioDescription
3415 0209 8634 895✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
3486 3826 7931 507🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
3456 9539 9207 589✅🧾 Non-3DS success (Authentication = N)This PAN simulates a successful authorization without 3DS (non-3DS flow). Authentication value returned is N.

2) Card attributes simulation (EEA / region / productType)

PANAttributes returnedDescription
3415 0209 8634 895🧭 EEA=false ; region=EUROPE ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in Europe.
3486 3826 7931 507🧭 EEA=false ; region=EUROPE ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in Europe.
3718 4294 2351 004🧭 EEA=false ; region=EUROPE ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in Europe with productType=UNKNOWN.
3712 5311 3391 201🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in ASIA_PACIFIC.
3423 1631 7472 410🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in ASIA_PACIFIC.
3710 9829 7279 338🧭 EEA=false ; region=ASIA_PACIFIC ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in ASIA_PACIFIC with productType=UNKNOWN.

CB Card numbers

These PANs allow you to test how the card is classified under the CB scheme (CB vs co-badged CB_VISA / CB_MASTERCARD) in your integration and reporting.

PANScenarioDescription
4020 0235 6597 5380✅🧾 Non-3DS success – scheme: CBThis PAN simulates a successful authorization without 3DS on the CB scheme.
4020 0254 4041 8403✅🧾 Non-3DS success – scheme: CB_VISAThis PAN simulates a successful authorization without 3DS on the CB_VISA scheme.
5232 1035 2372 2651✅🧾 Non-3DS success – scheme: CB_MASTERCARDThis PAN simulates a successful authorization without 3DS on the CB_MASTERCARD scheme.

Troubleshooting (what to check)

If you don’t get the expected outcome, start by checking:

  • Bank refusals: verify the returned bank refusal code/message in your transaction response or webhook (e.g., 51, 41, 59, 5).
  • 3DS scenarios: verify the returned transStatus. If C, a challenge flow must be completed; if D, the expected handling depends on your decoupled implementation.
  • Card attributes: verify the returned card metadata (EEA / region / productType / cardType) in the payment method or transaction details.

Doc Contents

Doc Footnotes

Doc Elements

  • Mentions légales
  • Politique de confidentialité

© 2025 CentralPay