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

Rogan Documentation

  • Icône de dossier fermée Icône de dossierDéveloppeurs
    • How to use the swagger >
    • Authentication 3DS 2.2 >
    • BankAccount >
    • Card token
    • CARD Transaction
      • Transaction
      • Card
      • Credit
      • Disputes
    • Charge
    • Customer >
    • Installment Payment >
    • MerchantInfo >
    • Onboarding
      • Create Enrollement
      • Complete enrollment
      • Update enrollment
      • Search enrollement
      • Enrollment Details
      • E-money
      • Misc
    • Payout >
    • Refund >
    • Payment Request >
    • SCT Transaction
      • SCT Transaction
      • SCT Transaction Reversal
      • Bank Reconciliation
      • Bank Reconciliation external
    • SDD Transaction
      • Mandate
      • SDD Transaction
      • SDD Transaction Reversal
    • Subscription
      • Subscription Model
      • Subscription
      • Invoice & invoiceItem
    • Transfer >
    • TransferReversal >
    • Wallet >
    • Blacklist >
    • WhiteList >
    • 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)
    • 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
    • Resources by type
      • Full Api
      • 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
  • Icône de dossier fermée Icône de dossierDocumentation
    • Guide de démarrage rapide >
    • Le compte Marchand CentralPay
      • Compte Marchand
      • Profils clients
      • Points de vente
      • Comptes de paiement
      • Comptes de ME
    • Services liés au compte
      • Notifications email/sms
      • Services anti-fraude
      • Reversement bancaire
      • 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
    • Créer des comptes
      • 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
    • Transférer des paiements
      • Informations générales
      • Transfert indépendant
      • Transfert via Transaction ou PaymentRequest
      • Reversement bancaire pour tiers
      • Retours, statuts et webhooks
    • Plugin CMS
      • WooCommerce
      • PrestaShop
      • Magento
    • Cas d’usages
      • Marketplace C2C
  • Icône de dossier fermée Icône de dossierInformations générales
    • Contacter CentralPay >
    • L’établissement CentralPay
      • Certifications et agréments
      • Sécurité et hébergement
      • Engagements de disponibilité
      • Évolution de la plateforme
    • Ouvrir un compte Marchand 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
    • Glossaire
      • Terminologies CentralPay
      • Lexique des paiements
    • API et interfaces
      • Utilisation des API CentralPay
      • Portail Marchand
      • Portail Client
      • Portail d’inscription
    • Modèles contractuels
      • Marchand standard
      • Marchand Partenaire
        • Déclaration MOBSP (Orias)
      • Marchand Mandataire
        • Déclaration Agent PSP (ACPR)
        • Déclaration Distributeur ME (ACPR)
    • 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)

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

Compte Marchand

Le compte Marchand est ouvert au nom d’une entité (personne physique ou morale) et permet d’accéder aux services CentralPay d’encaissement, de paiement ou de gestion de la monnaie électronique. Il constitue la base :

  • Contractuelle : rattachement à une grille tarifaire, acceptation des CGU, contrat d’acceptation le cas échéant
  • Technique : authentification, accès API, création des utilisateurs
  • Fonctionnelle : paramétrage des points de vente, scénarios de notification, reversements, règles d’acceptation
  • Réglementaire : gestion du KYC/KYB, conformité à la réglementation

Un compte Marchand peut contenir un ou plusieurs comptes de paiement ou comptes de monnaie électronique, selon les services activés.

1. Types de comptes selon le modèle contractuel

Chaque type de compte 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, d’un contrat d’acceptation, et peut accéder aux services CentralPay via API ou via un partenaire.

👉 En savoir plus sur le modèle Marchand

Partenaire Intégrateur Type : STANDARD + INTEGRATEUR

Le Marchand 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 initier des transactions techniques via les accès API du Marchand
  • CentralPay facture chaque Marchand directement

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

Partenaire Intégrateur MOBSP Type : STANDARD + INTEGRATEUR + MOBSP

Le Marchand 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 : STANDARD + TECHNIQUE

Le Marchand Partenaire Technique développe une solution d’encaissement opérée depuis son ou ses propres points de ventes, pour le compte de plusieurs Marchands standards. Il utilise ses propres accès API pour superviser les opérations liées à cette structure centralisée.

  • Un seul point de vente est utilisé pour regrouper les 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 d’enrôlement ni agir au nom des utilisateurs

👉 En savoir plus sur le modèle Partenaire Technique

Partenaire Technique MOBSP Type : STANDARD + TECHNIQUE + MOBSP

Le Marchand Partenaire Technique MOBSP est mandaté pour initier une demande d’entrée en relation au nom de ses utilisateurs. Il peut transmettre les informations nécessaires via l’API d’onboarding, mais n’intervient pas dans l’exécution des opérations de paiement.

  • Même droit et fonctionnement qu’un Partenaire Technique
  • Peut initier une demande d’enrôlement complète via API
  • Peut accompagner le marchand durant l’enrôlement

👉 En savoir plus sur le modèle Partenaire Technique MOBSP

Mandataire DME Type : DME

Le Marchand Mandataire DME (Distributeur de Monnaie Électronique) transmet des instructions de chargement, de transfert ou de remboursement pour le compte de sous-marchands. Il agit en tant qu’intermédiaire technique sur la monnaie électronique, et peut percevoir une commission sur les opérations.

👉 En savoir plus sur le modèle Mandataire DME

Mandataire Agent Type : AGENT

Le Marchand Mandataire Agent est un Agent prestataire de services de paiement (Agent PSP) enregistré auprès de l’ACPR. Il peut inscrire des sous-marchands, gérer le KYC/KYB, encaisser des paiements, piloter les reversements, et opérer un compte de collecte. Il agit au nom et pour le compte de CentralPay dans le cadre de services réglementés.

👉 En savoir plus sur le modèle Mandataire Agent

Sous-marchand Type : BASIC

Les Sous-Marchands sont des entités finales rattachées à un Marchand Mandataire (DME ou Agent). Ils disposent d’un compte de paiement ou de monnaie électronique pour recevoir des fonds, et peuvent accéder au portail Marchand pour consulter leurs opérations et gérer leurs reversements.

On distingue deux types de sous-marchand selon leur finalité :

  • Sous-marchand commercial : agit à des fins commerciales (vente de biens ou de services)
  • Sous-marchand finance : agit à des fins non commerciales (ex. chargement de wallet pour accès à un service, projet interne ou collaboratif…)

Les sous-marchands ouvrent des comptes Chez CentralPay mais n’entrent pas en relation d’affaires directe avec CentralPay. Leur cadre d’utilisation et leurs tarifications sont définis dans les CGU des Agents auxquels ils sont rattachés.

2. Paramétrage des emails de contact

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

  • Email contact : référent principal du compte
  • Email administratif : en charge des sujets juridiques ou contractuels
  • Email technique : en charge de l’intégration ou des incidents
  • Email financier : en charge de la facturation ou des flux bancaires
ℹ️ Par défaut, ces adresses sont initialisées avec l’email du titulaire du compte. Elles peuvent être modifiées à tout moment depuis le Portail 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 reversements pour le compte de tiers. La typologie de services et d’opérations proposées par CentralPay varie en fonction des besoins et de l’activité de ses marchands et partenaires.

CentralPay est une société indépendante, entièrement propriétaire de sa technologie et de ses agréments. Garantissant la meilleure autonomie possible dans ses choix de partenariats et de son évolution.

CentralPay est autorisé à entrer en relation d’affaires avec les entreprises enregistrées dans l’Espace Économique Européen.

ACPR
(Banque de France)
Établissement de Monnaie Électronique : CentralPay est un Établissement de Monnaie Électronique régulé par la Banque de France à travers son autorité de contrôle prudentiel et de résolution, l’ACPR (CIB 17138).
DSP2 : CentralPay est conforme à la 2ème Directive sur les Services de Paiements qui impose notamment des exigences en matière d’authentification forte et de protection des données.
PCI-DSS : CentralPay obtient annuellement la certification la plus élevée possible en matière de sécurisation des données bancaires et prévention de la fraude ; la norme PCI DSS de niveau 1.
EBA CLEARING & EPC : En qualité de membre de l’European Payment Council et sa connexion à l’EBA CLEARING, CentralPay intègre les schémas européens des règlements SEPA afin d’émettre et de recevoir des virements et des prélèvements depuis ses propres IBAN et IBAN virtuels.
SWIFT : Connecté au réseau SWIFT, messagerie la plus acceptée à l’échelle mondiale, CentralPay est en mesure d’échanger des flux financiers internationaux avec la plupart des banques et des institutions financières participantes.
Visa, Mastercard, Cartes bancaires, American Express : CentralPay est accrédité auprès des grands réseaux de cartes, afin d’optimiser les parcours et la conversion des paiements de tous ses utilisateurs.

How to use the swagger >

You’ll find below instruction to use our swagger properly

1 – This is where you can choose the server you’ll call for your tests. For now, only RCT (Test Api) is available.
2 – In order to do your tests, you’ll need to authenticate with your credentials. You can use here your Api login and password. You can also use our test login : Doctest:4I9HJRTd


3 – This is where you will be able to see the parameters for each endpoint, and do your tests.

4 – Try it out. Use this if you want to be able to test the endpoint. Make sure you’re authenticated before doing so.
5 – This is where you’ll be able to use the test values of your choosing. By default, most values are already filled, but use yours for better results.
6 – Click here once values are filled to call our Api and do your tests.
7 – This is where you’ll see the results once you called our Api. You’ll also find here by default responses example for this endpoint.

Guide de démarrage rapide >

1. Entrée en relation

Pour commencer, découvrez nos offres et choisissez la méthode d’entrée en relation la plus adaptée à votre projet :

Consultez nos offres tarifaires
Présentez votre projet à notre équipe commerciale
Choisissez le modèle d’entrée en relation adapté à votre activité
Découvrez les étapes d’entrée en relation

2. Création de votre compte de test

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

  • Compte de test Marchand : Pour tester uniquement la solution d’encaissement Smart Collection, demandez un compte de test via notre formulaire
  • Compte de test Partenaire : Pour tester l’encaissement (Smart Collection) et les transferts de fonds (Easy Wallet), contactez notre service client. Nous créerons et paramétrerons votre compte de test en conséquence

3. Choix de votre méthode d’intégration

Choisissez la méthode d’intégration qui correspond à vos besoins :

  • Intégration Smart : Utilisez les demandes de paiement et la page de paiement CentralPay pour encaisser vos transactions. Les parcours clients sont préconfigurés, pour un déploiement rapide
  • Intégration Custom : Intégrez directement les services API pour les transactions par carte, par virement SEPA (SCT) et/ou par prélèvement SEPA (SDD). Cette approche vous permet de maîtriser entièrement l’expérience client, mais requiert un développement plus avancé

4. Paramétrage de votre compte

Votre compte 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 compte de test (RCT) ne sont pas automatiquement répliqués en production (PROD). Veillez à les reconfigurer une fois votre compte de production activé.

Paramétrages principaux :

Accès d’authentification API
Déclaration des domaines autorisés (si intégration Custom)
Comptes de paiement et comptes bancaires de sortie
Utilisateurs du portail
Points de vente
Webhooks
Identifiant de Créancier SEPA (ICS)

Paramétrages secondaires :

Emails de contact du compte
Règles d’acceptation
Reversements
Libellé de relevé bancaire
Notifications automatiques
Page de paiement Smart Form
Profils 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 compte de test (RCT) pour vérifier l’intégration :

  • Carte : Utilisez nos cartes de test pour simuler différents statuts de transaction
  • Virement SEPA (SCT) : Créez une ou plusieurs transactions SCT puis demandez à notre support de simuler leur traitement
  • Prélèvement SEPA (SDD) : Utilisez un IBAN/BIC de test fourni dans notre documentation

6. Mise en production

Une fois vos tests validés en environnement 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_68cacb11538bb = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_68cacb11538bb", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_68cacb11538bb.load(); });

Card authorization - Bank return codes

List of codes returned by the issuer bank to CentralPay after an authorization request

CodeDescription
00Transaction approved or successfully processed
02Contact card issuer
03Invalid acceptor
04Keep card
05Do not honor
06Transaction invalid for terminal
07Honor with ID
08Time-Out
09No original
10Unable to reverse
11Partial approval
12Invalid transaction
13Invalid amount
14Invalid cardholder number
15Unknown card issuer
17Invalid capture date (terminal business date)
19Repeat transaction later
20No From Account
21No To Account
22Account not verified
23Account not saved
24No Credit Account
25Unable to locate record in file
26Record duplicated
27 ‘Edit’ error in file update field
28File access denied
29File update not possible
30Format error
31Identifier of acquiring organization unknown
32Transaction partially completed
33Card validity date exceeded
34Implausible card data
38Number of PIN attempts exceeded
39Transaction not allowed
41Lost card
42Special Pickup
43Stolen card
44Stolen card
51Insufficient funds or overdraft
54 Card expired
55Incorrect PIN
56 Card not on file
57Transaction not authorized to this cardholder
58Transaction prohibited at terminal
59Suspected fraud
60 the card acceptor must contact the buyer
61Withdrawal amount over limit
62Card use restricted
63MAC Key Error
65 Frequency limit exceeded
66Acquirer limit reached
67Card withheld
68Response not received or received too late
75Number of PIN attempts exceeded
76Invalid Account
77Issuer not participating in service
78Function not available
79Key validation error
80Approved for purchase amount only
81Unable to verify PIN
82Invalid CVV
83Not refused
84Invalid transaction lifecycle
85No key to use
86KME synchronization error
87PIN error
88MAC synchronization error
89Security violation
90Temporary system shutdown
91Card transmitter inaccessible
92Card issuer unknown
93Transacation cannot be finalized
94Duplicate request
95Contact acquirer
96System malfunction
97No Funds Transfer
98Duplicate Reversal
99Duplicate Transaction
N3Cash Service Not Available
N4Cash Back Request Exceeds Issuer Limit
N7Declined for CVV2 failure
R0Stop Payment Order
R1Revocation of Authorisation Order
R3Revocation of all Authorisations Order
A0Withdrawal in contact mode
A1VADS fallback
000Approved
001Approve with ID
002Partial approval (prepaid cards only)
100Reject
101Card expired / invalid expiry date
106PIN attempts exceeded
107Please call issuer
109Invalid merchant
110Invalid amount
111Invalid account / Invalid MICR (traveler’s check)
115Requested function not supported
117Invalid PIN
119Cardholder not registered / not authorized
122Invalid card security code (alias CID, 4DBC, 4CSC)
125Invalid effective date
181Format error
183Invalid currency code
187Refuse – New card issued
189Refuse – Merchant cancelled or closed / SE
200Refuse – Pick up card
900Accepted – ATC synchronization
909System malfunction (cryptographic error)
912Issuer not available

L'établissement CentralPay

Articles

  • Certifications et agréments
  • Sécurité et hébergement
  • Engagements de disponibilité
  • Évolution de la plateforme

Certifications et agréments

CentralPay propose des solutions de paiement modulaires permettant l’unification des flux d’encaissement pour compte propre et l’automatisation des reversements pour le compte de tiers. La typologie de services et d’opérations proposées par CentralPay varie en fonction des besoins et de l’activité de ses marchands et partenaires.

CentralPay est une société indépendante, entièrement propriétaire de sa technologie et de ses agréments. Garantissant la meilleure autonomie possible dans ses choix de partenariats et de son évolution.

CentralPay est autorisé à entrer en relation d’affaires avec les entreprises enregistrées dans l’Espace Économique Européen.

ACPR
(Banque de France)
Établissement de Monnaie Électronique : CentralPay est un Établissement de Monnaie Électronique régulé par la Banque de France à travers son autorité de contrôle prudentiel et de résolution, l’ACPR (CIB 17138).
DSP2 : CentralPay est conforme à la 2ème Directive sur les Services de Paiements qui impose notamment des exigences en matière d’authentification forte et de protection des données.
PCI-DSS : CentralPay obtient annuellement la certification la plus élevée possible en matière de sécurisation des données bancaires et prévention de la fraude ; la norme PCI DSS de niveau 1.
EBA CLEARING & EPC : En qualité de membre de l’European Payment Council et sa connexion à l’EBA CLEARING, CentralPay intègre les schémas européens des règlements SEPA afin d’émettre et de recevoir des virements et des prélèvements depuis ses propres IBAN et IBAN virtuels.
SWIFT : Connecté au réseau SWIFT, messagerie la plus acceptée à l’échelle mondiale, CentralPay est en mesure d’échanger des flux financiers internationaux avec la plupart des banques et des institutions financières participantes.
Visa, Mastercard, Cartes bancaires, American Express : CentralPay est accrédité auprès des grands réseaux de cartes, afin d’optimiser les parcours et la conversion des paiements de tous ses utilisateurs.

Sécurité et hébergement

CentralPay exploite ses services depuis deux Datacenter français. Les équipements et services exploités sur ces deux sites sont entièrement redondés.

1. Un hébergement hautement résilient

  • Deux Datacenter de conception TIER III basés à Tours
  • Environnement actif/actif entre les deux sites
  • Des engagements contractuels (SLA) de 99.9 %
  • Des normes reconnues : ISO27001, PCI-DSS, Code of Conduct

2. Une infrastructure garante de la sécurité de vos données

  • Cœur de réseau allant jusqu’à 10 Gb/s
  • Réseau électrique entièrement redondé, densité électrique allant de 600 mA à 32 A
  • Système de contrôle d’accès avec double authentification (badge & code personnel)
  • Vidéo-surveillance et alarme reliée 24h/7j à notre télésurveillance
  • Système d’extinction d’incendie par aérosol FirePro

Engagements de disponibilité

CentralPay garantit une disponibilité annuelle de ses services (SLA & PCA) selon les barèmes suivants :

CPAY API
Traitement des opérations de paiement
CPAY PORTALS
Portail d’inscription, client et utilisateur
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é.

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

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.

Le compte Marchand CentralPay

Articles

  • Compte Marchand
  • Profils clients
  • Points de vente
  • Comptes de paiement
  • Comptes de ME

Compte Marchand

Le compte Marchand est ouvert au nom d’une entité (personne physique ou morale) et permet d’accéder aux services CentralPay d’encaissement, de paiement ou de gestion de la monnaie électronique. Il constitue la base :

  • Contractuelle : rattachement à une grille tarifaire, acceptation des CGU, contrat d’acceptation le cas échéant
  • Technique : authentification, accès API, création des utilisateurs
  • Fonctionnelle : paramétrage des points de vente, scénarios de notification, reversements, règles d’acceptation
  • Réglementaire : gestion du KYC/KYB, conformité à la réglementation

Un compte Marchand peut contenir un ou plusieurs comptes de paiement ou comptes de monnaie électronique, selon les services activés.

1. Types de comptes selon le modèle contractuel

Chaque type de compte 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, d’un contrat d’acceptation, et peut accéder aux services CentralPay via API ou via un partenaire.

👉 En savoir plus sur le modèle Marchand

Partenaire Intégrateur Type : STANDARD + INTEGRATEUR

Le Marchand 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 initier des transactions techniques via les accès API du Marchand
  • CentralPay facture chaque Marchand directement

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

Partenaire Intégrateur MOBSP Type : STANDARD + INTEGRATEUR + MOBSP

Le Marchand 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 : STANDARD + TECHNIQUE

Le Marchand Partenaire Technique développe une solution d’encaissement opérée depuis son ou ses propres points de ventes, pour le compte de plusieurs Marchands standards. Il utilise ses propres accès API pour superviser les opérations liées à cette structure centralisée.

  • Un seul point de vente est utilisé pour regrouper les 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 d’enrôlement ni agir au nom des utilisateurs

👉 En savoir plus sur le modèle Partenaire Technique

Partenaire Technique MOBSP Type : STANDARD + TECHNIQUE + MOBSP

Le Marchand Partenaire Technique MOBSP est mandaté pour initier une demande d’entrée en relation au nom de ses utilisateurs. Il peut transmettre les informations nécessaires via l’API d’onboarding, mais n’intervient pas dans l’exécution des opérations de paiement.

  • Même droit et fonctionnement qu’un Partenaire Technique
  • Peut initier une demande d’enrôlement complète via API
  • Peut accompagner le marchand durant l’enrôlement

👉 En savoir plus sur le modèle Partenaire Technique MOBSP

Mandataire DME Type : DME

Le Marchand Mandataire DME (Distributeur de Monnaie Électronique) transmet des instructions de chargement, de transfert ou de remboursement pour le compte de sous-marchands. Il agit en tant qu’intermédiaire technique sur la monnaie électronique, et peut percevoir une commission sur les opérations.

👉 En savoir plus sur le modèle Mandataire DME

Mandataire Agent Type : AGENT

Le Marchand Mandataire Agent est un Agent prestataire de services de paiement (Agent PSP) enregistré auprès de l’ACPR. Il peut inscrire des sous-marchands, gérer le KYC/KYB, encaisser des paiements, piloter les reversements, et opérer un compte de collecte. Il agit au nom et pour le compte de CentralPay dans le cadre de services réglementés.

👉 En savoir plus sur le modèle Mandataire Agent

Sous-marchand Type : BASIC

Les Sous-Marchands sont des entités finales rattachées à un Marchand Mandataire (DME ou Agent). Ils disposent d’un compte de paiement ou de monnaie électronique pour recevoir des fonds, et peuvent accéder au portail Marchand pour consulter leurs opérations et gérer leurs reversements.

On distingue deux types de sous-marchand selon leur finalité :

  • Sous-marchand commercial : agit à des fins commerciales (vente de biens ou de services)
  • Sous-marchand finance : agit à des fins non commerciales (ex. chargement de wallet pour accès à un service, projet interne ou collaboratif…)

Les sous-marchands ouvrent des comptes Chez CentralPay mais n’entrent pas en relation d’affaires directe avec CentralPay. Leur cadre d’utilisation et leurs tarifications sont définis dans les CGU des Agents auxquels ils sont rattachés.

2. Paramétrage des emails de contact

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

  • Email contact : référent principal du compte
  • Email administratif : en charge des sujets juridiques ou contractuels
  • Email technique : en charge de l’intégration ou des incidents
  • Email financier : en charge de la facturation ou des flux bancaires
ℹ️ Par défaut, ces adresses sont initialisées avec l’email du titulaire du compte. Elles peuvent être modifiées à tout moment depuis le Portail 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 votre compte Marchand 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 compte 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 compte (en règle générale, vous n’aurez qu’un seul contrat à disposition)
    • Contrat par défaut : Sélectionnez le contrat VAD carte qui sera utilisé par défaut (en règle générale, vous n’aurez qu’un seul contrat à disposition)
    • Viban prioritaire : Si vous souhaitez que les IBAN Virtuels affichés dans les demandes de paiement soient ceux des Customers, alors sélectionnez « Client ». Si vous préférez afficher des IBAN Virtuels dédiés à chaque demande de paiement, alors sélectionnez « SCT ». Si besoin d’informations complémentaires, consultez notre rubrique sur les IBAN Virtuel

D’autres paramétrages ne sont pas obligatoires, mais sont importants pour votre parcours de vente :

  • Paramètres généraux
    • Logo : Chargez le logo de votre entreprise ou celui dédié à votre point de vente. Il apparaitra dans la page de paiement générée par les demandes de paiement
    • ID point de vente du marchand : Renseignez une référence personnalisée vous permettant d’identifier plus simplement le point de vente dans vos systèmes d’information

  • Emails de confirmation
    • Cocher « Activer l’email de confirmation de paiement » : En cochant cette case, vous activez l’envoi d’un email à vos clients lorsqu’ils réalisent un paiement par carte. Il s’agit d’un email standardisé non modifiable contenant un récapitulatif du paiement (raison sociale de votre compte, nom de votre point de vente, date du paiement, identifiant de la transaction CentralPay, référence marchand de la transaction, description marchand de la transaction, code d’autorisation du paiement, marque de la carte, 6 premiers et 4 derniers chiffres de la carte, montant de la transaction, état de la transaction). La langue et le pied de page de l’email peuvent être paramétrés depuis le Portail 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, reversement des fonds vers un compte bancaire…). Ils permettent de stocker des fonds dans une devise ISO (EUR, USD, CHF, GBP…) et possèdent un IBAN/BIC qui lui est propre.

Un compte de paiement est, sauf exception, associé à un compte bancaire ayant le même titulaire, permettant à CentralPay de réaliser des reversements automatiques par virement SEPA.

Si vous disposez de plusieurs comptes bancaires sur lesquels vos fonds doivent être reversés, vous pouvez demander à votre contact CentralPay de créer le même nombre de comptes de paiement dans votre compte Marchand CentralPay. Ainsi, chaque compte de paiement sera lié à un compte bancaire différent et adressera des reversements SEPA en conséquence.

Il est également possible de créer plusieurs comptes de paiement à des fins de segmentation des fonds (avec un compte dédié aux opérations de commission ou de frais par exemple).

Vous pouvez consulter le détail de vos comptes de paiements depuis ces accès :

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 AGENT de CentralPay, vous pouvez créer des comptes pour vos sous-marchands en utilisant le service de création de comptes de paiement.

Comptes de ME

ℹ️ Uniquement réservé aux 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_68cacb115b860 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_3D-Secure 2.yaml", dom_id: "#wp-swagger-ui-container-live_68cacb115b860", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_68cacb115b860.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_68cacb115bd14 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Card.yaml", dom_id: "#wp-swagger-ui-container-live_68cacb115bd14", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_68cacb115bd14.load(); });

Déclaration Agent PSP (ACPR)

Rôle de l’ACPR

L’ACPR (Autorité de Contrôle Prudentiel et de Résolution), organe de la Banque de France, est le seul régulateur compétent pour valider les déclarations d’Agents d’un Établissement de Paiement ou de Monnaie Électronique comme CentralPay. L’ACPR traite uniquement avec les Établissements régulés, sans contact direct possible pour le futur Agent.

Étapes de déclaration d’un Agent

ÉtapeDescription
1. Constitution du dossierRéalisée par CentralPay avec le concours du futur Agent
2. Réponses aux demandes ACPRPilotées par CentralPay avec l’aide du futur Agent
3. Décision de l’ACPRCommuniquée à CentralPay

1. Responsabilités de l’Agent

CentralPay prend en charge les obligations complexes ou techniques. Toutefois, l’Agent doit garantir un haut niveau de vigilance en matière de LCB-FT (Lutte Contre le Blanchiment de Capitaux et le Financement du Terrorisme).

L’Agent est notamment responsable de :

  • La compréhension de l’activité de ses sous-marchands
  • La vérification de la réalité économique des opérations
  • La lutte contre la fraude

L’Agent doit signer :

  • Un Contrat Cadre d’Agent de Paiement avec CentralPay
  • Des Conditions Générales d’Utilisation spécifiques aux vendeurs

Si l’Agent internalise certaines fonctions critiques (ex. vérification KYC), un Contrat d’Externalisation de Prestations Essentielles doit également être signé.

2. Devenir Partenaire Agent CentralPay

Le processus d’enregistrement comme Agent s’étale sur plusieurs mois et suit les étapes suivantes :

2.1. Résumé des étapes

ÉtapeDétails
1. Compréhension du modèle– Explication des services rendus par l’Agent
– Définition du modèle d’affaires
– Validation par les services Juridique et Conformité de CentralPay
2. Offre commerciale– Présentation par CentralPay
3. Validation– Validation juridique et conformité
– Accord sur l’offre commerciale et les tarifs
4. Test & Intégration– Accès à la sandbox
– Réunion projet avec l’équipe technique – Intégration technique
5. Instruction ACPR– Collecte des éléments réglementaires
– Constitution et dépôt du dossier auprès de l’ACPR
6. Mise en production– Tests en environnement de recette
– Passage en production

2.2. Pièces à fournir à CentralPay

Phase 1 – Pré-constitution du dossier

  • CGU du service de paiement
  • Définition des activités régulées, services associés, modèle d’affaires
  • Organigramme (y compris répartition des effectifs par service)
  • Structure de l’actionnariat
  • Flux prévisionnels sur 3 ans confiés à CentralPay
  • Nombre d’enrôlements prévisionnels sur 3 ans
  • Cas de reprise de KYC existant (migration)
  • Préparation du contrat d’Agent

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

  • Signature du contrat d’Agent
  • CentralPay collecte et dépose les pièces suivantes :
    • Kbis < 3 mois de la société et des sociétés gérantes
    • Statuts à jour signés de la société et des sociétés gérantes
    • Pièce d’identité couleur des dirigeants
    • CV des dirigeants datés et signés
    • Casier judiciaire des dirigeants
    • Déclaration de non-condamnation des dirigeants
    • Répartition de la détention des parts
    • Kbis des personnes morales actionnaires (si applicable)
    • Organigramme du Groupe (si applicable)
    • PV d’AG récents (fusion, perte > 50% du capital, changement direction, etc.)

Peuvent également être demandés par l’ACPR :

  • Bilans et comptes de résultat récents
  • États financiers en cours ou de l’année précédente
  • Toute pièce jugée utile par le régulateur

2.3. Délais d’instruction

  • Instruction par CentralPay : ~2 semaines après réception complète des pièces
  • Délai de l’ACPR : jusqu’à 2 mois, avec premières questions sous 30 jours en général

2.4. Fin d’instruction

  • Dès validation du dossier, l’Agent peut démarrer l’activité avec CentralPay
  • Il est référencé dans les registres publics de l’ACPR avec un numéro d’enregistrement obligatoire dans les CGU et communications officielles

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

  • Obligation de fournir un récapitulatif des minutes téléphoniques par opérateur
  • Transmission du détail de répartition des encaissements à CentralPay
  • Le service Conformité CentralPay s’assure que les marchands sont correctement crédités

Déclaration Distributeur ME (ACPR)

Les Établissements émetteurs de monnaie électronique comme CentralPay peuvent mandater des Distributeurs de Monnaie Électronique (DME) afin de collecter des fonds et d’assurer les échanges permettant l’achat et le remboursement de ME dans un réseau de 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 votre compte Marchand 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 compte 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 compte (en règle générale, vous n’aurez qu’un seul contrat à disposition)
    • Contrat par défaut : Sélectionnez le contrat VAD carte qui sera utilisé par défaut (en règle générale, vous n’aurez qu’un seul contrat à disposition)
    • Viban prioritaire : Si vous souhaitez que les IBAN Virtuels affichés dans les demandes de paiement soient ceux des Customers, alors sélectionnez « Client ». Si vous préférez afficher des IBAN Virtuels dédiés à chaque demande de paiement, alors sélectionnez « SCT ». Si besoin d’informations complémentaires, consultez notre rubrique sur les IBAN Virtuel

D’autres paramétrages ne sont pas obligatoires, mais sont importants pour votre parcours de vente :

  • Paramètres généraux
    • Logo : Chargez le logo de votre entreprise ou celui dédié à votre point de vente. Il apparaitra dans la page de paiement générée par les demandes de paiement
    • ID point de vente du marchand : Renseignez une référence personnalisée vous permettant d’identifier plus simplement le point de vente dans vos systèmes d’information

  • Emails de confirmation
    • Cocher « Activer l’email de confirmation de paiement » : En cochant cette case, vous activez l’envoi d’un email à vos clients lorsqu’ils réalisent un paiement par carte. Il s’agit d’un email standardisé non modifiable contenant un récapitulatif du paiement (raison sociale de votre compte, nom de votre point de vente, date du paiement, identifiant de la transaction CentralPay, référence marchand de la transaction, description marchand de la transaction, code d’autorisation du paiement, marque de la carte, 6 premiers et 4 derniers chiffres de la carte, montant de la transaction, état de la transaction). La langue et le pied de page de l’email peuvent être paramétrés depuis le Portail 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 utilisateur
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.

Services liés au compte

Articles

  • Notifications email/sms
  • Services anti-fraude
  • Reversement bancaire
  • Exports comptables
  • Exports de données
  • Webhooks

Notifications email/sms

Les notifications peuvent être adressées en fonction des évènements liés à certains objets API :

  • Demande de paiement (paymentRequest)
  • Contestation carte (dispute)
  • Paiement X fois (installment)
  • Transaction carte (transaction)
  • Reversement (payout)
  • Remboursement carte (refund)
  • Abonnement (subscription)
  • Crédit carte (credit)
  • Transaction SDD (sddTransaction)
  • Transaction SDD inversée (sddTransactionReversal)
  • Mandat (mandate)

1. Types de scénarios de notification

Notifiez vos clients et alertez vos collaborateurs automatiquement lorsque certains évènements ont lieu sur votre compte 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. Elle définie devient inopérante pour des clients identifiés, VIP ou reconnus de confiance qui sont intégrés à une « whitelist ». Les « whitelists » portent sur les données spécifiques d’un client, comme le numéro de sa Carte Bancaire ou son adresse IP. Cette fonctionnalité permet d’être moins restrictif sur des populations d’utilisateurs
  • Liste noire (blacklist)
    Le service de « blacklist » permet de refuser les paiements. Tout comme pour les « whitelists », les « blacklists » portent sur les données propres au porteur de carte (Carte, IP, tel, email)
  • Règles d’acceptation des 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 reversementEntier#payout_amount > 100
#payout_currencyDevise de reversementChaîne de caractères 
ISO 4217
#payout_currency = ‘EUR’
#risk_scoreScore d’antifraudeDouble#risk_score > 2,34
#custom_acceptance_data[‘key’] = ‘value’champs customisékey : Regex [a-zA-Z0-9_-]value: Regex [a-zA-Z0-9_-]#custom_acceptance_data[‘product_category’] = ‘high’

Dans le cas du custom_acceptance_data[‘key’] = ‘value’, afin qu’il soit pris en compte il est nécessaire que l’exact même champs soit reporté dans la requête de l’objet visé.

Les opérateurs logiques et parenthésage :

Opérateurs logiques AND et OR

La syntaxe utilisée pour définir les règles permet de créer plusieurs conditions au sein de la même règle. Les conditions resteront définies de la même manière, à la seule différence qu’un mot clé sera placé entre les conditions.

Les mots clés sont and et or. Ils permettent de définir comment le moteur de règle va interpréter la succession de ces règles. Le « AND » correspond à l’inclusion et le « OR » à l’exclusion.

Exemple :

ALLOW if #amount < 1000 and #card_country = 'FRA'

L’exemple précédent autorise les paiements dont le montant est inférieur à 10 ET dont la carte est française. Si l’une ou l’autre des conditions définies n’est pas remplie, l’action ne sera pas exécutée.

Exemple :

ALLOW if #amount < 1000 or #card_country = 'FRA'

L’exemple précédent autorise les paiements dont le montant est inférieur à 10 OU dont la carte est française. Si l’une ou l’autre des conditions définies est remplie, l’action sera exécutée.

Parenthèses

L’utilisation des parenthèses dans la définition d’une règle multi-conditions permet de définir des blocs de conditions et les priorités entre ces blocs. Le principe est le même que celui des priorités pour les opérateurs mathématiques.

Exemple :

ALLOW if #amount < 1000 and (#card_country = 'FRA' or #currency = 'EUR')

Dans l’exemple précédent, le moteur de règle va d’abord interpréter le bloc (#card_country = ‘FRA’ or #currency = ‘EUR’). C’est à dire que le paiement sera autorisé si (la carte est française ou que la devise est l’euro), ET que le montant est inférieur à 10.

Ordre d’exécution des règles

Les règles sont exécutées dans un ordre à définir. Cet ordre est important car dès qu’une transaction répond aux critères d’une règle, les règles suivantes ne seront pas traitées.

Les règles sont exécutées dans l’ordre d’affichage de la liste de l’interface.
Un indicateur de position est affiché dans chaque liste. Pour changer la position d’une règle, il suffit de la faire glisser à la position souhaitée.

Exemples de règles :

ALLOW if #amount < 1000 and #transactions_amount_daily < 10000

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.

Reversement bancaire

Les reversements bancaires (Payout) sont des virements sortant de votre compte de paiement CentralPay vers le compte bancaire qui y est associé.

Ils peuvent être réalisés manuellement depuis le Portail Marchand ou l’API Payment. Ils peuvent également être automatisés depuis le Portail Marchand.

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

1. Les deux modes de reversement

1.1. Reversement automatique

Le titulaire du compte peut définir la périodicité : quotidien, hebdomadaire (choix du jour de la semaine, ex : chaque mardi) ou mensuel (choix du jour dans le mois, ex : le cinq du mois).

Le service PAYOUT automatique exécutera automatiquement à 01h00 du jour donné un virement des fonds disponibles sur votre compte de paiement.

Exemple :

Cas d'un reversement hebdomadaire programmé le mardi : CentralPay exécutera la demande de création du virement (PAYOUT) le mardi matin avec les fonds disponibles (AVAILABLE) sur le compte de paiement jusqu'au mardi 01h00.

1.2. Reversement manuel (via BO ou API)

Vous avez la possibilité d’exécuter des payouts manuellement depuis le Portail Marchand ou l’API CentralPay. Vous pouvez déterminer le montant à reverser (avec en maximum le montant disponible sur votre compte).

Attention, le PAYOUT ne sera exécuté immédiatement que s’il est effectué avant 05h00 le matin. À défaut, il sera exécuté le lendemain à 05h00 du matin également.

2. Délais de disponibilité des fonds

Les reversements comprennent uniquement les fonds disponibles (ou « AVAILABLE ») de vos comptes de paiement. Les fonds issus d’une transaction par carte bancaire sont par exemple disponibles à J+2 : une transaction carte réalisée le lundi, apparaîtra en « Pending » le lundi, sera « Available » le mardi soir, le payout automatique sera effectué le mercredi matin à 00h05 et la réception du virement SEPA sur votre compte bancaire le jeudi.

ℹ️ Le paramètre EscrowDate peut influer sur la date de disponibilité des fonds d'une transaction (concerne uniquement les partenaires AGENT).

3. Création d’un reversement manuel

3.1. Payout manuel par Portail Marchand

Depuis le Portail Marchand Administration Mon compte Reversements : cliquez sur « Transferts externes », sélectionnez le compte d’émission, le montant du reversement ainsi que l’IBAN destinataire, puis cliquez sur « confirmer le transfert ».

Recette Portail Marchand – Reversements
Production Portail Marchand – Reversements

3.2. Payout manuel par API

Consultez le détail dans la rubrique : Développeurs Payout

4. Reversement en euros ou devises via le réseau SWIFT

Les virements bancaires internationaux sont gérés via le réseau SWIFT (contrairement au réseau SEPA pour les virements européens). Ces virements peuvent être émis depuis un très grand nombre de pays en EUROS ou dans d’autres devises.

Si vous disposez d’un compte en devises ou n’étant pas accessible via le réseau SEPA, vous pouvez réaliser vos virements via le réseau SWIFT. Contactez CentralPay pour en savoir plus.

ℹ️ Les virements bancaires du réseau SWIFT présentent des frais très largement supérieurs aux virements SEPA. Vous pouvez demander à CentralPay de paramétrer vos reversements automatiques afin qu'ils soient déclenchés à partir d'un certain seuil de fonds disponibles.

5. Retours, statuts et webhooks

Consultez les statuts PAYOUT ➝

Consultez les webhooks PAYOUT ➝

Exports comptables

Vous pouvez réaliser plusieurs exports de votre compte aux formats CSV, EXCEL, ou JSON depuis votre Portail 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 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
movement_creation_datedate de l’opération
movement_ididentifiant CentralPay de l’opération
movement_gross_amountmontant brut
movement_gross_currencydevise du montant brut
movement_fee_amountmontant des frais CentralPay
movement_fee_currencydevise des frais
movement_net_amountmontant net
movement_net_currencydevise du montant net
movement_expected_availability_datedate de disponibilité des fonds estimée
movement_available_datedate de disponibilité des fonds réelle
movement_statusstatut du mouvement (success, failed…)
movement_source_typetype d’opération (transaction, transfert…)
movement_source_uuididentifiant associé au type d’opération (transactionId, wireTransferId, transferId…)
merchant_descriptiondescription définie par le marchand
merchant_reference_idréférence définie par le marchand
card_countrypays d’émission de la carte
card_regionzone d’émission de la carte (UE, hors UE)
point_of_sale_idID CentralPay du point de vente

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 rapport financier est généré, puis mis à disposition dans l’espace sécurisé de votre compte ( Administration compte documents Rapports financiers ). Il présente les montants totaux de crédit, de débit, de frais et de réserve de votre compte :

Pour bien comprendre votre rapport financier :

A) Le total des montants acquis / reçus sur votre compte au cours de la période

B) Le montant net reçu sur votre compte, déduction faite de l’ensemble des frais selon le calcul « B = A – I »

C) Le montant de la réserve détenue en garantie au jour de clôture de la période

D) Le montant des fonds disponibles au jour de clôture de la période

E) La valeur totale des fonds disponibles et en garantie enregistrée dans les livres de CentralPay au jour de clôture de la période selon la formule « E = C + D »

F) La valeur totale des fonds retirés / transférés à la banque du marchand pendant la période

G) Le total des frais de service et commissions facturées sur les transactions définies dans la grille tarifaire

H) Total des frais d’opérations techniques : frais d’autorisation cartes, de contestation, de payout…

I) Total des frais techniques et commissions ou « I = G + H »

Accès :

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 compte 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’une opération est réalisée sur votre compte 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

Ouvrir un compte Marchand 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 sous-marchand d’un marchand mandataire, ou un marchand 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, reversements, droits utilisateurs…).

1.5. Création du compte Marchand CentralPay

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

  • Il complète les informations juridiques
  • Il valide les Conditions Générales d’Utilisation
  • L’analyse de conformité complète est alors déclenchée

Cette analyse peut donner lieu à :

  • Des demandes de documents complémentaires (KYC/KYB, contrats, justificatifs…)
  • Un refus d’ouverture si les critères réglementaires ne sont pas remplis
  • Une validation du compte, menant à son ouverture

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

2. Sous-marchands et 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 compte Marchand CentralPay.

2.1. Étape unique : Création du compte et validation réglementaire

  • Vous recevez un lien d’inscription transmis par votre partenaire ou directement par CentralPay.
  • Ce lien vous permet de :
    • Compléter les informations relatives à votre structure
    • Décrire précisément votre activité, la typologie de vos clients finaux et la volumétrie estimée de vos opérations
    • Valider les Conditions Générales d’Utilisation et signer le contrat cadre

Les aspects techniques (intégration, parcours, moyens de paiement) sont déjà définis dans le cadre de la convention signée avec le partenaire technique ou le mandataire.

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

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 reversements SEPA)
Déclaration d’activité et de revenus
Justificatif de domicile (<3 mois)
Justificatifs de revenus : fiche de paie, relevé bancaire, avis d’imposition
Pour activité de location : taxe foncière ou titre de propriété, attestation de propriété

2.2. Personnes morales (KYB)

La création d’un compte 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 compte 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 compte 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 Marchand CentralPay afin de permettre de couvrir les R-transactions (rejets, refus, retours, remboursements, contestations, impayés) liés à des opérations de paiement. Ses paramètres sont définis en fonction du profil de risque financier de votre compte et sont actualisés en fonction de l’analyse de vos R-transactions sur une période suffisante. Les transactions récurrentes par prélèvement SEPA et par carte bancaire sont particulièrement sujettes au risque de R-transactions.

CentralPay possède 3 types de garanties de protection qui peuvent s’appliquer aux marchands, en fonction de la nature de leur contrat :

1. Le collatéral

Il représente la somme fixe versée en début de relation, servant à couvrir le risque de crédit dans le cas où le marchand ne pourrait pas satisfaire ses obligations de remboursement envers ses clients.

Le détail du collatéral est visible depuis le Portail Marchand : Administration Reversements Somme des cautions

2. Le pied de compte

En l’absence de collatéral, une somme fixe peut être prélevée directement sur les opérations afin de garantir le remboursement des clients en cas de besoin. Le wallet doit donc dépasser la valeur du pied de compte pour autoriser les reversements (payout).

Le détail du pied de compte est visible depuis le Portail Marchand : Administration Reversements Seuil fixe

3. La réserve glissante

Selon le secteur d’activité et les processus de règlement du compte, une réserve glissante (« rolling réserve » en anglais) peut être automatiquement ouverte. Il s’agit d’une garantie de protection supplémentaire qui permet de maintenir un certain pourcentage du volume d’encaissement marchand sur le compte Marchand CentralPay afin de permettre l’initiation de remboursements automatiques en cas de contestation de transaction, de fraude ou encore afin de couvrir d’éventuels frais opérationnels. Cette somme appartient à la trésorerie du marchand, elle est gardée un nombre défini de jours avant d’être libérée (généralement entre 90 à 180 jours).

Par exemple, le seuil variable de la réserve glissante est de 5 % du volume d’encaissement sur 90 jours. Le calcul quotidien du montant de réserve est le suivant : montant des transactions encaissées lors des 90 derniers jours * 5 %

Le détail de la réserve glissante est visible depuis le Portail Marchand : Administration Reversements Seuil variable

Conditions générales d’utilisation

L’utilisation des services CentralPay est encadrée par plusieurs documents contractuels que chaque titulaire de compte doit consulter et accepter avant l’activation de son compte.

👉 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

Credit

See more about Credit

jQuery(document).ready( function($) { window.live_68cacb1169353 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Credit.yaml", dom_id: "#wp-swagger-ui-container-live_68cacb1169353", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_68cacb1169353.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_68cacb116988f = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Account.yaml", dom_id: "#wp-swagger-ui-container-live_68cacb116988f", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_68cacb116988f.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

Glossaire

Articles

  • Terminologies CentralPay
  • Lexique des paiements

Terminologies CentralPay

1. Les types d’acteurs

DésignationDescription
Acteur
Toute entité identifiée sur la plateforme CentralPay. Peut-être un marchand, un point de vente, un établissement tiers, ou même CentralPay.
(Compte) MarchandOuvert pour une entité (personne physique ou morale), il est le support de :
– Sa contractualisation : Grille tarifaire, CGU…
– Son administration : Credentials, profils utilisateurs…
– Sa configuration : Scenario de notification, points de vente, règles d’acceptations…
– Sa conformité : KYC/KYB, accréditations…

Le Marchand contient un ou plusieurs comptes de paiement ou de monnaie électronique.
Il est représenté par l’objet « Merchant » dans l’API CentralPay.
Marchand standardPersonne morale ou autoentreprise réalisant des opérations d’encaissement pour compte propre « ECP » (vente de biens ou de services). Il peut être rattaché fonctionnellement à un Partenaire (Partenaire technique ou Intégrateur).
Dispose d’un Compte Marchand typé « STANDARD ».
Marchand PartenairePersonne morale disposant d’un compte Marchand CentralPay, ayant un des rôles rôle suivants :
– Technique : gère un ou plusieurs points de ventes utilisés par des marchands standards pour encaisser (ex : marketplaces, plateformes SaaS…). Dispose d’un Compte Marchand CentralPay typé « TECHNIQUE ».
– Intégrateur : gère l’intégration technique de CentralPay pour le compte de marchands standards sur leurs propres points de ventes (ex : éditeur web ou logiciel…). Dispose d’un Compte Marchand typé « INTEGRATEUR ».

Peut percevoir des commissions. Peut disposer d’un statut MOBSP pour intervenir dans l’entrée en relation avec des marchands ECP.
Marchand MandatairePersonne morale agissant pour le compte de tiers, encadrant des sous-marchands via un mandat des réglementaires suivants :
– Agent PSP : Agent Prestataire de Services de Paiement de CentralPay agréé auprès de l’ACPR (Banque de France). Réalisant notamment des opérations de débit et de crédit pour compte de tiers à destination de ses sous-marchands. Dispose d’un Compte Marchand CentralPay typé « AGENT ».
– DME : Distributeur de Monnaie Électronique déclaré par CentralPay auprès de l’ACPR (Banque de France). Porteur d’un projet impliquant la réalisation d’opérations d’émission et d’échange de Monnaie Électronique. Dispose d’un Compte Marchand typé « DME ».
Sous-marchand commercialPersonne morale (PM) ou physique (PP) agissant à des fins commerciales ou dans le cadre d’une activité LMNP. Obligatoirement rattaché à un Marchand Mandataire.
Dispose d’un Compte Marchand typé « BASIC ».
Sous-marchand financePersonne morale (PM) ou physique (PP) agissant à des fins non commerciales (exemple : crowdfunding, chargement d’un wallet personnel, projet collectif…). Obligatoirement lié à un Marchand Mandataire.
Dispose d’un Compte Marchand typé « BASIC ».
Profils Utilisateur BOPersonne physique disposant d’un accès à un ou plusieurs Comptes Marchand CentralPay. Dispose d’un type « Legal » s’il est représentant légal du compte, sinon dispose d’un type « Natural ».
Profils Utilisateur APIEntité créée via la plateforme CentralPay permettant d’identifier l’utilisateur réalisant les appels API sur un Compte Marchand.
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 Compte Marchand CentralPay à des fins :
– Techniques : pour 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 : pour limiter les droits de consultation ou de modification de vos profils utilisateurs BO à certains points de ventes
– Comptables : pour filtrer les opérations par point de vente dans le Portail Marchand ou dans les exports de données
Nommé « PointOfSale » dans l’API CentralPay.
Client / PayeurReprésentation d’un client d’un marchand, propre à chaque compte marchand.
Peut disposer d’un profil client (nommé « Customer » dans l’API CentralPay) ou non.

2. Les types de comptes

DésignationDescription
Compte de paiementCompte ouvert dans un Établissement de Paiement. Ce compte est utilisé exclusivement pour la réalisation d’opérations de paiement (collecte de paiements en devises ISO, reversement des fonds vers un compte bancaire…).

Il est représenté par l’objet « Wallet » type « PS » dans l’API CentralPay.
Compte de monnaie électroniqueCompte ouvert dans un Établissement de Monnaie Électronique. Ce compte est utilisé exclusivement pour le stockage et l’échange de valeurs en monnaie électronique au sein du réseau du distributeur (devises CUSTOM).

Il est représenté par l’objet « Wallet » type « EM » dans l’API CentralPay.
Compte de commissionCompte de paiement secondaire d’un marchand standard ou partenaire permettant d’isoler les opérations liées aux frais CentralPay du reste des opérations de paiement.
Si utilisation par un partenaire, ce compte permet également de collecter ses propres commissions imputées aux transactions de ses sous-marchands.

Il est représenté par l’objet « Wallet » type « CM » dans l’API CentralPay.
Compte de réserveCompte de paiement secondaire d’un marchand ou partenaire permettant d’isoler ses fonds de réserve Centralpay (pied de compte, collatéral ou réserve glissante). N’est pas autorisé à réaliser de Payout.

Il est représenté par l’objet « Wallet » type « BM » dans l’API CentralPay.
Compte de collecte « Agent »Compte de paiement ouvert dans les livres de CentralPay au nom de l’Agent. Il est dédié à la réception des fonds du Mandataire Agent avant leur transfert vers les comptes de paiement de ses sous-marchands. N’est pas autorisé à réaliser de Payout.

Il est représenté par l’objet « Wallet » type « CL » dans l’API CentralPay.
Compte de traitement CentralPayLe Compte de Traitement CentralPay est un compte technique mise à disposition par CentralPay au Partenaire Technique pour lui permettre de visualiser les données commerciales transmises et les transactions réalisées sur ses points de vente. Il est donc uniquement dédié à la consultation et au traitement des opérations d’un partenaire technique avant leur transfert vers les comptes de paiement des bénéficiaires concernés.

Il est représenté par l’objet « Wallet » type « TR » dans l’API CentralPay.

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.
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 comme l’EURO par exemple.
Compte bancaireCompte bancaire externe lié à un compte Marchand CentralPay pour réaliser des reversements (payout) ou à un profil client pour réaliser des prélèvements SEPA.
Il est représenté par l’objet « BankAccount » dans l’API CentralPay.
Reversement bancaireVirement sortant d’un compte Marchand CentralPay vers un compte bancaire lié. Peut-être réalisé par SEPA ou SWIFT.
Il est représenté par l’objet « Payout » dans l’API CentralPay.
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 Marchand 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 Marchand 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 Marchand CentralPay.
Elle est représentée par l’objet « SddTransaction » dans l’API CentralPay.

Lexique des paiements

DésignationDéfinition
Identifiant de Créancier SEPA (ICS)L’ICS est un numéro de référence unique qui identifie chaque émetteur de prélèvement. En France, il est composé de 13 caractères alphanumériques, dont les 2 premiers représentent le code pays ISO (FR pour la France).

Disposer d’un ICS est un prérequis obligatoire pour réaliser des prélèvements. Le créancier doit faire la demande d’attribution de l’ICS auprès de sa banque. Le créancier conserve ensuite son ICS, même s’il change de banque ou s’il est multi-bancarisé.
DébiteurPersonne physique ou morale qui doit une somme d’argent à une autre, appelée créancier, que ce soit dans le cadre de transactions commerciales, de prêts ou d’autres obligations financières.
CréancierPersonne physique ou morale à qui une somme d’argent est due par une autre, appelée débiteur. Les créanciers (banques, entreprises ou particuliers qui ont prêté de l’argent ou fourni des biens ou services à crédit) ont le droit légal de réclamer le paiement de la dette, généralement formalisé par un contrat ou une autre forme d’accord.
Émetteur (ou donneur d’ordre)Le payeur, c’est-à-dire la personne physique ou morale qui va émettre les fonds d’une transaction financière.
BénéficiaireLe destinataire, autrement dit la personne physique ou morale qui va percevoir les fonds d’une transaction financière.
Autorisation bancairePropre aux transactions par carte. Interrogation de l’acquéreur vers la banque du porteur de carte concernant le montant de la transaction. Suite au « code de retour banque », l’acquéreur est en mesure de savoir si la somme demandée est disponible, et si non pourquoi (fonds insuffisants, carte volée…). Une autorisation valide assure au marchand la possibilité de capturer la somme demandée jusqu’à 7 jours.
Passerelle de paiement (ou Payment Gateway)Technologie agissant comme intermédiaire entre le site du marchand et le réseau de paiement qui permet d’assurer la transmission sécurisée d’informations liées aux paiements. Les passerelles vérifient également la disponibilité des fonds et autorisent les paiements, tout en offrant des fonctionnalités telles que la gestion des paiements récurrents et la détection de la fraude.
Prestataire de Services de Paiement (ou PSP)Établissement financier qui fournit des services liés à l’acceptation et au traitement des paiements aux marchands. Ces services incluent également la gestion des comptes de paiements ouverts, la sécurité des transactions ainsi que la conformité réglementaire.
KYB (Know your Business)Le KYB (Know Your Business) est un protocole d’authentification de l’identité et de la conformité des personnes morales, avant la création de leur compte de paiement. Imposée par le régulateur, cette vérification permet d’évaluer le niveau de risque marchand de ces dernières afin de prévenir toutes activités illégales telles que le blanchiment d’argent, la fraude et le financement du terrorisme (LCB-FT).

Ce processus inclut la collecte et la vérification de documents tels que les statuts de l’entreprise, les informations sur les propriétaires et les dirigeants, les justificatifs d’adresse et les informations financières.
KYC (Know your Customer)Le KYC (Know Your Customer) est un protocole d’authentification de l’identité et de la conformité des personnes physiques, avant la création de leur compte de paiement. Imposée par le régulateur, cette vérification permet d’évaluer le niveau de risque marchand de ces dernières afin de prévenir toutes activités illégales telles que le blanchiment d’argent, la fraude et le financement du terrorisme (LCB-FT).

Ce processus inclut la collecte et la vérification de documents tels que les pièces d’identité, les preuves de domicile et les informations sur les activités professionnelles.
Rapprochement d’un virementProcessus de vérification et de correspondance des factures émises enregistrées dans le compte de l’entreprise avec les paiements reçus. Ce traitement permet de s’assurer que toutes les transactions prévues ont bien été exécutées, de détecter toute anomalie ou erreur et de maintenir l’exactitude des enregistrements financiers de l’entreprise.
Frais d’interchangeFrais payés par la banque du marchand (banque acquéreur) à la banque de l’acheteur (banque émettrice) lors d’une transaction par carte, afin de couvrir les coûts et les risques associés à la gestion des paiements. Ils varient en fonction de plusieurs facteurs, tels que le type de carte utilisée, le type de transaction et le pays dans lequel la transaction est effectuée.
Frais de réseaux carteFrais facturés par les réseaux de cartes (CB, Visa, Mastercard…) aux banques et PSP qui traitent des paiements par carte. Ces frais couvrent les coûts liés à l’utilisation du réseau de paiement, notamment l’infrastructure technologique, la sécurité des transactions et le traitement des paiements.
Interchange++Somme des commissions prélevées sur les opérations de paiement en ligne du marchand. Il est composé de :
– Frais d’Interchange
– Frais de réseaux de carte
– Frais de services, facturés par le PSP qui assure le fonctionnement de la plateforme de paiement et des services associés

Ce calcul permet de déterminer le coût de revient exact de chacune des transactions.
Open BankingEncouragé par la DSP2, l’Open Banking est une pratique financière permettant aux banques de partager de manière sécurisée les données financières de leurs clients avec des tiers autorisés, tels que des fintechs, à travers des API (interfaces de programmation applicative). Ce système bancaire ouvert vise à stimuler l’innovation et la concurrence dans le secteur financier, en permettant le développement de nouvelles applications et services qui peuvent offrir des expériences client améliorées, une gestion financière plus efficace et des offres personnalisées.
Exemple : Initiation de paiement
Impayé carte (ou chargeback / contestation / litige)Processus par lequel un titulaire de carte signale une transaction suspecte ou non autorisée à l’émetteur, en vue d’un remboursement ou d’une rétrofacturation. Les motifs de contestation peuvent inclure des transactions frauduleuses, des erreurs de facturation, des biens ou des services non reçus ou d’autres problèmes liés à l’utilisation de la carte.
Rejet de prélèvement SEPAUn rejet de prélèvement se produit lorsqu’une demande de prélèvement est refusée par la banque du débiteur. Les raisons d’un rejet peuvent inclure des fonds insuffisants sur le compte du débiteur, des informations bancaires incorrectes, un mandat de prélèvement expiré ou non valide, ou une opposition au prélèvement de la part du débiteur.

Lorsqu’un prélèvement est rejeté, les fonds ne sont pas transférés, et le créancier est informé du rejet pour qu’il puisse prendre les mesures appropriées.
RIB (Relevé d’Identité Bancaire)Document fourni par une banque qui contient les informations nécessaires à l’identification d’un compte bancaire, afin de faciliter les opérations de virement ou de prélèvement. Le RIB inclut le numéro de compte, le code banque, le code guichet, l’IBAN (International Bank Account Number) ainsi que le BIC (Bank Identifier Code) de la banque.
EEE (Espace Économique Européen)Zone économique composée des 27 pays membres de l’Union Européenne (UE) ainsi que de la Norvège, l’Islande et le Liechtenstein. L’EEE permet aux États membres de participer au marché unique de l’UE, offrant la libre circulation des biens, des services, des capitaux et des personnes.

Évolution de la plateforme

Les API de CentralPay reposent sur une architecture en micro services apportant un maximum de flexibilité. Notre approche modulaire permet de faire constamment évoluer nos solutions afin d’apporter toujours plus de services et de fonctionnalités.

Ces évolutions sont réalisées après des analyses d’impact poussées afin de ne pas provoquer de changement dans les intégrations de nos utilisateurs. Dans de très rares cas, celles-ci peuvent appeler des modifications mineures ou plus importantes lorsque des changements de régulations surviennent, comme ce fut le cas pour l’évolution vers la version 2.0 du 3DS par exemple.

En cas d’évolution de la plateforme ou de modifications des attentes concernant la consommation de ses APIs, CentralPay s’engage à vous prévenir dans un délai correspondant à l’ampleur des actions à mener :

  • Modifications mineures nécessitant aucune action du marchand ou partenaire :
    Remise d’information simple
  • Modifications mineures avec action nécessaire par le marchand ou partenaire :
    2 mois minimum de délai de prévenance + accompagnement à la réalisation
  • Modifications majeures avec action nécessaire par le marchand ou partenaire :
    6 mois minimum de délai de prévenance + accompagnement à la réalisation

À noter que les modifications nécessitant une action de nos marchands ou partenaires sont qualifiées d’exceptionnelles à inexistantes et que toutes les précautions sont prises pour éviter tout impact sur leur activité.

Comptes de paiement

Les comptes de paiement sont utilisés pour réaliser des opérations de paiement (collecte de paiements en devises ISO, reversement des fonds vers un compte bancaire…). Ils permettent de stocker des fonds dans une devise ISO (EUR, USD, CHF, GBP…) et possèdent un IBAN/BIC qui lui est propre.

Un compte de paiement est, sauf exception, associé à un compte bancaire ayant le même titulaire, permettant à CentralPay de réaliser des reversements automatiques par virement SEPA.

Si vous disposez de plusieurs comptes bancaires sur lesquels vos fonds doivent être reversés, vous pouvez demander à votre contact CentralPay de créer le même nombre de comptes de paiement dans votre compte Marchand CentralPay. Ainsi, chaque compte de paiement sera lié à un compte bancaire différent et adressera des reversements SEPA en conséquence.

Il est également possible de créer plusieurs comptes de paiement à des fins de segmentation des fonds (avec un compte dédié aux opérations de commission ou de frais par exemple).

Vous pouvez consulter le détail de vos comptes de paiements depuis ces accès :

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 AGENT de CentralPay, vous pouvez créer des comptes pour vos sous-marchands en utilisant le service de création de comptes de paiement.

Liens de paiement

Articles

  • Informations générales
  • Demandes de paiement
  • Page de paiement (SmartForm)
  • Retours, statuts et hooks

Informations générales

1. Les deux modes d’intégration de Smart Collection

La solution Smart Collection permet d’encaisser des paiements depuis divers moyens de paiement.

Vous pouvez au choix :

  • Créer et intégrer vos propres parcours de paiement (intégration CUSTOM), en consommant les services API de chaque moyen de paiement :
    • Transaction par carte ➝
    • Transaction par virement ➝
    • Transaction par prélèvement SEPA ➝

  • Utiliser nos parcours de demande de paiement sécurisés (intégration SMART), grâce à notre service dédié :
    • Demandes de paiement (PaymentRequest) ➝
    • Le paramètre EscrowDate peut influer sur la date de disponibilité des fonds d’une transaction (concerne uniquement les partenaires AGENT)
ℹ️ Si vous choisissez l'intégration SMART, certaines fonctionnalités spécifiques comme les R-transactions, la gestion des libellés bancaires, la gestion des IBAN Virtuels… sont présentées dans la documentation dans les rubriques CUSTOM dédiées à chaque moyen de paiement.

2. À propos de l’intégration SMART

La demande de paiement permet de générer un lien de paiement menant à une page de paiement hébergée par CentralPay. Votre client peut ainsi vous régler selon les conditions de règlement que vous avez déterminé (moyens et modes de paiement autorisés, délais de règlement, 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 ➝

Full Api

jQuery(document).ready( function($) { window.live_68cacb116f6ce = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/Private/openapi.yaml", dom_id: "#wp-swagger-ui-container-live_68cacb116f6ce", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_68cacb116f6ce.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_68cacb116fbf5 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Card Token.yaml", dom_id: "#wp-swagger-ui-container-live_68cacb116fbf5", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_68cacb116fbf5.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_68cacb11701c5 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Dispute.yaml", dom_id: "#wp-swagger-ui-container-live_68cacb11701c5", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_68cacb11701c5.load(); });

API et interfaces

Articles

  • Utilisation des API CentralPay
  • Portail Marchand
  • Portail Client
  • Portail d'inscription

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 création de comptes de paiement ou de monnaie électronique (enrôlements, wallet, etc.)Réservée aux marchands 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 compte Marchand CentralPay. Les marchands Mandataires peuvent également consulter le détail des comptes de leurs sous-marchands.

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 reversement (« payout »)
  • De générer des exports et de télécharger les rapports financiers mensuels
  • Pour les comptes « Mandataires » uniquement :
    • De créer et de consulter les demandes d’onboarding (« merchant-enrollment »)
    • De consulter les opérations et de paramétrer les comptes de leurs sous-marchands
ℹ️ Les comptes ayant des droits "Basic" (sous-marchands de mandataires) peuvent uniquement consulter les opérations dont ils sont bénéficiaires ("transfer") et gérer leurs paramètres de reversement ("payout").

2. Les profils utilisateurs du Portail

Ils représentent des personnes physiques pouvant accéder à un ou plusieurs comptes CentralPay ainsi qu’à tout ou partie des services du Portail Marchand.

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

Lors de la création du compte Marchand CentralPay, le responsable ayant réalisé l’onboarding (dirigeant ou personne physique disposant d’une délégation de pouvoir) se voit attribuer un profil utilisateur dit « Legal ». Il dispose ainsi de tous les droits administrateur du compte, mais également de droits légaux permettant de paramétrer les éléments les plus sensibles du compte :

  • Paramètres du compte de paiement :
    • Changement d’IBAN de sortie (payout)
    • Changement des conditions de reversements sur compte bancaire
    • Mise à jour des documents de société
  • Paramètres des utilisateurs :
    • Création de nouveaux utilisateurs « Legal »
    • Prochainement

Une fois le compte créé, vous avez la possibilité de créer autant de profils utilisateurs que nécessaire en renseignant leur nom, leur prénom, leur email et leur rôle utilisateur (définissant les droits qu’ils auront sur le compte). Les profils ainsi créés sont nommés « Natural ».

ℹ️ Si vous disposez de plusieurs comptes CentralPay et que vos équipes doivent avoir accès à ces différents comptes, créez leur profil utilisateur depuis l’un d’entre eux, puis demander à CentralPay d’affecter leur profil à vos autres comptes. Ils bénéficieront ainsi d’un unique centralisé pour tous ces comptes.

Accès :

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

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 compte 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 Compte Marchand CentralPay et d’un compte de paiement : de la création du profil utilisateur, jusqu’à la contractualisation, en passant par la collecte du KYC/KYB. Il interagit avec l’API Onboarding de CentralPay.

Pour les marchands Mandataires, il permet donc de créer des sous-marchands facilement depuis un portail hébergé par CentralPay, et d’ainsi éviter une intégration complète de l’API Onboarding.

Pour adresser un lien d’onboarding à l’un de vos futurs sous-marchands, vous pouvez utiliser le service de création de compte de paiement.

Accès :

Recette Portail d’Inscription
Production Portail d’Inscription

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.

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 carte
  • Transaction carte récurrente
  • Transaction carte via wallet
  • R-transaction carte
  • Email de confirmation
  • Libellé relevé bancaire
  • Gestion des devises
  • Gestion des cartes virtuelles (VCC)
  • Retours, statuts et hooks

Informations générales

1. Fonctionnement

Une transaction carte comprend une succession d’actions :

1.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 compte 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 compte 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 (Custom Form)

1.1. Via token Apple Pay déchiffré

CentralPay permet le traitement des paiements par carte effectués via Apple Pay, dans le cadre d’une intégration Custom (hors Smart Form).

ℹ️ CentralPay ne prend actuellement en charge que les tokens Apple Pay déchiffrés. 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.

Prérequis

1. Créer un compte Apple Developer :

  • Inscrivez-vous au programme Apple Developer
  • Créez vos identifiants de marchand Apple Pay (Merchant ID)
  • Générez votre certificat de traitement Apple Pay via le portail Apple
  • Déclarez votre domaine (Apple Pay Merchant Domain)

2. Intégration côté device :

  • Implémentez Apple Pay côté frontend via Apple Pay JS (pour les sites web) ou PassKit (pour les apps iOS)
  • Collectez le token Apple Pay (ApplePayToken) après validation du paiement par l’utilisateur (Face ID, Touch ID…)

Étape 1 : Déchiffrement du token Apple Pay

Le déchiffrement du token Apple Pay doit être effectué sur votre backend, à l’aide de :

  • Votre certificat de traitement Apple Pay
  • Votre clé privée
  • La documentation Apple : Payment Token Format

Le résultat contiendra :

{
  "applicationPrimaryAccountNumber": "5454********2664",
  "applicationExpirationDate": "YYMMDD",
  "paymentData": {
    "cryptogram": "base64-cryptogram",
    "eciIndicator": "05"
  }
}

Étape 2 : Création du cardToken CentralPay

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

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

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 Apple Pay (merchantPublicKey) est également spécifique à l’environnement

2.2. Via token ApplePay chiffré

ℹ️ Au 18/04/2025, cette méthode n’est pas encore disponible chez CentralPay.
Si cette méthode d’intégration vous intéresse, veuillez contacter le support CentralPay afin de connaître les livrables associés et les modalités d’accès.

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

Lors de votre appel API, en plus des champs obligatoires, il faudra utiliser le champ « applePayToken«  au format JSON comprenant votre token Apple Pay qui incluent les éléments paymentData, paymentMethod et transactionIdentifier.
Vous pourrez ensuite effectuer une transaction à l’aide de votre cardToken normalement.

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

Lors de votre appel API, en plus des champs obligatoires, il faudra utiliser le champ « applePayToken » au format JSON comprenant votre token Apple Pay qui inclus les éléments paymentData, paymentMethod et transactionIdentifier.

2. Google Pay (Custom Form)

2.1. Via token Google Pay déchiffré

Pour pouvoir accepter les paiements Google Pay via CentralPay, vous devez configurer correctement votre compte marchand Google et gérer les clés de chiffrement nécessaires au déchiffrement des tokens.

ℹ️ Cette méthode implique une responsabilité PCI-DSS importante de votre part. Renseignez-vous et assurez-vous d'être en conformité avant de développer ce mode d'intégration.

Prérequis

1. Créer un compte Google Pay Business :

  • Accédez au Google Pay Business Console
  • Créez un Merchant Profile ou connectez-en un existant
  • Renseignez vos coordonnées de société et d’activité

2. Enregistrer votre domaine :

  • Dans la console Google Pay, allez dans l’onglet « Domains« 
  • Ajoutez votre domaine de production et de test (ex : example.com)
  • Google vous demandera d’y héberger un fichier de vérification pour valider votre propriété

3. Générer votre paire de clés de chiffrement :

Google Pay chiffre les tokens envoyés à votre site en utilisant une clé publique que vous fournissez.

  • Générez votre paire de clés (exemple avec OpenSSL)
# Générer la clé privée
openssl ecparam -name prime256v1 -genkey -noout -out private-key.pem

# Extraire la clé publique
openssl ec -in private-key.pem -pubout -out public-key.pem
  • Convertissez la clé publique au format Google (base64 sans en-tête PEM)
# Supprimer les lignes "-----BEGIN..." et "-----END..."
# et ne garder que le bloc de contenu base64

4. Enregistrer votre clé publique dans Google Pay

  • Dans la console Google Pay, allez dans “Payment Processing”
  • Ajoutez un nouvel encrypting key
  • Donnez-lui un nom, collez votre clé publique au format Base64, et sélectionnez le type : ECv2
  • Cette clé sera utilisée pour chiffrer tous les tokens envoyés à votre site

Étape 1 : Déchiffrement du token Google Pay

Une fois Google Pay intégré côté frontend (Google Pay JS ou Android), vous recevrez un token chiffré via :

paymentData.tokenizationData.token

Ce champ contient un JSON chiffré (pas un JWT), que vous devez déchiffrer sur votre backend à l’aide de la clé privée correspondant à la clé publique enregistrée chez Google.

Google propose une bibliothèque de déchiffrement officielle en Java, mais des portages existent en Node.js, PHP, Python, etc.

Consultez la documentation officielle (Payment Data Cryptography) ➝

Une fois déchiffré, vous obtiendrez une structure similaire à :

{
  "pan": "4111111111111111",
  "expirationMonth": "12",
  "expirationYear": "2030",
  "cryptogram": "AgAAAAAAAIR8CQrXcIhbQAAAAAA=",
  "eciIndicator": "05"
}

Ce sont ces données que vous devrez envoyer à CentralPay pour créer un cardToken.

Étape 2 : Création du cardToken via l’API CentralPay

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

ChampDescription
card[number]PAN de la carte extrait du token Google 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 Google Pay (CAVV)
eciIndicatorIndice d’authentification issu du token Google Pay (eci)
googlePayMessageIdID de la transaction Google 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=
googlePayTransactionId=ABCD-EFGH-1234
amount=2500
currency=EUR
merchantPublicKey=abcdef123456...

Le cardToken généré contient toutes les données nécessaires à l’authentification Google Pay.

Étape 3 : Création de la transaction CentralPay

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

Champs requis :

cardToken=...
amount=2500
currency=EUR
pointOfSaleId=...
endUserIp=...
merchantTransactionId=...

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

Étape 4 : Testing avant mise en production

L’environnement de test CentralPay permet de valider l’ensemble de votre intégration 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 Apple Pay (merchantPublicKey) est également spécifique à l’environnement

2.2. Via token Google Pay chiffré

CentralPay permet l’intégration directe de Google Pay via le mode “gateway” (passerelle de paiement), sans nécessiter de déchiffrement du token côté serveur. Dans ce mode, CentralPay est désigné comme prestataire (gateway) auprès de Google Pay, et gère la validation du token pour vous.

Prérequis

1. Créer un compte Google Pay Business :

  • Accédez au Google Pay Business Console
  • Créez un Merchant Profile ou connectez-en un existant.
  • Renseignez vos coordonnées de société et d’activité.

2. Enregistrer votre domaine :

  • Dans la console Google Pay, allez dans l’onglet « Domains »
  • Ajoutez votre domaine de production et de test (ex : example.com)
  • Google vous demandera d’y héberger un fichier de vérification pour valider votre propriété

3. Réaliser votre intégration frontend Google Pay :

  • Implémentez Google Pay côté frontend via Google Pay JS (pour les sites web) ou Google Pay API Android (pour les applications mobiles)
  • Collectez le token Google Pay (tokenizationData.token) après validation du paiement par l’utilisateur (code PIN, empreinte digitale, reconnaissance faciale…).
ℹ️ Google propose un tutoriel officiel pour cette intégration : Google Pay API | Google for Developers

4. Récupérez vos identifiants CentralPay :

  • MerchantPublicKey : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Merchant Public Key
  • Login API : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Identifiant API et copiez l’identifiant
  • Pass API : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Cliquez sur votre Identifiant API → Modifier → Générer , copiez votre pass API et mettez à jour

Étape 1: Configuration de Google Pay côté frontend

1. Définir la version de l’API :

const baseRequest = {
  apiVersion: 2,
  apiVersionMinor: 0
};

2. Utiliser CentralPay comme passerelle de paiement :

Configurez la tokenisation comme suit :

const tokenizationSpecification = {
  type: 'PAYMENT_GATEWAY',
  parameters: {
    gateway: 'centralpay',
    gatewayMerchantId: 'YOUR_GATEWAY_MERCHANT_ID'
  }
};

Remplacez YOUR_GATEWAY_MERCHANT_ID par votre MerchantPublicKey fourni par CentralPay.

3. Environnement de test ou production :

// Environnement de 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 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 Apple Pay (merchantPublicKey) est également spécifique à l’environnement

R-transaction carte

1. Remboursement

Vous pouvez rembourser une Transaction si celle-ci est CLEARED via le service Refund ou depuis le détail de la Transaction dans le Portail 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é.

2. Crédit

Vous pouvez créditer la carte d’un client sans transaction initiale depuis le service Credit. Pour cela, il existe plusieurs solutions :

  • Tokeniser une carte via le service cardToken pour ensuite la renseigner dans le service Credit
  • Créer ou rechercher un Customer disposant d’une carte valide, puis renseigner son « customerId » ainsi que son « cardId » dans le service Credit
ℹ️ Ce service n'est disponible que pour des activités spécifiques, contactez CentralPay pour en savoir plus.

3. Contestation

Pour tout paiement par carte, votre client a la possibilité de contester une transaction auprès de sa banque (opération nommée contestation, chargeback ou impayé) :

  • Pendant 120 jours à compter de la transaction sur les réseaux « Visa » ou « Mastercard »
  • Pendant 13 mois à compter de la date d’opération sur le réseau Français « Carte Bancaire »
ℹ️ En France, une contestation n'est en principe autorisée que dans le cadre d'une utilisation frauduleuse de la carte (carte volée, prélèvements abusifs…). Cependant, dans d'autres pays européens, la contestation peut également être utilisée dans le cadre d'un litige commercial (service ou produit non rendu / non conforme).

En cas de contestation, CentralPay en est informé et crée automatiquement sur votre compte une opération de Dispute liée à la transaction contestée. Le montant de cette transaction vous sera débité afin de rembourser votre client. Des frais non remboursables s’appliquent également pour chaque contestation reçue.

À ce stade, le statut de la Dispute sera Chargeback_Noticed et vous pourrez consulter sur le Portail Marchand ou via notre API le motif de contestation de votre client. Vous disposez ainsi d’un délai de 20 jours calendaires pour répondre en fournissant la preuve de livraison du service ou du produit. À défaut de réponse dans les délais impartis, il ne sera plus possible de répondre à la contestation.

ℹ️ Notez que dans le cadre des transactions non authentifiées (sans 3DS), vous devez également justifier du consentement du titulaire de la carte. Vous devez à minima prouver que le nom et prénom de votre client est bien le même que celui qui est indiqué sur la carte de paiement. 

Une fois votre réponse émise, celle-ci est étudiée par la banque de votre client avant d’adresser son verdict :

  • Vous avez obtenu gain de cause, la contestation a été rejetée. Le montant de la transaction vous est remboursé et le statut de la Dispute passe en Chargeback_Won.
  • Vos preuves sont jugées insuffisantes, la contestation est maintenue. Le statut de la Dispute passe en Chargeback_Lost.
ℹ️ Il est possible, en amont d'une contestation, qu'un client réalise une demande d'information sur une transaction afin d'en connaitre les détails. CentralPay créera une opération Dispute avec statut Retrieval_Noticed. Vous devez répondre dans les 7 jours en fournissant la nature du service délivré, la preuve de consentement du client et/ou la preuve de livraison. Si votre réponse est acceptée, le statut de la Dispute passera à Retrieval_Close. À défaut de réponse, votre client pourra déclencher une contestation auprès de sa banque.

Email de confirmation

Quand une transaction par carte a été réalisée avec succès, CentralPay peut adresser un email de confirmation de paiement à votre client. Pour cela, vous devez l’activer en renseignant les paramétrages de l’email de confirmation dans votre Point de Vente.

Cet email est adressé par défaut à l’email du Customer associé à la transaction, mais vous pouvez renseigner la valeur receiptEmail de la transaction si vous souhaitez l’adresser à un autre.

Paramétrage

L’email de confirmation possède une mise en forme standardisée affichant les différentes informations de paiement, vous pouvez cependant configurer plusieurs paramètres depuis le Portail 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 compte 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 Marchand CentralPay.

Dans certains cas, CentralPay peut vous permettre d’encaisser des transactions par carte bancaire dans différentes devises : Euros (EUR), Dollars (USD), Francs Suisses (CHF) et Livres (GBP). Contactez CentralPay si la gestion de transaction en devises est un enjeu pour votre activité.

Notez que dans ce cas, les coûts d’acquisition en devises (hors EUROS) sont soumis à des frais complémentaires et seront déduits du montant de vos transactions.

ℹ️ Les reversements (payout) par virement SEPA ne peuvent être réalisés que sur les valeurs disponibles en EUROS. Les valeurs hors EUROS sont reversées par virement SWIFT ayant des frais supérieurs. Il est cependant possible de programmer les reversements SWIFT afin qu'il ne soit réalisés qu'à partir d'un certain seuil, afin de mieux maitriser ses coûts de reversement.

Gestion des cartes virtuelles (VCC)

1. Fonctionnement

Les grands OTA que sont Booking.com, Expedia.com, hotels.com ou Agoda.com peuvent collecter les règlements lors de la réservation. Dans ce cas, ils fournissent aux hôteliers, non pas les données de la carte du client, mais une alias, qui est une carte virtuelle ou VCC.

Une carte virtuelle ou VCC est généralement émise pour un usage encadré afin de limiter les risques de compromission. Une carte virtuelle représente en quelque sorte l’alias d’une carte existante qui ne pourra être utilisé qu’à partir d’une certaine date et depuis un MCC défini. En l’occurrence, dans le secteur du tourisme, il est nécessaire d’avoir un contrat avec le MCC 7011 (HOTELS) pour pouvoir la débiter.

Ainsi, dans le cas où le numéro de carte tombait entre les mains d’une personne mal intentionnée, elle ne pourrait pas déclencher de débit sur la carte source. Étant donné la nature spéciale des cartes issues par ces OTA, il est en général impossible de réaliser des demandes d’autorisation, de pré-autorisation ou de vérification au moment de la commande.

Si la carte n’est débitable que le jour de la réservation par un MCC 7011 par exemple, l’émetteur, en général MASTERCARD B2B PRODUCT, renverra un code d’erreur pour transaction invalide (12).

➡️ Cartes virtuelles Booking.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 ➝

CARD Transaction

Articles

  • Transaction
  • Card
  • Credit
  • Disputes

Transaction

See more about card transactions

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

Credit

See more about Credit

jQuery(document).ready( function($) { window.live_68cacb117d62e = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Credit.yaml", dom_id: "#wp-swagger-ui-container-live_68cacb117d62e", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_68cacb117d62e.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_68cacb117d9f9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Dispute.yaml", dom_id: "#wp-swagger-ui-container-live_68cacb117d9f9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_68cacb117d9f9.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 sous-marchand d’un marchand mandataire, ou un marchand 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, reversements, droits utilisateurs…).

1.5. Création du compte Marchand CentralPay

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

  • Il complète les informations juridiques
  • Il valide les Conditions Générales d’Utilisation
  • L’analyse de conformité complète est alors déclenchée

Cette analyse peut donner lieu à :

  • Des demandes de documents complémentaires (KYC/KYB, contrats, justificatifs…)
  • Un refus d’ouverture si les critères réglementaires ne sont pas remplis
  • Une validation du compte, menant à son ouverture

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

2. Sous-marchands et 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 compte Marchand CentralPay.

2.1. Étape unique : Création du compte et validation réglementaire

  • Vous recevez un lien d’inscription transmis par votre partenaire ou directement par CentralPay.
  • Ce lien vous permet de :
    • Compléter les informations relatives à votre structure
    • Décrire précisément votre activité, la typologie de vos clients finaux et la volumétrie estimée de vos opérations
    • Valider les Conditions Générales d’Utilisation et signer le contrat cadre

Les aspects techniques (intégration, parcours, moyens de paiement) sont déjà définis dans le cadre de la convention signée avec le partenaire technique ou le mandataire.

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

Create Enrollement

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

jQuery(document).ready( function($) { window.live_68cacb117e6dd = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_User.yml", dom_id: "#wp-swagger-ui-container-live_68cacb117e6dd", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_68cacb117e6dd.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

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 (acronyme « ECP ») dans le cadre d’une activité de vente de biens ou de services.

1. Description du modèle

Ce modèle vous donne accès à l’ensemble des services de Smart Collection, la solution d’encaissement complète proposée par CentralPay.

🔗 Plus d’informations sur Smart Collection

Les fonctionnalités incluses sont les suivantes :

  • Le compte Marchand CentralPay
    Un compte de paiement dédié à votre activité, avec IBAN individuel, suivi des opérations et reversements.
  • 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 reversements.
  • 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

Le modèle Marchand donne lieu à deux types de frais :

2.1. Forfait plateforme

Un forfait mensuel fixe est appliqué pour l’accès à la plateforme et aux services associés.

  • Ce forfait peut être :
    • Prélevé automatiquement par SEPA mensuel
    • Facturé annuellement par virement SEPA
    • Déduit du solde de votre compte de paiement CentralPay selon les modalités prévues dans votre contrat

2.2. Frais de service

Des commissions variables sont appliquées en fonction des opérations réalisées (transactions, reversements, rejets, etc.).

  • Les frais sont débités :
    • Soit directement de votre compte de paiement principal
    • Soit depuis un compte de commission dédié, si celui-ci est activé

En cas de solde insuffisant, CentralPay pourra procéder à un prélèvement SEPA ou vous adresser une demande de virement complémentaire.

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 l’Intégrateur. Ces deux modèles permettent de connecter plusieurs marchands à la plateforme CentralPay, selon des modalités d’encadrement différentes.

Ils peuvent chacun, s’ils le souhaitent, être déclarés MOBSP (Mandataires d’Opérations de Banque et de Services de Paiement) auprès de l’ORIAS, pour accompagner les marchands durant leur entrée en relation avec CentralPay.

1. Marchand Intégrateur

L’Intégrateur est un acteur 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 compte Marchand CentralPay, et signe directement un contrat 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 fournis par chaque marchand standard, dans le cadre d’un mandat contractuel
  • Il peut déclencher des opérations techniques (paiements, notifications…), mais uniquement via les accès API délégués par le marchand, dans le cadre du contrat unissant ce dernier à CentralPay. Il n’intervient jamais en son nom propre
  • Les opérations sont réalisées en 1 pour 1 : un client (payeur) règle un seul marchand

1.2. Facturation

  • Chaque marchand est facturé directement par CentralPay
  • L’Intégrateur n’intervient à aucun moment dans les flux financiers

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

  • L’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 compte Marchand CentralPay : encaissements, reversements, solde, paramétrage des accès API, gestion documentaire et contractuelle
  • L’intégrateur accède à un espace CentralPay lui permettant de consulter une vue consolidée des opérations réalisées via les accès API qui lui sont délégués. Il peut également consulter la documentation technique, utiliser les environnements de test, et suivre les évolutions d’API. Cet accès ne permet pas d’exécuter de paiements
  • Pour permettre la connexion, le marchand crée un accès API dédié à l’intégrateur, avec des droits strictement limités et révocables à tout moment. Toutes les opérations techniques sont réalisées via cet accès, sous le contrôle du marchand
  • Si l’intégrateur est déclaré Mandataire d’Opérations de Banque et de Services de Paiement (MOBSP) auprès de l’Orias, il peut :
    • initier une demande d’enrôlement pour le compte d’un marchand
    • guider ce dernier dans la constitution de son dossier
    • et transmettre un lien d’enrôlement personnalisé CentralPay
  • Le statut MOBSP ne permet ni l’exécution d’opérations ni l’accès aux fonds, mais encadre juridiquement l’accompagnement du marchand dans son entrée en relation
  • Si l’intégrateur n’est pas déclaré MOBSP, c’est au marchand de contacter directement CentralPay pour initier sa demande d’ouverture de compte, en précisant l’identité de l’intégrateur avec lequel il collabore afin de permettre son rattachement technique

2. Marchand 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 dont il est le titulaire.

Les opérations sont ensuite traitées par CentralPay depuis un compte de traitement, également détenu par CentralPay. Cela permet au Partenaire Technique d’avoir une visibilité sur les flux, sans jamais en détenir la maîtrise ni les initier.

2.1. Responsabilités et fonctionnement

  • Le Partenaire Technique dispose de ses propres accès API, délivrés par CentralPay
  • Il peut consulter les transactions réalisées pour les marchands liés à ses points de vente
  • Il n’initie aucun paiement et ne peut accéder aux soldes ou effectuer de reversements. Toutes les opérations sont exécutées exclusivement par CentralPay
  • Dans ce cadre, CentralPay peut gérer des paiements en mode 1 pour X : un client (payeur) peut régler plusieurs marchands simultanément

2.2. Facturation

  • Le Partenaire Technique est facturé par CentralPay, en fonction des opérations réalisées via son point de vente
  • Les commissions qu’il perçoit sont prélevées par CentralPay sur les comptes de paiement des marchands standards, puis créditées sur son compte de commission

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 au préalable directement avec CentralPay et détient son propre compte Marchand CentralPay. Il signe les Conditions Générales de Compte de Paiement et est soumis aux mêmes obligations réglementaires que tout utilisateur professionnel
  • Le Partenaire Technique transmet à CentralPay les données commerciales des transactions (montant, référence, commission…) recueillies sur sa plateforme. CentralPay analyse ces informations, puis instruit et exécute l’opération pour le compte du marchand concerné
  • Les paiements sont crédités sur le compte Marchand CentralPay du ou des marchands standards associés. Si une commission est prévue, CentralPay la prélève automatiquement et la reverse sur le compte de commission du partenaire technique, selon les données commerciales transmises et les conditions fixées dans ses CGU
  • Le partenaire technique ne détient jamais de fonds de tiers, ne donne aucune instruction de paiement, et ne peut intervenir dans les reversements ou la tenue de compte. Il n’agit ni pour compte de tiers ni au nom de CentralPay
  • L’accès au compte de traitement de CentralPay mis à disposition du partenaire technique est à usage purement informatif : il permet de visualiser les transactions, mais n’offre aucun droit d’exécution ou d’accès aux soldes
  • En cas d’enregistrement MOBSP, le partenaire technique peut accompagner ses marchands dans leur entrée en relation (enrôlement via API, transmission du lien d’inscription, assistance documentaire), sous réserve de validation préalable par CentralPay
  • Si le partenaire n’est pas MOBSP, chaque marchand doit initier lui-même sa demande de création de compte Marchand CentralPay ou de rattachement au partenaire technique, afin d’activer les bons droits techniques

3. Règles de conformité communes

Pour les deux modèles :

  • Le Partenaire ne détient aucun fonds de tiers et n’agit jamais en son nom propre pour l’exécution de services de paiement
  • Les comptes bancaires, les reversements et la détention de fonds de tiers sont strictement encadrés par CentralPay
  • Aucune délégation réglementaire d’exécution de service de paiement n’est accordée à ces acteurs

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 compte Marchand CentralPay, lors d’un parcours d’enrôlement individualisé
  • Signent électroniquement les Conditions Générales de Compte de Paiement CentralPay, qui mentionnent explicitement leur rattachement au partenaire concerné
  • Reconnaissent que le partenaire pourra initier certaines actions techniques via son intégration CentralPay (ex. : transmission d’une commande, envoi d’une demande de paiement, remontée d’un panier, etc.)

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, 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, ses droits d’accès API et les conditions de reversement de commissions le cas échéant
  • Les marchands associés signent les CGU CentralPay, dans lesquelles est précisée leur association au partenaire
  • 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 à nos conditions réglementaires

4. Déclaration MOBSP (Mandataire d’Opérations de Banque et Services de Paiement)

Un Intégrateur ou un Partenaire Technique peut, s’il le souhaite, être déclaré en tant que MOBSP auprès de l’ORIAS, sous la supervision de CentralPay.

Cette déclaration permet :

  • D’initier une demande d’entrée en relation pour le compte du marchand
  • De collecter et transmettre les pièces justificatives via l’API Onboarding CentralPay
  • D’assister le marchand dans ses démarches contractuelles, techniques et documentaires

Le statut de MOBSP ne modifie en rien les restrictions précédemment énoncées. Il ne confère aucun droit supplémentaire sur les fonds ou les opérations de paiement, mais autorise la présentation commerciale et l’accompagnement réglementé du marchand dans sa relation avec CentralPay.

Déclaration MOBSP (Orias)

ℹ️ Avant de lire cette page, veuillez consulter la rubrique dédiée à l'entrée en relation pour les partenaires.

Les partenaires CentralPay basés en France opèrent avec le statut d’intermédiaires en opérations de banque et en service de paiement (IOBSP), plus précisément en tant que Mandataires en Opérations de Banques et Services de Paiement (MOBSP).

Pour devenir partenaire MOBSP de CentralPay, vous devez vous déclarer à l’ORIAS. CentralPay devra ensuite vous déclarer en tant que son mandataire. Votre partie peut être réalisée en quelques heures, celle de CentralPay prend quelques jours. L’ORIAS peut quant à elle prendre jusqu’à deux mois pour examiner votre demande.

Bien que ce processus vous incombe, CentralPay peut vous assister en cas de besoin. Contactez notre service client en cas de besoin.

1. Préparez vos données

1.1. Obtenez votre attestation de mandat

Après avoir signé votre contrat de partenariat avec CentralPay :

  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

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

Certains projets nécessitent un cadre réglementaire spécifique permettant à des mandataires d’agir au nom de CentralPay, établissement agréé par l’ACPR. Deux statuts sont prévus par la réglementation française :

  • Le Distributeur de Monnaie Électronique (DME), pour la gestion de valeur stockée dans des projets de type plateformes C2C, titres prépayés, réseaux fermés, etc
  • L’Agent de Prestataire de Services de Paiement (Agent PSP), pour les projets nécessitant une gestion active des flux de paiement (encaissements, transferts, reversements)

Ces modèles permettent une grande autonomie du mandataire, mais s’accompagnent de contraintes réglementaires fortes, sous la responsabilité de CentralPay.

1. Distributeur de Monnaie Électronique (DME)

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

1.2. Rôle du DME

Le distributeur agit pour le compte de CentralPay dans la mise à disposition et la gestion de la monnaie électronique.

Fonctionnalités :

  • Mise en relation de CentralPay avec les utilisateurs finaux (les « sous-marchands »)
  • Transmission à CentralPay des instructions de chargement (montant, bénéficiaire, commission)
  • Visualisation et suivi des opérations via un compte centralisateur dédié
  • Transfert de valeur entre utilisateurs (comptes de monnaie électronique)
  • Remboursement de la monnaie électronique à la demande de l’utilisateur
  • Détention d’un compte de commission pour percevoir les frais définis dans ses CGU

1.3. Limites fonctionnelles

  • Le DME ne détient jamais les fonds
  • Il n’intervient pas sur les services de paiement régulés (ex : virements SEPA, carte, prélèvements)
  • Il ne peut pas sous-traiter son activité, sauf accord explicite de CentralPay

1.4. Contraintes réglementaires

  • Signature d’un contrat de distribution avec CentralPay
  • Dépôt d’un dossier de demande d’enregistrement à l’ACPR, sur initiative de CentralPay
  • Mise en conformité organisationnelle : dispositifs internes de sécurité, confidentialité, gestion des incidents, continuité d’activité
  • Supervision permanente par CentralPay, incluant :
    • Contrôle de l’usage de l’API
    • Reporting régulier sur l’activité
    • Formation obligatoire des équipes du DME
    • Validation des CGU utilisées auprès des sous-marchands

2. Agent de Services de Paiement (Agent PSP)

2.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 le reversement

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

Fonctionnalités :

  • Collecte de données KYC/KYB des utilisateurs (niveau 1)
  • Accompagnement à l’ouverture de comptes CentralPay
  • Détention d’un compte de collecte, utilisé pour encaisser les paiements des utilisateurs finaux
  • Gestion des transferts de fonds vers les comptes de paiement CentralPay de chaque bénéficiaire
  • Pilotage des reversements (PAYOUT) vers les comptes bancaires externes
  • Détention d’un compte de commission
  • Éventuellement, utilisation d’un compte de paiement propre pour ses propres encaissements

2.3. CentralPay reste responsable

  • CentralPay reste pleinement responsable des services fournis à l’utilisateur final
  • L’agent agit dans le strict cadre du mandat qui lui est confié
  • Toute opération réalisée via la plateforme est auditable, traçable et documentée

2.4. Contraintes réglementaires

  • Signature d’un contrat d’agent
  • Enregistrement officiel sur le registre des agents de l’ACPR (via CentralPay)
  • Évaluation stricte de la capacité organisationnelle du mandataire
  • Exigences renforcées en matière de :
    • Contrôle LCB-FT
    • Protection des données
    • Traçabilité des flux financiers
  • Reporting périodique à CentralPay sur :
    • Le volume d’activité
    • Les incidents
    • Le respect des procédures
  • Possibilité d’audit sur pièce ou sur site
  • Formations obligatoires pour les équipes opérationnelles

Déclaration Agent PSP (ACPR)

Rôle de l’ACPR

L’ACPR (Autorité de Contrôle Prudentiel et de Résolution), organe de la Banque de France, est le seul régulateur compétent pour valider les déclarations d’Agents d’un Établissement de Paiement ou de Monnaie Électronique comme CentralPay. L’ACPR traite uniquement avec les Établissements régulés, sans contact direct possible pour le futur Agent.

Étapes de déclaration d’un Agent

ÉtapeDescription
1. Constitution du dossierRéalisée par CentralPay avec le concours du futur Agent
2. Réponses aux demandes ACPRPilotées par CentralPay avec l’aide du futur Agent
3. Décision de l’ACPRCommuniquée à CentralPay

1. Responsabilités de l’Agent

CentralPay prend en charge les obligations complexes ou techniques. Toutefois, l’Agent doit garantir un haut niveau de vigilance en matière de LCB-FT (Lutte Contre le Blanchiment de Capitaux et le Financement du Terrorisme).

L’Agent est notamment responsable de :

  • La compréhension de l’activité de ses sous-marchands
  • La vérification de la réalité économique des opérations
  • La lutte contre la fraude

L’Agent doit signer :

  • Un Contrat Cadre d’Agent de Paiement avec CentralPay
  • Des Conditions Générales d’Utilisation spécifiques aux vendeurs

Si l’Agent internalise certaines fonctions critiques (ex. vérification KYC), un Contrat d’Externalisation de Prestations Essentielles doit également être signé.

2. Devenir Partenaire Agent CentralPay

Le processus d’enregistrement comme Agent s’étale sur plusieurs mois et suit les étapes suivantes :

2.1. Résumé des étapes

ÉtapeDétails
1. Compréhension du modèle– Explication des services rendus par l’Agent
– Définition du modèle d’affaires
– Validation par les services Juridique et Conformité de CentralPay
2. Offre commerciale– Présentation par CentralPay
3. Validation– Validation juridique et conformité
– Accord sur l’offre commerciale et les tarifs
4. Test & Intégration– Accès à la sandbox
– Réunion projet avec l’équipe technique – Intégration technique
5. Instruction ACPR– Collecte des éléments réglementaires
– Constitution et dépôt du dossier auprès de l’ACPR
6. Mise en production– Tests en environnement de recette
– Passage en production

2.2. Pièces à fournir à CentralPay

Phase 1 – Pré-constitution du dossier

  • CGU du service de paiement
  • Définition des activités régulées, services associés, modèle d’affaires
  • Organigramme (y compris répartition des effectifs par service)
  • Structure de l’actionnariat
  • Flux prévisionnels sur 3 ans confiés à CentralPay
  • Nombre d’enrôlements prévisionnels sur 3 ans
  • Cas de reprise de KYC existant (migration)
  • Préparation du contrat d’Agent

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

  • Signature du contrat d’Agent
  • CentralPay collecte et dépose les pièces suivantes :
    • Kbis < 3 mois de la société et des sociétés gérantes
    • Statuts à jour signés de la société et des sociétés gérantes
    • Pièce d’identité couleur des dirigeants
    • CV des dirigeants datés et signés
    • Casier judiciaire des dirigeants
    • Déclaration de non-condamnation des dirigeants
    • Répartition de la détention des parts
    • Kbis des personnes morales actionnaires (si applicable)
    • Organigramme du Groupe (si applicable)
    • PV d’AG récents (fusion, perte > 50% du capital, changement direction, etc.)

Peuvent également être demandés par l’ACPR :

  • Bilans et comptes de résultat récents
  • États financiers en cours ou de l’année précédente
  • Toute pièce jugée utile par le régulateur

2.3. Délais d’instruction

  • Instruction par CentralPay : ~2 semaines après réception complète des pièces
  • Délai de l’ACPR : jusqu’à 2 mois, avec premières questions sous 30 jours en général

2.4. Fin d’instruction

  • Dès validation du dossier, l’Agent peut démarrer l’activité avec CentralPay
  • Il est référencé dans les registres publics de l’ACPR avec un numéro d’enregistrement obligatoire dans les CGU et communications officielles

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

  • Obligation de fournir un récapitulatif des minutes téléphoniques par opérateur
  • Transmission du détail de répartition des encaissements à CentralPay
  • Le service Conformité CentralPay s’assure que les marchands sont correctement crédités

Déclaration Distributeur ME (ACPR)

Les Établissements émetteurs de monnaie électronique comme CentralPay peuvent mandater des Distributeurs de Monnaie Électronique (DME) afin de collecter des fonds et d’assurer les échanges permettant l’achat et le remboursement de ME dans un réseau de 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

Charge

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

Notifications email/sms

Les notifications peuvent être adressées en fonction des évènements liés à certains objets API :

  • Demande de paiement (paymentRequest)
  • Contestation carte (dispute)
  • Paiement X fois (installment)
  • Transaction carte (transaction)
  • Reversement (payout)
  • Remboursement carte (refund)
  • Abonnement (subscription)
  • Crédit carte (credit)
  • Transaction SDD (sddTransaction)
  • Transaction SDD inversée (sddTransactionReversal)
  • Mandat (mandate)

1. Types de scénarios de notification

Notifiez vos clients et alertez vos collaborateurs automatiquement lorsque certains évènements ont lieu sur votre compte 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…).

Transaction par virement

Articles

  • Informations générales
  • IBAN Virtuels
  • Transaction par virement
  • Pay by Bank - Initiation de paiement (PIS)
  • Rapprochement à une demande de paiement
  • R-transaction SCT
  • Virements internationaux
  • Retours, statuts et webhooks

Informations générales

1. Fonctionnement

Le virement bancaire est le moyen de paiement le plus répandu pour les règlements d’entreprises. Il consiste en un transfert direct des fonds d’un compte (bancaire ou de paiement) à un autre, sans utiliser de support additionnel comme une carte par exemple.

La personne physique ou morale qui demande l’émission du virement est dénommée le donneur d’ordre (ou l’émetteur), celle qui reçoit l’argent le bénéficiaire. Contrairement à un paiement par carte ou par prélèvement SEPA, seul l’émetteur lui-même peut initier un virement. Il se rend ainsi sur l’espace personnel de sa banque, déclare les coordonnées bancaires du bénéficiaire (IBAN + BIC + Nom de titulaire), puis renseigne un montant et une référence de virement.

Quelques informations importantes :

  • Le délai de réception d’un virement classique chez CentralPay est de 4 à 24 heures ouvrées (contre 24 à 48 heures ouvrées chez la majorité des banques traditionnelles). Il sera également possible de recevoir des virements instantanés (réception <5 secondes) à partir d’octobre 2024
  • Le virement ne présente pas de risque financier majeur pour le marchand bénéficiaire, car l’émetteur s’authentifie fortement auprès de sa banque et ne peut donc pas contester cette opération
  • Les banques émettrices accordent un plafond de règlement par virement nettement plus élevé que celui appliqué aux opérations de prélèvement SEPA ou de règlement par carte
  • Selon les fonctionnalités proposées par sa banque, l’émetteur peut programmer un virement récurrent ou à date différée

2. Types de réseaux acceptés

Il existe deux types de virements bancaires :

  • Les virements SEPA (ou SEPA Credit Transfer) : Utilisés pour les opérations en EUROS réalisées entre deux pays membres de la zone SEPA (= 27 pays de l’Union européenne + Royaume-Uni, Monaco, Andorre, Vatican, Suisse, Liechtenstein, Norvège, Islande et Saint-Marin)
  • Les virements internationaux : Utilisés pour les opérations internationales en EUROS ou en devises, via le réseau SWIFT

Les frais applicables aux réseaux SEPA sont très largement favorables (à peine quelques dizaines de centimes contre plusieurs dizaines d’euros pour SWIFT). SWIFT permet cependant plusieurs options liées au règlement de ses frais : à la charge de l’émetteur, du bénéficiaire ou partagés.

CentralPay est atteignable par toutes les banques de l’Espace Économique Européen utilisant les réseaux SEPA (via STEP2 pour les SCT/SDD, ainsi que TIPS et RT1 pour les « Instant SCT »). Seuls les virements de réseaux internationaux ou en devises hors EUROS ne sont pas recevables pour le moment (via réseau SWIFT par exemple).

IBAN Virtuels

Le paiement par virement bancaire impose une responsabilité au client émetteur : celle de renseigner les coordonnées bancaires (IBAN + BIC + Nom du titulaire), le montant du règlement mais aussi la référence de virement.

Une absence ou un mauvais formatage de la référence (causé par le client ou par le système de sa banque) contraint le bénéficiaire d’analyser manuellement le virement reçu pour le rapprocher à la bonne facture et au bon poste client.

CentralPay vous permet de présenter un IBAN virtuel différent à chacun de vos clients (Customer) ou dans chacune de vos factures (PaymentRequest). Ainsi lors de la réception d’un virement, CentralPay identifie automatiquement l’émetteur et peut rapprocher la facture pour vous, selon l’IBAN virtuel utilisé par votre client, même en cas d’erreur de référence.

Un IBAN Virtuel est en tous points identique à un IBAN classique, ce qui rend le processus entièrement transparent pour vos clients.

Ce service vous permettra notamment :

  • D’être informé instantanément quand un client vous a réglé par virement
  • D’automatiser vos alertes internes et vos relances clients (via le service de notifications)
  • D’automatiser le rapprochement de vos paiements dans vos solutions comptables ou de facturations (ERP…)
  • Pour les plateformes et marketplaces : d’identifier facilement le marchand bénéficiaire et de lui transférer les fonds

Vous pourrez créer des IBAN Virtuels CentralPay depuis différents services de la plateforme :

  • Depuis le service Customer
  • Depuis le service SCT Transaction
  • Depuis le service PaymentRequest
ℹ️ Chaque compte de paiement ou de monnaie électronique dispose nativement d'un IBAN Virtuel dédié

1. Consulter l’IBAN Virtuel de ses comptes

Vous pouvez retrouver l’IBAN Virtuel de vos comptes depuis le Portail 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 ➝

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 reversements SEPA)
Déclaration d’activité et de revenus
Justificatif de domicile (<3 mois)
Justificatifs de revenus : fiche de paie, relevé bancaire, avis d’imposition
Pour activité de location : taxe foncière ou titre de propriété, attestation de propriété

2.2. Personnes morales (KYB)

La création d’un compte 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é

Complete enrollment

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

jQuery(document).ready( function($) { window.live_68cacb118b5ea = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Complete additional enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_68cacb118b5ea", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_68cacb118b5ea.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. Elle définie devient inopérante pour des clients identifiés, VIP ou reconnus de confiance qui sont intégrés à une « whitelist ». Les « whitelists » portent sur les données spécifiques d’un client, comme le numéro de sa Carte Bancaire ou son adresse IP. Cette fonctionnalité permet d’être moins restrictif sur des populations d’utilisateurs
  • Liste noire (blacklist)
    Le service de « blacklist » permet de refuser les paiements. Tout comme pour les « whitelists », les « blacklists » portent sur les données propres au porteur de carte (Carte, IP, tel, email)
  • Règles d’acceptation des 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 reversementEntier#payout_amount > 100
#payout_currencyDevise de reversementChaîne de caractères 
ISO 4217
#payout_currency = ‘EUR’
#risk_scoreScore d’antifraudeDouble#risk_score > 2,34
#custom_acceptance_data[‘key’] = ‘value’champs customisékey : Regex [a-zA-Z0-9_-]value: Regex [a-zA-Z0-9_-]#custom_acceptance_data[‘product_category’] = ‘high’

Dans le cas du custom_acceptance_data[‘key’] = ‘value’, afin qu’il soit pris en compte il est nécessaire que l’exact même champs soit reporté dans la requête de l’objet visé.

Les opérateurs logiques et parenthésage :

Opérateurs logiques AND et OR

La syntaxe utilisée pour définir les règles permet de créer plusieurs conditions au sein de la même règle. Les conditions resteront définies de la même manière, à la seule différence qu’un mot clé sera placé entre les conditions.

Les mots clés sont and et or. Ils permettent de définir comment le moteur de règle va interpréter la succession de ces règles. Le « AND » correspond à l’inclusion et le « OR » à l’exclusion.

Exemple :

ALLOW if #amount < 1000 and #card_country = 'FRA'

L’exemple précédent autorise les paiements dont le montant est inférieur à 10 ET dont la carte est française. Si l’une ou l’autre des conditions définies n’est pas remplie, l’action ne sera pas exécutée.

Exemple :

ALLOW if #amount < 1000 or #card_country = 'FRA'

L’exemple précédent autorise les paiements dont le montant est inférieur à 10 OU dont la carte est française. Si l’une ou l’autre des conditions définies est remplie, l’action sera exécutée.

Parenthèses

L’utilisation des parenthèses dans la définition d’une règle multi-conditions permet de définir des blocs de conditions et les priorités entre ces blocs. Le principe est le même que celui des priorités pour les opérateurs mathématiques.

Exemple :

ALLOW if #amount < 1000 and (#card_country = 'FRA' or #currency = 'EUR')

Dans l’exemple précédent, le moteur de règle va d’abord interpréter le bloc (#card_country = ‘FRA’ or #currency = ‘EUR’). C’est à dire que le paiement sera autorisé si (la carte est française ou que la devise est l’euro), ET que le montant est inférieur à 10.

Ordre d’exécution des règles

Les règles sont exécutées dans un ordre à définir. Cet ordre est important car dès qu’une transaction répond aux critères d’une règle, les règles suivantes ne seront pas traitées.

Les règles sont exécutées dans l’ordre d’affichage de la liste de l’interface.
Un indicateur de position est affiché dans chaque liste. Pour changer la position d’une règle, il suffit de la faire glisser à la position souhaitée.

Exemples de règles :

ALLOW if #amount < 1000 and #transactions_amount_daily < 10000

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.

Transaction prélèvement SEPA

Articles

  • Informations générales
  • Identifiant de Créancier SEPA
  • Déclaration du compte bancaire
  • Création du mandat SEPA
  • Transaction par prélèvement
  • R-transaction SDD
  • Retours, statuts et webhooks

Informations générales

Le prélèvement SEPA (SEPA Direct Debit ou « SDD » en anglais) permet à un créancier (marchand) de prélever un montant dû directement sur le compte de son débiteur (client). Il est principalement destiné aux règlements récurrents (abonnements ou paiements en plusieurs fois) mais peut-être dans certains cas utilisé pour des règlements ponctuels (par exemple pour le règlement de factures entre professionnels).

Étant émis à l’initiative du créancier, il requiert la collecte préalable d’une autorisation de son débiteur. Le marchand édite ainsi un « Mandat SEPA » précisant les conditions de prélèvement et les coordonnées bancaires des deux parties que son débiteur devra signer.

1. Les deux types de prélèvement SEPA

Il existe deux types de prélèvements SEPA :

  • Le prélèvement SEPA « CORE » : le plus répandu, il permet aux créanciers de débiter des comptes de particuliers comme de personnes morales. Le mandat SEPA est édité et signé entre les deux parties sans contraintes particulières. Le débiteur est cependant protégé et peut contester un prélèvement CORE sans motifs auprès de sa banque sous 8 semaines
  • Le prélèvement SEPA « B2B » : réservé aux prélèvements entre entreprises. Le mandat SEPA est édité, signé puis doit être transmis par le débiteur à sa banque. Le parcours de contractualisation requiert ainsi une action forte du débiteur et la validation de sa banque. Cependant, les prélèvements initiés depuis ce type de mandats ne sont pas contestables.
    CentralPay ne propose pas ce service de prélèvement SEPA type « B2B »

2. Risques de rejet et de contestation

Le prélèvement SEPA étant un moyen de paiement dont les transactions sont initiées sans authentification forte du client, les risques de rejets et de contestations sont à prendre en considération.

👉 Consultez la rubrique « R-Transaction SDD » pour en savoir plus sur les rejets et contestations SDD

3. Informations importantes

  • Le prélèvement SEPA est utilisable sur la vaste majorité des comptes bancaires « courants » des pays de la zone SEPA et certains de l’Espace Économique Européen hors SEPA. Cela dépend de la connectivité aux réseaux SEPA des banques des débiteurs. Les comptes spéciaux type « comptes épargnes » ne sont pas atteignables
  • Les opérations SEPA sont traitées en devise EUROS (€) uniquement
  • Les opérations SEPA sont traitées lors des jours ouvrés uniquement (hors weekend et jours fériés). Ainsi, le délai de réception des fonds varie entre 2 à 5 jours à compter de la date d’initiation de l’opération
  • Le débiteur doit être informé par le créancier des prélèvements à venir, au moins 14 jours avant la date, soit par l’envoi d’un échéancier, d’une notification ou d’une facture
  • La durée de validité d’un mandat SEPA est de 36 mois après la dernière transaction opérée sur ce mandat
  • Dans le cadre d’un prélèvement SEPA sur le compte bancaire d’une entreprise (personne morale), le créancier doit veiller à ce que le mandat SEPA soit adressé et signé par le dirigeant ou un responsable habilité (gérant, service comptabilité…)
  • Le prélèvement SEPA est particulièrement adapté aux transactions récurrentes d’un montant situé entre 20 et 200 EUR pour les débiteurs particuliers, et entre 20 et 2 000 EUR pour les débiteurs personnes morales

Identifiant de Créancier SEPA

L’Identifiant Créancier SEPA (ICS) est un numéro de référence unique qui identifie chaque émetteur de prélèvement. En France, il est composé de 13 caractères alphanumériques, dont les 2 premiers représentent le code pays ISO (FR pour la France).

Disposer d’un ICS est un prérequis obligatoire pour réaliser des prélèvements. Le créancier doit faire la demande d’attribution de l’ICS auprès de sa banque. Le créancier conserve ensuite son ICS, même s’il change de banque.

Communiquez votre ICS à CentralPay lors de votre entrée en relation afin que nos équipes puissent le déclarer dans votre compte.

Déclaration du compte bancaire

Pour réaliser une transaction par prélèvement SEPA, il faut d’abord créer le profil de votre client (le débiteur) et déclarer ses coordonnées bancaires sur la plateforme CentralPay.

1. Créer un profil client « Customer »

  • Collecter les informations de votre client (email, nom, prénom…)
  • Créer un profil client Customer
  • Récupérer la propriété customerId dans le retour de création du Customer

2. Créer un compte bancaire « bankAccount »

  • Collecter les coordonnées bancaires de votre client (IBAN, BIC, nom du titulaire du compte…)
  • Créer un compte bancaire bankAccount en renseignant le customerId de votre client
  • Récupérer le bankAccountId et le identityId dans le retour de création du bankAccount

Création du mandat SEPA

Après avoir déclaré le compte bancaire bankAccount du client et rattaché son profil client « Customer », vous pouvez créer un mandat SEPA « mandate » et collecter la signature électronique de votre client via un code (OTP) envoyé par SMS.

Prérequis : vous devez récupérer le creditorBankAccountId de votre compte Marchand CentralPay correspondant à votre ICS. Vous pouvez le retrouver depuis votre Portail Marchand en utilisant un profil avec des droits Admin : Administration Mon compte Comptes bancaires

Identifiez la ligne présentant votre ICS dans la colonne « IBAN » puis copiez l’UUID associé.

1. Création et signature d’un nouveau mandat SEPA

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 Compte Marchand CentralPay (Merchant) doit être créé. Les mandats existants devront alors être redéclarés sous ce nouveau compte via un processus de migration.

3.2. Modifications nécessitant un nouveau mandat

Les modifications suivantes imposent la création d’un nouveau mandat SEPA, car elles impliquent une nouvelle autorisation du débiteur :

  • Changement de nom du débiteur
  • Changement de la date de signature du mandat
  • Changement de type de mandat : passage de SDD Core à SDD 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 Marchand 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 ➝

Customer >

See more about Customer

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

Tarifs

Articles

  • Offres commerciales
  • Frais d'interchange et réseaux cartes
  • Forfaits d'accompagnement

Offres commerciales

CentralPay propose 2 modèles d’offres commerciales :

  • Les offres Starter et Medium, intégrant un forfait mensuel fixe et des frais par transaction simplifiés (ou « blind rate »)
  • Les offres Major, intégrant également un forfait mensuel fixe, mais avec des frais par transaction plus détaillés (ou « interchange++ »)

Dans ces deux modèles, les offres CentralPay intègrent les frais d’interchange et de réseaux cartes qui sont facturés par les banques. Vous n’avez donc aucun surcoût à prévoir.

👉 Consultez le tarif des offres CentralPay

Frais d'interchange et réseaux cartes

L’interchange correspond à la valeur chargée par l’établissement émetteur d’une carte de paiement (la banque de votre client) à l’établissement acquéreur (la banque du marchand).

Les frais de réseaux carte (ou « Card Scheme Fees ») correspondent aux frais pris par les réseaux carte (Visa, Mastercard, CB) pour faire fonctionner le service.

Des termes ont été définis pour désigner l’assemblage de ces frais :

  • Interchange+
    Les frais d’Interchange + les frais des réseaux cartes (card scheme fees)
  • Interchange++
    Les frais d’Interchange + les frais des réseaux cartes (card scheme fees) + les frais de service de l’établissement (CentralPay)

Toutes les offres commerciales de CentralPay intègrent les frais d’Interchange+ ainsi que nos propres frais de service, vous n’avez donc aucun frais bancaire supplémentaire à prévoir pour réaliser vos transactions. Sauf mention contraire, des frais minimum de perception de 0.15 € sont prélevés sur l’IC++.

1. Frais d’interchange et réseaux carte (E-commerce)

Type de carteInterchange Intrarégional (EEE)Interchange Interrégional (hors EEE)
Carte de débit ou prépayé
CB, VISA, MASTERCARD
0,2 %1,15 %
Carte de crédit ou débit différé
CB, VISA, MASTERCARD
0,3 %1,5 %
Carte professionnelle
CB
0,9 %/
Carte professionnelle
VISA
1,45 %2 %
Carte professionnelle
MASTERCARD
1,45 %2 %
Toutes cartes
AMERICAN EXPRESS
AucunAucun
Réseau carteFrais de réseaux carte Intrarégional (EEE)Frais de réseaux carte Interrégional (hors EEE)
Réseau CB (Cartes bancaires)0,030 %/
Réseau VISA0,110 %0,700 %
Réseau MASTERCARD0,390 %0,950 %
Réseau AMERICAN EXPRESS1,600 %2,400 %

2. Frais d’interchange et réseaux carte (paiement de proximité)

Type de carteInterchange Intrarégional (EEE)Interchange Interrégional (hors EEE)
Carte de débit ou prépayé
CB, VISA, MASTERCARD
0,2 %1,15 %
Carte de crédit ou débit différé
CB, VISA, MASTERCARD
0,3 %1,5 %
Carte professionnelle
CB
0,9 %/
Carte professionnelle
VISA
1,45 %2 %
Carte professionnelle
MASTERCARD
1,45 %2 %
Toutes cartes
AMERICAN EXPRESS
AucunAucun
Réseau carteFrais de réseaux carte Intrarégional (EEE)Frais de réseaux carte Interrégional (hors EEE)
Réseau CB (Cartes bancaires)0,030 %/
Réseau VISA0,110 %0,700 %
Réseau MASTERCARD0,390 %0,950 %
Réseau AMERICAN EXPRESS1,600 %2,400 %

Forfaits d'accompagnement

Les forfaits d’accompagnement permettent une mise en service rapide, guidée par nos équipes support intégration (SI) et service client (SC). Les heures d’accompagnement vous permettent de déléguer certains paramétrages de votre compte et de solliciter des échanges visio : avec le SI pour les sujets techniques, avec le SC pour ceux d’ordre administratif / fonctionnels.

1. Accompagnement à l’intégration Smart Collection

Accompagnement à l’intégration, au choixFrais (HT)
En 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 €

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

Update enrollment

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

jQuery(document).ready( function($) { window.live_68cacb11929a2 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Rollback enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_68cacb11929a2", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_68cacb11929a2.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

Logos et visuels

Articles

  • Logos CentralPay
  • Logos PaySecure
  • Visuels de réassurance (FR/EN)

Logos CentralPay

Logo CentralPay SVG
Logo CentralPay blanc SVG
Logo CentralPay PNG
Logo CentralPay blanc PNG

Logos PaySecure

1. Logos

Logo PaySecure classique PNG
Logo PaySecure blanc PNG
Logo PaySecure classique JPG

2. Visuels de réassurance (FR/EN)

Réassurance – fond blanc
Réassurance – fond transparent
Réassurance – blanc
Réassurance – fond blanc
Réassurance – fond transparent
Réassurance – blanc

Visuels de réassurance (FR/EN)

Intégrez un de ces visuels en dessous de votre formulaire de paiement CustomForm, ou simplement dans le footer de votre site afin de rassurer vos clients concernant la sécurité de leurs données de paiement.

1. Version française

Réassurance 1 – classique
Réassurance 1 – fond blanc
Réassurance 1 – blanc
Réassurance 2 – classique
Réassurance 2 – fond blanc
Réassurance 2 – blanc
Réassurance 3 – classique
Réassurance 3 – fond blanc
Réassurance 3 – blanc
Réassurance 4 – Avec Amex
Réassurance 4 – Amex fond blanc
Réassurance 4 – Amex blanc
Réassurance 5 – Avec Amex
Réassurance 5 – Amex fond blanc
Réassurance 5 – Amex blanc
Réassurance 6 – Avec Amex
Réassurance 6 – Amex fond blanc
Réassurance 6 – Amex blanc

2. Version anglaise

Réassurance 1 – classique
Réassurance 1 – fond blanc
Réassurance 1 – blanc
Réassurance 2 – classique
Réassurance 2 – fond blanc
Réassurance 2 – blanc
Réassurance 3 – classique
Réassurance 3 – fond blanc
Réassurance 3 – blanc
Réassurance 4 – Avec Amex
Réassurance 4 – Amex fond blanc
Réassurance 4 – Amex blanc
Réassurance 5 – Avec Amex
Réassurance 5 – Amex fond blanc
Réassurance 5 – Amex blanc
Réassurance 6 – Avec Amex
Réassurance 6 – Amex fond blanc
Réassurance 6 – Amex blanc

Reversement bancaire

Les reversements bancaires (Payout) sont des virements sortant de votre compte de paiement CentralPay vers le compte bancaire qui y est associé.

Ils peuvent être réalisés manuellement depuis le Portail Marchand ou l’API Payment. Ils peuvent également être automatisés depuis le Portail Marchand.

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

1. Les deux modes de reversement

1.1. Reversement automatique

Le titulaire du compte peut définir la périodicité : quotidien, hebdomadaire (choix du jour de la semaine, ex : chaque mardi) ou mensuel (choix du jour dans le mois, ex : le cinq du mois).

Le service PAYOUT automatique exécutera automatiquement à 01h00 du jour donné un virement des fonds disponibles sur votre compte de paiement.

Exemple :

Cas d'un reversement hebdomadaire programmé le mardi : CentralPay exécutera la demande de création du virement (PAYOUT) le mardi matin avec les fonds disponibles (AVAILABLE) sur le compte de paiement jusqu'au mardi 01h00.

1.2. Reversement manuel (via BO ou API)

Vous avez la possibilité d’exécuter des payouts manuellement depuis le Portail Marchand ou l’API CentralPay. Vous pouvez déterminer le montant à reverser (avec en maximum le montant disponible sur votre compte).

Attention, le PAYOUT ne sera exécuté immédiatement que s’il est effectué avant 05h00 le matin. À défaut, il sera exécuté le lendemain à 05h00 du matin également.

2. Délais de disponibilité des fonds

Les reversements comprennent uniquement les fonds disponibles (ou « AVAILABLE ») de vos comptes de paiement. Les fonds issus d’une transaction par carte bancaire sont par exemple disponibles à J+2 : une transaction carte réalisée le lundi, apparaîtra en « Pending » le lundi, sera « Available » le mardi soir, le payout automatique sera effectué le mercredi matin à 00h05 et la réception du virement SEPA sur votre compte bancaire le jeudi.

ℹ️ Le paramètre EscrowDate peut influer sur la date de disponibilité des fonds d'une transaction (concerne uniquement les partenaires AGENT).

3. Création d’un reversement manuel

3.1. Payout manuel par Portail Marchand

Depuis le Portail Marchand Administration Mon compte Reversements : cliquez sur « Transferts externes », sélectionnez le compte d’émission, le montant du reversement ainsi que l’IBAN destinataire, puis cliquez sur « confirmer le transfert ».

Recette Portail Marchand – Reversements
Production Portail Marchand – Reversements

3.2. Payout manuel par API

Consultez le détail dans la rubrique : Développeurs Payout

4. Reversement en euros ou devises via le réseau SWIFT

Les virements bancaires internationaux sont gérés via le réseau SWIFT (contrairement au réseau SEPA pour les virements européens). Ces virements peuvent être émis depuis un très grand nombre de pays en EUROS ou dans d’autres devises.

Si vous disposez d’un compte en devises ou n’étant pas accessible via le réseau SEPA, vous pouvez réaliser vos virements via le réseau SWIFT. Contactez CentralPay pour en savoir plus.

ℹ️ Les virements bancaires du réseau SWIFT présentent des frais très largement supérieurs aux virements SEPA. Vous pouvez demander à CentralPay de paramétrer vos reversements automatiques afin qu'ils soient déclenchés à partir d'un certain seuil de fonds disponibles.

5. Retours, statuts et webhooks

Consultez les statuts PAYOUT ➝

Consultez les webhooks PAYOUT ➝

Paiements récurrents

Articles

  • Abonnement
  • Fractionné

Abonnement

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

    Installment Payment >

    See more about Installment Payment

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

    Activités interdites

    Pour garantir la conformité réglementaire, la sécurité des opérations et la réputation de ses services, CentralPay interdit formellement certaines activités. Toute personne ou entité souhaitant ouvrir un compte 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 compte 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.

    Search enrollement

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

    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…

    Principes de réserve

    La réserve représente les sommes qui sont maintenues sur votre compte Marchand CentralPay afin de permettre de couvrir les R-transactions (rejets, refus, retours, remboursements, contestations, impayés) liés à des opérations de paiement. Ses paramètres sont définis en fonction du profil de risque financier de votre compte et sont actualisés en fonction de l’analyse de vos R-transactions sur une période suffisante. Les transactions récurrentes par prélèvement SEPA et par carte bancaire sont particulièrement sujettes au risque de R-transactions.

    CentralPay possède 3 types de garanties de protection qui peuvent s’appliquer aux marchands, en fonction de la nature de leur contrat :

    1. Le collatéral

    Il représente la somme fixe versée en début de relation, servant à couvrir le risque de crédit dans le cas où le marchand ne pourrait pas satisfaire ses obligations de remboursement envers ses clients.

    Le détail du collatéral est visible depuis le Portail Marchand : Administration Reversements Somme des cautions

    2. Le pied de compte

    En l’absence de collatéral, une somme fixe peut être prélevée directement sur les opérations afin de garantir le remboursement des clients en cas de besoin. Le wallet doit donc dépasser la valeur du pied de compte pour autoriser les reversements (payout).

    Le détail du pied de compte est visible depuis le Portail Marchand : Administration Reversements Seuil fixe

    3. La réserve glissante

    Selon le secteur d’activité et les processus de règlement du compte, une réserve glissante (« rolling réserve » en anglais) peut être automatiquement ouverte. Il s’agit d’une garantie de protection supplémentaire qui permet de maintenir un certain pourcentage du volume d’encaissement marchand sur le compte Marchand CentralPay afin de permettre l’initiation de remboursements automatiques en cas de contestation de transaction, de fraude ou encore afin de couvrir d’éventuels frais opérationnels. Cette somme appartient à la trésorerie du marchand, elle est gardée un nombre défini de jours avant d’être libérée (généralement entre 90 à 180 jours).

    Par exemple, le seuil variable de la réserve glissante est de 5 % du volume d’encaissement sur 90 jours. Le calcul quotidien du montant de réserve est le suivant : montant des transactions encaissées lors des 90 derniers jours * 5 %

    Le détail de la réserve glissante est visible depuis le Portail Marchand : Administration Reversements Seuil variable

    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 Compte Exports .

    1. Export comptable des opérations du compte

    Cet export reprend l’ensemble des mouvements financiers débiteurs et créditeurs qui ont été réalisés sur votre compte : autorisations cartes, transactions cartes, transactions SDD, transactions SCT, transfers, payout, frais CentralPay, 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
    movement_creation_datedate de l’opération
    movement_ididentifiant CentralPay de l’opération
    movement_gross_amountmontant brut
    movement_gross_currencydevise du montant brut
    movement_fee_amountmontant des frais CentralPay
    movement_fee_currencydevise des frais
    movement_net_amountmontant net
    movement_net_currencydevise du montant net
    movement_expected_availability_datedate de disponibilité des fonds estimée
    movement_available_datedate de disponibilité des fonds réelle
    movement_statusstatut du mouvement (success, failed…)
    movement_source_typetype d’opération (transaction, transfert…)
    movement_source_uuididentifiant associé au type d’opération (transactionId, wireTransferId, transferId…)
    merchant_descriptiondescription définie par le marchand
    merchant_reference_idréférence définie par le marchand
    card_countrypays d’émission de la carte
    card_regionzone d’émission de la carte (UE, hors UE)
    point_of_sale_idID CentralPay du point de vente

    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 rapport financier est généré, puis mis à disposition dans l’espace sécurisé de votre compte ( Administration compte documents Rapports financiers ). Il présente les montants totaux de crédit, de débit, de frais et de réserve de votre compte :

    Pour bien comprendre votre rapport financier :

    A) Le total des montants acquis / reçus sur votre compte au cours de la période

    B) Le montant net reçu sur votre compte, déduction faite de l’ensemble des frais selon le calcul « B = A – I »

    C) Le montant de la réserve détenue en garantie au jour de clôture de la période

    D) Le montant des fonds disponibles au jour de clôture de la période

    E) La valeur totale des fonds disponibles et en garantie enregistrée dans les livres de CentralPay au jour de clôture de la période selon la formule « E = C + D »

    F) La valeur totale des fonds retirés / transférés à la banque du marchand pendant la période

    G) Le total des frais de service et commissions facturées sur les transactions définies dans la grille tarifaire

    H) Total des frais d’opérations techniques : frais d’autorisation cartes, de contestation, de payout…

    I) Total des frais techniques et commissions ou « I = G + H »

    Accès :

    Recette Portail Marchand – Documents
    Production Portail Marchand – Documents

    MerchantInfo >

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

    Enrollment Details

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

    Test IBAN values

    Find below the list of HTTP return codes:

    DE91100000000123456789AXABFRPP
    AZ96AZEJ00000000001234567890AXABFRPP
    CY21002001950000357001234567AXABFRPP
    ES7921000813610123456789AXABFRPP
    FR7630006000011234567890189AXABFRPP
    FO9264600123456789AXABFRPP

    Développeurs

    Articles

    • How to use the swagger >
    • Authentication 3DS 2.2 >
    • BankAccount >
    • Card token
    • CARD Transaction
    • Charge
    • Customer >
    • Installment Payment >
    • MerchantInfo >
    • Onboarding
    • Payout >
    • Refund >
    • Payment Request >
    • SCT Transaction
    • SDD Transaction
    • Subscription
    • Transfer >
    • TransferReversal >
    • Wallet >
    • Blacklist >
    • WhiteList >
    • Webhook notifications
    • Object status
    • Resources by type

    How to use the swagger >

    You’ll find below instruction to use our swagger properly

    1 – This is where you can choose the server you’ll call for your tests. For now, only RCT (Test Api) is available.
    2 – In order to do your tests, you’ll need to authenticate with your credentials. You can use here your Api login and password. You can also use our test login : Doctest:4I9HJRTd


    3 – This is where you will be able to see the parameters for each endpoint, and do your tests.

    4 – Try it out. Use this if you want to be able to test the endpoint. Make sure you’re authenticated before doing so.
    5 – This is where you’ll be able to use the test values of your choosing. By default, most values are already filled, but use yours for better results.
    6 – Click here once values are filled to call our Api and do your tests.
    7 – This is where you’ll see the results once you called our Api. You’ll also find here by default responses example for this endpoint.

    Authentication 3DS 2.2 >

    See more about 3DS 2.2

    jQuery(document).ready( function($) { window.live_68cacb119f381 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_3D-Secure 2.yaml", dom_id: "#wp-swagger-ui-container-live_68cacb119f381", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_68cacb119f381.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_68cacb119f8a0 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Account.yaml", dom_id: "#wp-swagger-ui-container-live_68cacb119f8a0", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_68cacb119f8a0.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_68cacb119fcf1 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Card Token.yaml", dom_id: "#wp-swagger-ui-container-live_68cacb119fcf1", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_68cacb119fcf1.load(); });

    CARD Transaction

    Transaction

    See more about card transactions

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

    Credit

    See more about Credit

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

    Charge

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

    Customer >

    See more about Customer

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

    Installment Payment >

    See more about Installment Payment

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

    MerchantInfo >

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

    Onboarding

    Create Enrollement

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

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

    Complete enrollment

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

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

    Update enrollment

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

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

    Search enrollement

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

    Enrollment Details

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

    E-money

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

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

    Misc

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

    Payout >

    See more about Payout

    jQuery(document).ready( function($) { window.live_68cacb11a3017 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Payout.yaml", dom_id: "#wp-swagger-ui-container-live_68cacb11a3017", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_68cacb11a3017.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_68cacb11a373d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Refund.yaml", dom_id: "#wp-swagger-ui-container-live_68cacb11a373d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_68cacb11a373d.load(); });

    Payment Request >

    See more about Payment Requests

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

    SCT Transaction

    SCT Transaction

    See more about SCT Transaction

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

    SCT Transaction Reversal

    See more about SCT Transaction Reversal

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

    Bank Reconciliation

    See more about Bank Reconciliation

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

    Bank Reconciliation external

    See more about Bank Reconciliation

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

    SDD Transaction

    Mandate

    See more about Mandate

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

    SDD Transaction

    See more about SDD Transaction

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

    SDD Transaction Reversal

    See more about SDD Transaction Reversal

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

    Subscription

    Subscription Model

    See more about Subscription Model

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

    Subscription

    See more about Subscription

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

    Invoice & invoiceItem

    See more about Invoice & invoiceItem

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

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

    Transfer >

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

    TransferReversal >

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

    Wallet >

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

    Blacklist >

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

    WhiteList >

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

    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

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

    Resources by type

    Full Api

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

    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

    List of codes returned by the issuer bank to CentralPay after an authorization request

    CodeDescription
    00Transaction approved or successfully processed
    02Contact card issuer
    03Invalid acceptor
    04Keep card
    05Do not honor
    06Transaction invalid for terminal
    07Honor with ID
    08Time-Out
    09No original
    10Unable to reverse
    11Partial approval
    12Invalid transaction
    13Invalid amount
    14Invalid cardholder number
    15Unknown card issuer
    17Invalid capture date (terminal business date)
    19Repeat transaction later
    20No From Account
    21No To Account
    22Account not verified
    23Account not saved
    24No Credit Account
    25Unable to locate record in file
    26Record duplicated
    27 ‘Edit’ error in file update field
    28File access denied
    29File update not possible
    30Format error
    31Identifier of acquiring organization unknown
    32Transaction partially completed
    33Card validity date exceeded
    34Implausible card data
    38Number of PIN attempts exceeded
    39Transaction not allowed
    41Lost card
    42Special Pickup
    43Stolen card
    44Stolen card
    51Insufficient funds or overdraft
    54 Card expired
    55Incorrect PIN
    56 Card not on file
    57Transaction not authorized to this cardholder
    58Transaction prohibited at terminal
    59Suspected fraud
    60 the card acceptor must contact the buyer
    61Withdrawal amount over limit
    62Card use restricted
    63MAC Key Error
    65 Frequency limit exceeded
    66Acquirer limit reached
    67Card withheld
    68Response not received or received too late
    75Number of PIN attempts exceeded
    76Invalid Account
    77Issuer not participating in service
    78Function not available
    79Key validation error
    80Approved for purchase amount only
    81Unable to verify PIN
    82Invalid CVV
    83Not refused
    84Invalid transaction lifecycle
    85No key to use
    86KME synchronization error
    87PIN error
    88MAC synchronization error
    89Security violation
    90Temporary system shutdown
    91Card transmitter inaccessible
    92Card issuer unknown
    93Transacation cannot be finalized
    94Duplicate request
    95Contact acquirer
    96System malfunction
    97No Funds Transfer
    98Duplicate Reversal
    99Duplicate Transaction
    N3Cash Service Not Available
    N4Cash Back Request Exceeds Issuer Limit
    N7Declined for CVV2 failure
    R0Stop Payment Order
    R1Revocation of Authorisation Order
    R3Revocation of all Authorisations Order
    A0Withdrawal in contact mode
    A1VADS fallback
    000Approved
    001Approve with ID
    002Partial approval (prepaid cards only)
    100Reject
    101Card expired / invalid expiry date
    106PIN attempts exceeded
    107Please call issuer
    109Invalid merchant
    110Invalid amount
    111Invalid account / Invalid MICR (traveler’s check)
    115Requested function not supported
    117Invalid PIN
    119Cardholder not registered / not authorized
    122Invalid card security code (alias CID, 4DBC, 4CSC)
    125Invalid effective date
    181Format error
    183Invalid currency code
    187Refuse – New card issued
    189Refuse – Merchant cancelled or closed / SE
    200Refuse – Pick up card
    900Accepted – ATC synchronization
    909System malfunction (cryptographic error)
    912Issuer not available

    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

    Test cards Values

    You will find below a list of cards that you can use to test and check your integration.

    Visa Card numbers

    4000 0000 0000 0051Card lost (41) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »
    4000 0000 0000 0069Fraud suspicion (59) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »
    4000 0000 0000 0077Insufficient funds (51) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »
    4000 0000 0000 0085To be refused (5) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »
    4556 5579 5572 6624Transaction successful (3DS) & Authentication = Y
    4916 9940 6425 2017Transaction successful (3DS) & Authentication = C
    4556 1041 6038 2032Transaction successful (NON 3DS) & Authentication = N
    4024 0071 7987 2394Transaction (NON 3DS) & Authentication = N
    4234 6319 8242 8908Transaction (3DS) & Authentication = I
    4234 6319 8242 8916Transaction successful (3DS) & Authentication = D : application flow
    4234 6319 8242 8924Transaction successful (3DS) & Authentication = D : browser flow
    4032 0389 8296 2700EEA=true ; region=EUROPE; productType=CONSUMER; cardType=DEBIT ;
    4032 0343 8883 4767EEA=true ; region=EUROPE; productType=CONSUMER; cardType=CREDIT ;
    4020 0280 0191 2012EEA=true ; region=EUROPE; productType=CONSUMER; cardType=UNKNOWN ;
    4032 0337 9569 2248EEA=true ; region=EUROPE; productType=CORPORATE; cardType=DEBIT ;
    4032 0368 1354 0364EEA=true ; region=EUROPE; productType=CORPORATE; cardType=CREDIT ;
    4032 0387 5662 0096EEA=true ; region=EUROPE; productType=CORPORATE; cardType=UNKNOWN ;
    4032 0358 5604 7592EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=DEBIT ;
    4032 0302 9068 3219EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=CREDIT ;
    4032 0377 5134 3001EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=UNKNOWN ;
    4032 0307 5488 6225EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=DEBIT ;
    4032 0310 2547 6341EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=CREDIT ;
    4032 0341 4311 3978EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=UNKNOWN ;
    4032 0309 5816 7398EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=DEBIT ;
    4032 0375 4480 7536EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=CREDIT ;
    4032 0366 9148 7225EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=UNKNOWN ;
    4032 0325 8917 3860EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=DEBIT ;
    4032 0388 0897 9557EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=CREDIT ;
    4032 0374 2147 1240EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=UNKNOWN ;

    Mastercard Card numbers

    5333 2591 5564 3223Transaction successful (3DS) & Authentication = Y
    5306 8899 4283 3340Transaction successful (3DS) & Authentication = C
    5328 7203 8458 2224Transaction successful (NON 3DS) & Authentication = N
    5187 4346 4359 3002Transaction successful (NON 3DS) & Authentication = N
    5517 4500 0000 0168EEA=false ; region=US ; productType=CONSUMER ; cardType=CREDIT
    5223 8599 0000 0174EEA=false ; region=US ; productType=CORPORATE ; cardType=DEBIT
    5325 0900 0000 0115EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBIT
    5325 0900 0000 0008EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBIT
    5486 7467 7300 0005EEA=false ; region=EUROPE ; productType=CONSUMER ; cardType=DEBIT; Country=RUS
    5588 1000 0000 0007EEA=false ; region=CEMEA ; productType=CONSUMER ; cardType=DEBIT
    5122 9400 0000 0009EEA=false ; region=LATIN_AMERICA ; productType=CONSUMER ; cardType=DEBIT

    Amex Card numbers

    3415 0209 8634 895Transaction successful (3DS) & Authentication = Y
    3486 3826 7931 507Transaction successful (3DS) & Authentication = C
    3456 9539 9207 589Transaction successful (NON 3DS) & Authentication = N
    3415 0209 8634 895EEA=false ; region=EUROPE ; productType=CONSUMER
    3486 3826 7931 507EEA=false ; region=EUROPE ; productType=CORPORATE
    3718 4294 2351 004EEA=false ; region=EUROPE ; productType=UNKNOWN
    3712 5311 3391 201EEA=false ; region=ASIA_PACIFIC ; productType=CONSUMER
    3423 1631 7472 410EEA=false ; region=ASIA_PACIFIC ; productType=CORPORATE
    3710 9829 7279 338EEA=false ; region=ASIA_PACIFIC ; productType=UNKNOWN

    CB Card numbers

    4020 0235 6597 5380Transaction successful (NON 3DS), scheme : CB
    4020 0254 4041 8403Transaction successful (NON 3DS), scheme : CB_VISA
    5232 1035 2372 2651Transaction successful (NON 3DS), scheme : CB_MASTERCARD

    Exports de données

    Vous pouvez réaliser plusieurs exports de votre compte aux formats CSV, EXCEL, ou JSON depuis votre portail 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

    Créer des comptes

    Articles

    • Informations générales
    • Demande d'enrôlement
    • Compléter un enrôlement
    • Validation d'un enrôlement
    • Compte de Monnaie Électronique limité
    • Déplafonner un compte de Monnaie Électronique
    • Retours, statuts et webhooks

    Informations générales

    Cette section explique le fonctionnement de la création de comptes CentralPay, qu’il s’agisse de comptes de paiement ou de comptes de monnaie électronique, ainsi que les méthodes disponibles pour initier un enrôlement utilisateur via nos outils (portail ou API), en fonction du modèle de partenariat.

    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 compte à 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 compte 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 virement à 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 compte Marchand CentralPay (Merchant)
    • Du compte de paiement (Wallet)
    • Du profil utilisateur légal du compte 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 compte

    La création d’un compte marchand via l’API d’enrôlement déclenche un processus automatisé permettant à CentralPay de collecter et valider les informations nécessaires à l’ouverture du compte.

    En cas d’échec, une réponse d’erreur HTTP est retournée immédiatement à l’appel API, précisant le champ en erreur et la nature du rejet (donnée manquante, incohérente ou invalide).

    ⚠️ Il n’existe pas de table de codes de retour centralisée pour ces erreurs, car elles sont liées aux validations dynamiques effectuées par champ. L’erreur retournée est toujours structurée dans le corps de réponse et permet de corriger précisément le point bloquant.

    2. Statuts liés aux enrôlements

    Consultez les Statuts Merchant Enrollment ➝

    3. Webhooks liés aux enrôlements

    Consultez les Webhooks d’Onboarding ➝

    Onboarding

    Articles

    • Create Enrollement
    • Complete enrollment
    • Update enrollment
    • Search enrollement
    • Enrollment Details
    • E-money
    • Misc

    Create Enrollement

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

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

    Complete enrollment

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

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

    Update enrollment

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

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

    Search enrollement

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

    Enrollment Details

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

    E-money

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

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

    Misc

    jQuery(document).ready( function($) { window.live_68cacb11d04a9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Configuration.yaml", dom_id: "#wp-swagger-ui-container-live_68cacb11d04a9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_68cacb11d04a9.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

    Test cards Values

    You will find below a list of cards that you can use to test and check your integration.

    Visa Card numbers

    4000 0000 0000 0051Card lost (41) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »
    4000 0000 0000 0069Fraud suspicion (59) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »
    4000 0000 0000 0077Insufficient funds (51) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »
    4000 0000 0000 0085To be refused (5) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »
    4556 5579 5572 6624Transaction successful (3DS) & Authentication = Y
    4916 9940 6425 2017Transaction successful (3DS) & Authentication = C
    4556 1041 6038 2032Transaction successful (NON 3DS) & Authentication = N
    4024 0071 7987 2394Transaction (NON 3DS) & Authentication = N
    4234 6319 8242 8908Transaction (3DS) & Authentication = I
    4234 6319 8242 8916Transaction successful (3DS) & Authentication = D : application flow
    4234 6319 8242 8924Transaction successful (3DS) & Authentication = D : browser flow
    4032 0389 8296 2700EEA=true ; region=EUROPE; productType=CONSUMER; cardType=DEBIT ;
    4032 0343 8883 4767EEA=true ; region=EUROPE; productType=CONSUMER; cardType=CREDIT ;
    4020 0280 0191 2012EEA=true ; region=EUROPE; productType=CONSUMER; cardType=UNKNOWN ;
    4032 0337 9569 2248EEA=true ; region=EUROPE; productType=CORPORATE; cardType=DEBIT ;
    4032 0368 1354 0364EEA=true ; region=EUROPE; productType=CORPORATE; cardType=CREDIT ;
    4032 0387 5662 0096EEA=true ; region=EUROPE; productType=CORPORATE; cardType=UNKNOWN ;
    4032 0358 5604 7592EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=DEBIT ;
    4032 0302 9068 3219EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=CREDIT ;
    4032 0377 5134 3001EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=UNKNOWN ;
    4032 0307 5488 6225EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=DEBIT ;
    4032 0310 2547 6341EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=CREDIT ;
    4032 0341 4311 3978EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=UNKNOWN ;
    4032 0309 5816 7398EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=DEBIT ;
    4032 0375 4480 7536EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=CREDIT ;
    4032 0366 9148 7225EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=UNKNOWN ;
    4032 0325 8917 3860EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=DEBIT ;
    4032 0388 0897 9557EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=CREDIT ;
    4032 0374 2147 1240EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=UNKNOWN ;

    Mastercard Card numbers

    5333 2591 5564 3223Transaction successful (3DS) & Authentication = Y
    5306 8899 4283 3340Transaction successful (3DS) & Authentication = C
    5328 7203 8458 2224Transaction successful (NON 3DS) & Authentication = N
    5187 4346 4359 3002Transaction successful (NON 3DS) & Authentication = N
    5517 4500 0000 0168EEA=false ; region=US ; productType=CONSUMER ; cardType=CREDIT
    5223 8599 0000 0174EEA=false ; region=US ; productType=CORPORATE ; cardType=DEBIT
    5325 0900 0000 0115EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBIT
    5325 0900 0000 0008EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBIT
    5486 7467 7300 0005EEA=false ; region=EUROPE ; productType=CONSUMER ; cardType=DEBIT; Country=RUS
    5588 1000 0000 0007EEA=false ; region=CEMEA ; productType=CONSUMER ; cardType=DEBIT
    5122 9400 0000 0009EEA=false ; region=LATIN_AMERICA ; productType=CONSUMER ; cardType=DEBIT

    Amex Card numbers

    3415 0209 8634 895Transaction successful (3DS) & Authentication = Y
    3486 3826 7931 507Transaction successful (3DS) & Authentication = C
    3456 9539 9207 589Transaction successful (NON 3DS) & Authentication = N
    3415 0209 8634 895EEA=false ; region=EUROPE ; productType=CONSUMER
    3486 3826 7931 507EEA=false ; region=EUROPE ; productType=CORPORATE
    3718 4294 2351 004EEA=false ; region=EUROPE ; productType=UNKNOWN
    3712 5311 3391 201EEA=false ; region=ASIA_PACIFIC ; productType=CONSUMER
    3423 1631 7472 410EEA=false ; region=ASIA_PACIFIC ; productType=CORPORATE
    3710 9829 7279 338EEA=false ; region=ASIA_PACIFIC ; productType=UNKNOWN

    CB Card numbers

    4020 0235 6597 5380Transaction successful (NON 3DS), scheme : CB
    4020 0254 4041 8403Transaction successful (NON 3DS), scheme : CB_VISA
    5232 1035 2372 2651Transaction successful (NON 3DS), scheme : CB_MASTERCARD

    Documentation

    Articles

    • Guide de démarrage rapide >
    • Le compte Marchand CentralPay
    • Services liés au compte
    • Liens de paiement
    • Transaction par carte
    • Transaction par virement
    • Transaction prélèvement SEPA
    • Paiements récurrents
    • Authentification 3DS 2.2
    • Créer des comptes
    • Transférer des paiements
    • Plugin CMS
    • Cas d'usages

    Guide de démarrage rapide >

    1. Entrée en relation

    Pour commencer, découvrez nos offres et choisissez la méthode d’entrée en relation la plus adaptée à votre projet :

    Consultez nos offres tarifaires
    Présentez votre projet à notre équipe commerciale
    Choisissez le modèle d’entrée en relation adapté à votre activité
    Découvrez les étapes d’entrée en relation

    2. Création de votre compte de test

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

    • Compte de test Marchand : Pour tester uniquement la solution d’encaissement Smart Collection, demandez un compte de test via notre formulaire
    • Compte de test Partenaire : Pour tester l’encaissement (Smart Collection) et les transferts de fonds (Easy Wallet), contactez notre service client. Nous créerons et paramétrerons votre compte de test en conséquence

    3. Choix de votre méthode d’intégration

    Choisissez la méthode d’intégration qui correspond à vos besoins :

    • Intégration Smart : Utilisez les demandes de paiement et la page de paiement CentralPay pour encaisser vos transactions. Les parcours clients sont préconfigurés, pour un déploiement rapide
    • Intégration Custom : Intégrez directement les services API pour les transactions par carte, par virement SEPA (SCT) et/ou par prélèvement SEPA (SDD). Cette approche vous permet de maîtriser entièrement l’expérience client, mais requiert un développement plus avancé

    4. Paramétrage de votre compte

    Votre compte 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 compte de test (RCT) ne sont pas automatiquement répliqués en production (PROD). Veillez à les reconfigurer une fois votre compte de production activé.

    Paramétrages principaux :

    Accès d’authentification API
    Déclaration des domaines autorisés (si intégration Custom)
    Comptes de paiement et comptes bancaires de sortie
    Utilisateurs du portail
    Points de vente
    Webhooks
    Identifiant de Créancier SEPA (ICS)

    Paramétrages secondaires :

    Emails de contact du compte
    Règles d’acceptation
    Reversements
    Libellé de relevé bancaire
    Notifications automatiques
    Page de paiement Smart Form
    Profils 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 compte de test (RCT) pour vérifier l’intégration :

    • Carte : Utilisez nos cartes de test pour simuler différents statuts de transaction
    • Virement SEPA (SCT) : Créez une ou plusieurs transactions SCT puis demandez à notre support de simuler leur traitement
    • Prélèvement SEPA (SDD) : Utilisez un IBAN/BIC de test fourni dans notre documentation

    6. Mise en production

    Une fois vos tests validés en environnement 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.

    Le compte Marchand CentralPay

    Compte Marchand

    Le compte Marchand est ouvert au nom d’une entité (personne physique ou morale) et permet d’accéder aux services CentralPay d’encaissement, de paiement ou de gestion de la monnaie électronique. Il constitue la base :

    • Contractuelle : rattachement à une grille tarifaire, acceptation des CGU, contrat d’acceptation le cas échéant
    • Technique : authentification, accès API, création des utilisateurs
    • Fonctionnelle : paramétrage des points de vente, scénarios de notification, reversements, règles d’acceptation
    • Réglementaire : gestion du KYC/KYB, conformité à la réglementation

    Un compte Marchand peut contenir un ou plusieurs comptes de paiement ou comptes de monnaie électronique, selon les services activés.

    1. Types de comptes selon le modèle contractuel

    Chaque type de compte 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, d’un contrat d’acceptation, et peut accéder aux services CentralPay via API ou via un partenaire.

    👉 En savoir plus sur le modèle Marchand

    Partenaire Intégrateur Type : STANDARD + INTEGRATEUR

    Le Marchand 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 initier des transactions techniques via les accès API du Marchand
    • CentralPay facture chaque Marchand directement

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

    Partenaire Intégrateur MOBSP Type : STANDARD + INTEGRATEUR + MOBSP

    Le Marchand 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 : STANDARD + TECHNIQUE

    Le Marchand Partenaire Technique développe une solution d’encaissement opérée depuis son ou ses propres points de ventes, pour le compte de plusieurs Marchands standards. Il utilise ses propres accès API pour superviser les opérations liées à cette structure centralisée.

    • Un seul point de vente est utilisé pour regrouper les 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 d’enrôlement ni agir au nom des utilisateurs

    👉 En savoir plus sur le modèle Partenaire Technique

    Partenaire Technique MOBSP Type : STANDARD + TECHNIQUE + MOBSP

    Le Marchand Partenaire Technique MOBSP est mandaté pour initier une demande d’entrée en relation au nom de ses utilisateurs. Il peut transmettre les informations nécessaires via l’API d’onboarding, mais n’intervient pas dans l’exécution des opérations de paiement.

    • Même droit et fonctionnement qu’un Partenaire Technique
    • Peut initier une demande d’enrôlement complète via API
    • Peut accompagner le marchand durant l’enrôlement

    👉 En savoir plus sur le modèle Partenaire Technique MOBSP

    Mandataire DME Type : DME

    Le Marchand Mandataire DME (Distributeur de Monnaie Électronique) transmet des instructions de chargement, de transfert ou de remboursement pour le compte de sous-marchands. Il agit en tant qu’intermédiaire technique sur la monnaie électronique, et peut percevoir une commission sur les opérations.

    👉 En savoir plus sur le modèle Mandataire DME

    Mandataire Agent Type : AGENT

    Le Marchand Mandataire Agent est un Agent prestataire de services de paiement (Agent PSP) enregistré auprès de l’ACPR. Il peut inscrire des sous-marchands, gérer le KYC/KYB, encaisser des paiements, piloter les reversements, et opérer un compte de collecte. Il agit au nom et pour le compte de CentralPay dans le cadre de services réglementés.

    👉 En savoir plus sur le modèle Mandataire Agent

    Sous-marchand Type : BASIC

    Les Sous-Marchands sont des entités finales rattachées à un Marchand Mandataire (DME ou Agent). Ils disposent d’un compte de paiement ou de monnaie électronique pour recevoir des fonds, et peuvent accéder au portail Marchand pour consulter leurs opérations et gérer leurs reversements.

    On distingue deux types de sous-marchand selon leur finalité :

    • Sous-marchand commercial : agit à des fins commerciales (vente de biens ou de services)
    • Sous-marchand finance : agit à des fins non commerciales (ex. chargement de wallet pour accès à un service, projet interne ou collaboratif…)

    Les sous-marchands ouvrent des comptes Chez CentralPay mais n’entrent pas en relation d’affaires directe avec CentralPay. Leur cadre d’utilisation et leurs tarifications sont définis dans les CGU des Agents auxquels ils sont rattachés.

    2. Paramétrage des emails de contact

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

    • Email contact : référent principal du compte
    • Email administratif : en charge des sujets juridiques ou contractuels
    • Email technique : en charge de l’intégration ou des incidents
    • Email financier : en charge de la facturation ou des flux bancaires
    ℹ️ Par défaut, ces adresses sont initialisées avec l’email du titulaire du compte. Elles peuvent être modifiées à tout moment depuis le Portail 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 votre compte Marchand 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 compte 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 compte (en règle générale, vous n’aurez qu’un seul contrat à disposition)
      • Contrat par défaut : Sélectionnez le contrat VAD carte qui sera utilisé par défaut (en règle générale, vous n’aurez qu’un seul contrat à disposition)
      • Viban prioritaire : Si vous souhaitez que les IBAN Virtuels affichés dans les demandes de paiement soient ceux des Customers, alors sélectionnez « Client ». Si vous préférez afficher des IBAN Virtuels dédiés à chaque demande de paiement, alors sélectionnez « SCT ». Si besoin d’informations complémentaires, consultez notre rubrique sur les IBAN Virtuel

    D’autres paramétrages ne sont pas obligatoires, mais sont importants pour votre parcours de vente :

    • Paramètres généraux
      • Logo : Chargez le logo de votre entreprise ou celui dédié à votre point de vente. Il apparaitra dans la page de paiement générée par les demandes de paiement
      • ID point de vente du marchand : Renseignez une référence personnalisée vous permettant d’identifier plus simplement le point de vente dans vos systèmes d’information

    • Emails de confirmation
      • Cocher « Activer l’email de confirmation de paiement » : En cochant cette case, vous activez l’envoi d’un email à vos clients lorsqu’ils réalisent un paiement par carte. Il s’agit d’un email standardisé non modifiable contenant un récapitulatif du paiement (raison sociale de votre compte, nom de votre point de vente, date du paiement, identifiant de la transaction CentralPay, référence marchand de la transaction, description marchand de la transaction, code d’autorisation du paiement, marque de la carte, 6 premiers et 4 derniers chiffres de la carte, montant de la transaction, état de la transaction). La langue et le pied de page de l’email peuvent être paramétrés depuis le Portail 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, reversement des fonds vers un compte bancaire…). Ils permettent de stocker des fonds dans une devise ISO (EUR, USD, CHF, GBP…) et possèdent un IBAN/BIC qui lui est propre.

    Un compte de paiement est, sauf exception, associé à un compte bancaire ayant le même titulaire, permettant à CentralPay de réaliser des reversements automatiques par virement SEPA.

    Si vous disposez de plusieurs comptes bancaires sur lesquels vos fonds doivent être reversés, vous pouvez demander à votre contact CentralPay de créer le même nombre de comptes de paiement dans votre compte Marchand CentralPay. Ainsi, chaque compte de paiement sera lié à un compte bancaire différent et adressera des reversements SEPA en conséquence.

    Il est également possible de créer plusieurs comptes de paiement à des fins de segmentation des fonds (avec un compte dédié aux opérations de commission ou de frais par exemple).

    Vous pouvez consulter le détail de vos comptes de paiements depuis ces accès :

    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 AGENT de CentralPay, vous pouvez créer des comptes pour vos sous-marchands en utilisant le service de création de comptes de paiement.

    Comptes de ME

    ℹ️ Uniquement réservé aux 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.

    Services liés au compte

    Notifications email/sms

    Les notifications peuvent être adressées en fonction des évènements liés à certains objets API :

    • Demande de paiement (paymentRequest)
    • Contestation carte (dispute)
    • Paiement X fois (installment)
    • Transaction carte (transaction)
    • Reversement (payout)
    • Remboursement carte (refund)
    • Abonnement (subscription)
    • Crédit carte (credit)
    • Transaction SDD (sddTransaction)
    • Transaction SDD inversée (sddTransactionReversal)
    • Mandat (mandate)

    1. Types de scénarios de notification

    Notifiez vos clients et alertez vos collaborateurs automatiquement lorsque certains évènements ont lieu sur votre compte 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. Elle définie devient inopérante pour des clients identifiés, VIP ou reconnus de confiance qui sont intégrés à une « whitelist ». Les « whitelists » portent sur les données spécifiques d’un client, comme le numéro de sa Carte Bancaire ou son adresse IP. Cette fonctionnalité permet d’être moins restrictif sur des populations d’utilisateurs
    • Liste noire (blacklist)
      Le service de « blacklist » permet de refuser les paiements. Tout comme pour les « whitelists », les « blacklists » portent sur les données propres au porteur de carte (Carte, IP, tel, email)
    • Règles d’acceptation des 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 reversementEntier#payout_amount > 100
    #payout_currencyDevise de reversementChaîne de caractères 
    ISO 4217
    #payout_currency = ‘EUR’
    #risk_scoreScore d’antifraudeDouble#risk_score > 2,34
    #custom_acceptance_data[‘key’] = ‘value’champs customisékey : Regex [a-zA-Z0-9_-]value: Regex [a-zA-Z0-9_-]#custom_acceptance_data[‘product_category’] = ‘high’

    Dans le cas du custom_acceptance_data[‘key’] = ‘value’, afin qu’il soit pris en compte il est nécessaire que l’exact même champs soit reporté dans la requête de l’objet visé.

    Les opérateurs logiques et parenthésage :

    Opérateurs logiques AND et OR

    La syntaxe utilisée pour définir les règles permet de créer plusieurs conditions au sein de la même règle. Les conditions resteront définies de la même manière, à la seule différence qu’un mot clé sera placé entre les conditions.

    Les mots clés sont and et or. Ils permettent de définir comment le moteur de règle va interpréter la succession de ces règles. Le « AND » correspond à l’inclusion et le « OR » à l’exclusion.

    Exemple :

    ALLOW if #amount < 1000 and #card_country = 'FRA'

    L’exemple précédent autorise les paiements dont le montant est inférieur à 10 ET dont la carte est française. Si l’une ou l’autre des conditions définies n’est pas remplie, l’action ne sera pas exécutée.

    Exemple :

    ALLOW if #amount < 1000 or #card_country = 'FRA'

    L’exemple précédent autorise les paiements dont le montant est inférieur à 10 OU dont la carte est française. Si l’une ou l’autre des conditions définies est remplie, l’action sera exécutée.

    Parenthèses

    L’utilisation des parenthèses dans la définition d’une règle multi-conditions permet de définir des blocs de conditions et les priorités entre ces blocs. Le principe est le même que celui des priorités pour les opérateurs mathématiques.

    Exemple :

    ALLOW if #amount < 1000 and (#card_country = 'FRA' or #currency = 'EUR')

    Dans l’exemple précédent, le moteur de règle va d’abord interpréter le bloc (#card_country = ‘FRA’ or #currency = ‘EUR’). C’est à dire que le paiement sera autorisé si (la carte est française ou que la devise est l’euro), ET que le montant est inférieur à 10.

    Ordre d’exécution des règles

    Les règles sont exécutées dans un ordre à définir. Cet ordre est important car dès qu’une transaction répond aux critères d’une règle, les règles suivantes ne seront pas traitées.

    Les règles sont exécutées dans l’ordre d’affichage de la liste de l’interface.
    Un indicateur de position est affiché dans chaque liste. Pour changer la position d’une règle, il suffit de la faire glisser à la position souhaitée.

    Exemples de règles :

    ALLOW if #amount < 1000 and #transactions_amount_daily < 10000

    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.

    Reversement bancaire

    Les reversements bancaires (Payout) sont des virements sortant de votre compte de paiement CentralPay vers le compte bancaire qui y est associé.

    Ils peuvent être réalisés manuellement depuis le Portail Marchand ou l’API Payment. Ils peuvent également être automatisés depuis le Portail Marchand.

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

    1. Les deux modes de reversement

    1.1. Reversement automatique

    Le titulaire du compte peut définir la périodicité : quotidien, hebdomadaire (choix du jour de la semaine, ex : chaque mardi) ou mensuel (choix du jour dans le mois, ex : le cinq du mois).

    Le service PAYOUT automatique exécutera automatiquement à 01h00 du jour donné un virement des fonds disponibles sur votre compte de paiement.

    Exemple :

    Cas d'un reversement hebdomadaire programmé le mardi : CentralPay exécutera la demande de création du virement (PAYOUT) le mardi matin avec les fonds disponibles (AVAILABLE) sur le compte de paiement jusqu'au mardi 01h00.

    1.2. Reversement manuel (via BO ou API)

    Vous avez la possibilité d’exécuter des payouts manuellement depuis le Portail Marchand ou l’API CentralPay. Vous pouvez déterminer le montant à reverser (avec en maximum le montant disponible sur votre compte).

    Attention, le PAYOUT ne sera exécuté immédiatement que s’il est effectué avant 05h00 le matin. À défaut, il sera exécuté le lendemain à 05h00 du matin également.

    2. Délais de disponibilité des fonds

    Les reversements comprennent uniquement les fonds disponibles (ou « AVAILABLE ») de vos comptes de paiement. Les fonds issus d’une transaction par carte bancaire sont par exemple disponibles à J+2 : une transaction carte réalisée le lundi, apparaîtra en « Pending » le lundi, sera « Available » le mardi soir, le payout automatique sera effectué le mercredi matin à 00h05 et la réception du virement SEPA sur votre compte bancaire le jeudi.

    ℹ️ Le paramètre EscrowDate peut influer sur la date de disponibilité des fonds d'une transaction (concerne uniquement les partenaires AGENT).

    3. Création d’un reversement manuel

    3.1. Payout manuel par Portail Marchand

    Depuis le Portail Marchand Administration Mon compte Reversements : cliquez sur « Transferts externes », sélectionnez le compte d’émission, le montant du reversement ainsi que l’IBAN destinataire, puis cliquez sur « confirmer le transfert ».

    Recette Portail Marchand – Reversements
    Production Portail Marchand – Reversements

    3.2. Payout manuel par API

    Consultez le détail dans la rubrique : Développeurs Payout

    4. Reversement en euros ou devises via le réseau SWIFT

    Les virements bancaires internationaux sont gérés via le réseau SWIFT (contrairement au réseau SEPA pour les virements européens). Ces virements peuvent être émis depuis un très grand nombre de pays en EUROS ou dans d’autres devises.

    Si vous disposez d’un compte en devises ou n’étant pas accessible via le réseau SEPA, vous pouvez réaliser vos virements via le réseau SWIFT. Contactez CentralPay pour en savoir plus.

    ℹ️ Les virements bancaires du réseau SWIFT présentent des frais très largement supérieurs aux virements SEPA. Vous pouvez demander à CentralPay de paramétrer vos reversements automatiques afin qu'ils soient déclenchés à partir d'un certain seuil de fonds disponibles.

    5. Retours, statuts et webhooks

    Consultez les statuts PAYOUT ➝

    Consultez les webhooks PAYOUT ➝

    Exports comptables

    Vous pouvez réaliser plusieurs exports de votre compte aux formats CSV, EXCEL, ou JSON depuis votre Portail 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 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
    movement_creation_datedate de l’opération
    movement_ididentifiant CentralPay de l’opération
    movement_gross_amountmontant brut
    movement_gross_currencydevise du montant brut
    movement_fee_amountmontant des frais CentralPay
    movement_fee_currencydevise des frais
    movement_net_amountmontant net
    movement_net_currencydevise du montant net
    movement_expected_availability_datedate de disponibilité des fonds estimée
    movement_available_datedate de disponibilité des fonds réelle
    movement_statusstatut du mouvement (success, failed…)
    movement_source_typetype d’opération (transaction, transfert…)
    movement_source_uuididentifiant associé au type d’opération (transactionId, wireTransferId, transferId…)
    merchant_descriptiondescription définie par le marchand
    merchant_reference_idréférence définie par le marchand
    card_countrypays d’émission de la carte
    card_regionzone d’émission de la carte (UE, hors UE)
    point_of_sale_idID CentralPay du point de vente

    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 rapport financier est généré, puis mis à disposition dans l’espace sécurisé de votre compte ( Administration compte documents Rapports financiers ). Il présente les montants totaux de crédit, de débit, de frais et de réserve de votre compte :

    Pour bien comprendre votre rapport financier :

    A) Le total des montants acquis / reçus sur votre compte au cours de la période

    B) Le montant net reçu sur votre compte, déduction faite de l’ensemble des frais selon le calcul « B = A – I »

    C) Le montant de la réserve détenue en garantie au jour de clôture de la période

    D) Le montant des fonds disponibles au jour de clôture de la période

    E) La valeur totale des fonds disponibles et en garantie enregistrée dans les livres de CentralPay au jour de clôture de la période selon la formule « E = C + D »

    F) La valeur totale des fonds retirés / transférés à la banque du marchand pendant la période

    G) Le total des frais de service et commissions facturées sur les transactions définies dans la grille tarifaire

    H) Total des frais d’opérations techniques : frais d’autorisation cartes, de contestation, de payout…

    I) Total des frais techniques et commissions ou « I = G + H »

    Accès :

    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 compte 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’une opération est réalisée sur votre compte 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 compte 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 compte 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 (Custom Form)

    1.1. Via token Apple Pay déchiffré

    CentralPay permet le traitement des paiements par carte effectués via Apple Pay, dans le cadre d’une intégration Custom (hors Smart Form).

    ℹ️ CentralPay ne prend actuellement en charge que les tokens Apple Pay déchiffrés. 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.

    Prérequis

    1. Créer un compte Apple Developer :

    • Inscrivez-vous au programme Apple Developer
    • Créez vos identifiants de marchand Apple Pay (Merchant ID)
    • Générez votre certificat de traitement Apple Pay via le portail Apple
    • Déclarez votre domaine (Apple Pay Merchant Domain)

    2. Intégration côté device :

    • Implémentez Apple Pay côté frontend via Apple Pay JS (pour les sites web) ou PassKit (pour les apps iOS)
    • Collectez le token Apple Pay (ApplePayToken) après validation du paiement par l’utilisateur (Face ID, Touch ID…)

    Étape 1 : Déchiffrement du token Apple Pay

    Le déchiffrement du token Apple Pay doit être effectué sur votre backend, à l’aide de :

    • Votre certificat de traitement Apple Pay
    • Votre clé privée
    • La documentation Apple : Payment Token Format

    Le résultat contiendra :

    {
      "applicationPrimaryAccountNumber": "5454********2664",
      "applicationExpirationDate": "YYMMDD",
      "paymentData": {
        "cryptogram": "base64-cryptogram",
        "eciIndicator": "05"
      }
    }

    Étape 2 : Création du cardToken CentralPay

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

    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

    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 Apple Pay (merchantPublicKey) est également spécifique à l’environnement

    2.2. Via token ApplePay chiffré

    ℹ️ Au 18/04/2025, cette méthode n’est pas encore disponible chez CentralPay.
    Si cette méthode d’intégration vous intéresse, veuillez contacter le support CentralPay afin de connaître les livrables associés et les modalités d’accès.

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

    Lors de votre appel API, en plus des champs obligatoires, il faudra utiliser le champ « applePayToken«  au format JSON comprenant votre token Apple Pay qui incluent les éléments paymentData, paymentMethod et transactionIdentifier.
    Vous pourrez ensuite effectuer une transaction à l’aide de votre cardToken normalement.

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

    Lors de votre appel API, en plus des champs obligatoires, il faudra utiliser le champ « applePayToken » au format JSON comprenant votre token Apple Pay qui inclus les éléments paymentData, paymentMethod et transactionIdentifier.

    2. Google Pay (Custom Form)

    2.1. Via token Google Pay déchiffré

    Pour pouvoir accepter les paiements Google Pay via CentralPay, vous devez configurer correctement votre compte marchand Google et gérer les clés de chiffrement nécessaires au déchiffrement des tokens.

    ℹ️ Cette méthode implique une responsabilité PCI-DSS importante de votre part. Renseignez-vous et assurez-vous d'être en conformité avant de développer ce mode d'intégration.

    Prérequis

    1. Créer un compte Google Pay Business :

    • Accédez au Google Pay Business Console
    • Créez un Merchant Profile ou connectez-en un existant
    • Renseignez vos coordonnées de société et d’activité

    2. Enregistrer votre domaine :

    • Dans la console Google Pay, allez dans l’onglet « Domains« 
    • Ajoutez votre domaine de production et de test (ex : example.com)
    • Google vous demandera d’y héberger un fichier de vérification pour valider votre propriété

    3. Générer votre paire de clés de chiffrement :

    Google Pay chiffre les tokens envoyés à votre site en utilisant une clé publique que vous fournissez.

    • Générez votre paire de clés (exemple avec OpenSSL)
    # Générer la clé privée
    openssl ecparam -name prime256v1 -genkey -noout -out private-key.pem
    
    # Extraire la clé publique
    openssl ec -in private-key.pem -pubout -out public-key.pem
    • Convertissez la clé publique au format Google (base64 sans en-tête PEM)
    # Supprimer les lignes "-----BEGIN..." et "-----END..."
    # et ne garder que le bloc de contenu base64

    4. Enregistrer votre clé publique dans Google Pay

    • Dans la console Google Pay, allez dans “Payment Processing”
    • Ajoutez un nouvel encrypting key
    • Donnez-lui un nom, collez votre clé publique au format Base64, et sélectionnez le type : ECv2
    • Cette clé sera utilisée pour chiffrer tous les tokens envoyés à votre site

    Étape 1 : Déchiffrement du token Google Pay

    Une fois Google Pay intégré côté frontend (Google Pay JS ou Android), vous recevrez un token chiffré via :

    paymentData.tokenizationData.token

    Ce champ contient un JSON chiffré (pas un JWT), que vous devez déchiffrer sur votre backend à l’aide de la clé privée correspondant à la clé publique enregistrée chez Google.

    Google propose une bibliothèque de déchiffrement officielle en Java, mais des portages existent en Node.js, PHP, Python, etc.

    Consultez la documentation officielle (Payment Data Cryptography) ➝

    Une fois déchiffré, vous obtiendrez une structure similaire à :

    {
      "pan": "4111111111111111",
      "expirationMonth": "12",
      "expirationYear": "2030",
      "cryptogram": "AgAAAAAAAIR8CQrXcIhbQAAAAAA=",
      "eciIndicator": "05"
    }

    Ce sont ces données que vous devrez envoyer à CentralPay pour créer un cardToken.

    Étape 2 : Création du cardToken via l’API CentralPay

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

    ChampDescription
    card[number]PAN de la carte extrait du token Google 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 Google Pay (CAVV)
    eciIndicatorIndice d’authentification issu du token Google Pay (eci)
    googlePayMessageIdID de la transaction Google 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=
    googlePayTransactionId=ABCD-EFGH-1234
    amount=2500
    currency=EUR
    merchantPublicKey=abcdef123456...

    Le cardToken généré contient toutes les données nécessaires à l’authentification Google Pay.

    Étape 3 : Création de la transaction CentralPay

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

    Champs requis :

    cardToken=...
    amount=2500
    currency=EUR
    pointOfSaleId=...
    endUserIp=...
    merchantTransactionId=...

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

    Étape 4 : Testing avant mise en production

    L’environnement de test CentralPay permet de valider l’ensemble de votre intégration 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 Apple Pay (merchantPublicKey) est également spécifique à l’environnement

    2.2. Via token Google Pay chiffré

    CentralPay permet l’intégration directe de Google Pay via le mode “gateway” (passerelle de paiement), sans nécessiter de déchiffrement du token côté serveur. Dans ce mode, CentralPay est désigné comme prestataire (gateway) auprès de Google Pay, et gère la validation du token pour vous.

    Prérequis

    1. Créer un compte Google Pay Business :

    • Accédez au Google Pay Business Console
    • Créez un Merchant Profile ou connectez-en un existant.
    • Renseignez vos coordonnées de société et d’activité.

    2. Enregistrer votre domaine :

    • Dans la console Google Pay, allez dans l’onglet « Domains »
    • Ajoutez votre domaine de production et de test (ex : example.com)
    • Google vous demandera d’y héberger un fichier de vérification pour valider votre propriété

    3. Réaliser votre intégration frontend Google Pay :

    • Implémentez Google Pay côté frontend via Google Pay JS (pour les sites web) ou Google Pay API Android (pour les applications mobiles)
    • Collectez le token Google Pay (tokenizationData.token) après validation du paiement par l’utilisateur (code PIN, empreinte digitale, reconnaissance faciale…).
    ℹ️ Google propose un tutoriel officiel pour cette intégration : Google Pay API | Google for Developers

    4. Récupérez vos identifiants CentralPay :

    • MerchantPublicKey : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Merchant Public Key
    • Login API : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Identifiant API et copiez l’identifiant
    • Pass API : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Cliquez sur votre Identifiant API → Modifier → Générer , copiez votre pass API et mettez à jour

    Étape 1: Configuration de Google Pay côté frontend

    1. Définir la version de l’API :

    const baseRequest = {
      apiVersion: 2,
      apiVersionMinor: 0
    };

    2. Utiliser CentralPay comme passerelle de paiement :

    Configurez la tokenisation comme suit :

    const tokenizationSpecification = {
      type: 'PAYMENT_GATEWAY',
      parameters: {
        gateway: 'centralpay',
        gatewayMerchantId: 'YOUR_GATEWAY_MERCHANT_ID'
      }
    };

    Remplacez YOUR_GATEWAY_MERCHANT_ID par votre MerchantPublicKey fourni par CentralPay.

    3. Environnement de test ou production :

    // Environnement de 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 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 Apple Pay (merchantPublicKey) est également spécifique à l’environnement

    R-transaction carte

    1. Remboursement

    Vous pouvez rembourser une Transaction si celle-ci est CLEARED via le service Refund ou depuis le détail de la Transaction dans le Portail 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é.

    2. Crédit

    Vous pouvez créditer la carte d’un client sans transaction initiale depuis le service Credit. Pour cela, il existe plusieurs solutions :

    • Tokeniser une carte via le service cardToken pour ensuite la renseigner dans le service Credit
    • Créer ou rechercher un Customer disposant d’une carte valide, puis renseigner son « customerId » ainsi que son « cardId » dans le service Credit
    ℹ️ Ce service n'est disponible que pour des activités spécifiques, contactez CentralPay pour en savoir plus.

    3. Contestation

    Pour tout paiement par carte, votre client a la possibilité de contester une transaction auprès de sa banque (opération nommée contestation, chargeback ou impayé) :

    • Pendant 120 jours à compter de la transaction sur les réseaux « Visa » ou « Mastercard »
    • Pendant 13 mois à compter de la date d’opération sur le réseau Français « Carte Bancaire »
    ℹ️ En France, une contestation n'est en principe autorisée que dans le cadre d'une utilisation frauduleuse de la carte (carte volée, prélèvements abusifs…). Cependant, dans d'autres pays européens, la contestation peut également être utilisée dans le cadre d'un litige commercial (service ou produit non rendu / non conforme).

    En cas de contestation, CentralPay en est informé et crée automatiquement sur votre compte une opération de Dispute liée à la transaction contestée. Le montant de cette transaction vous sera débité afin de rembourser votre client. Des frais non remboursables s’appliquent également pour chaque contestation reçue.

    À ce stade, le statut de la Dispute sera Chargeback_Noticed et vous pourrez consulter sur le Portail Marchand ou via notre API le motif de contestation de votre client. Vous disposez ainsi d’un délai de 20 jours calendaires pour répondre en fournissant la preuve de livraison du service ou du produit. À défaut de réponse dans les délais impartis, il ne sera plus possible de répondre à la contestation.

    ℹ️ Notez que dans le cadre des transactions non authentifiées (sans 3DS), vous devez également justifier du consentement du titulaire de la carte. Vous devez à minima prouver que le nom et prénom de votre client est bien le même que celui qui est indiqué sur la carte de paiement. 

    Une fois votre réponse émise, celle-ci est étudiée par la banque de votre client avant d’adresser son verdict :

    • Vous avez obtenu gain de cause, la contestation a été rejetée. Le montant de la transaction vous est remboursé et le statut de la Dispute passe en Chargeback_Won.
    • Vos preuves sont jugées insuffisantes, la contestation est maintenue. Le statut de la Dispute passe en Chargeback_Lost.
    ℹ️ Il est possible, en amont d'une contestation, qu'un client réalise une demande d'information sur une transaction afin d'en connaitre les détails. CentralPay créera une opération Dispute avec statut Retrieval_Noticed. Vous devez répondre dans les 7 jours en fournissant la nature du service délivré, la preuve de consentement du client et/ou la preuve de livraison. Si votre réponse est acceptée, le statut de la Dispute passera à Retrieval_Close. À défaut de réponse, votre client pourra déclencher une contestation auprès de sa banque.

    Email de confirmation

    Quand une transaction par carte a été réalisée avec succès, CentralPay peut adresser un email de confirmation de paiement à votre client. Pour cela, vous devez l’activer en renseignant les paramétrages de l’email de confirmation dans votre Point de Vente.

    Cet email est adressé par défaut à l’email du Customer associé à la transaction, mais vous pouvez renseigner la valeur receiptEmail de la transaction si vous souhaitez l’adresser à un autre.

    Paramétrage

    L’email de confirmation possède une mise en forme standardisée affichant les différentes informations de paiement, vous pouvez cependant configurer plusieurs paramètres depuis le Portail 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 compte 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 Marchand CentralPay.

    Dans certains cas, CentralPay peut vous permettre d’encaisser des transactions par carte bancaire dans différentes devises : Euros (EUR), Dollars (USD), Francs Suisses (CHF) et Livres (GBP). Contactez CentralPay si la gestion de transaction en devises est un enjeu pour votre activité.

    Notez que dans ce cas, les coûts d’acquisition en devises (hors EUROS) sont soumis à des frais complémentaires et seront déduits du montant de vos transactions.

    ℹ️ Les reversements (payout) par virement SEPA ne peuvent être réalisés que sur les valeurs disponibles en EUROS. Les valeurs hors EUROS sont reversées par virement SWIFT ayant des frais supérieurs. Il est cependant possible de programmer les reversements SWIFT afin qu'il ne soit réalisés qu'à partir d'un certain seuil, afin de mieux maitriser ses coûts de reversement.

    Gestion des cartes virtuelles (VCC)

    1. Fonctionnement

    Les grands OTA que sont Booking.com, Expedia.com, hotels.com ou Agoda.com peuvent collecter les règlements lors de la réservation. Dans ce cas, ils fournissent aux hôteliers, non pas les données de la carte du client, mais une alias, qui est une carte virtuelle ou VCC.

    Une carte virtuelle ou VCC est généralement émise pour un usage encadré afin de limiter les risques de compromission. Une carte virtuelle représente en quelque sorte l’alias d’une carte existante qui ne pourra être utilisé qu’à partir d’une certaine date et depuis un MCC défini. En l’occurrence, dans le secteur du tourisme, il est nécessaire d’avoir un contrat avec le MCC 7011 (HOTELS) pour pouvoir la débiter.

    Ainsi, dans le cas où le numéro de carte tombait entre les mains d’une personne mal intentionnée, elle ne pourrait pas déclencher de débit sur la carte source. Étant donné la nature spéciale des cartes issues par ces OTA, il est en général impossible de réaliser des demandes d’autorisation, de pré-autorisation ou de vérification au moment de la commande.

    Si la carte n’est débitable que le jour de la réservation par un MCC 7011 par exemple, l’émetteur, en général MASTERCARD B2B PRODUCT, renverra un code d’erreur pour transaction invalide (12).

    ➡️ Cartes virtuelles Booking.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 compte Marchand CentralPay correspondant à votre ICS. Vous pouvez le retrouver depuis votre Portail Marchand en utilisant un profil avec des droits Admin : Administration Mon compte Comptes bancaires

    Identifiez la ligne présentant votre ICS dans la colonne « IBAN » puis copiez l’UUID associé.

    1. Création et signature d’un nouveau mandat SEPA

    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 Compte Marchand CentralPay (Merchant) doit être créé. Les mandats existants devront alors être redéclarés sous ce nouveau compte via un processus de migration.

    3.2. Modifications nécessitant un nouveau mandat

    Les modifications suivantes imposent la création d’un nouveau mandat SEPA, car elles impliquent une nouvelle autorisation du débiteur :

    • Changement de nom du débiteur
    • Changement de la date de signature du mandat
    • Changement de type de mandat : passage de SDD Core à SDD 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 Marchand 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…

      Créer des comptes

      Informations générales

      Cette section explique le fonctionnement de la création de comptes CentralPay, qu’il s’agisse de comptes de paiement ou de comptes de monnaie électronique, ainsi que les méthodes disponibles pour initier un enrôlement utilisateur via nos outils (portail ou API), en fonction du modèle de partenariat.

      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 compte à 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 compte 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 virement à 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 compte Marchand CentralPay (Merchant)
      • Du compte de paiement (Wallet)
      • Du profil utilisateur légal du compte 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 compte

      La création d’un compte marchand via l’API d’enrôlement déclenche un processus automatisé permettant à CentralPay de collecter et valider les informations nécessaires à l’ouverture du compte.

      En cas d’échec, une réponse d’erreur HTTP est retournée immédiatement à l’appel API, précisant le champ en erreur et la nature du rejet (donnée manquante, incohérente ou invalide).

      ⚠️ Il n’existe pas de table de codes de retour centralisée pour ces erreurs, car elles sont liées aux validations dynamiques effectuées par champ. L’erreur retournée est toujours structurée dans le corps de réponse et permet de corriger précisément le point bloquant.

      2. Statuts liés aux enrôlements

      Consultez les Statuts Merchant Enrollment ➝

      3. Webhooks liés aux enrôlements

      Consultez les Webhooks d’Onboarding ➝

      Transférer des paiements

      Informations générales

      La solution Easy Wallet permet aux plateformes d’encaisser des paiements et de les transférer à des tiers tout en respectant la réglementation européenne.

      Pour ce faire, le module comprend deux principaux services :

      • L’inscription, permettant la création de comptes de paiement et de monnaie électronique pour les marchands ou sous-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 sous-marchands

      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 partenaires régulés (Agents ou DME, selon le type de compte) de transférer des fonds entre deux comptes de leurs sous-marchands. Ce transfert peut être initié :

      • Par un Agent lorsque les wallets sont des comptes de paiement
      • Par un DME lorsque les wallets sont des comptes de monnaie électronique

      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 sous-marchands, ou vers des comptes destinataires définis
      • À un DME d’opérer des transferts de monnaie électronique entre ses sous-marchands (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 sous-marchands.

      1.2. Paramètres requis

      ChampTypeObligatoireDescription
      destinationWalletIdUUID✅ OuiIdentifiant du wallet destinataire (appartenant à un sous-marchand).
      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
      emissionWalletIdUUIDWallet émetteur si différent du wallet principal du partenaire.
      currencyCode ISODevise du transfert (si différente de celle du wallet).
      feeIntegerMontant de la commission prélevée par le partenaire, déduite du montant. Par défaut : 0.
      escrowDateDate ISODate à partir de laquelle le transfert devient effectif. Peut être utilisée pour définir une période de blocage temporaire.
      merchantTransferIdStringRéférence métier du partenaire (max 100 caractères).
      transferGroupStringGroupe de rattachement pour regrouper plusieurs transferts.
      descriptionStringDescription libre (max 256 caractères).
      additionalDataKey/ValueDonnées complémentaires sous forme de paires clé/valeur (max 256 caractères par valeur).
      metaDataJSONMétadonnées complémentaires structurées.
      purposeCode / purposeMessageEnum / StringFinalité du transfert, selon une nomenclature standard. Voir la liste des codes.

      1.4. Règles de validation

      • Le destinationWalletId doit correspondre à un wallet valide d’un sous-marchand du partenaire
      • Le sourceId ne peut être utilisé que si l’objet lié est dans un statut accepté (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 partenaires régulés (Agent ou DME) disposent de plusieurs fonctions de gestion post-création d’un transfert, leur permettant d’ajuster, consulter ou annuler une opération, sous conditions.

      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 partenaire.
      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 wallet.

      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 partenaire.
      destinationWalletIdUUIDWallet destinataire.
      transferGroupStringGroupe de transferts.
      statusEnumPENDING, TRANSFERRED, CANCEL.
      after / beforeDate ISOFiltrer par date de création.
      limitIntegerNombre de résultats par page.
      pageIntegerIndex de la page de résultats.

      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 partenaires régulés (Agent pour les comptes de paiement, DME pour les comptes de monnaie électronique), et doit respecter les règles de disponibilité des fonds.

      3.1. Conditions d’utilisation

      Le transfert initial doit :

      • Être dans le statut TRANSFERRED
      • Avoir des fonds disponibles dans le wallet destinataire
      • Ne pas avoir déjà été remboursé dans sa totalité via des opérations de reversal

      Le montant retourné doit être :

      • Inférieur ou égal au solde disponible du wallet destinataire
      • Inférieur ou égal à la somme initialement transférée
      • Diminué des éventuels reversals déjà effectués sur le transfert concerné

      3.2. Créer un TransferReversal

      Permet de retourner un montant vers le wallet émetteur d’origine.

      ChampTypeObligatoireDescription
      transferIdUUID✅ OuiIdentifiant du transfert d’origine.
      amountInteger✅ OuiMontant à rembourser (en centimes).
      merchantTransferReversalIdString❌ NonRéférence partenaire 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 Wallet source.

      Règles importantes :

      • L’opération est visible dans les mouvements du wallet (débit du wallet destinataire, crédit du wallet d’origine)
      • Plusieurs reversals peuvent être effectués sur un même transfert, dans la limite du montant total initial
      • Si les fonds ne sont pas disponibles, l’appel est rejeté avec une erreur explicite (insuffisance de solde ou montant trop élevé)

      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 partenaire 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, wallet 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 partenaire
      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✅ OuiWallet bénéficiaire. Doit appartenir à un sous-marchand 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é.

      Reversement bancaire pour tiers

      Le reversement bancaire pour un tiers permet de transférer des fonds depuis un compte de paiement ou monnaie électronique CentralPay vers le compte bancaire d’un marchand (ou sous-marchand), en tant que partenaire Agent ou DME. Les partenaires techniques ou MOBSP n’ont pas accès à cette fonction.

      1. Objectif et périmètre

      Ce service permet de :

      • Déclencher des reversements manuels ou automatisés pour des sous-marchands
      • Cibler un compte bancaire autorisé par le sous-marchand
      • Utiliser un wallet CentralPay comme source des fonds

      Le partenaire régulé reste à l’initiative technique du reversement, mais les fonds sont toujours détenus et transférés par CentralPay, qui conserve la responsabilité de l’exécution.

      2. Méthodes disponibles

      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 sous-marchand.

      3.1. Limites d’usage

      • 1 reversement / jour / sous-marchand / devise
      • Compte bancaire cible validé par le sous-marchand
      • Reversement uniquement sur fonds disponibles

      3.2. Paramètres API (BODY)

      ParamètreTypeRequisDescription
      currencyISO 4217✅ OuiDevise du reversement (doit correspondre au compte bancaire).
      destinationBankAccountIdUUID✅ OuiCompte bancaire bénéficiaire (lié au sous-marchand).
      walletIdUUID❌ NonWallet source des fonds.
      amountInteger (en cents)❌ NonMontant à reverser. Si vide : solde maximum.
      merchantPayoutIdString❌ NonID de référence interne.
      descriptionString❌ NonTexte libre, visible dans le reporting.
      payoutReferenceString (max 35)❌ NonRéférence bancaire (visible sur l’opération bancaire).
      additionalDataMap❌ NonDonnées complémentaires (ex. : ID commande, segment, etc.).
      transitionWalletUUID❌ Non(cas avancé) wallet transitoire.
      customerIdUUID❌ NonIdentifiant client si cible non marchande.

      4. Suivi des reversements

      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
      PENDINGReversement en cours de traitement
      PAIDReversement exécuté avec succès
      CANCELReversement annulé manuellement

      5. Contraintes réglementaires

      • Seuls les Agents et Distributeurs de Monnaie Électronique (DME) déclarés à l’ACPR via CentralPay peuvent initier ces reversements
      • Les partenaires doivent garantir que les données envoyées sont conformes à leur cadre contractuel et réglementaire
      • CentralPay se réserve le droit de refuser un reversement ou d’exiger des documents justificatifs en cas de doute sur l’opération

      Retours, statuts et webhooks

      1. Codes de retour liés aux transferts

      Les transferts réalisés via l’API CentralPay (objet Transfer ou Transfer Reversal) sont des opérations internes entre deux porteurs de comptes CentralPay (ex : marchands, clients, partenaires). Ces opérations sont exécutées de manière synchrone ou quasi-immédiate.

      Contrairement aux transactions cartes ou virements bancaires, il n’y a pas de codes de retour bancaire associés à ces transferts internes. En cas d’échec, l’API retourne une erreur HTTP décrivant la cause du rejet (ex : solde insuffisant, compte inactif, devise incompatible…).

      Ces erreurs ne sont pas des statuts métier, mais des contrôles d’entrée empêchant la création du transfert. Une fois le transfert accepté, il suit un cycle de vie propre.

      2. Statuts liés aux transferts

      Consultez les Statuts Transfer ➝

      Consultez les Statuts Transfer Reversal ➝

      Consultez les Statuts Payout (valables également pour PayoutByThirdParty) ➝

      3. Webhooks liés aux transferts

      Consultez les Webhooks Transfer ➝

      Consultez les Webhooks Transfer Reversal ➝

      Consultez les Webhooks Payout (valables également pour PayoutByThirdParty) ➝

      Plugin CMS

      WooCommerce

      Ce guide vous accompagne dans l’installation, la configuration et l’utilisation du plugin 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 compte de test CentralPay)./
      URL de redirectionRedirige vos clients vers une page personnalisée après paiement sur notre formulaire.Renseignez l’URL de votre page de confirmation de paiement.

      4. Statut de commande

      Le plugin WooCommerce de CentralPay intègre automatiquement une URL de retour (return_url) dans le lien du formulaire de paiement. Cette URL permet de rediriger le client vers la page de confirmation de commande (/checkout/order-received/) et d’actualiser le statut de la commande en fonction du résultat du paiement.

      Si le client final ferme la fenêtre de paiement avant d’être redirigé, la mise à jour de la commande peut ne pas se déclencher correctement côté WooCommerce.

      Pour garantir la mise à jour fiable du statut de commande, nous recommandons de mettre en place un Hook (callback serveur à serveur) dans votre Backoffice CentralPay.

      Étapes de configuration :

      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 compte de production.

      5. Personnalisation du logo

      Vous pouvez également personnaliser l’interface de paiement en ajoutant le logo de votre site via le Backoffice :

      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 compte de test CentralPay et renseigner les identifiants de ce compte de test)
      • Utilisez les cartes de test fournies par CentralPay pour simuler des paiements
      • Vérifiez le bon fonctionnement :
        • Du formulaire de paiement
        • Des redirections
        • Des statuts de commande

      7. Suivi des paiements

      • Retrouvez tous vos paiements dans WooCommerce > Commandes
      • Le plugin CentralPay met à jour automatiquement les statuts des commandes
      • En cas de besoin, un journal des événements est disponible dans le fichier error.log du plugin

      8. Langues disponibles

      Le plugin est disponible en :

      • 🇫🇷 Français
      • 🇬🇧 Anglais

      Vous pouvez modifier ou ajouter vos propres traductions via les fichiers .po présents dans le dossier /languages, ou en utilisant un plugin comme Loco Translate.

      9. Désinstallation

      Pour désinstaller le plugin :

      • Désactivez-le via le menu des extensions
      • Cliquez sur Supprimer
      • Le script de désinstallation supprimera les paramètres du plugin

      10. Support

      Pour toute question ou assistance, contactez notre support technique depuis https://support.centralpay.com.
      Merci d’indiquer votre identifiant marchand, l’URL de votre site et le plus de détails possible sur votre besoin.

      PrestaShop

      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.

      Cas d'usages

      Marketplace C2C

      Prochainement

      Terminologies CentralPay

      1. Les types d’acteurs

      DésignationDescription
      Acteur
      Toute entité identifiée sur la plateforme CentralPay. Peut-être un marchand, un point de vente, un établissement tiers, ou même CentralPay.
      (Compte) MarchandOuvert pour une entité (personne physique ou morale), il est le support de :
      – Sa contractualisation : Grille tarifaire, CGU…
      – Son administration : Credentials, profils utilisateurs…
      – Sa configuration : Scenario de notification, points de vente, règles d’acceptations…
      – Sa conformité : KYC/KYB, accréditations…

      Le Marchand contient un ou plusieurs comptes de paiement ou de monnaie électronique.
      Il est représenté par l’objet « Merchant » dans l’API CentralPay.
      Marchand standardPersonne morale ou autoentreprise réalisant des opérations d’encaissement pour compte propre « ECP » (vente de biens ou de services). Il peut être rattaché fonctionnellement à un Partenaire (Partenaire technique ou Intégrateur).
      Dispose d’un Compte Marchand typé « STANDARD ».
      Marchand PartenairePersonne morale disposant d’un compte Marchand CentralPay, ayant un des rôles rôle suivants :
      – Technique : gère un ou plusieurs points de ventes utilisés par des marchands standards pour encaisser (ex : marketplaces, plateformes SaaS…). Dispose d’un Compte Marchand CentralPay typé « TECHNIQUE ».
      – Intégrateur : gère l’intégration technique de CentralPay pour le compte de marchands standards sur leurs propres points de ventes (ex : éditeur web ou logiciel…). Dispose d’un Compte Marchand typé « INTEGRATEUR ».

      Peut percevoir des commissions. Peut disposer d’un statut MOBSP pour intervenir dans l’entrée en relation avec des marchands ECP.
      Marchand MandatairePersonne morale agissant pour le compte de tiers, encadrant des sous-marchands via un mandat des réglementaires suivants :
      – Agent PSP : Agent Prestataire de Services de Paiement de CentralPay agréé auprès de l’ACPR (Banque de France). Réalisant notamment des opérations de débit et de crédit pour compte de tiers à destination de ses sous-marchands. Dispose d’un Compte Marchand CentralPay typé « AGENT ».
      – DME : Distributeur de Monnaie Électronique déclaré par CentralPay auprès de l’ACPR (Banque de France). Porteur d’un projet impliquant la réalisation d’opérations d’émission et d’échange de Monnaie Électronique. Dispose d’un Compte Marchand typé « DME ».
      Sous-marchand commercialPersonne morale (PM) ou physique (PP) agissant à des fins commerciales ou dans le cadre d’une activité LMNP. Obligatoirement rattaché à un Marchand Mandataire.
      Dispose d’un Compte Marchand typé « BASIC ».
      Sous-marchand financePersonne morale (PM) ou physique (PP) agissant à des fins non commerciales (exemple : crowdfunding, chargement d’un wallet personnel, projet collectif…). Obligatoirement lié à un Marchand Mandataire.
      Dispose d’un Compte Marchand typé « BASIC ».
      Profils Utilisateur BOPersonne physique disposant d’un accès à un ou plusieurs Comptes Marchand CentralPay. Dispose d’un type « Legal » s’il est représentant légal du compte, sinon dispose d’un type « Natural ».
      Profils Utilisateur APIEntité créée via la plateforme CentralPay permettant d’identifier l’utilisateur réalisant les appels API sur un Compte Marchand.
      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 Compte Marchand CentralPay à des fins :
      – Techniques : pour 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 : pour limiter les droits de consultation ou de modification de vos profils utilisateurs BO à certains points de ventes
      – Comptables : pour filtrer les opérations par point de vente dans le Portail Marchand ou dans les exports de données
      Nommé « PointOfSale » dans l’API CentralPay.
      Client / PayeurReprésentation d’un client d’un marchand, propre à chaque compte marchand.
      Peut disposer d’un profil client (nommé « Customer » dans l’API CentralPay) ou non.

      2. Les types de comptes

      DésignationDescription
      Compte de paiementCompte ouvert dans un Établissement de Paiement. Ce compte est utilisé exclusivement pour la réalisation d’opérations de paiement (collecte de paiements en devises ISO, reversement des fonds vers un compte bancaire…).

      Il est représenté par l’objet « Wallet » type « PS » dans l’API CentralPay.
      Compte de monnaie électroniqueCompte ouvert dans un Établissement de Monnaie Électronique. Ce compte est utilisé exclusivement pour le stockage et l’échange de valeurs en monnaie électronique au sein du réseau du distributeur (devises CUSTOM).

      Il est représenté par l’objet « Wallet » type « EM » dans l’API CentralPay.
      Compte de commissionCompte de paiement secondaire d’un marchand standard ou partenaire permettant d’isoler les opérations liées aux frais CentralPay du reste des opérations de paiement.
      Si utilisation par un partenaire, ce compte permet également de collecter ses propres commissions imputées aux transactions de ses sous-marchands.

      Il est représenté par l’objet « Wallet » type « CM » dans l’API CentralPay.
      Compte de réserveCompte de paiement secondaire d’un marchand ou partenaire permettant d’isoler ses fonds de réserve Centralpay (pied de compte, collatéral ou réserve glissante). N’est pas autorisé à réaliser de Payout.

      Il est représenté par l’objet « Wallet » type « BM » dans l’API CentralPay.
      Compte de collecte « Agent »Compte de paiement ouvert dans les livres de CentralPay au nom de l’Agent. Il est dédié à la réception des fonds du Mandataire Agent avant leur transfert vers les comptes de paiement de ses sous-marchands. N’est pas autorisé à réaliser de Payout.

      Il est représenté par l’objet « Wallet » type « CL » dans l’API CentralPay.
      Compte de traitement CentralPayLe Compte de Traitement CentralPay est un compte technique mise à disposition par CentralPay au Partenaire Technique pour lui permettre de visualiser les données commerciales transmises et les transactions réalisées sur ses points de vente. Il est donc uniquement dédié à la consultation et au traitement des opérations d’un partenaire technique avant leur transfert vers les comptes de paiement des bénéficiaires concernés.

      Il est représenté par l’objet « Wallet » type « TR » dans l’API CentralPay.

      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.
      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 comme l’EURO par exemple.
      Compte bancaireCompte bancaire externe lié à un compte Marchand CentralPay pour réaliser des reversements (payout) ou à un profil client pour réaliser des prélèvements SEPA.
      Il est représenté par l’objet « BankAccount » dans l’API CentralPay.
      Reversement bancaireVirement sortant d’un compte Marchand CentralPay vers un compte bancaire lié. Peut-être réalisé par SEPA ou SWIFT.
      Il est représenté par l’objet « Payout » dans l’API CentralPay.
      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 Marchand 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 Marchand 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 Marchand CentralPay.
      Elle est représentée par l’objet « SddTransaction » dans l’API CentralPay.

      Webhooks

      Les webhooks permettent d’adresser des notifications HTTP sur les URL de votre choix en fonction des évènements (events) qui surviennent sur votre compte 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’une opération est réalisée sur votre compte 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

      Transférer des paiements

      Articles

      • Informations générales
      • Transfert indépendant
      • Transfert via Transaction ou PaymentRequest
      • Reversement bancaire pour tiers
      • Retours, statuts et webhooks

      Informations générales

      La solution Easy Wallet permet aux plateformes d’encaisser des paiements et de les transférer à des tiers tout en respectant la réglementation européenne.

      Pour ce faire, le module comprend deux principaux services :

      • L’inscription, permettant la création de comptes de paiement et de monnaie électronique pour les marchands ou sous-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 sous-marchands

      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 partenaires régulés (Agents ou DME, selon le type de compte) de transférer des fonds entre deux comptes de leurs sous-marchands. Ce transfert peut être initié :

      • Par un Agent lorsque les wallets sont des comptes de paiement
      • Par un DME lorsque les wallets sont des comptes de monnaie électronique

      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 sous-marchands, ou vers des comptes destinataires définis
      • À un DME d’opérer des transferts de monnaie électronique entre ses sous-marchands (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 sous-marchands.

      1.2. Paramètres requis

      ChampTypeObligatoireDescription
      destinationWalletIdUUID✅ OuiIdentifiant du wallet destinataire (appartenant à un sous-marchand).
      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
      emissionWalletIdUUIDWallet émetteur si différent du wallet principal du partenaire.
      currencyCode ISODevise du transfert (si différente de celle du wallet).
      feeIntegerMontant de la commission prélevée par le partenaire, déduite du montant. Par défaut : 0.
      escrowDateDate ISODate à partir de laquelle le transfert devient effectif. Peut être utilisée pour définir une période de blocage temporaire.
      merchantTransferIdStringRéférence métier du partenaire (max 100 caractères).
      transferGroupStringGroupe de rattachement pour regrouper plusieurs transferts.
      descriptionStringDescription libre (max 256 caractères).
      additionalDataKey/ValueDonnées complémentaires sous forme de paires clé/valeur (max 256 caractères par valeur).
      metaDataJSONMétadonnées complémentaires structurées.
      purposeCode / purposeMessageEnum / StringFinalité du transfert, selon une nomenclature standard. Voir la liste des codes.

      1.4. Règles de validation

      • Le destinationWalletId doit correspondre à un wallet valide d’un sous-marchand du partenaire
      • Le sourceId ne peut être utilisé que si l’objet lié est dans un statut accepté (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 partenaires régulés (Agent ou DME) disposent de plusieurs fonctions de gestion post-création d’un transfert, leur permettant d’ajuster, consulter ou annuler une opération, sous conditions.

      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 partenaire.
      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 wallet.

      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 partenaire.
      destinationWalletIdUUIDWallet destinataire.
      transferGroupStringGroupe de transferts.
      statusEnumPENDING, TRANSFERRED, CANCEL.
      after / beforeDate ISOFiltrer par date de création.
      limitIntegerNombre de résultats par page.
      pageIntegerIndex de la page de résultats.

      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 partenaires régulés (Agent pour les comptes de paiement, DME pour les comptes de monnaie électronique), et doit respecter les règles de disponibilité des fonds.

      3.1. Conditions d’utilisation

      Le transfert initial doit :

      • Être dans le statut TRANSFERRED
      • Avoir des fonds disponibles dans le wallet destinataire
      • Ne pas avoir déjà été remboursé dans sa totalité via des opérations de reversal

      Le montant retourné doit être :

      • Inférieur ou égal au solde disponible du wallet destinataire
      • Inférieur ou égal à la somme initialement transférée
      • Diminué des éventuels reversals déjà effectués sur le transfert concerné

      3.2. Créer un TransferReversal

      Permet de retourner un montant vers le wallet émetteur d’origine.

      ChampTypeObligatoireDescription
      transferIdUUID✅ OuiIdentifiant du transfert d’origine.
      amountInteger✅ OuiMontant à rembourser (en centimes).
      merchantTransferReversalIdString❌ NonRéférence partenaire 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 Wallet source.

      Règles importantes :

      • L’opération est visible dans les mouvements du wallet (débit du wallet destinataire, crédit du wallet d’origine)
      • Plusieurs reversals peuvent être effectués sur un même transfert, dans la limite du montant total initial
      • Si les fonds ne sont pas disponibles, l’appel est rejeté avec une erreur explicite (insuffisance de solde ou montant trop élevé)

      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 partenaire 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, wallet 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 partenaire
      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✅ OuiWallet bénéficiaire. Doit appartenir à un sous-marchand 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é.

      Reversement bancaire pour tiers

      Le reversement bancaire pour un tiers permet de transférer des fonds depuis un compte de paiement ou monnaie électronique CentralPay vers le compte bancaire d’un marchand (ou sous-marchand), en tant que partenaire Agent ou DME. Les partenaires techniques ou MOBSP n’ont pas accès à cette fonction.

      1. Objectif et périmètre

      Ce service permet de :

      • Déclencher des reversements manuels ou automatisés pour des sous-marchands
      • Cibler un compte bancaire autorisé par le sous-marchand
      • Utiliser un wallet CentralPay comme source des fonds

      Le partenaire régulé reste à l’initiative technique du reversement, mais les fonds sont toujours détenus et transférés par CentralPay, qui conserve la responsabilité de l’exécution.

      2. Méthodes disponibles

      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 sous-marchand.

      3.1. Limites d’usage

      • 1 reversement / jour / sous-marchand / devise
      • Compte bancaire cible validé par le sous-marchand
      • Reversement uniquement sur fonds disponibles

      3.2. Paramètres API (BODY)

      ParamètreTypeRequisDescription
      currencyISO 4217✅ OuiDevise du reversement (doit correspondre au compte bancaire).
      destinationBankAccountIdUUID✅ OuiCompte bancaire bénéficiaire (lié au sous-marchand).
      walletIdUUID❌ NonWallet source des fonds.
      amountInteger (en cents)❌ NonMontant à reverser. Si vide : solde maximum.
      merchantPayoutIdString❌ NonID de référence interne.
      descriptionString❌ NonTexte libre, visible dans le reporting.
      payoutReferenceString (max 35)❌ NonRéférence bancaire (visible sur l’opération bancaire).
      additionalDataMap❌ NonDonnées complémentaires (ex. : ID commande, segment, etc.).
      transitionWalletUUID❌ Non(cas avancé) wallet transitoire.
      customerIdUUID❌ NonIdentifiant client si cible non marchande.

      4. Suivi des reversements

      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
      PENDINGReversement en cours de traitement
      PAIDReversement exécuté avec succès
      CANCELReversement annulé manuellement

      5. Contraintes réglementaires

      • Seuls les Agents et Distributeurs de Monnaie Électronique (DME) déclarés à l’ACPR via CentralPay peuvent initier ces reversements
      • Les partenaires doivent garantir que les données envoyées sont conformes à leur cadre contractuel et réglementaire
      • CentralPay se réserve le droit de refuser un reversement ou d’exiger des documents justificatifs en cas de doute sur l’opération

      Retours, statuts et webhooks

      1. Codes de retour liés aux transferts

      Les transferts réalisés via l’API CentralPay (objet Transfer ou Transfer Reversal) sont des opérations internes entre deux porteurs de comptes CentralPay (ex : marchands, clients, partenaires). Ces opérations sont exécutées de manière synchrone ou quasi-immédiate.

      Contrairement aux transactions cartes ou virements bancaires, il n’y a pas de codes de retour bancaire associés à ces transferts internes. En cas d’échec, l’API retourne une erreur HTTP décrivant la cause du rejet (ex : solde insuffisant, compte inactif, devise incompatible…).

      Ces erreurs ne sont pas des statuts métier, mais des contrôles d’entrée empêchant la création du transfert. Une fois le transfert accepté, il suit un cycle de vie propre.

      2. Statuts liés aux transferts

      Consultez les Statuts Transfer ➝

      Consultez les Statuts Transfer Reversal ➝

      Consultez les Statuts Payout (valables également pour PayoutByThirdParty) ➝

      3. Webhooks liés aux transferts

      Consultez les Webhooks Transfer ➝

      Consultez les Webhooks Transfer Reversal ➝

      Consultez les Webhooks Payout (valables également pour PayoutByThirdParty) ➝

      Payout >

      See more about Payout

      jQuery(document).ready( function($) { window.live_68cacb120d0cd = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Payout.yaml", dom_id: "#wp-swagger-ui-container-live_68cacb120d0cd", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_68cacb120d0cd.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 compte de test CentralPay)./
      URL de redirectionRedirige vos clients vers une page personnalisée après paiement sur notre formulaire.Renseignez l’URL de votre page de confirmation de paiement.

      4. Statut de commande

      Le plugin WooCommerce de CentralPay intègre automatiquement une URL de retour (return_url) dans le lien du formulaire de paiement. Cette URL permet de rediriger le client vers la page de confirmation de commande (/checkout/order-received/) et d’actualiser le statut de la commande en fonction du résultat du paiement.

      Si le client final ferme la fenêtre de paiement avant d’être redirigé, la mise à jour de la commande peut ne pas se déclencher correctement côté WooCommerce.

      Pour garantir la mise à jour fiable du statut de commande, nous recommandons de mettre en place un Hook (callback serveur à serveur) dans votre Backoffice CentralPay.

      Étapes de configuration :

      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 compte de production.

      5. Personnalisation du logo

      Vous pouvez également personnaliser l’interface de paiement en ajoutant le logo de votre site via le Backoffice :

      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 compte de test CentralPay et renseigner les identifiants de ce compte de test)
      • Utilisez les cartes de test fournies par CentralPay pour simuler des paiements
      • Vérifiez le bon fonctionnement :
        • Du formulaire de paiement
        • Des redirections
        • Des statuts de commande

      7. Suivi des paiements

      • Retrouvez tous vos paiements dans WooCommerce > Commandes
      • Le plugin CentralPay met à jour automatiquement les statuts des commandes
      • En cas de besoin, un journal des événements est disponible dans le fichier error.log du plugin

      8. Langues disponibles

      Le plugin est disponible en :

      • 🇫🇷 Français
      • 🇬🇧 Anglais

      Vous pouvez modifier ou ajouter vos propres traductions via les fichiers .po présents dans le dossier /languages, ou en utilisant un plugin comme Loco Translate.

      9. Désinstallation

      Pour désinstaller le plugin :

      • Désactivez-le via le menu des extensions
      • Cliquez sur Supprimer
      • Le script de désinstallation supprimera les paramètres du plugin

      10. Support

      Pour toute question ou assistance, contactez notre support technique depuis https://support.centralpay.com.
      Merci d’indiquer votre identifiant marchand, l’URL de votre site et le plus de détails possible sur votre besoin.

      PrestaShop

      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
      • Ouvrir un compte Marchand CentralPay
      • Glossaire
      • API et interfaces
      • Modèles contractuels
      • Tarifs
      • Logos et visuels

      Contacter CentralPay >

      CentralPay s’emploie à une croissance saine, permettant à nos utilisateurs d’être quotidiennement accompagnés par des équipes stables et expertes dans leur domaine (conformité, monétique, sécurité…).

      Ainsi, nos services client et support sont joignables du lundi au vendredi depuis l’espace « Aide & Support » de votre Portail 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 reversements pour le compte de tiers. La typologie de services et d’opérations proposées par CentralPay varie en fonction des besoins et de l’activité de ses marchands et partenaires.

      CentralPay est une société indépendante, entièrement propriétaire de sa technologie et de ses agréments. Garantissant la meilleure autonomie possible dans ses choix de partenariats et de son évolution.

      CentralPay est autorisé à entrer en relation d’affaires avec les entreprises enregistrées dans l’Espace Économique Européen.

      ACPR
      (Banque de France)
      Établissement de Monnaie Électronique : CentralPay est un Établissement de Monnaie Électronique régulé par la Banque de France à travers son autorité de contrôle prudentiel et de résolution, l’ACPR (CIB 17138).
      DSP2 : CentralPay est conforme à la 2ème Directive sur les Services de Paiements qui impose notamment des exigences en matière d’authentification forte et de protection des données.
      PCI-DSS : CentralPay obtient annuellement la certification la plus élevée possible en matière de sécurisation des données bancaires et prévention de la fraude ; la norme PCI DSS de niveau 1.
      EBA CLEARING & EPC : En qualité de membre de l’European Payment Council et sa connexion à l’EBA CLEARING, CentralPay intègre les schémas européens des règlements SEPA afin d’émettre et de recevoir des virements et des prélèvements depuis ses propres IBAN et IBAN virtuels.
      SWIFT : Connecté au réseau SWIFT, messagerie la plus acceptée à l’échelle mondiale, CentralPay est en mesure d’échanger des flux financiers internationaux avec la plupart des banques et des institutions financières participantes.
      Visa, Mastercard, Cartes bancaires, American Express : CentralPay est accrédité auprès des grands réseaux de cartes, afin d’optimiser les parcours et la conversion des paiements de tous ses utilisateurs.

      Sécurité et hébergement

      CentralPay exploite ses services depuis deux Datacenter français. Les équipements et services exploités sur ces deux sites sont entièrement redondés.

      1. Un hébergement hautement résilient

      • Deux Datacenter de conception TIER III basés à Tours
      • Environnement actif/actif entre les deux sites
      • Des engagements contractuels (SLA) de 99.9 %
      • Des normes reconnues : ISO27001, PCI-DSS, Code of Conduct

      2. Une infrastructure garante de la sécurité de vos données

      • Cœur de réseau allant jusqu’à 10 Gb/s
      • Réseau électrique entièrement redondé, densité électrique allant de 600 mA à 32 A
      • Système de contrôle d’accès avec double authentification (badge & code personnel)
      • Vidéo-surveillance et alarme reliée 24h/7j à notre télésurveillance
      • Système d’extinction d’incendie par aérosol FirePro

      Engagements de disponibilité

      CentralPay garantit une disponibilité annuelle de ses services (SLA & PCA) selon les barèmes suivants :

      CPAY API
      Traitement des opérations de paiement
      CPAY PORTALS
      Portail d’inscription, client et utilisateur
      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é.

      Ouvrir un compte Marchand 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 sous-marchand d’un marchand mandataire, ou un marchand 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, reversements, droits utilisateurs…).

      1.5. Création du compte Marchand CentralPay

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

      • Il complète les informations juridiques
      • Il valide les Conditions Générales d’Utilisation
      • L’analyse de conformité complète est alors déclenchée

      Cette analyse peut donner lieu à :

      • Des demandes de documents complémentaires (KYC/KYB, contrats, justificatifs…)
      • Un refus d’ouverture si les critères réglementaires ne sont pas remplis
      • Une validation du compte, menant à son ouverture

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

      2. Sous-marchands et 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 compte Marchand CentralPay.

      2.1. Étape unique : Création du compte et validation réglementaire

      • Vous recevez un lien d’inscription transmis par votre partenaire ou directement par CentralPay.
      • Ce lien vous permet de :
        • Compléter les informations relatives à votre structure
        • Décrire précisément votre activité, la typologie de vos clients finaux et la volumétrie estimée de vos opérations
        • Valider les Conditions Générales d’Utilisation et signer le contrat cadre

      Les aspects techniques (intégration, parcours, moyens de paiement) sont déjà définis dans le cadre de la convention signée avec le partenaire technique ou le mandataire.

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

      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 reversements SEPA)
      Déclaration d’activité et de revenus
      Justificatif de domicile (<3 mois)
      Justificatifs de revenus : fiche de paie, relevé bancaire, avis d’imposition
      Pour activité de location : taxe foncière ou titre de propriété, attestation de propriété

      2.2. Personnes morales (KYB)

      La création d’un compte 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 compte 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 compte 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 Marchand CentralPay afin de permettre de couvrir les R-transactions (rejets, refus, retours, remboursements, contestations, impayés) liés à des opérations de paiement. Ses paramètres sont définis en fonction du profil de risque financier de votre compte et sont actualisés en fonction de l’analyse de vos R-transactions sur une période suffisante. Les transactions récurrentes par prélèvement SEPA et par carte bancaire sont particulièrement sujettes au risque de R-transactions.

      CentralPay possède 3 types de garanties de protection qui peuvent s’appliquer aux marchands, en fonction de la nature de leur contrat :

      1. Le collatéral

      Il représente la somme fixe versée en début de relation, servant à couvrir le risque de crédit dans le cas où le marchand ne pourrait pas satisfaire ses obligations de remboursement envers ses clients.

      Le détail du collatéral est visible depuis le Portail Marchand : Administration Reversements Somme des cautions

      2. Le pied de compte

      En l’absence de collatéral, une somme fixe peut être prélevée directement sur les opérations afin de garantir le remboursement des clients en cas de besoin. Le wallet doit donc dépasser la valeur du pied de compte pour autoriser les reversements (payout).

      Le détail du pied de compte est visible depuis le Portail Marchand : Administration Reversements Seuil fixe

      3. La réserve glissante

      Selon le secteur d’activité et les processus de règlement du compte, une réserve glissante (« rolling réserve » en anglais) peut être automatiquement ouverte. Il s’agit d’une garantie de protection supplémentaire qui permet de maintenir un certain pourcentage du volume d’encaissement marchand sur le compte Marchand CentralPay afin de permettre l’initiation de remboursements automatiques en cas de contestation de transaction, de fraude ou encore afin de couvrir d’éventuels frais opérationnels. Cette somme appartient à la trésorerie du marchand, elle est gardée un nombre défini de jours avant d’être libérée (généralement entre 90 à 180 jours).

      Par exemple, le seuil variable de la réserve glissante est de 5 % du volume d’encaissement sur 90 jours. Le calcul quotidien du montant de réserve est le suivant : montant des transactions encaissées lors des 90 derniers jours * 5 %

      Le détail de la réserve glissante est visible depuis le Portail Marchand : Administration Reversements Seuil variable

      Conditions générales d’utilisation

      L’utilisation des services CentralPay est encadrée par plusieurs documents contractuels que chaque titulaire de compte doit consulter et accepter avant l’activation de son compte.

      👉 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

      Glossaire

      Terminologies CentralPay

      1. Les types d’acteurs

      DésignationDescription
      Acteur
      Toute entité identifiée sur la plateforme CentralPay. Peut-être un marchand, un point de vente, un établissement tiers, ou même CentralPay.
      (Compte) MarchandOuvert pour une entité (personne physique ou morale), il est le support de :
      – Sa contractualisation : Grille tarifaire, CGU…
      – Son administration : Credentials, profils utilisateurs…
      – Sa configuration : Scenario de notification, points de vente, règles d’acceptations…
      – Sa conformité : KYC/KYB, accréditations…

      Le Marchand contient un ou plusieurs comptes de paiement ou de monnaie électronique.
      Il est représenté par l’objet « Merchant » dans l’API CentralPay.
      Marchand standardPersonne morale ou autoentreprise réalisant des opérations d’encaissement pour compte propre « ECP » (vente de biens ou de services). Il peut être rattaché fonctionnellement à un Partenaire (Partenaire technique ou Intégrateur).
      Dispose d’un Compte Marchand typé « STANDARD ».
      Marchand PartenairePersonne morale disposant d’un compte Marchand CentralPay, ayant un des rôles rôle suivants :
      – Technique : gère un ou plusieurs points de ventes utilisés par des marchands standards pour encaisser (ex : marketplaces, plateformes SaaS…). Dispose d’un Compte Marchand CentralPay typé « TECHNIQUE ».
      – Intégrateur : gère l’intégration technique de CentralPay pour le compte de marchands standards sur leurs propres points de ventes (ex : éditeur web ou logiciel…). Dispose d’un Compte Marchand typé « INTEGRATEUR ».

      Peut percevoir des commissions. Peut disposer d’un statut MOBSP pour intervenir dans l’entrée en relation avec des marchands ECP.
      Marchand MandatairePersonne morale agissant pour le compte de tiers, encadrant des sous-marchands via un mandat des réglementaires suivants :
      – Agent PSP : Agent Prestataire de Services de Paiement de CentralPay agréé auprès de l’ACPR (Banque de France). Réalisant notamment des opérations de débit et de crédit pour compte de tiers à destination de ses sous-marchands. Dispose d’un Compte Marchand CentralPay typé « AGENT ».
      – DME : Distributeur de Monnaie Électronique déclaré par CentralPay auprès de l’ACPR (Banque de France). Porteur d’un projet impliquant la réalisation d’opérations d’émission et d’échange de Monnaie Électronique. Dispose d’un Compte Marchand typé « DME ».
      Sous-marchand commercialPersonne morale (PM) ou physique (PP) agissant à des fins commerciales ou dans le cadre d’une activité LMNP. Obligatoirement rattaché à un Marchand Mandataire.
      Dispose d’un Compte Marchand typé « BASIC ».
      Sous-marchand financePersonne morale (PM) ou physique (PP) agissant à des fins non commerciales (exemple : crowdfunding, chargement d’un wallet personnel, projet collectif…). Obligatoirement lié à un Marchand Mandataire.
      Dispose d’un Compte Marchand typé « BASIC ».
      Profils Utilisateur BOPersonne physique disposant d’un accès à un ou plusieurs Comptes Marchand CentralPay. Dispose d’un type « Legal » s’il est représentant légal du compte, sinon dispose d’un type « Natural ».
      Profils Utilisateur APIEntité créée via la plateforme CentralPay permettant d’identifier l’utilisateur réalisant les appels API sur un Compte Marchand.
      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 Compte Marchand CentralPay à des fins :
      – Techniques : pour 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 : pour limiter les droits de consultation ou de modification de vos profils utilisateurs BO à certains points de ventes
      – Comptables : pour filtrer les opérations par point de vente dans le Portail Marchand ou dans les exports de données
      Nommé « PointOfSale » dans l’API CentralPay.
      Client / PayeurReprésentation d’un client d’un marchand, propre à chaque compte marchand.
      Peut disposer d’un profil client (nommé « Customer » dans l’API CentralPay) ou non.

      2. Les types de comptes

      DésignationDescription
      Compte de paiementCompte ouvert dans un Établissement de Paiement. Ce compte est utilisé exclusivement pour la réalisation d’opérations de paiement (collecte de paiements en devises ISO, reversement des fonds vers un compte bancaire…).

      Il est représenté par l’objet « Wallet » type « PS » dans l’API CentralPay.
      Compte de monnaie électroniqueCompte ouvert dans un Établissement de Monnaie Électronique. Ce compte est utilisé exclusivement pour le stockage et l’échange de valeurs en monnaie électronique au sein du réseau du distributeur (devises CUSTOM).

      Il est représenté par l’objet « Wallet » type « EM » dans l’API CentralPay.
      Compte de commissionCompte de paiement secondaire d’un marchand standard ou partenaire permettant d’isoler les opérations liées aux frais CentralPay du reste des opérations de paiement.
      Si utilisation par un partenaire, ce compte permet également de collecter ses propres commissions imputées aux transactions de ses sous-marchands.

      Il est représenté par l’objet « Wallet » type « CM » dans l’API CentralPay.
      Compte de réserveCompte de paiement secondaire d’un marchand ou partenaire permettant d’isoler ses fonds de réserve Centralpay (pied de compte, collatéral ou réserve glissante). N’est pas autorisé à réaliser de Payout.

      Il est représenté par l’objet « Wallet » type « BM » dans l’API CentralPay.
      Compte de collecte « Agent »Compte de paiement ouvert dans les livres de CentralPay au nom de l’Agent. Il est dédié à la réception des fonds du Mandataire Agent avant leur transfert vers les comptes de paiement de ses sous-marchands. N’est pas autorisé à réaliser de Payout.

      Il est représenté par l’objet « Wallet » type « CL » dans l’API CentralPay.
      Compte de traitement CentralPayLe Compte de Traitement CentralPay est un compte technique mise à disposition par CentralPay au Partenaire Technique pour lui permettre de visualiser les données commerciales transmises et les transactions réalisées sur ses points de vente. Il est donc uniquement dédié à la consultation et au traitement des opérations d’un partenaire technique avant leur transfert vers les comptes de paiement des bénéficiaires concernés.

      Il est représenté par l’objet « Wallet » type « TR » dans l’API CentralPay.

      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.
      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 comme l’EURO par exemple.
      Compte bancaireCompte bancaire externe lié à un compte Marchand CentralPay pour réaliser des reversements (payout) ou à un profil client pour réaliser des prélèvements SEPA.
      Il est représenté par l’objet « BankAccount » dans l’API CentralPay.
      Reversement bancaireVirement sortant d’un compte Marchand CentralPay vers un compte bancaire lié. Peut-être réalisé par SEPA ou SWIFT.
      Il est représenté par l’objet « Payout » dans l’API CentralPay.
      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 Marchand 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 Marchand 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 Marchand CentralPay.
      Elle est représentée par l’objet « SddTransaction » dans l’API CentralPay.

      Lexique des paiements

      DésignationDéfinition
      Identifiant de Créancier SEPA (ICS)L’ICS est un numéro de référence unique qui identifie chaque émetteur de prélèvement. En France, il est composé de 13 caractères alphanumériques, dont les 2 premiers représentent le code pays ISO (FR pour la France).

      Disposer d’un ICS est un prérequis obligatoire pour réaliser des prélèvements. Le créancier doit faire la demande d’attribution de l’ICS auprès de sa banque. Le créancier conserve ensuite son ICS, même s’il change de banque ou s’il est multi-bancarisé.
      DébiteurPersonne physique ou morale qui doit une somme d’argent à une autre, appelée créancier, que ce soit dans le cadre de transactions commerciales, de prêts ou d’autres obligations financières.
      CréancierPersonne physique ou morale à qui une somme d’argent est due par une autre, appelée débiteur. Les créanciers (banques, entreprises ou particuliers qui ont prêté de l’argent ou fourni des biens ou services à crédit) ont le droit légal de réclamer le paiement de la dette, généralement formalisé par un contrat ou une autre forme d’accord.
      Émetteur (ou donneur d’ordre)Le payeur, c’est-à-dire la personne physique ou morale qui va émettre les fonds d’une transaction financière.
      BénéficiaireLe destinataire, autrement dit la personne physique ou morale qui va percevoir les fonds d’une transaction financière.
      Autorisation bancairePropre aux transactions par carte. Interrogation de l’acquéreur vers la banque du porteur de carte concernant le montant de la transaction. Suite au « code de retour banque », l’acquéreur est en mesure de savoir si la somme demandée est disponible, et si non pourquoi (fonds insuffisants, carte volée…). Une autorisation valide assure au marchand la possibilité de capturer la somme demandée jusqu’à 7 jours.
      Passerelle de paiement (ou Payment Gateway)Technologie agissant comme intermédiaire entre le site du marchand et le réseau de paiement qui permet d’assurer la transmission sécurisée d’informations liées aux paiements. Les passerelles vérifient également la disponibilité des fonds et autorisent les paiements, tout en offrant des fonctionnalités telles que la gestion des paiements récurrents et la détection de la fraude.
      Prestataire de Services de Paiement (ou PSP)Établissement financier qui fournit des services liés à l’acceptation et au traitement des paiements aux marchands. Ces services incluent également la gestion des comptes de paiements ouverts, la sécurité des transactions ainsi que la conformité réglementaire.
      KYB (Know your Business)Le KYB (Know Your Business) est un protocole d’authentification de l’identité et de la conformité des personnes morales, avant la création de leur compte de paiement. Imposée par le régulateur, cette vérification permet d’évaluer le niveau de risque marchand de ces dernières afin de prévenir toutes activités illégales telles que le blanchiment d’argent, la fraude et le financement du terrorisme (LCB-FT).

      Ce processus inclut la collecte et la vérification de documents tels que les statuts de l’entreprise, les informations sur les propriétaires et les dirigeants, les justificatifs d’adresse et les informations financières.
      KYC (Know your Customer)Le KYC (Know Your Customer) est un protocole d’authentification de l’identité et de la conformité des personnes physiques, avant la création de leur compte de paiement. Imposée par le régulateur, cette vérification permet d’évaluer le niveau de risque marchand de ces dernières afin de prévenir toutes activités illégales telles que le blanchiment d’argent, la fraude et le financement du terrorisme (LCB-FT).

      Ce processus inclut la collecte et la vérification de documents tels que les pièces d’identité, les preuves de domicile et les informations sur les activités professionnelles.
      Rapprochement d’un virementProcessus de vérification et de correspondance des factures émises enregistrées dans le compte de l’entreprise avec les paiements reçus. Ce traitement permet de s’assurer que toutes les transactions prévues ont bien été exécutées, de détecter toute anomalie ou erreur et de maintenir l’exactitude des enregistrements financiers de l’entreprise.
      Frais d’interchangeFrais payés par la banque du marchand (banque acquéreur) à la banque de l’acheteur (banque émettrice) lors d’une transaction par carte, afin de couvrir les coûts et les risques associés à la gestion des paiements. Ils varient en fonction de plusieurs facteurs, tels que le type de carte utilisée, le type de transaction et le pays dans lequel la transaction est effectuée.
      Frais de réseaux carteFrais facturés par les réseaux de cartes (CB, Visa, Mastercard…) aux banques et PSP qui traitent des paiements par carte. Ces frais couvrent les coûts liés à l’utilisation du réseau de paiement, notamment l’infrastructure technologique, la sécurité des transactions et le traitement des paiements.
      Interchange++Somme des commissions prélevées sur les opérations de paiement en ligne du marchand. Il est composé de :
      – Frais d’Interchange
      – Frais de réseaux de carte
      – Frais de services, facturés par le PSP qui assure le fonctionnement de la plateforme de paiement et des services associés

      Ce calcul permet de déterminer le coût de revient exact de chacune des transactions.
      Open BankingEncouragé par la DSP2, l’Open Banking est une pratique financière permettant aux banques de partager de manière sécurisée les données financières de leurs clients avec des tiers autorisés, tels que des fintechs, à travers des API (interfaces de programmation applicative). Ce système bancaire ouvert vise à stimuler l’innovation et la concurrence dans le secteur financier, en permettant le développement de nouvelles applications et services qui peuvent offrir des expériences client améliorées, une gestion financière plus efficace et des offres personnalisées.
      Exemple : Initiation de paiement
      Impayé carte (ou chargeback / contestation / litige)Processus par lequel un titulaire de carte signale une transaction suspecte ou non autorisée à l’émetteur, en vue d’un remboursement ou d’une rétrofacturation. Les motifs de contestation peuvent inclure des transactions frauduleuses, des erreurs de facturation, des biens ou des services non reçus ou d’autres problèmes liés à l’utilisation de la carte.
      Rejet de prélèvement SEPAUn rejet de prélèvement se produit lorsqu’une demande de prélèvement est refusée par la banque du débiteur. Les raisons d’un rejet peuvent inclure des fonds insuffisants sur le compte du débiteur, des informations bancaires incorrectes, un mandat de prélèvement expiré ou non valide, ou une opposition au prélèvement de la part du débiteur.

      Lorsqu’un prélèvement est rejeté, les fonds ne sont pas transférés, et le créancier est informé du rejet pour qu’il puisse prendre les mesures appropriées.
      RIB (Relevé d’Identité Bancaire)Document fourni par une banque qui contient les informations nécessaires à l’identification d’un compte bancaire, afin de faciliter les opérations de virement ou de prélèvement. Le RIB inclut le numéro de compte, le code banque, le code guichet, l’IBAN (International Bank Account Number) ainsi que le BIC (Bank Identifier Code) de la banque.
      EEE (Espace Économique Européen)Zone économique composée des 27 pays membres de l’Union Européenne (UE) ainsi que de la Norvège, l’Islande et le Liechtenstein. L’EEE permet aux États membres de participer au marché unique de l’UE, offrant la libre circulation des biens, des services, des capitaux et des personnes.

      API et interfaces

      Utilisation des API CentralPay

      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 création de comptes de paiement ou de monnaie électronique (enrôlements, wallet, etc.)Réservée aux marchands 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 compte Marchand CentralPay. Les marchands Mandataires peuvent également consulter le détail des comptes de leurs sous-marchands.

      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 reversement (« payout »)
      • De générer des exports et de télécharger les rapports financiers mensuels
      • Pour les comptes « Mandataires » uniquement :
        • De créer et de consulter les demandes d’onboarding (« merchant-enrollment »)
        • De consulter les opérations et de paramétrer les comptes de leurs sous-marchands
      ℹ️ Les comptes ayant des droits "Basic" (sous-marchands de mandataires) peuvent uniquement consulter les opérations dont ils sont bénéficiaires ("transfer") et gérer leurs paramètres de reversement ("payout").

      2. Les profils utilisateurs du Portail

      Ils représentent des personnes physiques pouvant accéder à un ou plusieurs comptes CentralPay ainsi qu’à tout ou partie des services du Portail Marchand.

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

      Lors de la création du compte Marchand CentralPay, le responsable ayant réalisé l’onboarding (dirigeant ou personne physique disposant d’une délégation de pouvoir) se voit attribuer un profil utilisateur dit « Legal ». Il dispose ainsi de tous les droits administrateur du compte, mais également de droits légaux permettant de paramétrer les éléments les plus sensibles du compte :

      • Paramètres du compte de paiement :
        • Changement d’IBAN de sortie (payout)
        • Changement des conditions de reversements sur compte bancaire
        • Mise à jour des documents de société
      • Paramètres des utilisateurs :
        • Création de nouveaux utilisateurs « Legal »
        • Prochainement

      Une fois le compte créé, vous avez la possibilité de créer autant de profils utilisateurs que nécessaire en renseignant leur nom, leur prénom, leur email et leur rôle utilisateur (définissant les droits qu’ils auront sur le compte). Les profils ainsi créés sont nommés « Natural ».

      ℹ️ Si vous disposez de plusieurs comptes CentralPay et que vos équipes doivent avoir accès à ces différents comptes, créez leur profil utilisateur depuis l’un d’entre eux, puis demander à CentralPay d’affecter leur profil à vos autres comptes. Ils bénéficieront ainsi d’un unique centralisé pour tous ces comptes.

      Accès :

      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

      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 compte 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 Compte Marchand CentralPay et d’un compte de paiement : de la création du profil utilisateur, jusqu’à la contractualisation, en passant par la collecte du KYC/KYB. Il interagit avec l’API Onboarding de CentralPay.

      Pour les marchands Mandataires, il permet donc de créer des sous-marchands facilement depuis un portail hébergé par CentralPay, et d’ainsi éviter une intégration complète de l’API Onboarding.

      Pour adresser un lien d’onboarding à l’un de vos futurs sous-marchands, vous pouvez utiliser le service de création de compte de paiement.

      Accès :

      Recette Portail d’Inscription
      Production Portail d’Inscription

      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 (acronyme « ECP ») dans le cadre d’une activité de vente de biens ou de services.

      1. Description du modèle

      Ce modèle vous donne accès à l’ensemble des services de Smart Collection, la solution d’encaissement complète proposée par CentralPay.

      🔗 Plus d’informations sur Smart Collection

      Les fonctionnalités incluses sont les suivantes :

      • Le compte Marchand CentralPay
        Un compte de paiement dédié à votre activité, avec IBAN individuel, suivi des opérations et reversements.
      • 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 reversements.
      • 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

      Le modèle Marchand donne lieu à deux types de frais :

      2.1. Forfait plateforme

      Un forfait mensuel fixe est appliqué pour l’accès à la plateforme et aux services associés.

      • Ce forfait peut être :
        • Prélevé automatiquement par SEPA mensuel
        • Facturé annuellement par virement SEPA
        • Déduit du solde de votre compte de paiement CentralPay selon les modalités prévues dans votre contrat

      2.2. Frais de service

      Des commissions variables sont appliquées en fonction des opérations réalisées (transactions, reversements, rejets, etc.).

      • Les frais sont débités :
        • Soit directement de votre compte de paiement principal
        • Soit depuis un compte de commission dédié, si celui-ci est activé

      En cas de solde insuffisant, CentralPay pourra procéder à un prélèvement SEPA ou vous adresser une demande de virement complémentaire.

      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 l’Intégrateur. Ces deux modèles permettent de connecter plusieurs marchands à la plateforme CentralPay, selon des modalités d’encadrement différentes.

      Ils peuvent chacun, s’ils le souhaitent, être déclarés MOBSP (Mandataires d’Opérations de Banque et de Services de Paiement) auprès de l’ORIAS, pour accompagner les marchands durant leur entrée en relation avec CentralPay.

      1. Marchand Intégrateur

      L’Intégrateur est un acteur 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 compte Marchand CentralPay, et signe directement un contrat 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 fournis par chaque marchand standard, dans le cadre d’un mandat contractuel
      • Il peut déclencher des opérations techniques (paiements, notifications…), mais uniquement via les accès API délégués par le marchand, dans le cadre du contrat unissant ce dernier à CentralPay. Il n’intervient jamais en son nom propre
      • Les opérations sont réalisées en 1 pour 1 : un client (payeur) règle un seul marchand

      1.2. Facturation

      • Chaque marchand est facturé directement par CentralPay
      • L’Intégrateur n’intervient à aucun moment dans les flux financiers

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

      • L’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 compte Marchand CentralPay : encaissements, reversements, solde, paramétrage des accès API, gestion documentaire et contractuelle
      • L’intégrateur accède à un espace CentralPay lui permettant de consulter une vue consolidée des opérations réalisées via les accès API qui lui sont délégués. Il peut également consulter la documentation technique, utiliser les environnements de test, et suivre les évolutions d’API. Cet accès ne permet pas d’exécuter de paiements
      • Pour permettre la connexion, le marchand crée un accès API dédié à l’intégrateur, avec des droits strictement limités et révocables à tout moment. Toutes les opérations techniques sont réalisées via cet accès, sous le contrôle du marchand
      • Si l’intégrateur est déclaré Mandataire d’Opérations de Banque et de Services de Paiement (MOBSP) auprès de l’Orias, il peut :
        • initier une demande d’enrôlement pour le compte d’un marchand
        • guider ce dernier dans la constitution de son dossier
        • et transmettre un lien d’enrôlement personnalisé CentralPay
      • Le statut MOBSP ne permet ni l’exécution d’opérations ni l’accès aux fonds, mais encadre juridiquement l’accompagnement du marchand dans son entrée en relation
      • Si l’intégrateur n’est pas déclaré MOBSP, c’est au marchand de contacter directement CentralPay pour initier sa demande d’ouverture de compte, en précisant l’identité de l’intégrateur avec lequel il collabore afin de permettre son rattachement technique

      2. Marchand 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 dont il est le titulaire.

      Les opérations sont ensuite traitées par CentralPay depuis un compte de traitement, également détenu par CentralPay. Cela permet au Partenaire Technique d’avoir une visibilité sur les flux, sans jamais en détenir la maîtrise ni les initier.

      2.1. Responsabilités et fonctionnement

      • Le Partenaire Technique dispose de ses propres accès API, délivrés par CentralPay
      • Il peut consulter les transactions réalisées pour les marchands liés à ses points de vente
      • Il n’initie aucun paiement et ne peut accéder aux soldes ou effectuer de reversements. Toutes les opérations sont exécutées exclusivement par CentralPay
      • Dans ce cadre, CentralPay peut gérer des paiements en mode 1 pour X : un client (payeur) peut régler plusieurs marchands simultanément

      2.2. Facturation

      • Le Partenaire Technique est facturé par CentralPay, en fonction des opérations réalisées via son point de vente
      • Les commissions qu’il perçoit sont prélevées par CentralPay sur les comptes de paiement des marchands standards, puis créditées sur son compte de commission

      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 au préalable directement avec CentralPay et détient son propre compte Marchand CentralPay. Il signe les Conditions Générales de Compte de Paiement et est soumis aux mêmes obligations réglementaires que tout utilisateur professionnel
      • Le Partenaire Technique transmet à CentralPay les données commerciales des transactions (montant, référence, commission…) recueillies sur sa plateforme. CentralPay analyse ces informations, puis instruit et exécute l’opération pour le compte du marchand concerné
      • Les paiements sont crédités sur le compte Marchand CentralPay du ou des marchands standards associés. Si une commission est prévue, CentralPay la prélève automatiquement et la reverse sur le compte de commission du partenaire technique, selon les données commerciales transmises et les conditions fixées dans ses CGU
      • Le partenaire technique ne détient jamais de fonds de tiers, ne donne aucune instruction de paiement, et ne peut intervenir dans les reversements ou la tenue de compte. Il n’agit ni pour compte de tiers ni au nom de CentralPay
      • L’accès au compte de traitement de CentralPay mis à disposition du partenaire technique est à usage purement informatif : il permet de visualiser les transactions, mais n’offre aucun droit d’exécution ou d’accès aux soldes
      • En cas d’enregistrement MOBSP, le partenaire technique peut accompagner ses marchands dans leur entrée en relation (enrôlement via API, transmission du lien d’inscription, assistance documentaire), sous réserve de validation préalable par CentralPay
      • Si le partenaire n’est pas MOBSP, chaque marchand doit initier lui-même sa demande de création de compte Marchand CentralPay ou de rattachement au partenaire technique, afin d’activer les bons droits techniques

      3. Règles de conformité communes

      Pour les deux modèles :

      • Le Partenaire ne détient aucun fonds de tiers et n’agit jamais en son nom propre pour l’exécution de services de paiement
      • Les comptes bancaires, les reversements et la détention de fonds de tiers sont strictement encadrés par CentralPay
      • Aucune délégation réglementaire d’exécution de service de paiement n’est accordée à ces acteurs

      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 compte Marchand CentralPay, lors d’un parcours d’enrôlement individualisé
      • Signent électroniquement les Conditions Générales de Compte de Paiement CentralPay, qui mentionnent explicitement leur rattachement au partenaire concerné
      • Reconnaissent que le partenaire pourra initier certaines actions techniques via son intégration CentralPay (ex. : transmission d’une commande, envoi d’une demande de paiement, remontée d’un panier, etc.)

      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, 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, ses droits d’accès API et les conditions de reversement de commissions le cas échéant
      • Les marchands associés signent les CGU CentralPay, dans lesquelles est précisée leur association au partenaire
      • 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 à nos conditions réglementaires

      4. Déclaration MOBSP (Mandataire d’Opérations de Banque et Services de Paiement)

      Un Intégrateur ou un Partenaire Technique peut, s’il le souhaite, être déclaré en tant que MOBSP auprès de l’ORIAS, sous la supervision de CentralPay.

      Cette déclaration permet :

      • D’initier une demande d’entrée en relation pour le compte du marchand
      • De collecter et transmettre les pièces justificatives via l’API Onboarding CentralPay
      • D’assister le marchand dans ses démarches contractuelles, techniques et documentaires

      Le statut de MOBSP ne modifie en rien les restrictions précédemment énoncées. Il ne confère aucun droit supplémentaire sur les fonds ou les opérations de paiement, mais autorise la présentation commerciale et l’accompagnement réglementé du marchand dans sa relation avec CentralPay.

      Déclaration MOBSP (Orias)

      ℹ️ Avant de lire cette page, veuillez consulter la rubrique dédiée à l'entrée en relation pour les partenaires.

      Les partenaires CentralPay basés en France opèrent avec le statut d’intermédiaires en opérations de banque et en service de paiement (IOBSP), plus précisément en tant que Mandataires en Opérations de Banques et Services de Paiement (MOBSP).

      Pour devenir partenaire MOBSP de CentralPay, vous devez vous déclarer à l’ORIAS. CentralPay devra ensuite vous déclarer en tant que son mandataire. Votre partie peut être réalisée en quelques heures, celle de CentralPay prend quelques jours. L’ORIAS peut quant à elle prendre jusqu’à deux mois pour examiner votre demande.

      Bien que ce processus vous incombe, CentralPay peut vous assister en cas de besoin. Contactez notre service client en cas de besoin.

      1. Préparez vos données

      1.1. Obtenez votre attestation de mandat

      Après avoir signé votre contrat de partenariat avec CentralPay :

      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

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

      Certains projets nécessitent un cadre réglementaire spécifique permettant à des mandataires d’agir au nom de CentralPay, établissement agréé par l’ACPR. Deux statuts sont prévus par la réglementation française :

      • Le Distributeur de Monnaie Électronique (DME), pour la gestion de valeur stockée dans des projets de type plateformes C2C, titres prépayés, réseaux fermés, etc
      • L’Agent de Prestataire de Services de Paiement (Agent PSP), pour les projets nécessitant une gestion active des flux de paiement (encaissements, transferts, reversements)

      Ces modèles permettent une grande autonomie du mandataire, mais s’accompagnent de contraintes réglementaires fortes, sous la responsabilité de CentralPay.

      1. Distributeur de Monnaie Électronique (DME)

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

      1.2. Rôle du DME

      Le distributeur agit pour le compte de CentralPay dans la mise à disposition et la gestion de la monnaie électronique.

      Fonctionnalités :

      • Mise en relation de CentralPay avec les utilisateurs finaux (les « sous-marchands »)
      • Transmission à CentralPay des instructions de chargement (montant, bénéficiaire, commission)
      • Visualisation et suivi des opérations via un compte centralisateur dédié
      • Transfert de valeur entre utilisateurs (comptes de monnaie électronique)
      • Remboursement de la monnaie électronique à la demande de l’utilisateur
      • Détention d’un compte de commission pour percevoir les frais définis dans ses CGU

      1.3. Limites fonctionnelles

      • Le DME ne détient jamais les fonds
      • Il n’intervient pas sur les services de paiement régulés (ex : virements SEPA, carte, prélèvements)
      • Il ne peut pas sous-traiter son activité, sauf accord explicite de CentralPay

      1.4. Contraintes réglementaires

      • Signature d’un contrat de distribution avec CentralPay
      • Dépôt d’un dossier de demande d’enregistrement à l’ACPR, sur initiative de CentralPay
      • Mise en conformité organisationnelle : dispositifs internes de sécurité, confidentialité, gestion des incidents, continuité d’activité
      • Supervision permanente par CentralPay, incluant :
        • Contrôle de l’usage de l’API
        • Reporting régulier sur l’activité
        • Formation obligatoire des équipes du DME
        • Validation des CGU utilisées auprès des sous-marchands

      2. Agent de Services de Paiement (Agent PSP)

      2.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 le reversement

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

      Fonctionnalités :

      • Collecte de données KYC/KYB des utilisateurs (niveau 1)
      • Accompagnement à l’ouverture de comptes CentralPay
      • Détention d’un compte de collecte, utilisé pour encaisser les paiements des utilisateurs finaux
      • Gestion des transferts de fonds vers les comptes de paiement CentralPay de chaque bénéficiaire
      • Pilotage des reversements (PAYOUT) vers les comptes bancaires externes
      • Détention d’un compte de commission
      • Éventuellement, utilisation d’un compte de paiement propre pour ses propres encaissements

      2.3. CentralPay reste responsable

      • CentralPay reste pleinement responsable des services fournis à l’utilisateur final
      • L’agent agit dans le strict cadre du mandat qui lui est confié
      • Toute opération réalisée via la plateforme est auditable, traçable et documentée

      2.4. Contraintes réglementaires

      • Signature d’un contrat d’agent
      • Enregistrement officiel sur le registre des agents de l’ACPR (via CentralPay)
      • Évaluation stricte de la capacité organisationnelle du mandataire
      • Exigences renforcées en matière de :
        • Contrôle LCB-FT
        • Protection des données
        • Traçabilité des flux financiers
      • Reporting périodique à CentralPay sur :
        • Le volume d’activité
        • Les incidents
        • Le respect des procédures
      • Possibilité d’audit sur pièce ou sur site
      • Formations obligatoires pour les équipes opérationnelles

      Déclaration Agent PSP (ACPR)

      Rôle de l’ACPR

      L’ACPR (Autorité de Contrôle Prudentiel et de Résolution), organe de la Banque de France, est le seul régulateur compétent pour valider les déclarations d’Agents d’un Établissement de Paiement ou de Monnaie Électronique comme CentralPay. L’ACPR traite uniquement avec les Établissements régulés, sans contact direct possible pour le futur Agent.

      Étapes de déclaration d’un Agent

      ÉtapeDescription
      1. Constitution du dossierRéalisée par CentralPay avec le concours du futur Agent
      2. Réponses aux demandes ACPRPilotées par CentralPay avec l’aide du futur Agent
      3. Décision de l’ACPRCommuniquée à CentralPay

      1. Responsabilités de l’Agent

      CentralPay prend en charge les obligations complexes ou techniques. Toutefois, l’Agent doit garantir un haut niveau de vigilance en matière de LCB-FT (Lutte Contre le Blanchiment de Capitaux et le Financement du Terrorisme).

      L’Agent est notamment responsable de :

      • La compréhension de l’activité de ses sous-marchands
      • La vérification de la réalité économique des opérations
      • La lutte contre la fraude

      L’Agent doit signer :

      • Un Contrat Cadre d’Agent de Paiement avec CentralPay
      • Des Conditions Générales d’Utilisation spécifiques aux vendeurs

      Si l’Agent internalise certaines fonctions critiques (ex. vérification KYC), un Contrat d’Externalisation de Prestations Essentielles doit également être signé.

      2. Devenir Partenaire Agent CentralPay

      Le processus d’enregistrement comme Agent s’étale sur plusieurs mois et suit les étapes suivantes :

      2.1. Résumé des étapes

      ÉtapeDétails
      1. Compréhension du modèle– Explication des services rendus par l’Agent
      – Définition du modèle d’affaires
      – Validation par les services Juridique et Conformité de CentralPay
      2. Offre commerciale– Présentation par CentralPay
      3. Validation– Validation juridique et conformité
      – Accord sur l’offre commerciale et les tarifs
      4. Test & Intégration– Accès à la sandbox
      – Réunion projet avec l’équipe technique – Intégration technique
      5. Instruction ACPR– Collecte des éléments réglementaires
      – Constitution et dépôt du dossier auprès de l’ACPR
      6. Mise en production– Tests en environnement de recette
      – Passage en production

      2.2. Pièces à fournir à CentralPay

      Phase 1 – Pré-constitution du dossier

      • CGU du service de paiement
      • Définition des activités régulées, services associés, modèle d’affaires
      • Organigramme (y compris répartition des effectifs par service)
      • Structure de l’actionnariat
      • Flux prévisionnels sur 3 ans confiés à CentralPay
      • Nombre d’enrôlements prévisionnels sur 3 ans
      • Cas de reprise de KYC existant (migration)
      • Préparation du contrat d’Agent

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

      • Signature du contrat d’Agent
      • CentralPay collecte et dépose les pièces suivantes :
        • Kbis < 3 mois de la société et des sociétés gérantes
        • Statuts à jour signés de la société et des sociétés gérantes
        • Pièce d’identité couleur des dirigeants
        • CV des dirigeants datés et signés
        • Casier judiciaire des dirigeants
        • Déclaration de non-condamnation des dirigeants
        • Répartition de la détention des parts
        • Kbis des personnes morales actionnaires (si applicable)
        • Organigramme du Groupe (si applicable)
        • PV d’AG récents (fusion, perte > 50% du capital, changement direction, etc.)

      Peuvent également être demandés par l’ACPR :

      • Bilans et comptes de résultat récents
      • États financiers en cours ou de l’année précédente
      • Toute pièce jugée utile par le régulateur

      2.3. Délais d’instruction

      • Instruction par CentralPay : ~2 semaines après réception complète des pièces
      • Délai de l’ACPR : jusqu’à 2 mois, avec premières questions sous 30 jours en général

      2.4. Fin d’instruction

      • Dès validation du dossier, l’Agent peut démarrer l’activité avec CentralPay
      • Il est référencé dans les registres publics de l’ACPR avec un numéro d’enregistrement obligatoire dans les CGU et communications officielles

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

      • Obligation de fournir un récapitulatif des minutes téléphoniques par opérateur
      • Transmission du détail de répartition des encaissements à CentralPay
      • Le service Conformité CentralPay s’assure que les marchands sont correctement crédités

      Déclaration Distributeur ME (ACPR)

      Les Établissements émetteurs de monnaie électronique comme CentralPay peuvent mandater des Distributeurs de Monnaie Électronique (DME) afin de collecter des fonds et d’assurer les échanges permettant l’achat et le remboursement de ME dans un réseau de 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

      Tarifs

      Offres commerciales

      CentralPay propose 2 modèles d’offres commerciales :

      • Les offres Starter et Medium, intégrant un forfait mensuel fixe et des frais par transaction simplifiés (ou « blind rate »)
      • Les offres Major, intégrant également un forfait mensuel fixe, mais avec des frais par transaction plus détaillés (ou « interchange++ »)

      Dans ces deux modèles, les offres CentralPay intègrent les frais d’interchange et de réseaux cartes qui sont facturés par les banques. Vous n’avez donc aucun surcoût à prévoir.

      👉 Consultez le tarif des offres CentralPay

      Frais d'interchange et réseaux cartes

      L’interchange correspond à la valeur chargée par l’établissement émetteur d’une carte de paiement (la banque de votre client) à l’établissement acquéreur (la banque du marchand).

      Les frais de réseaux carte (ou « Card Scheme Fees ») correspondent aux frais pris par les réseaux carte (Visa, Mastercard, CB) pour faire fonctionner le service.

      Des termes ont été définis pour désigner l’assemblage de ces frais :

      • Interchange+
        Les frais d’Interchange + les frais des réseaux cartes (card scheme fees)
      • Interchange++
        Les frais d’Interchange + les frais des réseaux cartes (card scheme fees) + les frais de service de l’établissement (CentralPay)

      Toutes les offres commerciales de CentralPay intègrent les frais d’Interchange+ ainsi que nos propres frais de service, vous n’avez donc aucun frais bancaire supplémentaire à prévoir pour réaliser vos transactions. Sauf mention contraire, des frais minimum de perception de 0.15 € sont prélevés sur l’IC++.

      1. Frais d’interchange et réseaux carte (E-commerce)

      Type de carteInterchange Intrarégional (EEE)Interchange Interrégional (hors EEE)
      Carte de débit ou prépayé
      CB, VISA, MASTERCARD
      0,2 %1,15 %
      Carte de crédit ou débit différé
      CB, VISA, MASTERCARD
      0,3 %1,5 %
      Carte professionnelle
      CB
      0,9 %/
      Carte professionnelle
      VISA
      1,45 %2 %
      Carte professionnelle
      MASTERCARD
      1,45 %2 %
      Toutes cartes
      AMERICAN EXPRESS
      AucunAucun
      Réseau carteFrais de réseaux carte Intrarégional (EEE)Frais de réseaux carte Interrégional (hors EEE)
      Réseau CB (Cartes bancaires)0,030 %/
      Réseau VISA0,110 %0,700 %
      Réseau MASTERCARD0,390 %0,950 %
      Réseau AMERICAN EXPRESS1,600 %2,400 %

      2. Frais d’interchange et réseaux carte (paiement de proximité)

      Type de carteInterchange Intrarégional (EEE)Interchange Interrégional (hors EEE)
      Carte de débit ou prépayé
      CB, VISA, MASTERCARD
      0,2 %1,15 %
      Carte de crédit ou débit différé
      CB, VISA, MASTERCARD
      0,3 %1,5 %
      Carte professionnelle
      CB
      0,9 %/
      Carte professionnelle
      VISA
      1,45 %2 %
      Carte professionnelle
      MASTERCARD
      1,45 %2 %
      Toutes cartes
      AMERICAN EXPRESS
      AucunAucun
      Réseau carteFrais de réseaux carte Intrarégional (EEE)Frais de réseaux carte Interrégional (hors EEE)
      Réseau CB (Cartes bancaires)0,030 %/
      Réseau VISA0,110 %0,700 %
      Réseau MASTERCARD0,390 %0,950 %
      Réseau AMERICAN EXPRESS1,600 %2,400 %

      Forfaits d'accompagnement

      Les forfaits d’accompagnement permettent une mise en service rapide, guidée par nos équipes support intégration (SI) et service client (SC). Les heures d’accompagnement vous permettent de déléguer certains paramétrages de votre compte et de solliciter des échanges visio : avec le SI pour les sujets techniques, avec le SC pour ceux d’ordre administratif / fonctionnels.

      1. Accompagnement à l’intégration Smart Collection

      Accompagnement à l’intégration, au choixFrais (HT)
      En 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

      Lexique des paiements

      DésignationDéfinition
      Identifiant de Créancier SEPA (ICS)L’ICS est un numéro de référence unique qui identifie chaque émetteur de prélèvement. En France, il est composé de 13 caractères alphanumériques, dont les 2 premiers représentent le code pays ISO (FR pour la France).

      Disposer d’un ICS est un prérequis obligatoire pour réaliser des prélèvements. Le créancier doit faire la demande d’attribution de l’ICS auprès de sa banque. Le créancier conserve ensuite son ICS, même s’il change de banque ou s’il est multi-bancarisé.
      DébiteurPersonne physique ou morale qui doit une somme d’argent à une autre, appelée créancier, que ce soit dans le cadre de transactions commerciales, de prêts ou d’autres obligations financières.
      CréancierPersonne physique ou morale à qui une somme d’argent est due par une autre, appelée débiteur. Les créanciers (banques, entreprises ou particuliers qui ont prêté de l’argent ou fourni des biens ou services à crédit) ont le droit légal de réclamer le paiement de la dette, généralement formalisé par un contrat ou une autre forme d’accord.
      Émetteur (ou donneur d’ordre)Le payeur, c’est-à-dire la personne physique ou morale qui va émettre les fonds d’une transaction financière.
      BénéficiaireLe destinataire, autrement dit la personne physique ou morale qui va percevoir les fonds d’une transaction financière.
      Autorisation bancairePropre aux transactions par carte. Interrogation de l’acquéreur vers la banque du porteur de carte concernant le montant de la transaction. Suite au « code de retour banque », l’acquéreur est en mesure de savoir si la somme demandée est disponible, et si non pourquoi (fonds insuffisants, carte volée…). Une autorisation valide assure au marchand la possibilité de capturer la somme demandée jusqu’à 7 jours.
      Passerelle de paiement (ou Payment Gateway)Technologie agissant comme intermédiaire entre le site du marchand et le réseau de paiement qui permet d’assurer la transmission sécurisée d’informations liées aux paiements. Les passerelles vérifient également la disponibilité des fonds et autorisent les paiements, tout en offrant des fonctionnalités telles que la gestion des paiements récurrents et la détection de la fraude.
      Prestataire de Services de Paiement (ou PSP)Établissement financier qui fournit des services liés à l’acceptation et au traitement des paiements aux marchands. Ces services incluent également la gestion des comptes de paiements ouverts, la sécurité des transactions ainsi que la conformité réglementaire.
      KYB (Know your Business)Le KYB (Know Your Business) est un protocole d’authentification de l’identité et de la conformité des personnes morales, avant la création de leur compte de paiement. Imposée par le régulateur, cette vérification permet d’évaluer le niveau de risque marchand de ces dernières afin de prévenir toutes activités illégales telles que le blanchiment d’argent, la fraude et le financement du terrorisme (LCB-FT).

      Ce processus inclut la collecte et la vérification de documents tels que les statuts de l’entreprise, les informations sur les propriétaires et les dirigeants, les justificatifs d’adresse et les informations financières.
      KYC (Know your Customer)Le KYC (Know Your Customer) est un protocole d’authentification de l’identité et de la conformité des personnes physiques, avant la création de leur compte de paiement. Imposée par le régulateur, cette vérification permet d’évaluer le niveau de risque marchand de ces dernières afin de prévenir toutes activités illégales telles que le blanchiment d’argent, la fraude et le financement du terrorisme (LCB-FT).

      Ce processus inclut la collecte et la vérification de documents tels que les pièces d’identité, les preuves de domicile et les informations sur les activités professionnelles.
      Rapprochement d’un virementProcessus de vérification et de correspondance des factures émises enregistrées dans le compte de l’entreprise avec les paiements reçus. Ce traitement permet de s’assurer que toutes les transactions prévues ont bien été exécutées, de détecter toute anomalie ou erreur et de maintenir l’exactitude des enregistrements financiers de l’entreprise.
      Frais d’interchangeFrais payés par la banque du marchand (banque acquéreur) à la banque de l’acheteur (banque émettrice) lors d’une transaction par carte, afin de couvrir les coûts et les risques associés à la gestion des paiements. Ils varient en fonction de plusieurs facteurs, tels que le type de carte utilisée, le type de transaction et le pays dans lequel la transaction est effectuée.
      Frais de réseaux carteFrais facturés par les réseaux de cartes (CB, Visa, Mastercard…) aux banques et PSP qui traitent des paiements par carte. Ces frais couvrent les coûts liés à l’utilisation du réseau de paiement, notamment l’infrastructure technologique, la sécurité des transactions et le traitement des paiements.
      Interchange++Somme des commissions prélevées sur les opérations de paiement en ligne du marchand. Il est composé de :
      – Frais d’Interchange
      – Frais de réseaux de carte
      – Frais de services, facturés par le PSP qui assure le fonctionnement de la plateforme de paiement et des services associés

      Ce calcul permet de déterminer le coût de revient exact de chacune des transactions.
      Open BankingEncouragé par la DSP2, l’Open Banking est une pratique financière permettant aux banques de partager de manière sécurisée les données financières de leurs clients avec des tiers autorisés, tels que des fintechs, à travers des API (interfaces de programmation applicative). Ce système bancaire ouvert vise à stimuler l’innovation et la concurrence dans le secteur financier, en permettant le développement de nouvelles applications et services qui peuvent offrir des expériences client améliorées, une gestion financière plus efficace et des offres personnalisées.
      Exemple : Initiation de paiement
      Impayé carte (ou chargeback / contestation / litige)Processus par lequel un titulaire de carte signale une transaction suspecte ou non autorisée à l’émetteur, en vue d’un remboursement ou d’une rétrofacturation. Les motifs de contestation peuvent inclure des transactions frauduleuses, des erreurs de facturation, des biens ou des services non reçus ou d’autres problèmes liés à l’utilisation de la carte.
      Rejet de prélèvement SEPAUn rejet de prélèvement se produit lorsqu’une demande de prélèvement est refusée par la banque du débiteur. Les raisons d’un rejet peuvent inclure des fonds insuffisants sur le compte du débiteur, des informations bancaires incorrectes, un mandat de prélèvement expiré ou non valide, ou une opposition au prélèvement de la part du débiteur.

      Lorsqu’un prélèvement est rejeté, les fonds ne sont pas transférés, et le créancier est informé du rejet pour qu’il puisse prendre les mesures appropriées.
      RIB (Relevé d’Identité Bancaire)Document fourni par une banque qui contient les informations nécessaires à l’identification d’un compte bancaire, afin de faciliter les opérations de virement ou de prélèvement. Le RIB inclut le numéro de compte, le code banque, le code guichet, l’IBAN (International Bank Account Number) ainsi que le BIC (Bank Identifier Code) de la banque.
      EEE (Espace Économique Européen)Zone économique composée des 27 pays membres de l’Union Européenne (UE) ainsi que de la Norvège, l’Islande et le Liechtenstein. L’EEE permet aux États membres de participer au marché unique de l’UE, offrant la libre circulation des biens, des services, des capitaux et des personnes.

      Informations générales

      1. Les deux modes d’intégration de Smart Collection

      La solution Smart Collection permet d’encaisser des paiements depuis divers moyens de paiement.

      Vous pouvez au choix :

      • Créer et intégrer vos propres parcours de paiement (intégration CUSTOM), en consommant les services API de chaque moyen de paiement :
        • Transaction par carte ➝
        • Transaction par virement ➝
        • Transaction par prélèvement SEPA ➝

      • Utiliser nos parcours de demande de paiement sécurisés (intégration SMART), grâce à notre service dédié :
        • Demandes de paiement (PaymentRequest) ➝
        • Le paramètre EscrowDate peut influer sur la date de disponibilité des fonds d’une transaction (concerne uniquement les partenaires AGENT)
      ℹ️ Si vous choisissez l'intégration SMART, certaines fonctionnalités spécifiques comme les R-transactions, la gestion des libellés bancaires, la gestion des IBAN Virtuels… sont présentées dans la documentation dans les rubriques CUSTOM dédiées à chaque moyen de paiement.

      2. À propos de l’intégration SMART

      La demande de paiement permet de générer un lien de paiement menant à une page de paiement hébergée par CentralPay. Votre client peut ainsi vous régler selon les conditions de règlement que vous avez déterminé (moyens et modes de paiement autorisés, délais de règlement, 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

      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_68cacb12219b2 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Refund.yaml", dom_id: "#wp-swagger-ui-container-live_68cacb12219b2", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_68cacb12219b2.load(); });

      E-money

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

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

      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 création de comptes de paiement ou de monnaie électronique (enrôlements, wallet, etc.)Réservée aux marchands 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.

      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.

      Cas d'usages

      Articles

      • Marketplace C2C

      Marketplace C2C

      Prochainement

      Payment Request >

      See more about Payment Requests

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

      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 compte Marchand CentralPay. Les marchands Mandataires peuvent également consulter le détail des comptes de leurs sous-marchands.

      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 reversement (« payout »)
      • De générer des exports et de télécharger les rapports financiers mensuels
      • Pour les comptes « Mandataires » uniquement :
        • De créer et de consulter les demandes d’onboarding (« merchant-enrollment »)
        • De consulter les opérations et de paramétrer les comptes de leurs sous-marchands
      ℹ️ Les comptes ayant des droits "Basic" (sous-marchands de mandataires) peuvent uniquement consulter les opérations dont ils sont bénéficiaires ("transfer") et gérer leurs paramètres de reversement ("payout").

      2. Les profils utilisateurs du Portail

      Ils représentent des personnes physiques pouvant accéder à un ou plusieurs comptes CentralPay ainsi qu’à tout ou partie des services du Portail Marchand.

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

      Lors de la création du compte Marchand CentralPay, le responsable ayant réalisé l’onboarding (dirigeant ou personne physique disposant d’une délégation de pouvoir) se voit attribuer un profil utilisateur dit « Legal ». Il dispose ainsi de tous les droits administrateur du compte, mais également de droits légaux permettant de paramétrer les éléments les plus sensibles du compte :

      • Paramètres du compte de paiement :
        • Changement d’IBAN de sortie (payout)
        • Changement des conditions de reversements sur compte bancaire
        • Mise à jour des documents de société
      • Paramètres des utilisateurs :
        • Création de nouveaux utilisateurs « Legal »
        • Prochainement

      Une fois le compte créé, vous avez la possibilité de créer autant de profils utilisateurs que nécessaire en renseignant leur nom, leur prénom, leur email et leur rôle utilisateur (définissant les droits qu’ils auront sur le compte). Les profils ainsi créés sont nommés « Natural ».

      ℹ️ Si vous disposez de plusieurs comptes CentralPay et que vos équipes doivent avoir accès à ces différents comptes, créez leur profil utilisateur depuis l’un d’entre eux, puis demander à CentralPay d’affecter leur profil à vos autres comptes. Ils bénéficieront ainsi d’un unique centralisé pour tous ces comptes.

      Accès :

      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

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

      SCT Transaction

      Articles

      • SCT Transaction
      • SCT Transaction Reversal
      • Bank Reconciliation
      • Bank Reconciliation external

      SCT Transaction

      See more about SCT Transaction

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

      SCT Transaction Reversal

      See more about SCT Transaction Reversal

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

      Bank Reconciliation

      See more about Bank Reconciliation

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

      Bank Reconciliation external

      See more about Bank Reconciliation

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

      Misc

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

      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 compte 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]

      Retours, statuts et hooks

      1. Statuts liés aux demandes de paiement

      Consultez les Statuts Payment Request ➝

      2. Webhooks liés aux demandes de paiement

      Les demandes de paiement permettant indirectement la création de transactions cartes, SCT et SDD mais aussi d’autres objets comme les Customer, Subscription ou Installment, selon les cas d’usages, il peut être utile de suivre les webhooks associés.

      Consultez les Webhooks PaymentRequest ➝

      Consultez les Webhooks Transaction ➝

      Consultez les Webhooks SCT Transaction ➝

      Consultez les Webhooks SDD Transaction ➝

      Consultez les Webhooks Customer ➝

      Consultez les Webhooks Subscription ➝

      Consultez les Webhooks Installment ➝

      SDD Transaction

      Articles

      • Mandate
      • SDD Transaction
      • SDD Transaction Reversal

      Mandate

      See more about Mandate

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

      SDD Transaction

      See more about SDD Transaction

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

      SDD Transaction Reversal

      See more about SDD Transaction Reversal

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

      SCT Transaction

      See more about SCT Transaction

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

      Portail d'inscription

      Le portail d’inscription permet la création d’un Compte Marchand CentralPay et d’un compte de paiement : de la création du profil utilisateur, jusqu’à la contractualisation, en passant par la collecte du KYC/KYB. Il interagit avec l’API Onboarding de CentralPay.

      Pour les marchands Mandataires, il permet donc de créer des sous-marchands facilement depuis un portail hébergé par CentralPay, et d’ainsi éviter une intégration complète de l’API Onboarding.

      Pour adresser un lien d’onboarding à l’un de vos futurs sous-marchands, vous pouvez utiliser le service de création de compte de paiement.

      Accès :

      Recette Portail d’Inscription
      Production Portail d’Inscription

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

      Subscription

      Articles

      • Subscription Model
      • Subscription
      • Invoice & invoiceItem

      Subscription Model

      See more about Subscription Model

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

      Subscription

      See more about Subscription

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

      Invoice & invoiceItem

      See more about Invoice & invoiceItem

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

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

      SCT Transaction Reversal

      See more about SCT Transaction Reversal

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

      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 (acronyme « ECP ») dans le cadre d’une activité de vente de biens ou de services.

      1. Description du modèle

      Ce modèle vous donne accès à l’ensemble des services de Smart Collection, la solution d’encaissement complète proposée par CentralPay.

      🔗 Plus d’informations sur Smart Collection

      Les fonctionnalités incluses sont les suivantes :

      • Le compte Marchand CentralPay
        Un compte de paiement dédié à votre activité, avec IBAN individuel, suivi des opérations et reversements.
      • 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 reversements.
      • 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

      Le modèle Marchand donne lieu à deux types de frais :

      2.1. Forfait plateforme

      Un forfait mensuel fixe est appliqué pour l’accès à la plateforme et aux services associés.

      • Ce forfait peut être :
        • Prélevé automatiquement par SEPA mensuel
        • Facturé annuellement par virement SEPA
        • Déduit du solde de votre compte de paiement CentralPay selon les modalités prévues dans votre contrat

      2.2. Frais de service

      Des commissions variables sont appliquées en fonction des opérations réalisées (transactions, reversements, rejets, etc.).

      • Les frais sont débités :
        • Soit directement de votre compte de paiement principal
        • Soit depuis un compte de commission dédié, si celui-ci est activé

      En cas de solde insuffisant, CentralPay pourra procéder à un prélèvement SEPA ou vous adresser une demande de virement complémentaire.

      Formulaire de paiement CUSTOM

      Le service API Transaction permet d’effectuer une autorisation suivie d’une capture des fonds sur la carte bancaire de votre client. Tous les modes de paiement par carte (paiement simple, récurrents, MoTo, etc.) sont gérés via ce service.

      Lorsqu’un client souhaite effectuer un premier paiement, ses données de carte doivent être collectées pour générer un cardTokenId, grâce au service de tokenisation « token.js » de CentralPay. Ce token temporaire permet ensuite de créer une ressource Card, identifiée par un cardId, pouvant être enregistrée dans un objet Customer. Ce rattachement est indispensable pour permettre des paiements ultérieurs sans redemander la carte (paiement en 1 clic, récurrents, etc.).

      ℹ️ Avec un formulaire de paiement personnalisé (CUSTOM FORM), l'intégration de l'authentification 3DS 2.2 est obligatoire avant d'exécuter une transaction.

      Schéma du flux de paiement avec cardTokenId :

      ℹ️ Si vous disposez d'une certification PCI-DSS de niveau 1 et que vous gérez les données de carte, vous pouvez directement créer un objet /card en envoyant les données (PAN, date d'expiration, CVC) à l'API, sans passer par token.js.

      1. Prérequis

      1.1. Déclarer vos domaines

      Avant d’utiliser le token.js, vous devez déclarer les domaines hébergeant vos formulaires Custom dans votre Portail Marchand. Allez dans Administration Mon compte 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 compte 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.

      Transfer >

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

      Bank Reconciliation

      See more about Bank Reconciliation

      jQuery(document).ready( function($) { window.live_68cacb122c9e6 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Reconciliation wireTransfer.yaml", dom_id: "#wp-swagger-ui-container-live_68cacb122c9e6", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_68cacb122c9e6.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 ➝

      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 l’Intégrateur. Ces deux modèles permettent de connecter plusieurs marchands à la plateforme CentralPay, selon des modalités d’encadrement différentes.

      Ils peuvent chacun, s’ils le souhaitent, être déclarés MOBSP (Mandataires d’Opérations de Banque et de Services de Paiement) auprès de l’ORIAS, pour accompagner les marchands durant leur entrée en relation avec CentralPay.

      1. Marchand Intégrateur

      L’Intégrateur est un acteur 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 compte Marchand CentralPay, et signe directement un contrat 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 fournis par chaque marchand standard, dans le cadre d’un mandat contractuel
      • Il peut déclencher des opérations techniques (paiements, notifications…), mais uniquement via les accès API délégués par le marchand, dans le cadre du contrat unissant ce dernier à CentralPay. Il n’intervient jamais en son nom propre
      • Les opérations sont réalisées en 1 pour 1 : un client (payeur) règle un seul marchand

      1.2. Facturation

      • Chaque marchand est facturé directement par CentralPay
      • L’Intégrateur n’intervient à aucun moment dans les flux financiers

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

      • L’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 compte Marchand CentralPay : encaissements, reversements, solde, paramétrage des accès API, gestion documentaire et contractuelle
      • L’intégrateur accède à un espace CentralPay lui permettant de consulter une vue consolidée des opérations réalisées via les accès API qui lui sont délégués. Il peut également consulter la documentation technique, utiliser les environnements de test, et suivre les évolutions d’API. Cet accès ne permet pas d’exécuter de paiements
      • Pour permettre la connexion, le marchand crée un accès API dédié à l’intégrateur, avec des droits strictement limités et révocables à tout moment. Toutes les opérations techniques sont réalisées via cet accès, sous le contrôle du marchand
      • Si l’intégrateur est déclaré Mandataire d’Opérations de Banque et de Services de Paiement (MOBSP) auprès de l’Orias, il peut :
        • initier une demande d’enrôlement pour le compte d’un marchand
        • guider ce dernier dans la constitution de son dossier
        • et transmettre un lien d’enrôlement personnalisé CentralPay
      • Le statut MOBSP ne permet ni l’exécution d’opérations ni l’accès aux fonds, mais encadre juridiquement l’accompagnement du marchand dans son entrée en relation
      • Si l’intégrateur n’est pas déclaré MOBSP, c’est au marchand de contacter directement CentralPay pour initier sa demande d’ouverture de compte, en précisant l’identité de l’intégrateur avec lequel il collabore afin de permettre son rattachement technique

      2. Marchand 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 dont il est le titulaire.

      Les opérations sont ensuite traitées par CentralPay depuis un compte de traitement, également détenu par CentralPay. Cela permet au Partenaire Technique d’avoir une visibilité sur les flux, sans jamais en détenir la maîtrise ni les initier.

      2.1. Responsabilités et fonctionnement

      • Le Partenaire Technique dispose de ses propres accès API, délivrés par CentralPay
      • Il peut consulter les transactions réalisées pour les marchands liés à ses points de vente
      • Il n’initie aucun paiement et ne peut accéder aux soldes ou effectuer de reversements. Toutes les opérations sont exécutées exclusivement par CentralPay
      • Dans ce cadre, CentralPay peut gérer des paiements en mode 1 pour X : un client (payeur) peut régler plusieurs marchands simultanément

      2.2. Facturation

      • Le Partenaire Technique est facturé par CentralPay, en fonction des opérations réalisées via son point de vente
      • Les commissions qu’il perçoit sont prélevées par CentralPay sur les comptes de paiement des marchands standards, puis créditées sur son compte de commission

      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 au préalable directement avec CentralPay et détient son propre compte Marchand CentralPay. Il signe les Conditions Générales de Compte de Paiement et est soumis aux mêmes obligations réglementaires que tout utilisateur professionnel
      • Le Partenaire Technique transmet à CentralPay les données commerciales des transactions (montant, référence, commission…) recueillies sur sa plateforme. CentralPay analyse ces informations, puis instruit et exécute l’opération pour le compte du marchand concerné
      • Les paiements sont crédités sur le compte Marchand CentralPay du ou des marchands standards associés. Si une commission est prévue, CentralPay la prélève automatiquement et la reverse sur le compte de commission du partenaire technique, selon les données commerciales transmises et les conditions fixées dans ses CGU
      • Le partenaire technique ne détient jamais de fonds de tiers, ne donne aucune instruction de paiement, et ne peut intervenir dans les reversements ou la tenue de compte. Il n’agit ni pour compte de tiers ni au nom de CentralPay
      • L’accès au compte de traitement de CentralPay mis à disposition du partenaire technique est à usage purement informatif : il permet de visualiser les transactions, mais n’offre aucun droit d’exécution ou d’accès aux soldes
      • En cas d’enregistrement MOBSP, le partenaire technique peut accompagner ses marchands dans leur entrée en relation (enrôlement via API, transmission du lien d’inscription, assistance documentaire), sous réserve de validation préalable par CentralPay
      • Si le partenaire n’est pas MOBSP, chaque marchand doit initier lui-même sa demande de création de compte Marchand CentralPay ou de rattachement au partenaire technique, afin d’activer les bons droits techniques

      3. Règles de conformité communes

      Pour les deux modèles :

      • Le Partenaire ne détient aucun fonds de tiers et n’agit jamais en son nom propre pour l’exécution de services de paiement
      • Les comptes bancaires, les reversements et la détention de fonds de tiers sont strictement encadrés par CentralPay
      • Aucune délégation réglementaire d’exécution de service de paiement n’est accordée à ces acteurs

      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 compte Marchand CentralPay, lors d’un parcours d’enrôlement individualisé
      • Signent électroniquement les Conditions Générales de Compte de Paiement CentralPay, qui mentionnent explicitement leur rattachement au partenaire concerné
      • Reconnaissent que le partenaire pourra initier certaines actions techniques via son intégration CentralPay (ex. : transmission d’une commande, envoi d’une demande de paiement, remontée d’un panier, etc.)

      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, 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, ses droits d’accès API et les conditions de reversement de commissions le cas échéant
      • Les marchands associés signent les CGU CentralPay, dans lesquelles est précisée leur association au partenaire
      • 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 à nos conditions réglementaires

      4. Déclaration MOBSP (Mandataire d’Opérations de Banque et Services de Paiement)

      Un Intégrateur ou un Partenaire Technique peut, s’il le souhaite, être déclaré en tant que MOBSP auprès de l’ORIAS, sous la supervision de CentralPay.

      Cette déclaration permet :

      • D’initier une demande d’entrée en relation pour le compte du marchand
      • De collecter et transmettre les pièces justificatives via l’API Onboarding CentralPay
      • D’assister le marchand dans ses démarches contractuelles, techniques et documentaires

      Le statut de MOBSP ne modifie en rien les restrictions précédemment énoncées. Il ne confère aucun droit supplémentaire sur les fonds ou les opérations de paiement, mais autorise la présentation commerciale et l’accompagnement réglementé du marchand dans sa relation avec CentralPay.

      Articles

      • Déclaration MOBSP (Orias)

      Déclaration MOBSP (Orias)

      ℹ️ Avant de lire cette page, veuillez consulter la rubrique dédiée à l'entrée en relation pour les partenaires.

      Les partenaires CentralPay basés en France opèrent avec le statut d’intermédiaires en opérations de banque et en service de paiement (IOBSP), plus précisément en tant que Mandataires en Opérations de Banques et Services de Paiement (MOBSP).

      Pour devenir partenaire MOBSP de CentralPay, vous devez vous déclarer à l’ORIAS. CentralPay devra ensuite vous déclarer en tant que son mandataire. Votre partie peut être réalisée en quelques heures, celle de CentralPay prend quelques jours. L’ORIAS peut quant à elle prendre jusqu’à deux mois pour examiner votre demande.

      Bien que ce processus vous incombe, CentralPay peut vous assister en cas de besoin. Contactez notre service client en cas de besoin.

      1. Préparez vos données

      1.1. Obtenez votre attestation de mandat

      Après avoir signé votre contrat de partenariat avec CentralPay :

      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.

      TransferReversal >

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

      Bank Reconciliation external

      See more about Bank Reconciliation

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

      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

      Wallet >

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

      Mandate

      See more about Mandate

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

      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.

      Blacklist >

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

      SDD Transaction

      See more about SDD Transaction

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

      Transaction carte via wallet

      1. Apple Pay (Custom Form)

      1.1. Via token Apple Pay déchiffré

      CentralPay permet le traitement des paiements par carte effectués via Apple Pay, dans le cadre d’une intégration Custom (hors Smart Form).

      ℹ️ CentralPay ne prend actuellement en charge que les tokens Apple Pay déchiffrés. 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.

      Prérequis

      1. Créer un compte Apple Developer :

      • Inscrivez-vous au programme Apple Developer
      • Créez vos identifiants de marchand Apple Pay (Merchant ID)
      • Générez votre certificat de traitement Apple Pay via le portail Apple
      • Déclarez votre domaine (Apple Pay Merchant Domain)

      2. Intégration côté device :

      • Implémentez Apple Pay côté frontend via Apple Pay JS (pour les sites web) ou PassKit (pour les apps iOS)
      • Collectez le token Apple Pay (ApplePayToken) après validation du paiement par l’utilisateur (Face ID, Touch ID…)

      Étape 1 : Déchiffrement du token Apple Pay

      Le déchiffrement du token Apple Pay doit être effectué sur votre backend, à l’aide de :

      • Votre certificat de traitement Apple Pay
      • Votre clé privée
      • La documentation Apple : Payment Token Format

      Le résultat contiendra :

      {
        "applicationPrimaryAccountNumber": "5454********2664",
        "applicationExpirationDate": "YYMMDD",
        "paymentData": {
          "cryptogram": "base64-cryptogram",
          "eciIndicator": "05"
        }
      }

      Étape 2 : Création du cardToken CentralPay

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

      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

      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 Apple Pay (merchantPublicKey) est également spécifique à l’environnement

      2.2. Via token ApplePay chiffré

      ℹ️ Au 18/04/2025, cette méthode n’est pas encore disponible chez CentralPay.
      Si cette méthode d’intégration vous intéresse, veuillez contacter le support CentralPay afin de connaître les livrables associés et les modalités d’accès.

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

      Lors de votre appel API, en plus des champs obligatoires, il faudra utiliser le champ « applePayToken«  au format JSON comprenant votre token Apple Pay qui incluent les éléments paymentData, paymentMethod et transactionIdentifier.
      Vous pourrez ensuite effectuer une transaction à l’aide de votre cardToken normalement.

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

      Lors de votre appel API, en plus des champs obligatoires, il faudra utiliser le champ « applePayToken » au format JSON comprenant votre token Apple Pay qui inclus les éléments paymentData, paymentMethod et transactionIdentifier.

      2. Google Pay (Custom Form)

      2.1. Via token Google Pay déchiffré

      Pour pouvoir accepter les paiements Google Pay via CentralPay, vous devez configurer correctement votre compte marchand Google et gérer les clés de chiffrement nécessaires au déchiffrement des tokens.

      ℹ️ Cette méthode implique une responsabilité PCI-DSS importante de votre part. Renseignez-vous et assurez-vous d'être en conformité avant de développer ce mode d'intégration.

      Prérequis

      1. Créer un compte Google Pay Business :

      • Accédez au Google Pay Business Console
      • Créez un Merchant Profile ou connectez-en un existant
      • Renseignez vos coordonnées de société et d’activité

      2. Enregistrer votre domaine :

      • Dans la console Google Pay, allez dans l’onglet « Domains« 
      • Ajoutez votre domaine de production et de test (ex : example.com)
      • Google vous demandera d’y héberger un fichier de vérification pour valider votre propriété

      3. Générer votre paire de clés de chiffrement :

      Google Pay chiffre les tokens envoyés à votre site en utilisant une clé publique que vous fournissez.

      • Générez votre paire de clés (exemple avec OpenSSL)
      # Générer la clé privée
      openssl ecparam -name prime256v1 -genkey -noout -out private-key.pem
      
      # Extraire la clé publique
      openssl ec -in private-key.pem -pubout -out public-key.pem
      • Convertissez la clé publique au format Google (base64 sans en-tête PEM)
      # Supprimer les lignes "-----BEGIN..." et "-----END..."
      # et ne garder que le bloc de contenu base64

      4. Enregistrer votre clé publique dans Google Pay

      • Dans la console Google Pay, allez dans “Payment Processing”
      • Ajoutez un nouvel encrypting key
      • Donnez-lui un nom, collez votre clé publique au format Base64, et sélectionnez le type : ECv2
      • Cette clé sera utilisée pour chiffrer tous les tokens envoyés à votre site

      Étape 1 : Déchiffrement du token Google Pay

      Une fois Google Pay intégré côté frontend (Google Pay JS ou Android), vous recevrez un token chiffré via :

      paymentData.tokenizationData.token

      Ce champ contient un JSON chiffré (pas un JWT), que vous devez déchiffrer sur votre backend à l’aide de la clé privée correspondant à la clé publique enregistrée chez Google.

      Google propose une bibliothèque de déchiffrement officielle en Java, mais des portages existent en Node.js, PHP, Python, etc.

      Consultez la documentation officielle (Payment Data Cryptography) ➝

      Une fois déchiffré, vous obtiendrez une structure similaire à :

      {
        "pan": "4111111111111111",
        "expirationMonth": "12",
        "expirationYear": "2030",
        "cryptogram": "AgAAAAAAAIR8CQrXcIhbQAAAAAA=",
        "eciIndicator": "05"
      }

      Ce sont ces données que vous devrez envoyer à CentralPay pour créer un cardToken.

      Étape 2 : Création du cardToken via l’API CentralPay

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

      ChampDescription
      card[number]PAN de la carte extrait du token Google 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 Google Pay (CAVV)
      eciIndicatorIndice d’authentification issu du token Google Pay (eci)
      googlePayMessageIdID de la transaction Google 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=
      googlePayTransactionId=ABCD-EFGH-1234
      amount=2500
      currency=EUR
      merchantPublicKey=abcdef123456...

      Le cardToken généré contient toutes les données nécessaires à l’authentification Google Pay.

      Étape 3 : Création de la transaction CentralPay

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

      Champs requis :

      cardToken=...
      amount=2500
      currency=EUR
      pointOfSaleId=...
      endUserIp=...
      merchantTransactionId=...

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

      Étape 4 : Testing avant mise en production

      L’environnement de test CentralPay permet de valider l’ensemble de votre intégration 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 Apple Pay (merchantPublicKey) est également spécifique à l’environnement

      2.2. Via token Google Pay chiffré

      CentralPay permet l’intégration directe de Google Pay via le mode “gateway” (passerelle de paiement), sans nécessiter de déchiffrement du token côté serveur. Dans ce mode, CentralPay est désigné comme prestataire (gateway) auprès de Google Pay, et gère la validation du token pour vous.

      Prérequis

      1. Créer un compte Google Pay Business :

      • Accédez au Google Pay Business Console
      • Créez un Merchant Profile ou connectez-en un existant.
      • Renseignez vos coordonnées de société et d’activité.

      2. Enregistrer votre domaine :

      • Dans la console Google Pay, allez dans l’onglet « Domains »
      • Ajoutez votre domaine de production et de test (ex : example.com)
      • Google vous demandera d’y héberger un fichier de vérification pour valider votre propriété

      3. Réaliser votre intégration frontend Google Pay :

      • Implémentez Google Pay côté frontend via Google Pay JS (pour les sites web) ou Google Pay API Android (pour les applications mobiles)
      • Collectez le token Google Pay (tokenizationData.token) après validation du paiement par l’utilisateur (code PIN, empreinte digitale, reconnaissance faciale…).
      ℹ️ Google propose un tutoriel officiel pour cette intégration : Google Pay API | Google for Developers

      4. Récupérez vos identifiants CentralPay :

      • MerchantPublicKey : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Merchant Public Key
      • Login API : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Identifiant API et copiez l’identifiant
      • Pass API : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Cliquez sur votre Identifiant API → Modifier → Générer , copiez votre pass API et mettez à jour

      Étape 1: Configuration de Google Pay côté frontend

      1. Définir la version de l’API :

      const baseRequest = {
        apiVersion: 2,
        apiVersionMinor: 0
      };

      2. Utiliser CentralPay comme passerelle de paiement :

      Configurez la tokenisation comme suit :

      const tokenizationSpecification = {
        type: 'PAYMENT_GATEWAY',
        parameters: {
          gateway: 'centralpay',
          gatewayMerchantId: 'YOUR_GATEWAY_MERCHANT_ID'
        }
      };

      Remplacez YOUR_GATEWAY_MERCHANT_ID par votre MerchantPublicKey fourni par CentralPay.

      3. Environnement de test ou production :

      // Environnement de 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 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 Apple Pay (merchantPublicKey) est également spécifique à l’environnement

      WhiteList >

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

      SDD Transaction Reversal

      See more about SDD Transaction Reversal

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

      Marchand Mandataire

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

      Certains projets nécessitent un cadre réglementaire spécifique permettant à des mandataires d’agir au nom de CentralPay, établissement agréé par l’ACPR. Deux statuts sont prévus par la réglementation française :

      • Le Distributeur de Monnaie Électronique (DME), pour la gestion de valeur stockée dans des projets de type plateformes C2C, titres prépayés, réseaux fermés, etc
      • L’Agent de Prestataire de Services de Paiement (Agent PSP), pour les projets nécessitant une gestion active des flux de paiement (encaissements, transferts, reversements)

      Ces modèles permettent une grande autonomie du mandataire, mais s’accompagnent de contraintes réglementaires fortes, sous la responsabilité de CentralPay.

      1. Distributeur de Monnaie Électronique (DME)

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

      1.2. Rôle du DME

      Le distributeur agit pour le compte de CentralPay dans la mise à disposition et la gestion de la monnaie électronique.

      Fonctionnalités :

      • Mise en relation de CentralPay avec les utilisateurs finaux (les « sous-marchands »)
      • Transmission à CentralPay des instructions de chargement (montant, bénéficiaire, commission)
      • Visualisation et suivi des opérations via un compte centralisateur dédié
      • Transfert de valeur entre utilisateurs (comptes de monnaie électronique)
      • Remboursement de la monnaie électronique à la demande de l’utilisateur
      • Détention d’un compte de commission pour percevoir les frais définis dans ses CGU

      1.3. Limites fonctionnelles

      • Le DME ne détient jamais les fonds
      • Il n’intervient pas sur les services de paiement régulés (ex : virements SEPA, carte, prélèvements)
      • Il ne peut pas sous-traiter son activité, sauf accord explicite de CentralPay

      1.4. Contraintes réglementaires

      • Signature d’un contrat de distribution avec CentralPay
      • Dépôt d’un dossier de demande d’enregistrement à l’ACPR, sur initiative de CentralPay
      • Mise en conformité organisationnelle : dispositifs internes de sécurité, confidentialité, gestion des incidents, continuité d’activité
      • Supervision permanente par CentralPay, incluant :
        • Contrôle de l’usage de l’API
        • Reporting régulier sur l’activité
        • Formation obligatoire des équipes du DME
        • Validation des CGU utilisées auprès des sous-marchands

      2. Agent de Services de Paiement (Agent PSP)

      2.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 le reversement

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

      Fonctionnalités :

      • Collecte de données KYC/KYB des utilisateurs (niveau 1)
      • Accompagnement à l’ouverture de comptes CentralPay
      • Détention d’un compte de collecte, utilisé pour encaisser les paiements des utilisateurs finaux
      • Gestion des transferts de fonds vers les comptes de paiement CentralPay de chaque bénéficiaire
      • Pilotage des reversements (PAYOUT) vers les comptes bancaires externes
      • Détention d’un compte de commission
      • Éventuellement, utilisation d’un compte de paiement propre pour ses propres encaissements

      2.3. CentralPay reste responsable

      • CentralPay reste pleinement responsable des services fournis à l’utilisateur final
      • L’agent agit dans le strict cadre du mandat qui lui est confié
      • Toute opération réalisée via la plateforme est auditable, traçable et documentée

      2.4. Contraintes réglementaires

      • Signature d’un contrat d’agent
      • Enregistrement officiel sur le registre des agents de l’ACPR (via CentralPay)
      • Évaluation stricte de la capacité organisationnelle du mandataire
      • Exigences renforcées en matière de :
        • Contrôle LCB-FT
        • Protection des données
        • Traçabilité des flux financiers
      • Reporting périodique à CentralPay sur :
        • Le volume d’activité
        • Les incidents
        • Le respect des procédures
      • Possibilité d’audit sur pièce ou sur site
      • Formations obligatoires pour les équipes opérationnelles

      Articles

      • Déclaration Agent PSP (ACPR)
      • Déclaration Distributeur ME (ACPR)

      Déclaration Agent PSP (ACPR)

      Rôle de l’ACPR

      L’ACPR (Autorité de Contrôle Prudentiel et de Résolution), organe de la Banque de France, est le seul régulateur compétent pour valider les déclarations d’Agents d’un Établissement de Paiement ou de Monnaie Électronique comme CentralPay. L’ACPR traite uniquement avec les Établissements régulés, sans contact direct possible pour le futur Agent.

      Étapes de déclaration d’un Agent

      ÉtapeDescription
      1. Constitution du dossierRéalisée par CentralPay avec le concours du futur Agent
      2. Réponses aux demandes ACPRPilotées par CentralPay avec l’aide du futur Agent
      3. Décision de l’ACPRCommuniquée à CentralPay

      1. Responsabilités de l’Agent

      CentralPay prend en charge les obligations complexes ou techniques. Toutefois, l’Agent doit garantir un haut niveau de vigilance en matière de LCB-FT (Lutte Contre le Blanchiment de Capitaux et le Financement du Terrorisme).

      L’Agent est notamment responsable de :

      • La compréhension de l’activité de ses sous-marchands
      • La vérification de la réalité économique des opérations
      • La lutte contre la fraude

      L’Agent doit signer :

      • Un Contrat Cadre d’Agent de Paiement avec CentralPay
      • Des Conditions Générales d’Utilisation spécifiques aux vendeurs

      Si l’Agent internalise certaines fonctions critiques (ex. vérification KYC), un Contrat d’Externalisation de Prestations Essentielles doit également être signé.

      2. Devenir Partenaire Agent CentralPay

      Le processus d’enregistrement comme Agent s’étale sur plusieurs mois et suit les étapes suivantes :

      2.1. Résumé des étapes

      ÉtapeDétails
      1. Compréhension du modèle– Explication des services rendus par l’Agent
      – Définition du modèle d’affaires
      – Validation par les services Juridique et Conformité de CentralPay
      2. Offre commerciale– Présentation par CentralPay
      3. Validation– Validation juridique et conformité
      – Accord sur l’offre commerciale et les tarifs
      4. Test & Intégration– Accès à la sandbox
      – Réunion projet avec l’équipe technique – Intégration technique
      5. Instruction ACPR– Collecte des éléments réglementaires
      – Constitution et dépôt du dossier auprès de l’ACPR
      6. Mise en production– Tests en environnement de recette
      – Passage en production

      2.2. Pièces à fournir à CentralPay

      Phase 1 – Pré-constitution du dossier

      • CGU du service de paiement
      • Définition des activités régulées, services associés, modèle d’affaires
      • Organigramme (y compris répartition des effectifs par service)
      • Structure de l’actionnariat
      • Flux prévisionnels sur 3 ans confiés à CentralPay
      • Nombre d’enrôlements prévisionnels sur 3 ans
      • Cas de reprise de KYC existant (migration)
      • Préparation du contrat d’Agent

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

      • Signature du contrat d’Agent
      • CentralPay collecte et dépose les pièces suivantes :
        • Kbis < 3 mois de la société et des sociétés gérantes
        • Statuts à jour signés de la société et des sociétés gérantes
        • Pièce d’identité couleur des dirigeants
        • CV des dirigeants datés et signés
        • Casier judiciaire des dirigeants
        • Déclaration de non-condamnation des dirigeants
        • Répartition de la détention des parts
        • Kbis des personnes morales actionnaires (si applicable)
        • Organigramme du Groupe (si applicable)
        • PV d’AG récents (fusion, perte > 50% du capital, changement direction, etc.)

      Peuvent également être demandés par l’ACPR :

      • Bilans et comptes de résultat récents
      • États financiers en cours ou de l’année précédente
      • Toute pièce jugée utile par le régulateur

      2.3. Délais d’instruction

      • Instruction par CentralPay : ~2 semaines après réception complète des pièces
      • Délai de l’ACPR : jusqu’à 2 mois, avec premières questions sous 30 jours en général

      2.4. Fin d’instruction

      • Dès validation du dossier, l’Agent peut démarrer l’activité avec CentralPay
      • Il est référencé dans les registres publics de l’ACPR avec un numéro d’enregistrement obligatoire dans les CGU et communications officielles

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

      • Obligation de fournir un récapitulatif des minutes téléphoniques par opérateur
      • Transmission du détail de répartition des encaissements à CentralPay
      • Le service Conformité CentralPay s’assure que les marchands sont correctement crédités

      Déclaration Distributeur ME (ACPR)

      Les Établissements émetteurs de monnaie électronique comme CentralPay peuvent mandater des Distributeurs de Monnaie Électronique (DME) afin de collecter des fonds et d’assurer les échanges permettant l’achat et le remboursement de ME dans un réseau de 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

      R-transaction carte

      1. Remboursement

      Vous pouvez rembourser une Transaction si celle-ci est CLEARED via le service Refund ou depuis le détail de la Transaction dans le Portail 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é.

      2. Crédit

      Vous pouvez créditer la carte d’un client sans transaction initiale depuis le service Credit. Pour cela, il existe plusieurs solutions :

      • Tokeniser une carte via le service cardToken pour ensuite la renseigner dans le service Credit
      • Créer ou rechercher un Customer disposant d’une carte valide, puis renseigner son « customerId » ainsi que son « cardId » dans le service Credit
      ℹ️ Ce service n'est disponible que pour des activités spécifiques, contactez CentralPay pour en savoir plus.

      3. Contestation

      Pour tout paiement par carte, votre client a la possibilité de contester une transaction auprès de sa banque (opération nommée contestation, chargeback ou impayé) :

      • Pendant 120 jours à compter de la transaction sur les réseaux « Visa » ou « Mastercard »
      • Pendant 13 mois à compter de la date d’opération sur le réseau Français « Carte Bancaire »
      ℹ️ En France, une contestation n'est en principe autorisée que dans le cadre d'une utilisation frauduleuse de la carte (carte volée, prélèvements abusifs…). Cependant, dans d'autres pays européens, la contestation peut également être utilisée dans le cadre d'un litige commercial (service ou produit non rendu / non conforme).

      En cas de contestation, CentralPay en est informé et crée automatiquement sur votre compte une opération de Dispute liée à la transaction contestée. Le montant de cette transaction vous sera débité afin de rembourser votre client. Des frais non remboursables s’appliquent également pour chaque contestation reçue.

      À ce stade, le statut de la Dispute sera Chargeback_Noticed et vous pourrez consulter sur le Portail Marchand ou via notre API le motif de contestation de votre client. Vous disposez ainsi d’un délai de 20 jours calendaires pour répondre en fournissant la preuve de livraison du service ou du produit. À défaut de réponse dans les délais impartis, il ne sera plus possible de répondre à la contestation.

      ℹ️ Notez que dans le cadre des transactions non authentifiées (sans 3DS), vous devez également justifier du consentement du titulaire de la carte. Vous devez à minima prouver que le nom et prénom de votre client est bien le même que celui qui est indiqué sur la carte de paiement. 

      Une fois votre réponse émise, celle-ci est étudiée par la banque de votre client avant d’adresser son verdict :

      • Vous avez obtenu gain de cause, la contestation a été rejetée. Le montant de la transaction vous est remboursé et le statut de la Dispute passe en Chargeback_Won.
      • Vos preuves sont jugées insuffisantes, la contestation est maintenue. Le statut de la Dispute passe en Chargeback_Lost.
      ℹ️ Il est possible, en amont d'une contestation, qu'un client réalise une demande d'information sur une transaction afin d'en connaitre les détails. CentralPay créera une opération Dispute avec statut Retrieval_Noticed. Vous devez répondre dans les 7 jours en fournissant la nature du service délivré, la preuve de consentement du client et/ou la preuve de livraison. Si votre réponse est acceptée, le statut de la Dispute passera à Retrieval_Close. À défaut de réponse, votre client pourra déclencher une contestation auprès de sa banque.

      Offres commerciales

      CentralPay propose 2 modèles d’offres commerciales :

      • Les offres Starter et Medium, intégrant un forfait mensuel fixe et des frais par transaction simplifiés (ou « blind rate »)
      • Les offres Major, intégrant également un forfait mensuel fixe, mais avec des frais par transaction plus détaillés (ou « interchange++ »)

      Dans ces deux modèles, les offres CentralPay intègrent les frais d’interchange et de réseaux cartes qui sont facturés par les banques. Vous n’avez donc aucun surcoût à prévoir.

      👉 Consultez le tarif des offres CentralPay

      Webhook notifications

      Articles

      • The MERCHANT-ENROLLMENT object
      • The WALLETS object
      • The BANKACCOUNT object
      • The CARD object
      • The CREDIT object
      • The CUSTOMER object
      • The DEPOSIT object
      • The DISPUTE object
      • The INSTALLMENT object
      • The ONBOARDING object
      • The PAYMENT REQUEST object
      • The PAYOUT object
      • The REFUND object
      • The SCT Transaction object
      • The SDD TRANSACTION object
      • The MANDATE object
      • The SUBSCRIPTION object
      • The TRANSACTION object
      • The TRANSFER REVERSAL object
      • The TRANSFER object
      • The WIRETRANSFER object (Deprecated)

      The MERCHANT-ENROLLMENT object

      Prochainement

      The WALLETS object

      Prochainement

      The BANKACCOUNT object

      BANKACCOUNT_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

      Subscription Model

      See more about Subscription Model

      jQuery(document).ready( function($) { window.live_68cacb1244cd7 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Subscription Model.yaml", dom_id: "#wp-swagger-ui-container-live_68cacb1244cd7", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_68cacb1244cd7.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)

      Frais d'interchange et réseaux cartes

      L’interchange correspond à la valeur chargée par l’établissement émetteur d’une carte de paiement (la banque de votre client) à l’établissement acquéreur (la banque du marchand).

      Les frais de réseaux carte (ou « Card Scheme Fees ») correspondent aux frais pris par les réseaux carte (Visa, Mastercard, CB) pour faire fonctionner le service.

      Des termes ont été définis pour désigner l’assemblage de ces frais :

      • Interchange+
        Les frais d’Interchange + les frais des réseaux cartes (card scheme fees)
      • Interchange++
        Les frais d’Interchange + les frais des réseaux cartes (card scheme fees) + les frais de service de l’établissement (CentralPay)

      Toutes les offres commerciales de CentralPay intègrent les frais d’Interchange+ ainsi que nos propres frais de service, vous n’avez donc aucun frais bancaire supplémentaire à prévoir pour réaliser vos transactions. Sauf mention contraire, des frais minimum de perception de 0.15 € sont prélevés sur l’IC++.

      1. Frais d’interchange et réseaux carte (E-commerce)

      Type de carteInterchange Intrarégional (EEE)Interchange Interrégional (hors EEE)
      Carte de débit ou prépayé
      CB, VISA, MASTERCARD
      0,2 %1,15 %
      Carte de crédit ou débit différé
      CB, VISA, MASTERCARD
      0,3 %1,5 %
      Carte professionnelle
      CB
      0,9 %/
      Carte professionnelle
      VISA
      1,45 %2 %
      Carte professionnelle
      MASTERCARD
      1,45 %2 %
      Toutes cartes
      AMERICAN EXPRESS
      AucunAucun
      Réseau carteFrais de réseaux carte Intrarégional (EEE)Frais de réseaux carte Interrégional (hors EEE)
      Réseau CB (Cartes bancaires)0,030 %/
      Réseau VISA0,110 %0,700 %
      Réseau MASTERCARD0,390 %0,950 %
      Réseau AMERICAN EXPRESS1,600 %2,400 %

      2. Frais d’interchange et réseaux carte (paiement de proximité)

      Type de carteInterchange Intrarégional (EEE)Interchange Interrégional (hors EEE)
      Carte de débit ou prépayé
      CB, VISA, MASTERCARD
      0,2 %1,15 %
      Carte de crédit ou débit différé
      CB, VISA, MASTERCARD
      0,3 %1,5 %
      Carte professionnelle
      CB
      0,9 %/
      Carte professionnelle
      VISA
      1,45 %2 %
      Carte professionnelle
      MASTERCARD
      1,45 %2 %
      Toutes cartes
      AMERICAN EXPRESS
      AucunAucun
      Réseau carteFrais de réseaux carte Intrarégional (EEE)Frais de réseaux carte Interrégional (hors EEE)
      Réseau CB (Cartes bancaires)0,030 %/
      Réseau VISA0,110 %0,700 %
      Réseau MASTERCARD0,390 %0,950 %
      Réseau AMERICAN EXPRESS1,600 %2,400 %

      Subscription

      See more about Subscription

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

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

      Libellé relevé bancaire

      Le libellé de relevé bancaire correspond à la description qui sera affichée sur le relevé de compte bancaire de vos clients pour chacune de vos transactions par carte.

      Lorsqu’un compte 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.

      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 €

      Resources by type

      Articles

      • Full Api
      • Codes
      • Test values

      Full Api

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

      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

      List of codes returned by the issuer bank to CentralPay after an authorization request

      CodeDescription
      00Transaction approved or successfully processed
      02Contact card issuer
      03Invalid acceptor
      04Keep card
      05Do not honor
      06Transaction invalid for terminal
      07Honor with ID
      08Time-Out
      09No original
      10Unable to reverse
      11Partial approval
      12Invalid transaction
      13Invalid amount
      14Invalid cardholder number
      15Unknown card issuer
      17Invalid capture date (terminal business date)
      19Repeat transaction later
      20No From Account
      21No To Account
      22Account not verified
      23Account not saved
      24No Credit Account
      25Unable to locate record in file
      26Record duplicated
      27 ‘Edit’ error in file update field
      28File access denied
      29File update not possible
      30Format error
      31Identifier of acquiring organization unknown
      32Transaction partially completed
      33Card validity date exceeded
      34Implausible card data
      38Number of PIN attempts exceeded
      39Transaction not allowed
      41Lost card
      42Special Pickup
      43Stolen card
      44Stolen card
      51Insufficient funds or overdraft
      54 Card expired
      55Incorrect PIN
      56 Card not on file
      57Transaction not authorized to this cardholder
      58Transaction prohibited at terminal
      59Suspected fraud
      60 the card acceptor must contact the buyer
      61Withdrawal amount over limit
      62Card use restricted
      63MAC Key Error
      65 Frequency limit exceeded
      66Acquirer limit reached
      67Card withheld
      68Response not received or received too late
      75Number of PIN attempts exceeded
      76Invalid Account
      77Issuer not participating in service
      78Function not available
      79Key validation error
      80Approved for purchase amount only
      81Unable to verify PIN
      82Invalid CVV
      83Not refused
      84Invalid transaction lifecycle
      85No key to use
      86KME synchronization error
      87PIN error
      88MAC synchronization error
      89Security violation
      90Temporary system shutdown
      91Card transmitter inaccessible
      92Card issuer unknown
      93Transacation cannot be finalized
      94Duplicate request
      95Contact acquirer
      96System malfunction
      97No Funds Transfer
      98Duplicate Reversal
      99Duplicate Transaction
      N3Cash Service Not Available
      N4Cash Back Request Exceeds Issuer Limit
      N7Declined for CVV2 failure
      R0Stop Payment Order
      R1Revocation of Authorisation Order
      R3Revocation of all Authorisations Order
      A0Withdrawal in contact mode
      A1VADS fallback
      000Approved
      001Approve with ID
      002Partial approval (prepaid cards only)
      100Reject
      101Card expired / invalid expiry date
      106PIN attempts exceeded
      107Please call issuer
      109Invalid merchant
      110Invalid amount
      111Invalid account / Invalid MICR (traveler’s check)
      115Requested function not supported
      117Invalid PIN
      119Cardholder not registered / not authorized
      122Invalid card security code (alias CID, 4DBC, 4CSC)
      125Invalid effective date
      181Format error
      183Invalid currency code
      187Refuse – New card issued
      189Refuse – Merchant cancelled or closed / SE
      200Refuse – Pick up card
      900Accepted – ATC synchronization
      909System malfunction (cryptographic error)
      912Issuer not available

      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

      Test cards Values

      You will find below a list of cards that you can use to test and check your integration.

      Visa Card numbers

      4000 0000 0000 0051Card lost (41) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »
      4000 0000 0000 0069Fraud suspicion (59) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »
      4000 0000 0000 0077Insufficient funds (51) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »
      4000 0000 0000 0085To be refused (5) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »
      4556 5579 5572 6624Transaction successful (3DS) & Authentication = Y
      4916 9940 6425 2017Transaction successful (3DS) & Authentication = C
      4556 1041 6038 2032Transaction successful (NON 3DS) & Authentication = N
      4024 0071 7987 2394Transaction (NON 3DS) & Authentication = N
      4234 6319 8242 8908Transaction (3DS) & Authentication = I
      4234 6319 8242 8916Transaction successful (3DS) & Authentication = D : application flow
      4234 6319 8242 8924Transaction successful (3DS) & Authentication = D : browser flow
      4032 0389 8296 2700EEA=true ; region=EUROPE; productType=CONSUMER; cardType=DEBIT ;
      4032 0343 8883 4767EEA=true ; region=EUROPE; productType=CONSUMER; cardType=CREDIT ;
      4020 0280 0191 2012EEA=true ; region=EUROPE; productType=CONSUMER; cardType=UNKNOWN ;
      4032 0337 9569 2248EEA=true ; region=EUROPE; productType=CORPORATE; cardType=DEBIT ;
      4032 0368 1354 0364EEA=true ; region=EUROPE; productType=CORPORATE; cardType=CREDIT ;
      4032 0387 5662 0096EEA=true ; region=EUROPE; productType=CORPORATE; cardType=UNKNOWN ;
      4032 0358 5604 7592EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=DEBIT ;
      4032 0302 9068 3219EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=CREDIT ;
      4032 0377 5134 3001EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=UNKNOWN ;
      4032 0307 5488 6225EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=DEBIT ;
      4032 0310 2547 6341EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=CREDIT ;
      4032 0341 4311 3978EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=UNKNOWN ;
      4032 0309 5816 7398EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=DEBIT ;
      4032 0375 4480 7536EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=CREDIT ;
      4032 0366 9148 7225EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=UNKNOWN ;
      4032 0325 8917 3860EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=DEBIT ;
      4032 0388 0897 9557EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=CREDIT ;
      4032 0374 2147 1240EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=UNKNOWN ;

      Mastercard Card numbers

      5333 2591 5564 3223Transaction successful (3DS) & Authentication = Y
      5306 8899 4283 3340Transaction successful (3DS) & Authentication = C
      5328 7203 8458 2224Transaction successful (NON 3DS) & Authentication = N
      5187 4346 4359 3002Transaction successful (NON 3DS) & Authentication = N
      5517 4500 0000 0168EEA=false ; region=US ; productType=CONSUMER ; cardType=CREDIT
      5223 8599 0000 0174EEA=false ; region=US ; productType=CORPORATE ; cardType=DEBIT
      5325 0900 0000 0115EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBIT
      5325 0900 0000 0008EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBIT
      5486 7467 7300 0005EEA=false ; region=EUROPE ; productType=CONSUMER ; cardType=DEBIT; Country=RUS
      5588 1000 0000 0007EEA=false ; region=CEMEA ; productType=CONSUMER ; cardType=DEBIT
      5122 9400 0000 0009EEA=false ; region=LATIN_AMERICA ; productType=CONSUMER ; cardType=DEBIT

      Amex Card numbers

      3415 0209 8634 895Transaction successful (3DS) & Authentication = Y
      3486 3826 7931 507Transaction successful (3DS) & Authentication = C
      3456 9539 9207 589Transaction successful (NON 3DS) & Authentication = N
      3415 0209 8634 895EEA=false ; region=EUROPE ; productType=CONSUMER
      3486 3826 7931 507EEA=false ; region=EUROPE ; productType=CORPORATE
      3718 4294 2351 004EEA=false ; region=EUROPE ; productType=UNKNOWN
      3712 5311 3391 201EEA=false ; region=ASIA_PACIFIC ; productType=CONSUMER
      3423 1631 7472 410EEA=false ; region=ASIA_PACIFIC ; productType=CORPORATE
      3710 9829 7279 338EEA=false ; region=ASIA_PACIFIC ; productType=UNKNOWN

      CB Card numbers

      4020 0235 6597 5380Transaction successful (NON 3DS), scheme : CB
      4020 0254 4041 8403Transaction successful (NON 3DS), scheme : CB_VISA
      5232 1035 2372 2651Transaction successful (NON 3DS), scheme : CB_MASTERCARD

      Invoice & invoiceItem

      See more about Invoice & invoiceItem

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

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

      The MERCHANT-ENROLLMENT object

      Prochainement

      Logos CentralPay

      Logo CentralPay SVG
      Logo CentralPay blanc SVG
      Logo CentralPay PNG
      Logo CentralPay blanc PNG

      Gestion des devises

      Dans le cadre d’une activité internationale, vos clients peuvent disposer d’une carte adossée à un compte bancaire en devises non Euros.

      Quelle que soit votre intégration, ces clients pourront vous régler en Euros grâce au système de conversion automatique des réseaux carte (Visa, Mastercard, American Express). Vos clients porteront l’ensemble des coûts de conversion des devises, et vous recevrez des Euros sur votre compte Marchand CentralPay.

      Dans certains cas, CentralPay peut vous permettre d’encaisser des transactions par carte bancaire dans différentes devises : Euros (EUR), Dollars (USD), Francs Suisses (CHF) et Livres (GBP). Contactez CentralPay si la gestion de transaction en devises est un enjeu pour votre activité.

      Notez que dans ce cas, les coûts d’acquisition en devises (hors EUROS) sont soumis à des frais complémentaires et seront déduits du montant de vos transactions.

      ℹ️ Les reversements (payout) par virement SEPA ne peuvent être réalisés que sur les valeurs disponibles en EUROS. Les valeurs hors EUROS sont reversées par virement SWIFT ayant des frais supérieurs. Il est cependant possible de programmer les reversements SWIFT afin qu'il ne soit réalisés qu'à partir d'un certain seuil, afin de mieux maitriser ses coûts de reversement.

      The WALLETS object

      Prochainement

      Logos PaySecure

      1. Logos

      Logo PaySecure classique PNG
      Logo PaySecure blanc PNG
      Logo PaySecure classique JPG

      2. Visuels de réassurance (FR/EN)

      Réassurance – fond blanc
      Réassurance – fond transparent
      Réassurance – blanc
      Réassurance – fond blanc
      Réassurance – fond transparent
      Réassurance – blanc

      Gestion des cartes virtuelles (VCC)

      1. Fonctionnement

      Les grands OTA que sont Booking.com, Expedia.com, hotels.com ou Agoda.com peuvent collecter les règlements lors de la réservation. Dans ce cas, ils fournissent aux hôteliers, non pas les données de la carte du client, mais une alias, qui est une carte virtuelle ou VCC.

      Une carte virtuelle ou VCC est généralement émise pour un usage encadré afin de limiter les risques de compromission. Une carte virtuelle représente en quelque sorte l’alias d’une carte existante qui ne pourra être utilisé qu’à partir d’une certaine date et depuis un MCC défini. En l’occurrence, dans le secteur du tourisme, il est nécessaire d’avoir un contrat avec le MCC 7011 (HOTELS) pour pouvoir la débiter.

      Ainsi, dans le cas où le numéro de carte tombait entre les mains d’une personne mal intentionnée, elle ne pourrait pas déclencher de débit sur la carte source. Étant donné la nature spéciale des cartes issues par ces OTA, il est en général impossible de réaliser des demandes d’autorisation, de pré-autorisation ou de vérification au moment de la commande.

      Si la carte n’est débitable que le jour de la réservation par un MCC 7011 par exemple, l’émetteur, en général MASTERCARD B2B PRODUCT, renverra un code d’erreur pour transaction invalide (12).

      ➡️ Cartes virtuelles Booking.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.

      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": []
      }

      Visuels de réassurance (FR/EN)

      Intégrez un de ces visuels en dessous de votre formulaire de paiement CustomForm, ou simplement dans le footer de votre site afin de rassurer vos clients concernant la sécurité de leurs données de paiement.

      1. Version française

      Réassurance 1 – classique
      Réassurance 1 – fond blanc
      Réassurance 1 – blanc
      Réassurance 2 – classique
      Réassurance 2 – fond blanc
      Réassurance 2 – blanc
      Réassurance 3 – classique
      Réassurance 3 – fond blanc
      Réassurance 3 – blanc
      Réassurance 4 – Avec Amex
      Réassurance 4 – Amex fond blanc
      Réassurance 4 – Amex blanc
      Réassurance 5 – Avec Amex
      Réassurance 5 – Amex fond blanc
      Réassurance 5 – Amex blanc
      Réassurance 6 – Avec Amex
      Réassurance 6 – Amex fond blanc
      Réassurance 6 – Amex blanc

      2. Version anglaise

      Réassurance 1 – classique
      Réassurance 1 – fond blanc
      Réassurance 1 – blanc
      Réassurance 2 – classique
      Réassurance 2 – fond blanc
      Réassurance 2 – blanc
      Réassurance 3 – classique
      Réassurance 3 – fond blanc
      Réassurance 3 – blanc
      Réassurance 4 – Avec Amex
      Réassurance 4 – Amex fond blanc
      Réassurance 4 – Amex blanc
      Réassurance 5 – Avec Amex
      Réassurance 5 – Amex fond blanc
      Réassurance 5 – Amex blanc
      Réassurance 6 – Avec Amex
      Réassurance 6 – Amex fond blanc
      Réassurance 6 – Amex blanc

      Retours, statuts et hooks

      1. Codes de retour banque liés aux transactions carte

      Lorsqu’une transaction carte (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 ➝

      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

      1. Fonctionnement

      Le virement bancaire est le moyen de paiement le plus répandu pour les règlements d’entreprises. Il consiste en un transfert direct des fonds d’un compte (bancaire ou de paiement) à un autre, sans utiliser de support additionnel comme une carte par exemple.

      La personne physique ou morale qui demande l’émission du virement est dénommée le donneur d’ordre (ou l’émetteur), celle qui reçoit l’argent le bénéficiaire. Contrairement à un paiement par carte ou par prélèvement SEPA, seul l’émetteur lui-même peut initier un virement. Il se rend ainsi sur l’espace personnel de sa banque, déclare les coordonnées bancaires du bénéficiaire (IBAN + BIC + Nom de titulaire), puis renseigne un montant et une référence de virement.

      Quelques informations importantes :

      • Le délai de réception d’un virement classique chez CentralPay est de 4 à 24 heures ouvrées (contre 24 à 48 heures ouvrées chez la majorité des banques traditionnelles). Il sera également possible de recevoir des virements instantanés (réception <5 secondes) à partir d’octobre 2024
      • Le virement ne présente pas de risque financier majeur pour le marchand bénéficiaire, car l’émetteur s’authentifie fortement auprès de sa banque et ne peut donc pas contester cette opération
      • Les banques émettrices accordent un plafond de règlement par virement nettement plus élevé que celui appliqué aux opérations de prélèvement SEPA ou de règlement par carte
      • Selon les fonctionnalités proposées par sa banque, l’émetteur peut programmer un virement récurrent ou à date différée

      2. Types de réseaux acceptés

      Il existe deux types de virements bancaires :

      • Les virements SEPA (ou SEPA Credit Transfer) : Utilisés pour les opérations en EUROS réalisées entre deux pays membres de la zone SEPA (= 27 pays de l’Union européenne + Royaume-Uni, Monaco, Andorre, Vatican, Suisse, Liechtenstein, Norvège, Islande et Saint-Marin)
      • Les virements internationaux : Utilisés pour les opérations internationales en EUROS ou en devises, via le réseau SWIFT

      Les frais applicables aux réseaux SEPA sont très largement favorables (à peine quelques dizaines de centimes contre plusieurs dizaines d’euros pour SWIFT). SWIFT permet cependant plusieurs options liées au règlement de ses frais : à la charge de l’émetteur, du bénéficiaire ou partagés.

      CentralPay est atteignable par toutes les banques de l’Espace Économique Européen utilisant les réseaux SEPA (via STEP2 pour les SCT/SDD, ainsi que TIPS et RT1 pour les « Instant SCT »). Seuls les virements de réseaux internationaux ou en devises hors EUROS ne sont pas recevables pour le moment (via réseau SWIFT par exemple).

      The 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": []
        }
      }

      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.

      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": []
        }
      }

      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

      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

      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

      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

      Rapprochement à une demande de paiement

      CentralPay met à disposition un service nommé bankReconciliation permettant de lier une ou plusieurs SCT Transaction à une demande de paiement (PaymentRequest) si vous n’utilisez pas les IBAN Virtuel dédié aux SCT Transaction.

      1. En cas d’erreur de référence par votre client

      Lorsque vous utilisez les demandes de paiement avec IBAN Virtuels dédiés à un Customer et que votre client ne renseigne pas correctement la « sepaReference » lors de l’émission de son virement ; CentralPay n’est pas en mesure de rapprocher automatiquement le virement à la demande de paiement.

      Vous pouvez donc utiliser le service bankReconciliation pour affecter la SCT Transaction reçue à la demande de paiement créée initialement :

      • amount = montant du virement en centimes
      • wireTransferID = ID de la SCT TRANSACTION (accessible dans le hook de la SCT TRANSACTION)
      • paymentRequestBreakdownId = ID du breakdown de la PaymentRequest (accessible dans le hook de la PaymentRequest)

      2. Si vous utilisez votre propre référence de commande

      Si vous souhaitez organiser vos créances clients dans CentralPay grâce au service de Demandes de paiement sans utiliser la page de paiement Smart Form, voici la démarche à suivre :

      • Pour chaque client : Créer un Customer avec vIBAN, récupérer le vIBAN et l’afficher dans votre tunnel de vente avec votre référence de commande
      • Créer en parallèle une paymentRequest contenant cette même référence de commande (dans le champ « merchantPaymentRequestId ») et le montant de commande
      • Dès réception d’un virement client, vous identifiez la commande liée grâce au champ « description » de la SCT Transaction
      • Vous recherchez ensuite une PaymentRequest avec la même référence dans « merchantPaymentRequestId »
        • Si une PaymentRequest présente la même référence, vous l’associez avec le service « bankReconciliation »
        • Si aucune PaymentRequest ne présente la même référence mais que le virement a été reçu sur un vIBAN Customer n’ayant qu’une seule PaymentRequest en attente ou d’un montant identique, vous pouvez faire en sorte de les rapprocher avec une bankReconciliation
        • Si aucune PaymentRequest ne présente la même référence et que le Customer présente plusieurs PaymentRequest en attente de règlement ou d’un montant différent, levez une alerte dans votre système pour faire rapprocher le virement manuellement par votre service financier (qui l’associera manuellement à la bonne PaymentRequest via une bankReconciliation)
      • Les virements non liés à une PaymentRequest seront ainsi facilement identifiables
      • De même que les PaymentRequest non payées ou partiellement payées

      The 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"
      }

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

      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

      Virements internationaux

      Les virements bancaires internationaux sont gérés via le réseau SWIFT (contrairement au réseau SEPA pour les virements européens). Ces virements peuvent être émis depuis un très grand nombre de pays en EUROS ou dans d’autres devises.

      Il sera prochainement possible d’accepter des virements internationaux via le service SCT Transaction. Veuillez contacter CentralPay si ce service est un enjeu pour le développement de votre activité.

      The 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"
      }

      Retours, statuts et webhooks

      1. Retours liés aux SCT Transactions

      Il n’existe pas de code retours pour les SCT Transactions.

      2. Statuts liés aux SCT Transactions

      Consultez les Statuts Transaction ➝

      Consultez les Statuts Refunds ➝

      3. Webhooks liés aux SCT Transactions

      Consultez les Webhooks SCT Transaction ➝

      Consultez les Webhooks Refunds ➝

      Consultez les Webhooks Customer ➝

      The 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

      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

      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

      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.

      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

      Déclaration du compte bancaire

      Pour réaliser une transaction par prélèvement SEPA, il faut d’abord créer le profil de votre client (le débiteur) et déclarer ses coordonnées bancaires sur la plateforme CentralPay.

      1. Créer un profil client « Customer »

      • Collecter les informations de votre client (email, nom, prénom…)
      • Créer un profil client Customer
      • Récupérer la propriété customerId dans le retour de création du Customer

      2. Créer un compte bancaire « bankAccount »

      • Collecter les coordonnées bancaires de votre client (IBAN, BIC, nom du titulaire du compte…)
      • Créer un compte bancaire bankAccount en renseignant le customerId de votre client
      • Récupérer le bankAccountId et le identityId dans le retour de création du bankAccount

      The 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

      Création du mandat SEPA

      Après avoir déclaré le compte bancaire bankAccount du client et rattaché son profil client « Customer », vous pouvez créer un mandat SEPA « mandate » et collecter la signature électronique de votre client via un code (OTP) envoyé par SMS.

      Prérequis : vous devez récupérer le creditorBankAccountId de votre compte Marchand CentralPay correspondant à votre ICS. Vous pouvez le retrouver depuis votre Portail Marchand en utilisant un profil avec des droits Admin : Administration Mon compte Comptes bancaires

      Identifiez la ligne présentant votre ICS dans la colonne « IBAN » puis copiez l’UUID associé.

      1. Création et signature d’un nouveau mandat SEPA

      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 Compte Marchand CentralPay (Merchant) doit être créé. Les mandats existants devront alors être redéclarés sous ce nouveau compte via un processus de migration.

      3.2. Modifications nécessitant un nouveau mandat

      Les modifications suivantes imposent la création d’un nouveau mandat SEPA, car elles impliquent une nouvelle autorisation du débiteur :

      • Changement de nom du débiteur
      • Changement de la date de signature du mandat
      • Changement de type de mandat : passage de SDD Core à SDD 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.

      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"
      }

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

      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

      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 ➝

      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"
          }

      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

        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"
        }

        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

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

        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'

        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.

        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…

        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.

        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 compte à 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 compte 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 virement à 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.

        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.

        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

        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.

        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 compte Marchand CentralPay (Merchant)
        • Du compte de paiement (Wallet)
        • Du profil utilisateur légal du compte 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.)

        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.

        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é

        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.

        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

        DISPUTES status

        Status « Disputes »

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

        Retours, statuts et webhooks

        1. Codes de retour liés à la création de compte

        La création d’un compte marchand via l’API d’enrôlement déclenche un processus automatisé permettant à CentralPay de collecter et valider les informations nécessaires à l’ouverture du compte.

        En cas d’échec, une réponse d’erreur HTTP est retournée immédiatement à l’appel API, précisant le champ en erreur et la nature du rejet (donnée manquante, incohérente ou invalide).

        ⚠️ Il n’existe pas de table de codes de retour centralisée pour ces erreurs, car elles sont liées aux validations dynamiques effectuées par champ. L’erreur retournée est toujours structurée dans le corps de réponse et permet de corriger précisément le point bloquant.

        2. Statuts liés aux enrôlements

        Consultez les Statuts Merchant Enrollment ➝

        3. Webhooks liés aux enrôlements

        Consultez les Webhooks d’Onboarding ➝

        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.

        Informations générales

        La solution Easy Wallet permet aux plateformes d’encaisser des paiements et de les transférer à des tiers tout en respectant la réglementation européenne.

        Pour ce faire, le module comprend deux principaux services :

        • L’inscription, permettant la création de comptes de paiement et de monnaie électronique pour les marchands ou sous-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 sous-marchands

        Pour connaitre votre modèle de partenariat, veuillez vous rapprocher de votre contact CentralPay.

        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.

        Transfert indépendant

        1. Créer un transfert (Create a Transfer)

        La fonction Create a Transfer permet aux partenaires régulés (Agents ou DME, selon le type de compte) de transférer des fonds entre deux comptes de leurs sous-marchands. Ce transfert peut être initié :

        • Par un Agent lorsque les wallets sont des comptes de paiement
        • Par un DME lorsque les wallets sont des comptes de monnaie électronique

        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 sous-marchands, ou vers des comptes destinataires définis
        • À un DME d’opérer des transferts de monnaie électronique entre ses sous-marchands (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 sous-marchands.

        1.2. Paramètres requis

        ChampTypeObligatoireDescription
        destinationWalletIdUUID✅ OuiIdentifiant du wallet destinataire (appartenant à un sous-marchand).
        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
        emissionWalletIdUUIDWallet émetteur si différent du wallet principal du partenaire.
        currencyCode ISODevise du transfert (si différente de celle du wallet).
        feeIntegerMontant de la commission prélevée par le partenaire, déduite du montant. Par défaut : 0.
        escrowDateDate ISODate à partir de laquelle le transfert devient effectif. Peut être utilisée pour définir une période de blocage temporaire.
        merchantTransferIdStringRéférence métier du partenaire (max 100 caractères).
        transferGroupStringGroupe de rattachement pour regrouper plusieurs transferts.
        descriptionStringDescription libre (max 256 caractères).
        additionalDataKey/ValueDonnées complémentaires sous forme de paires clé/valeur (max 256 caractères par valeur).
        metaDataJSONMétadonnées complémentaires structurées.
        purposeCode / purposeMessageEnum / StringFinalité du transfert, selon une nomenclature standard. Voir la liste des codes.

        1.4. Règles de validation

        • Le destinationWalletId doit correspondre à un wallet valide d’un sous-marchand du partenaire
        • Le sourceId ne peut être utilisé que si l’objet lié est dans un statut accepté (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 partenaires régulés (Agent ou DME) disposent de plusieurs fonctions de gestion post-création d’un transfert, leur permettant d’ajuster, consulter ou annuler une opération, sous conditions.

        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 partenaire.
        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 wallet.

        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 partenaire.
        destinationWalletIdUUIDWallet destinataire.
        transferGroupStringGroupe de transferts.
        statusEnumPENDING, TRANSFERRED, CANCEL.
        after / beforeDate ISOFiltrer par date de création.
        limitIntegerNombre de résultats par page.
        pageIntegerIndex de la page de résultats.

        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 partenaires régulés (Agent pour les comptes de paiement, DME pour les comptes de monnaie électronique), et doit respecter les règles de disponibilité des fonds.

        3.1. Conditions d’utilisation

        Le transfert initial doit :

        • Être dans le statut TRANSFERRED
        • Avoir des fonds disponibles dans le wallet destinataire
        • Ne pas avoir déjà été remboursé dans sa totalité via des opérations de reversal

        Le montant retourné doit être :

        • Inférieur ou égal au solde disponible du wallet destinataire
        • Inférieur ou égal à la somme initialement transférée
        • Diminué des éventuels reversals déjà effectués sur le transfert concerné

        3.2. Créer un TransferReversal

        Permet de retourner un montant vers le wallet émetteur d’origine.

        ChampTypeObligatoireDescription
        transferIdUUID✅ OuiIdentifiant du transfert d’origine.
        amountInteger✅ OuiMontant à rembourser (en centimes).
        merchantTransferReversalIdString❌ NonRéférence partenaire 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 Wallet source.

        Règles importantes :

        • L’opération est visible dans les mouvements du wallet (débit du wallet destinataire, crédit du wallet d’origine)
        • Plusieurs reversals peuvent être effectués sur un même transfert, dans la limite du montant total initial
        • Si les fonds ne sont pas disponibles, l’appel est rejeté avec une erreur explicite (insuffisance de solde ou montant trop élevé)

        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 partenaire 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, wallet 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 partenaire
        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.

        MANDATE status

        Status « Mandate »

        StatusDescription
        ACTIVEActive mandate, ready to use.
        PENDINGMandate pending validation.
        OBSOLETEInactive mandate, not usable.

        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✅ OuiWallet bénéficiaire. Doit appartenir à un sous-marchand 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é.

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

        Reversement bancaire pour tiers

        Le reversement bancaire pour un tiers permet de transférer des fonds depuis un compte de paiement ou monnaie électronique CentralPay vers le compte bancaire d’un marchand (ou sous-marchand), en tant que partenaire Agent ou DME. Les partenaires techniques ou MOBSP n’ont pas accès à cette fonction.

        1. Objectif et périmètre

        Ce service permet de :

        • Déclencher des reversements manuels ou automatisés pour des sous-marchands
        • Cibler un compte bancaire autorisé par le sous-marchand
        • Utiliser un wallet CentralPay comme source des fonds

        Le partenaire régulé reste à l’initiative technique du reversement, mais les fonds sont toujours détenus et transférés par CentralPay, qui conserve la responsabilité de l’exécution.

        2. Méthodes disponibles

        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 sous-marchand.

        3.1. Limites d’usage

        • 1 reversement / jour / sous-marchand / devise
        • Compte bancaire cible validé par le sous-marchand
        • Reversement uniquement sur fonds disponibles

        3.2. Paramètres API (BODY)

        ParamètreTypeRequisDescription
        currencyISO 4217✅ OuiDevise du reversement (doit correspondre au compte bancaire).
        destinationBankAccountIdUUID✅ OuiCompte bancaire bénéficiaire (lié au sous-marchand).
        walletIdUUID❌ NonWallet source des fonds.
        amountInteger (en cents)❌ NonMontant à reverser. Si vide : solde maximum.
        merchantPayoutIdString❌ NonID de référence interne.
        descriptionString❌ NonTexte libre, visible dans le reporting.
        payoutReferenceString (max 35)❌ NonRéférence bancaire (visible sur l’opération bancaire).
        additionalDataMap❌ NonDonnées complémentaires (ex. : ID commande, segment, etc.).
        transitionWalletUUID❌ Non(cas avancé) wallet transitoire.
        customerIdUUID❌ NonIdentifiant client si cible non marchande.

        4. Suivi des reversements

        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
        PENDINGReversement en cours de traitement
        PAIDReversement exécuté avec succès
        CANCELReversement annulé manuellement

        5. Contraintes réglementaires

        • Seuls les Agents et Distributeurs de Monnaie Électronique (DME) déclarés à l’ACPR via CentralPay peuvent initier ces reversements
        • Les partenaires doivent garantir que les données envoyées sont conformes à leur cadre contractuel et réglementaire
        • CentralPay se réserve le droit de refuser un reversement ou d’exiger des documents justificatifs en cas de doute sur l’opération

        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.

        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 compte de test CentralPay)./
        URL de redirectionRedirige vos clients vers une page personnalisée après paiement sur notre formulaire.Renseignez l’URL de votre page de confirmation de paiement.

        4. Statut de commande

        Le plugin WooCommerce de CentralPay intègre automatiquement une URL de retour (return_url) dans le lien du formulaire de paiement. Cette URL permet de rediriger le client vers la page de confirmation de commande (/checkout/order-received/) et d’actualiser le statut de la commande en fonction du résultat du paiement.

        Si le client final ferme la fenêtre de paiement avant d’être redirigé, la mise à jour de la commande peut ne pas se déclencher correctement côté WooCommerce.

        Pour garantir la mise à jour fiable du statut de commande, nous recommandons de mettre en place un Hook (callback serveur à serveur) dans votre Backoffice CentralPay.

        Étapes de configuration :

        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 compte de production.

        5. Personnalisation du logo

        Vous pouvez également personnaliser l’interface de paiement en ajoutant le logo de votre site via le Backoffice :

        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 compte de test CentralPay et renseigner les identifiants de ce compte de test)
        • Utilisez les cartes de test fournies par CentralPay pour simuler des paiements
        • Vérifiez le bon fonctionnement :
          • Du formulaire de paiement
          • Des redirections
          • Des statuts de commande

        7. Suivi des paiements

        • Retrouvez tous vos paiements dans WooCommerce > Commandes
        • Le plugin CentralPay met à jour automatiquement les statuts des commandes
        • En cas de besoin, un journal des événements est disponible dans le fichier error.log du plugin

        8. Langues disponibles

        Le plugin est disponible en :

        • 🇫🇷 Français
        • 🇬🇧 Anglais

        Vous pouvez modifier ou ajouter vos propres traductions via les fichiers .po présents dans le dossier /languages, ou en utilisant un plugin comme Loco Translate.

        9. Désinstallation

        Pour désinstaller le plugin :

        • Désactivez-le via le menu des extensions
        • Cliquez sur Supprimer
        • Le script de désinstallation supprimera les paramètres du plugin

        10. Support

        Pour toute question ou assistance, contactez notre support technique depuis https://support.centralpay.com.
        Merci d’indiquer votre identifiant marchand, l’URL de votre site et le plus de détails possible sur votre besoin.

        SCT TRANSACTION status

        Status « SCT Transaction »

        StatusDescription
        PENDINGPending receipt of the SCT Transaction.
        RECEIVEDSCT Transaction received.
        CANCELEDSCT Transaction cancelled before receipt.
        REFUNDEDSCT Transaction refunded.

        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

        List of codes returned by the issuer bank to CentralPay after an authorization request

        CodeDescription
        00Transaction approved or successfully processed
        02Contact card issuer
        03Invalid acceptor
        04Keep card
        05Do not honor
        06Transaction invalid for terminal
        07Honor with ID
        08Time-Out
        09No original
        10Unable to reverse
        11Partial approval
        12Invalid transaction
        13Invalid amount
        14Invalid cardholder number
        15Unknown card issuer
        17Invalid capture date (terminal business date)
        19Repeat transaction later
        20No From Account
        21No To Account
        22Account not verified
        23Account not saved
        24No Credit Account
        25Unable to locate record in file
        26Record duplicated
        27 ‘Edit’ error in file update field
        28File access denied
        29File update not possible
        30Format error
        31Identifier of acquiring organization unknown
        32Transaction partially completed
        33Card validity date exceeded
        34Implausible card data
        38Number of PIN attempts exceeded
        39Transaction not allowed
        41Lost card
        42Special Pickup
        43Stolen card
        44Stolen card
        51Insufficient funds or overdraft
        54 Card expired
        55Incorrect PIN
        56 Card not on file
        57Transaction not authorized to this cardholder
        58Transaction prohibited at terminal
        59Suspected fraud
        60 the card acceptor must contact the buyer
        61Withdrawal amount over limit
        62Card use restricted
        63MAC Key Error
        65 Frequency limit exceeded
        66Acquirer limit reached
        67Card withheld
        68Response not received or received too late
        75Number of PIN attempts exceeded
        76Invalid Account
        77Issuer not participating in service
        78Function not available
        79Key validation error
        80Approved for purchase amount only
        81Unable to verify PIN
        82Invalid CVV
        83Not refused
        84Invalid transaction lifecycle
        85No key to use
        86KME synchronization error
        87PIN error
        88MAC synchronization error
        89Security violation
        90Temporary system shutdown
        91Card transmitter inaccessible
        92Card issuer unknown
        93Transacation cannot be finalized
        94Duplicate request
        95Contact acquirer
        96System malfunction
        97No Funds Transfer
        98Duplicate Reversal
        99Duplicate Transaction
        N3Cash Service Not Available
        N4Cash Back Request Exceeds Issuer Limit
        N7Declined for CVV2 failure
        R0Stop Payment Order
        R1Revocation of Authorisation Order
        R3Revocation of all Authorisations Order
        A0Withdrawal in contact mode
        A1VADS fallback
        000Approved
        001Approve with ID
        002Partial approval (prepaid cards only)
        100Reject
        101Card expired / invalid expiry date
        106PIN attempts exceeded
        107Please call issuer
        109Invalid merchant
        110Invalid amount
        111Invalid account / Invalid MICR (traveler’s check)
        115Requested function not supported
        117Invalid PIN
        119Cardholder not registered / not authorized
        122Invalid card security code (alias CID, 4DBC, 4CSC)
        125Invalid effective date
        181Format error
        183Invalid currency code
        187Refuse – New card issued
        189Refuse – Merchant cancelled or closed / SE
        200Refuse – Pick up card
        900Accepted – ATC synchronization
        909System malfunction (cryptographic error)
        912Issuer not available

        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

        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

        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

        Test cards Values

        You will find below a list of cards that you can use to test and check your integration.

        Visa Card numbers

        4000 0000 0000 0051Card lost (41) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »
        4000 0000 0000 0069Fraud suspicion (59) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »
        4000 0000 0000 0077Insufficient funds (51) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »
        4000 0000 0000 0085To be refused (5) -> for « no-3DS », « 3DS1.0 » and « 3DS2.0 »
        4556 5579 5572 6624Transaction successful (3DS) & Authentication = Y
        4916 9940 6425 2017Transaction successful (3DS) & Authentication = C
        4556 1041 6038 2032Transaction successful (NON 3DS) & Authentication = N
        4024 0071 7987 2394Transaction (NON 3DS) & Authentication = N
        4234 6319 8242 8908Transaction (3DS) & Authentication = I
        4234 6319 8242 8916Transaction successful (3DS) & Authentication = D : application flow
        4234 6319 8242 8924Transaction successful (3DS) & Authentication = D : browser flow
        4032 0389 8296 2700EEA=true ; region=EUROPE; productType=CONSUMER; cardType=DEBIT ;
        4032 0343 8883 4767EEA=true ; region=EUROPE; productType=CONSUMER; cardType=CREDIT ;
        4020 0280 0191 2012EEA=true ; region=EUROPE; productType=CONSUMER; cardType=UNKNOWN ;
        4032 0337 9569 2248EEA=true ; region=EUROPE; productType=CORPORATE; cardType=DEBIT ;
        4032 0368 1354 0364EEA=true ; region=EUROPE; productType=CORPORATE; cardType=CREDIT ;
        4032 0387 5662 0096EEA=true ; region=EUROPE; productType=CORPORATE; cardType=UNKNOWN ;
        4032 0358 5604 7592EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=DEBIT ;
        4032 0302 9068 3219EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=CREDIT ;
        4032 0377 5134 3001EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=UNKNOWN ;
        4032 0307 5488 6225EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=DEBIT ;
        4032 0310 2547 6341EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=CREDIT ;
        4032 0341 4311 3978EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=UNKNOWN ;
        4032 0309 5816 7398EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=DEBIT ;
        4032 0375 4480 7536EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=CREDIT ;
        4032 0366 9148 7225EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=UNKNOWN ;
        4032 0325 8917 3860EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=DEBIT ;
        4032 0388 0897 9557EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=CREDIT ;
        4032 0374 2147 1240EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=UNKNOWN ;

        Mastercard Card numbers

        5333 2591 5564 3223Transaction successful (3DS) & Authentication = Y
        5306 8899 4283 3340Transaction successful (3DS) & Authentication = C
        5328 7203 8458 2224Transaction successful (NON 3DS) & Authentication = N
        5187 4346 4359 3002Transaction successful (NON 3DS) & Authentication = N
        5517 4500 0000 0168EEA=false ; region=US ; productType=CONSUMER ; cardType=CREDIT
        5223 8599 0000 0174EEA=false ; region=US ; productType=CORPORATE ; cardType=DEBIT
        5325 0900 0000 0115EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBIT
        5325 0900 0000 0008EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBIT
        5486 7467 7300 0005EEA=false ; region=EUROPE ; productType=CONSUMER ; cardType=DEBIT; Country=RUS
        5588 1000 0000 0007EEA=false ; region=CEMEA ; productType=CONSUMER ; cardType=DEBIT
        5122 9400 0000 0009EEA=false ; region=LATIN_AMERICA ; productType=CONSUMER ; cardType=DEBIT

        Amex Card numbers

        3415 0209 8634 895Transaction successful (3DS) & Authentication = Y
        3486 3826 7931 507Transaction successful (3DS) & Authentication = C
        3456 9539 9207 589Transaction successful (NON 3DS) & Authentication = N
        3415 0209 8634 895EEA=false ; region=EUROPE ; productType=CONSUMER
        3486 3826 7931 507EEA=false ; region=EUROPE ; productType=CORPORATE
        3718 4294 2351 004EEA=false ; region=EUROPE ; productType=UNKNOWN
        3712 5311 3391 201EEA=false ; region=ASIA_PACIFIC ; productType=CONSUMER
        3423 1631 7472 410EEA=false ; region=ASIA_PACIFIC ; productType=CORPORATE
        3710 9829 7279 338EEA=false ; region=ASIA_PACIFIC ; productType=UNKNOWN

        CB Card numbers

        4020 0235 6597 5380Transaction successful (NON 3DS), scheme : CB
        4020 0254 4041 8403Transaction successful (NON 3DS), scheme : CB_VISA
        5232 1035 2372 2651Transaction successful (NON 3DS), scheme : CB_MASTERCARD

        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.

        Marketplace C2C

        Prochainement

        Doc Contents

        Doc Footnotes

        Doc Elements

        • Mentions légales
        • Politique de confidentialité

        © 2025 CentralPay