CentralPay Documentation CentralPay Documentation
  • Informations générales
  • Documentation
  • Développeurs
  • Français
CentralPay Documentation CentralPay Documentation
  • Informations générales
  • Documentation
  • Développeurs
  • Français
Documentation

Sample User Guide

Sample User Guide

  • Icône de dossier fermée Icône de dossierDéveloppeurs
    • How to use the swagger
    • Authentication 3DS 2.2
    • Attachment
    • Balance Histories
    • BankAccount
    • Card token
    • CARD Transaction
      • Transaction
      • Card
      • Credit
      • Disputes
    • Charge
    • ClearedOperation
    • CpayUser
    • Credit
    • Customer
    • Deposit
    • Deposits
    • Event
    • Exchange
    • Identity
    • Info
    • Installment Payment
    • MerchantInfo
    • MID
    • Movement
    • Origin
    • PIS
    • Payment Request
    • Payout
    • Point Of Sale
    • Refund
    • PendingOperation
    • Regularisation
    • RIB
    • SCT Transaction
      • SCT Transaction
      • SCT Transaction Reversal
      • SCT Transaction Refund
      • SCT transaction Refund Reversal
      • Bank Reconciliation
      • Bank Reconciliation external
    • SDD Transaction
      • Mandate
      • SDD Transaction
      • SDD Transaction Reversal
      • SDD Transaction Refund
      • SDD Transaction Refund Reversal
    • Scenario
    • SourceType
    • Subscription
      • Subscription Model
      • Subscription
      • Invoice
      • InvoiceItem
    • Transfer
    • TransferReversal
    • Wallet
    • Blacklist
    • WhiteList
    • Onboarding
      • Create Enrollement
      • Complete enrollment
      • Update enrollment
      • Search enrollement
      • Enrollment Details
      • E-money
      • Misc
    • Object status
      • MERCHANT-ENROLLMENT status
      • TRANSFER status
      • TRANSFER REVERSAL status
      • PAYMENT REQUEST status
      • TRANSACTION status
      • REFUND status
      • CREDIT status
      • DISPUTES status
      • SUBSCRIPTION status
      • INSTALLMENT status
      • SDD TRANSACTION status
      • MANDATE status
      • BANK ACCOUNT status
      • PAYOUT status
      • SCT TRANSACTION status
    • Webhook notifications
      • The PAYMENT-ACCOUNT object
      • The MERCHANT-ENROLLMENT object
      • The WALLETS object
      • The BANKACCOUNT object
      • The CARD object
      • The CREDIT object
      • The CUSTOMER object
      • The DEPOSIT object
      • The DISPUTE object
      • The INSTALLMENT object
      • The ONBOARDING object
      • The PAYMENT REQUEST object
      • The PAYOUT object
      • The REFUND object
      • The SCT Transaction object
      • The SDD TRANSACTION object
      • The MANDATE object
      • The SUBSCRIPTION object
      • The TRANSACTION object
      • The TRANSFER REVERSAL object
      • The TRANSFER object
      • The WIRETRANSFER object (Deprecated)
    • Resources by type
      • Codes
        • HTTP Codes
        • Card authorization – Bank return codes
        • Card Disputes – Bank Return codes
        • Currency codes
        • SDD return codes
        • Country codes
        • Transfer purpose codes
        • SDD purpose codes
        • Error codes
      • Test values
        • Test IBAN values
        • Test cards Values
  • Icône de dossier fermée Icône de dossierDocumentation
    • Guide de démarrage rapide >
    • Marchand, comptes et canaux de vente
      • Profil Marchand
      • Profils clients
      • Points de vente
      • Comptes de paiement
      • Comptes de ME
    • Automatisations, connexions et exports
      • Notifications email/sms
      • Services anti-fraude
      • Versement sortant
      • Import de fichiers
      • 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
      • Transaction initiée par le porteur (CIT – BRW)
      • Transaction initiée par le marchand (MIT – 3RI)
      • Optimiser le taux de Frictionless
      • FAQ – 3DS 2.2
    • Gestion des marchands
      • Informations générales
      • Demande d’enrôlement
      • Compléter un enrôlement
      • Validation d’un enrôlement
      • Compte de Monnaie Électronique limité
      • Déplafonner un compte de Monnaie Électronique
      • Retours, statuts et webhooks
    • Transferts de paiements
      • Informations générales
      • Transfert indépendant
      • Transfert via Transaction ou PaymentRequest
      • Versement sortant pour tiers
      • Retours, statuts et webhooks
    • Plugin CMS
      • WooCommerce
      • PrestaShop
      • Magento
    • Bonnes pratiques
      • Déclaration TVA par pays
      • Merchant Initiated Transaction (MIT)
      • Verification of Payee (VoP)
        • FAQ – Verification Of Payee
  • 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
      • Glossaire CentralPay
    • Modèles contractuels
      • Marchand standard
      • Marchand Partenaire
        • Déclaration MOBSP (Orias)
      • Marchand Mandataire
        • Déclaration Agent PSP (ACPR)
        • Déclaration Distributeur ME (ACPR)
    • Ouvrir un compte CentralPay
      • Parcours d'entrée en relation
      • Principes de réserve
      • Conditions générales d’utilisation
    • Utilisation des API CentralPay
    • Portail Marchand
      • Guide : Mes comptes
    • Portail Client
    • Portail d’inscription
    • Tarifs
      • Offres commerciales
      • Frais d'interchange et réseaux cartes
      • Forfaits d'accompagnement
    • Logos et visuels
      • Logos CentralPay
      • Logos PaySecure
      • Visuels de réassurance (FR/EN)
    • Trust Center
      • Conformité et résilience opérationnelle
        • FAQ – Conformité et résilience
      • Protection des données personnelles
        • Sous-traitants
        • FAQ – Protection des données personnelles

Certifications et agréments

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

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

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

ACPR
(Banque de France)
Établissement de Monnaie Électronique : CentralPay est un Établissement de Monnaie Électronique régulé par la Banque de France à travers son autorité de contrôle prudentiel et de résolution, l’ACPR (CIB 17138).
DSP2 : CentralPay est conforme à la 2ème Directive sur les Services de Paiements qui impose notamment des exigences en matière d’authentification forte et de protection des données.
PCI-DSS : CentralPay obtient annuellement la certification la plus élevée possible en matière de sécurisation des données bancaires et prévention de la fraude ; la norme PCI DSS de niveau 1. Voir le certificat de CentralPay ➜
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.

Certifications and Approvals

CentralPay offers modular payment solutions that enable the consolidation of payment collection processes for its own account and the automation of payouts on behalf of third-party accounts. The types of services and transactions offered by CentralPay vary depending on the needs and business activities of its merchants and partners.

CentralPay is an independent company that fully owns its technology and licenses. This ensures the greatest possible autonomy in its choice of partnerships and its future development.

CentralPay is authorized to enter into business relationships with companies registered in the European Economic Area.

ACPR (
) (Bank of France)
Electronic money institution: CentralPay is an electronic money institution regulated by the Banque de France through its prudential supervision and resolution authority, the ACPR (CIB 17138).
PSD2: CentralPay complies with the Second Payment Services Directive, which sets forth requirements regarding strong customer authentication and data protection, among other things.
PCI DSS: CentralPay is certified annually at the highest possible level for banking data security and fraud prevention: PCI DSS Level 1. View CentralPay’s certificate ➜
EBA CLEARING & EPC: As a member of the European Payment Council and through its connection to EBA CLEARING, CentralPay provides Integration of the European SEPA payment schemes to send and receive Bank transfers and SEPA Direct Debits using its own IBANs and virtual IBANs.
SWIFT: Connected to the SWIFT network, the most widely accepted messaging system worldwide, CentralPay is able to exchange international financial transactions with most participating banks and financial institutions.
Visa, Mastercard, debit cards, American Express: CentralPay is accredited by the major card networks to optimize the payment experience and conversion rates for all its users.

Guide de démarrage rapide >

1. Entrée en relation

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

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

2. Création de votre profil marchand de test

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

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

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

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

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

4. Paramétrage de votre profil marchand

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

ℹ️ Les paramétrages réalisés sur votre profil marchand de test (RCT) ne sont pas automatiquement répliqués en production (PROD). Veillez à les reconfigurer une fois votre profil de production activé.

Paramétrages principaux :

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

Paramétrages secondaires :

Emails de contact du profil marchand
Règles d’acceptation
Versements sortants
Libellé de relevé bancaire
Notifications automatiques
Page de paiement Smart Form
Modèles de demandes de paiement
Tentatives auto. pour les échecs de prélèvement carte
Tentatives auto. pour les échecs de prélèvement SEPA

5. Simuler des paiements

Avant la mise en production, effectuez des simulations de paiement client dans votre profil de test (RCT) pour vérifier l’intégration :

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

6. Mise en production

Une fois vos tests validés en environnement de recette (RCT), préparez le passage en production (PRD).

ℹ️ Rappel : Aucun paramétrage n'est automatiquement copié de la RCT vers la PROD.
  • Récupérer les credentials API pour l’environnement PROD
  • Vérifier l’URL API de production
  • Récupérer la merchantPublicKey pour générer des cardToken
  • Informer CentralPay de toute mise en production ou évolution majeure
  • Déclarer l’URL de votre site dans la configuration de votre point de vente
  • Vérifier l’accès à la page support depuis le Portail Marchand

Si nécessaire, vous pouvez effectuer une à deux transactions réelles à 1 € pour vérifier le bon fonctionnement du paiement en production.

Quick start guide >

1. Establishing a relationship

To get started, explore our offerings and choose the best way to get in touch based on your project:

Check out our pricing plans
Present your project to our sales team
Choose the customer onboarding model that best suits your business
Learn about the steps to building a relationship

2. Creating your test merchant profile

CentralPay provides you with a test environment (RCT) to develop and validate your integration:

  • “Standard Merchant” test profile: To test only the Smart Collection payment solution, request a test merchant profile using our form
  • “Partner Merchant or Agent” test profile: To test payment collection (Smart Collection) and payment transfers (Easy Wallet), please contact our customer service team. We will create and configure your test merchant profile accordingly.

3. Choosing your integration method

Choose the integration method that best suits your needs:

  • Smart Integration: Use payment requests and the CentralPay payment page to process your transactions. Customer flows are preconfigured for rapid deployment
  • Custom Integration: Directly integrate API services for card transactions, SEPA credit transfers (SCT), and/or SEPA direct debits (SDD). This approach gives you full control over the customer experience, but requires more advanced development.

4. Setting up your merchant profile

You can set up your CentralPay merchant profile on your own or with assistance from our support team.

ℹ️ The settings configured in your test merchant profile (RCT) are not automatically replicated in production (PROD). Be sure to reconfigure them once your production profile is activated. 

Main settings:

API authentication access
Declaration of authorized domains (if using custom integration)
Payment accounts and outgoing bank accounts
Portal users
Retail locations
Webhooks
SEPA creditor identifier (ICS)

Secondary settings:

Merchant profile contact emails
Acceptance rules
Outgoing payments
Bank statement description
Automatic notifications
Smart form payment page
Payment request templates
Auto attempts. for failed card transactions
Auto attempts. for failed SEPA direct debit transactions

5. Simulate payments

Before going live, run customer payment simulations in your test profile (RCT) to verify the integration:

  • Card: Use our test cards to simulate different transaction statuses
  • SEPA Credit Transfer (SCT): Create one or more SCT transactions, then ask our support team to simulate their processing
  • SEPA Direct Debit (SDD): Use a test IBAN/BIC provided in our documentation

6. Deployment

Once your tests have been validated in the acceptance testing environment (RCT), prepare for the transition to production (PRD).

ℹ️ Reminder: No settings are automatically copied from the RCT to the PROD environment.
  • Retrieve the API credentials for the PROD environment
  • Verify the production API URL
  • Retrieve the merchantPublicKey to generate cardToken
  • Notify CentralPay of any production deployment or major change
  • Enter your website’s URL in your point-of-sale settings
  • Check access to the support page from the Merchant Portal

If necessary, you can make one or two live transactions for €1 to verify that the payment system is working properly in production.

Transaction

See more about card transactions

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

Transaction

See more about card transactions

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

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

HTTP Codes

Find below the list of HTTP return codes:

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

(*) Only possible for the creation of a transaction

Profil Marchand

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

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

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

1. Types de profils selon le modèle contractuel

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

Standard Type : STANDARD

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

👉 En savoir plus sur le modèle Marchand

Partenaire Intégrateur Type : INTEGRATOR

Le Partenaire Intégrateur accompagne plusieurs Marchands standards dans leur intégration technique avec CentralPay. Chaque Marchand standard dispose de son propre point de vente et d’un contrat individuel. L’Intégrateur utilise les accès API fournis par chaque Marchand, dans le cadre d’une relation contractuelle.

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

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

Partenaire Intégrateur MOBSP Type : INTEGRATOR + MOBSP

Le Partenaire Intégrateur MOBSP est un Intégrateur disposant d’un mandat réglementaire. Il peut initier une demande d’entrée en relation pour le compte d’un Marchand standard, et l’accompagner techniquement via l’API d’onboarding. Comme tout Intégrateur, il agit uniquement via les accès API fournis par le Marchand.

  • Mêmes droits et fonctionnement qu’un Intégrateur
  • Peut initier une demande d’enrôlement complète via API
  • Peut accompagner le marchand durant l’enrôlement

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

Partenaire Technique Type : TECHNIQUE

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

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

👉 En savoir plus sur le modèle Partenaire Technique

Partenaire Technique MOBSP Type : TECHNIQUE + MOBSP

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

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

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

Mandataire DME Type : DME

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

👉 En savoir plus sur le modèle Mandataire DME

Mandataire Agent Type : AGENT

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

👉 En savoir plus sur le modèle Mandataire Agent

Participant Type : BASIC

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

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

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

2. Paramétrage des emails de contact

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

  • Email contact : référent principal du profil marchand
  • Email administratif : en charge des sujets juridiques ou contractuels
  • Email technique : en charge de l’intégration ou des incidents
  • Email financier : en charge de la facturation ou des flux bancaires
ℹ️ Par défaut, ces adresses sont initialisées avec l’email du titulaire du profil marchand. Elles peuvent être modifiées à tout moment depuis le Portail Marchand.

Accès à la configuration des emails de contact :

Recette Portail Marchand
Production Portail Marchand

Merchant Profile

The Merchant Profile represents a Merchant technically and operationally within the CentralPay platform.

It serves as the foundation for:
• Its accounts: payment or electronic money accounts;
• Its administration: API access, user profiles, available payment services;
• Its technical configuration: webhooks, notifications, points of sale, acceptance rules, bank accounts;
• Its regulatory file: KYC/KYB, AML-CFT, risk scoring, contracting, pricing schedule…

The Merchant Profile corresponds to the API object Merchant and is created automatically after validation of its registration (via the API object Merchant-Enrollment).

1. Profile Types by Contractual Model

Each Merchant type is associated with a specific contractual model.

Standard Type : STANDARD

The standard Merchant is a business or professional that collects payments for its own account. It has one or more payment accounts and can access CentralPay services via API or through a partner.

👉 Learn more about the Merchant model

Integration Partner Type : INTEGRATOR

The Integration Partner supports multiple standard Merchants in their technical integration with CentralPay. Each standard Merchant has its own point of sale and an individual contract. The Integrator uses the API access provided by each Merchant within the framework of a contractual relationship.

  • May have a payment account and a commission account for its own needs
  • A separate point of sale is created for each supported Merchant
  • May perform API calls and technical actions via access delegated by the Merchant (monitoring Technical Instructions, configuration, RUN), without access to balances or authority to initiate/modify/execute a payment operation in its own name
  • CentralPay invoices each Merchant directly

👉 Learn more about the Integrator Partner model

MOBSP Integration Partner Type : INTEGRATOR + MOBSP

The MOBSP Integration Partner is an Integrator with a regulatory mandate. It can initiate a relationship request on behalf of a standard Merchant and provide technical support via the onboarding API. Like any Integrator, it acts solely through the API access provided by the Merchant.

  • Same rights and operation as an Integrator
  • May initiate a complete enrollment request via API
  • May support the merchant during enrollment

👉 Learn more about the MOBSP Integrator Partner model

Technical Partner Type : TECHNIQUE

The Technical Partner develops a shared solution (e.g., marketplace, SaaS platform) and operates from one or more points of sale opened in its name, to which standard Merchants can be attached. It uses its own API access to transmit commercial data and monitor operations linked to these points of sale, without ever having execution authority over payment operations.

  • One or more points of sale may be used to consolidate merchant activities (e.g., marketplace, SaaS platform)
  • CentralPay API access specific to the Technical Partner
  • CentralPay invoices the Technical Partner
  • Cannot initiate enrollment on behalf of and for the account of merchants (unless MOBSP framework applies)

👉 Learn more about the Technical Partner model

MOBSP Technical Partner Type : TECHNIQUE + MOBSP

The MOBSP Technical Partner is authorized to initiate a relationship request on behalf of its users. It can transmit the necessary information via the onboarding API but does not intervene in the execution of payment operations.

  • Same rights and operation as a Technical Partner
  • May initiate a complete enrollment request via API
  • May support the merchant during enrollment

👉 Learn more about the MOBSP Technical Partner model

EMD Agent Type : DME

The EMD Agent (Electronic Money Distributor) transmits loading, transfer, or refund instructions in electronic money on behalf of Participants. It operates within the electronic money model (CUSTOM currencies) and may receive a commission on operations, without providing regulated payment services (e.g., SEPA transfer, direct debit, card).

👉 Learn more about the EMD Agent model

PSP Agent Type : AGENT

The PSP Agent is a Payment Service Provider (PSP) Agent registered with ACPR. It acts on behalf of and for the account of CentralPay within a strictly defined contractual scope. Depending on the model adopted (Simple Agent / Collecting Agent / Delegated Agent), it may support enrollment, perform certain level 1 KYC/KYB due diligence, and/or intervene in the collection, allocation, and provision of funds via mechanisms provided by CentralPay. CentralPay remains responsible for the payment services provided and regulatory controls.

👉 Learn more about the PSP Agent model

Participant Type : BASIC

The Participants are natural or legal persons who are clients of a CentralPay Intermediary Merchant (Agent or EMD). They have one or more payment accounts or electronic money accounts to receive funds issued by the Intermediary and can access the Merchant Portal to view their operations and manage their outgoing transfers.

They operate to sell products or services, for LMNP activity, or for non-commercial needs (crowdfunding, personal wallet, collective projects, etc.).

Participants open accounts with CentralPay. The relationship may be initiated and/or supported by the Intermediary Merchant, but regulated services remain provided by CentralPay. The framework for account usage is defined by the applicable CentralPay documents (and, where applicable, by the Intermediary’s Terms of Use for commercial conditions and the services it provides).

2. Contact Email Configuration

You can customize the contact email addresses associated with your merchant profile so that notifications, reminders, or contractual communications are properly addressed to the right contacts.

  • Contact email: primary contact for the merchant profile
  • Administrative email: responsible for legal or contractual matters
  • Technical email: responsible for integration or incidents
  • Financial email: responsible for billing or banking flows
ℹ️ By default, these addresses are initialized with the email of the merchant profile holder. They can be modified at any time from the Merchant Portal. 

Access to contact email configuration:

Recette Merchant Portal
Production Merchant Portal

Notifications email/sms

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

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

1. Types de scénarios de notification

Notifiez vos clients et alertez vos collaborateurs automatiquement lorsque certains évènements ont lieu sur votre profil Marchand CentralPay : encaissement d’un virement, contestation client, échec de règlement…

Vous maitrisez le contenu de chaque notification depuis des templates personnalisés et définissez un mode d’envoi par email, par sms ou par Json. Vous automatisez ainsi le pointage de vos encaissements, les notifications clients, ou encore la mise à jour de votre système d’information.

2. Paramétrage des modèles de notification

2.1. Paramétrage des modèles (templates)

Pour commencer le paramétrage de vos notifications, vous devez créer vos modèles de communication (email, sms ou hook) en renseignant les éléments demandés. Par exemple l’objet du mail, le nom et email de l’émetteur, le corps du texte…

Vous pouvez intégrer des éléments dynamiques (tags) dans le corps du texte en tapant le caractère « # », qui fera apparaitre la liste des tags disponible pour le type de scénario de notification sélectionné.

Attention, si vous utilisez les notifications emails, veillez à nous demander de vous communiquer nos clés SPF et DKIM afin que vous puissiez autoriser CentralPay à envoyer des emails depuis votre domaine.

Concernant les SMS, veillez à calculer le nombre de caractères : vous serez facturés d’un SMS par 160 caractères (espaces inclus).

Accès paramétrage de templates emails :

Recette Portail Marchand
Production Portail Marchand

Accès paramétrage de templates SMS :

Recette Portail Marchand
Production Portail Marchand

Accès paramétrage de templates hooks :

Recette Portail Marchand
Production Portail Marchand

2.2. Paramétrage du header et footer pour templates emails

En cas de création d’un template email, un « header » et un « footer » devront être créés. Vous pouvez par exemple intégrer votre logo en header, et vos conditions de contact ou mentions légales en footer.

Accès paramétrage de l’en-tête d’email (header) :

Recette Portail Marchand
Production Portail Marchand

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

Recette Portail Marchand
Production Portail Marchand

3. Paramétrage des scénarios de notification

Pour spécifier à la plateforme les conditions d’envoi et destinataires de vos notifications, vous devez créer un scénario intégrant une ou plusieurs règles d’envoi.

Après avoir choisi le type de scénario souhaité, vous pouvez créer une règle d’envoi. Cette règle est scindée en deux parties : le « QUAND » va permettre de définir l’évènement déclencheur de la notification tandis que le « ALORS » va permettre de choisir les actions qui seront effectuées lorsque l’évènement se produira.

Accès paramétrage de scenarios de notification :

Recette Portail Marchand
Production Portail Marchand

3.1. Dans la partie « QUAND » :

  • Tapez « # » pour visualiser l’ensemble des attributs disponible pour votre scénario
  • Utilisez des opérateurs logiques pour constituer votre règle :
    • Pour les chaînes de caractères (doivent être entourés de guillemets «  ») :
      • = (égal)
      • != (différent de)
      • in (dans ce qui va suivre)
      • not in (pas dans ce qui va suivre)
    • Pour les nombres (attention les montants doivent être renseignés en centimes) :
      • = (égal)
      • != (différent de)
      • < (plus petit que)
      • <= (plus petit ou égal à)
      • in (dans ce qui va suivre)
      • not in (pas dans ce qui va suivre)
    • Pour les boolean (affirmations en vrai ou faux) :
      • = (égal à)
      • != (différent de)
  • Vous pouvez utiliser des conditions pour compléter votre règle :
    • AND (pour ajouter une autre condition d’activation)
    • OR (pour ajouter une autre possibilité d’activation)

Il est possible de donner des priorités en mettant des parenthèses autour des conditions. Si vous utilisez les conditionnels AND et OR dans la même règle, il est nécessaire de prioriser. Si vous utilisez plusieurs fois AND ou plusieurs fois OR, il sera également nécessaire de prioriser chaque partie.

Exemples de règles :

#end_user_country in ('FRA', 'BE')

#authorisation_status = 'FAILURE' or (#transaction_amount > 100000 and #context = 'TRANSACTION_RISKY' )

#transaction_amount > 100000 and ( #authorisation_status = 'FAILURE' or #context = 'TRANSACTION_RISKY' )

((#transaction_amount > 100000 and #context = 'TRANSACTION_RISKY') or ( #authorisation_status = 'FAILURE' and #transaction_amount < 100000 )) and (#card_product_type = 'Consumer')

Avant de pouvoir enregistrer une règle, il est obligatoire de d’abord tester sa règle avec le bouton « tester ». Cela va permettre de vérifier que votre règle est grammaticalement correcte. Attention, cela ne garantit pas que votre règle correspond à ce que vous souhaitiez faire.

3.2. Dans la partie « ALORS » :

Le « ALORS » va permettre de choisir le destinataire et le template utilisé pour la notification. Vous n’avez accès qu’aux templates qui correspondent au type de template requis (SMS, Email, Hook) et qui correspond au type de scénario choisi (transaction carte, demande de paiement, remboursement…).

Email/SMS notifications

Notifications can be sent based on events related to certain API objects:

  • Payment request (paymentRequest)
  • Chargeback (dispute)
  • Installment payment (installment)
  • Card Transaction (transaction)
  • Payout (payout)
  • Card Refund (refund)
  • Subscription (subscription)
  • Card credit (credit)
  • SDD Transaction (sddTransaction)
  • Reversed SDD Transaction (sddTransactionReversal)
  • Mandate (mandate)

1. Notification scenario types

Automatically notify your customers and alert your colleagues when certain events occur on your CentralPay Merchant profile: receipt of a transfer, customer dispute, payment failure, etc.

You control the content of each notification using custom templates and define a delivery method by email, by SMS, or by JSON. This automates the reconciliation of your collections, customer notifications, and even updates to your information system.

2. Configuring notification templates

2.1. Template configuration

To start configuring your notifications, you must create your communication templates (email, SMS, or hook) by filling in the requested elements, such as the email subject, the sender name and email address, the message body, etc.

You can insert dynamic elements (tags) into the message body by typing the « # » character, which will display the list of tags available for the selected notification scenario type.

Please note: if you use email notifications, please ask us to provide our SPF and DKIM keys so that you can authorize CentralPay to send emails from your domain.

For SMS, please calculate the number of characters: you will be billed for one SMS per 160 characters (including spaces).

Access to email template settings:

Recette Merchant Portal
Production Merchant Portal

Access to SMS template settings:

Recette Merchant Portal
Production Merchant Portal

Access to hook template settings:

Recette Merchant Portal
Production Merchant Portal

2.2. Configuring the header and footer for email templates

When creating an email template, a « header » and a « footer » must be created. For example, you can add your logo in the header and your contact details or legal notices in the footer.

Access to email header settings:

Recette Merchant Portal
Production Merchant Portal

Access to email footer settings:

Recette Merchant Portal
Production Merchant Portal

3. Configuring notification scenarios

To specify to the platform the sending conditions and recipients for your notifications, you must create a scenario that includes one or more sending rules.

After choosing the desired scenario type, you can create a sending rule. This rule is split into two parts: « WHEN » defines the event that triggers the notification, while « THEN » lets you choose the actions that will be performed when the event occurs.

Access to notification scenario settings:

Recette Merchant Portal
Production Merchant Portal

3.1. In the « WHEN » section:

  • Type « # » to view all attributes available for your scenario
  • Use logical operators to build your rule:
    • For strings (must be enclosed in quotation marks «  »):
      • = (equals)
      • != (not equal to)
      • in (in the following)
      • not in (not in the following)
    • For numbers (note: amounts must be entered in cents):
      • = (equals)
      • != (not equal to)
      • < (less than)
      • <= (less than or equal to)
      • in (in the following)
      • not in (not in the following)
    • For booleans (true/false statements):
      • = (equals)
      • != (not equal to)
  • You can use conditions to complete your rule:
    • AND (to add another activation condition)
    • OR (to add another activation possibility)

It is possible to set priorities by placing parentheses around conditions. If you use AND and OR in the same rule, you must set priorities. If you use AND multiple times or OR multiple times, you must also prioritize each part.

Rule examples:

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

Before you can save a rule, you must first test it using the « test » button. This verifies that your rule is grammatically correct. Please note: this does not guarantee that your rule matches what you intended to do.

3.2. In the « THEN » section:

« THEN » lets you choose the recipient and the template used for the notification. You only have access to templates that match the required template type (SMS, Email, Hook) and that match the selected scenario type (card transaction, payment request, refund, etc.).

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

General information

1. The two Smart Collection integration modes

The Smart Collection solution allows you to collect payments from various payment methods.

You can choose to:

  • Create and integrate your own payment flows (CUSTOM integration), by consuming the API services of each payment method:
    • Card transaction ➝
    • Transfer transaction ➝
    • SEPA direct debit transaction ➝

  • Use our secure payment request flows (SMART integration), via our dedicated service:
    • Payment requests (PaymentRequest) ➝
    • The EscrowDate parameter can affect the funds availability date of a transaction (applies to AGENT partners only)
ℹ️ If you choose SMART integration, specific features such as R-transactions, bank descriptor management, Virtual IBAN management, etc., are presented in the documentation under the CUSTOM sections dedicated to each payment method.

2. About SMART integration

The payment request allows you to generate a payment link leading to a payment page hosted by CentralPay. Your customer can thus pay you according to the payment terms you have determined (authorized payment methods and modes, payment deadlines, etc.). Transactions created in this way are automatically linked to the payment request and allow its status to be updated (unpaid, partially paid, paid, etc.).

The payment request must be populated with the payment terms of your cart or invoice:

  • Amount to be paid
  • Accepted payment methods (card, transfer, direct debit, payment initiation)
  • Accepted payment modes (one-off, subscription, installment payment…)
  • Order reference
  • Order description
  • Customer details
  • Authorized payment deadline
  • Link expiration time
  • …

The payment link can be sent to your customers from:

  • Your sales funnels or web interfaces
  • Your communication tools (email, SMS, mail via QR code…)
  • The CentralPay email / SMS notification service

The payment page then allows the customer to carry out their transaction(s):

  • Viewing payment request information
  • Selection of payment method or mode
  • Entering customer data
  • Entering payment details

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

General information

1. Operation

A card transaction comprises a sequence of actions:

1.1. 3DS 2.0 Authentication

This ensures that the person making the transaction is indeed the cardholder. The customer’s bank analyzes numerous payment-related factors provided by CentralPay (IP address, location, device used, etc.) and compares them to its customer’s usual data:

  • If the data does not match or the transaction amount is significant, it requires manual identification via a code sent by SMS or through its banking application (« strong authentication » or « SCA »)
  • Otherwise, it directly authorizes the payment (« Frictionless »)

1.2. Bank Authorization

A request made by CentralPay to the payer’s bank to verify the validity and funds availability of their card. The « authorized » funds are blocked until the funds are captured. If no capture is performed within 7 days, the « authorized » funds are released, and the merchant will need to renew their authorization.

For eligible activities (rental, hospitality, etc.), the « pre-authorization » service allows the merchant to extend the authorization period up to 30 days.

1.3. Capture

Capture initiates the debit of the card based on an authorization or pre-authorization. A merchant can perform a full or partial capture of the authorized amount.

2. Accepted Card Types and Networks

Payment cards are issued by banks or approved payment institutions; they can be branded by one or more card networks (also called « Card Scheme »).

The networks accepted by CentralPay are:

  • Debit Card
  • VISA
  • MasterCard
  • American Express

In France, the majority of cards issued are co-branded CB and VISA or CB and Mastercard. In this case, the customer must have the option to choose the network they wish to use.

Cards can be debit or deferred debit / credit (in France, the majority of cards are debit), and can be for individuals (referred to as « Consumer ») or for professionals (referred to as « Corporate »).

Note that these parameters impact the transaction cost for the merchant (interchange fees and card network fees).

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

General information

1. Operation

Bank transfers are the most common method of payment for business transactions. They involve the direct transfer of funds from one account (bank or payment account) to another, without using any additional medium, such as a card.

The individual or legal entity requesting the transfer is called the payer (or sender), and the one receiving the money is the payee. Unlike a card payment or a SEPA direct debit, only the sender themselves can initiate a wire transfer. To do so, they log in to their bank’s online banking portal, enter the beneficiary’s bank details (IBAN + BIC + account holder’s name), and then specify an amount and a transfer reference.

Some important information:

  • The processing time for a standard transfer with CentralPay is 4 to 24 business hours (compared to 24 to 48 business hours at most traditional banks). Starting in October 2024, it will also be possible to receive instant transfers (processed in <5 seconds).
  • The transfer does not pose a significant financial risk to the receiving merchant, since the sender undergoes strong authentication with their bank and therefore cannot dispute the transaction
  • Issuing banks set a settlement limit for wire transfers that is significantly higher than the limit applied to SEPA direct debit transactions or card payments
  • Depending on the features offered by their bank, the sender can set up a recurring transfer or a deferred transfer

2. Accepted Network Types

There are two types of bank transfers:

  • SEPA transfers (or SEPA Credit Transfers): Used for transactions in euros between two member countries of the SEPA area (= 27 European Union countries + the United Kingdom, Monaco, Andorra, the Vatican, Switzerland, Liechtenstein, Norway, Iceland, and San Marino)
  • International wire transfers: Used for international transactions in euros or other currencies via the SWIFT network

The fees for SEPA networks are very favorable (just a few tenths of a cent, compared to several tens of euros for SWIFT). SWIFT, however, offers several options for paying these fees: they can be borne by the sender, the recipient, or shared between the two.

CentralPay is accessible to all banks in the European Economic Area that use the SEPA networks (via STEP2 for SCT/SDD, as well as TIPS and RT1 for “Instant SCT”). Only transfers made through international networks or in currencies other than the euro are not currently accepted (via the SWIFT network, for example).

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

General information

The SEPA Direct Debit (or “SDD”) allows a creditor (merchant) to collect an amount owed directly from the debtor’s (customer’s) account. It is primarily intended for recurring payments (subscriptions or installment payments) but may, in certain cases, be used for one-time payments (for example, to settle invoices between businesses).

Since it is issued at the creditor’s initiative, it requires prior authorization from the debtor. The merchant therefore prepares a “SEPA Direct Debit Mandate” specifying the terms of the direct debit and the bank details of both parties, which the debtor must sign.

1. The two types of SEPA direct debits

There are two types of SEPA direct debits:

  • The SEPA “CORE” direct debit: the most widely used type, it allows creditors to debit the accounts of both individuals and legal entities. The SEPA direct debit mandate is drawn up and signed by both parties without any specific restrictions. However, the debtor is protected and may dispute a CORE direct debit with their bank within 8 weeks without providing a reason.
  • The SEPA “B2B” direct debit: reserved for direct debits between businesses. The SEPA direct debit mandate is printed, signed, and then must be submitted by the debtor to their bank. The onboarding process thus requires significant action on the part of the debtor and validation by their bank. However, direct debits initiated using this type of mandate cannot be disputed.
    CentralPay does not offer this “B2B” SEPA direct debit service

2. Risks of rejections and contests

Since the SEPA Direct Debit is a payment method in which transactions are initiated without strong customer authentication, the risks of rejections and disputes must be taken into account.

👉 See the “R-Transaction SDD” section to learn more about SDD rejections and disputes

3. Important information

  • The SEPA Direct Debit can be used with the vast majority of “checking” accounts in SEPA countries and some in the European Economic Area outside the SEPA zone. This depends on the connectivity of the payees’ banks to the SEPA networks. Special accounts, such as “savings accounts,” are not accessible.
  • SEPA transactions are processed in euros (€) only
  • SEPA transactions are processed on business days only (excluding weekends and holidays). As a result, the time it takes for funds to be received ranges from 2 to 5 days from the date the transaction is initiated.
  • The creditor must notify the debtor of upcoming debits at least 14 days in advance, either by sending a payment schedule, a notice, or an invoice
  • A SEPA direct debit mandate is valid for 36 months after the last transaction processed under that mandate
  • In the case of a SEPA direct debit from a business’s (legal entity’s) bank account, the creditor must ensure that the SEPA direct debit mandate is addressed to and signed by the executive or an authorized representative (manager, accounting department, etc.).
  • The SEPA Direct Debit is particularly well-suited for recurring transactions ranging from 20 to 200 EUR for individual payers and from 20 to 2,000 EUR for corporate payers

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.

General information

This section explains how to create CentralPay accounts, whether payment accounts or e-money accounts, as well as the methods available for initiating user onboarding through our tools (portal or API), depending on the partnership model.

1. Types of accounts

CentralPay allows users to open two types of regulated accounts:

Account typeDescriptionSamples of use
Payment accountPayment account as defined in article L314-1 of the Monetary and Financial Code.Payment by credit card, bank transfer, or SEPA.
E-money accountA prepaid account in euros issued by CentralPay, in accordance with the regulations governing electronic money institutions.Wallets, marketplaces C2C, cashback, titles.

The assignment of an account type depends on the merchant’s business model and whether the account is managed by an agent (DME or Agent).

2. General enrollment process

Opening an account always involves a registration process that includes:

  1. Creating an enrollment request: starting a file containing basic information (email, last name, first name)
  2. Completion of the registration process: submission by the user of required information and supporting documents (KYC/KYB)
  3. Enrollment validation: review by CentralPay, which may result in account opening, a request for additional information, or a rejection

3. Two possible interfaces

InterfaceDescriptionTarget audience
CentralPay enrollment portalInterface hosted by CentralPay, accessible via a personalized link.All types of users
Enrollment APIA technical interface that allows an intermediary to initiate or complete enrollments via API.Authorized intermediary by status

4. Compliance and regulation

In order to comply with the regulatory framework applicable to Payment Service Providers (PSP), the division of roles is strictly regulated:

  • CentralPay is the only party that initiates the contract process with the user
  • The technical partner may not encourage, advise, or initiate the opening of an account
  • The technical partner does not participate in the collection of supporting documents
  • Only partners registered as MOBSPs, or Agent or EMD representatives, may participate in the expanded enrollment steps
Partner modelCan initiate an enrollment requestCan complete an enrollment (API)Can submit KYC documentation
Technical PartnerYes*❌ No❌ No
EMD IntermediaryYes, via API or portal✅ Yes✅ Yes
PSP IntermediaryYes, via API or portal✅ Yes✅ Yes (Level 1 KYC or higher if mandate)
ℹ️ The technical partner can create an enrollment request containing only contact information (email, last name, first name, company name), without sending an enrollment link themselves. CentralPay retains sole discretion over the rest of the process.

Informations générales

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

Pour ce faire, le module comprend deux principaux services :

  • L’inscription, permettant la création de comptes de paiement et de monnaie électronique pour les marchands d’une plateforme
  • Le transfert, permettant le transfert des transactions vers ces comptes de paiement et de monnaie électronique

Selon le modèle de contractualisation CentralPay, les possibilités d’inscription et de transferts sont différentes.

1. Les types de transferts

Selon le modèle de partenariat établi avec CentralPay, le transfert des paiements est réalisé différemment :

  • Partenaires MOBSP : Vous devez utiliser le service de transfert via transaction
  • Agents PSP : Vous pouvez utiliser le service de transfert libre ou transfert via transaction
  • Distributeurs de ME : Vous devez utiliser le service de transfert via transaction pour la phase d’encaissement en devise. Ensuite, vous pouvez utiliser le service de transfert libre uniquement pour mouvementer la monnaie électronique entre les comptes de vos marchands participants

Pour connaitre votre modèle de partenariat, veuillez vous rapprocher de votre contact CentralPay.

General information

The Easy Wallet solution enables platforms to process payments and transfer them to third parties in compliance with European regulations.

To achieve this, the module includes two main services:

  • The registration, which enables the creation of payment and electronic money accounts for merchants on a platform
  • The transfer, which enables transactions to be transferred to these payment and electronic money accounts

According to the CentralPay contract model, the options for registration and transfers vary.

1. Types of transfers

According to the partnership model established with CentralPay, payouts are processed differently:

  • MOBSP Partners: You must use the transfer service via transaction
  • PSP Agents: You can use the free transfer service or transfer via transaction
  • EM Distributors: You must use the transfer service via transaction for the foreign currency collection phase. Then, you may use the free transfer service only to transfer electronic money between the accounts of your participating merchants.

To find out what type of partnership you have, please contact your CentralPay representative.

How to use the swagger

You’ll find below instruction to use our swagger properly

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


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

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

How to use the swagger

You’ll find below instruction to use our swagger properly

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


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

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

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

Subscription

The subscription service allows you to automatically process recurring transactions on your customer profiles based on a subscription template defined in advance via the CentralPay API or the Merchant Portal. You can then add due dates or modify the amounts on the fly using the Invoice & Invoice Item services.

This service allows you to generate either card transactions or SDD (SEPA Direct Debit) transactions.

Useful definitions for this section:

– SubscriptionModel :
subscription template (specifying the subscription amount and frequency)

– Subscription :
subscription appplied to a customer

– Invoice :
invoice, use this option if you need to change the amount within a subscription plan

– InvoiceItem :
line item or item included in the invoice. An invoice may contain multiple line items or items
ℹ️ The "Subscription" service is not the only way to process recurring transaction.
Visit the Recurring card transactions page or the Direct debit transactions page for details by payment method.

1. Create a subscription template (subscriptionModel)

Access:

Recette Merchent Portal – Subscription templates
Production Merchent Portal – Subscription templates

The subcriptionModel allows you to create different types of subscriptions based on the services you offer. For example, if you have two types of subscription plans available—one that includes the basic features of your service and the other that includes advanced features, you will need to create two models:

  • One for the “basic” subscription plan
  • One for the “advanced” subscription plan

Each “SubscriptionModel” has a unique ID. You will provide this ID in your API requests when you want to apply a subscription to a customer based on that model.

You can use the following attributes:

  • amount : amount to be entered in centimes
  • intervalUnit : DAY / WEEK / MONTH / YEAR (day / week / month / year)
  • intervalCount : the number of « intervalUnit » units between two due dates (e.g., if intervalUnit = DAY and intervalCount = 10, then there will be a transaction every 10 days)
  • iterationCount: number of installments (note that the first transaction is not included in this parameter; it is therefore added to this number)

Example:

  • amount = 3000
  • intervalUnit = DAY
  • intervalCount = 3
  • iterationCount = 3

This means your subscription template will be set up to bill your customer 30.00 EUR every 3 days for 4 billing cycles (for a total subscription period of 12 days).

2. Create a subscription (subscription)

To create a subscription, you must first create a Customer that contains at least:

  • A Card (if you wish to make card transactions)
  • Or a Mandate (if you wish to make card transactions via SEPA direct debit)

You can then create a Subscription:

  • Depending on your preferred payment method:
    • for card transactions : enter the customer profile ID « customerId »
    • for transactions via SEPA direct debit : enter the mandate SEPA direct debit ID « mandateId » an enter the desired transaction date in “requestedCollectionDate”
    • for transactions between CentralPay accounts : enter the sender’s account ID “walletId”
  • Enter the subscription template ID « subscriptionModelId
  • Enter your client’s IP address in “endUserIp”
  • Enter your CentralPay point-of-sale ID in the “pointOfSaleId” field

Please note that when a subscription is created, your customer automatically receives an email containing the details of their payment schedule. This email also includes a link to our Customer Portal, where they can view the status of their recurring payments, update their credit card or SEPA direct debit information, and cancel a subscription if necessary.

ℹ️ Customers can cancel their subscription at any time through the customer portal provided to them. Be sure to subscribe to the subscription cancellation webhooks. If your subscription includes a minimum commitment period, it is best to use the recurring payment method or ask CentralPay not to share the link to the customer portal.  

Automating retries in case of failure

If a payment fails to be debited, CentralPay will make additional debit attempts based on the settings defined in the Merchant Portal.

Access:

Recette Merchent Portal – Subscription settings
Production Merchent Portal – Subscription settings

Field behavior:

  • Transaction time: the time at which the direct debit payments will be processed by CentralPay
    • Selection of a value between 4 and 23
  • First failed invoice payment: What to do in the event of a first failed direct debit
    • Try again in 1, 3, 5, or 7 days = a new attempt to process the transaction on day+X after the initial transaction
    • Stop = the system will immediately perform the final action, without considering the subsequent actions.
  • Second failed invoice payment: What to do in the event of a second failed direct debit
    • Try again in 1, 3, 5 or 7 days = a new attempt to process the transaction on day+X after the previous attempt.
    • Stop = the system will immediately perform the final action, without considering the subsequent actions.
  • Third failed invoice payment: What to do in the event of a third failed direct debit
    • Try again in 1, 3, 5 or 7 days = a new attempt to process the transaction on day+X after the previous attempt.
    • Stop = the system will immediately perform the final action, without considering the subsequent actions.
  • Final action: What to do if the previous actions failed.
    • CANCELED = Subscription cancelation (changing the subscription status to CANCELED)
    • FAILURE = Subscription failure (subscription status changed to FAILURE)
    • UNPAID = Unpaid subscription (subscription status changed to FAILURE + SUBSCRIPTION_UNPAID hook sent)

4. Subscription cancellation functions

There are two ways to cancel a subscription via the API, the Merchant Portal, or the Customer Portal:

  • Cancel: the subscription is canceled immediately
  • Cancel at the end of the billing period: The subscription will be canceled at the end of the current billing period (so that the subscriber can continue to use your service during their last paid period). When using the API, you must fill in the “atPeriodEnd” field.
    • Note: During this time, you can reactivate your subscription using the “reactivate” feature in Subscriptions.
ℹ️ Subscriptions for which all payments have been made automatically change to CANCELED status.

5. Change the amount of a subscription payment

CentralPay creates an invoice for each billing cycle of a subscription, based on the associated subscription model (subscriptionModel).

You can take manual actions at any time to modify the billing dates (invoices) for a subscription. Below is a list of possible actions:

  • Modify the amount of an invoice installment: The invoiceItem service allows you to modify the amount of an invoice installment by entering a positive or negative amount that will be added to the original installment amount. The invoiceItem will be applied to the next subscription installment, whether it is created manually or automatically. You can also specify a particular installment in your request by providing an invoiceId.
  • Create an additional payment due date: so-called “recurring” payment due dates (invoices) are created automatically based on your subscription model. You can create additional one-time payment due dates for your subscription by creating an invoice.
  • Delete an unprocessed invoiceItem: if it is not yet linked to an invoice
  • Close an upcoming payment due date: if you do not want CentralPay to process a payment (and/or its automatic retry attempts), you can close it using the “close” feature on the invoice. If necessary, you can reopen this payment due date using the “reopen” feature on the invoice if it has not been paid or if there are still scheduled retry attempts remaining.
  • Forcing a payment due: transactions are processed automatically by the subscription service; however, you can initiate the transaction in advance or retry it manually using the “pay” feature on the invoice. These “manual” payments are not tracked by the automated retry system. This action can be performed on a closed invoice.

6. Complete guide to creating a subscription

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

Contact CentralPay >

CentralPay is committed to healthy growth, ensuring that our users receive daily support from stable teams of experts in their respective fields (compliance, electronic payments, security, etc.).

Our customer service and support teams can be reached Monday through Friday via the « Help & Support » section of your Merchant Portal, by email, or by videoconference by appointment.

1. Before submitting a technical request

Here are a few things you can check beforehand:

  • Authentication: Are you properly authenticated?
  • Environment: Are you in the correct environment for the Merchant Portal and the API (Sandbox or LIVE)?
  • Authorization: Do you have the necessary permissions to perform this operation? HTTP error 403 indicates an authorization error.
  • HTTP Error: See the meanings of CentralPay HTTP error codes. If you receive an HTTP 500 error code, please contact technical support immediately.

2. Information to Provide for All Technical Inquiries

  • The specific dates and times of the relevant events
  • The link (URL) to the relevant page
  • One or more screenshots, ideally a video (Cloudapp lets you record a video of a page in the Google Chrome browser)
  • A UUID (or ID) for the transaction in question and its type (Card Transaction, Refund, Payment Request, etc.)
  • The environment in which you are working (Sandbox testing or LIVE production)
  • A detailed description of the problem you are experiencing or your question

This information will help us support you and analyze your situation more effectively.

Your requests will be given priority if they are submitted through the « Help and Support » section of the Merchant Portal:

Recette Merchant Portal – Help and Support
Production LIVE E-commerce Merchant Portal – Help and Support

Transaction initiée par le porteur (CIT – BRW)

Le flux BRW (Browser) s’applique aux transactions initiées par le client (CIT — Customer-Initiated Transaction) : le titulaire de la carte est présent et valide lui-même le paiement. Cette CIT authentifiée sert aussi de socle aux transactions MIT futures.

👉 Pour une transaction initiée par le marchand sans le porteur (facturation récurrente, montant variable, usage-based, frais ponctuels), consultez la documentation du flux 3RI.

❌ Attention au choix du flux : utiliser le BRW pour une transaction initiée par le marchand (MIT) entraîne une non-conformité, une friction inutile et une réduction importante du taux de conversion.

1. Les grandes étapes du flux BRW

Le flux BRW enchaîne cinq étapes côté API, dont deux conditionnelles : versioning (la carte est-elle authentifiable ?) → 3DS Method (si nécessaire) → authentification → challenge (si la banque l’exige) → résultat, avant de réaliser la transaction.

Schéma du flux 3DS 2.2 BRW
ℹ️ Tout le processus doit se dérouler sur une seule et même page web, sans redirection vers une page bancaire, grâce à une solution d'iframe. C'est une contrainte du process bancaire.

Pour accélérer votre intégration du flux BRW, vous pouvez partir d’une application d’exemple complète (PHP / Twig) qui rejoue toute la séquence décrite sur cette page : formulaire de paiement CUSTOM, versioning, 3DS Method en iframe, authentication, gestion du challenge, results puis transaction, le tout sur une seule et même page, conformément à la contrainte bancaire.

👉 Télécharger le code d’exemple  ·  Voir la démo en ligne

Avant de lancer le code d'exemple, renseignez vos identifiants dans le fichier .env (API_USER, API_PASSWORD, POS_UUID) et faites pointer HOST_CENTRALPAY_API_CORE vers l'environnement de test https://test-api.centralpay.net/v2/rest/.

2. Versioning

Le versioning est la première étape : il interroge le réseau de la carte pour savoir si elle peut être authentifiée en 3DS 2.2, et récupère les éléments techniques nécessaires à la suite. Concrètement, vous adressez à l’API CentralPay le PAN de la carte (Primary Account Number, le numéro à 16 chiffres).

Exemple (curl) :

curl --location --request POST 'https://test-api.centralpay.net/v2/rest/3ds2/versioning' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA==' \
--data-urlencode 'acctNumber=4000001000000067'

Comprendre la réponse. Une carte est dite « enrôlée » lorsque la banque qui l’a émise participe au protocole 3DS 2.2 pour cette carte. C’est la banque émettrice qui en décide : ni vous ni CentralPay ne pouvez enrôler une carte. Le versioning sert justement à savoir si c’est le cas.

  • Carte non enrôlée → le versioning retourne une erreur 404 : l’authentification 3DS 2.2 est impossible pour cette carte. Prévoyez un repli (basculement en 3DS1 si supporté, ou refus du paiement selon votre politique de risque).
  • Carte enrôlée → vous recevez un identifiant d’opération, le threeDSServerTransID (généré par CentralPay et conservé jusqu’au résultat final), ainsi que, le cas échéant, les données nécessaires au « 3DS Method » (une URL + une donnée encodée en base64).

Pour une carte enrôlée, deux réponses sont possibles :

Version 1 (la plus fréquente) — un 3DS Method est attendu :

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "threeDSMethodURL": "https://test-3dss-demo.centralpay.net/acs/3ds-method",
    "threeDSMethodDataForm": {
        "threeDSMethodData": "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly90ZXN0LTNkc3MuY2VudHJhbHBheS5uZXQvM2RzLzNkcy1tZXRob2Qtbm90aWZpY2F0aW9uLyIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiOWNjNmIzM2MtZGQzNS00ZmJkLTgxY2QtZmQ5Y2YwYWVlZDljIn0="
    },
    "errorDetails": null
}

Les champs threeDSMethodURL et threeDSMethodData sont renseignés : passez à l’étape 3. 3DS Method.

Version 2 — pas de 3DS Method :

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "threeDSMethodURL": null,
    "threeDSMethodDataForm": null,
    "errorDetails": null
}

Seul threeDSServerTransID est renseigné (les champs 3DS Method sont vides) : passez directement à l’étape 4. Authentification.

3. 3DS Method

À quoi ça sert ? Le 3DS Method permet à la banque du porteur — via son ACS (Access Control Server, le serveur de la banque émettrice qui authentifie le porteur) — de collecter discrètement des informations techniques sur le navigateur du client, avant l’authentification. Ces informations enrichissent son analyse de risque et augmentent les chances d’une authentification frictionless (sans challenge pour le porteur).

Quand l’exécuter ? Uniquement si le versioning a renvoyé une valeur pour threeDSMethodURL et threeDSMethodData (cas « Version 1 » ci-dessus). Sinon, passez directement à l’authentification.

Comment ? Chargez l’threeDSMethodURL dans une iframe invisible (masquée à l’écran : cet échange est purement technique et ne doit rien afficher au porteur) et postez-y le champ threeDSMethodData. C’est le navigateur du porteur qui effectue cet appel vers la banque, en arrière-plan.

4. Authentification (BRW)

L’appel est adressé à l’URL 3ds2/authentication de l’API CentralPay. Cette requête transmet les données contextuelles liées au porteur et à son navigateur, qui permettent à la banque de décider si une authentification active (challenge) est nécessaire.

Exemple (curl) :

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'
💡 deviceChannel=02 indique le canal navigateur, propre au flux BRW. Les paramètres browser* (caractéristiques du navigateur du porteur) sont donc obligatoires ici.
Pour augmenter le taux d'authentification Frictionless, enrichissez cette requête avec les données contextuelles du porteur → voir Optimiser le taux de Frictionless

Champs à préciser selon l’objet de la CIT. Le champ threeDSRequestorAuthenticationInd est obligatoire : il indique la nature de l’authentification. Une CIT BRW peut servir soit à authentifier un paiement (messageCategory=01, PA), soit à authentifier une carte ou son porteur sans débit (messageCategory=02, NPA) — par exemple pour enregistrer une carte, la mettre à jour ou en vérifier le porteur. Les deux champs se renseignent de façon cohérente :

threeDSRequestorAuthenticationIndObjet de la CITmessageCategoryChamps requis en plus
01 — PaymentPaiement unitaire (ponctuel)01 (PA)—
02 — RecurringPaiement récurrent (abonnement)01 (PA)recurringExpiry, recurringFrequency
03 — InstalmentPaiement échelonné (en plusieurs fois)01 (PA)recurringExpiry, recurringFrequency, purchaseInstalData
04 — Add cardEnregistrement / empreinte d’une carte pour usage futur, sans débit02 (NPA)—
05 — Maintain cardMise à jour des informations d’une carte déjà enregistrée (ex. renouvellement)02 (NPA)—
06 — Cardholder verificationVérification du porteur dans le cadre de l’ID&V d’un token EMV02 (NPA)—
  • recurringExpiry → date après laquelle plus aucune autorisation ne sera effectuée (format YYYYMMDD).
  • recurringFrequency → nombre minimum de jours entre deux autorisations (1 à 999).
  • purchaseInstalData → nombre maximum d’autorisations (échéances) prévues pour le paiement échelonné (1 à 999).
ℹ️ Les cas 04, 05 et 06 sont des authentifications hors paiement : aucun montant ni champ de récurrence n'est requis. Elles ne préparent pas forcément une MIT — ce sont souvent une fin en soi (enregistrer, vérifier ou maintenir une carte). La carte ainsi authentifiée pourra ensuite servir à des transactions CIT (porteur présent) comme MIT (3RI).

La réponse contient un statut d’authentification (transStatus) qui détermine la suite à donner :

❌ Pas d’autorisation — ne pas effectuer la transaction

Statut (transStatus)Signification
NNon authentifié / compte non vérifié. Transaction refusée.
UAuthentification / vérification impossible (problème technique ou autre).
RAuthentification / vérification rejetée. L’émetteur demande de ne pas tenter d’autorisation.
IInformation seulement. Reconnaissance de la préférence du demandeur pour le challenge 3DS.

✅ Autorisation sans challenge

Statut (transStatus)Signification
YAuthentification réussie.
ATentative effectuée. Non authentifié / vérifié, mais une preuve de tentative est fournie.

🔐 Autorisation après challenge

Statut (transStatus)Signification
CChallenge requis : le porteur doit s’authentifier activement (voir étape 5), via les messages CReq/CRes (Challenge Request / Response).
DChallenge requis. Authentification découplée confirmée.

Exemples de réponses :

C — Challenge requis :

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "transStatus": "C",
    "acsTransID": "375d90ad-3873-498b-9133-380cbbc8d99d",
    "acsURL": "https://test-3dss-demo.centralpay.net/acs/challenge",
    "acsChallengeMandated": "Y",
    "base64EncodedChallengeRequest": "eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImU2MDFlYjQ0LTU2N2MtNDM4Ny05MmZjLWU2ZjIzMjJiODIyYiIsImFjc1RyYW5zSUQiOiI3ZTQzZDI4ZC00M2RkLTRmM2MtYTcwOS00YjZkZDVlZjc5Y2QiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIn0=",
    "contractId": "71602dd0-2790-4743-877b-e72530d7576d"
}

Y — Authentification réussie (challenge non nécessaire) :

{
    "threeDSServerTransID": "7d994177-32d8-43f7-87a4-3a3cd734cbfe",
    "transStatus": "Y",
    "acsTransID": "375d90ad-3873-498b-9133-380cbbc8d99d",
    "authenticationValue": "MTIzNDU2Nzg5MDA5ODc2NTQzMjEa",
    "eci": "02",
    "contractId": "71602dd0-2790-4743-877b-e72530d7576d"
}

Les champs requis pour la transaction sont présents : threeDSServerTransID, transStatus, authenticationValue (le cavv — Cardholder Authentication Verification Value, le cryptogramme qui prouve l’authentification) et eci (Electronic Commerce Indicator, qui indique le niveau d’authentification obtenu et conditionne le transfert de responsabilité en cas de fraude). Le xid n’est pas fourni : c’est une référence libre destinée aux marchands.

N — Transaction refusée :

{
    "threeDSServerTransID": "6396b832-3e5b-4143-bde6-f5r1c1e47da0",
    "transStatus": "N",
    "eci": "00",
    "contractId": "258128f3-5db9-4235-918a-f1d786f67c29"
}

5. Challenge

Le challenge est l’étape où le porteur s’authentifie activement auprès de sa banque (code à usage unique reçu par SMS, validation dans l’application bancaire, biométrie…). Il n’a lieu que si l’authentification a renvoyé transStatus = C.

  • Une iframe doit soumettre un formulaire à l’acsURL retournée à l’étape 4.
  • Le seul paramètre envoyé est creq, dont la valeur est le base64EncodedChallengeRequest issu de l’authentification.
  • À la fin du challenge, l’URL que vous avez fournie (notificationURL) est appelée par la banque.

En environnement de test, le challenge s’affiche sous forme d’un OTP (One-Time Password, code à usage unique) ; en production, c’est la fenêtre de l’ACS de la banque qui s’affiche :

Fenêtre de challenge OTP en environnement de test

OTP de test :

  • 1234 → Y (simule un challenge réussi – Authentification réussie)
  • 4444 → A (simule un challenge réussi – Non authentifié / vérifié, mais une preuve de tentative est fournie.)
  • 1111 → N (simule un challenge échoué – Non authentifié / compte non vérifié)
  • 2222 → R (simule un challenge échoué – Authentification / vérification rejetée)
  • 3333 → U (simule un challenge échoué – Authentification / vérification impossible (problème technique ou autre)

6. Réponse du challenge

À l’issue du challenge, le résultat est transmis dans le paramètre cres, encodé en base64. Décodez-le pour lire le statut. Exemple en PHP :

$retour = json_decode(base64_decode($_POST['cres']), true);
  • Si le statut est Y ou A, le challenge est validé et le paiement est autorisé : appelez GET /results (étape 7) pour récupérer les données 3DS nécessaires à la transaction.
  • Toute autre valeur signifie que le challenge a échoué : le paiement est refusé.

7. Résultat

Cette étape récupère les données 3DS définitives à reporter dans la transaction. Adressez le threeDSServerTransID de l’authentification.

ℹ️ Si l'authentification a directement retourné transStatus = Y (sans challenge), les données 3DS y figurent déjà : cette étape n'est pas nécessaire.

Appel :

curl --location -g --request GET 'https://test-api.centralpay.net/v2/rest/3ds2/results/{{threeDSServerTransID}}' \
--header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA=='

Réponse :

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "transStatus": "Y",
    "acsTransID": "375d90ad-3873-498b-9133-380cbbc8d99d",
    "authenticationValue": "JAmi21makAifmwqo2120cjq1AAA=",
    "eci": "01"
}
🔁 Préparer les MIT futures (3RI). Si cette CIT doit servir de référence à des paiements ultérieurs initiés par le marchand, conservez l'acsTransID de la séquence d'authentification : il sera requis comme threeDSReqPriorRef côté 3RI.

8. Transaction

Données à renseigner pour valider une transaction authentifiée en 3DS 2.2 :

  • 3ds[threeDSServerTransID] = threeDSServerTransID
  • 3ds[status] = transStatus
  • 3ds[cavv] = authenticationValue
  • 3ds[eci] = eci (obligatoire si disponible)
  • 3ds[xid] = paramètre custom, référence libre destinée aux marchands

Exemple (curl) :

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'

Étape suivante : pour les transactions ultérieures initiées par le marchand (MIT), voir 3DS 2.2 – 3RI.

Transaction Initiated by the Holder (CIT – BRW)

The BRW (Browser) flow applies to Customer-Initiated Transactions (CIT): the cardholder is present and authorizes the payment personally. This authenticated CIT also serves as the foundation for future MIT transactions.

👉 For a transaction initiated by the merchant without the cardholder (recurring billing, variable amounts, usage-based charges, one-time fees), see the 3RI flow documentation.

❌ Be careful when choosing the payment flow: Using BRW for a merchant-initiated transaction (MIT) results in non-compliance, unnecessary friction, and a significant drop in the conversion rate.

1. The main steps in the BRW workflow

The BRW flow consists of five steps on the API side, two of which are conditional: versioning (is the card authenticatable?) → 3DS Method (if necessary) → authentication → challenge (if required by the bank) → result, before completing the transaction.

3DS 2.2 BRW flow diagram
ℹ️ The entire process must take place on a single web page, without being redirected to a bank page, using an iframe solution. This is a requirement of the banking process. 

To speed up your integration of the BRW flow, you can start with a complete sample application (PHP/Twig) that replicates the entire sequence described on this page: CUSTOM payment form, versioning, 3DS Method in an iframe, authentication, challenge handling, results, and then the transaction, all on a single page, in accordance with banking requirements.

👉 Download the sample code · View the online demo

Before running the sample code, enter your credentials in the file .env  (API_USER,  API_PASSWORD,  POS_UUID) and point it HOST_CENTRALPAY_API_CORE to the test environment https://test-api.centralpay.net/v2/rest/.

2. Versioning

The versioning is the first step: it queries the card network to determine whether the card can be authenticated using 3DS 2.2, and retrieves the technical information needed for the rest of the process. Specifically, you send the card’s PAN (Primary Account Number, the 16-digit number) to the CentralPay API.

Sample (curl) :

curl --location --request POST 'https://test-api.centralpay.net/v2/rest/3ds2/versioning' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA==' \
--data-urlencode 'acctNumber=4000001000000067'

Understanding the response. A card is said to be “enrolled” when the bank that issued it participates in the 3DS 2.2 protocol for that card. This is determined by the issuing bank: neither you nor CentralPay can enroll a card. Versioning is used precisely to determine whether this is the case.

  • Card not enrolled → versioning return a 404 error: the 3DS 2.2 authentification is impossible for this card. Plan for a fallback (switch to 3DS1 if supported, or decline the payment according to your risk policy).
  • Card enrolled → you receive a transaction ID, the threeDSServerTransID (generated by CentralPay and retained until the final result is available), as well as, if applicable, the data required for the “3DS Method” (a URL and data encoded in Base64).

For a rolled-up card, there are two possible answers:

Version 1 (the most common) — a 3DS Method is expected:

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "threeDSMethodURL": "https://test-3dss-demo.centralpay.net/acs/3ds-method",
    "threeDSMethodDataForm": {
        "threeDSMethodData": "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly90ZXN0LTNkc3MuY2VudHJhbHBheS5uZXQvM2RzLzNkcy1tZXRob2Qtbm90aWZpY2F0aW9uLyIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiOWNjNmIzM2MtZGQzNS00ZmJkLTgxY2QtZmQ5Y2YwYWVlZDljIn0="
    },
    "errorDetails": null
}

The threeDSMethodURL and threeDSMethodData field have been filled in: proceed to step 3. 3DS Method.

Version 2 — no 3DS Method:

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "threeDSMethodURL": null,
    "threeDSMethodDataForm": null,
    "errorDetails": null
}

Only threeDSServerTransID is filled in (the 3DS Method fields are empty): proceed directly to Step 4. Authentication.

3. 3DS Method

What is it used for? The 3DS Method allows the cardholder’s bank — via its ACS (Access Control Server, the issuing bank’s server that authenticates the cardholder) — to discreetly collect technical information about the customer’s browser, before authentication. This information enhances the bank’s risk analysis and increases the likelihood of frictionless authentication (without requiring the cardholder to complete a challenge).

When should this be executed? Only if versioning returned a value for threeDSMethodURL and threeDSMethodData (the “Version 1” case above). Otherwise, proceed directly to authentication.

How? Load the threeDSMethodURL into an invisible iframe (hidden from view: this exchange is purely technical and should not display anything to the user) and post the threeDSMethodData field there. The user’s browser makes this call to the bank in the background.

4. (BRW) Authentification

The request is sent to the CentralPay API URL 3ds2/authentication. This request transmits contextual data related to the cardholder and their browser, which allows the bank to determine whether active authentication (challenge) is required.

Sample (curl) :

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'
💡 deviceChannel=02 indicates the browser channel, specific to the BRW feed. The browser* (the cardholder's browser characteristics) are therefore required here.
To increase the frictionless authentication rate, enrich this request with contextual data about the cardholder → see Optimizing the Frictionless Rate

Fields to be specified based on the purpose of the CIT. Field threeDSRequestorAuthenticationInd is required: it specifies the type of authentication. A CIT BRW can be used to authenticate a payment (messageCategory=01, PA), or to authenticate a card or its holder without a charge (messageCategory=02, NPA) — for example, to register a card, update it, or verify the cardholder. Both fields must be filled out consistently:

threeDSRequestorAuthenticationIndPurpose of the CITmessageCategoryAdditional required fields
01 — PaymentPer-unit payment (one-time)01 (PA)—
02 — RecurringRecurring payment (subscription)01 (PA)recurringExpiry, recurringFrequency
03 — InstalmentInstallment payments (in several payments)01 (PA)recurringExpiry, recurringFrequency, purchaseInstalData
04 — Add cardRegistering/encoding a card for future use, with no charge02 (NPA)—
05 — Maintain cardUpdating the information for an already registered card (e.g., renewal)02 (NPA)—
06 — Cardholder verificationCardholder verification as part of the ID&V process for an EMV token02 (NPA)—
  • recurringExpiry → the date after which no further authorizations will be issued (format YYYYMMDD).
  • recurringFrequency → minimum number of days between two authorizations (1 to 999).
  • purchaseInstalData → maximum number of authorizations (due dates) specified for installment payments (1 to 999).
ℹ️ Cases 04, 05, and 06 are non-payment authentications: no amount or recurrence field is required. They do not necessarily lead to an MIT transaction — they are often an end in themselves (to register, verify, or maintain a card). The card authenticated in this way can then be used for both CIT (cardholder present) and MIT (3RI) transactions.  

The response contains an authentication status (transStatus) that determines the next steps:

❌ No authorization — do not complete the transaction

Status (transStatus)Meaning
NNon authenticated/unverified account. Transaction declined.
UAuthentication/verification failed (technical issue or other problem).
RAuthentication/verification declined. The sender requests that you do not attempt to obtain authorization.
IFor informational purposes only. Acknowledgment of the applicant’s preference for the 3DS Challenge.

✅ Authorization without challenge

Status (transStatus)Meaning
YAuthentication successful.
AAttempt made. Not authenticated/verified, but a proof of the attempt is provided.

🔐 Authorization after challenge

Status (transStatus)Meaning
CChallenge required: the owner must actively authenticate (see step 5) using CReq/CRes (Challenge Request/Response) messages.
DChallenge required. Decoupled authentication confirmed.

Sample of responses:

C — Challenge required:

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "transStatus": "C",
    "acsTransID": "375d90ad-3873-498b-9133-380cbbc8d99d",
    "acsURL": "https://test-3dss-demo.centralpay.net/acs/challenge",
    "acsChallengeMandated": "Y",
    "base64EncodedChallengeRequest": "eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImU2MDFlYjQ0LTU2N2MtNDM4Ny05MmZjLWU2ZjIzMjJiODIyYiIsImFjc1RyYW5zSUQiOiI3ZTQzZDI4ZC00M2RkLTRmM2MtYTcwOS00YjZkZDVlZjc5Y2QiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIn0=",
    "contractId": "71602dd0-2790-4743-877b-e72530d7576d"
}

Y — Authentication successful (no challenge required):

{
    "threeDSServerTransID": "7d994177-32d8-43f7-87a4-3a3cd734cbfe",
    "transStatus": "Y",
    "acsTransID": "375d90ad-3873-498b-9133-380cbbc8d99d",
    "authenticationValue": "MTIzNDU2Nzg5MDA5ODc2NTQzMjEa",
    "eci": "02",
    "contractId": "71602dd0-2790-4743-877b-e72530d7576d"
}

The required fields for the transaction are present: threeDSServerTransID, transStatus, authenticationValue (the CAVV — Cardholder Authentication Verification Value, the security code that verifies authentication) and eci (Electronic Commerce Indicator, which indicates the level of authentication achieved and determines the transfer of liability in the event of fraud). The xid is not provided: it is an optional reference intended for merchants.

N — Transaction declined:

{
    "threeDSServerTransID": "6396b832-3e5b-4143-bde6-f5r1c1e47da0",
    "transStatus": "N",
    "eci": "00",
    "contractId": "258128f3-5db9-4235-918a-f1d786f67c29"
}

5. Challenge

The challenge is the step in which the cardholder actively authenticates themselves with their bank (one-time code received via text message, validation in the banking app, biometrics, etc.). It occurs only if the authentication returned transStatus = C.

  • An iframe must submit a form to the acsURL page returned in step 4.
  • The only parameter sent is creq, whose value is the base64EncodedChallengeRequest obtained from authentication.
  • At the end of the challenge, the URL you provided (notificationURL) is called by the bank.

In a test environment, the challenge appears as an OTP (One-Time Password); in production, the bank’s ACS window appears:

OTP challenge window in a test environment

Test OTP:

  • 1234 → Y (simulates a successful challenge – Authentication successful)
  • 4444 → A (simulates a successful challenge – Not authenticated/verified, but a proof of the attempt is provided.)
  • 1111 → N (simulates a failed challenge – No authenticated/unverified account)
  • 2222 → R (simulates a failed challenge – Authentication/verification declined)
  • 3333 → U (simulates a failed challenge – Authentication/verification failed (technical issue or other problem)

6. Challenge response

Once the challenge is complete, the result is returned in the cres parameter, encoded in Base64. Decode it to read the status. Example in PHP:

$retour = json_decode(base64_decode($_POST['cres']), true);
  • If the status is Y or A, the challenge is validated and the payment is authorized: call GET /results (step 7) to retrieve the 3DS data required for the transaction.
  • Any other value means the challenge failed: the payment was declined.

7. Result

This step retrieves the final 3DS data to be included in the transaction. Send the threeDSServerTransID authentication request.

ℹ️ If the authentication returned transStatus = Y directly (without a challenge), the 3DS data is already included: this step is not necessary.

Call:

curl --location -g --request GET 'https://test-api.centralpay.net/v2/rest/3ds2/results/{{threeDSServerTransID}}' \
--header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA=='

Response:

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "transStatus": "Y",
    "acsTransID": "375d90ad-3873-498b-9133-380cbbc8d99d",
    "authenticationValue": "JAmi21makAifmwqo2120cjq1AAA=",
    "eci": "01"
}
🔁 Prepare for future MITs (3RI). If this CIT is to serve as a reference for subsequent payments initiated by the merchant, retain the acsTransID from the authentication sequence: it will be required as threeDSReqPriorRef on the 3RI side.

8. Transaction

Information required to validate a transaction authenticated using 3DS 2.2:

  • 3ds[threeDSServerTransID] = threeDSServerTransID
  • 3ds[status] = transStatus
  • 3ds[cavv] = authenticationValue
  • 3ds[eci] = eci (required if available)
  • 3ds[xid] = custom parameter, free-form reference for merchants

Sample (curl) :

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'

Next step: For subsequent merchant-initiated transactions (MIT), see 3DS 2.2 – 3RI.

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 centralpay221.zip et cliquez sur Installer maintenant
  5. Une fois l’installation terminée, cliquez sur Activer l’extension

3. Configuration du module

  1. Allez dans WooCommerce > Réglages > Paiements
  2. Cliquez sur CentralPay pour accéder à la configuration
  3. Renseignez les champs suivants puis cliquez sur Enregistrer les modifications :
ChampDescriptionAccès à la donnée
Identifiant marchandIl s’agit de votre Merchant Public Key. Ne pas confondre avec le Merchant UUID.Portail Marchand CentralPay > Administration > Technique > Copier « Merchant Public Key »
Login APIIdentifiant de votre utilisateur API CentralPayPortail Marchand CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »
Mot de passe APIMot de passe de votre utilisateur API CentralPayPortail Marchand CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Modifier > Générer un mot de passe > Copier le mot de passe > cliquer sur « Mettre à jour »
ID du point de venteIdentifiant unique de votre point de vente (UUID)Portail Marchand CentralPay > Configuration > Points de ventes > Copiez l’ID du point de vente concerné
Mode test / productionActivez le mode test si vous souhaitez utiliser l’environnement sandbox (les logins et identifiants doivent être ceux de votre profil marchand CentralPay de test)./
URL de redirectionRedirige vos clients vers une page personnalisée après paiement sur notre formulaire.Renseignez l’URL de votre page de confirmation de paiement.

4. Statut de commande

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

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

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

Étapes de configuration :

  1. Accédez à :
    Production : https://backoffice.centralpay.net/admin/hook/
    Test : https://test-backoffice.centralpay.net/admin/hook/
  2. Créez un Hook avec les paramètres suivants :
    • Événement : Point de Vente > TRANSACTION_SUCCEDEED
    • Affecté au Point de Vente : sélectionnez votre Point de Vente WooCommerce
    • URL : https://votre-site-woocommerce.com/?wc-api=cpay_validation
      (Remplacez par l’URL de votre site WooCommerce.)
  3. Sauvegardez le Hook

Le paramètre /?wc-api=cpay_validation est nécessaire pour que le plugin WooCommerce de CentralPay reconnaisse la notification et déclenche la mise à jour du statut de la commande.

Cette configuration doit être réalisée à la fois dans votre environnement de test et sur votre profil marchand de production.

5. Personnalisation du logo

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

  1. Accédez à : https://backoffice.centralpay.net/admin/point_of_sale/
  2. Dans le détail de votre Point de Vente, cliquez sur Modifier
  3. Importez votre logo dans la section Logo

Ce logo sera affiché directement dans le formulaire de paiement pour une expérience utilisateur plus cohérente.

6. Mode test

  • Activez le mode test dans la configuration (attention, vous devez disposer d’un profil marchand CentralPay de test et renseigner les identifiants de ce profil de test)
  • Utilisez les cartes de test fournies par CentralPay pour simuler des paiements
  • Vérifiez le bon fonctionnement :
    • Du formulaire de paiement
    • Des redirections
    • Des statuts de commande

7. Suivi des paiements

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

8. Langues disponibles

Le plugin est disponible en :

  • 🇫🇷 Français
  • 🇬🇧 Anglais

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

9. Désinstallation

Pour désinstaller le plugin :

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

10. Support

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

WooCommerce

This guide will walk you through the installation, configuration, and use of the CentralPay plugin for WooCommerce (WordPress).

ℹ️ The CentralPay platform supports various payment methods (credit/debit cards, Bank transfers, SEPA Direct Debits, and Payment Initiation Service (PIS)) and payment options (one-time payments, subscriptions, installment plans, etc.). This plugin only allowsfor the processing of one-time credit/debit card transactions.   

If you'd like to request a change to the plugin, please visit https://support.centralpay.com: Support & Settings > Suggest a new feature.

1. Download the plugin

  • For WooCommerce ➝ Download the CentralPay plugin ZIP archive

⚠️ Be sure not to unzip it manually.

2. Installation on WordPress

  1. Log in to your WordPress admin dashboard
  2. Go to Extensions > Add
  3. Click  » Upload an Extension« 
  4. Select the file  » centralpay220.zip  » and click  » Install Now« 
  5. Once the installation is complete, click  » Enable Extension« 

3. Module Configuration

  1. Go to WooCommerce > Settings > Payments
  2. Click on CentralPay to access the settings
  3. Fill in the following fields, then click  » Save Changes « :
FieldDescriptionAccess to Data
Merchant IDThis is your Merchant Public Key. Do not confuse it with the Merchant UUID. CentralPay Merchant Portal > Administration > Technical Support > Copy « Merchant Public Key »
API LoginYour CentralPay API user IDCentralPay Merchant Portal > Administration > Technical Support > Click on your « API ID » > Copy the « login »
API PasswordYour CentralPay API user passwordCentralPay Merchant Portal > Administration > Technique > Click on your « API ID » > Edit > Generate a password > Copy the password > Click « Update »
POS IDUnique identifier for your Point of Sale (POS) (UUID)CentralPay Merchant Portal > Configuration > Points of Sale > Copy the ID of the relevant Point of Sale (POS)
Test / Production ModeEnable test mode if you want to use the sandbox environment (the login and password must be those for your CentralPay test Merchant Profile)./
Redirect URLRedirects your customers to a custom page after they complete payment through our form.Enter the URL of your payment confirmation page.

4. Order Status

The CentralPay WooCommerce plugin automatically includes a redirect URL (return_url) in the payment form link. This URL redirects the customer to the order confirmation page (/checkout/order-received/) and updates the order status based on the payment result.

If the end customer closes the payment window before being redirected, the order update may not trigger correctly on the WooCommerce side.

To ensure that order status is updated reliably, we recommend setting up a hook (server-to-server callback) in your CentralPay Backoffice.

Setup steps:

  1. Go to:
    Production: https://backoffice.centralpay.net/admin/hook/
    Testing: https://test-backoffice.centralpay.net/admin/hook/
  2. Create a hook with the following parameters:
    • Event: Point of Sale (POS) > TRANSACTION_SUCCEDEED
    • Assigned to a Point of Sale (POS): Select your WooCommerce POS store
    • URL: https://votre-site-woocommerce.com/?wc-api=cpay_validation
      (Replace with the URL of your WooCommerce site.)
  3. Save the Hook

The ` /?wc-api=cpay_validation ` parameter is required for the CentralPay WooCommerce plugin to recognize the notification and trigger the order status update.

This configuration must be set up both in your Test environment and on your production Merchant Profile.

5. Logo Customization

You can also customize the payment interface by adding your website’s logo through the Backoffice:

  1. Go to: https://backoffice.centralpay.net/admin/point_of_sale/
  2. In your Point of Sale details, click Edit
  3. Upload your logo in the  » Logo » section

This logo will be displayed directly in the payment form to provide a more consistent user experience.

6. Test Mode

  • Enable test mode in the settings (please note: you must have a CentralPay test Merchant Profile and enter the credentials for that test Merchant Profile)
  • Use the test cards provided by CentralPay to simulate payments
  • Check that it is working properly:
    • From the payment form
    • Redirects
    • Order Statuses

7. Payment Tracking

  • View all your payments in WooCommerce > Orders
  • The CentralPay plugin automatically updates order statuses
  • If needed, an event log is available in the plugin’s ` error.log ` file

8. Available Languages

The plugin is available in:

  • 🇫🇷 French
  • 🇬🇧 English

You can edit or add your own translations using the ` .po ` files located in the ` /languages` folder, or by using a plugin such as Loco Translate.

9. Uninstallation

To uninstall the plugin:

  • Disable it through the Extensions menu
  • Click  » Delete« 
  • The uninstall script will delete the plugin’s settings

10. Support

If you have any questions or need assistance, please contact our technical support team at https://support.centralpay.com.
Please include your Merchant ID, your website URL, and as many details as possible about your request.

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.

MOBSP (Orias) Declaration

ℹ️ Before reading this page, please see the section on onboarding for partners.

CentralPay partners based in France operate as intermediaries in banking and payment services (IOBSP), specifically as Intermediaries for Banking and Payment Services (MOBSP).

To become a CentralPay MOBSP partner, you must register with ORIAS. CentralPay will then need to register you as its Intermediary. Your part of the process can be completed in a few hours, while CentralPay’s part takes a few days. ORIAS, for its part, may take up to two months to review your application.

Although this process is your responsibility, CentralPay can assist you if needed. Please contact our customer service department if you need help.

1. Prepare your data

1.1. Get your certificate of appointment

After signing your partnership agreement with CentralPay:

  1. Send an email to our customer service department that includes your company name and SIREN number
  2. CentralPay will respond with your authorization certificate. You will need this document for step 3.3.

1.2. Gather your supporting documents

During Step 3.3 of the registration process, you will need to provide the following supporting documents:

  • Commercial register issued within the last three months
  • Proof of professional qualifications: a degree from an accredited business or management school; an RNCP certification (NCF 122, 128, 313, or 314, levels 7 through 5); or recognition by the CIEP for foreign degrees

If you do not have proof of professional competence accepted by Orias, please send an email to our customer service department. CentralPay can help you complete the necessary training.

See the attached image, which refers to the Level III – IOBSP category (Level 3).

2. Create your ORIAS account

2.1. Access the form

  1. Go to the ORIAS website
  2. Scroll down until you see the  » How Does It Work? » section .
  3. Click  » Sign Up« 

You will be redirected to the registration form.

2.2. Enter the information

  1. Enter your SIREN number
  2. Enter your business information. Be sure to register as a legal entity.
  3. Enter your legal representative’s information
  4. Enter the contact information for your legal representative
  5. Enter your company’s contact information, including your website if you have one
  6. Enter your business address
  7. Check all the information you’ve entered, then click  » Submit. »

2.3. Log in to your ORIAS account

Check your inbox for an email from ORIAS (no-reply-orias@orias.fr). The email contains your username and a temporary password.

  1. Return to the ORIAS website
  2. Click  » Sign In  » /  » Login »
  3. Enter your username and the temporary password provided in your email
  4. Follow the instructions on your screen to change your password, then save it

After saving your new password, you will be redirected to your ORIAS account page

3. Submit a new registration request

3.1. Register Your Business

  1. Click  » New Registration  » to begin the registration process; a form will appear
  2. Select IOB Activity
  3. Next, select  » Non-Exclusive Intermediary for Banking Transactions and Payment Services (MOBSP)« 
  4. Click Submit

3.2. Please provide additional information

  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
    • If a different registration type is specified, use your browser’s Back button to return to the previous page and try again.
  2. For the first question, select the answer:  » I declare that I am not entrusted with any funds. »
  3. For the second question, select the answer:  » Minor, » indicating to ORIAS that financial services are not your company’s primary business activity
  4. For the third question, select the answer: Yes, indicating to ORIAS that your company offers credit (or other banking and payment services) solely as a secondary service
  5. Click  » Go to the ‘Supporting documents’ step »

3.3. Please provide your supporting documents

  1. Submit your Commercial register
  2. Submit your authorization form, which is the authorization certificate from Step 1.1
  3. Submit your Professional Competency for « you » (Level I IOBSP), which serves as your proof of professional competence for Step 1.2.
  4. Click « Go to the next step« 

3.4. Pay your registration fee

The final step is to pay your registration fee.

  1. Please note that you are paying for registration as a non-exclusive Intermediary for banking transactions and payment services. Your registration cannot be finalized without paying the fee.
  2. Choose to pay with your credit card, or click  » Select another payment method  » to pay by Bank transfer or check.
  3. After you’ve paid, click  » Download Invoice  » to download your receipt
  4. Click  » Complete Registration  » to finalize your registration
  5. You will receive your ORIAS registration number by email, confirming that your registration is complete. Please email this number to CentralPay’s customer service department.

4. CentralPay registers you as a MOBSP

After you email your Orias registration number to CentralPay, CentralPay will register you as a non-exclusive Intermediary for banking operations and payment services (MOBSP).

5. ORIAS reviews your application

ORIAS will review your documents and application to ensure that your file is fully compliant. ORIAS will notify you of its final decision via email. If your application is approved, the email will also include the date on which your MOBSP status will take effect.

Please feel free to contact ORIAS by phone (09.69.32.59.73) or email (contact@orias.fr) if you do not receive the information regarding your application in a timely manner.

6. Update your legal notices

After receiving approval from ORIAS and becoming a MOBSP, be sure to update your legal notices. Add something similar to the following example to the footer of your website, to your legal notices page, and anywhere else you distribute or sell payment services.

[Company Name], a company registered with the Trade and Companies Register (RCS) of [City of Registration] under number [RCS number], and listed in the Single Register of Insurance Intermediaries, Banking and Finance under registration number [ORIAS registration number] as a non-exclusive Intermediary for banking transactions and payment services.

FAQ - Verification Of Payee

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

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

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

Enjeux du dispositif

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

Base légale

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

Foire aux questions (FAQ)

1. Qu’est-ce que la VoP ?

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

2. Qui est concerné ?

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

3. Comment fonctionne la VoP concrètement ?

Lorsqu’un virement est initié :

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

4. Quels résultats peuvent apparaître ?

Trois cas sont possibles :

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

Est-ce que la VoP bloque un virement ?

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

Quels échanges ont lieu entre banques et PSP ?

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

Quels sont les avantages de la VoP ?

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

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

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

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

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

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

Illustration du VoP par le CNMP

FAQ - Verification of Payee

Effective October 9, 2025, Verification of Beneficiary (VoP) will become mandatory for all SEPA bank transfers, whether standard or instant. This system, which is free for users, aims to enhance payment security by reducing both:

  • Bank transfer fraud (particularly fraud involving fake bank account information),
  • errors in entering the IBAN or the Beneficiary’s name.

Specifically, before executing a bank transfer, the payer’s financial institution must check with the Beneficiary’s financial institution to verify that the IBAN matches the account owner’s name. If there is a discrepancy, an alert is displayed to the Payer, who remains free to decide whether or not to proceed with the transaction.

Challenges of the Program

  • User protection: limiting misdirected or fraudulent bank transfers.
  • SEPA Payment System Security: Supporting the Rollout of Instant Bank Transfers in Europe.
  • Business and Consumer Confidence: Improving the Transparency and Reliability of Payments.
  • European harmonization: establishing a common standard for all PSPs (banks, payment institutions, and Electronic money institutions).

Legal Basis

  • Regulation (EU) 2021/1230 on instant bank transfers in euros and amending Regulation (EU) No. 260/2012 (SEPA), which introduces the VoP requirement.
  • Regulation (EU) 2015/847 on information accompanying fund transfers, which requires the accurate transmission of information about the Payer and the Beneficiary.
  • Monetary and Financial Code:
    • Articles L.133-6 and L.133-7 concerning the authorization of payment transactions and the accuracy of information,
    • Articles L.561-5 et seq. concerning due diligence obligations in the area of AML/CFT.
  • ACPR doctrine, which in several decisions has penalized the inadequacy of verification procedures and the failure to ensure that a customer’s identity matches their account

Frequently Asked Questions (FAQ)

1. What is VoP?

The Payment Order Verification (VoP) is a regulatory service established at the European level.
It automatically compares the name of the Beneficiary of the bank transfer with the IBAN provided by the Payer before the bank transfer is executed.
Objective: to enhance payment security and reduce fraud (particularly fraud involving fake bank account information).

2. Who is affected?

  • Payers: individuals or businesses that initiate a bank transfer.
  • Beneficiaries: Any individual or entity that receives bank transfers (you, as a CentralPay customer).
  • Payment Service Providers (PSPs): banks, payment institutions, or Electronic money institutions, which must integrate VoP into their systems.

3. How does VoP actually work?

When a bank transfer is initiated:

  1. The payer enters the IBAN and the beneficiary’s name.
  2. The sender’s bank queries the beneficiary’s payment service provider (via a secure channel) to verify that the IBAN matches the name on file for the beneficiary.
  3. The response is sent back to the payer’s PSP and displayed to the payer.

4. What results might occur?

There are three possible scenarios:

  • Exact match: The IBAN and name match → the bank transfer can be initiated without a warning.
  • Partial match: The IBAN matches, but the name is different (typos, abbreviations, different spelling). The payer receives a warning and can:
    • correct the name,
    • or confirm that this is indeed the intended Beneficiary.
  • Mismatch: The IBAN and name do not match → the payer receives a high-priority alert. The payer can cancel the transaction or decide to proceed by accepting the risk.

Does the VoP block a bank transfer?

No. VoP does not block the execution of a bank transfer. It provides additional information to the Payer, who remains free to approve or reject the transaction.
However, some banks may set internal rules to block transactions in the event of a complete mismatch.

What kind of data exchanges take place between banks and PSPs?

  • The Beneficiary’s PSP (e.g., CentralPay) stores the exact name of the account owner in its database.
  • When a VoP query is made, it responds with a standardized code indicating: match, partial match, or no match.
  • These transactions are secure, traceable, and limited to only the necessary data, in accordance with Regulation (EU) 2015/847 on the reporting of bank transfers.
  • No other personal data (address, KYC documents, etc.) is shared.

What are the benefits of VoP?

  • For the payer: reduced risk of bank transfer fraud; detection of data entry errors.
  • For the beneficiary: reduced payment delays caused by errors; protection of the company’s reputation with its customers.
  • For the financial system: improved fraud prevention and compliance with European standards.

What should I do as a CentralPay Beneficiary?

  • Provide your customers with the correct IBAN and the exact name on file with CentralPay (full company name, without abbreviations).
  • Make sure your invoices, contracts, and other documents always include the same bank account information.
  • If your company name changes or you start using a trade name, notify your customers and CentralPay promptly so that your information can be updated.

What happens if there are frequent discrepancies?

If your customers frequently encounter VoP alerts when making bank transfers, this may indicate that your bank account information is not being provided consistently.

CentralPay can help you review and standardize your payment information to avoid friction.

Illustration of VoP by the CNMP

Déclaration TVA par pays

CentralPay n’identifie pas le pays TVA des acheteurs : cette responsabilité incombe au marchand. Pour justifier correctement vos déclarations, collectez le pays de l’acheteur, conservez vos preuves, et transmettez‑les à CentralPay afin qu’elles figurent dans vos exports et historiques de transaction.

Public cible : marchands B2C vendant des biens ou services dans plusieurs pays de l’Union européenne.

1) Principe général

La TVA applicable dépend du pays de résidence de l’acheteur (consommateur final), non du pays du marchand ni du moyen de paiement utilisé.

Le marchand doit donc déterminer, conserver et déclarer le pays de son client afin d’appliquer la bonne TVA. CentralPay n’a ni la légitimité réglementaire ni la fiabilité technique pour déterminer ce pays à sa place.

En clair : vous êtes responsable de collecter et de stocker les informations nécessaires à la détermination du pays TVA.

2) Pourquoi CentralPay ne peut pas déterminer le pays du client

Les indices techniques accessibles à un PSP (carte, IP, etc.) ne permettent pas une identification fiable du pays de l’acheteur :

  • Pays BIN (carte) : peu fiable pour la TVA. Les cartes de banques en ligne sont souvent émises dans un autre pays que celui du détenteur.
  • Pays IP : faussé en cas d’utilisation de VPN, proxy, mobile ou cloud.
  • Payeur ≠ Acheteur : la personne qui paie n’est pas forcément celle soumise à la TVA (ex. carte d’un proche ou d’un employeur).

C’est pourquoi CentralPay ne réalise aucune analyse pour identifier le pays du client. Seul le marchand détient l’information fiscale valide.

3) Ce que vous devez faire en tant que marchand

3.1 Collecter le pays de l’acheteur

  • Intégrez la sélection du pays de facturation dans votre tunnel de commande.
  • Transmettez ces informations à CentralPay via l’API au moment de la transaction.

3.2 Transmettre le pays à CentralPay

Type de donnéeChamp à renseignerDescription
Pays de l’acheteur (obligatoire)Customer > countryCode ISO 3166‑1 alpha‑2 du pays du client.
⚠️ Si vous n’alimentez pas Customer.country, CentralPay ne peut pas afficher ni exporter le pays de vos acheteurs. Vos exports ne permettront donc pas de justifier vos déclarations TVA.

4) Ce que CentralPay fournit dans les exports

CentralPay met à disposition des exports comportant :

ColonneSourceUsage
Customer > countryValeur transmise par le marchand via Customer > countryPreuve déclarative du marchand, à utiliser pour la TVA.
Transaction > end_user_ipIP de l’acheteurIndice technique non probant.
Transaction > card_countryPays de la carte utilisée par l’acheteurIndice technique non probant.
sctTransaction > ibanIBAN de l’acheteur par virement bancaire (contenant le code pays)Indice technique non probant.
bankAccount > ibanIBAN de l’acheteur par prélèvement SEPA (contenant le code pays)Indice technique non probant.

Des exports personnalisés peuvent être mis en place si vous souhaitez inclure d’autres champs ou formats (SFTP, e‑mail…).

5) Bonnes pratiques de conformité TVA

  1. Toujours collecter le pays de facturation côté front (champ obligatoire ou déduit du profil client).
  2. Croiser au moins deux preuves non contradictoires pour chaque commande.
  3. Gérer les divergences : si les indices diffèrent (ex. IP ≠ carte), demandez un justificatif avant de facturer.
  4. Enregistrer les preuves pendant au moins 10 ans (durée légale pour les services numériques UE).
  5. Vous enregistrer à l’OSS/IOSS si vous vendez à des consommateurs dans plusieurs pays de l’UE.
  6. Relier facture, transaction et preuves pour chaque vente.

6) Exemples de cas

SituationDonnées collectéesAction recommandée
Adresse = FR, BIN = FRDeux preuves concordantesFacturez avec TVA FR
Adresse = FR, BIN = DE, IP = DEDivergenceDemandez un justificatif avant facturation
Aucun pays collectéDonnée manquanteNon‑conformité potentielle – corriger votre parcours

7) FAQ

CentralPay peut‑il déterminer le pays à ma place ?
Non. Nous exposons des indices (pays BIN, etc.), mais la décision et la preuve fiscale relèvent de vous.

Puis‑je me baser uniquement sur le BIN ?
Non, le BIN n’est pas une preuve fiable. Utilisez toujours le pays de facturation comme référence principale.

Comment vérifier que mes exports sont complets ?
Vérifiez la présence de buyer_country_declared dans vos fichiers. Si le champ est vide, votre front n’a pas transmis le pays.

VAT Returns by Country

CentralPay does not identify buyers’ VAT countries: this is the Merchant’s responsibility. To ensure your tax filings are accurate, collect the buyer’s country of residence, keep your records, and submit them to CentralPay so they can be included in your export files and transaction histories.

Target audience: B2C merchants selling goods or services in several European Union countries.

1) General Principle

The applicable VAT depends on the buyer’s (end consumer ‘s) country of residence, not on the Merchant’s country or the payment method used.

The merchant must therefore determine, record, and report the customer’s country in order to apply the correct VAT rate. CentralPay has neither the regulatory authority nor the technical capability to determine this country on the merchant’s behalf.

In short: You are responsible for collecting and storing the information needed to determine the VAT country.

2) Why CentralPay Cannot Determine the Customer’s Country

The technical indicators available to a PSP (card, IP address, etc.) do not allow for reliable identification of the buyer’s country:

  • BIN Country (card): unreliable for VAT purposes. Online bank cards are often issued in a country other than the cardholder’s.
  • IP Country: May be inaccurate when using a VPN, proxy, mobile device, or cloud service.
  • Payer ≠ Buyer: The person who pays is not necessarily the person liable for VAT (e.g., a card belonging to a family member or an employer).

That is why CentralPay does not perform any analysis to identify the customer’s country. Only the Merchant has the valid tax information.

3) What You Need to Do as a Merchant

3.1 Collect the buyer’s country

  • Integrate the billing country selection into your checkout process.
  • Send this information to CentralPay via the API at the time of the transaction.

3.2 Submit the country to CentralPay

Data typeField to fill inDescription
Buyer’s country (required)Customer > countryISO 3166-1 alpha-2 code for the customer’s country.
⚠️ If you do not enter the information at Customer.country, CentralPay will not be able to display or export the countries of your buyers. Your export files will therefore not be sufficient to support your VAT filings. 

4) What CentralPay Provides in the Exports

CentralPay provides export files that include :

ColumnSourceUsage
Customer > countryAmount provided by the Merchant via Customer > countryDeclaratory statement from the Merchant, to be used for VAT purposes.
Transaction > end_user_ipBuyer’s IP addressTechnical indicator is inconclusive.
Transaction > card_countryCountry of the card used by the buyerTechnical indicator is inconclusive.
sctTransaction > ibanBuyer’s IBAN for Bank transfer (including the country code)Technical indicator is inconclusive.
bankAccount > ibanBuyer’s IBAN for SEPA Direct Debit (including the country code)Technical indicator is inconclusive.

Custom exports can be set up if you want to include additional fields or formats (SFTP, email, etc.).

5) Best Practices for VAT Compliance

  1. Always collect the billing country on the front end (required field or derived from the Customer Profile).
  2. Cross-check at least two non-contradictory pieces of evidence for each order.
  3. Handling Discrepancies: If the information differs (e.g., IP ≠ map), request supporting documentation before billing.
  4. Retain records for at least 10 years (the legal retention period for digital services in the EU).
  5. Register with the OSS/IOSS if you sell to consumers in multiple EU countries.
  6. Link invoices, transactions, and receipts for each sale.

6) Case Examples

LocationData CollectedRecommended Action
Address = FR, BIN = FRTwo pieces of corroborating evidenceInvoice with French VAT
Address = FR, BIN = DE, IP = DEDivergenceRequest a receipt before billing
No countries includedMissing dataPotential Non-Compliance – Correct Your Course

7) FAQ

Can CentralPay determine the country for me?
No. We provide guidance (BIN countries, etc.), but the decision and the tax documentation are your responsibility.

Can I rely solely on the BIN?
No, the BIN is not a reliable source of information. Always use the billing country as your primary reference.

How can I verify that my exports are complete?
Check to see if the  » buyer_country_declared  » field is present in your files. If the field is empty, your front-end system did not include the country.

L'établissement CentralPay

Articles

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

Certifications et agréments

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

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

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

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

Sécurité et hébergement

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

1. Un hébergement hautement résilient

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

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

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

Engagements de disponibilité

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

CPAY API
Traitement des opérations de paiement
CPAY PORTALS
Portail d’inscription, client et marchand
99,9 %
sur une base annuelle
99,5 %
sur une base annuelle
Le critère d’atteinte de cette garantie correspond à la disponibilité de l’API de paiement.Le critère de cette garantie correspond à la disponibilité des portails de l’environnement de production.

Évolution de la plateforme

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

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

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

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

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

Glossaire CentralPay

1. Les types d’acteurs

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

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

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

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

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

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

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

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

2. Les types de comptes

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

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

Il est représenté par l’objet Wallet type EM dans l’API CentralPay.
Compte de commissionCompte de paiement secondaire permettant d’isoler les flux de commissions et/ou certains prélèvements de frais (selon modèle).
Dans le cadre des modèles Partenaire/Mandataire, ce compte peut recevoir les commissions imputées aux transactions des marchands liés/participants, conformément aux règles contractuelles applicables.

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

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

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

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

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

DésignationDescription
Frais CentralPayEnsemble des frais dus à CentralPay déduits des opérations correspondantes, prélevés sur un compte de commission dédié ou facturés en fin de mois (selon les conditions contractuelles applicables).
Devises ISODevises conventionnelles aux normes ISO 4217 (exemple : EUR, USD, CHF, GBP…)
Devise CUSTOMDevise de monnaie électronique créée pour un Mandataire DME de CentralPay. La valeur de la devise CUSTOM est toujours adossée à celle d’une devise ISO (ex. EUR).
Instruction TechniqueDonnée / événement à finalité strictement technique et commerciale transmis à CentralPay (ex. références de commande, panier, commission, évènements logistiques). Une Instruction Technique n’est pas un ordre de paiement et ne déclenche aucun effet financier automatique : CentralPay reste seul décisionnaire du traitement et, le cas échéant, des mises à disposition de fonds.
Date de déblocageDate de mise à disposition différée pouvant être appliquée par CentralPay pour rendre des fonds utilisables par un bénéficiaire (ex. après livraison/expédition), selon la politique de risque et les règles applicables. Elle peut être déterminée à partir d’informations commerciales transmises, sans constituer une instruction de paiement.
Compte bancaireCompte bancaire externe lié à :
• un Profil Marchand pour réaliser des versements sortants (payout)
• ou à un Profil client pour réaliser des prélèvements SEPA ou des versements sortants.
Il est représenté par l’objet BankAccount dans l’API CentralPay.
Versement sortantVirement sortant d’un compte CentralPay vers un compte bancaire externe. Peut être réalisé par SEPA ou SWIFT.
Il est représenté par l’objet Payout dans l’API CentralPay.
Autorisation CarteOpération d’interrogation de disponibilité des fonds d’une carte bancaire, puis de blocage en prévision d’une transaction carte (7 jours max).
Elle est représentée par l’objet Transaction dans l’API CentralPay.
Transaction carteOpération de débit d’une carte bancaire, au crédit d’un compte CentralPay.
Elle est représentée par l’objet Transaction dans l’API CentralPay.
Transaction SCTOpération de réception d’un virement SEPA ou SWIFT, au crédit d’un compte CentralPay.
Elle est représentée par l’objet sctTransaction dans l’API CentralPay.
Transaction SDDOpération de débit d’un compte bancaire, au crédit d’un compte CentralPay.
Elle est représentée par l’objet sddTransaction dans l’API CentralPay.

CentralPay

Articles

  • Certifications and Approvals
  • Security and Hosting
  • Availability Commitments
  • Platform Development
  • CentralPay Glossary

Certifications and Approvals

CentralPay offers modular payment solutions that enable the consolidation of payment collection processes for its own account and the automation of payouts on behalf of third-party accounts. The types of services and transactions offered by CentralPay vary depending on the needs and business activities of its merchants and partners.

CentralPay is an independent company that fully owns its technology and licenses. This ensures the greatest possible autonomy in its choice of partnerships and its future development.

CentralPay is authorized to enter into business relationships with companies registered in the European Economic Area.

ACPR (
) (Bank of France)
Electronic money institution: CentralPay is an electronic money institution regulated by the Banque de France through its prudential supervision and resolution authority, the ACPR (CIB 17138).
PSD2: CentralPay complies with the Second Payment Services Directive, which sets forth requirements regarding strong customer authentication and data protection, among other things.
PCI DSS: CentralPay is certified annually at the highest possible level for banking data security and fraud prevention: PCI DSS Level 1. View CentralPay’s certificate ➜
EBA CLEARING & EPC: As a member of the European Payment Council and through its connection to EBA CLEARING, CentralPay provides Integration of the European SEPA payment schemes to send and receive Bank transfers and SEPA Direct Debits using its own IBANs and virtual IBANs.
SWIFT: Connected to the SWIFT network, the most widely accepted messaging system worldwide, CentralPay is able to exchange international financial transactions with most participating banks and financial institutions.
Visa, Mastercard, debit cards, American Express: CentralPay is accredited by the major card networks to optimize the payment experience and conversion rates for all its users.

Security and Hosting

CentralPay operates its services from two data centers in France. The equipment and services at these two sites are fully redundant.

1. Highly Resilient Hosting

  • Two TIER III-designed data centers located in Tours
  • Active/active environment between the two sites
  • Contractual service level agreements (SLAs) of 99.9%
  • Recognized standards: ISO 27001, PCI DSS, Code of Conduct

2. An infrastructure that ensures the security of your data

  • Network core with speeds of up to 10 Gb/s
  • Fully redundant power supply system, with power density ranging from 600 mA to 32 A
  • Access control system with two-factor authentication (ID card and personal code)
  • Video surveillance and an alarm system connected 24 hours a day, 7 days a week to our remote monitoring center
  • FirePro Aerosol Fire Suppression System

Availability Commitments

CentralPay guarantees the annual availability of its services (SLA & BCP) according to the following standards:

CPAY API
Processing of payment transactions
CPAY PORTALS
Onboarding Portal, Customer Portal, and Merchant Portal
99.9%
on an annual basis
99.5%
on an annual basis
The criterion for determining whether this guarantee has been met is the availability of the payment API.The criterion for this guarantee is the availability of the portals in the production environment.

Platform Development

CentralPay’s APIs are based on a microservices architecture that provides maximum flexibility. Our modular approach allows us to continuously evolve our solutions to offer an ever-increasing range of services and features.

These updates are implemented following thorough impact analyses to ensure they do not require any changes to our users’ integrations. In very rare cases, these updates may require minor or more significant modifications when regulatory changes occur, as was the case with the transition to version 2.0 of the 3DS, for example.

In the event of changes to the platform or modifications to expectations regarding the use of its APIs, CentralPay commits to notifying you within a timeframe commensurate with the scope of the actions to be taken:

  • Minor changes that do not require any action on the part of the merchant or partner:
    Simple Information Disclosure
  • Minor changes requiring action by the Merchant or Partner:
    Minimum 2-month notice period + assistance with implementation
  • Major changes requiring action by the Merchant or Partner:
    Minimum 6-month notice period + support during implementation

Please note that changes requiring action on the part of our merchants or partners are either rare or nonexistent, and that every precaution is taken to avoid any impact on their business.

CentralPay Glossary

1. Types of Actors

LabelDescription
ActorAny entity identified on the CentralPay platform. This may be a Merchant Profile, a Point of Sale (POS), a third-party establishment, or CentralPay.
Merchant ProfileThe Merchant Profile technically and operationally represents a merchant on the CentralPay platform. It serves as the basis for:
• His accounts: Payment Accounts or Electronic Money Accounts;
• Administration: API access, User Profiles, available services;
• Its technical configuration: webhooks, notifications, Point of Sale (POS) systems, acceptance rules, Bank Accounts;
• Its regulatory documentation: KYC/KYB, AML/CFT, risk scoring, contract management, fee schedule…

The Merchant Profile corresponds to the API object ` Merchant ` and is created automatically after the registration is validated (via the API object ` Merchant-Enrollment`).
Standard MerchantA legal entity or sole proprietorship that is a CentralPay customer and processes payments on its own account when selling goods or services.
May be functionally linked to a Technical Partner or Integration Partner.
Has a Merchant Profile of the type STANDARD.
Partner MerchantA legal entity that is a CentralPay customer, has a Merchant Profile, and may fall under one of the following models:
• Technical Partner: operates a shared solution (e.g., marketplace, SaaS platform) and has one or more Points of Sale (POS) open in its name, to which standard Merchants can be linked.
Has a Merchant Profile of type TECHNIQUE.
• Integration Partner: provides technical support, via access delegated by standard merchants, to facilitate integration and day-to-day operations (without sharing POSes under the partner’s name).
Has a Merchant Profile of the type INTEGRATEUR (if applicable).

A Partner Merchant may earn commissions (depending on the model) and/or be registered as a MOBSP to assist merchants during onboarding.
Intermediary MerchantA legal entity that is a customer of CentralPay, acting on behalf of third-party accounts, under one of the following regulatory statuses:
• PSP Agent: A Payment Service Provider (PSP) agent of CentralPay, registered with the ACPR (Bank of France) and authorized to act in the name and on behalf of CentralPay within a contractually defined scope (e.g., debit/credit transactions and transfers on behalf of third-party accounts).
Has a Merchant Profile of the type AGENT.
• EMD: Electronic Money Distributor registered/declared by CentralPay with the ACPR (Bank of France) for a project involving the issuance, distribution, and exchange of electronic money (CUSTOM currencies).
Has a Merchant Profile of type DME.
Sub-merchant / ParticipantA legal entity or individual who is a customer of a CentralPay Intermediary Merchant (PSP Agent or EMD).
• Sub-merchant: acts to sell products or services, for an LMNP business,
• Participant: acts for non-commercial purposes (crowdfunding, personal wallet, collective projects, etc.).
Has a specific Merchant Profile BASIC, with a limited scope of functionality.
CustomerA natural or legal person who pays or issues a payment order to a CentralPay Merchant (may also be referred to as the payee, payer, or debtor).
May or may not have a Customer Profile (Customer).

Note: In CentralPay’s regulatory or contractual documents, the term “Customer” may refer to the Merchant itself, depending on the context defined in the document.
Customer ProfileRepresents a customer registered by a Merchant on the CentralPay platform.
It contains:
• the customer’s personal information: last name, first name, email, phone number, company name, etc.
• the customer’s payment methods: cards, SEPA direct debits, IBAN, Bank Accounts, etc.
• the customer’s activities: payment requests, payment history, etc..

The Customer Profile corresponds to the API object Customer.
BO User ProfilesIndividuals with access to the CentralPay Merchant Portal to view or manage one or more Merchant Profiles.
• Type Legal: the Merchant’s legal representative.
• Type Natural: other authorized user (finance, support, development, etc.).

The BO User Profile corresponds to the API entity BO_user.
API User ProfilesAn entity created via the CentralPay platform that identifies the user (person or system) making API calls on a Merchant Profile.
Enables the tracking of actions and the management of authorizations.

The API User Profile corresponds to the API entity api_user.
Point of Sale (POS)Representation of a website, a brick-and-mortar store, or a sales team. They enable the segmentation of CentralPay Merchant Profile operations for the following purposes:
• Features: to configure different settings for each Point of Sale (POS) (customer notifications, internal notifications, sender name for confirmation emails, logo displayed on the checkout page, etc.)
• Administrative: to restrict the rights to view or edit your BO User Profiles to certain Points of Sale (POS)
• Accountants: to filter transactions by Point of Sale (POS) in the Merchant Portal or in data exports

The Point of Sale (POS) corresponds to the API object PointOfSale.

2. Types of Accounts

LabelDescription
Payment AccountAn account opened in CentralPay’s books in a Merchant’s name. This account is used exclusively for payment transactions (collecting payments in ISO currencies, performing Payouts to a Bank Account, etc.).

It is represented by the ` Wallet ` object of type ` PS ` in the CentralPay API.
Electronic Money AccountAn account opened in CentralPay’s books in the name of a Merchant. This account is used exclusively for the storage and exchange of Electronic money within the distributor’s network (CUSTOM currencies).

It is represented by the ` Wallet ` object of type ` EM ` in the CentralPay API.
Commission AccountA secondary Payment Account used to segregate commission flows and/or certain fee deductions (depending on the model).
Under the Partner/Agent models, this account can receive commissions allocated to transactions by affiliated/participating merchants, in accordance with the applicable contractual rules.

It is represented by the object ` Wallet ` of type ` CM ` in the CentralPay API.
Reserve AccountA secondary Payment Account used to set aside CentralPay reserve funds (account balance, collateral, or Rolling reserve). It is not authorized to make Payouts.

It is represented by the ` Wallet ` object of type ` RS ` in the CentralPay API.
« Agent » Collection AccountA Payment Account opened in CentralPay’s books in the name of an Agent. It is used to receive funds related to transactions initiated through the Agent model, prior to their allocation or transfer to the Payment Accounts of Participant Merchants. It is not authorized to make payouts.

It is represented by the ` Wallet ` object of type ` CL ` in the CentralPay API.
CentralPay Technical Partner AccountThe Technical Partner Account refers to an internal, temporary mechanism used by CentralPay to receive, identify, and temporarily process funds related to a payment transaction, with a view to transferring them to the final Beneficiary. It is not a Payment Account opened for a customer, is not made available to any third party, and does not confer any right of disposal.

Depending on the technical implementation, this mechanism may be implemented using internal objects (e.g., Wallet of type TR) used exclusively by CentralPay for operational processing.

3. The names of objects or operations

LabelDescription
CentralPay FeesAll fees owed to CentralPay, deducted from the corresponding transactions, debited from a dedicated Commission Account, or billed at the end of the month (depending on the applicable contractual terms).
ISO CurrenciesStandard currencies in accordance with ISO 4217 (e.g., EUR, USD, CHF, GBP…)
CUSTOM CurrencyElectronic money created for a CentralPay EMD. The value of the CUSTOM currency is always pegged to that of an ISO currency (e.g., EUR).
Technical InstructionData or events for strictly technical and commercial purposes transmitted to CentralPay (e.g., order references, shopping cart, commission, logistics events). A Technical Instruction is not a payment order and does not trigger any automatic financial action: CentralPay retains sole discretion over the processing and, where applicable, the release of funds.
Release dateA deferred availability date that CentralPay may apply to make funds available to a Beneficiary (e.g., after delivery/shipment), in accordance with applicable risk policies and rules. It may be determined based on submitted commercial information, without constituting a payment instruction.
Bank AccountExternal Bank Account linked to:
• a Merchant Profile for making outgoing Payouts (payout)
• or a Customer Profile for making SEPA Direct Debits or outgoing Payouts.
It is represented by the ` BankAccount ` object in the CentralPay API.
Outgoing paymentOutgoing bank transfer from a CentralPay account to an external Bank Account. Can be made via SEPA or SWIFT.
It is represented by the  » Payout  » object in the CentralPay API.
Card AuthorizationAn operation to check the availability of funds on a credit card, followed by a hold in anticipation of a Card Transaction (max. 7 days).
It is represented by the ` Transaction ` object in the CentralPay API.
Card TransactionA debit transaction from a bank card, credited to a CentralPay account.
It is represented by the ` Transaction ` object in the CentralPay API.
SCT TransactionOperation to receive a SEPA or SWIFT bank transfer credited to a CentralPay account.
It is represented by the  » sctTransaction  » object in the CentralPay API.
SDD TransactionA transaction that debits a Bank Account and credits a CentralPay account.
It is represented by the ` sddTransaction ` object in the CentralPay API.

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

Security and Hosting

CentralPay operates its services from two data centers in France. The equipment and services at these two sites are fully redundant.

1. Highly Resilient Hosting

  • Two TIER III-designed data centers located in Tours
  • Active/active environment between the two sites
  • Contractual service level agreements (SLAs) of 99.9%
  • Recognized standards: ISO 27001, PCI DSS, Code of Conduct

2. An infrastructure that ensures the security of your data

  • Network core with speeds of up to 10 Gb/s
  • Fully redundant power supply system, with power density ranging from 600 mA to 32 A
  • Access control system with two-factor authentication (ID card and personal code)
  • Video surveillance and an alarm system connected 24 hours a day, 7 days a week to our remote monitoring center
  • FirePro Aerosol Fire Suppression System

Marchand, comptes et canaux de vente

Articles

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

Profil Marchand

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

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

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

1. Types de profils selon le modèle contractuel

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

Standard Type : STANDARD

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

👉 En savoir plus sur le modèle Marchand

Partenaire Intégrateur Type : INTEGRATOR

Le Partenaire Intégrateur accompagne plusieurs Marchands standards dans leur intégration technique avec CentralPay. Chaque Marchand standard dispose de son propre point de vente et d’un contrat individuel. L’Intégrateur utilise les accès API fournis par chaque Marchand, dans le cadre d’une relation contractuelle.

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

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

Partenaire Intégrateur MOBSP Type : INTEGRATOR + MOBSP

Le Partenaire Intégrateur MOBSP est un Intégrateur disposant d’un mandat réglementaire. Il peut initier une demande d’entrée en relation pour le compte d’un Marchand standard, et l’accompagner techniquement via l’API d’onboarding. Comme tout Intégrateur, il agit uniquement via les accès API fournis par le Marchand.

  • Mêmes droits et fonctionnement qu’un Intégrateur
  • Peut initier une demande d’enrôlement complète via API
  • Peut accompagner le marchand durant l’enrôlement

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

Partenaire Technique Type : TECHNIQUE

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

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

👉 En savoir plus sur le modèle Partenaire Technique

Partenaire Technique MOBSP Type : TECHNIQUE + MOBSP

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

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

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

Mandataire DME Type : DME

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

👉 En savoir plus sur le modèle Mandataire DME

Mandataire Agent Type : AGENT

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

👉 En savoir plus sur le modèle Mandataire Agent

Participant Type : BASIC

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

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

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

2. Paramétrage des emails de contact

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

  • Email contact : référent principal du profil marchand
  • Email administratif : en charge des sujets juridiques ou contractuels
  • Email technique : en charge de l’intégration ou des incidents
  • Email financier : en charge de la facturation ou des flux bancaires
ℹ️ Par défaut, ces adresses sont initialisées avec l’email du titulaire du profil marchand. Elles peuvent être modifiées à tout moment depuis le Portail Marchand.

Accès à la configuration des emails de contact :

Recette Portail Marchand
Production Portail Marchand

Profils clients

Les profils clients (Customer) unifient et sécurisent toutes vos données client pour en faciliter la gestion. Ils interagissent avec les autres services de CentralPay et permettent notamment de :

  • Centraliser leur historique de paiement (tous canaux de vente et moyens de paiement confondus)
  • Digitaliser et stocker de manière sécurisée leurs supports de paiement (cartes, mandats SEPA, IBAN virtuels)
  • Suivre facilement leurs paiements récurrents (abonnements, paiements fractionnés) ou règlements en attente (demandes de paiement)

Dans certains cas, ils peuvent également être associés à un compte de monnaie électronique permettant au client de recevoir et d’utiliser des fonds au sein du réseau du partenaire distributeur de cette monnaie électronique.

Un Customer est obligatoirement identifié soit par son email, soit par son numéro de téléphone.

Il est également possible de déclarer d’autres informations le concernant comme son nom, son prénom, sa langue, sa référence personnalisée, son moyen de paiement par défaut…

1. Utilisation

La création d’un Customer est obligatoire pour la réalisation :

  • D’abonnements ou de paiements fractionnés par carte
  • De paiements en 1 clic par carte
  • De paiements par prélèvement SEPA
  • De paiements par virement SEPA avec IBAN Virtuel dédié à celui-ci
  • De création d’un compte de monnaie électronique anonyme

2. Interfaces

Vous pouvez consulter l’ensemble des Customers de votre compte depuis votre Portail Marchand Compte Customers

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

Recette Portail Marchand – Customers
Production Portail Marchand – Customers

3. Création d’un Customer

Il existe deux méthodes pour créer un Customer :

  • Créer un Customer depuis le service API dédié, permettant ensuite de créer une Card, de gérer un IBAN Virtuel pour ce Customer, d’initier une transaction, une demande de paiement…
  • Créer un Customer via une demande de paiement

CentralPay assure l’unicité des Customers : si vous initiez une demande de paiement avec création d’un Customer alors que son email ou son numéro de téléphone est déjà connu dans votre compte, CentralPay ne créera pas de nouveau Customer et associera la transaction au profil existant.

Points de vente

Les points de vente (Point of Sales ou POS) sont la représentation de vos différents sites web, boutiques, ou équipes de vente. Ils permettent de segmenter les opérations de vos comptes CentralPay à des fins :

  • Techniques : Vous pouvez réaliser des paramétrages différents par point de vente (notifications clients, notifications internes, nom expéditeur des emails de confirmation, logo affiché dans la page de paiement…)
  • Administratives : Vous pouvez limiter les droits de consultation ou de modification de vos profils utilisateurs à certains points de ventes
  • Comptables : Vous pouvez filtrer les opérations par point de vente dans votre portail Marchand ou dans vos exports de données

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

Recette Portail Marchand – Points de vente
Production Portail Marchand – Points de vente

1. Paramétrages

Les points de vente comprennent un certain nombre de paramétrages obligatoires :

  • Paramètres généraux
    • Nom : Nom du point de vente (visible par vos clients)
    • URL du site : S’il s’agit d’un site e-commerce, renseignez l’URL de ce dernier. Sinon, renseigner l’URL de votre site vitrine.
    • Pays du point de vente

  • Configuration
    • Type technique : Sélectionnez « Vente à distance »
    • Utilisateurs API : Sélectionnez les utilisateurs API ayant un droit d’accès à ce point de vente
    • Contrats : Sélectionnez le contrat VAD carte qui a été paramétré pour votre profil marchand (en règle générale, vous n’aurez qu’un seul contrat à disposition)
    • Contrat par défaut : Sélectionnez le contrat VAD carte qui sera utilisé par défaut (en règle générale, vous n’aurez qu’un seul contrat à disposition)
    • Viban prioritaire : Si vous souhaitez que les IBAN Virtuels affichés dans les demandes de paiement soient ceux des Customers, alors sélectionnez « Client ». Si vous préférez afficher des IBAN Virtuels dédiés à chaque demande de paiement, alors sélectionnez « SCT ». Si besoin d’informations complémentaires, consultez notre rubrique sur les IBAN Virtuel

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

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

  • Emails de confirmation
    • Cocher « Activer l’email de confirmation de paiement » : En cochant cette case, vous activez l’envoi d’un email à vos clients lorsqu’ils réalisent un paiement par carte. Il s’agit d’un email standardisé non modifiable contenant un récapitulatif du paiement (raison sociale de votre profil marchand, nom de votre point de vente, date du paiement, identifiant de la transaction CentralPay, référence marchand de la transaction, description marchand de la transaction, code d’autorisation du paiement, marque de la carte, 6 premiers et 4 derniers chiffres de la carte, montant de la transaction, état de la transaction). La langue et le pied de page de l’email peuvent être paramétrés depuis le Portail Marchand Configuration Email confirmation paiement
    • Email de l’expéditeur : Si vous avez coché la case « Activer l’email de confirmation de paiement », vous pouvez personnaliser l’adresse expéditeur en utilisant l’une de vos adresses email (par exemple : no-reply@mondomaine.com). Attention, veillez à nous demander de vous communiquer nos clés SPF et DKIM afin que vous puissiez autoriser CentralPay à envoyer des emails depuis votre domaine
    • Nom de l’expéditeur : Si vous avez coché la case « Activer l’email de confirmation de paiement », vous pouvez personnaliser le nom de l’expéditeur (par exemple : MonEntreprise)
    • Coche « Recevoir une copie de la confirmation de paiement » : En cochant cette case, vous activez l’envoi d’une copie de l’email adressé à vos clients lorsqu’ils réalisent un paiement par carte. Cela peut vous permettre d’être informé facilement par email lorsqu’un client réalise un paiement
    • Email du destinataire : si vous avez coché la case « Recevoir une copie de la confirmation de paiement », vous devez renseigner l’adresse email du destinataire de cette copie

Enfin, d’autres paramètres secondaires sont disponibles :

  • OTP
    • Email de l’expéditeur OTP email : Email affiché en tant qu’expéditeur des emails de One Time Password (connexion à l’espace Administration du Portail Marchand…)
    • Nom de l’expéditeur OTP email : Nom affiché en tant qu’expéditeur des emails de One Time Password (connexion à l’espace Administration du Portail Marchand…)
    • Numéro de téléphone ou nom de l’expéditeur OTP SMS : Nom ou numéro de téléphone affiché en tant qu’expéditeur des SMS de One Time Password (validation de mandat SEPA…)

  • Paramètres de communication : Ces paramètres sont appliqués aux emails ou SMS transmettant le lien vers le formulaire de paiement d’une demande de paiement (paymentRequest). Ils s’appliquent uniquement lorsque aucun scenario n’a été configuré sur la demande paiement.
    • Expéditeur SMS : Nom du correspondant affiché sur le SMS
    • Expéditeur email : Email du correspondant affiché sur l’email
    • Nom de l’expéditeur email : Nom du correspondant affiché sur l’email
    • Adresse de réponse email : Email utilisé pour les réponses des emails envoyés (applicable prochainement)
    • Pied de page de l’email : Pied de page des emails (applicable prochainement)

Comptes de paiement

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

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

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

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

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

Recette Portail Marchand – Comptes de paiement
Production Portail Marchand – Comptes de paiement

1. Utilisation

Les comptes de paiement sont systématiquement utilisés pour les opérations de paiement de notre plateforme, à l’exception des opérations de monnaie électronique.

2. Création de comptes de paiement

Si vous êtes marchand CentralPay, vous pouvez adresser une demande par email aux équipes CentralPay pour la création de plusieurs comptes de paiement à votre nom. Cela afin de segmenter vos opérations ou d’ouvrir un compte dans une devise différente.

Si vous êtes Partenaire MOBSP ou mandataire AGENT de CentralPay, vous pouvez créer des comptes pour vos marchands en utilisant le service de demande d’enrôlement.

Comptes de ME

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

Les comptes de ME (Monnaie Électronique) sont utilisés pour stocker et échanger des fonds dans une devise CUSTOM (devise dédiée à un mandataire DME). Un mandataire DME peut demander la création de comptes de ME pour les sous-marchands de son réseau puis réaliser des transferts de fonds en ME entre ces comptes.

Le titulaire d’un compte de ME ne peut recevoir des paiements et utiliser sa monnaie électronique que par l’intermédiaire du mandataire DME. Il peut cependant demander le remboursement de sa monnaie électronique à tout moment et recevra ses fonds en devise ISO : soit sur son compte bancaire par virement SEPA, soit sur sa carte bancaire, selon les paramétrages de son compte.

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

Recette Portail Marchand – Comptes de monnaie électronique
Production Portail Marchand – Comptes de monnaie électronique

1. Utilisation

Les comptes de ME sont principalement utilisés pour permettre à des personnes physiques de recevoir et d’échanger facilement des fonds dans les contextes suivants :

  • Marketplaces C2C de produits ou de services
  • Stockage et utilisation de valeurs-cadeaux au sein d’un réseau de commerçants indépendants

2. Spécificités

Le CMF (Code Monétaire et Financier) présente des conditions spécifiques pour la monnaie électronique. Ainsi, il existe deux types de comptes de ME chez CentralPay :

  • Compte de ME anonyme : Ce compte peut être ouvert sans vérification d’identité du titulaire, à condition qu’il soit adressé à une personne physique et soit limité à 150 € de solde ou d’encaissement sur 30 jours. Ce type de compte est particulièrement utile dans le cadre d’une utilisation ponctuelle du compte par son titulaire, ou tout simplement pour simplifier l’entrée en relation avec le mandataire DME
  • Compte de ME vérifié : Un compte anonyme peut être ensuite vérifié par les équipes conformité de CentralPay (procédure KYC) pour augmenter les limites qui lui étaient imposées, il devient ainsi « vérifié »

3. Création de comptes de ME

Si vous êtes mandataire DME de CentralPay, vous pouvez demander la création de comptes de ME pour vos sous-marchands.

Merchant, accounts and sales channels

Articles

  • Merchant Profilemerchant
  • Customer profilescustomer
  • Retail locationspointOfSale
  • Payment accountswallet
  • EM Accountswallet

Merchant Profile

The Merchant Profile represents a Merchant technically and operationally within the CentralPay platform.

It serves as the foundation for:
• Its accounts: payment or electronic money accounts;
• Its administration: API access, user profiles, available payment services;
• Its technical configuration: webhooks, notifications, points of sale, acceptance rules, bank accounts;
• Its regulatory file: KYC/KYB, AML-CFT, risk scoring, contracting, pricing schedule…

The Merchant Profile corresponds to the API object Merchant and is created automatically after validation of its registration (via the API object Merchant-Enrollment).

1. Profile Types by Contractual Model

Each Merchant type is associated with a specific contractual model.

Standard Type : STANDARD

The standard Merchant is a business or professional that collects payments for its own account. It has one or more payment accounts and can access CentralPay services via API or through a partner.

👉 Learn more about the Merchant model

Integration Partner Type : INTEGRATOR

The Integration Partner supports multiple standard Merchants in their technical integration with CentralPay. Each standard Merchant has its own point of sale and an individual contract. The Integrator uses the API access provided by each Merchant within the framework of a contractual relationship.

  • May have a payment account and a commission account for its own needs
  • A separate point of sale is created for each supported Merchant
  • May perform API calls and technical actions via access delegated by the Merchant (monitoring Technical Instructions, configuration, RUN), without access to balances or authority to initiate/modify/execute a payment operation in its own name
  • CentralPay invoices each Merchant directly

👉 Learn more about the Integrator Partner model

MOBSP Integration Partner Type : INTEGRATOR + MOBSP

The MOBSP Integration Partner is an Integrator with a regulatory mandate. It can initiate a relationship request on behalf of a standard Merchant and provide technical support via the onboarding API. Like any Integrator, it acts solely through the API access provided by the Merchant.

  • Same rights and operation as an Integrator
  • May initiate a complete enrollment request via API
  • May support the merchant during enrollment

👉 Learn more about the MOBSP Integrator Partner model

Technical Partner Type : TECHNIQUE

The Technical Partner develops a shared solution (e.g., marketplace, SaaS platform) and operates from one or more points of sale opened in its name, to which standard Merchants can be attached. It uses its own API access to transmit commercial data and monitor operations linked to these points of sale, without ever having execution authority over payment operations.

  • One or more points of sale may be used to consolidate merchant activities (e.g., marketplace, SaaS platform)
  • CentralPay API access specific to the Technical Partner
  • CentralPay invoices the Technical Partner
  • Cannot initiate enrollment on behalf of and for the account of merchants (unless MOBSP framework applies)

👉 Learn more about the Technical Partner model

MOBSP Technical Partner Type : TECHNIQUE + MOBSP

The MOBSP Technical Partner is authorized to initiate a relationship request on behalf of its users. It can transmit the necessary information via the onboarding API but does not intervene in the execution of payment operations.

  • Same rights and operation as a Technical Partner
  • May initiate a complete enrollment request via API
  • May support the merchant during enrollment

👉 Learn more about the MOBSP Technical Partner model

EMD Agent Type : DME

The EMD Agent (Electronic Money Distributor) transmits loading, transfer, or refund instructions in electronic money on behalf of Participants. It operates within the electronic money model (CUSTOM currencies) and may receive a commission on operations, without providing regulated payment services (e.g., SEPA transfer, direct debit, card).

👉 Learn more about the EMD Agent model

PSP Agent Type : AGENT

The PSP Agent is a Payment Service Provider (PSP) Agent registered with ACPR. It acts on behalf of and for the account of CentralPay within a strictly defined contractual scope. Depending on the model adopted (Simple Agent / Collecting Agent / Delegated Agent), it may support enrollment, perform certain level 1 KYC/KYB due diligence, and/or intervene in the collection, allocation, and provision of funds via mechanisms provided by CentralPay. CentralPay remains responsible for the payment services provided and regulatory controls.

👉 Learn more about the PSP Agent model

Participant Type : BASIC

The Participants are natural or legal persons who are clients of a CentralPay Intermediary Merchant (Agent or EMD). They have one or more payment accounts or electronic money accounts to receive funds issued by the Intermediary and can access the Merchant Portal to view their operations and manage their outgoing transfers.

They operate to sell products or services, for LMNP activity, or for non-commercial needs (crowdfunding, personal wallet, collective projects, etc.).

Participants open accounts with CentralPay. The relationship may be initiated and/or supported by the Intermediary Merchant, but regulated services remain provided by CentralPay. The framework for account usage is defined by the applicable CentralPay documents (and, where applicable, by the Intermediary’s Terms of Use for commercial conditions and the services it provides).

2. Contact Email Configuration

You can customize the contact email addresses associated with your merchant profile so that notifications, reminders, or contractual communications are properly addressed to the right contacts.

  • Contact email: primary contact for the merchant profile
  • Administrative email: responsible for legal or contractual matters
  • Technical email: responsible for integration or incidents
  • Financial email: responsible for billing or banking flows
ℹ️ By default, these addresses are initialized with the email of the merchant profile holder. They can be modified at any time from the Merchant Portal. 

Access to contact email configuration:

Recette Merchant Portal
Production Merchant Portal

Customer profiles

Customer profiles (Customer) unify and secure all your customer data for easier management. They interact with other CentralPay services and notably allow you to:

  • Centralize their payment history (across all sales channels and payment methods)
  • Digitize and securely store their payment methods (cards, SEPA mandates, virtual IBANs)
  • Easily track their recurring payments (subscriptions, split payments) or pending settlements (payment requests)

In certain cases, they can also be associated with an e-money account, allowing the customer to receive and use funds within the network of the e-money distributor partner.

A Customer must be identified by either their email address or their phone number.

It is also possible to declare other information concerning them, such as their last name, first name, language, personalized reference, default payment method, etc.

1. Usage

Creating a Customer is mandatory for performing:

  • Subscriptions or split payments by card
  • 1-click card payments
  • SEPA direct debit payments
  • SEPA transfer payments with a dedicated Virtual IBAN
  • Creating an anonymous e-money account

2. Interfaces

You can view all Customers on your account from your Merchant Portal Account Customers

Your Customers also have access to a customer portal allowing them to manage payments made to your company:

Recette Merchant Portal – Customers
Production Merchant Portal – Customers

3. Creating a Customer

There are two methods for creating a Customer:

  • Create a Customer via the dedicated API service, which then allows you to create a Card, manage a Virtual IBAN for this Customer, initiate a transaction, a payment request, etc.
  • Create a Customer via a payment request

CentralPay ensures Customer uniqueness: if you initiate a payment request with Customer creation while their email or phone number is already known in your account, CentralPay will not create a new Customer and will associate the transaction with the existing profile.

Retail locations

Points of sale (Point of Sales or POS) represent your various websites, stores, or sales teams. They allow you to segment the operations of your CentralPay accounts for the following purposes:

  • Technical: You can configure different settings per point of sale (customer notifications, internal notifications, sender name for confirmation emails, logo displayed on the payment page, etc.)
  • Administrative: You can restrict viewing or editing rights for your user profiles to specific points of sale
  • Accounting: You can filter operations by point of sale in your Merchant Portal or in your data exports

When your CentralPay Merchant profile is created, a first point of sale is automatically created. You can then access your Merchant Portal to configure it or create new ones:

Recette Merchant Portal – Points of Sale
Production Merchant Portal – Points of Sale

1. Settings

Points of sale include a number of mandatory settings:

  • General Settings
    • Name: Point of sale name (visible to your customers)
    • Site URL: If this is an e-commerce site, enter its URL. Otherwise, enter the URL of your corporate website.
    • Point of sale country

  • Configuration
    • Technical type: Select « Remote sale »
    • API users: Select the API users with access rights to this point of sale
    • Contracts: Select the card VAD contract that has been configured for your merchant profile (generally, you will only have one contract available)
    • Default contract: Select the card VAD contract that will be used by default (generally, you will only have one contract available)
    • Priority Viban: If you want the Virtual IBANs displayed in payment requests to be those of the Customers, then select « Customer. » If you prefer to display Virtual IBANs dedicated to each payment request, then select « SCT. » If you need additional information, consult our section on Virtual IBANs

Other settings are not mandatory but are important for your sales process:

  • General Settings
    • Logo: Upload your company logo or one dedicated to your point of sale. It will appear on the payment page generated by payment requests
    • Merchant point of sale ID: Enter a custom reference allowing you to identify the point of sale more easily in your information systems

  • Confirmation Emails
    • Check « Enable payment confirmation email »: By checking this box, you activate the sending of an email to your customers when they make a card payment. This is a standardized, non-modifiable email containing a payment summary (legal name of your merchant profile, name of your point of sale, payment date, CentralPay transaction identifier, merchant transaction reference, merchant transaction description, payment authorization code, card brand, first 6 and last 4 digits of the card, transaction amount, transaction status). The language and footer of the email can be configured from the Merchant Portal Configuration Payment confirmation email
    • Sender email: If you have checked the « Enable payment confirmation email » box, you can customize the sender address by using one of your email addresses (for example: no-reply@mydomain.com). Please ensure you ask us to provide you with our SPF and DKIM keys so that you can authorize CentralPay to send emails from your domain
    • Sender name: If you have checked the « Enable payment confirmation email » box, you can customize the sender name (for example: MyCompany)
    • Check « Receive a copy of the payment confirmation »: By checking this box, you activate the sending of a copy of the email sent to your customers when they make a card payment. This can allow you to be easily notified by email when a customer makes a payment
    • Recipient email: If you have checked the « Receive a copy of the payment confirmation » box, you must enter the email address of the recipient of this copy

Finally, other secondary settings are available:

  • OTP
    • OTP email sender email: Email displayed as the sender of One Time Password emails (login to the Merchant Portal Administration area, etc.)
    • OTP email sender name: Name displayed as the sender of One Time Password emails (login to the Merchant Portal Administration area, etc.)
    • OTP SMS sender phone number or name: Name or phone number displayed as the sender of One Time Password SMS messages (SEPA mandate validation, etc.)

  • Communication settings: These settings are applied to emails or SMS messages transmitting the link to the payment form of a payment request (paymentRequest). They apply only when no scenario has been configured on the payment request.
    • SMS sender: Correspondent name displayed on the SMS
    • Email sender: Correspondent email displayed on the email
    • Email sender name: Correspondent name displayed on the email
    • Email reply address: Email used for replies to sent emails (coming soon)
    • Email footer: Email footer (coming soon)

Payment accounts

Payment accounts are used to carry out payment transactions (collecting payments in ISO currencies, paying out funds to a bank account, etc.). They allow you to hold funds in an ISO currency (EUR, USD, CHF, GBP, etc.) and have their own IBAN/BIC.

With few exceptions, a Payment Account is linked to a bank account with the same account holder, enabling CentralPay to make automatic payouts via SEPA transfer.

If you have several bank accounts to which your funds must be paid out, you may ask your CentralPay contact to create the same number of Payment Accounts in your CentralPay Merchant profile. This way, each Payment Account will be linked to a different bank account and will send SEPA payouts accordingly.

It is also possible to create several payment accounts for fund segmentation purposes (with an account dedicated to commission or fee transactions, for example).

You can view the details of your payment accounts via the following access points:

Recette Merchant Portal – Payment Accounts
Production Merchant Portal – Payment Accounts

1. Usage

Payment accounts are systematically used for our platform’s payment transactions, except for electronic money transactions.

2. Creating payment accounts

If you are a CentralPay merchant, you may send an email request to the CentralPay teams to create several payment accounts in your name. This is to segment your transactions or to open an account in a different currency.

If you are a CentralPay MOBSP Partner or AGENT representative, you can create accounts for your merchants using the onboarding request service.

EM Accounts

ℹ️ Reserved exclusively for EMD Intermediaries and their sub-merchants.

EM (Electronic Money) accounts are used to store and exchange funds in a CUSTOM currency (a currency dedicated to an EMD Intermediary). An EMD Intermediary may request the creation of EM accounts for the sub-merchants in its network and then carry out EM fund transfers between these accounts.

The holder of an EM account may only receive payments and use their electronic money through the EMD Intermediary. However, they may request a refund of their electronic money at any time and will receive their funds in an ISO currency: either to their bank account via SEPA transfer, or to their bank card, depending on their account settings.

You can view the details of your EM accounts via the following access points:

Recette Merchant Portal – Electronic Money Accounts
Production Merchant Portal – Electronic Money Accounts

1. Usage

EM accounts are mainly used to enable individuals to easily receive and exchange funds in the following contexts:

  • C2C marketplaces for products or services
  • Storage and use of gift values within a network of independent merchants

2. Specifics

The CMF (Monetary and Financial Code) sets out specific conditions for electronic money. As such, there are two types of EM accounts at CentralPay:

  • Anonymous EM account: This account may be opened without verifying the holder’s identity, provided it is issued to an individual and is limited to a balance or collections of €150 over 30 days. This type of account is particularly useful for occasional use by its holder, or simply to simplify onboarding with the EMD Intermediary.
  • Verified EM account: An anonymous account may subsequently be verified by CentralPay’s compliance teams (KYC procedure) to increase the limits imposed on it; it then becomes « verified ».

3. Creating EM accounts

If you are a CentralPay EMD Intermediary, you can request the creation of EM accounts for your sub-merchants.

Authentication 3DS 2.2

See more about 3DS 2.2

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

Authentication 3DS 2.2

See more about 3DS 2.2

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

Card authorization - Bank return codes

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

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

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

Most common response codes

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

All response codes (exhaustive)

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

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

Card authorization - Bank return codes

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

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

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

Most common response codes

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

All response codes (exhaustive)

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

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

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.

Customer profiles

Customer profiles (Customer) unify and secure all your customer data for easier management. They interact with other CentralPay services and notably allow you to:

  • Centralize their payment history (across all sales channels and payment methods)
  • Digitize and securely store their payment methods (cards, SEPA mandates, virtual IBANs)
  • Easily track their recurring payments (subscriptions, split payments) or pending settlements (payment requests)

In certain cases, they can also be associated with an e-money account, allowing the customer to receive and use funds within the network of the e-money distributor partner.

A Customer must be identified by either their email address or their phone number.

It is also possible to declare other information concerning them, such as their last name, first name, language, personalized reference, default payment method, etc.

1. Usage

Creating a Customer is mandatory for performing:

  • Subscriptions or split payments by card
  • 1-click card payments
  • SEPA direct debit payments
  • SEPA transfer payments with a dedicated Virtual IBAN
  • Creating an anonymous e-money account

2. Interfaces

You can view all Customers on your account from your Merchant Portal Account Customers

Your Customers also have access to a customer portal allowing them to manage payments made to your company:

Recette Merchant Portal – Customers
Production Merchant Portal – Customers

3. Creating a Customer

There are two methods for creating a Customer:

  • Create a Customer via the dedicated API service, which then allows you to create a Card, manage a Virtual IBAN for this Customer, initiate a transaction, a payment request, etc.
  • Create a Customer via a payment request

CentralPay ensures Customer uniqueness: if you initiate a payment request with Customer creation while their email or phone number is already known in your account, CentralPay will not create a new Customer and will associate the transaction with the existing profile.

Services anti-fraude

1. Organisation des services anti-fraude

Les services anti-fraude sont segmentés en 4 outils :

  • Liste blanche (whitelist)
    Le but de la « whitelist » est de rendre sélective l’application d’une règle d’acceptation des transactions. Elle devient inopérante pour des clients identifiés, VIP ou reconnus de confiance qui sont intégrés à une « whitelist ». Les « whitelists » portent sur les données spécifiques d’un client, comme le numéro de sa Carte Bancaire ou son adresse IP. Cette fonctionnalité permet d’être moins restrictif sur des populations d’utilisateurs
  • Liste noire (blacklist)
    Le service de « blacklist » permet de refuser les paiements. Tout comme pour les « whitelists », les « blacklists » portent sur les données propres au porteur de carte (Carte, IP, tel, email)
  • Règles d’acceptation des transactions
    Cet outil permet de construire les règles spécifiques définissant les conditions d’acceptation d’un paiement
  • Scoring anti-fraude
    Le service de scoring permet de détecter les transactions potentiellement frauduleuses en se basant sur l’analyse croisée de plusieurs données liées aux paiements

Les phases de traitement des transactions sont toujours exécutées dans cet ordre.

Dans le cas où les données d’entrée remplissent toutes les conditions des « whitelist » définies, le service de « blacklist » ne sera pas exécutée et la transaction sera opérée normalement.

Dans le cas où les données d’entrée remplissent une des conditions des « blacklist » définies et ne figurent pas dans le service de « whitelist », la transaction sera refusée et le service « règle d’acceptation » ne sera pas exécutée. Chaque service est exécuté de façon descendante vis-à-vis de la hiérarchie des acteurs CentralPay, ce qui signifie qu’une plateforme peut appliquer les paramètres de ses services anti-fraude à ses marchands, mais que l’inverse n’est pas possible.

2. Outil de scoring de fraude

CentralPay s’appuie sur un service de détection de fraude reposant sur des algorithmes de machine learning.

Ce moteur prédictif est constitué depuis un large échantillon de données fourni par CentralPay au format JSON et issues des données transaction, refund, dispute.

Ce service s’appuie sur une classification comportementale liée au secteur d’activité du marchand.

Le moteur retourne une action et un score. L’action invite le service de paiement à accepter ou refuser la transaction.

Le score classifie le niveau de risque en fournissant un pourcentage de probabilité de fraude. Ce score est ensuite interprété dans le moteur de règle.

Le score permet au marchand et à l’algorithme d’interagir ensemble pour s’améliorer.

Les scores sont classifiés ainsi :

  • De 0 à 19 = risque faible
    Transaction acceptée
    Pas d’action
  • De 20 à 59 = risque moyen
    Transaction acceptée
    Action : Envoi événement avec détail du score pour revue manuelle et apprentissage
  • +60 = risque élevé
    Transaction refusée
    Action : Envoi événement avec détail du score pour revue manuelle et apprentissage

Ce service d’analyse d’exposition à la fraude analyse le contexte d’exposition au risque de fraude de chaque transaction. Ce service retourne un score qui permet de traiter automatiquement la réponse attendue dans le moteur de règle.

Le score repose sur l’analyse croisée des données suivantes :

  • Indice de risque IP
  • Détection de Proxy
  • Détection réseau TOR
  • Vérification de l’adresse IP
  • Confidence factors
  • Email checks
  • Address & phone checks
  • Adresse d’expédition à haut risque
  • Géolocalisation des adresses IP
  • Identification des équipements utilisés
  • Adresse e-mail
  • Type de navigateur
  • Discordances de pays
  • Distance de l’adresse d’expédition
  • Distance de l’adresse de facturation
  • Domaine e-mail
  • Heure
  • Montant de la commande
  • Pays
  • Numéro de téléphone
  • Titulaire IP
  • Titulaire de l’e-mail
  • Vérification adresse CB

3. Listes blanches et listes noires

3.1. Liste blanche (Whitelist)

Le but de la « whitelist » est de rendre sélective l’application d’une règle d’acceptation. Cette règle devient inopérante pour des clients identifiés, VIP ou reconnus de confiance qui sont intégrés à une « whitelist ».

Le service anti-fraude passe ainsi à l’étape suivante.

Les « whitelists » portent sur les données spécifiques d’un client, comme le numéro de sa Carte Bancaire ou son adresse IP. Cette fonctionnalité permet d’être moins restrictif sur une population d’utilisateurs.

3.2. Liste noire (Blacklist)

L’étape de la « blacklist » permet de refuser les paiements.

Tout comme pour les « whitelists », les « blacklists » portent sur les données propres au porteur de carte :

  • Pays
  • Régions géographiques
  • Numéros de carte
  • Numéros de téléphone
  • E-mail
  • Adresses IP
  • IBAN

4. Règles d’acceptation des transactions

Le moteur de règles d’acceptation est une brique applicative puissante et modulaire qui permet d’adapter le comportement lié au traitement à réaliser sur chaque transaction comme :

  • Accepter
  • Refuser
  • Alerter

Ce service permet ainsi de définir des actions à réaliser sur chaque transaction depuis une large liste d’attributs disponibles : score de fraude, localisation du porteur, montant des ventes cumulées sur 7 ou 30 jours, client VIP whitelist, paramètre spécifique adressé par le marchand…

Une règle d’acceptation est une condition logique. Elle permet : d’autoriser, de restreindre, et/ou d’interdire des transactions.
Une règle se compose de 4 éléments : l’action, les attributs, les opérateurs, les valeurs.

La syntaxe d’une règle est la suivante : « Action » « if » « Attribut » « Opérateur de comparaison » « Valeur de comparaison »

Exemple :

REFUSE if card_country != 'FRA'

La règle présentée dans cet exemple permet de refuser automatiquement les paiements lorsque le pays de la carte n’est pas la France.
La syntaxe de la grammaire choisie par la plateforme pour son moteur d’acceptation est très semblable à la syntaxe SQL (utilisée pour dialoguer avec les bases de données).

4.1. Les actions disponibles

  • ALLOW
    Autorise le paiement
  • REFUSE
    Refuse le paiement
  • ALERT
    Adresse une notification « webhook » de la transaction associée

4.2. Les attributs disponibles

En tapant « # », les attributs disponibles sont affichés.

Dans une règle, un attribut est toujours suivi d’un Opérateur de comparaison.

Liste des attributs :

AttributDescriptionType de valeursExemple
#always Aucune 
#transactions[_état][_entité] [_temporalité]Quota du nombre de transactions [état] [entité] [temporalité]Entiers
#transactions_amount[_état] [_entité][_temporalité]Quota du montant des transactions [état] [entité] [temporalité]Entiers
#amountMontant de la transaction en centimesEntier#amount > 100
#card_countryPays d’émission de la carteChaîne de caractères 
ISO 3166-1 alpha-3
#card_country IN (‘FRA’, ‘USA’, ‘BEL’, ‘DEU’)
#card_establishmentEtablissement de la carte  
#card_productType de carte‘gold’, ‘platinium’ 
#card_product_typeType de carte (perso ou corp.)CONSUMER CORPORATE#card_product_type = ‘CONSUMER’
#card_regionRégion d’émission de la carte‘ASIA_PACIFIC »EUROPE »LATIN_AMERICA »MIDDLE_EAST_AND_AFRICA »USA_AND_CANADA »ANTARCTIQUE »UNKNOWN’#card_region NOT IN (‘ASIA_PACIFIC’, ‘LATIN_AMERICA’)
#commercial_brandMarque de la carteVISA MASTERCARD AMEX OTHER#commercial_brand != ‘VISA’
#currencyDevise de la transactionChaîne de caractères 
ISO 4217
#currency = ‘EUR’
#ip_countryPays de l’adresse IPChaîne de caractères 
ISO 3166-1 alpha-3
#ip_country IN (‘FRA’, ‘USA’, ‘BEL’, ‘DEU’)
#ip_regionRégion de l’adresse IP‘ASIA_PACIFIC »EUROPE »LATIN_AMERICA »MIDDLE_EAST_AND_AFRICA »USA_AND_CANADA »ANTARCTIQUE »UNKNOWN’#card_region NOT IN (‘ASIA_PACIFIC’, ‘LATIN_AMERICA’)
#is_anonymous_ipEst une IP anonymeTRUE | FALSE#is_anonymous_ip = TRUE
#is_three_d_secureEst une transaction 3D-SecureTRUE | FALSE#is_three_d_secure = TRUE
#payout_amountMontant de versementEntier#payout_amount > 100
#payout_currencyDevise de versementChaîne de caractères 
ISO 4217
#payout_currency = ‘EUR’
#risk_scoreScore d’antifraudeDouble#risk_score > 2,34
#custom_acceptance_data[‘key’] = ‘value’champs customisékey : Regex [a-zA-Z0-9_-]value: Regex [a-zA-Z0-9_-]#custom_acceptance_data[‘product_category’] = ‘high’

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

Les opérateurs logiques et parenthésage :

Opérateurs logiques AND et OR

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

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

Exemple :

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

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

Exemple :

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

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

Parenthèses

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

Exemple :

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

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

Ordre d’exécution des règles

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

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

Exemples de règles :

ALLOW if #amount < 1000 and #transactions_amount_daily < 10000

Cet exemple autorise les transactions dont le montant est inférieur à 10 si la somme des montants des transactions de la journée est inférieur à 100.

REFUSE if #risk_score > 3 or (#ip_regions = 'ASIA_PACIFIC' and #card_region = 'ASIA_ PACIFIC')

Cette règle bloque les paiements si le score de risque dépasse 3 ou que l’IP utilisée ainsi que la région d’émission de la carte correspondent à la zone ‘ASIA_PACIFIC’.

THREE_D_SECURE if #card_country NOT IN ('FRA', 'USA', 'GBR') 

Cette règle demande une transaction 3D Secure si le pays de la carte n’est pas la France, les Etats-Unis, ou la Grande Bretagne.

ALLOW (#amount < 10000 and #transactions_amount_daily < 100000) or (#currency IN ('EUR', 'USD') and #transactions_amount_monthly < 1000000)

Cet exemple précédent AUTORISE les paiements SI le montant est INFÉRIEUR à 100 ET que la somme des montants des transactions du jour est INFÉRIEUR à 1000 OU que la devise est € ou $ ET que la somme des montants des transactions du mois est INFÉRIEURE à 10 000.

Les opérateurs logiques « AND » et « OR » ne sont syntaxiquement correct qu’en minuscule.

4.3. Les opérateurs de comparaison disponibles

  • = (égal)
  • != (différent de)
  • < (plus petit que)
  • <= (plus petit ou égal à)
  • in (dans ce qui va suivre)
  • not in (pas dans ce qui va suivre)

Les opérateurs de comparaison = , != , > , < , >= et <= doivent être suivis d’une valeur.

Les opérateurs IN et NOT IN sont suivis d’une liste de valeurs de comparaison.
Une liste de valeurs est entourée par des parenthèses et les valeurs à l’intérieur de la liste sont séparées par des virgules.

Exemple :

REFUSE if #currency NOT IN ('EUR', 'USD', 'GBP', 'CHF')

L’exemple présenté ci-dessus permet de refuser tous les paiements dont la devise n’est pas l’Euro, le Dollar US, la Livre Sterling ou le Franc Suisse.

Cette syntaxe évite d’écrire plusieurs règles ou plusieurs conditions dans la même règle.

4.4. Les valeurs disponibles :

En fonction du type de valeur, la syntaxe permettant de définir la valeur ne sera pas la même :

  • Entiers (valeur numérique sans décimale) : Syntaxe classique (ex : 100)
  • Doubles (valeur numérique avec décimales) : La valeur est définie avec un point comme séparateur de décimale (ex : 12.32)
  • Chaîne de caractères : La valeur est définie entre ‘quotes’ simples (ex : ‘FRA’)
  • Booléens : La valeur est true ou false (ex : false)
ℹ️ Les valeurs de "montants" doivent être renseignées en centimes (ex : pour 10 € on renseignera une valeur de 1000).

4.5. Les opérateurs logiques :

Les opérateurs disponibles sont AND et OR. Ils permettent de définir comment le moteur de règle va interpréter la succession de ces règles. Le « AND » permet une inclusion tandis que le « OR » une exclusion.

Exemple :

REFUSE if #amount < 1000 and #card_country != 'FRA'

L’exemple présenté ci-dessus permet de refuser les paiements dont le montant est inférieur à 10 € ET dont la carte n’est pas française. Si l’une ou l’autre des conditions définies n’est pas remplie, l’action ne sera pas exécutée.

Anti-fraud services

1. Organization of anti-fraud services

Anti-fraud services are segmented into 4 tools:

  • Whitelist
    The purpose of the « whitelist » is to make the application of a transaction acceptance rule selective. It becomes inoperative for identified customers, VIPs, or trusted customers who are included in a « whitelist ». « Whitelists » apply to customer-specific data, such as their bank card number or IP address. This feature makes it possible to be less restrictive for certain user populations.
  • Blacklist
    The « blacklist » service makes it possible to refuse payments. As with « whitelists », « blacklists » apply to data specific to the cardholder (card, IP, phone, email).
  • Transaction acceptance rules
    This tool makes it possible to build the specific rules that define the conditions for accepting a payment.
  • Anti-fraud scoring
    The scoring service detects potentially fraudulent transactions based on cross-analysis of multiple payment-related data points.

The transaction processing phases are always executed in this order.

If the input data meets all the conditions of the defined « whitelist », the « blacklist » service will not be executed and the transaction will be processed normally.

If the input data meets one of the conditions of the defined « blacklist » and is not included in the « whitelist » service, the transaction will be refused and the « acceptance rule » service will not be executed. Each service is executed top-down with respect to the CentralPay actor hierarchy, which means that a platform can apply its anti-fraud service settings to its merchants, but the reverse is not possible.

2. Fraud scoring tool

CentralPay relies on a fraud detection service based on machine learning algorithms.

This predictive engine is built from a large sample of data provided by CentralPay in JSON format and sourced from transaction, refund, dispute data.

This service relies on behavioral classification linked to the merchant’s business sector.

The engine returns an action and a score. The action instructs the payment service to accept or refuse the transaction.

The score classifies the risk level by providing a percentage probability of fraud. This score is then interpreted in the rules engine.

The score enables the merchant and the algorithm to interact together to improve.

Scores are classified as follows:

  • From 0 to 19 = low risk
    Transaction accepted
    No action
  • From 20 to 59 = medium risk
    Transaction accepted
    Action: Send an event with score details for manual review and learning
  • +60 = high risk
    Transaction refused
    Action: Send an event with score details for manual review and learning

This fraud exposure analysis service analyzes the fraud risk exposure context of each transaction. This service returns a score that makes it possible to automatically process the expected response in the rules engine.

The score is based on cross-analysis of the following data:

  • IP risk index
  • Proxy detection
  • TOR network detection
  • IP address verification
  • Confidence factors
  • Email checks
  • Address & phone checks
  • High-risk shipping address
  • IP address geolocation
  • Identification of the devices used
  • Email address
  • Browser type
  • Country mismatches
  • Shipping address distance
  • Billing address distance
  • Email domain
  • Time
  • Order amount
  • Country
  • Phone number
  • IP owner
  • Email owner
  • Card address verification

3. Whitelists and blacklists

3.1. Whitelist

The purpose of the « whitelist » is to make the application of an acceptance rule selective. This rule becomes inoperative for identified customers, VIPs, or trusted customers who are included in a « whitelist ».

The anti-fraud service then moves on to the next step.

« Whitelists » apply to customer-specific data, such as their bank card number or IP address. This feature makes it possible to be less restrictive for a user population.

3.2. Blacklist

The « blacklist » step makes it possible to refuse payments.

As with « whitelists », « blacklists » apply to data specific to the cardholder:

  • Country
  • Geographic regions
  • Card numbers
  • Phone numbers
  • Email
  • IP addresses
  • IBAN

4. Transaction acceptance rules

The acceptance rules engine is a powerful, modular application component that makes it possible to adapt the processing behavior to be applied to each transaction, such as:

  • Allow
  • Refuse
  • Alert

This service therefore makes it possible to define actions to be performed on each transaction from a wide list of available attributes: fraud score, cardholder location, total sales amount over 7 or 30 days, VIP whitelist customer, specific parameter provided by the merchant…

An acceptance rule is a logical condition. It makes it possible to authorize, restrict, and/or prohibit transactions.
A rule consists of 4 elements: the action, the attributes, the operators, the values.

The syntax of a rule is as follows: « Action » « if » « Attribute » « Comparison operator » « Comparison value »

Example:

REFUSE if card_country != 'FRA'

The rule shown in this example makes it possible to automatically refuse payments when the card country is not France.
The grammar syntax chosen by the platform for its acceptance engine is very similar to SQL syntax (used to interact with databases).

4.1. Available actions

  • ALLOW
    Allows the payment
  • REFUSE
    Refuses the payment
  • ALERT
    Sends a « webhook » notification for the associated transaction

4.2. Available attributes

By typing « # », the available attributes are displayed.

In a rule, an attribute is always followed by a comparison operator.

List of attributes:

AttributeDescriptionValue typeExample
#always None
#transactions[_état][_entité] [_temporalité]Transaction count quota [state] [entity] [time period]Integers
#transactions_amount[_état] [_entité][_temporalité]Transaction amount quota [state] [entity] [time period]Integers
#amountTransaction amount in centimesInteger#amount > 100
#card_countryCard issuing countryString
ISO 3166-1 alpha-3
#card_country IN (‘FRA’, ‘USA’, ‘BEL’, ‘DEU’)
#card_establishmentCard issuer
#card_productCard type‘gold’, ‘platinium’
#card_product_typeCard type (personal or corporate)CONSUMER CORPORATE#card_product_type = ‘CONSUMER’
#card_regionCard issuing region‘ASIA_PACIFIC »EUROPE »LATIN_AMERICA »MIDDLE_EAST_AND_AFRICA »USA_AND_CANADA »ANTARCTIQUE »UNKNOWN’#card_region NOT IN (‘ASIA_PACIFIC’, ‘LATIN_AMERICA’)
#commercial_brandCard brandVISA MASTERCARD AMEX OTHER#commercial_brand != ‘VISA’
#currencyTransaction currencyString
ISO 4217
#currency = ‘EUR’
#ip_countryIP address countryString
ISO 3166-1 alpha-3
#ip_country IN (‘FRA’, ‘USA’, ‘BEL’, ‘DEU’)
#ip_regionIP address region‘ASIA_PACIFIC »EUROPE »LATIN_AMERICA »MIDDLE_EAST_AND_AFRICA »USA_AND_CANADA »ANTARCTIQUE »UNKNOWN’#card_region NOT IN (‘ASIA_PACIFIC’, ‘LATIN_AMERICA’)
#is_anonymous_ipIs an anonymous IPTRUE | FALSE#is_anonymous_ip = TRUE
#is_three_d_secureIs a 3D-Secure transactionTRUE | FALSE#is_three_d_secure = TRUE
#payout_amountPayout amountInteger#payout_amount > 100
#payout_currencyPayout currencyString
ISO 4217
#payout_currency = ‘EUR’
#risk_scoreAnti-fraud scoreDouble#risk_score > 2,34
#custom_acceptance_data[‘key’] = ‘value’custom fieldkey : Regex [a-zA-Z0-9_-]value: Regex [a-zA-Z0-9_-]#custom_acceptance_data[‘product_category’] = ‘high’

In the case of custom_acceptance_data[‘key’] = ‘value’, for it to be taken into account, the exact same field must be included in the request for the targeted object.

Logical operators and parentheses:

Logical operators AND and OR

The syntax used to define rules makes it possible to create multiple conditions within the same rule. The conditions will remain defined in the same way, with the only difference being that a keyword will be placed between the conditions.

The keywords are and and or. They define how the rules engine will interpret the sequence of these rules. « AND » corresponds to inclusion and « OR » to exclusion.

Example:

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

The previous example allows payments whose amount is less than 10 AND whose card is French. If one or the other of the defined conditions is not met, the action will not be executed.

Example:

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

The previous example allows payments whose amount is less than 10 OR whose card is French. If one or the other of the defined conditions is met, the action will be executed.

Parentheses

Using parentheses when defining a multi-condition rule makes it possible to define condition blocks and the priorities between these blocks. The principle is the same as for priorities in mathematical operators.

Example:

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

In the previous example, the rules engine will first interpret the block (#card_country = ‘FRA’ or #currency = ‘EUR’). That is, the payment will be allowed if (the card is French or the currency is the euro), AND the amount is less than 10.

Rule execution order

Rules are executed in an order to be defined. This order is important because as soon as a transaction meets the criteria of a rule, the following rules will not be processed.

Rules are executed in the display order of the list in the interface.
A position indicator is displayed in each list. To change a rule’s position, simply drag it to the desired position.

Rule examples:

ALLOW if #amount < 1000 and #transactions_amount_daily < 10000

This example allows transactions whose amount is less than 10 if the sum of the day’s transaction amounts is less than 100.

REFUSE if #risk_score > 3 or (#ip_regions = 'ASIA_PACIFIC' and #card_region = 'ASIA_ PACIFIC')

This rule blocks payments if the risk score exceeds 3 or if the IP used and the card issuing region correspond to the ‘ASIA_PACIFIC’ zone.

THREE_D_SECURE if #card_country NOT IN ('FRA', 'USA', 'GBR') 

This rule requires a 3D Secure transaction if the card country is not France, the United States, or Great Britain.

ALLOW (#amount < 10000 and #transactions_amount_daily < 100000) or (#currency IN ('EUR', 'USD') and #transactions_amount_monthly < 1000000)

This previous example ALLOWS payments IF the amount is LESS THAN 100 AND the sum of the day’s transaction amounts is LESS THAN 1000 OR the currency is € or $ AND the sum of the month’s transaction amounts is LESS THAN 10,000.

The logical operators « AND » and « OR » are only syntactically correct in lowercase.

4.3. Available comparison operators

  • = (equals)
  • != (not equal to)
  • < (less than)
  • <= (less than or equal to)
  • in (in the following)
  • not in (not in the following)

The comparison operators = , != , > , < , >= and <= must be followed by a value.

The IN and NOT IN operators are followed by a list of comparison values.
A list of values is enclosed in parentheses, and the values inside the list are separated by commas.

Example:

REFUSE if #currency NOT IN ('EUR', 'USD', 'GBP', 'CHF')

The example shown above makes it possible to refuse all payments whose currency is not the Euro, the US Dollar, the Pound Sterling, or the Swiss Franc.

This syntax avoids writing multiple rules or multiple conditions within the same rule.

4.4. Available values:

Depending on the value type, the syntax used to define the value will not be the same:

  • Integers (numeric value without decimals): Standard syntax (e.g., 100)
  • Doubles (numeric value with decimals): The value is defined with a dot as the decimal separator (e.g., 12.32)
  • String: The value is defined between single quotes (e.g., ‘FRA’)
  • Booleans: The value is true or false (e.g., false)
ℹ️ "Amount" values must be entered in centimes (e.g., for €10, enter 1000).

4.5. Logical operators:

The available operators are AND and OR. They define how the rules engine will interpret the sequence of these rules. « AND » enables inclusion, while « OR » enables exclusion.

Example:

REFUSE if #amount < 1000 and #card_country != 'FRA'

The example shown above makes it possible to refuse payments whose amount is less than €10 AND whose card is not French. If one or the other of the defined conditions is not met, the action will not be executed.

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
Caution carte (réservé aux activités de locations)paymentMethod[]=TRANSACTION
transaction[source]=DP
Vérification/Empreinte 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 Paiement par banque (virement standard)paymentMethod[]=SCT_TRANSACTION_PIS
Transaction par Paiement par banque (virement instantané par défaut, sinon standard)paymentMethod[]=SCT_TRANSACTION_PIS_IP
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 entrer en conflit 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.

Payment requests

The payment request (PaymentRequest) is the service that allows you to generate payment links. You can create payment requests via API or via the Merchant Portal. The payment request can also be paired with the CentralPay notification service, allowing you to easily send a payment link to your customers by email or SMS and schedule automated reminders.

1. API creation

1.1. Create a PaymentRequest

Below are the available payment methods and the corresponding API values in the PaymentRequest service:

Desired payment method or modeAPI values to provide
One-off payments
Card transactionpaymentMethod[]=TRANSACTION
Card deposit (reserved for rental businesses)paymentMethod[]=TRANSACTION
transaction[source]=DP
Card verification/imprint (0€ transaction)paymentMethod[]=TRANSACTION
transaction[source]=RI
Bank transfer transactionpaymentMethod[]=SCT_TRANSACTION
SEPA Direct Debit transactionpaymentMethod[]=SDD
sdd[remittanceInformation]
Pay by bank transaction (standard transfer)paymentMethod[]=SCT_TRANSACTION_PIS
Pay by bank transaction (instant transfer by default, otherwise standard)paymentMethod[]=SCT_TRANSACTION_PIS_IP
Recurring payments
Card subscriptionpaymentMethod[]=SUBSCRIPTION
subscriptionModel[subscriptionModelId]
SEPA Direct Debit subscriptionpaymentMethod[]=SUBSCRIPTION
subscription[source]=SDD
subscriptionModel[subscriptionModelId]
Card instalment paymentpaymentMethod[]=INSTALLMENT
intallment[intervalUnit]
installment[intervalCount]
installment [iterationCount]
SEPA Direct Debit instalment paymentpaymentMethod[]=INSTALLMENT
installment[source]=SDD
intallment[intervalUnit]
installment[intervalCount]
installment [iterationCount]

If you want to allow multiple payment methods or modes in your PaymentRequest, you must provide the paymentMethod object multiple times.

Example:

paymentMethod[]=TRANSACTION
paymentMethod[]=SCT_TRANSACTION

⚠️ Some combinations of payment methods or modes may conflict and your PaymentRequest may return an error. For example, you cannot allow a TRANSACTION and a SUBSCRIPTION; however, you can allow a TRANSACTION and an INSTALLMENT.

Here is the key information about other values to provide when creating a PaymentRequest:

LabelDefinition
amountAmount of the payment request in centimes
merchantPaymentRequestIdCustom reference (your order or invoice number, for example) that you can use to reconcile the payment. This value will be visible to your customer on the payment page
descriptionCustom description (name of the product or service sold). This value will be visible to your customer on the payment page
additionalData[*]Free key-value data, allowing you to pass through one or more data items (invoice references, customer number, etc.). Not visible to your customer on the payment page
createCustomerTRUE / FALSE creation of a Customer account (in particular, enables saving the customer payment method: card, SEPA mandate, and creating a virtual IBAN dedicated to the Customer)
breakdown[customerId]Select an existing Customer
ℹ️ For SEPA transfer transactions, you can define whether you want to display the Virtual IBAN dedicated to the Customer or generate a single-use Virtual IBAN (SCT) from the settings of your Points of Sale.

1.2. Send a PaymentRequest by email / SMS

When creating it, you can ask CentralPay to send the payment request to your customer. There are two sending methods:

  • Via the default PaymentRequest mailer: CentralPay sends the payment request using a standardised email/SMS template and from the sender email configured in your point of sale (or, failing that, CentralPay’s sender email « no-reply@centralpay.eu »).
    • To do this, you must [coming soon]

  • Via the CentralPay email/SMS notification service: CentralPay sends the payment request according to the scenario and communication templates you have configured. This service notably enables automated customer reminders, based on the payment request parameters (payment deadlines, payment progress, etc.).
    • To do this, you must [coming soon]

1.3. Specific features

Send an open-amount payment request (multi-payment methods)

It is possible to allow the amount to be paid to be modified (up to the initial amount), so that your payers can pay the amount due using multiple payment methods or at different times.

Example:

Example of a €500 payment request:

• Payment of €250 by transfer, then €250 by card
• Or €300 with a first card, then €200 with another
• Or payment of €350 with a card, then come back later to pay the remaining €150 with the same card

To do this, you must [coming soon]

Send a payment request to multiple recipients

It is possible to send a payment request to multiple recipients with a different amount to be paid by each of them. As follows:

  • Each participant receives an email or SMS notification detailing the item to be paid
  • Amounts are set by the initiator or left open for each participant, who pays the amount they wish
  • The dates configured on the request (creation, expiration, etc.) allow notifications to be generated for each participant

To do this, you must [coming soon]

2. Creation from the Merchant Portal

2.1. Creation and types of payment requests

You can create a payment request from Merchant Portal Payment requests Payment links Create .

Payment requests created from the Merchant Portal are necessarily sent to your customers by CentralPay. Depending on your needs, you must choose one of the following request types:

  • Instant request: A simple request, sent from CentralPay’s standard email/SMS senders and templates
  • Scheduled request: An advanced request, using the communication templates, scenarios, and sending/reminder rules that you have previously configured in the CentralPay email/SMS notification service. A scheduled request sent without selecting a notification scenario will automatically be reclassified as an instant request

Once created, you can access the payment page by clicking payment request details Payment form . This way, you can send your customer the page URL in case of a sending error.

Access:

Recette Merchant Portal – Payment requests
Production Merchant Portal – Payment requests

2.2. Payment request profiles

To make it easier to create payment requests, you can create predefined profiles that include the main request settings:

  • Point of Sale (POS)
  • Currency
  • Language
  • Allowed payment methods
  • Payment due date (contractual payment terms)
  • Link expiration (time before the link expires)
  • Notification scenarios
  • Rerouting of the payment confirmation email
  • Display rules (payment page settings)
  • Customer creation
  • Attachments

You can then use this profile when creating your scheduled payment requests via the Merchant Portal, or via flat-file import.

2.3. Create payment requests by flat-file import

From Merchant Portal Payment requests Payment links Import , you can upload a payment request import file. This use may be recommended for businesses that want to send, at the end of the month, and automatically follow up on a list of debtors.

Download the template:

  • CSV format➝
  • JSON format ➝

Some important information:

LabelDefinition
profil_uuid*UUID of the payment request profile
merchant_payment_request_idCustom reference (your order or invoice number, for example) that you can use to reconcile the payment. This value will be visible to the payer on the payment page.
descriptionCustom description (name of the product or service sold). This value will be visible to your customer on the payment page.
total_amount*Payment request amount. Provide as a double with a « . » separator (e.g., 500.00 for €500).
last_nameLast name
first_nameFirst name
email*Recipient email
phoneRecipient phone number in international format (e.g., 33612345678).
create_customerCreation of a « Customer » customer profile: enter « O » for YES or « N » for NO
link_expiration_datePayment request expiration date (date after which the customer can no longer pay you)
deadlinePayment due date (date by which your customer must have paid you, and after which they are late).
receipt_emailEmail address to which you want to reroute the payment confirmation email
language*Communication and payment page language (FRE for French, ENG for English…)
Fields marked with * are required.

Formulaire de paiement CUSTOM

Le service API Transaction permet d’effectuer une autorisation suivie d’une capture des fonds sur la carte bancaire de votre client. Tous les modes de paiement par carte (paiement simple, récurrents, MoTo, etc.) sont gérés via ce service.

Lorsqu’un client souhaite effectuer un premier paiement, ses données de carte doivent être collectées pour générer un cardTokenId, grâce au service de tokenisation « token.js » de CentralPay. Ce token temporaire permet ensuite de créer une ressource Card, identifiée par un cardId, pouvant être enregistrée dans un objet Customer. Ce rattachement est indispensable pour permettre des paiements ultérieurs sans redemander la carte (paiement en 1 clic, récurrents, etc.).

ℹ️ Avec un formulaire de paiement personnalisé (CUSTOM FORM), l'intégration de l'authentification 3DS 2.2 est obligatoire avant d'exécuter une transaction.

Schéma du flux de paiement avec cardTokenId :

ℹ️ Si vous disposez d'une certification PCI-DSS de niveau 1 et que vous gérez les données de carte, vous pouvez directement créer un objet /card en envoyant les données (PAN, date d'expiration, CVC) à l'API, sans passer par token.js.

1. Prérequis

1.1. Déclarer vos domaines

Avant d’utiliser le token.js, vous devez déclarer les domaines hébergeant vos formulaires Custom dans votre Portail Marchand. Allez dans Administration Mon profil marchand Technique Modifier , puis complétez le champ Hosts Custom Forms autorisés.

Accès :

Recette Portail Marchand – Administration
Production Portail Marchand – Administration

1.2. Sécuriser votre formulaire

Assurez-vous que vos pages de paiement utilisent le protocole HTTPS avec TLS 1.2 ou supérieur.

1.3. Conformité PCI-DSS

L’utilisation de token.js implique que vous gérez vous-même l’affichage du formulaire et le déclenchement du token. Cette méthode impose de respecter les exigences PCI DSS SAQ A-EP.

Téléchargez le formulaire A-EP ➝

2. Intégration du formulaire de paiement

2.1. Créer un formulaire de paiement HTML

Contrairement au Smart Form hébergé par CentralPay, le Custom Form est créé par vos soins, via votre propre code HTML. Vous devez implémenter les champs suivants :

  • Numéro de carte : 16 chiffres pour CB/Visa/Mastercard, 15 pour American Express
  • Date d’expiration : format MM/AAAA
  • CVC : 3 chiffres (CB/Visa/Mastercard), 4 chiffres (Amex)

Vous pouvez consulter nos exemples de formulaires Custom Form :

  • Consultez l’exemple de formulaire Custom Form sans 3DS 2.2 ➝
  • Consultez l’exemple de formulaire Custom Form avec 3DS 2.2 ➝

2.2. Intégration du script token.js

Ajoutez dans votre page le script token.js pour générer un cardTokenId :

<script src="https://js.centralpay.net/js/token.js"></script>

Ajoutez ensuite votre clé publique marchand (MerchantPublicKey) dans un tag distinct :

<script type="text/javascript">
  window.Centralpay ? Centralpay.card.setMerchantPublicKey('VOTRE_CLE_PUBLIQUE') : alert('Error loading html form');
</script>

Vous pouvez voir où retrouver votre MerchantPublicKey depuis la page Authentification de nos API.

Intégration dans une application mobile

Si vous utilisez une WebView dans votre application, vous pouvez intégrer soit un formulaire personnalisé avec token.js, soit un formulaire hébergé via le service PaymentRequest. Ces options vous permettent d’externaliser la collecte des données carte tout en offrant une expérience utilisateur fluide.

Dans une application mobile native, le script token.js n’est pas compatible. Vous devez alors collecter les données de carte via les champs de l’application, puis appeler directement l’API cardToken en utilisant votre merchantPublicKey.

L’appel à l’API cardToken doit inclure un en-tête HTTP Origin correspondant à une URL déclarée dans votre profil Marchand CentralPay (voir 2.1 Prérequis).

Pour vos tests, vous pouvez utiliser l’Origin suivant : https://example.centralpay.net

ℹ️ Pour les applications mobiles natives, les données de carte sont transmises directement depuis le device de l’utilisateur vers CentralPay, sans passer par les serveurs du marchand. Cependant, ce type d’intégration nécessite de veiller à respecter les exigences de sécurité et de conformité PCI-DSS applicables à la collecte et la transmission de données de carte dans un environnement natif.

2.3. Créer un Customer et rattacher une carte

ℹ️ Le cardTokenId est un token à usage unique, dont le CVC est temporaire (10 minutes en production, 5 minutes en RCT). Passé ce délai, le token expire automatiquement (status=EXPIRED) et ne peut plus être utilisé, ce qui entraînera l’erreur suivante : "cardTokenId": "Card token already used". 

Que vous utilisiez la carte immédiatement (paiement simple) ou que vous souhaitiez la réutiliser plus tard (paiement en 1 clic, récurrent, etc.), il est recommandé de commencer par créer un objet Customer, puis d’enregistrer une Card à l’aide du cardTokenId. L’authentification 3DS 2.2 pouvant parfois allonger le délai de traitement, cette séquence permet d’éviter l’expiration du CVC associé au cardToken.

  1. Créez un objet customer via l’endpoint POST /customer ou récupérez le customerId s’il est déjà connu
  2. Créez une card en utilisant POST /card en spécifiant le cardTokenId émis par le token.js et le customerId

Une fois la card rattachée à un customer, le CVC devient permanent et les transactions futures peuvent être initiées sans limite de temps.

Si vous n'utilisez pas le token.js (certification PCI-DSS requise), vous pouvez directement créer une card sans passer par le cardToken en fournissant le PAN + expiration + CVC + customerId

3. Authentification 3DS 2.2

Avant d’initier une transaction par carte, vous devez vérifier l’identité du porteur via une authentification 3DS 2.2. Cette étape est obligatoire pour les transactions carte unitaire comme pour les transactions carte récurrente.

ℹ️ Exception : Les transactions de type MoTo (Mail Order / Telephone Order) ne sont pas soumises à l’authentification 3DS. Vous pouvez créer la transaction directement après la création de la carte.

CUSTOM payment form

The Transaction API service lets you perform an authorisation followed by a capture of funds on your customer’s bank card. All card payment methods (one-off payments, recurring payments, MoTo, etc.) are managed via this service.

When a customer wants to make a first payment, their card data must be collected to generate a cardTokenId, using CentralPay’s tokenisation service « token.js ». This temporary token can then be used to create a Card resource, identified by a cardId, which can be stored in a Customer object. This linking is required to enable subsequent payments without asking for the card again (1-click payments, recurring payments, etc.).

ℹ️ With a custom payment form (CUSTOM FORM), integrating 3DS 2.2 authentication is mandatory before executing a transaction.

Payment flow diagram with cardTokenId:

ℹ️ If you have PCI DSS Level 1 certification and you handle card data, you can create a /card object directly by sending the data (PAN, expiry date, CVC) to the API, without using token.js.

1. Prerequisites

1.1. Declare your domains

Before using token.js, you must declare the domains hosting your Custom forms in your Merchant Portal. Go to Administration My merchant profile Technical Edit , then complete the Allowed Custom Forms Hosts field.

Access:

Recette Merchant Portal – Administration
Production Merchant Portal – Administration

1.2. Secure your form

Ensure that your payment pages use the HTTPS protocol with TLS 1.2 or higher.

1.3. PCI DSS compliance

Using token.js means you manage the form display and the token trigger yourself. This method requires compliance with PCI DSS SAQ A-EP requirements.

Download the A-EP form ➝

2. Payment form integration

2.1. Create an HTML payment form

Unlike the Smart Form hosted by CentralPay, the Custom Form is created by you, using your own HTML code. You must implement the following fields:

  • Card number: 16 digits for CB/Visa/Mastercard, 15 for American Express
  • Expiry date: MM/YYYY format
  • CVC: 3 digits (CB/Visa/Mastercard), 4 digits (Amex)

You can view our Custom Form examples:

  • See the example of a Custom Form without 3DS 2.2 ➝
  • See the example of a Custom Form with 3DS 2.2 ➝

2.2. token.js script integration

Add the token.js script to your page to generate a cardTokenId:

<script src="https://js.centralpay.net/js/token.js"></script>

Then add your merchant public key (MerchantPublicKey) in a separate tag:

<script type="text/javascript">
  window.Centralpay ? Centralpay.card.setMerchantPublicKey('VOTRE_CLE_PUBLIQUE') : alert('Error loading html form');
</script>

You can see where to find your MerchantPublicKey on the API authentication page.

Integration in a mobile application

If you use a WebView in your application, you can integrate either a custom form with token.js or a hosted form via the PaymentRequest service. These options let you externalise card data collection while providing a smooth user experience.

In a native mobile application, the token.js script is not compatible. You must then collect card data via the application fields, then call the cardToken API directly using your merchantPublicKey.

The call to the cardToken API must include an HTTP Origin header matching a URL declared in your CentralPay Merchant profile (see 2.1 Prerequisites).

For your tests, you can use the following Origin: https://example.centralpay.net

ℹ️ For native mobile applications, card data is transmitted directly from the user’s device to CentralPay, without going through the merchant’s servers. However, this type of integration requires ensuring compliance with the security and PCI DSS requirements applicable to collecting and transmitting card data in a native environment. 

2.3. Create a Customer and link a card

ℹ️ The cardTokenId is a single-use token, for which the CVC is temporary (10 minutes in production, 5 minutes in RCT). After this time, the token automatically expires (status=EXPIRED) and can no longer be used, which will result in the following error: "cardTokenId": "Card token already used".   

Whether you use the card immediately (one-off payment) or want to reuse it later (1-click payment, recurring, etc.), it is recommended to start by creating a Customer object, then save a Card using the cardTokenId. As 3DS 2.2 authentication can sometimes increase processing time, this sequence helps prevent the CVC associated with the cardToken from expiring.

  1. Create a customer object via the POST /customer endpoint, or retrieve the customerId if it is already known
  2. Create a card using POST /card by specifying the cardTokenId issued by token.js and the customerId

Once the card is linked to a customer, the CVC becomes permanent and future transactions can be initiated with no time limit.

If you do not use token.js (PCI DSS certification required), you can create a card directly without using the cardToken by providing the PAN + expiry + CVC +  customerId

3. 3DS 2.2 authentication

Before initiating a card transaction, you must verify the cardholder’s identity via 3DS 2.2 authentication. This step is mandatory for one-off card transactions as well as for recurring card transactions.

ℹ️ Exception: MoTo (Mail Order / Telephone Order) transactions are not subject to 3DS authentication. You can create the transaction directly after creating the card. 

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.

Virtual IBANs

Payment by bank transfer requires the customer making the payment to provide the bank details (IBAN + BIC + account holder’s name), the payment amount, and the transfer reference.

If the reference number is missing or formatted incorrectly (whether due to the customer or the customer’s bank’s system), the payee must manually review the received transfer to match it to the correct invoice and customer account.

CentralPay allows you to provide a different virtual IBAN to each of your customers (Customer) or on each of your invoices (PaymentRequest). Thus, when a transfer is received, CentralPay automatically identifies the sender and can reconcile the invoice for you based on the virtual IBAN used by your customer, even if there is an error in the reference number.

A virtual IBAN is identical in every way to a standard IBAN, which makes the process completely transparent for your customers.

With this service, you will be able to:

  • To be notified instantly when a customer has paid you via bank transfer
  • Automate your internal alerts and customer follow-ups (via the notification service)
  • To automate the reconciliation of your payments in your accounting or billing solutions (ERP, etc.)
  • For platforms and marketplaces: to easily identify the merchant receiving the payment and transfer the funds to them

You can create CentralPay Virtual IBANs from various services on the platform:

  • From the Customer service department
  • From the SCT Transaction department
  • From the PaymentRequest department
ℹ️ Each payment or e-money account comes with its own dedicated virtual IBAN by default

1. Check the virtual IBAN for your accounts

You can find the virtual IBAN for your accounts in the Merchant Portal Administration Accounts IBAN/BIC:

It is also possible to query the CentralPay API using the /bankAccount endpoint

Access:

Recette Merchant Portal – Accounts
Production Merchant Portal – Accounts

2. Create a Virtual IBAN for a specific customer

You can create a virtual IBAN for a specific customer when creating a new Customer or when updating an existing customer.

To do this, you must enter the UUID of the payment account into the “walletIdForIban” field—the account into which you want to receive the funds.

You can find it under Merchant Portal Administration Accounts UUID:

Access:

Recette Merchant Portal – Accounts
Production Merchant Portal – Accounts

In return, you will receive the “iban” and “bic” values in field bankAccounts, which make up your Customer‘s virtual IBAN.

ℹ️ The BIC for IBANs issued by CentralPay is CEAYFR22

3. Creation of a Virtual IBAN Dedicated to an SCT Transaction

Just as with a customer, you can create a virtual IBAN specific to a bank transfer transaction when creating an SCT transaction.

ℹ️ As a reminder, CentralPay automatically creates an SCT transaction when you receive a transfer to your primary virtual IBAN or a customer’s virtual IBAN. However, you can create an SCT transaction in advance to assign it a dedicated virtual IBAN and a custom reference, for example. 

To do this, you must enter the UUID of the payment account into the “ibanWalletId” field, the account into which you want to receive the funds.

You can find it under Merchant Portal Administration Accounts UUID:

Access:

Recette Merchant Portal – Accounts
Production Merchant Portal – Accounts

In return, you will receive the “iban” and “bic” values in field bankAccounts, which make up the Virtual IBAN for your SCT Transaction.

ℹ️ A virtual IBAN assigned to an SCT transaction is no longer valid once the SCT transaction has been paid in full. However, it is possible to receive multiple smaller transfers to the same IBAN to make up the full amount of the SCT transaction. 

Please note that if a received transfer exceeds the amount of the SCT Transaction, it will still be accepted. You will need to issue a partial refund to return the overpayment to your customer.

4. Using Virtual IBANs in Payment Requests

You can use Customer Virtual IBANs or SCT Transactions through the payment request service if you accept the “SCT Transaction” payment method.

You can select the type of Virtual IBAN you want to display in your payment requests from the “Priority Viban” field in your point-of-sale settings. If you select:

  • SCT: The payment request will automatically generate a virtual IBAN specific to the SCT transaction
  • Client: The payment request will use the customer’s virtual IBAN if they already have one; otherwise, it will automatically generate one.
ℹ️ For payment requests using a vIBAN submitted exclusively via SCT Transaction: If you cancel the payment request, the associated vIBAN will no longer be accessible. As a result, any transfer received at that vIBAN will be automatically returned to the sender. 

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.

SEPA Creditor ID

The SEPA Creditor Identifier (ICS) is a unique reference number that identifies each direct debit issuer. In France, it consists of 13 alphanumeric characters, the first two of which represent the ISO country code (FR for France).

Having an ICS is a mandatory requirement for making direct debits. The creditor must apply to their bank for an ICS. The creditor then retains their ICS, even if they switch banks.

Please provide your ICS to CentralPay when you first sign up so that our teams can enter it into your account.

Transfert indépendant

1. Créer un transfert (Create a Transfer)

La fonction Create a Transfer permet aux marchands mandataires (Agents ou DME) de transférer des fonds entre deux comptes de leurs marchands participants. Ce transfert peut être initié :

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

1.1. Cas d’usage

Ce mécanisme permet par exemple :

  • À un Agent d’orchestrer des débits et des crédits de fonds entre lui et ses marchands participants, ou vers des comptes destinataires définis
  • À un DME d’opérer des transferts de monnaie électronique entre ses marchands participants (par exemple dans le cadre d’une place de marché C2C)

CentralPay reste en charge de l’exécution effective des opérations, dans le cadre de la relation contractuelle avec les marchands participants.

1.2. Paramètres requis

ChampTypeObligatoireDescription
destinationWalletIdUUID✅ OuiIdentifiant du compte Centralpay destinataire (appartenant à un marchand participant).
amountInteger (en cents)✅ OuiMontant du transfert. Doit être strictement supérieur à 0.
sourceIdUUID✅ Oui, si sourceType est renseignéIdentifiant de la source de fonds (ex. : transaction, virement, crédit, SDD).
sourceTypeEnum✅ Oui, si sourceId est renseignéSource du transfert : TRANSACTION, SCT_TRANSACTION, CREDIT, SDD.

1.3. Paramètres optionnels

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

1.4. Règles de validation

  • Le destinationWalletId doit correspondre à un compte valide d’un marchand participant du mandataire
  • Le sourceId ne peut être utilisé que si l’objet lié est dans un statut accepté (CAPTURE, CLEARED, etc.)
  • Le montant autorisé dépend du solde disponible ou des fonds liés à la source (transaction, virement, etc.)

2. Fonctions complémentaires liées aux transferts

Les marchands mandataires disposent de plusieurs fonctions de gestion post-création d’un transfert, leur permettant d’ajuster, consulter ou annuler une opération, sous conditions.

2.1. Modifier un transfert (Update a Transfer)

Cette fonction permet de modifier certains paramètres d’un transfert existant, à condition qu’il ne soit pas encore exécuté (statut PENDING).

Paramètres disponibles :

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert à modifier.
merchantTransferIdString❌ NonRéférence marchand mandataire.
escrowDateDate ISO❌ NonNouvelle date d’exécution différée.
transferGroupString❌ NonRegroupement de transferts.
descriptionString❌ NonDescription libre (max 256 caractères).
additionalDataKey/Value❌ NonDonnées complémentaires.
metaDataJSON❌ NonMétadonnées structurées.

La modification de la date d’escrow est notamment utile dans les flux conditionnés (ex : marketplace, délais de rétractation…).

2.2. Annuler un transfert (Cancel a Transfer)

Un transfert peut être annulé tant qu’il n’a pas encore été exécuté (statut PENDING). Cette annulation est irréversible : l’opération apparaîtra comme CANCEL dans les historiques du compte.

Paramètres :

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert à annuler.

⚠️ Une fois que les fonds sont disponibles (statut TRANSFERRED), cette fonction n’est plus accessible. Il faudra alors utiliser un TransferReversal.

2.3. Consulter un transfert (Retrieve a Transfer)

Permet d’obtenir l’ensemble des détails d’un transfert via son identifiant CentralPay.

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert.

2.4. Rechercher plusieurs transferts (List Transfers)

Permet de rechercher une liste de transferts selon plusieurs critères. Tous les paramètres sont optionnels.

ParamètreTypeDescription
merchantTransferIdString (100)Référence marchand mandataire.
destinationWalletIdUUIDCompte destinataire.
transferGroupStringGroupe de transferts.
statusEnumPENDING, TRANSFERRED, CANCEL.
after / beforeDate ISOFiltrer par date de création.
limitIntegerNombre de résultats par page.
pageIntegerIndex de la page de résultats.

3. Retourner un transfert exécuté (Transfer Reversal)

Une fois un transfert exécuté (statut TRANSFERRED), il ne peut plus être annulé via la fonction Cancel. Il est alors nécessaire de passer par une opération dédiée appelée TransferReversal. Elle ne supprime pas le transfert d’origine : celui-ci reste visible, historisé et traçable.

Cette fonction est accessible uniquement aux marchands mandataires (Agent pour les comptes de paiement, DME pour les comptes de monnaie électronique), et doit respecter les règles de disponibilité des fonds.

3.1. Conditions d’utilisation

Le transfert initial doit :

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

Le montant retourné doit être :

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

3.2. Créer un TransferReversal

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

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert d’origine.
amountInteger✅ OuiMontant à rembourser (en centimes).
merchantTransferReversalIdString❌ NonRéférence marchand mandataire pour le suivi.
refundFeeBoolean❌ NonIndique si les frais du transfert initial sont remboursés (par défaut : true).
feeInteger❌ NonMontant des frais associés au reversal.
descriptionString❌ NonTexte libre explicatif (max. 256 caractères).
escrowDateDate ISO❌ NonDate d’exécution différée si applicable.
additionalDataKey/Value❌ NonPaires clé/valeur pour les besoins métier.

⚠️ Si le champ refundFee est défini à false, le montant des frais initiaux reste acquis et n’est pas restitué au compte source.

Règles importantes :

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

4. Fonctions complémentaires (TransferReversal)

Ces fonctions permettent de gérer et consulter les opérations de retour de transfert exécuté (TransferReversal), une fois créées.

4.1. Modifier un TransferReversal (Update)

Permet de modifier certaines informations sur un TransferReversal déjà créé.

ChampTypeObligatoireDescription
transferReversalIdUUID✅ OuiIdentifiant du TransferReversal à modifier
merchantTransferReversalIdString❌ NonRéférence marchand mandataire pour le suivi
descriptionString❌ NonTexte explicatif libre (256 caractères max)
escrowDateDate (ISO)❌ NonNouvelle date différée d’exécution, si applicable
additionalDataKey/Value❌ NonPaires clé/valeur pour usage métier spécifique

Cette fonction est accessible uniquement au niveau PARTNER ou supérieur.

4.2. Consulter un TransferReversal (Retrieve)

Permet de consulter les détails d’un TransferReversal à partir de son identifiant.

ChampTypeObligatoireDescription
transferReversalIdUUID✅ OuiIdentifiant du TransferReversal à consulter

L’objet retourné contient l’intégralité des informations métier, y compris : montant, date, statut, compte concerné, et historique de l’opération.

4.3. Rechercher des TransferReversals (List)

Permet d’interroger l’historique des TransferReversal selon plusieurs critères.

ParamètreTypeObligatoireDescription
merchantTransferReversalIdString❌ NonRéférence marchand mandataire
afterDate ISO❌ NonRetourne les éléments créés après cette date
beforeDate ISO❌ NonRetourne les éléments créés avant cette date
limitInteger❌ NonNombre d’éléments à retourner (par défaut : 10)
pageInteger❌ NonIndex de la page à retourner (par défaut : 1)

Cette fonction permet un suivi complet des opérations de reversal liées à une activité donnée, y compris les cas de multiples retours partiels.

Independent transfer

1. Create a Transfer

The Create a Transfer function allows merchant agents (Agents or DME) to transfer funds between two accounts held by their participating merchants. This transfer can be initiated:

  • By an agent when the accounts are payment accounts
  • By an EMD when the accounts are electronic money accounts

1.1. Use cases

For example, this mechanism allows for:

  • An Agent to orchestrate debits and credits of funds between itself and its participating merchants, or to specified recipient accounts
  • An EMD to conduct electronic money transfers between its participating merchants (for example, as part of a C2C marketplace)

CentralPay remains responsible for the actual execution of transactions within the framework of its contractual relationship with participating merchants.

1.2. Required settings

FieldTypeRequiredDescription
destinationWalletIdUUID✅ YesRecipient’s Centralpay account ID (belonging to a participating merchant).
amountInteger (in cents)✅ YesTransfer amount. Must be strictly greater than 0.
sourceIdUUID✅ Yes, if sourceType is specifiedFunds source identifier (e.g., transaction, transfer, credit, SDD).
sourceTypeEnum✅ Yes, if  » sourceId  » is specifiedTransfer source: TRANSACTION, SCT_TRANSACTION, CREDIT, SDD.

1.3. Optional settings

FieldTypeDescription
emissionWalletIdUUIDIssuer’s account, if different from the principal account of the intermediary merchant.
currencyISO CodeCurrency of the transfer (if different from the account currency).
feeIntegerAmount of the commission charged by the Intermediary Merchant, deducted from the total. Default: 0.
escrowDateISO DateThe date on which the transfer takes effect. Can be used to define a temporary hold period.
merchantTransferIdThongIntermediary Merchant business reference (max 100 characters).
transferGroupThongA group to combine multiple transfers.
descriptionThongFree-form description (max 256 characters).
additionalDataKey/ValueAdditional data in the form of key/value pairs (maximum of 256 characters per value).
metaDataJSONAdditional structured metadata.
purposeCode / purposeMessageEnum / StringPurpose of the transfer, according to a standard classification system. See the list of codes.

1.4. Validation Rules

  • The destinationWalletId must correspond to a valid account of a Participant Merchant of the Intermediary
  • The  » sourceId  » can only be used if the linked object has an accepted status (CAPTURE, CLEARED, etc.).
  • The authorized amount depends on the available balance or the funds associated with the source (transaction, bank transfer, etc.)

2. Additional functions related to transfers

Intermediary merchants have access to several post-transfer management features that allow them to adjust, view, or cancel a transaction, subject to certain conditions.

2.1. Update a Transfer

This function allows you to modify certain settings of an existing transfer, provided that it has not yet been executed (status: PENDING).

Available settings:

FieldTypeRequiredDescription
transferIdUUID✅ YesID of the transfer to be modified.
merchantTransferIdThong❌ NoIntermediary Merchant reference.
escrowDateISO Date❌ NoNew execution date postponed.
transferGroupThong❌ NoBatch processing of transfers.
descriptionThong❌ NoFree-form description (max 256 characters).
additionalDataKey/Value❌ NoAdditional information.
metaDataJSON❌ NoStructured metadata.

Changing the escrow date is particularly useful in conditional payment flows (e.g., marketplace transactions, withdrawal periods, etc.).

2.2. Cancel a Transfer

A transfer can be canceled as long as it has not yet been processed (status: PENDING). This cancellation is irreversible: the transaction will appear as CANCEL in the account history.

Settings:

FieldTypeRequiredDescription
transferIdUUID✅ YesID of the transfer to be canceled.

⚠️ Once the funds are available (status: TRANSFERRED), this feature is no longer available. You will then need to use a TransferReversal.

2.3. View a Transfer (Retrieve a Transfer)

Allows you to retrieve all the details of a transfer using its CentralPay ID.

FieldTypeRequiredDescription
transferIdUUID✅ YesTransfer ID.

2.4. Search for Multiple Transfers (List Transfers)

Allows you to search for a list of transfers based on various criteria. All parameters are optional.

ParametersTypeDescription
merchantTransferIdThong (100)Intermediary Merchant reference.
destinationWalletIdUUIDRecipient’s account.
transferGroupThongTransfer group.
statusEnumPENDING, TRANSFERRED, CANCEL.
after / beforeISO DateFilter by creation date.
limitIntegerNumber of results per page.
pageIntegerResults Page Index.

3. Reverse a Completed Transfer (Transfer Reversal)

Once a transfer has been executed (status: TRANSFERRED), it can no longer be canceled using the Cancel function. In this case, you must use a dedicated operation called  » TransferReversal. » This operation does not delete the original transfer; it remains visible, recorded in the history, and traceable.

This feature is available only to Intermediary Merchants (Payment Account Agents and EMDs for Electronic Money Accounts) and must comply with the rules regarding the availability of funds.

3.1. Terms of Use

The initial transfer must:

  • Have the status  » TRANSFERRED« 
  • Have funds available in the recipient’s account
  • Not having already been fully refunded through reversal transactions

The amount refunded must be:

  • Less than or equal to the available balance in the recipient’s account
  • Less than or equal to the amount originally transferred
  • Less any reversals already made on the transfer in question

3.2. Create a TransferReversal

Allows you to return an amount to the original issuing account.

FieldTypeRequiredDescription
transferIdUUID✅ YesOriginal transfer ID.
amountInteger✅ YesAmount to be refunded (in centimes).
merchantTransferReversalIdThong❌ NoIntermediary Merchant reference number for tracking.
refundFeeBoolean❌ NoIndicates whether the initial transfer fees are refunded (default: true).
feeInteger❌ NoAmount of fees associated with the reversal.
descriptionThong❌ NoFree-form explanatory text (max. 256 characters).
escrowDateISO Date❌ NoDeferred execution date, if applicable.
additionalDataKey/Value❌ NoKey-value pairs for business requirements.

⚠️ If the  » refundFee  » field is set to false, the initial fee amount is retained and is not returned to the source account.

Important Rules:

  • The transaction appears in the account activity (debit to the recipient’s account, credit to the originating account)
  • Multiple reversals can be made on a single transfer, up to the initial total amount
  • If funds are not available, the request is rejected with an explicit error message (insufficient balance or amount too high).

4. Additional Functions (TransferReversal)

These functions allow you to manage and view completed transfer return transactions (TransferReversal) once they have been created.

4.1. Edit a TransferReversal (Update)

Allows you to edit certain information about an already created TransferReversal.

FieldTypeRequiredDescription
transferReversalIdUUID✅ YesTransferReversal ID to be modified
merchantTransferReversalIdThong❌ NoIntermediary Merchant reference for tracking
descriptionThong❌ NoFree-form description (256 characters max)
escrowDateDate (ISO)❌ NoNew deferred execution date, if applicable
additionalDataKey/Value❌ NoKey-value pairs for specific business purposes

This feature is available only to users with PARTNER status or higher.

4.2. View a TransferReversal (Retrieve)

Allows you to view the details of a TransferReversal using its ID.

FieldTypeRequiredDescription
transferReversalIdUUID✅ YesTransferReversal ID to view

The returned object contains all business information, including: amount, date, status, relevant account, and transaction history.

4.3. Search for Transfer Reversals (List)

Allows you to search the history of  » TransferReversal  » based on various criteria.

ParametersTypeRequiredDescription
merchantTransferReversalIdThong❌ NoIntermediary Merchant Reference
afterISO Date❌ NoReturns the elements created after this date
beforeISO Date❌ NoReturns the elements created before that date
limitInteger❌ NoNumber of items to return (default: 10)
pageInteger❌ NoIndex of the page to return (default: 1)

This feature provides comprehensive tracking of reversal transactions related to a specific activity, including cases involving multiple partial returns.

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

Installment payments allows you to split the payment of an invoice into several installments. CentralPay then charges the customer’s card according to a payment schedule defined during the first transaction. It can be used to offer your customer a payment plan or to automate a “down payment/balance” type of payment.

Unlike subscriptions, a customer cannot cancel an installment payment from the customer portal.

CentralPay helps you collect payments owed by your customers through a system of automated retries in the event of a failed direct debit. However, CentralPay does not guarantee the collection of these amounts through credit or a receivables financing system.

ℹ️ The "Installment" is not the only way to process recurring transactions.
Visit the Recurring card transactions page or the Direct debit transactions page for details by payment method.

1. Create an installment payment

First, you must create a Customer that contains at least:

  • A Card (if you wish to make card transactions)
  • Or a Mandate (if you wish to make card transactions via SEPA direct debit)

Next, the Installment service will allow you to easily set up an installment payment based on the information provided in your request.

Then you can create an Installment:

  • Depending on your preferred payment method:
    • for card transactions : enter the customer profile ID « customerId »
    • for transactions via SEPA direct debit: enter the SEPA direct debit mandate ID « mandateId » and enter the desired transaction date in « requestedCollectionDate »
  • Enter the amount in centimes « amounts »
  • Enter the currency in ISO “currency” format
  • Enter your client’s IP address in “endUserIp”
  • Enter the installment settings « iterationCount », « IntervalCount » and « intervalUnit »

With this service, you can also:

  • d’imputer des frais supplémentaires à votre client (feeAmount) : pour la mise à disposition de cet étalement des paiements
  • to specify a deposit amount that will be deducted from the total amount (depositAmount). This deposit can also be set for a specific date (depositStartingDate)
  • to set a start date for the installment plan (startingDate): for example, if you want the down payment to be paid immediately and the first installments to be debited starting on a certain date

Please note that when a installment payment is created, your customer automatically receives an email containing the details of their payment schedule. This email also includes a link to our Customer Portal, where they can view the status of their recurring payments and update their credit card or SEPA direct debit information if necessary.

2. Example of installment payment

You want to bill your customer €1,000, divided into 3 monthly payments starting on July 5, 2024, with a down payment of €200 on June 28, 2024, and add an additional fee of €10:

  • amount =100000
  • depositAmount = 20000
  • feeAmount = 1000
  • currency = EUR
  • intervalUnit = MONTH
  • intervalCount = 1
  • iterationCount = 3
  • depositStartingDate = 2024-06-28
  • startingDate = 2024-07-05

The split plan will be as follows:

  • June 28, 2024 = €200.00 (deposit)
  • July 05, 2024 = €276,68 (first installment + rounding adjustments + additional fees)
  • August 05, 2024 = €276,66 (second installment)
  • September 05, 2024 = €276,66 (third installment)
ℹ️ The rounding are applied to the first payment (excluding deposit).

3. Automating retries in case of failure

If a payment fails to be debited, CentralPay will make additional debit attempts based on the settings defined in the Merchant Portal:

Access:

Recette Merchent Portal – Installment Payment Settings
Production Merchent Portal – Installment Payment Settings

Field behavior:

  • Transaction time: the time at which the direct debit payments will be processed by CentralPay
    • Selection of a value between 4 and 23
  • First payment failure: What to do in the event of a first failed direct debit
    • Try again in 1, 3, 5, or 7 days = a new attempt to process the transaction on day+X after the initial transaction
    • Stop = the system will not another attempt to process the payment
  • Second payment failure: What to do in the event of a second failed direct debit
    • Try again in 1, 3, 5 or 7 days = a new attempt to process the transaction on day+X after the previous attempt.
    • Stop = the system will not make a second attempt to process the payment
  • Third payment failure: What to do in the event of a third failed direct debit
    • Try again in 1, 3, 5 or 7 days = a new attempt to process the transaction on day+X after the previous attempt.
    • Stop = the system will not make a third attempt to process the payment.
  • Fourth payment failure: What to do in the event of a fourth failed direct debit
    • Try again in 1, 3, 5 or 7 days = a new attempt to process the transaction on day+X after the previous attempt.
    • Stop = the system will not make a fourth attempt to process the payment

Transaction initiée par le marchand (MIT – 3RI)

Le flux 3RI (3DS Requestor Initiated) s’applique aux transactions initiées par le marchand (MIT — Merchant-Initiated Transaction) : le marchand déclenche le débit sans intervention du porteur, dans le cadre d’un mandat préexistant, sur la base d’une transaction CIT authentifiée antérieurement.

Il couvre l’ensemble des cas MIT : facturations récurrentes, montants variables, modèles usage-based, frais ponctuels, débits différés (no-show, pénalités), pas seulement les abonnements à montant fixe.

👉 Si le porteur est présent et valide lui-même le paiement, utilisez le flux BRW. Pour le cadre contractuel, les exemptions d’authentification (SCA) et la durée de validité d’une CIT, consultez la page Bonnes pratiques — Merchant Initiated Transaction (MIT).

1. Prérequis : une transaction CIT déjà authentifiée

Le porteur étant absent, le 3RI ne ré-authentifie personne : il réutilise la preuve d’authentification produite lors d’une transaction CIT (porteur présent) réalisée précédemment via le flux BRW.

Lors de cette CIT, le serveur de la banque émettrice qui a authentifié le porteur — l’ACS (Access Control Server) — a généré un identifiant unique pour cette authentification : l’acsTransID. C’est ce acsTransID que vous rattacherez à chacune de vos MIT, pour prouver à la banque que la carte a bien été authentifiée une première fois avec le consentement du porteur.

⚠️ Conservez l'acsTransID de la CIT. Sans CIT authentifiée préalable — et donc sans acsTransID — une transaction 3RI ne peut pas aboutir. Si vous n'en avez pas, réalisez d'abord une CIT en BRW pour authentifier et tokeniser la carte.

2. Authentification (3RI)

L’appel est adressé à l’URL 3ds2/authentication de l’API CentralPay, comme pour le flux BRW, mais avec deux différences clés :

  • Le canal est différent. deviceChannel=03 indique une transaction initiée par le marchand (3RI), sans navigateur du porteur. Les paramètres browser* du flux BRW sont donc inutiles ici.
  • On référence la CIT. L’acsTransID conservé à l’étape 1 est placé dans le champ threeDSReqPriorRef, qui désigne « l’authentification précédente à laquelle se rattache cette transaction ».

Identification de la carte. Le porteur étant absent, on ne saisit pas de carte en séance : on référence la carte déjà stockée sur le client (Customer) en transmettant customerId + cardId.

💡 N'envoyez qu'une seule source de carte. Combiner deux sources (par ex. cardId + un token, ou un PAN + un token) déclenche l'erreur « There is no unique source of card » (voir la FAQ).

Exemple (curl) :

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=01' \
--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=1' \
--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=375d90ad-3873-498b-9133-380cbbc8d99d' \
--data-urlencode 'threeDSRequestorDecReqInd=N' \
--data-urlencode 'threeDSRequestorAuthenticationInd=02' \
--data-urlencode 'threeRIInd=01'

2.1. Explication des principaux paramètres

ParamètreDescription
deviceChannel03 → 3DS Requestor Initiated (transaction initiée par le marchand, sans navigateur du porteur)
messageCategory01 → PA (Payment Authentication) = Authentification rattachée à un paiement (ex. transaction récurrente)
02 → NPA (Non-Payment Authentication) = authentification hors paiement (ex. enregistrement ou vérification d’une carte sans débit).
threeDSReqPriorRefdoit contenir l’acsTransID de la transaction CIT (BRW) précédente (voir étape 1)
purchaseAmountmontant de l’achat courant
purchaseCurrencymonnaie au format ISO
purchaseExponentunité mineure de la monnaie courante
purchaseDatedate de l’achat
recurringExpirydate après laquelle plus aucune autorisation ne pourra être effectuée
recurringFrequencynombre de jours minimum entre deux autorisations
acctTypetype de compte (03 = debit)
chAccAgeIndancienneté du compte du titulaire auprès du demandeur 3DS :
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
chAccChangedate de dernière modification du compte du titulaire (format YYYYMMDD)
chAccDatedate d’ouverture du compte du titulaire (format YYYYMMDD)
nbPurchaseAccountnombre d’achats effectués avec ce compte au cours des six derniers mois
paymentAccAgedate d’inscription du compte de paiement sur le compte du titulaire
paymentAccIndancienneté de l’inscription du compte de paiement :
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
threeDSReqPriorAuthMethodMéthode d’authentification de la CIT initiale :
01 → si frictionless
02 → si le porteur a relevé un challenge
03 → AVS
04 → autre
threeDSReqPriorAuthTimestampdate et heure (UTC) de l’authentification précédente (format YYYYMMDDHHMM)
threeDSRequestorDecReqIndN → ne pas utiliser l’authentification découplée
threeDSRequestorAuthenticationInd02 → transaction récurrente
threeRIIndType de transaction 3RI :
01 → transaction récurrente
02 → transaction échelonnée
03 → ajout de carte
04 → maintenance
05 → vérification de compte
06 → expédition fractionnée/différée
07 → rechargement
08 → vente par correspondance
09 → vente par téléphone
10 → vérification statut whitelist
11 → autre paiement

Exemple de réponse :

{
    "threeDSServerTransID": "67dc456c-6c7a-987f-92cf-f68752525d0c",
    "transStatus": "Y",
    "eci": "02",
    "contractId": "fb8736a5-8741-19b6-9d38-ec135888e0bf"
}

Ici, threeDSServerTransID est l’identifiant de l’opération généré par CentralPay (à reporter dans la transaction), et eci (Electronic Commerce Indicator) indique le niveau d’authentification obtenu, qui conditionne le transfert de responsabilité en cas de fraude.

2.2. Statuts retournés (transStatus) et conduite à tenir

L’objectif est d’obtenir une authentification sans friction (frictionless), c’est-à-dire un transStatus = Y. Tentez systématiquement le 3RI, puis agissez selon le transStatus retourné.

ℹ️ Le support du 3RI dépend du scheme de la carte et de la version 3DS de la banque émettrice : il n'est jamais garanti à l'avance. D'où la conduite « best effort » ci-dessous — vous tentez le 3RI, et vous ne vous appuyez sur son résultat que s'il est positif.

✅ Authentification réussie — exploitez le résultat (transfert de responsabilité)

Statut (transStatus)Signification
YAuthentification réussie.
ATentative effectuée. Non authentifié / vérifié, mais une preuve de tentative est fournie.

→ Réalisez la transaction en transmettant les données 3DS issues du 3RI (voir étape 3). Le transfert de responsabilité vers l’émetteur s’applique.

⚠️ 3RI non abouti — réalisez la transaction sans authentification (« best effort »)

Statut (transStatus)Signification
NNon authentifié / compte non vérifié.
UAuthentification / vérification impossible (problème technique ou autre).
IInformation seulement.
C / DChallenge demandé (impossible en MIT car porteur absent — voir note ci-dessous).

→ Vous pouvez réaliser la transaction classique sans les données 3RI : le Customer (customerId + cardId) assure le chaînage automatique à la CIT initiale. Attention : dans ce cas, le transfert de responsabilité ne s’applique pas (risque de contestation accru) et le risque de refus de l’autorisation est plus élevé.

⚠️ Challenge en MIT (C / D). Un challenge suppose la présence du porteur, par définition absent en MIT. Deux cas : si le porteur peut revenir (ex. abonnement avec espace client), rejouez une CIT en BRW pour réauthentifier la carte ; sinon, traitez-le comme un 3RI non abouti et réalisez la transaction sans authentification (best effort). Voir Bonnes pratiques — MIT.

❌ Refus explicite — ne pas tenter la transaction

Statut (transStatus)Signification
RAuthentification rejetée : l’émetteur demande de ne pas tenter l’autorisation.

→ N’effectuez pas la transaction, même sans 3RI.

3. Transaction

Une fois l’authentification 3RI réussie (Y ou A), renseignez les données 3DS suivantes dans l’appel transaction :

  • 3ds[threeDSServerTransID] = threeDSServerTransID généré par l’authentification 3RI (pas celui d’une transaction précédente)
  • 3ds[status] = transStatus
  • 3ds[eci] = eci (obligatoire si disponible)
  • 3ds[xid] = paramètre custom, référence libre destinée aux marchands
⚠️ N'envoyez pas 3ds[cavv] en 3RI. Le cavv (Cardholder Authentication Verification Value, le cryptogramme qui prouve l'authentification) est propre au flux BRW ; il est absent de la réponse 3RI et ne doit pas être transmis ici.

Exemple (curl) :

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'
ℹ️ Cas « best effort » (3RI non abouti). Si le 3RI n'a pas abouti (transStatus autre que Y/A, et hors R), réalisez la même transaction sans l'objet 3ds[...] : le Customer (customerId + cardId) suffit à chaîner l'opération à la CIT initiale. Le transfert de responsabilité ne s'applique alors pas.

À lire aussi : Bonnes pratiques — Merchant Initiated Transaction (MIT) pour le cadre contractuel, le mandat et les exemptions d’authentification (SCA).

Merchant-initiated transaction (MIT – 3RI)

The 3RI (3DS Requestor Initiated) flow applies to merchant-initiated transactions (MIT): the merchant initiates the debit without the cardholder’s involvement, under a pre-existing authorization, based on a previously authenticated CIT transaction.

It covers all MIT scenarios: recurring billing, variable amounts, usage-based templates, one-time fees, and deferred debits (no-shows, penalties), not just fixed-rate subscriptions.

👉 If the cardholder is present and authorizes the payment themselves, use the BRW flow. For information on the contractual framework, Strong Customer Authentication (SCA) exemptions, and the validity period of a CIT, see the Best Practices — Merchant Initiated Transaction (MIT) page.

1. Prerequisite: a CIT transaction that has already been authenticated

Since the cardholder is absent, the 3RI does not re-authenticate anyone: it reuses the authentication proof generated during a previous CIT transaction (with the cardholder present) carried out via the BRW flow.

During this CIT, the issuing bank’s server that authenticated the cardholder — the ACS (Access Control Server) — generated a unique identifier for this authentication: theacsTransID. This is the acsTransID that you will associate with each of your MITs to prove to the bank that the card was indeed authenticated for the first time with the cardholder’s consent.

⚠️ Keep the acsTransID from the CIT. Without a previously authenticated CIT — and therefore without acsTransID — a 3RI transaction cannot be completed. If you don't have one, first perform a CIT in BRW to authenticate and tokenize the card. 

2. (3RI) Authentication

The request is sent to the CentralPay API URL 3ds2/authentication, just like for the BRW flow, but with two key differences:

  • The channel is different. deviceChannel=03 Indicates a transaction initiated by the merchant (3RI), without the cardholder using a browser. The browser* parameters in the BRW flow are therefore unnecessary here.
  • The CIT is referenced. The acsTransID value retained in step 1 is placed in the threeDSReqPriorRef field, which refers to “the previous authentication associated with this transaction.”

Card identification. Since the cardholder is not present, no card is scanned during the session: the card already stored for the customer (Customer) is referenced by transmitting customerId + cardId.

💡 Send only one card source. Combining two sources (e.g., cardId + a token, or a PAN + a token) triggers the error “There is no unique source of card” (see the FAQ). 

Sample (curl) :

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=01' \
--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=1' \
--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=375d90ad-3873-498b-9133-380cbbc8d99d' \
--data-urlencode 'threeDSRequestorDecReqInd=N' \
--data-urlencode 'threeDSRequestorAuthenticationInd=02' \
--data-urlencode 'threeRIInd=01'

2.1. Explanation of the main parameters

ParametersDescription
deviceChannel03 → 3DS Requestor Initiated (transaction initiated by the merchant, without the cardholder using a browser)
messageCategory01 → PA (Payment Authentication) = Authentication associated with a payment (e.g., recurring transaction)
02 → NPA (Non-Payment Authentication) = authentication that does not involve a payment (e.g., registration or card verification without a charge).
threeDSReqPriorRefmust contain the acsTransID from the previous CIT (BRW) transaction (see step 1)
purchaseAmountamount of the current purchase
purchaseCurrencycurrency in ISO format
purchaseExponentminor unit of the current currency
purchaseDatedate of purchase
recurringExpirythe date after which no further authorizations may be issued
recurringFrequencyminimum number of days between two authorizations
acctTypeaccount type (03 = debit)
chAccAgeIndlength of time the account holder has had an account with the 3DS requester:
01 → no account
02 → created during the transaction
03 → less than 30 days
04 → between 30 and 60 days
05 → more than 60 days
chAccChangedate of the last change to the account holder’s account (format YYYYMMDD)
chAccDateaccount holder’s account opening date (format YYYYMMDD)
nbPurchaseAccountnumber of purchases made with this account over the past six months
paymentAccAgedate the payment account was credited to the account holder’s account
paymentAccIndlenght of time the payment account has been registered:
01 → no account
02 → created during the transaction
03 → less than 30 days
04 → between 30 ans 60 days
05 → more than 60 days
threeDSReqPriorAuthMethodInitial CIT Authentication Method:
01 → if frictionless
02 → if the cardholder has completed a challenge
03 → AVS
04 → other
threeDSReqPriorAuthTimestampdate and time (UTC) of the previous authentication (format YYYYMMDDHHMM)
threeDSRequestorDecReqIndN → do not use decoupled authentication
threeDSRequestorAuthenticationInd02 → recurring transaction
threeRIIndType of 3RI transaction:
01 → recurring transaction
02 → installment transaction
03 → add a card
04 → maintenance
05 → account verification
06 → split/delayed shipment
07 → recharging
08 → mail-order sales
09 → telephone sales
10 check whitelist status
11 → other payment

Sample of response:

{
    "threeDSServerTransID": "67dc456c-6c7a-987f-92cf-f68752525d0c",
    "transStatus": "Y",
    "eci": "02",
    "contractId": "fb8736a5-8741-19b6-9d38-ec135888e0bf"
}

Here, threeDSServerTransID is the transaction ID generated by CentralPay (to be included in the transaction), and eci (Electronic Commerce Indicator) indicates the level of authentication achieved, which determines the transfer of liability in the event of fraud.

2.2. Returned statuses (transStatus) and recommended course of action

The goal is to achieve frictionless authentication, that is, a transStatus = Y. Always try the 3RI first, then proceed according to the transStatus returned.

ℹ️ Support for 3RI depends on the card's scheme and the issuing bank's 3DS version: it is never guaranteed in advance. Hence the “best effort” approach described below — you attempt 3RI, and you only rely on the result if it is positive. 

✅ Authentication successful — use the results (transfer of responsibility)

Status (transStatus)Meaning
YAuthentication successful.
AAttempt made. Not authenticated/verified, but a proof of the attempt is provided.

→ Complete the transaction by submitting the 3DS data from the 3RI (see Step 3). Liability shifts to the issuer.

⚠️ 3RI failed — complete the transaction without authentication (“best effort”)

Status (transStatus)Meaning
NNot authenticated/unverified account.
UAuthentication/verification failed (technical issue or other problem).
IFor informational purposes only.
C / DChallenge requested (not possible in MIT because the cardholder is absent — see note below).

→ You can perform the standard transaction without the 3RI data: the Customer (customerId + cardId) ensures automatic linking to the initial CIT. Please note: In this case, the transfer of responsibility does not apply (increased risk of dispute), and the risk of authorization denial is higher.

⚠️ MIT Challenge (C / D). A challenge requires the cardholder to be present, which, by definition, is not the case with MIT. There are two scenarios: if the cardholder can return (e.g., subscription with a customer portal), reprocess a CIT in BRW to re-authenticate the card; otherwise, treat it as an unsuccessful 3RI and complete the transaction without authentication (best effort). See Best Practices — MIT.  

❌ Explicit refusal — do not attempt the transaction

Status (transStatus)Meaning
RAuthentication declined: the sender requests that you do not attempt to obtain authorization.

→ Do not complete the transaction, even without a 3RI.

3. Transaction

Once 3RI authentication is successful (Y or A), enter the following 3DS data in the transaction call:

  • 3ds[threeDSServerTransID] = threeDSServerTransID generated by 3RI authentication (not the one from a previous transaction)
  • 3ds[status] = transStatus
  • 3ds[eci] = eci (required if available)
  • 3ds[xid] = custom parameter, free-form reference for merchants
⚠️ Do not send 3ds[cavv] in3RI. The cavv (Cardholder Authentication Verification Value, the cryptogram that verifies authentication) is specific to the BRW stream; it is not included in the 3RI response and should not be transmitted here.

Sample (curl) :

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'
ℹ️ « best effort » case (3RI not completed). If the 3RI is not completed (transStatus other than Y/A, and excluding R), perform the same transaction without the subject 3ds[...] : the Customer  (customerId  +  cardId) is sufficient to link the operation to the initial CIT. In that case, the transfer of liability does not apply. 

See also: Best Practices — Merchant-Initiated Transactions (MIT) for the contractual framework, mandate, and Strong Customer Authentication (SCA) exemptions.

Déclaration Agent PSP (ACPR)

Rôle de l’ACPR

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

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

Étapes de déclaration d’un Agent

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

1. Responsabilités de l’Agent

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

L’Agent est notamment responsable de :

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

L’Agent doit signer :

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

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

2. Devenir Partenaire Agent CentralPay

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

2.1. Résumé des étapes

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

2.2. Pièces à fournir à CentralPay

Phase 1 – Pré-constitution du dossier

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

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

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

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

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

2.3. Délais d’instruction

  • Instruction par CentralPay : généralement ~2 semaines à compter de la réception d’un dossier complet
  • Délai ACPR : variable ; peut aller jusqu’à ~2 mois, avec premières questions sous 30 jours en général

2.4. Fin d’instruction

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

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

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

3. Traitement des flux agent

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

3.1. Responsabilité de l’établissement

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

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

3.2. Comptes opérationnels des agents

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

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

3.3. Traitement des opérations

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

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

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

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

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

Fonctionnement

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

Jusqu’à la date de déblocage :

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

Conditions de conformité

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

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

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

3.5. Gestion des versements sortants

Fonctionnement

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

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

Conditions de conformité

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

À retenir

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

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

PSP Agent Declaration (ACPR)

Role of the ACPR

The ACPR (Prudential Supervision and Resolution Authority), which operates under the auspices of the Banque de France, maintains a registry of regulated service providers and their agents. Under the PSP Agent model, CentralPay (an authorized institution) prepares and files the Agent’s notification/registration application and serves as the sole point of contact for the ACPR.

Prospective agents cannot submit applications directly to the ACPR: all communications are managed by CentralPay, with the agent’s assistance (submitting documents, answering questions, and providing organizational details).

Steps for Registering an Agent

StepDescription
1. Scope Definition & Pre-qualificationAnalysis of the model, functional scope, and responsibilities; legal validation and compliance on the CentralPay side
2. Compiling the FileCollection of company and executive documents, organizational information (processes, controls, security), Terms of Use for Agents and Participants, and business forecasts
3. Deposits / ACPR ExchangesDeposit processed by CentralPay; responses to additional requests managed by CentralPay with the assistance of the Agent
4. Registration & ActivationOnce the entry has been made in the public registry, CentralPay can activate the Agent in production (until then, the activity remains suspended)

1. Responsibilities of the Agent

Asa PSP Agent, the Agent acts in the name and on behalf of CentralPay within the scope defined in the contract. CentralPay remains fully responsible for the provision of payment services and regulatory compliance; however, the Agent must strictly adhere to the operational procedures and requirements established by CentralPay, particularly with regard to AML/CFT and fraud prevention.

The Agent is responsible, in particular, for:

  • An understanding of the activities of its merchants/participants and the economic soundness of the transactions initiated through its model
  • Implementation of the expected operational procedures (internal processes, controls, traceability, incident management) and compliance with CentralPay guidelines
  • Fraud prevention (detection, escalation, cooperation) and compliance with due diligence obligations within the assigned scope
  • Cooperation with CentralPay in response to requests for information (inspections, audits, ACPR inquiries), and the prompt submission of requested documents

The agent must sign:

  • A PSP Agent Agreement with CentralPay (mandate / outsourcing / supervision / payment flows)
  • The CCSP (Payment Services Framework Agreement) applicable to the Agent in its capacity as a business customer of CentralPay (platform access, subscribed services)
  • Agent Terms of Service (or equivalent documentation) governing the Agent’s relationship with its Participants, including the necessary details regarding payment plans, allocation, Release dates, and any requests for Payouts

Depending on the scope of authority (and the applicable appendices), certain functions may be delegated to the Agent (e.g., KYC/KYB data collection and formal checks). CentralPay retains sole decision-making authority regarding onboarding, the opening and maintenance of accounts, and regulatory decisions.

2. Become a CentralPay Partner

The process for registering an Agent depends on the completeness of the application, the level of operational delegation, and communication with the ACPR. In practice, it generally takes several weeks and may be extended if additional documents are requested.

2.1. Summary of the Steps

StepDetails
1. Understanding the Model– Defining the scope and responsibilities
– Description of workflows and use cases
– Approval by CentralPay’s Legal and Compliance teams
2. Commercial Offer– Presentation by CentralPay
– Alignment with the scope (technical, operational, compliance)
3. Formalization in a Contract– Signing of the Agent Agreement
– Signing/acceptance of the CCSP applicable to the Agent
4. Testing & Integration– Sandbox access
– Technical integration & acceptance testing
– Verification of user flows (onboarding/consent/disclosures)
5. ACPR Directive– Collection of regulatory documents
– Preparation and submission of the application to the ACPR by CentralPay
– Handling of questions and requests for additional information
6. Deployment– Deployment to production after registration
– Testing in the Sandbox / supervised production

2.2. Documents to Submit to CentralPay

Phase 1 – Preliminary Compilation of the Case File

  • Agent Terms of Service / Contractual Documentation for Participants (program details, consents, “agent” information, breakdown/commission, Release dates, refund terms)
  • Definition of Regulated Activities, Related Services, and Business Model
  • Organizational Chart (including a breakdown of staff by department) and descriptions of key roles
  • Shareholder Structure / Corporate Governance
  • 3-Year Forecast Transactions Entrusted to CentralPay (volumes, amounts, types)
  • Projected number of enrollments over 3 years
  • Scenario involving the reuse of existing KYC data (migration), if applicable

Phase 2 – Filing with the regulator

  • Signing of the Agent Agreement (prior to submitting the application)
  • CentralPay collects and deposits the following items (indicative list):
    • A Commercial register extract less than 3 months old for the company and, if applicable, for its parent or controlling companies
    • Signed, up-to-date Articles of association
    • Color copies of executives’ identity documents
    • Resumes of executives, dated and signed
    • Criminal Records of Executives (if requested)
    • Declarations of No Criminal Convictions by Executives
    • Breakdown of Share Ownership / Shareholder Structure
    • Commercial register for shareholder corporations (if applicable) + group organizational chart (if applicable)
    • Recent General Meeting Minutes (merger, loss of more than 50% of the capital, change in management, etc.)
    • Register of Beneficial Owners (if requested)

The ACPR may also request the following:

  • Recent Balance Sheets and Income Statements
  • Current or prior year financial statements
  • Any document deemed useful by the regulator

2.3. Processing Times

  • Processing time by CentralPay: typically ~2 weeks from receipt of a complete application
  • ACPR processing time: varies; can take up to ~2 months, with initial questions typically received within 30 days

2.4. End of Investigation

  • The Agent may begin the activity only after it has been effectively registered (published in the public registry)
  • Prior to registration, CentralPay does not activate the Agent in production and may keep the Agent’s accounts blocked (IN/OUT)
  • The Agent is listed in public records with a registration number or identifier that may need to be included in certain communications or disclosures.

2.5. Special Feature – Telecom Agents for Value-Added Services (premium-rate numbers)

  • Requirement to Provide a Summary of the Minutes by Operator
  • Submission of detailed breakdown of receipts (breakdown) to CentralPay
  • CentralPay implements additional controls to ensure that Merchants/Participants are properly credited

3. Processing Agent Workflows

This section defines the rules governing the processing and control of financial flows in an Agent model. It specifies the responsibilities, the account structure, and the additional controls implemented to meet legal and prudential requirements.

3.1. Responsibility of the Institution

In accordance with the Monetary and Financial Code (CMF), the Agent acts in the name and on behalf of CentralPay. CentralPay remains fully responsible for compliance with regulatory obligations, particularly with regard to anti-money laundering and counter-terrorism financing (AML/CTF), security, and the protection of funds.

CentralPay has implemented an internal control system that covers the entire transaction cycle, including transactions processed through its agents (supervision, auditability, traceability).

3.2. Employee Operating Accounts

To facilitate the segregation of funds, CentralPay provides (in its records):

  • Collection Account: a transit account used to receive funds related to transactions initiated through the Agent model, and to facilitate their allocation or distribution to Participants’ accounts
  • Commission Account: intended to receive the Agent’s compensation (commissions) and to pay fees owed to CentralPay
  • Agent Payment Account (optional): intended for the Agent’s day-to-day transactions on its own account (funding, payment of SaaS invoices, etc.), separate from third-party transactions and commissions

3.3. Processing Transactions

When an Agent initiates a transaction on behalf of one or more Participants:

  1. The Agent provides CentralPay with the information needed for allocation (Participants’ shares, Agent’s commission, reference numbers), either directly as part of the transaction or, at the latest, by the end of the day via batch processing when objectively necessary.
  2. CentralPay then carries out, under its own responsibility, the allocation and breakdown processes and, where applicable, the necessary transactions (including the transfer of commissions to the Commission Account), in accordance with the contractual framework and regulatory controls.

The Collection Account must remain a transit account: the Agent must not passively hold third-party funds beyond the time strictly necessary for processing (no “floating cash”).

Payout procedures (Payout) are managed by CentralPay; the Collection Account is not intended to serve as a “general-purpose” payout account.

3.4. Release dates and estimated amounts

How It Works

Depending on the contract model, the Agent may submit or configure (as an intermediary authorized by the Participant) a release date (API endpoint: EscrowDate) corresponding to a verifiable contractual event (e.g., delivery, shipment, or completion of services). This date does not trigger any automatic financial consequences: CentralPay retains sole discretion over the release of funds (approval, Refusal, postponement, or other measures).

Until the release date:

  • The funds remain protected and unavailable (neither accessible to the Agent nor usable by the Participant)
  • The Participant can view the transaction asan upcoming transaction or a projected amount, with the availability date displayed, without it being credited to the Available balance

Compliance Requirements

The use of release dates is permitted only if:

  • Clear information: The Agent must explain to its Participants how the Release date works (principles, timeframes, exceptions).
  • Transparent display: The Participant interface must show the transaction date, the expected availability date, and a status of “unavailable before this date.”
  • Provisions in the Agent Terms of Use: The Terms of Use signed by the Participants must specify:
    • The release date corresponds to the contractual date on which the funds become available.
    • That the Participant may not use these funds before that date.
    • CentralPay may refuse, delay, suspend, or restrict the provision of services in accordance with its regulatory obligations, risk policy, and payment network rules.
  • Exception Handling: In the event of a cancellation, refund, unpaid balance, or dispute:
    • If the source transaction is reversed or subject to a refund, the funds will not be made available.
    • In the event of an unpaid transaction (e.g., a credit card chargeback) or a risk, CentralPay may withhold or adjust pending amounts or offset them against future payments.
    • The release date may be postponed (due to a Dispute or incident); the Participant must be notified via their interface or notifications.

This mechanism is neither an escrow arrangement under civil law nor a fiduciary custody service: it is a deferred release of funds under the exclusive control of CentralPay.

3.5. Outgoing Payout Management

How It Works

CentralPay can provide Participants (and, depending on their authorizations, the Agent acting as an authorized intermediary) with various methods for managing Payouts:

  • Automated Payouts (setting up rules/schedules, when provided for in the contract)
  • One-time Payouts (request via portal/API depending on granted permissions)

Compliance Requirements

When the Agent is authorized to submit payout requests on behalf of its Participants, it must obtain their consent and clearly describe the process in the Agent Terms of Service. CentralPay remains solely responsible for the execution of such requests and may face refusals, suspend them, or regulate them in accordance with its obligations.

Key points

The system described guarantees:
- Strict separation of third-party funds, commissions, and Own accounts
- The Agent has no right to dispose of third-party funds
- Complete traceability of transactions (auditability)
- Active oversight by CentralPay
- Compliance with CMF requirements and supervisory expectations

Compliance with this policy is mandatory. Any irregularities (fraud, incidents, inconsistencies in allocation, or failure to follow procedures) must be reported immediately to your CentralPay Account Manager.

Demande d'enrôlement

1. Méthodes de création d’une demande d’enrôlement

1.1. Depuis le portail Marchand CentralPay

Un utilisateur connecté au portail CentralPay peut initier une demande d’enrôlement depuis le menu : Plateforme > Enrôlements > Créer

Recette Portail Marchand – Onboarding
Production Portail Marchand – Onboarding

Il peut alors renseigner manuellement les champs décrits plus bas (dans le détail de l’appel API). Une fois la demande enregistrée, un lien de redirection vers le portail d’onboarding est généré automatiquement et peut être :

  • Envoyé automatiquement par e-mail via le Mailer CentralPay (sélectionner OUI dans le champ « Envoyer des emails à l’adresse ci-dessus »)
  • Ou copié manuellement pour un envoi par un autre canal (chat, SMS, etc.)

1.2. Depuis l’API : POST /merchant-enrollments

L’enrôlement peut aussi être initié automatiquement via l’API, en appelant : POST /merchant-enrollments

L’appel permet de générer un identifiant d’enrôlement (UUID) et d’initier un parcours d’onboarding complet, qui pourra être poursuivi :

  • Soit via le portail Marchand
  • Soit entièrement via les endpoints API (voir partie « Compléter un enrôlement par API »)
Si aucun lien direct (enrollment_url) n’est retourné par l'API, par défaut, la plateforme CentralPay envoie un e-mail à l'adresse définie dans profile[email][value].
Pour désactiver cet envoi : "sendClaimEmail": false

Si vous désactivez l'envoi, vous pouvez transmettre manuellement l'URL d’accès à l'interface onboarding en reconstituant :
- En RCT : https://test-onboarding.centralpay.net/token/profile/[UUID]
- En PROD : https://onboarding.centralpay.net/token/profile/[UUID]

Note : [UUID] est l’identifiant retourné dans la réponse à POST /merchant-enrollments.

2. Créer une demande d’enrôlement depuis l’API (Merchant Enrollment)

🇫🇷 Enrôlement simplifié via SIREN (France uniquement)
CentralPay permet de pré-remplir automatiquement certaines informations pour les sociétés françaises disposant d’un numéro SIREN :
1. Appeler l'endpoint : POST /api/legal-entity/siren
2. Fournir le champ : { "siren": "123456789" }
3. Si les informations sont valides, un UUID est retourné. Il doit être utilisé comme identityBadge dans la création d’enrôlement pour déclencher le parcours simplifié.

2.1. Champs requis

ChampTypeObligatoireDescription
profile[firstname][value]string (255)✅ OuiPrénom du titulaire. Validation : caractères alphabétiques et tirets (-). Depuis la version 1.15.0
profile[lastname][value]string (255)✅ OuiNom du titulaire. Validation : caractères alphabétiques et tirets (-). Depuis la version 1.15.0
profile[email][value]string (255)✅ OuiAdresse email de contact. Depuis la version 1.15.0
profile[phone][value]string✅ OuiNuméro de téléphone international. Depuis la version 1.15.0
languagestring✅ OuiLangue préférée du marchand. Note : utilisez GET /api/locale pour les valeurs disponibles.
accountTypeenum✅ OuiType de profil marchand à créer. Note : utilisez GET /api/merchant-enrollment/account-type.
activitySectorUUID (36)✅ OuiSecteur d’activité du marchand. Note : utilisez GET /api/nauth/enrollment-claim/activity-sector.
activityAgeUUID (36)✅ Oui, si type = LEGAL_ENTITY ou INDIVIDUAL_WITH_STATUSAncienneté de l’activité. Note : utilisez GET /api/nauth/enrollment-claim/activity-age.
feeScheduleUUID (36)✅ OuiGrille tarifaire à appliquer. Note : obtenez les identifiants via POST /api/merchant-enrollment/fee-schedule.
identityBadgeUUID✅ Oui, si enrôlement via SIRENIdentifiant SIREN (activant le parcours simplifié).
contractUUID✅ Oui, si accountType = STANDARDContrat à appliquer. Note : utilisez GET /api/merchant-enrollment/contract.

2.2. Champs avancés (optionnels)

Personnalisation du parcours

ChampValeur par défautDescription
workflowModeSEQUENTIALMode de déroulement du parcours (seul le mode SEQUENTIAL est désormais disponible).
Note : valeurs valides : SEQUENTIAL
type—Type juridique : INDIVIDUAL, INDIVIDUAL_WITH_STATUS, LEGAL_ENTITY.
Note : conditionne la structure du parcours.
subType—Sous-type recommandé selon type.
Note :
Pour INDIVIDUAL_WITH_STATUS : SOLE_TRADER, MERCHANT, ARTISAN
Pour LEGAL_ENTITY : ASSOCIATION, PUBLIC, COMMERCIAL, EIG, CIVIL
turnoverIsFixedfalseSi true, verrouille la déclaration de chiffre d’affaires.
Note : facultatif

Paramètres de communication

ChampValeur par défautDescription
sendClaimEmailtrueEnvoie l’e-mail d’enrôlement avec le lien portail.
allowedEmailCommunicationtrueSi false, désactive tous les envois d’e-mails pendant le parcours d’onboarding.
sendProfileCreationEmailfalseEnvoie un email à l’utilisateur une fois le profil complété.
sendAccountCreationEmailtrueEnvoie un email une fois le profil Marchand CentralPay activé.

Données personnelles

Tous les champs ci-dessous sont facultatifs mais permettent de pré-renseigner la constitution du profil utilisateur du futur titulaire du compte.

ChampTypeDescription
profile[nationality][country]string (3)Nationalité (format ISO 3166-1 alpha-3).
profile[birthday][value]dateDate de naissance.
Validation : ≥ 18 ans, ≤ 110 ans
profile[place_of_birth][value]stringLieu de naissance.
profile[country_of_birth][country]string (3)Pays de naissance (ISO 3166-1 alpha-3).
birthdayConfirmation[value]dateRequis uniquement si le marchand est affilié à un agent.
Format : YYYY-MM-DD

Adresse (optionnelle)

Ces champs peuvent être fournis pour pré-remplir l’adresse du titulaire.

ChampTypeDescription
profile[address][nameLine1]string(255)Ligne 1 de l’adresse.
Contraintes : ^[a-zA-Z0-9\\p{L} ´'\\-]{1,255}$
profile[address][locality]string(255)Ville.
profile[address][postalCode]string(20)Code postal.
profile[address][country]string(3)Pays (ISO 3166-1 alpha-3).

Autres options

ChampTypeDescription
contractUUID (36)Contrat à appliquer.
Obligatoire si accountType = STANDARD.
Note : GET /api/merchant-enrollment/contract
cguUUID (36)CGU à appliquer.
Note : POST /api/merchant-enrollment/cgu
Depuis version 1.18.0
customReferencestring (100)Référence personnalisée (usage interne).
payoutProfileUUID (36)Profil de versement à associer.
Note : POST /api/merchant-enrollment/payout-profile
administrativeContactstring (255)Contact administratif référent.
Depuis version 1.18.0
technicalContactstring (255)Contact technique.
Depuis version 1.18.0
financialContactstring (255)Contact financier.
Depuis version 1.18.0
addSecurityReferenceboolAffiche une référence de sécurité lors de la validation du contrat.
Uniquement valable pour : STANDARD, PARTNER, RESELLER.
Défaut : false
hookUUIDIdentifiant de webhook à notifier.
Note : voir onglet Full API reference pour obtenir les valeurs possibles.

Enrollment request

1. Methods for creating an enrollment request

1.1. From the CentralPay Merchant Portal

A user logged into the CentralPay portal can initiate an enrollment request from the menu: Plateform > Enrollments > Create

Recette Merchent Portal – Onboarding
Production Merchent Portal – Onboarding

They can then manually fill in the fields described below (in the API call details). Once the request is saved, a redirect link to the onboarding portal is automatically generated and can be:

  • Sent automatically via email through the CentralPay Mailer (select “YES” in the “Send emails to the address above” field)
  • Or copied manually to be sent via another channel (chat, text message, etc.)

1.2. From the API: POST /merchant-enrollments

Enrollment can also be initiated automatically via the API by calling: POST /merchant-enrollments

This call generates an enrollment ID (UUID) and initiates a complete onboarding process, which can be continued:

  • Either via the Merchant Portal
  • Either entirely via API endpoints (see the “Complete an Enrollment via API” section)
If no direct link (enrollment_url) is returned by the API, by default, the CentralPay platform sends an email to the address specified in profile[email][value].
To disable this email: "sendClaimEmail": false

If you disable this email, you can manually provide the URL to access the onboarding interface by constructing it as follows:
- In Sandbox: https://test-onboarding.centralpay.net/token/profile/[UUID]
- En LIVE: https://onboarding.centralpay.net/token/profile/[UUID]

Note: [UUID] is the identifier returned in the response to POST /merchant-enrollments.

2. Create an enrollment request via the API (Merchant Enrollment)

🇫🇷 Simplified enrollment via SIREN (France only)
CentralPay automatically pre-fills certain information for French companies with a SIREN number:
1. Call the endpoint: POST /api/legal-entity/siren
2. Provide the following: { "siren": "123456789" }
3. If the information is valid, a UUID is returned. It must be used as identityBadge in the registration creation process to trigger the simplified workflow.

2.1. Required fields

FieldTypeRequiredDescription
profile[firstname][value]string (255)✅ YesAccount holder’s first name. Validation: alphabetic characters and hyphens (-). Since version 1.15.0
profile[lastname][value]string (255)✅ YesAccount holder’s last name. Validation: alphabetic characters and hyphens (-). Since version 1.15.0
profile[email][value]string (255)✅ YesContact email address. Since version 1.15.0
profile[phone][value]string✅ YesInternational phone number. Since version 1.15.0
languagestring✅ YesMerchant’s preferred language. Note: Use GET /api/locale for the available values.
accountTypeenum✅ YesType of merchant profile to create. Note: Use GET /api/merchant-enrollment/account-type.
activitySectorUUID (36)✅ YesMerchant’s industry sector. Note: Use GET /api/nauth/enrollment-claim/activity-sector.
activityAgeUUID (36)✅ Yes, if type = LEGAL_ENTITY ou INDIVIDUAL_WITH_STATUSLength of time in business. Note: Use GET /api/nauth/enrollment-claim/activity-age.
feeScheduleUUID (36)✅ YesPricing schedule to be applied. Note: Obtain the login credentials via POST /api/merchant-enrollment/fee-schedule.
identityBadgeUUID✅ Yes, if enrolled via SIRENSIREN ID (which activates the simplified process).
contractUUID✅ Yes, if accountType = STANDARDContract to be applied. Note: Use GET /api/merchant-enrollment/contract.

2.2. Advanced fields (optional)

Customizing the experience

FieldDefault valueDescription
workflowModeSEQUENTIALCourse mode (only mode SEQUENTIAL is now available).
Note: Valid values: SEQUENTIAL
type—Legal type: INDIVIDUAL, INDIVIDUAL_WITH_STATUS, LEGAL_ENTITY.
Note: Determines the structure of the process.
subType—Recommended subtype according to type.
Note:
For INDIVIDUAL_WITH_STATUS : SOLE_TRADER, MERCHANT, ARTISAN
For LEGAL_ENTITY : ASSOCIATION, PUBLIC, COMMERCIAL, EIG, CIVIL
turnoverIsFixedfalseIf true, locks the revenue report.
Note: optional

Communication settings

FieldDefault valueDescription
sendClaimEmailtrueSend the registration email with the portal link.
allowedEmailCommunicationtrueIf false, disable all email sends during the onboarding process.
sendProfileCreationEmailfalseSend an email to the user once the profile is completed.
sendAccountCreationEmailtrueSend an email once the CentralPay Merchant profile has been activated.

Personal data

All of the fields below are optional, but they allow you to pre-fill the user profile for the future account holder.

FieldTypeDescription
profile[nationality][country]string (3)Nationality (ISO 3166-1 alpha-3 format).
profile[birthday][value]dateDate of birth.
Validation: ≥ 18 years old, ≤ 110 years old
profile[place_of_birth][value]stringBirthplace.
profile[country_of_birth][country]string (3)Country of birth (ISO 3166-1 alpha-3).
birthdayConfirmation[value]dateRequired only if the merchant is affiliated with an agent.
Format: YYYY-MM-DD

Address (optional)

These fields can be filled in to pre-fill the account owner’s address.

FieldTypeDescription
profile[address][nameLine1]string(255)Line 1 of the address.
Constraints: ^[a-zA-Z0-9\\p{L} ´'\\-]{1,255}$
profile[address][locality]string(255)City.
profile[address][postalCode]string(20)Postal code.
profile[address][country]string(3)Country (ISO 3166-1 alpha-3).

Other options

FieldTypeDescription
contractUUID (36)Contract to be applied.
Required if accountType = STANDARD.
Note: GET /api/merchant-enrollment/contract
cguUUID (36)Terms of Service apply.
Note: POST /api/merchant-enrollment/cgu
Since version 1.18.0
customReferencestring (100)Custom reference (for internal use).
payoutProfileUUID (36)Payment profile to be linked.
Note: POST /api/merchant-enrollment/payout-profile
administrativeContactstring (255)Primary administrative reference.
Since version 1.18.0
technicalContactstring (255)Technical contact.
Since version 1.18.0
financialContactstring (255)Financial contact.
Since version 1.18.0
addSecurityReferenceboolDisplays a security reference when the contract is approved.
Valid only for: STANDARD, PARTNER, RESELLER.
Default: false
hookUUIDWebhook ID to be notified.
Note: See the “Full API Reference” tab for possible values.

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

PrestaShop

CentralPay offers a credit card payment module for Prestashop stores. Two versions of the module are available, depending on your CMS version:

  • For Prestashop 1.6 ➝ Download the 1.6 module
  • For Prestashop 1.7 ➝ Download the 1.7 module

1. Installing the module

Prestashop v1.6

  1. Log in to the Prestashop back office
  2. Modules Menu > Modules
  3. Click « Add a New Module »
  4. Download the archive .zip and then click « Install »

Prestashop v1.7

  1. Log in to the Prestashop admin panel
  2. Menu Modules > Modules Manager > Upload a module
  3. Upload the archive  » .zip  » or click to download it
  4. Complete the installation by following the wizard’s instructions

2. Module Configuration

After installation, go to the module’s configuration page: Modules Installed Modules CentralPay Configure

The following fields are required:

FieldDescriptionWhere can I find this information?
Merchant Public KeyAPI Authentication Public KeyCentralPay Merchant Portal > Administration > Technical Support > Copy the “Merchant Public Key”
API LoginYour CentralPay API user IDCentralPay Merchant Portal > Administration > Technical Support > Click on your “API ID” > Copy the “login”
Secret Key (API password)API Secret Key (Never Share)CentralPay Merchant Portal > Administration > Technique > Click on your « API ID » > Edit > Generate a password > Copy the password > Click « Update »
POS IDUnique identifier for your Point of Sale (POS) (UUID)CentralPay Merchant Portal > Configuration > Points of Sale > Copy the ID of the relevant Point of Sale (POS)
EndpointCentralPay API URLIn the test environment: https://test-api.centralpay.net/
In production: https://api.centralpay.net/
CurrencyCurrency of accepted paymentsConfigure according to the store (EUR recommended)
Payment MethodTechnical Payment Integration MethodLeave the default value as « Direct Post »
Displaying the FormDisplay the form on a dedicated page or on the shopping cart pageSelect the desired view (recommended: dedicated security page)
Order Status After Successful PaymentStatus the order will have after payment is confirmed« Payment Accepted » (or any other status configured in PrestaShop)

⚠️ Be sure to copy and paste the Merchant Public Key exactly as it appears, without any spaces or extraneous characters.

3. How It Works

When a customer selects CentralPay as a payment method:

  1. They are redirected to a secure page (hosted or integrated)
  2. He enters his credit card information
  3. The payment has been authorized by the bank (including 3D Secure)
  4. The order is confirmed in PrestaShop with the status set to
  5. A webhook automatically notifies CentralPay and PrestaShop of the payment outcome

4. Test / Production Mode

  • In test mode, you can use the test cards provided in the developer documentation
  • In production mode, only activated merchants (with validated KYC) can receive payments

To switch modes, changethe endpoint in the module’s configuration.

5. Support

If you have any questions:

  • Contact CentralPay support through the Merchant Portal at > Help & Support
  • Or directly at support.centralpay.com

Merchant Initiated Transaction (MIT)

Introduction

Une Merchant-Initiated Transaction (MIT) est un paiement initié sans interaction du titulaire de la carte, réalisé dans le cadre d’un contrat préexistant entre le marchand et son client. Ce modèle s’applique aux facturations récurrentes, variables ou usage-based.

Dans le cadre DSP2, une MIT peut être exemptée d’authentification SCA, à condition que :

  1. Le marchand dispose d’un mandat contractuel valide,
  2. Une transaction initiale CIT authentifiée (3DS) ait été réalisée.

Les MIT reposent donc sur une authentification antérieure réussie associée à un Customer et à un cardToken.

Documentation 3DS 2.2 (général)

1. CIT et MIT : quelle différence ?

Customer-Initiated Transaction (CIT)

Une transaction CIT est initiée par le titulaire de la carte. Elle implique généralement une authentification 3DS.

Rôles de la CIT initiale dans un flux MIT :

  • authentifier la carte et le porteur,
  • valider la création d’un Customer,
  • permettre la génération d’un cardToken,
  • servir de référence aux MIT futures.

Merchant-Initiated Transaction (MIT)

Une MIT est déclenchée par le marchand sans intervention du porteur, conformément au mandat conclu avec le client.

Cas d’usage :

  • facturation mensuelle à montant variable,
  • frais ponctuels supplémentaires,
  • utilisation de type usage-based.

2. Conditions nécessaires pour effectuer des MIT

Deux conditions doivent être réunies :

2.1. Exécution d’une CIT initiale authentifiée (3DS)

Cette CIT doit être :

  • authentifiée via 3DS,
  • capturée,
  • associée à un Customer et à un cardToken.

2.2. Existence d’un mandat commercial valide

Le mandat doit couvrir :

  • la nature des services,
  • le montant futur (fixe ou variable),
  • les conditions et fréquences de facturation,
  • l’accord explicite du client sur les paiements ultérieurs.
Documentation Formulaire de paiement CustomForm

3. Montant de la CIT initiale

Il est parfaitement conforme de réaliser une CIT initiale avec un montant symbolique (par exemple 1 € ou 0,01 €) pour :

  • authentifier la carte,
  • valider le contrat commercial,
  • générer un token utilisable pour des MIT ultérieures.

La CIT initiale n’a pas à couvrir le montant réel des MIT futures.

Remarque : Les transactions à 0€ type “vérification / empreinte carte authentifiée” fonctionnent pour certains schémas mais n’est pas universellement supporté par les banques partenaires, d’où la recommandation d’utiliser une transaction CIT authentifiée.
Également, bien que la CIT symbolique soit techniquement acceptable, l’émetteur peut — en fonction de son profil de risque, du schéma ou de l’ancienneté — décider de déclencher un challenge 3DS lors d’une MIT ultérieure."

4. Durée de validité d’une CIT pour générer des MIT

Il n’existe pas de limite imposée par CentralPay.
La durée de validité dépend exclusivement :

4.1. De l’ACS émetteur (banque du porteur)

Les pratiques observées dans le secteur :

  • conservation de la preuve d’authentification : ≈ 13 mois,
  • pour certains émetteurs : jusqu’à 36 mois.

Après expiration de la preuve 3DS, les MIT peuvent faire l’objet :

  • de soft declines,
  • de demandes d’authentification,
  • de rejets « SCA required ».

4.2. Du recours au 3DS 2.2 – 3RI

Dans certains cas, le marchand peut renouveler une authentification côté émetteur via 3RI, afin de prolonger la durée de validité du mandat.

Disponibilité schémas :

  • CB : support opérationnel,
  • Mastercard : support opérationnel,
  • Visa : support en cours d’évolution, non fiable à date.
Documentation 3DS 2.2 – 3RI

5. Une MIT peut-elle nécessiter une authentification 3DS ?

Oui. Une MIT peut être exceptionnellement requalifiée en CIT par l’émetteur (ACS), notamment dans les cas suivants :

  • ancienneté élevée de la CIT initiale,
  • suspicion de fraude,
  • règles RBA de l’émetteur,
  • montants atypiques ou plus élevés que prévu.

Réduire le risque de demande 3DS

  • utiliser 3RI lorsque supporté,
  • conserver un cadre contractuel clair,
  • refaire une CIT en cas d’échecs répétés.
Pour en savoir plus FAQ 3DS 2.2

6. Transactions MIT ou service d’abonnement de CentralPay : comment choisir ?

Il n’est pas obligatoire de passer par le module Subscription pour effectuer des MIT.

6.1. Utiliser le service d’abonnement si :

  • les montants sont fixes,
  • la fréquence est récurrente,
  • la logique est celle d’un abonnement.

6.2. Utiliser les transactions MIT si :

  • les montants sont variables (usage-based model),
  • les facturations sont ponctuelles,
  • les débits doivent être initiés par le marchand.
Documentation Transaction carte récurrente

7. Implémentation API : effectuer une transaction MIT

7.1. CIT initiale

Lors de la transaction CIT :

  • création d’un customer,
  • génération d’un cardTokenId,
  • authentification 3DS.

7.2. Transaction MIT

Chaque transaction MIT doit inclure :

  • customerId,
  • cardTokenId (ou cardId),
  • indication du contexte MIT dans les paramètres de transaction,
  • les métadonnées utiles pour rattacher la MIT à la CIT initiale.
Documentation Transaction carte récurrente > Abonnement depuis des transactions successives

8. Bonnes pratiques pour fiabiliser un flux MIT

8.1. Techniques

  • déclencher les MIT peu après la facturation,
  • regrouper les paiements lorsque pertinent,
  • utiliser 3RI pour rafraîchir l’authentification,
  • conserver un cardToken stable.

8.2. Gestion des refus

  • en cas de code indiquant « SCA required »,
    proposer au client une nouvelle CIT (paiement manuel),
    recréer un mandat MIT.

8.3. Contractuelles

  • conserver la preuve du mandat : CGV, logs d’acceptation, contrat, page d’information client.

9. FAQ MIT

Une CIT de 1 € suffit-elle pour un mandat MIT ?

Oui, si elle est authentifiée 3DS.

Combien de temps une CIT permet-elle de générer des MIT ?

Cela dépend de l’ACS : généralement 13 à 36 mois.

Une MIT peut-elle déclencher 3DS ?

Oui, si l’ACS l’exige (RBA, ancienneté de la CIT, montants atypiques).

Dois-je utiliser Subscription pour des montants variables ?

Non, le service subscription est généralement adapté à des modèles d’abonnements fixes. Réaliser une transaction CIT initiale + des transactions MIT ad-hoc est le modèle recommandé.

Que faire si le client change de carte ?

Une nouvelle CIT est nécessaire pour générer un nouveau token.

Merchant-Initiated Transaction (MIT)

Introduction

A Merchant-Initiated Transaction (MIT) is a payment initiated without any interaction from the cardholder, carried out under a preexisting contract between the merchant and its customer. This model applies to recurring, variable, or usage-based billing.

Under PSD2, a MIT may be exempt from SCA authentication, provided that:

  1. The merchant has a valid contractual authorization,
  2. An initial CIT transaction authenticated using 3DS has been completed.

MITs are therefore based on a previous successful authentication combined with a Customer and a cardToken.

Documentation 3DS 2.2 (General)

1. CIT and MIT: What’s the Difference?

Customer-Initiated Transaction (CIT)

A CIT transaction is initiated by the account owner. It generally involves 3DS authentication.

Roles of the Initial CIT in an MIT workflow:

  • authenticate the card and the cardholder,
  • confirm the creation of a Customer,
  • allow the generation of a cardToken,
  • serve as a reference for future MITs.

Merchant-Initiated Transaction (MIT)

An MIT is initiated by the Merchant without any action on the part of the account holder, in accordance with the agreement entered into with the customer.

Use Cases:

  • monthly billing with a variable amount,
  • additional one-time fees,
  • usage-based model.

2. Requirements for Conducting MITs

Two conditions must be met:

2.1. Processing an Initial Authenticated CIT (3DS)

This CIT must be:

  • authenticated via 3DS,
  • captured,
  • associated with a Customer and a cardToken.

2.2. Existence of a Valid Commercial Power of Attorney

The scope of work must include:

  • the nature of the services,
  • the future amount (fixed or variable),
  • billing terms and frequency,
  • the customer’s explicit consent to future payments.
Documentation CustomForm Payment Form

3. Amount of the Initial CIT

It is perfectly acceptable to make an initial CIT payment in a nominal amount (for example , €1 or €0.01) in order to:

  • authenticate the card,
  • approve the commercial contract,
  • Generate a token that can be used for future MITs.

The initial CIT does not have to cover the actual amount of future MITs.

Note: Zero-euro transactions of the “verification/authenticated card imprint” type work for certain schemes but are not universally supported by partner banks; hence the recommendation to use an authenticated CIT transaction.
Additionally, although a nominal CIT transaction is technically acceptable, the issuer may—depending on its risk profile, the payment scheme, or the account’s tenure—decide to trigger a 3DS challenge during a subsequent MIT transaction."

4. Validity Period of a CIT for Generating MITs

There is no limit imposed by CentralPay.
The validity period depends solely on:

4.1. From the issuing ACS (the holder’s bank)

Practices observed in the sector:

  • Retention period for authentication records: ≈ 13 months,
  • For certain issuers: up to 36 months.

After the 3DS token expires, MITs may be subject to:

  • of soft declines,
  • authentication requests,
  • « SCA required » rejections.

4.2. On the Use of 3DS 2.2 – 3RI

In some cases, the Merchant may renew an issuer-side authentication via 3RI in order to extend the mandate’s validity period.

Availability of diagrams:

  • CB: operational support,
  • Mastercard: Operational Support,
  • Visa: Support is currently under development and is not reliable at this time.
Documentation 3DS 2.2 – 3RI

5. Can an MIT require 3DS authentication?

Yes. An MIT may, in exceptional cases, be reclassified as a CIT by the issuer (ACS), particularly in the following cases:

  • long history of the original CIT,
  • suspected fraud,
  • the issuer’s RBA rules,
  • amounts that are unusual or higher than expected.

Reducing the Risk of 3DS Requests

  • Use 3RI when supported,
  • maintain a clear contractual framework,
  • Take the CIT again in the event of repeated failures.
Pour en savoir plus 3DS 2.2 FAQ

6. MIT Transactions or CentralPay’s Subscription Service: Which Should You Choose?

It is not required to use the Subscription module to perform MITs.

6.1. Use the subscription service if:

  • The amounts are fixed,
  • the frequency is recurring,
  • The concept is similar to that of a subscription.

6.2. Use MIT transactions if:

  • The amounts vary (usage-based model),
  • Invoices are issued on a one-time basis,
  • Debit transactions must be initiated by the Merchant.
Documentation Recurring Card Transaction

7. API Implementation: Perform an MIT Transaction

7.1. Initial CIT

During the CIT transaction:

  • creation of a web customer,
  • Generating a cardTokenId,
  • 3DS authentication.

7.2. MIT Transaction

Each MIT transaction must include:

  • customerId,
  • cardTokenId (or cardId),
  • specifying the MIT context in the transaction parameters,
  • the metadata needed to link the MIT to the original CIT.
Documentation Recurring Card Transaction >: Subscription Based on Successive Transactions

8. Best Practices for Improving the Reliability of an MIT Workflow

8.1. Techniques

  • initiate MITs shortly after billing,
  • combine payments when appropriate,
  • use 3RI to refresh authentication,
  • Maintain a stable cardToken.

8.2. Handling Refuses

  • If the code indicates « SCA required » (
    ), offer the customer a new CIT (manual payment); if the code indicates « MIT required » (
    ), recreate an MIT mandate.

8.3. Contract Workers

  • Keep proof of the order: Terms and Conditions, acceptance logs, contract, customer information page.

9. MIT FAQ

Is a CIT of 1 € sufficient for an MIT mandate?

Yes, if it is 3DS-authenticated.

How long does a CIT continue to generate MITs?

It depends on the ACS: generally 13 to 36 months.

Can an MIT trigger 3DS?

Yes, if the ACS requires it (RBA, CIT tenure, atypical amounts).

Should I use « Subscription » for variable amounts?

No, the subscription service is generally designed for fixed subscription models. The recommended approach is to perform an initial CIT transaction followed by ad hoc MIT transactions.

What should you do if a customer changes their card?

A new CIT is required to generate a new token.

Modèles contractuels

Articles

  • Marchand standard
  • Marchand Partenaire
  • Marchand Mandataire

Marchand standard

Le modèle Marchand standard s’adresse aux entreprises (personnes morales) qui souhaitent utiliser la plateforme CentralPay pour encaisser des paiements pour leur propre compte dans le cadre d’une activité de vente de biens ou de services.

1. Description du modèle

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

🔗 Plus d’informations sur Smart Collection

Les fonctionnalités incluses sont les suivantes :

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

2. Frais et commissions

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

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

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

Marchand Partenaire

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

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

1. Partenaire Intégrateur

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

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

1.1. Responsabilités et fonctionnement

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

1.2. Facturation

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

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

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

2. Partenaire Technique

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

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

2.1. Responsabilités et fonctionnement

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

2.2. Facturation

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

Pour aller plus loin sur le modèle de Partenaire Technique

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

3. Règles de conformité communes

Pour les deux modèles :

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

3.1. Relation contractuelle avec les marchands

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

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

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

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

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

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

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

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

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

Cette immatriculation peut permettre, selon le cadre contractuel applicable :

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

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

Déclaration MOBSP (Orias)

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

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

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

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

1. Préparez vos données

1.1. Obtenez votre attestation de mandat

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

  1. Envoyez un e-mail à notre service client qui inclut votre raison sociale et votre numéro SIREN
  2. CentralPay vous répondra avec votre attestation de mandat. Vous aurez besoin de ce document pour l’étape 3.3.

1.2. Préparez vos documents justificatifs

Lors de l’étape 3.3 du processus d’inscription, vous devrez fournir les pièces justificatives suivantes :

  • KBIS datant de moins de trois mois
  • Justificatif d’aptitude professionnelle : diplôme dans une école de commerce ou de gestion agréée ou certification RNCP (NCF 122, 128, 313 ou 314, niveaux 7 à 5) ou reconnaissance par le CIEP pour les diplômes étrangers

Si vous ne disposez pas d’un justificatif d’aptitude professionnelle accepté par l’Orias, envoyez un email à notre service client. CentralPay peut vous aider à suivre la formation nécessaire.

Voir l’image ci-jointe, faisant référence à la catégorie Niveau III – IOBSP (niveau 3).

2. Créez votre compte ORIAS

2.1. Accéder au formulaire

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

Vous serez redirigé vers le formulaire d’inscription.

2.2. Saisir les informations

  1. Entrez votre numéro SIREN
  2. Saisissez les informations sur votre entreprise. Assurez-vous de vous inscrire en tant que personne morale / entité juridique
  3. Saisissez les informations de votre représentant légal
  4. Saisissez les coordonnées de votre représentant légal
  5. Saisissez les coordonnées de votre entreprise, y compris votre site web si vous en avez un
  6. Entrez l’adresse de votre entreprise
  7. Vérifiez toutes les informations que vous avez saisies, puis cliquez sur Valider

2.3. Connectez-vous à votre compte ORIAS

Vérifiez votre boîte de réception pour un email de l’ORIAS (no-reply-orias@orias.fr). L’email contient votre identifiant et un mot de passe provisoire.

  1. Retournez sur le site de l’ORIAS
  2. Cliquez sur Connexion / Login
  3. Saisissez votre identifiant et votre mot de passe provisoire depuis votre email
  4. Suivez les instructions sur votre écran pour modifier votre mot de passe, puis enregistrez-le

Après avoir enregistré votre nouveau mot de passe, vous serez redirigé vers votre espace compte ORIAS

3. Réalisez une nouvelle demande d’inscription

3.1. Enregistrez votre entreprise

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

3.2. Fournissez des informations complémentaires

  1. Sélectionnez la case précisant que vous complétez votre inscription à titre de Mandataire non exclusif en opérations de banque et en services de paiement
    • Si un autre type d’inscription est spécifié, utilisez le bouton Précédent de votre navigateur pour revenir à la page précédente et réessayez.
  2. Pour la première question, choisissez la réponse : Je déclare que l’on ne me confie pas de fonds
  3. Pour la deuxième question, choisissez la réponse : Accessoire, indiquant à l’ORIAS que les services financiers ne sont pas l’activité principale de votre entreprise
  4. Pour la troisième question, choisissez la réponse : Oui, indiquant à l’ORIAS que votre entreprise propose du crédit (ou d’autres services bancaires et de paiement) uniquement à titre de service secondaire
  5. Cliquez sur Aller à l’étape « Pièces justificatives »

3.3. Fournissez vos documents justificatifs

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

3.4. Payez votre inscription

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

  1. Notez que vous payez pour l’enregistrement de Mandataire non exclusif en opérations de banque et en services de paiement. Sans payer les frais, votre inscription ne peut être finalisée
  2. Choisissez de payer avec votre Carte bancaire, ou cliquez sur Choisir un autre mode de paiement pour payer par Virement (virement) ou Chèque (chèque)
  3. Après avoir payé, cliquez sur Télécharger la facture pour télécharger votre reçu
  4. Cliquez sur Terminer la demande d’inscription pour finaliser votre inscription
  5. Vous recevrez votre numéro d’inscription ORIAS par e-mail, confirmant que votre inscription est terminée. Envoyez ce numéro au service client de CentralPay par email

4. CentralPay vous enregistre en tant que MOBSP

Après avoir envoyé à CentralPay votre numéro d’enregistrement Orias par email, CentralPay vous enregistre en tant que Mandataire non exclusif en opérations de banque et en services de paiement (MOBSP).

5. L’ORIAS examine votre candidature

L’ORIAS examine vos documents et votre candidature pour s’assurer que votre dossier est entièrement conforme. L’ORIAS vous informera de sa décision finale par email. Si elle est approuvée, l’e-mail contient également la date à laquelle votre statut de MOBSP prendra effet.

N’hésitez pas à contacter l’ORIAS par téléphone (09.69.32.59.73) ou par email (contact@orias.fr) si vous ne recevez pas à temps les informations concernant votre candidature.

6. Mettez à jour vos mentions légales

Après avoir reçu l’agrément de l’ORIAS et être devenu MOBSP, assurez-vous de mettre à jour vos mentions légales. Ajoutez quelque chose de similaire à l’exemple suivant au pied de page de votre site Web, dans votre page de mentions légales et partout où vous distribuez ou vendez des services de paiement.

[Raison sociale], société immatriculée au RCS de [ville d’enregistrement] sous le numéro [numéro RCS], et inscrite au Registre unique des Intermédiaires en Assurance, Banque et Finance sous le numéro d’immatriculation [numéro d’enregistrement ORIAS] en qualité de Mandataire non exclusif en opérations de banque et en services de paiement.

Marchand Mandataire

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

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

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

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

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

1.1. Cas d’usage typiques

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

1.2. Rôle de l’Agent

L’Agent PSP agit en tant que représentant réglementaire de CentralPay pour la fourniture de services de paiement, au nom et pour le compte de CentralPay, dans les limites du mandat et des droits techniques configurés.

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

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

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

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

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

1.4. CentralPay reste responsable

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

1.5. Contraintes réglementaires

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

2. Distributeur de Monnaie Électronique (DME)

2.1. Cas d’usage typiques

  • Plateformes de vente entre particuliers (C2C)
  • Réseaux d’enseignes prépayées ou de bons cadeaux
  • Programmes de fidélité à valeur monétaire stockée

2.2. Rôle du DME

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

Fonctionnalités :

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

2.3. Limites fonctionnelles

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

2.4. Contraintes réglementaires

  • Signature d’un contrat de distribution avec CentralPay
  • Déclaration / formalités de mise en conformité réalisées sous l’initiative et la responsabilité de CentralPay, selon la réglementation applicable
  • Mise en conformité organisationnelle : dispositifs internes de sécurité, confidentialité, gestion des incidents, continuité d’activité
  • Supervision permanente par CentralPay, incluant :
    • Contrôle de l’usage de l’API / des habilitations
    • Reporting régulier sur l’activité
    • Formation obligatoire des équipes du DME
    • Validation des CGU utilisées auprès des utilisateurs

Déclaration Agent PSP (ACPR)

Rôle de l’ACPR

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

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

Étapes de déclaration d’un Agent

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

1. Responsabilités de l’Agent

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

L’Agent est notamment responsable de :

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

L’Agent doit signer :

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

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

2. Devenir Partenaire Agent CentralPay

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

2.1. Résumé des étapes

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

2.2. Pièces à fournir à CentralPay

Phase 1 – Pré-constitution du dossier

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

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

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

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

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

2.3. Délais d’instruction

  • Instruction par CentralPay : généralement ~2 semaines à compter de la réception d’un dossier complet
  • Délai ACPR : variable ; peut aller jusqu’à ~2 mois, avec premières questions sous 30 jours en général

2.4. Fin d’instruction

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

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

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

3. Traitement des flux agent

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

3.1. Responsabilité de l’établissement

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

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

3.2. Comptes opérationnels des agents

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

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

3.3. Traitement des opérations

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

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

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

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

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

Fonctionnement

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

Jusqu’à la date de déblocage :

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

Conditions de conformité

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

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

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

3.5. Gestion des versements sortants

Fonctionnement

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

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

Conditions de conformité

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

À retenir

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

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

Déclaration Distributeur ME (ACPR)

Les Établissements émetteurs de monnaie électronique comme CentralPay peuvent mandater des Distributeurs de Monnaie Électronique (DME) afin de collecter des fonds et d’assurer les échanges permettant l’achat et le remboursement de ME dans un réseau de sous-marchands défini.

La déclaration d’un Distributeur de Monnaie Électronique se déroule en deux étapes :

  • Le montage du dossier de déclaration : réalisé par CentralPay avec l’aide de son futur DME
  • L’instruction du dossier à l’ACPR : réalisé par CentralPay. Elle ne nécessite pas de validation particulière de l’ACPR

1. Responsabilité du mandataire DME

CentralPay réalise tous les processus complexes ou nécessitant de fortes compétences. Néanmoins, vous êtes toujours garant de la tenue d’un haut niveau d’exigence dans le suivi et l’application des règles de LCB-FT (Lutte Contre le Blanchiment et le Financement du Terrorisme). À ce titre, vous devez apporter à CentralPay des certitudes sur les conditions de réalisation des opérations qui passent par votre intermédiaire, notamment :

  • La réalité économique de l’opération
  • La lutte contre la fraude

Les Établissements régulés qui font appel à des distributeurs restent responsables des opérations réalisées par ces derniers. Un cadre juridique précis est donc mis en place.

Un statut de Distributeur de Monnaie Électronique passe par :

  • La contractualisation d’un contrat Cadre de Distribution de Monnaie Électronique qui définit les relations entre les parties
  • Des CGU d’utilisation de Monnaie Électronique

Dans le cas où un DME internalise certaines fonctions dévolues à CentralPay dans le cadre de ses obligations règlementaires, un contrat de Prestations de Services Essentiels Externalisées devra être signé. C’est par exemple le cas si l’agent internalise la gestion des KYC ou réalise des interfaces de gestion qui ne permettrait pas à CentralPay d’assurer l’exécution du service sans le concours du PSEE.

2. Devenir mandataire DME

Devenir Distributeur de CentralPay nécessite le suivi d’étapes qui s’étalent sur plusieurs semaines.

Voici un guide qui permet de mieux comprendre les enjeux liés à l’acceptation, puis à l’instruction des dossiers de déclaration des Distributeurs.

2.1. Résumé des étapes

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

2.2. Pièces à fournir à CentralPay

Prochainement

Contract Templates

Articles

  • Standard Merchant
  • Partner Merchant
  • Intermediary Merchant

Standard Merchant

The standard Merchant plan is intended for businesses (legal entities) that wish to use the CentralPay platform to collect payments on their own account as part of their business selling goods or services.

1. Model Description

This plan gives you access to all of Smart Collection’s services—the comprehensive payment processing solution offered by CentralPay.

🔗 More information about Smart Collection

The included features are as follows:

  • The CentralPay Merchant Profile
    A standard Merchant Profile that includes one or more Payment Accounts dedicated to your business, with individual IBANs, transaction tracking, and payout tracking.
  • Account-related services
    Management tools, user profiles, API access, notifications, reporting…
  • The Smart payment service
    Centralization of your flows, automated routing, management of statuses and payments.
  • Card Transaction
    : Accepts Visa and Mastercard, 3D Secure, Apple Pay and Google Pay, and handles refunds and chargebacks.
  • Transactions by bank transfer
    Generation of virtual IBANs, receipt notifications, automatic reconciliations.
  • SEPA Direct Debit Transactions
    One-time or recurring debits, mandate management, and tracking of rejections.

2. Fees and Commissions

Fixed and variable fees are charged based on the types of transactions performed (transactions, payouts, Rejections, etc.). You can view our published fee schedule on our website.

  • Fees are charged:
    • Either directly from your primary Payment Account
    • Or from a dedicated Commission Account, if it is enabled

If there are insufficient funds, CentralPay may process a SEPA Direct Debit from your Bank Account or send you a request for an additional Bank transfer.

Partner Merchant

CentralPay offers two distinct models for partners wishing to assist CentralPay merchants with their technical integration: the Technical Partner and the Integration Partner. In both cases, merchants remain in a direct contractual relationship with CentralPay; the terms regarding API access, resource sharing, and billing differ depending on the model.

Depending on the nature of their business, these partners may also be registered with ORIAS asIOBSPs (intermediaries—“MOBSPs”) in order to provide a legal framework for certain activities involving the introduction andsupport of merchants during onboarding with CentralPay. This article of association does not confer any right of access to funds or any authority to execute payment transactions.

1. Integration Partner

An Integration Partner is a technical service provider contracted by one or more standard merchants. It acts on their behalf and for their account to facilitate their connection to CentralPay services.

Each standard merchant has its own Point of Sale (POS), its own CentralPay Merchant Profile, and signs its application documents and contract (CCSP) directly with CentralPay. The Integrator has no contractual rights to the merchant’s accounts or funds.

1.1. Responsibilities and Operations

  • The Integrator uses the API access credentials delegated by each Merchant (dedicated “Integrator” credentials) under a contractual agreement between the Integrator and the Merchant
  • He or she may perform the technical tasks necessary for Integration and RUN (configuration, following technical instructions, maintenance), exclusively through these access points, without being able to view account balances or initiate, modify, or cancel a payment transaction.
  • Transactions are generally conducted on a “one-to-one” basis: a customer (Payer) pays a single Merchant, with each Merchant retaining its own environment and access points.

1.2. Billing

  • Each Merchant is billed directly by CentralPay for the services subscribed to in their CCSP
  • The Integration Partner does not get involved in the financial flows at any time

1.3. To learn more about the Integrator model

  • The Integration Partner provides technical support exclusively to standard merchants and never acts as a payment intermediary or representative of CentralPay. Its role is limited to integration, Level 1 functional support, and interface maintenance.
  • Each merchant retains full control over their CentralPay Merchant Profile: collections, payouts, balance, API access settings, and document and contract management
  • CentralPay may provide the integrator with portal access strictly limited to technical administration (monitoring of Technical Instructions, configuration settings, and operations necessary for RUN). This access does not allow the viewing of balances, the manipulation of financial transactions, the initiation, modification, or cancellation of payment transactions, or the modification of IBANs or financial parameters.
  • To enable the connection, the merchant provides the integrator with dedicated credentials, which have strictly limited permissions and can be revoked at any time. All technical actions are performed using these credentials, under the merchant’s responsibility.
  • If the Integration Partner is registered with ORIAS as an IOBSP (Intermediary – “MOBSP”) and a separate contractual framework provides for it, they may assist the Merchant in onboarding (e.g., providing a registration link, assisting with the onboarding process). CentralPay retains sole discretion regarding onboarding, account opening, and regulatory compliance checks.
  • Otherwise, the Integration Partner may refer the Merchant to CentralPay for any contractual, pricing, or regulatory questions related to payment services

2. Technical Partner

A Technical Partner is an entity that develops a shared solution (e.g., marketplace, SaaS platform) intended for multiple standard merchants. It operates through one or more Points of Sale (POS) registered under its name in CentralPay, to which merchants can be linked.

Transactions are processed by CentralPay through an internal “Technical Partner Account” mechanism (used by CentralPay to temporarily receive and process funds prior to their transfer to the final Beneficiary). The Technical Partner has no right to dispose of these funds: it merely transmits commercial data and maintains visibility into the cash flows associated with its POSes, without ever being able to initiate a transfer.

2.1. Responsibilities and Operations

  • The Technical Partner has its own API credentials issued by CentralPay
  • It can transmit technical instructions (sales data, shopping cart, commission, product codes, logistics events, etc.) and track transactions associated with Merchants linked to its Point of Sale (POS) locations
  • He has no access to transfer features (including the endpoint transfer) and cannot view balances or make Payouts: CentralPay decides on and executes transactions and fund transfers.
  • In this context, CentralPay can process “1-for-X” payments: a customer (payer) can pay multiple Merchants simultaneously, and CentralPay then handles the allocation and disbursement of funds to the Merchants.

2.2. Billing

  • CentralPay bills the Technical Partner based on the transactions processed through its Point of Sale (POS) systems, in accordance with the terms set forth in the CCSP and the applicable subscription documents.
  • When a commission is applicable, CentralPay may, based on the transaction data provided and in accordance with the terms of the agreement, allocate the funds: the commission portion is then credited to the Technical Partner’s Commission Account, without the Technical Partner holding any third-party funds

To learn more about the Technical Partner model

  • The Technical Partner develops a shared solution (e.g., marketplace, SaaS platform) that integrates CentralPay. It operates through one or more Points of Sale (POS) registered in its name, which process transactions from affiliated standard merchants.
  • Each participating merchant enters into a contract directly with CentralPay (CCSP and subscription documents) and has its own CentralPay Merchant Profile
  • The Technical Partner transmits transaction data (transaction amount, reference numbers, commission, logistics events, etc.) to CentralPay. This data does not trigger any automatic financial action: CentralPay analyzes and verifies the data, then decides whether to process the transaction and initiate the necessary fund transfers.
  • CentralPay may decide to impose a temporary hold and/or set a Release date for the funds to be made available to a Merchant (e.g., pending delivery or shipment), in accordance with its risk policy, network rules, and regulatory obligations.
  • The Technical Partner never holds third-party funds, does not issue any payment orders, and cannot intervene in payouts or account management. It acts neither on behalf of third parties nor in the name of CentralPay.
  • The Technical Partner’s access is limited to the views and features strictly necessary for the transmission and tracking of Technical Instructions; there is no access to the “Technical Partner Account” as an account (no right of execution, no right of disposal, no access to balances)
  • In the event of ORIAS registration as an IOBSP (intermediary – “MOBSP”) and if a separate contractual framework so provides, the Technical Partner may assist merchants in onboarding (providing a registration link, assisting with documentation), subject to prior approval by CentralPay

3. Common Compliance Rules

For both models:

  • The Partner is not a Payment Service Provider (PSP), has no authority to execute payment transactions, and does not hold any third-party funds in connection with payment services
  • Accounts, the provision of funds, payouts, and the protection of funds are managed and overseen by CentralPay in its capacity as a payment service provider (PSP)
  • No regulatory delegation of authority to provide payment services (such as a PSP agent) is granted to these partners

3.1. Contractual Relationship with Merchants

The Partner (whether a technical partner or integration partner) maintains its own business relationship with its users and remains responsible for the services offered on its platform. It is free to define the terms and conditions of use applicable to its services.

For their part, the affiliated merchants:

  • Create their own CentralPay Merchant Profile as part of a personalized Enrollment process
  • Sign the CCSP and the applicable subscription documents (including the designation of a partner, if applicable) directly with CentralPay
  • Acknowledge that the partner may perform certain technical actions as part of its integration (e.g., submitting an order, submitting a shopping cart, following technical instructions), without this constituting a payment order or access to funds

CentralPay then works directly with the affiliated Merchant to:

  • creating and managing their account (electronic signature, POS assignment, linking to a partner)
  • the regulatory processing of submitted supporting documents (KYC/KYB, anti-money laundering and counter-terrorism financing)
  • updating documentation or conducting additional verifications necessary for the proper execution of payment services

This entire organization is based on a strictly defined contractual framework:

  • The partner signs a dedicated contract with CentralPay that outlines its role and access rights (API/portal) and, if applicable, the commission terms.
  • Affiliated merchants sign their CentralPay contractual documents (CCSP and subscription) directly, in which their affiliation with the partner may be specified
  • The partner’s terms and conditions apply solely to the use of its own platform. They may not interfere with CentralPay’s payment services or supersede CentralPay’s contractual documents.

4. ORIAS Declaration (IOBSP / “MOBSP”)

An Integration Partner or a Technical Partner may, if required by its business activities, be registered with ORIAS as an IOBSP (intermediary—“MOBSP”). This status is distinct from thatof a Payment Service Provider (PSP) agent (as defined in Article L.523-1 of the Monetary and Financial Code).

Depending on the applicable contractual framework, this registration may allow for:

  • To present CentralPay’s services and assist the Merchant with the Onboarding process
  • To assist with the preparation of the application (without ever replacing the regulatory reviews conducted by CentralPay)

This status does not alter the restrictions set forth above in any way: it does not confer any rights to the funds or any authority to execute payment transactions. CentralPay remains solely responsible for onboarding, conducting regulatory checks, and executing payment services.

MOBSP (Orias) Declaration

ℹ️ Before reading this page, please see the section on onboarding for partners.

CentralPay partners based in France operate as intermediaries in banking and payment services (IOBSP), specifically as Intermediaries for Banking and Payment Services (MOBSP).

To become a CentralPay MOBSP partner, you must register with ORIAS. CentralPay will then need to register you as its Intermediary. Your part of the process can be completed in a few hours, while CentralPay’s part takes a few days. ORIAS, for its part, may take up to two months to review your application.

Although this process is your responsibility, CentralPay can assist you if needed. Please contact our customer service department if you need help.

1. Prepare your data

1.1. Get your certificate of appointment

After signing your partnership agreement with CentralPay:

  1. Send an email to our customer service department that includes your company name and SIREN number
  2. CentralPay will respond with your authorization certificate. You will need this document for step 3.3.

1.2. Gather your supporting documents

During Step 3.3 of the registration process, you will need to provide the following supporting documents:

  • Commercial register issued within the last three months
  • Proof of professional qualifications: a degree from an accredited business or management school; an RNCP certification (NCF 122, 128, 313, or 314, levels 7 through 5); or recognition by the CIEP for foreign degrees

If you do not have proof of professional competence accepted by Orias, please send an email to our customer service department. CentralPay can help you complete the necessary training.

See the attached image, which refers to the Level III – IOBSP category (Level 3).

2. Create your ORIAS account

2.1. Access the form

  1. Go to the ORIAS website
  2. Scroll down until you see the  » How Does It Work? » section .
  3. Click  » Sign Up« 

You will be redirected to the registration form.

2.2. Enter the information

  1. Enter your SIREN number
  2. Enter your business information. Be sure to register as a legal entity.
  3. Enter your legal representative’s information
  4. Enter the contact information for your legal representative
  5. Enter your company’s contact information, including your website if you have one
  6. Enter your business address
  7. Check all the information you’ve entered, then click  » Submit. »

2.3. Log in to your ORIAS account

Check your inbox for an email from ORIAS (no-reply-orias@orias.fr). The email contains your username and a temporary password.

  1. Return to the ORIAS website
  2. Click  » Sign In  » /  » Login »
  3. Enter your username and the temporary password provided in your email
  4. Follow the instructions on your screen to change your password, then save it

After saving your new password, you will be redirected to your ORIAS account page

3. Submit a new registration request

3.1. Register Your Business

  1. Click  » New Registration  » to begin the registration process; a form will appear
  2. Select IOB Activity
  3. Next, select  » Non-Exclusive Intermediary for Banking Transactions and Payment Services (MOBSP)« 
  4. Click Submit

3.2. Please provide additional information

  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
    • If a different registration type is specified, use your browser’s Back button to return to the previous page and try again.
  2. For the first question, select the answer:  » I declare that I am not entrusted with any funds. »
  3. For the second question, select the answer:  » Minor, » indicating to ORIAS that financial services are not your company’s primary business activity
  4. For the third question, select the answer: Yes, indicating to ORIAS that your company offers credit (or other banking and payment services) solely as a secondary service
  5. Click  » Go to the ‘Supporting documents’ step »

3.3. Please provide your supporting documents

  1. Submit your Commercial register
  2. Submit your authorization form, which is the authorization certificate from Step 1.1
  3. Submit your Professional Competency for « you » (Level I IOBSP), which serves as your proof of professional competence for Step 1.2.
  4. Click « Go to the next step« 

3.4. Pay your registration fee

The final step is to pay your registration fee.

  1. Please note that you are paying for registration as a non-exclusive Intermediary for banking transactions and payment services. Your registration cannot be finalized without paying the fee.
  2. Choose to pay with your credit card, or click  » Select another payment method  » to pay by Bank transfer or check.
  3. After you’ve paid, click  » Download Invoice  » to download your receipt
  4. Click  » Complete Registration  » to finalize your registration
  5. You will receive your ORIAS registration number by email, confirming that your registration is complete. Please email this number to CentralPay’s customer service department.

4. CentralPay registers you as a MOBSP

After you email your Orias registration number to CentralPay, CentralPay will register you as a non-exclusive Intermediary for banking operations and payment services (MOBSP).

5. ORIAS reviews your application

ORIAS will review your documents and application to ensure that your file is fully compliant. ORIAS will notify you of its final decision via email. If your application is approved, the email will also include the date on which your MOBSP status will take effect.

Please feel free to contact ORIAS by phone (09.69.32.59.73) or email (contact@orias.fr) if you do not receive the information regarding your application in a timely manner.

6. Update your legal notices

After receiving approval from ORIAS and becoming a MOBSP, be sure to update your legal notices. Add something similar to the following example to the footer of your website, to your legal notices page, and anywhere else you distribute or sell payment services.

[Company Name], a company registered with the Trade and Companies Register (RCS) of [City of Registration] under number [RCS number], and listed in the Single Register of Insurance Intermediaries, Banking and Finance under registration number [ORIAS registration number] as a non-exclusive Intermediary for banking transactions and payment services.

Intermediary Merchant

Payment Service Provider Agent (PSP Agent) or Electronic Money Distributor (EMD)

Certain projects require a specific regulatory framework that allows intermediaries to act in the name and on behalf of CentralPay, an institution authorized and supervised by the ACPR. Two main legal statuses can be utilized in France:

  • Payment Service Provider (PSP) Agent, for projects requiring active management of payment flows (collections, transfers, Payouts), strictly within the scope of a mandate and under the responsibility of CentralPay
  • The Electronic Money Distributor (EMD), for projects based on stored-value/Electronic money mechanisms (C2C platforms, prepaid cards, closed networks, etc.), under a distribution agreement

These models can provide the intermediary with a high degree of operational autonomy, but they come with strict regulatory constraints and ongoing supervision, under the responsibility of CentralPay.

1. Payment Service Provider Agent (PSP Agent)

1.1. Typical Use Cases

  • B2B platforms with complex financial flows
  • Financial or cash management tools for third parties
  • SaaS solutions that integrate payment collection and the distribution of funds to beneficiaries

1.2. Role of the Agent

The PSP Agent acts as CentralPay’s regulatory representative for the provision of payment services, in the name and on behalf of CentralPay, within the limits of the configured mandate and technical rights.

Features (depending on the scope of the contract and user permissions):

  • Business development and promotion of CentralPay services to end users (the “Participants”)
  • Assisting participants in opening CentralPay accounts (via the CentralPay process and/or the agent-guided process, depending on the selected model)
  • Opening, on behalf of the Agent, special accounts dedicated to segregating cash flows (e.g., a Collection Account and a Commission Account), without the Agent becoming the owner of the Participants’ funds
  • Submission to CentralPay of the requests/instructions necessary for the proper performance of services (e.g., allocation of funds, payout requests, refund requests), with CentralPay acting as the sole executor
  • First-level (L1) support management and operational processing provided as an outsourced service, with escalation to CentralPay as needed

1.3. The 3 options in the Agent model (KYC/KYB delegation)

CentralPay’s Agent model provides for three levels of delegation regarding registration and KYC/KYB checks. Only one option may be applied at a time, and the selected level is formalized in a contract:

  • Option A – Basic Agent (no delegation of control): The Agent acts as a registered PSP Agent but without KYC/KYB delegation. The Agent is limited to establishing business connections and directs Participants to the processes and tools provided by CentralPay. The Agent is not authorized to collect supporting documents or perform any checks.
  • Option B – Collection Agent (delegation of administrative completeness verification): The Agent is authorized to compile the Participant’s administrative file on behalf of CentralPay. The Agent collects the documents and performs strictly formal checks for completeness (legibility, apparent validity, and consistency of the documents). The Agent does not conduct risk analysis, sanctions/PPE screening, or in-depth analysis; the decision for onboarding remains with CentralPay.
  • Option C – Delegated Compliance Officer (Level 1 delegation): This option is reserved for Agents with a dedicated compliance organization that has been expressly approved by CentralPay. The Agent may collect KYC/KYB documents, verify their completeness and consistency, and perform Level 1 due diligence that is exclusively formal and administrative in nature. The Agent may also participate in the handling of Level 1 alerts (collection, administrative assessment, and transmission) in accordance with strict procedures. CentralPay retains the final decision-making authority and may revoke this option at any time in the event of non-compliance.

1.4. CentralPay remains responsible

  • CentralPay remains fully responsible for the services provided to Participants
  • The Agent acts strictly within the scope of the mandate entrusted to him or her and in accordance with the technical authorizations that have been established
  • Every activity carried out through the platform is auditable, traceable, and documented

1.5. Regulatory Requirements

  • Signing an Agent Agreement and Related Documents
  • Official registration as an Agent in the ACPR registry (via CentralPay)
  • Assessment of the intermediary’s organizational capacity and enhanced requirements (compliance, security, confidentiality, business continuity, internal control)
  • Periodic reporting to CentralPay (business volume, incidents, service quality) and the option for document-based or on-site audits
  • Mandatory training for operational teams, based on the scope of delegation

2. Electronic Money Distributor (EMD)

2.1. Typical Use Cases

  • Peer-to-Peer (C2C) Sales Platforms
  • Prepaid card or gift card networks
  • Stored-Value Loyalty Programs

2.2. Role of the EMD

The EMD acts on behalf of CentralPay in the provision and operational management of Electronic money, within the limits set forth in the distribution agreement and the rules established by CentralPay.

Features:

  • Connecting CentralPay with end users (the “Sub-merchants” / Electronic money users)
  • Transmission of payment instructions (amount, Beneficiary, fee) to CentralPay, with CentralPay acting as the sole issuer and executor
  • Viewing and tracking transactions through a dedicated monitoring system (e.g., consolidated view/centralized account based on the model), without the right to dispose of the funds
  • Transmission of requests/instructions enabling the transfer of Electronic money between users within a defined framework (closed network, contractual rules), under CentralPay’s control
  • Submission of requests for refund of electronic money at the user’s request, in accordance with applicable rules
  • Maintenance of a Commission Account to collect the fees specified in its Terms of Service

2.3. Functional Limitations

  • The EMD never holds the funds: it acts as an intermediary and cannot retain, store, or use the funds collected
  • It is not permitted to create or issue Electronic money on its own
  • It may not offer payment services that are not explicitly authorized under the contractual framework established by CentralPay
  • He may not subcontract his business activities unless expressly authorized by CentralPay

2.4. Regulatory Requirements

  • Signing of a Distribution Agreement with CentralPay
  • Declaration / compliance procedures carried out on the initiative and under the responsibility of CentralPay, in accordance with applicable regulations
  • Organizational Compliance: Internal Security Measures, Confidentiality, Incident Management, Business Continuity
  • Continuous monitoring by CentralPay, including:
    • Monitoring API Usage / Permissions
    • Regular reports on business activity
    • Mandatory Training for EMD Teams
    • Validation of the Terms of Service provided to users

PSP Agent Declaration (ACPR)

Role of the ACPR

The ACPR (Prudential Supervision and Resolution Authority), which operates under the auspices of the Banque de France, maintains a registry of regulated service providers and their agents. Under the PSP Agent model, CentralPay (an authorized institution) prepares and files the Agent’s notification/registration application and serves as the sole point of contact for the ACPR.

Prospective agents cannot submit applications directly to the ACPR: all communications are managed by CentralPay, with the agent’s assistance (submitting documents, answering questions, and providing organizational details).

Steps for Registering an Agent

StepDescription
1. Scope Definition & Pre-qualificationAnalysis of the model, functional scope, and responsibilities; legal validation and compliance on the CentralPay side
2. Compiling the FileCollection of company and executive documents, organizational information (processes, controls, security), Terms of Use for Agents and Participants, and business forecasts
3. Deposits / ACPR ExchangesDeposit processed by CentralPay; responses to additional requests managed by CentralPay with the assistance of the Agent
4. Registration & ActivationOnce the entry has been made in the public registry, CentralPay can activate the Agent in production (until then, the activity remains suspended)

1. Responsibilities of the Agent

Asa PSP Agent, the Agent acts in the name and on behalf of CentralPay within the scope defined in the contract. CentralPay remains fully responsible for the provision of payment services and regulatory compliance; however, the Agent must strictly adhere to the operational procedures and requirements established by CentralPay, particularly with regard to AML/CFT and fraud prevention.

The Agent is responsible, in particular, for:

  • An understanding of the activities of its merchants/participants and the economic soundness of the transactions initiated through its model
  • Implementation of the expected operational procedures (internal processes, controls, traceability, incident management) and compliance with CentralPay guidelines
  • Fraud prevention (detection, escalation, cooperation) and compliance with due diligence obligations within the assigned scope
  • Cooperation with CentralPay in response to requests for information (inspections, audits, ACPR inquiries), and the prompt submission of requested documents

The agent must sign:

  • A PSP Agent Agreement with CentralPay (mandate / outsourcing / supervision / payment flows)
  • The CCSP (Payment Services Framework Agreement) applicable to the Agent in its capacity as a business customer of CentralPay (platform access, subscribed services)
  • Agent Terms of Service (or equivalent documentation) governing the Agent’s relationship with its Participants, including the necessary details regarding payment plans, allocation, Release dates, and any requests for Payouts

Depending on the scope of authority (and the applicable appendices), certain functions may be delegated to the Agent (e.g., KYC/KYB data collection and formal checks). CentralPay retains sole decision-making authority regarding onboarding, the opening and maintenance of accounts, and regulatory decisions.

2. Become a CentralPay Partner

The process for registering an Agent depends on the completeness of the application, the level of operational delegation, and communication with the ACPR. In practice, it generally takes several weeks and may be extended if additional documents are requested.

2.1. Summary of the Steps

StepDetails
1. Understanding the Model– Defining the scope and responsibilities
– Description of workflows and use cases
– Approval by CentralPay’s Legal and Compliance teams
2. Commercial Offer– Presentation by CentralPay
– Alignment with the scope (technical, operational, compliance)
3. Formalization in a Contract– Signing of the Agent Agreement
– Signing/acceptance of the CCSP applicable to the Agent
4. Testing & Integration– Sandbox access
– Technical integration & acceptance testing
– Verification of user flows (onboarding/consent/disclosures)
5. ACPR Directive– Collection of regulatory documents
– Preparation and submission of the application to the ACPR by CentralPay
– Handling of questions and requests for additional information
6. Deployment– Deployment to production after registration
– Testing in the Sandbox / supervised production

2.2. Documents to Submit to CentralPay

Phase 1 – Preliminary Compilation of the Case File

  • Agent Terms of Service / Contractual Documentation for Participants (program details, consents, “agent” information, breakdown/commission, Release dates, refund terms)
  • Definition of Regulated Activities, Related Services, and Business Model
  • Organizational Chart (including a breakdown of staff by department) and descriptions of key roles
  • Shareholder Structure / Corporate Governance
  • 3-Year Forecast Transactions Entrusted to CentralPay (volumes, amounts, types)
  • Projected number of enrollments over 3 years
  • Scenario involving the reuse of existing KYC data (migration), if applicable

Phase 2 – Filing with the regulator

  • Signing of the Agent Agreement (prior to submitting the application)
  • CentralPay collects and deposits the following items (indicative list):
    • A Commercial register extract less than 3 months old for the company and, if applicable, for its parent or controlling companies
    • Signed, up-to-date Articles of association
    • Color copies of executives’ identity documents
    • Resumes of executives, dated and signed
    • Criminal Records of Executives (if requested)
    • Declarations of No Criminal Convictions by Executives
    • Breakdown of Share Ownership / Shareholder Structure
    • Commercial register for shareholder corporations (if applicable) + group organizational chart (if applicable)
    • Recent General Meeting Minutes (merger, loss of more than 50% of the capital, change in management, etc.)
    • Register of Beneficial Owners (if requested)

The ACPR may also request the following:

  • Recent Balance Sheets and Income Statements
  • Current or prior year financial statements
  • Any document deemed useful by the regulator

2.3. Processing Times

  • Processing time by CentralPay: typically ~2 weeks from receipt of a complete application
  • ACPR processing time: varies; can take up to ~2 months, with initial questions typically received within 30 days

2.4. End of Investigation

  • The Agent may begin the activity only after it has been effectively registered (published in the public registry)
  • Prior to registration, CentralPay does not activate the Agent in production and may keep the Agent’s accounts blocked (IN/OUT)
  • The Agent is listed in public records with a registration number or identifier that may need to be included in certain communications or disclosures.

2.5. Special Feature – Telecom Agents for Value-Added Services (premium-rate numbers)

  • Requirement to Provide a Summary of the Minutes by Operator
  • Submission of detailed breakdown of receipts (breakdown) to CentralPay
  • CentralPay implements additional controls to ensure that Merchants/Participants are properly credited

3. Processing Agent Workflows

This section defines the rules governing the processing and control of financial flows in an Agent model. It specifies the responsibilities, the account structure, and the additional controls implemented to meet legal and prudential requirements.

3.1. Responsibility of the Institution

In accordance with the Monetary and Financial Code (CMF), the Agent acts in the name and on behalf of CentralPay. CentralPay remains fully responsible for compliance with regulatory obligations, particularly with regard to anti-money laundering and counter-terrorism financing (AML/CTF), security, and the protection of funds.

CentralPay has implemented an internal control system that covers the entire transaction cycle, including transactions processed through its agents (supervision, auditability, traceability).

3.2. Employee Operating Accounts

To facilitate the segregation of funds, CentralPay provides (in its records):

  • Collection Account: a transit account used to receive funds related to transactions initiated through the Agent model, and to facilitate their allocation or distribution to Participants’ accounts
  • Commission Account: intended to receive the Agent’s compensation (commissions) and to pay fees owed to CentralPay
  • Agent Payment Account (optional): intended for the Agent’s day-to-day transactions on its own account (funding, payment of SaaS invoices, etc.), separate from third-party transactions and commissions

3.3. Processing Transactions

When an Agent initiates a transaction on behalf of one or more Participants:

  1. The Agent provides CentralPay with the information needed for allocation (Participants’ shares, Agent’s commission, reference numbers), either directly as part of the transaction or, at the latest, by the end of the day via batch processing when objectively necessary.
  2. CentralPay then carries out, under its own responsibility, the allocation and breakdown processes and, where applicable, the necessary transactions (including the transfer of commissions to the Commission Account), in accordance with the contractual framework and regulatory controls.

The Collection Account must remain a transit account: the Agent must not passively hold third-party funds beyond the time strictly necessary for processing (no “floating cash”).

Payout procedures (Payout) are managed by CentralPay; the Collection Account is not intended to serve as a “general-purpose” payout account.

3.4. Release dates and estimated amounts

How It Works

Depending on the contract model, the Agent may submit or configure (as an intermediary authorized by the Participant) a release date (API endpoint: EscrowDate) corresponding to a verifiable contractual event (e.g., delivery, shipment, or completion of services). This date does not trigger any automatic financial consequences: CentralPay retains sole discretion over the release of funds (approval, Refusal, postponement, or other measures).

Until the release date:

  • The funds remain protected and unavailable (neither accessible to the Agent nor usable by the Participant)
  • The Participant can view the transaction asan upcoming transaction or a projected amount, with the availability date displayed, without it being credited to the Available balance

Compliance Requirements

The use of release dates is permitted only if:

  • Clear information: The Agent must explain to its Participants how the Release date works (principles, timeframes, exceptions).
  • Transparent display: The Participant interface must show the transaction date, the expected availability date, and a status of “unavailable before this date.”
  • Provisions in the Agent Terms of Use: The Terms of Use signed by the Participants must specify:
    • The release date corresponds to the contractual date on which the funds become available.
    • That the Participant may not use these funds before that date.
    • CentralPay may refuse, delay, suspend, or restrict the provision of services in accordance with its regulatory obligations, risk policy, and payment network rules.
  • Exception Handling: In the event of a cancellation, refund, unpaid balance, or dispute:
    • If the source transaction is reversed or subject to a refund, the funds will not be made available.
    • In the event of an unpaid transaction (e.g., a credit card chargeback) or a risk, CentralPay may withhold or adjust pending amounts or offset them against future payments.
    • The release date may be postponed (due to a Dispute or incident); the Participant must be notified via their interface or notifications.

This mechanism is neither an escrow arrangement under civil law nor a fiduciary custody service: it is a deferred release of funds under the exclusive control of CentralPay.

3.5. Outgoing Payout Management

How It Works

CentralPay can provide Participants (and, depending on their authorizations, the Agent acting as an authorized intermediary) with various methods for managing Payouts:

  • Automated Payouts (setting up rules/schedules, when provided for in the contract)
  • One-time Payouts (request via portal/API depending on granted permissions)

Compliance Requirements

When the Agent is authorized to submit payout requests on behalf of its Participants, it must obtain their consent and clearly describe the process in the Agent Terms of Service. CentralPay remains solely responsible for the execution of such requests and may face refusals, suspend them, or regulate them in accordance with its obligations.

Key points

The system described guarantees:
- Strict separation of third-party funds, commissions, and Own accounts
- The Agent has no right to dispose of third-party funds
- Complete traceability of transactions (auditability)
- Active oversight by CentralPay
- Compliance with CMF requirements and supervisory expectations

Compliance with this policy is mandatory. Any irregularities (fraud, incidents, inconsistencies in allocation, or failure to follow procedures) must be reported immediately to your CentralPay Account Manager.

ME Distributor Declaration (ACPR)

Electronic money issuers such as CentralPay may authorize Electronic Money Distributors (EMDs) to collect funds and facilitate transactions for the purchase and refund of electronic money within a defined network of Sub-merchants.

The registration process for an Electronic Money Distributor consists of two steps:

  • Preparation of the tax return: handled by CentralPay with the assistance of its future EMD
  • Processing of the application by the ACPR: handled by CentralPay. It does not require any specific approval from the ACPR.

1. Responsibilities of the EMD Intermediary

CentralPay handles all complex processes or those requiring specialized expertise. However, you remain responsible for ensuring a high standard of compliance with AML/CFT (Anti-Money Laundering and Counter-Terrorist Financing) rules. As such, you must provide CentralPay with assurance regarding the conditions under which transactions processed through you are carried out, including:

  • The Economic Reality of the Transaction
  • The Fight Against Fraud

Regulated institutions that use distributors remain responsible for the transactions carried out by those distributors. A clear legal framework has therefore been established.

To qualify as an Electronic money Distributor, the following requirements must be met:

  • The execution of an Electronic money Distribution Framework Agreement that defines the relationship between the parties
  • Terms of Use for Electronic Money

In the event that an EMD internalizes certain functions assigned to CentralPay as part of its regulatory obligations, a contract for Outsourced Essential Services must be signed. This is the case, for example, if the agent handles KYC management in-house or develops management interfaces that would prevent CentralPay from providing the service without the assistance of the PSEE.

2. Become an EMD Intermediary

Becoming a CentralPay distributor involves following a series of steps that take several weeks to complete.

Here is a guide to help you better understand the issues related to the acceptance and subsequent processing of distributors’ filing documents.

2.1. Summary of the Steps

  1. Understanding the Model
    • Explanation of the services provided by the intermediary
    • Defining Its Business Model
    • Approval by CentralPay’s Risk & Compliance Department
  2. Sales Offer
    • Overview
  3. Validation
    • Approval of the intermediary by CentralPay’s Risk & Compliance Department
    • Approval of the commercial proposal and pricing terms by the intermediary
  4. Test & Intégration
    • Setting Up the Sandbox
    • Project Kickoff Meeting with the Technical Team
    • Technical Integration Phase
  5. Review of the ACPR File
    • Gathering the information needed to compile the file
    • Preparing the Application
    • Overview of the Case
  6. Go-Live
    • Acceptance Testing
    • Go-Live

2.2. Documents to Submit to CentralPay

Coming Soon

Engagements de disponibilité

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

CPAY API
Traitement des opérations de paiement
CPAY PORTALS
Portail d’inscription, client et marchand
99,9 %
sur une base annuelle
99,5 %
sur une base annuelle
Le critère d’atteinte de cette garantie correspond à la disponibilité de l’API de paiement.Le critère de cette garantie correspond à la disponibilité des portails de l’environnement de production.

Availability Commitments

CentralPay guarantees the annual availability of its services (SLA & BCP) according to the following standards:

CPAY API
Processing of payment transactions
CPAY PORTALS
Onboarding Portal, Customer Portal, and Merchant Portal
99.9%
on an annual basis
99.5%
on an annual basis
The criterion for determining whether this guarantee has been met is the availability of the payment API.The criterion for this guarantee is the availability of the portals in the production environment.

Automatisations, connexions et exports

Articles

  • Notifications email/sms
  • Services anti-fraude
  • Versement sortantpayout
  • Import de fichiers
  • Exports comptables
  • Exports de données
  • Webhooks

Notifications email/sms

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

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

1. Types de scénarios de notification

Notifiez vos clients et alertez vos collaborateurs automatiquement lorsque certains évènements ont lieu sur votre profil Marchand CentralPay : encaissement d’un virement, contestation client, échec de règlement…

Vous maitrisez le contenu de chaque notification depuis des templates personnalisés et définissez un mode d’envoi par email, par sms ou par Json. Vous automatisez ainsi le pointage de vos encaissements, les notifications clients, ou encore la mise à jour de votre système d’information.

2. Paramétrage des modèles de notification

2.1. Paramétrage des modèles (templates)

Pour commencer le paramétrage de vos notifications, vous devez créer vos modèles de communication (email, sms ou hook) en renseignant les éléments demandés. Par exemple l’objet du mail, le nom et email de l’émetteur, le corps du texte…

Vous pouvez intégrer des éléments dynamiques (tags) dans le corps du texte en tapant le caractère « # », qui fera apparaitre la liste des tags disponible pour le type de scénario de notification sélectionné.

Attention, si vous utilisez les notifications emails, veillez à nous demander de vous communiquer nos clés SPF et DKIM afin que vous puissiez autoriser CentralPay à envoyer des emails depuis votre domaine.

Concernant les SMS, veillez à calculer le nombre de caractères : vous serez facturés d’un SMS par 160 caractères (espaces inclus).

Accès paramétrage de templates emails :

Recette Portail Marchand
Production Portail Marchand

Accès paramétrage de templates SMS :

Recette Portail Marchand
Production Portail Marchand

Accès paramétrage de templates hooks :

Recette Portail Marchand
Production Portail Marchand

2.2. Paramétrage du header et footer pour templates emails

En cas de création d’un template email, un « header » et un « footer » devront être créés. Vous pouvez par exemple intégrer votre logo en header, et vos conditions de contact ou mentions légales en footer.

Accès paramétrage de l’en-tête d’email (header) :

Recette Portail Marchand
Production Portail Marchand

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

Recette Portail Marchand
Production Portail Marchand

3. Paramétrage des scénarios de notification

Pour spécifier à la plateforme les conditions d’envoi et destinataires de vos notifications, vous devez créer un scénario intégrant une ou plusieurs règles d’envoi.

Après avoir choisi le type de scénario souhaité, vous pouvez créer une règle d’envoi. Cette règle est scindée en deux parties : le « QUAND » va permettre de définir l’évènement déclencheur de la notification tandis que le « ALORS » va permettre de choisir les actions qui seront effectuées lorsque l’évènement se produira.

Accès paramétrage de scenarios de notification :

Recette Portail Marchand
Production Portail Marchand

3.1. Dans la partie « QUAND » :

  • Tapez « # » pour visualiser l’ensemble des attributs disponible pour votre scénario
  • Utilisez des opérateurs logiques pour constituer votre règle :
    • Pour les chaînes de caractères (doivent être entourés de guillemets «  ») :
      • = (égal)
      • != (différent de)
      • in (dans ce qui va suivre)
      • not in (pas dans ce qui va suivre)
    • Pour les nombres (attention les montants doivent être renseignés en centimes) :
      • = (égal)
      • != (différent de)
      • < (plus petit que)
      • <= (plus petit ou égal à)
      • in (dans ce qui va suivre)
      • not in (pas dans ce qui va suivre)
    • Pour les boolean (affirmations en vrai ou faux) :
      • = (égal à)
      • != (différent de)
  • Vous pouvez utiliser des conditions pour compléter votre règle :
    • AND (pour ajouter une autre condition d’activation)
    • OR (pour ajouter une autre possibilité d’activation)

Il est possible de donner des priorités en mettant des parenthèses autour des conditions. Si vous utilisez les conditionnels AND et OR dans la même règle, il est nécessaire de prioriser. Si vous utilisez plusieurs fois AND ou plusieurs fois OR, il sera également nécessaire de prioriser chaque partie.

Exemples de règles :

#end_user_country in ('FRA', 'BE')

#authorisation_status = 'FAILURE' or (#transaction_amount > 100000 and #context = 'TRANSACTION_RISKY' )

#transaction_amount > 100000 and ( #authorisation_status = 'FAILURE' or #context = 'TRANSACTION_RISKY' )

((#transaction_amount > 100000 and #context = 'TRANSACTION_RISKY') or ( #authorisation_status = 'FAILURE' and #transaction_amount < 100000 )) and (#card_product_type = 'Consumer')

Avant de pouvoir enregistrer une règle, il est obligatoire de d’abord tester sa règle avec le bouton « tester ». Cela va permettre de vérifier que votre règle est grammaticalement correcte. Attention, cela ne garantit pas que votre règle correspond à ce que vous souhaitiez faire.

3.2. Dans la partie « ALORS » :

Le « ALORS » va permettre de choisir le destinataire et le template utilisé pour la notification. Vous n’avez accès qu’aux templates qui correspondent au type de template requis (SMS, Email, Hook) et qui correspond au type de scénario choisi (transaction carte, demande de paiement, remboursement…).

Services anti-fraude

1. Organisation des services anti-fraude

Les services anti-fraude sont segmentés en 4 outils :

  • Liste blanche (whitelist)
    Le but de la « whitelist » est de rendre sélective l’application d’une règle d’acceptation des transactions. Elle devient inopérante pour des clients identifiés, VIP ou reconnus de confiance qui sont intégrés à une « whitelist ». Les « whitelists » portent sur les données spécifiques d’un client, comme le numéro de sa Carte Bancaire ou son adresse IP. Cette fonctionnalité permet d’être moins restrictif sur des populations d’utilisateurs
  • Liste noire (blacklist)
    Le service de « blacklist » permet de refuser les paiements. Tout comme pour les « whitelists », les « blacklists » portent sur les données propres au porteur de carte (Carte, IP, tel, email)
  • Règles d’acceptation des transactions
    Cet outil permet de construire les règles spécifiques définissant les conditions d’acceptation d’un paiement
  • Scoring anti-fraude
    Le service de scoring permet de détecter les transactions potentiellement frauduleuses en se basant sur l’analyse croisée de plusieurs données liées aux paiements

Les phases de traitement des transactions sont toujours exécutées dans cet ordre.

Dans le cas où les données d’entrée remplissent toutes les conditions des « whitelist » définies, le service de « blacklist » ne sera pas exécutée et la transaction sera opérée normalement.

Dans le cas où les données d’entrée remplissent une des conditions des « blacklist » définies et ne figurent pas dans le service de « whitelist », la transaction sera refusée et le service « règle d’acceptation » ne sera pas exécutée. Chaque service est exécuté de façon descendante vis-à-vis de la hiérarchie des acteurs CentralPay, ce qui signifie qu’une plateforme peut appliquer les paramètres de ses services anti-fraude à ses marchands, mais que l’inverse n’est pas possible.

2. Outil de scoring de fraude

CentralPay s’appuie sur un service de détection de fraude reposant sur des algorithmes de machine learning.

Ce moteur prédictif est constitué depuis un large échantillon de données fourni par CentralPay au format JSON et issues des données transaction, refund, dispute.

Ce service s’appuie sur une classification comportementale liée au secteur d’activité du marchand.

Le moteur retourne une action et un score. L’action invite le service de paiement à accepter ou refuser la transaction.

Le score classifie le niveau de risque en fournissant un pourcentage de probabilité de fraude. Ce score est ensuite interprété dans le moteur de règle.

Le score permet au marchand et à l’algorithme d’interagir ensemble pour s’améliorer.

Les scores sont classifiés ainsi :

  • De 0 à 19 = risque faible
    Transaction acceptée
    Pas d’action
  • De 20 à 59 = risque moyen
    Transaction acceptée
    Action : Envoi événement avec détail du score pour revue manuelle et apprentissage
  • +60 = risque élevé
    Transaction refusée
    Action : Envoi événement avec détail du score pour revue manuelle et apprentissage

Ce service d’analyse d’exposition à la fraude analyse le contexte d’exposition au risque de fraude de chaque transaction. Ce service retourne un score qui permet de traiter automatiquement la réponse attendue dans le moteur de règle.

Le score repose sur l’analyse croisée des données suivantes :

  • Indice de risque IP
  • Détection de Proxy
  • Détection réseau TOR
  • Vérification de l’adresse IP
  • Confidence factors
  • Email checks
  • Address & phone checks
  • Adresse d’expédition à haut risque
  • Géolocalisation des adresses IP
  • Identification des équipements utilisés
  • Adresse e-mail
  • Type de navigateur
  • Discordances de pays
  • Distance de l’adresse d’expédition
  • Distance de l’adresse de facturation
  • Domaine e-mail
  • Heure
  • Montant de la commande
  • Pays
  • Numéro de téléphone
  • Titulaire IP
  • Titulaire de l’e-mail
  • Vérification adresse CB

3. Listes blanches et listes noires

3.1. Liste blanche (Whitelist)

Le but de la « whitelist » est de rendre sélective l’application d’une règle d’acceptation. Cette règle devient inopérante pour des clients identifiés, VIP ou reconnus de confiance qui sont intégrés à une « whitelist ».

Le service anti-fraude passe ainsi à l’étape suivante.

Les « whitelists » portent sur les données spécifiques d’un client, comme le numéro de sa Carte Bancaire ou son adresse IP. Cette fonctionnalité permet d’être moins restrictif sur une population d’utilisateurs.

3.2. Liste noire (Blacklist)

L’étape de la « blacklist » permet de refuser les paiements.

Tout comme pour les « whitelists », les « blacklists » portent sur les données propres au porteur de carte :

  • Pays
  • Régions géographiques
  • Numéros de carte
  • Numéros de téléphone
  • E-mail
  • Adresses IP
  • IBAN

4. Règles d’acceptation des transactions

Le moteur de règles d’acceptation est une brique applicative puissante et modulaire qui permet d’adapter le comportement lié au traitement à réaliser sur chaque transaction comme :

  • Accepter
  • Refuser
  • Alerter

Ce service permet ainsi de définir des actions à réaliser sur chaque transaction depuis une large liste d’attributs disponibles : score de fraude, localisation du porteur, montant des ventes cumulées sur 7 ou 30 jours, client VIP whitelist, paramètre spécifique adressé par le marchand…

Une règle d’acceptation est une condition logique. Elle permet : d’autoriser, de restreindre, et/ou d’interdire des transactions.
Une règle se compose de 4 éléments : l’action, les attributs, les opérateurs, les valeurs.

La syntaxe d’une règle est la suivante : « Action » « if » « Attribut » « Opérateur de comparaison » « Valeur de comparaison »

Exemple :

REFUSE if card_country != 'FRA'

La règle présentée dans cet exemple permet de refuser automatiquement les paiements lorsque le pays de la carte n’est pas la France.
La syntaxe de la grammaire choisie par la plateforme pour son moteur d’acceptation est très semblable à la syntaxe SQL (utilisée pour dialoguer avec les bases de données).

4.1. Les actions disponibles

  • ALLOW
    Autorise le paiement
  • REFUSE
    Refuse le paiement
  • ALERT
    Adresse une notification « webhook » de la transaction associée

4.2. Les attributs disponibles

En tapant « # », les attributs disponibles sont affichés.

Dans une règle, un attribut est toujours suivi d’un Opérateur de comparaison.

Liste des attributs :

AttributDescriptionType de valeursExemple
#always Aucune 
#transactions[_état][_entité] [_temporalité]Quota du nombre de transactions [état] [entité] [temporalité]Entiers
#transactions_amount[_état] [_entité][_temporalité]Quota du montant des transactions [état] [entité] [temporalité]Entiers
#amountMontant de la transaction en centimesEntier#amount > 100
#card_countryPays d’émission de la carteChaîne de caractères 
ISO 3166-1 alpha-3
#card_country IN (‘FRA’, ‘USA’, ‘BEL’, ‘DEU’)
#card_establishmentEtablissement de la carte  
#card_productType de carte‘gold’, ‘platinium’ 
#card_product_typeType de carte (perso ou corp.)CONSUMER CORPORATE#card_product_type = ‘CONSUMER’
#card_regionRégion d’émission de la carte‘ASIA_PACIFIC »EUROPE »LATIN_AMERICA »MIDDLE_EAST_AND_AFRICA »USA_AND_CANADA »ANTARCTIQUE »UNKNOWN’#card_region NOT IN (‘ASIA_PACIFIC’, ‘LATIN_AMERICA’)
#commercial_brandMarque de la carteVISA MASTERCARD AMEX OTHER#commercial_brand != ‘VISA’
#currencyDevise de la transactionChaîne de caractères 
ISO 4217
#currency = ‘EUR’
#ip_countryPays de l’adresse IPChaîne de caractères 
ISO 3166-1 alpha-3
#ip_country IN (‘FRA’, ‘USA’, ‘BEL’, ‘DEU’)
#ip_regionRégion de l’adresse IP‘ASIA_PACIFIC »EUROPE »LATIN_AMERICA »MIDDLE_EAST_AND_AFRICA »USA_AND_CANADA »ANTARCTIQUE »UNKNOWN’#card_region NOT IN (‘ASIA_PACIFIC’, ‘LATIN_AMERICA’)
#is_anonymous_ipEst une IP anonymeTRUE | FALSE#is_anonymous_ip = TRUE
#is_three_d_secureEst une transaction 3D-SecureTRUE | FALSE#is_three_d_secure = TRUE
#payout_amountMontant de versementEntier#payout_amount > 100
#payout_currencyDevise de versementChaîne de caractères 
ISO 4217
#payout_currency = ‘EUR’
#risk_scoreScore d’antifraudeDouble#risk_score > 2,34
#custom_acceptance_data[‘key’] = ‘value’champs customisékey : Regex [a-zA-Z0-9_-]value: Regex [a-zA-Z0-9_-]#custom_acceptance_data[‘product_category’] = ‘high’

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

Les opérateurs logiques et parenthésage :

Opérateurs logiques AND et OR

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

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

Exemple :

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

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

Exemple :

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

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

Parenthèses

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

Exemple :

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

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

Ordre d’exécution des règles

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

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

Exemples de règles :

ALLOW if #amount < 1000 and #transactions_amount_daily < 10000

Cet exemple autorise les transactions dont le montant est inférieur à 10 si la somme des montants des transactions de la journée est inférieur à 100.

REFUSE if #risk_score > 3 or (#ip_regions = 'ASIA_PACIFIC' and #card_region = 'ASIA_ PACIFIC')

Cette règle bloque les paiements si le score de risque dépasse 3 ou que l’IP utilisée ainsi que la région d’émission de la carte correspondent à la zone ‘ASIA_PACIFIC’.

THREE_D_SECURE if #card_country NOT IN ('FRA', 'USA', 'GBR') 

Cette règle demande une transaction 3D Secure si le pays de la carte n’est pas la France, les Etats-Unis, ou la Grande Bretagne.

ALLOW (#amount < 10000 and #transactions_amount_daily < 100000) or (#currency IN ('EUR', 'USD') and #transactions_amount_monthly < 1000000)

Cet exemple précédent AUTORISE les paiements SI le montant est INFÉRIEUR à 100 ET que la somme des montants des transactions du jour est INFÉRIEUR à 1000 OU que la devise est € ou $ ET que la somme des montants des transactions du mois est INFÉRIEURE à 10 000.

Les opérateurs logiques « AND » et « OR » ne sont syntaxiquement correct qu’en minuscule.

4.3. Les opérateurs de comparaison disponibles

  • = (égal)
  • != (différent de)
  • < (plus petit que)
  • <= (plus petit ou égal à)
  • in (dans ce qui va suivre)
  • not in (pas dans ce qui va suivre)

Les opérateurs de comparaison = , != , > , < , >= et <= doivent être suivis d’une valeur.

Les opérateurs IN et NOT IN sont suivis d’une liste de valeurs de comparaison.
Une liste de valeurs est entourée par des parenthèses et les valeurs à l’intérieur de la liste sont séparées par des virgules.

Exemple :

REFUSE if #currency NOT IN ('EUR', 'USD', 'GBP', 'CHF')

L’exemple présenté ci-dessus permet de refuser tous les paiements dont la devise n’est pas l’Euro, le Dollar US, la Livre Sterling ou le Franc Suisse.

Cette syntaxe évite d’écrire plusieurs règles ou plusieurs conditions dans la même règle.

4.4. Les valeurs disponibles :

En fonction du type de valeur, la syntaxe permettant de définir la valeur ne sera pas la même :

  • Entiers (valeur numérique sans décimale) : Syntaxe classique (ex : 100)
  • Doubles (valeur numérique avec décimales) : La valeur est définie avec un point comme séparateur de décimale (ex : 12.32)
  • Chaîne de caractères : La valeur est définie entre ‘quotes’ simples (ex : ‘FRA’)
  • Booléens : La valeur est true ou false (ex : false)
ℹ️ Les valeurs de "montants" doivent être renseignées en centimes (ex : pour 10 € on renseignera une valeur de 1000).

4.5. Les opérateurs logiques :

Les opérateurs disponibles sont AND et OR. Ils permettent de définir comment le moteur de règle va interpréter la succession de ces règles. Le « AND » permet une inclusion tandis que le « OR » une exclusion.

Exemple :

REFUSE if #amount < 1000 and #card_country != 'FRA'

L’exemple présenté ci-dessus permet de refuser les paiements dont le montant est inférieur à 10 € ET dont la carte n’est pas française. Si l’une ou l’autre des conditions définies n’est pas remplie, l’action ne sera pas exécutée.

Versement sortant

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

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

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

1. Modes de versement

1.1. Versement automatique

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

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

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

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

Lettrage des versements automatiques

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

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

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

1.2. Versement manuel (via Portail Marchand ou API)

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

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

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

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

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

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

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

Depuis le Portail Marchand Administration Mon compte Versements :

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

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

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

2. Disponibilité des fonds

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

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

3. Création d’un versement manuel

3.1. Depuis le Portail Marchand

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

Depuis le Portail Marchand Administration Mon compte Versements :

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

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

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

3.2. Depuis l’API

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

4. Versements en devises via le réseau SWIFT

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

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

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

5. Retours, statuts et webhooks

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

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

Import de fichiers

Service d’import de fichiers CentralPay

Le Service d’import de fichiers vous permet de piloter des opérations CentralPay en masse, en déposant de simples fichiers CSV plutôt qu’en appelant l’API ligne à ligne.

À ce jour, deux types de fichiers sont pris en charge :

  • Fichiers Customer : pour créer vos profils clients (customers) dans CentralPay, avec en option un compte bancaire (BankAccount) et/ou un mandat de prélèvement SEPA (SDD).
  • Fichiers Operation : pour déclencher des prélèvements SEPA (SDD) sur vos profils clients et/ou des virements SEPA sortants (SCT) vers les comptes bancaires de vos profils clients.

Pour chaque fichier déposé, CentralPay vous renvoie des fichiers de compte-rendu vous indiquant, ligne par ligne, ce qui a été accepté, refusé ou rejeté.

1. À qui s’adresse ce service ?

Ce service est conçu pour les marchands qui traitent des volumes d’opérations et préfèrent un échange par fichiers à une intégration API en temps réel : encaissements récurrents par prélèvement, versements sortants groupés, constitution ou migration d’un référentiel clients/mandats SEPA, etc.

L’échange s’effectue de façon asynchrone : vous déposez vos fichiers, CentralPay les traite, puis met à votre disposition les comptes-rendus.

2. Prérequis

2.1 Prérequis communs

  • Un compte marchand CentralPay actif avec accès au Portail Marchand.
  • Votre identifiant marchand (UUID) CentralPay. Les 8 premiers caractères de cet UUID servent à nommer vos fichiers (voir section 5.1 Règles communes à tous les fichiers).
  • La mise en place d’un canal d’échange sécurisé (SFTP, voir section 4. Mise en place du SFTP) sauf si un autre canal a été convenu avec votre interlocuteur CentralPay.
  • Une phase de recette avec l’équipe intégration CentralPay avant la mise en production.

2.2 Prérequis pour les opérations de virements SEPA sortants (CREDIT / SCT)

  • Le service de virement SEPA sortant doit être activé sur votre profil marchand.

2.3 Prérequis pour les opérations prélèvements SEPA (DEBIT / SDD)

Les prélèvements imposent des prérequis supplémentaires, à valider avant tout premier dépôt :

  • Votre ICS (Identifiant Créancier SEPA) doit être déclaré dans votre profil marchand CentralPay (démarche réalisée avec votre interlocuteur CentralPay).
  • Le service de prélèvement SEPA doit être activé sur votre profil marchand (démarche réalisée avec votre interlocuteur CentralPay).
  • Validation de la Conformité du mode de gestion des mandats. Dans ce parcours d’intégration, CentralPay ne recueille pas la signature du mandat : vous transmettez vous-même, dans le fichier Customer, la référence du mandat (MANDATE_RUM) et sa date de signature (MANDATE_SIGN_DATE). En conséquence :
    • Votre interlocuteur CentralPay doit valider en amont le principe de gestion des mandats par ce biais, qu’il s’agisse d’une migration de mandats existants ou de mandats nouvellement collectés par vos soins.
    • Vous restez responsable de la collecte, de la validité juridique et de la conservation des mandats signés, ainsi que de l’information préalable de vos clients (préavis, RUM, ICS).
Sans ces prérequis, les fichiers comportant des prélèvements ne pourront pas être traités, que ce soit en environnement de RCT ou de PROD.

3. Comment fonctionne le cycle de traitement ?

  1. Dépôt. Vous déposez vos fichiers CSV (Customer et/ou Operation) sur le SFTP, dans le dossier de dépôt.
  2. Contrôle technique (ACK). CentralPay vérifie chaque ligne (format, champs obligatoires, cohérence) et vous renvoie un fichier .ACK : chaque ligne y est marquée ACCEPTED ou REFUSED, avec le motif d’erreur le cas échéant.
  3. Traitement bancaire. Les lignes techniquement valides sont transmises aux circuits bancaires SEPA.
  4. Compte-rendu de règlement (SET). Pour les opérations, CentralPay produit des fichiers .SET indiquant l’avancement du règlement (ACCEPTED / PENDING / REFUSED) une fois les retours bancaires disponibles.
  5. Rejets post-règlement (RET). En cas de rejet SEPA survenant après le règlement (par exemple une contestation client), CentralPay produit un fichier .RET reprenant le motif et le montant retournés.
Les fichiers Customer ne génèrent pas de compte-rendu bancaire (.SET / .RET) : seul un .ACK est renvoyé.

4. Mise en place du SFTP

Le SFTP est le canal d’échange recommandé. Il garantit un dépôt et une récupération sécurisés, et permet à CentralPay de récupérer et traiter automatiquement vos fichiers.

4.1 Modèle d’échange

Le SFTP est hébergé par le marchand.

CentralPay se connecte à votre SFTP, récupère les fichiers dans un dossier de sortie et y dépose les comptes-rendus dans un dossier d’entrée.

4.2 Convention de dossiers

L’échange repose sur deux répertoires :

RépertoireSensContenu
Dossier de dépôt (nommé /OUT)Marchand → CentralPayVos fichiers Customer et Operation à traiter
Dossier de retour (nommé /IN)CentralPay → MarchandLes comptes-rendus .ACK, .SET, .RET

4.3 Étapes de mise en place

  1. Demander l’activation auprès de votre interlocuteur CentralPay.
  2. Échanger les accès : authentification par clé SSH.
    • Il convient de créer deux espaces : un SFTP dédié à la recette et un dédié à la production
    • Les informations du SFTP (hote + login) devront nous être fournies par email
    • Afin que nous puissions nous connecter à votre SFTP, une clé publique Centralpay (par environnement) vous sera communiquée
    • Par ailleurs, il est recommandé de mettre en liste blanche (whitelist) les adresses IP de CentralPay (celles-ci vous seront communiquées lors de votre intégration).
  3. Utilisation de l’arborescence définie précédemment (dossiers de dépôt /OUT et de retour /IN).
  4. Tester en recette avec un fichier d’exemple, valider la bonne réception des .ACK, puis basculer en production.

5. Préparer vos fichiers

5.1 Règles communes à tous les fichiers

  • Format : CSV. La ligne d’en-tête (header) est obligatoire dans tous les fichiers, en entrée comme en sortie.
  • Nommage :
    • Fichier client : <8 premiers caractères de votre UUID marchand en minucules>_CUST_<référence libre>.csv
    • Fichier opérations : <8 premiers caractères de votre UUID marchand en minucules>_OPER_<référence libre>.csv
    • La référence libre est à votre main (souvent un horodatage). Le nom complet ne doit pas dépasser 100 caractères.
    • Exemples : c494f877_CUST_20241025110500.csv · c494f877_OPER_20241025110500.csv
  • Montants : exprimés en unité mineure (centimes d’euro) et toujours positifs. Le sens (débit/crédit) est porté par la colonne OPERATION_TYPE, pas par le signe du montant.
  • Légende des colonnes dans les tableaux ci-dessous :
    • Obligatoire : la ligne est refusée si la valeur est absente.
    • Facultatif : peut être laissé vide.
    • Conditionnel : requis uniquement dans le cas décrit.

5.2 Fichier Customer

Ce fichier crée vos profils clients. Selon votre besoin, il peut créer en une seule ligne : le profil client seul, le client + un compte bancaire, ou le client + un compte bancaire + un mandat SDD.

ColonneFormatStatutDescription
MERCHANT_IDUUIDObligatoireVotre identifiant marchand CentralPay
MERCHANT_CUSTOMER_IDString(100)FacultatifVotre référence client interne (doit être unique). Fortement recommandé pour réconcilier vos opérations
DESCRIPTIONString(256)FacultatifChamp libre à votre usage
TYPEINDIVIDUAL / LEGAL_ENTITYObligatoirePersonne physique ou morale
SOCIAL_REASONString(35)ConditionnelRequis si TYPE = LEGAL_ENTITY (raison sociale)
FIRST_NAMEString(35)ObligatoirePrénom (du représentant légal si LEGAL_ENTITY)
LAST_NAMEString(35)ObligatoireNom (du représentant légal si LEGAL_ENTITY)
EMAILString(255)Facultatif
PHONEString(25)FacultatifFormat international +<indicatif><numéro>
ADDRESS_LINE_1String(255)Obligatoire
ADDRESS_LINE_2/3/4String(255)FacultatifCompléments d’adresse
POSTAL_CODEString(15)ObligatoireCaractères autorisés : lettres, chiffres, espace, tiret
CITYString(35)Obligatoire
COUNTRYCode ISO 3166 alpha-3ObligatoireEx. FRA
IBANString(34)ConditionnelRequis pour créer un compte bancaire (donc pour tout virement sortant ou prélèvement futur). Validé selon ISO 13616
BICString(11)ConditionnelRequis avec l’IBAN
MANDATE_RUMString(35)ConditionnelRequis pour créer un mandat SDD. Référence unique de mandat (RUM) du mandat déjà signé côté marchand
MANDATE_SIGN_DATEDate YYYY-MM-DDConditionnelRequis pour créer un mandat SDD. Date de signature du mandat
Logique « avec ou sans »

➜ Client seul : renseignez l'identité et l'adresse, laissez IBAN/BIC et les colonnes mandat vides.

➜ Client + compte bancaire (nécessaire pour un virement sortant futur) : ajoutez IBAN + BIC.

➜ Client + mandat SDD (nécessaire pour un prélèvement SEPA futur) : ajoutez IBAN + BIC + MANDATE_RUM + MANDATE_SIGN_DATE.

Exemple de fichier Customer

Télécharger l’exemple de fichier .csv « Customer »

Trois clients : un particulier (INDIVIDUAL, sans raison sociale) et deux personnes morales (LEGAL_ENTITY), chacun avec son propre compte bancaire et son mandat SDD.

À retenir sur cet exemple :

  • Le téléphone est au format international (+33..., sans le 0 initial).
  • Pour le client INDIVIDUAL, le champ SOCIAL_REASON est laissé vide (deux ; consécutifs) ; il est renseigné uniquement pour les LEGAL_ENTITY.
  • Chaque client a son propre IBAN/BIC et sa propre MANDATE_RUM. Les IBAN/BIC ci-dessus sont des coordonnées de test fournies pour la recette : remplacez-les par les coordonnées réelles de vos clients en production.

En retour, le fichier .ACK vous renverra pour chaque ligne acceptée un CUSTOMER_ID (UUID). Conservez ces identifiants : ce sont eux que vous réutiliserez dans vos fichiers Operation.

Colonnes ajoutées par CentralPay dans le fichier .ACK de retour :

ColonneDescription
STATUSACCEPTED ou REFUSED (pas de PENDING pour les fichiers customer)
ERROR_CODEValorisé si REFUSED (ex. INVALID_PARAMETERS)
ERROR_MESSAGEDétail technique (en anglais)
CUSTOMER_IDUUID du client créé, valorisé si ACCEPTED (à conserver pour vos opérations futures)

5.3 Fichier Operation

Ce fichier déclenche des opérations sur des profils clients déjà existants dans CentralPay.

ColonneFormatStatutDescription
MERCHANT_IDUUIDObligatoireVotre identifiant marchand CentralPay
POINT_OF_SALE_IDUUIDFacultatifPoint de vente concerné. Si vide, le point de vente par défaut est utilisé
MERCHANT_TRANSACTION_IDString(35)FacultatifVotre référence d’opération (unique chez vous)
DESCRIPTIONString(140)FacultatifDescription à votre usage
END_TO_END_IDString(35)FacultatifRéférence SEPA end-to-end visible par le client final.
À défaut, reprend MERCHANT_TRANSACTION_ID
REMITTANCE_INFOString(140)FacultatifLibellé SEPA (unstructured remittance information) visible par le client final. À défaut, reprend DESCRIPTION
CUSTOMER_IDUUIDConditionnelIdentifiant CentralPay du client. CUSTOMER_ID ou MERCHANT_CUSTOMER_ID doit être renseigné
MERCHANT_CUSTOMER_IDString(100)ConditionnelVotre référence client interne (alternative au CUSTOMER_ID généré par CentralPay)
MANDATE_RUMString(35)FacultatifPour cibler un mandat précis si le client en possède plusieurs (si OPERATION_TYPE = DEBIT)
AMOUNTEntierObligatoireMontant en centimes d’euro, valeur positive uniquement
CURRENCYCode ISOObligatoireEUR (devise euros obligatoire pour virements et prélèvements SEPA)
OPERATION_TYPEDEBIT / CREDITObligatoireDEBIT = prélèvement SEPA (SDD)
CREDIT = virement SEPA sortant (payout)
EXPECTED_SETTLEMENT_DATEDate YYYY-MM-DDFacultatifDate de règlement souhaitée. Par défaut : J+1 ouvré
Choisir le bon OPERATION_TYPE

➜ DEBIT (prélèvement) : Si vous souhaitez débiter le compte bancaire de votre client via un prélèvement SEPA. Nécessite que le profil client dispose d'un mandat SDD valide.

➜ CREDIT (virement) : Si vous souhaitez créditer le compte bancaire de votre client via un virement SEPA sortant. Nécessite que le client dispose d'un compte bancaire déclaré (IBAN/BIC).

Exemple de fichier Operation

Télécharger l’exemple de fichier .csv « Operation »

Cinq opérations sur les clients créés à l’étape précédente, référencés par leur CUSTOMER_ID (les UUID renvoyés dans le .ACK du fichier Customer) : trois prélèvements (DEBIT) et deux virements (CREDIT).

À retenir sur cet exemple :

  • Le client est désigné par son CUSTOMER_ID (UUID stable et unique). Il peut sinon être désigné par votre MERCHANT_CUSTOMER_ID mais vous devez vous assurer de son unicité et de son bon formatage.
  • MERCHANT_TRANSACTION_ID et END_TO_END_ID sont uniques pour chaque opération.
  • Les montants sont en centimes (4990 = 49,90 €) et toujours positifs ; c’est OPERATION_TYPE qui donne le sens (débit ou crédit).
  • REMITTANCE_INFO porte un libellé explicite, visible du client final sur son relevé. Privilégiez des caractères simples (norme SEPA : pas d’accents ni de caractères spéciaux).

Colonnes ajoutées par CentralPay dans les fichiers de retour :

Dans le .ACK (contrôle technique) :

ColonneDescription
STATUSACCEPTED, PENDING ou REFUSED
ERROR_CODEValorisé si REFUSED
ERROR_MESSAGEDétail technique
OPERATION_IDUUID de l’opération, valorisé si ACCEPTED (clé de suivi dans les fichiers suivants)

Dans le .SET (compte-rendu de règlement) :

ColonneDescription
STATUSACCEPTED, PENDING ou REFUSED
ERROR_CODEValorisé si REFUSED (ex. FRAUD_ALERT)
ERROR_MESSAGEDétail bancaire du refus
SETTLEMENT_DATEDate de valeur si ACCEPTED
OPERATION_IDUUID de l’opération

Dans le .RET (rejet post-règlement) :

ColonneDescription
REASON_CODECode de rejet SEPA (ex. AC04 = compte clos)
REASON_MESSAGEDétail textuel du rejet
RETURN_AMOUNTMontant retourné (positif)
RETURN_DATEDate du rejet
OPERATION_IDUUID de l’opération d’origine

6. Comprendre les fichiers de retour

6.1 Nommage des fichiers de retour

Les fichiers de retour reprennent le nom de votre fichier d’origine, suivi du type de compte-rendu, d’une empreinte de traitement et d’un horodatage :

<nom du fichier d'origine au format csv>.<ACK|SET|RET>-<hash>-<timestamp>.csv
  • <hash> : empreinte du fichier traité (permet de relier le retour au traitement).
  • <timestamp> : horodatage du traitement.

Exemple :

C494F877_OPER_20241025110500.csv.ACK-098f6bcd4621d373cade4e832627b4f6-20241025112500.csv

6.2 Les trois niveaux de compte-rendu

FichierQuandCe qu’il vous dit
.ACKImmédiatement après réceptionValidité technique ligne à ligne. Toutes les lignes sont retournées, y compris celles refusées
.SETUne fois les retours bancaires disponibles (opérations uniquement)Avancement du règlement. Seules les lignes ACCEPTED au niveau .ACK y figurent
.RETEn cas de rejet après règlement (opérations uniquement)Rejets SEPA postérieurs (ex. contestation client)
Délais indicatifs de règlement (jours ouvrés) : virement (SCT) 1 à 2 jours ; prélèvement SEPA (SDD) 3 à 5 jours. Un rejet post-règlement (.RET) peut survenir jusqu'à 8 semaines après l'opération en cas de contestation.

6.3 Bonnes pratiques de réconciliation

  • OPERATION_ID est la clé de correspondance entre les fichiers .ACK, .SET et .RET d’une même opération. Conservez-le.
  • CUSTOMER_ID (renvoyé dans le .ACK customer) est l’identifiant à réutiliser dans vos fichiers Operation.
  • Renseignez systématiquement vos propres références (MERCHANT_CUSTOMER_ID, MERCHANT_TRANSACTION_ID) pour faciliter le rapprochement de votre côté.

7. Erreurs fréquentes

7.1 Refus techniques (fichier .ACK)

CodeSignificationAction
MISSING_COLUMNSColonne(s) attendue(s) absente(s)Vérifier l’en-tête et la structure du CSV
INVALID_PARAMETERSValeur de champ invalideCorriger la donnée fautive (format, longueur, énumération)
BAD_ROWLigne mal forméeVérifier le séparateur et le nombre de colonnes de la ligne
COMPUTATION_EXCEPTIONErreur de traitement interneContacter le support CentralPay

(Liste non exhaustive. Les messages sont retournés ligne par ligne et peuvent concatener plusieurs erreurs.)

7.2 Anomalies de rapprochement client

MessageSignificationAction
No customer fetch errorLe client lié à l’opération est introuvableVérifier la cohérence du CUSTOMER_ID / MERCHANT_CUSTOMER_ID. Au besoin, déposer un fichier Customer pour les clients manquants
Too much customer found for merchantPlusieurs clients partagent le même MERCHANT_CUSTOMER_IDGarantir l’unicité de votre référence client ; nous contacter pour arbitrer (fusion / mise à jour)
Unexpected service responseErreur interne CentralPayContacter le support CentralPay

8. Points d’attention

  • La ligne d’en-tête est obligatoire dans chaque fichier.
  • Les montants sont en centimes et toujours positifs.
  • Une opération peut apparaître dans plusieurs .SET successifs si son statut évolue (PENDING → ACCEPTED/REFUSED).
  • Conservez le mapping OPERATION_ID / CUSTOMER_ID entre vos systèmes et CentralPay.
  • Toute première mise en place fait l’objet d’une recette avec l’équipe intégration avant production.

9. Démarrer

  1. Vérifiez vos prérequis, en particulier la chaîne ICS + service SDD + validation Conformité si vous prévoyez des prélèvements.
  2. Demandez l’ouverture du canal SFTP auprès de votre interlocuteur CentralPay.
  3. Préparez un fichier d’exemple et validez-le en recette.
  4. Passez en production.

Pour toute question sur la mise en place, contactez votre interlocuteur CentralPay ou le support.

Exports comptables

Vous pouvez réaliser plusieurs exports de votre compte aux formats CSV, EXCEL, ou JSON depuis votre Portail Marchand. Pour cela, paramétrez votre recherche avec les filtres disponibles sur la page de l’export souhaité, cliquez sur « Rechercher » puis « Exporter ». En quelques secondes, vous recevrez le fichier par email et pourrez le télécharger à tout moment depuis votre Portail Marchand Fichiers d’export .

1. Export comptable des opérations du compte

Cet export reprend l’ensemble des mouvements financiers débiteurs et créditeurs qui ont été réalisés sur votre compte : autorisations cartes, transactions cartes, transactions SDD, transactions SCT, transfers, payout, frais CentralPay, etc.

Vous disposerez du détail de chaque opération afin que vous puissiez le rapprocher facilement à vos factures ou vos dossiers.

L’export contient les données suivantes :

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

Accès :

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

2. Télécharger le rapport financier mensuel

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

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

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

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

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

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

Accès :

Recette Portail Marchand – Documents
Production Portail Marchand – Documents

Exports de données

Vous pouvez réaliser plusieurs exports de votre compte aux formats CSV, EXCEL, ou JSON depuis votre portail Marchand. Pour cela, paramétrez votre recherche avec les filtres disponibles sur la page de l’export souhaité, cliquez sur « Rechercher » puis « Exporter ». En quelques secondes, vous recevrez le fichier par email et pourrez le télécharger à tout moment depuis votre Portail Marchand Compte Exports

1. Export des transactions cartes

Cet export vous permet d’obtenir le détail des transactions cartes que vous avez réalisées au cours d’une période donnée.
Cet export simplifie la lecture de vos transactions carte en agrégeant les opérations d’autorisations et de débit, et présente des données complémentaires spécifiques aux transactions cartes.

L’export contient les données suivantes :

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

Accès :

Recette Portail Marchand – Transactions
Production Portail Marchand – Transactions

2. Export des remboursements cartes

Cet export vous permet d’obtenir le détail des remboursements cartes que vous avez réalisées au cours d’une période donnée.

Accès :

Recette Portail Marchand – Remboursements cartes
Production Portail Marchand – Remboursements cartes

3. Export des contestations de transactions cartes

Cet export vous permet d’obtenir le détail des contestations de transactions cartes (disputes/chargebacks) que vous avez reçues au cours d’une période donnée.

Accès :

Recette Portail Marchand – Contestations cartes
Production Portail Marchand – Contestations cartes

4. Export des abonnements (cartes et SDD)

Cet export vous permet d’obtenir le détail des abonnements cartes et SDD que vous avez réalisés au cours d’une période donnée.

Accès :

Recette Portail Marchand – Abonnements
Production Portail Marchand – Abonnements

Webhooks

Les webhooks permettent d’adresser des notifications HTTP sur les URL de votre choix en fonction des évènements (events) qui surviennent sur votre profil Marchand CentralPay. Ces évènements correspondent à la création, au changement de donnée ou au changement de statut d’un objet des API CentralPay.

Le service permet ainsi d’avertir en temps réel votre système d’information, dès qu’un évènement intervient sur votre profil Marchand CentralPay. Par exemple, une transaction réussie ou échouée, la création d’un nouvel abonnement (subscription), un nouveau client (customer), la réception d’un impayé… 

Les webhooks sont classés en deux catégories :

  • Liés aux Points de Vente « POS »
  • Liés aux « Comptes »

Le serveur distant doit confirmer la bonne réception de la requête en retournant un code 2XX. Dans le cas contraire, une nouvelle requête sera adressée toutes les 5 min pendant 2h.

Pour s’assurer de la bonne réception des hooks, nous vous conseillons d’utiliser le service Webhook Site. Entrez l’URL donnée par le site et l’adresse mail, et effectuez vos tests. Une fois que vous êtes satisfait des réponses hooks, vous pouvez remplacer l’adresse mail et l’URL par les vôtres et effectuez un nouveau test.

Consultez la liste des webhooks dans la rubrique : Développeurs Webhook notifications

Automations, integrations and exports

Articles

  • Email/SMS notifications
  • Anti-fraud services
  • Outgoing paymentpayout
  • File Import
  • Accounting Exports
  • Data Exports
  • Webhooks

Email/SMS notifications

Notifications can be sent based on events related to certain API objects:

  • Payment request (paymentRequest)
  • Chargeback (dispute)
  • Installment payment (installment)
  • Card Transaction (transaction)
  • Payout (payout)
  • Card Refund (refund)
  • Subscription (subscription)
  • Card credit (credit)
  • SDD Transaction (sddTransaction)
  • Reversed SDD Transaction (sddTransactionReversal)
  • Mandate (mandate)

1. Notification scenario types

Automatically notify your customers and alert your colleagues when certain events occur on your CentralPay Merchant profile: receipt of a transfer, customer dispute, payment failure, etc.

You control the content of each notification using custom templates and define a delivery method by email, by SMS, or by JSON. This automates the reconciliation of your collections, customer notifications, and even updates to your information system.

2. Configuring notification templates

2.1. Template configuration

To start configuring your notifications, you must create your communication templates (email, SMS, or hook) by filling in the requested elements, such as the email subject, the sender name and email address, the message body, etc.

You can insert dynamic elements (tags) into the message body by typing the « # » character, which will display the list of tags available for the selected notification scenario type.

Please note: if you use email notifications, please ask us to provide our SPF and DKIM keys so that you can authorize CentralPay to send emails from your domain.

For SMS, please calculate the number of characters: you will be billed for one SMS per 160 characters (including spaces).

Access to email template settings:

Recette Merchant Portal
Production Merchant Portal

Access to SMS template settings:

Recette Merchant Portal
Production Merchant Portal

Access to hook template settings:

Recette Merchant Portal
Production Merchant Portal

2.2. Configuring the header and footer for email templates

When creating an email template, a « header » and a « footer » must be created. For example, you can add your logo in the header and your contact details or legal notices in the footer.

Access to email header settings:

Recette Merchant Portal
Production Merchant Portal

Access to email footer settings:

Recette Merchant Portal
Production Merchant Portal

3. Configuring notification scenarios

To specify to the platform the sending conditions and recipients for your notifications, you must create a scenario that includes one or more sending rules.

After choosing the desired scenario type, you can create a sending rule. This rule is split into two parts: « WHEN » defines the event that triggers the notification, while « THEN » lets you choose the actions that will be performed when the event occurs.

Access to notification scenario settings:

Recette Merchant Portal
Production Merchant Portal

3.1. In the « WHEN » section:

  • Type « # » to view all attributes available for your scenario
  • Use logical operators to build your rule:
    • For strings (must be enclosed in quotation marks «  »):
      • = (equals)
      • != (not equal to)
      • in (in the following)
      • not in (not in the following)
    • For numbers (note: amounts must be entered in cents):
      • = (equals)
      • != (not equal to)
      • < (less than)
      • <= (less than or equal to)
      • in (in the following)
      • not in (not in the following)
    • For booleans (true/false statements):
      • = (equals)
      • != (not equal to)
  • You can use conditions to complete your rule:
    • AND (to add another activation condition)
    • OR (to add another activation possibility)

It is possible to set priorities by placing parentheses around conditions. If you use AND and OR in the same rule, you must set priorities. If you use AND multiple times or OR multiple times, you must also prioritize each part.

Rule examples:

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

Before you can save a rule, you must first test it using the « test » button. This verifies that your rule is grammatically correct. Please note: this does not guarantee that your rule matches what you intended to do.

3.2. In the « THEN » section:

« THEN » lets you choose the recipient and the template used for the notification. You only have access to templates that match the required template type (SMS, Email, Hook) and that match the selected scenario type (card transaction, payment request, refund, etc.).

Anti-fraud services

1. Organization of anti-fraud services

Anti-fraud services are segmented into 4 tools:

  • Whitelist
    The purpose of the « whitelist » is to make the application of a transaction acceptance rule selective. It becomes inoperative for identified customers, VIPs, or trusted customers who are included in a « whitelist ». « Whitelists » apply to customer-specific data, such as their bank card number or IP address. This feature makes it possible to be less restrictive for certain user populations.
  • Blacklist
    The « blacklist » service makes it possible to refuse payments. As with « whitelists », « blacklists » apply to data specific to the cardholder (card, IP, phone, email).
  • Transaction acceptance rules
    This tool makes it possible to build the specific rules that define the conditions for accepting a payment.
  • Anti-fraud scoring
    The scoring service detects potentially fraudulent transactions based on cross-analysis of multiple payment-related data points.

The transaction processing phases are always executed in this order.

If the input data meets all the conditions of the defined « whitelist », the « blacklist » service will not be executed and the transaction will be processed normally.

If the input data meets one of the conditions of the defined « blacklist » and is not included in the « whitelist » service, the transaction will be refused and the « acceptance rule » service will not be executed. Each service is executed top-down with respect to the CentralPay actor hierarchy, which means that a platform can apply its anti-fraud service settings to its merchants, but the reverse is not possible.

2. Fraud scoring tool

CentralPay relies on a fraud detection service based on machine learning algorithms.

This predictive engine is built from a large sample of data provided by CentralPay in JSON format and sourced from transaction, refund, dispute data.

This service relies on behavioral classification linked to the merchant’s business sector.

The engine returns an action and a score. The action instructs the payment service to accept or refuse the transaction.

The score classifies the risk level by providing a percentage probability of fraud. This score is then interpreted in the rules engine.

The score enables the merchant and the algorithm to interact together to improve.

Scores are classified as follows:

  • From 0 to 19 = low risk
    Transaction accepted
    No action
  • From 20 to 59 = medium risk
    Transaction accepted
    Action: Send an event with score details for manual review and learning
  • +60 = high risk
    Transaction refused
    Action: Send an event with score details for manual review and learning

This fraud exposure analysis service analyzes the fraud risk exposure context of each transaction. This service returns a score that makes it possible to automatically process the expected response in the rules engine.

The score is based on cross-analysis of the following data:

  • IP risk index
  • Proxy detection
  • TOR network detection
  • IP address verification
  • Confidence factors
  • Email checks
  • Address & phone checks
  • High-risk shipping address
  • IP address geolocation
  • Identification of the devices used
  • Email address
  • Browser type
  • Country mismatches
  • Shipping address distance
  • Billing address distance
  • Email domain
  • Time
  • Order amount
  • Country
  • Phone number
  • IP owner
  • Email owner
  • Card address verification

3. Whitelists and blacklists

3.1. Whitelist

The purpose of the « whitelist » is to make the application of an acceptance rule selective. This rule becomes inoperative for identified customers, VIPs, or trusted customers who are included in a « whitelist ».

The anti-fraud service then moves on to the next step.

« Whitelists » apply to customer-specific data, such as their bank card number or IP address. This feature makes it possible to be less restrictive for a user population.

3.2. Blacklist

The « blacklist » step makes it possible to refuse payments.

As with « whitelists », « blacklists » apply to data specific to the cardholder:

  • Country
  • Geographic regions
  • Card numbers
  • Phone numbers
  • Email
  • IP addresses
  • IBAN

4. Transaction acceptance rules

The acceptance rules engine is a powerful, modular application component that makes it possible to adapt the processing behavior to be applied to each transaction, such as:

  • Allow
  • Refuse
  • Alert

This service therefore makes it possible to define actions to be performed on each transaction from a wide list of available attributes: fraud score, cardholder location, total sales amount over 7 or 30 days, VIP whitelist customer, specific parameter provided by the merchant…

An acceptance rule is a logical condition. It makes it possible to authorize, restrict, and/or prohibit transactions.
A rule consists of 4 elements: the action, the attributes, the operators, the values.

The syntax of a rule is as follows: « Action » « if » « Attribute » « Comparison operator » « Comparison value »

Example:

REFUSE if card_country != 'FRA'

The rule shown in this example makes it possible to automatically refuse payments when the card country is not France.
The grammar syntax chosen by the platform for its acceptance engine is very similar to SQL syntax (used to interact with databases).

4.1. Available actions

  • ALLOW
    Allows the payment
  • REFUSE
    Refuses the payment
  • ALERT
    Sends a « webhook » notification for the associated transaction

4.2. Available attributes

By typing « # », the available attributes are displayed.

In a rule, an attribute is always followed by a comparison operator.

List of attributes:

AttributeDescriptionValue typeExample
#always None
#transactions[_état][_entité] [_temporalité]Transaction count quota [state] [entity] [time period]Integers
#transactions_amount[_état] [_entité][_temporalité]Transaction amount quota [state] [entity] [time period]Integers
#amountTransaction amount in centimesInteger#amount > 100
#card_countryCard issuing countryString
ISO 3166-1 alpha-3
#card_country IN (‘FRA’, ‘USA’, ‘BEL’, ‘DEU’)
#card_establishmentCard issuer
#card_productCard type‘gold’, ‘platinium’
#card_product_typeCard type (personal or corporate)CONSUMER CORPORATE#card_product_type = ‘CONSUMER’
#card_regionCard issuing region‘ASIA_PACIFIC »EUROPE »LATIN_AMERICA »MIDDLE_EAST_AND_AFRICA »USA_AND_CANADA »ANTARCTIQUE »UNKNOWN’#card_region NOT IN (‘ASIA_PACIFIC’, ‘LATIN_AMERICA’)
#commercial_brandCard brandVISA MASTERCARD AMEX OTHER#commercial_brand != ‘VISA’
#currencyTransaction currencyString
ISO 4217
#currency = ‘EUR’
#ip_countryIP address countryString
ISO 3166-1 alpha-3
#ip_country IN (‘FRA’, ‘USA’, ‘BEL’, ‘DEU’)
#ip_regionIP address region‘ASIA_PACIFIC »EUROPE »LATIN_AMERICA »MIDDLE_EAST_AND_AFRICA »USA_AND_CANADA »ANTARCTIQUE »UNKNOWN’#card_region NOT IN (‘ASIA_PACIFIC’, ‘LATIN_AMERICA’)
#is_anonymous_ipIs an anonymous IPTRUE | FALSE#is_anonymous_ip = TRUE
#is_three_d_secureIs a 3D-Secure transactionTRUE | FALSE#is_three_d_secure = TRUE
#payout_amountPayout amountInteger#payout_amount > 100
#payout_currencyPayout currencyString
ISO 4217
#payout_currency = ‘EUR’
#risk_scoreAnti-fraud scoreDouble#risk_score > 2,34
#custom_acceptance_data[‘key’] = ‘value’custom fieldkey : Regex [a-zA-Z0-9_-]value: Regex [a-zA-Z0-9_-]#custom_acceptance_data[‘product_category’] = ‘high’

In the case of custom_acceptance_data[‘key’] = ‘value’, for it to be taken into account, the exact same field must be included in the request for the targeted object.

Logical operators and parentheses:

Logical operators AND and OR

The syntax used to define rules makes it possible to create multiple conditions within the same rule. The conditions will remain defined in the same way, with the only difference being that a keyword will be placed between the conditions.

The keywords are and and or. They define how the rules engine will interpret the sequence of these rules. « AND » corresponds to inclusion and « OR » to exclusion.

Example:

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

The previous example allows payments whose amount is less than 10 AND whose card is French. If one or the other of the defined conditions is not met, the action will not be executed.

Example:

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

The previous example allows payments whose amount is less than 10 OR whose card is French. If one or the other of the defined conditions is met, the action will be executed.

Parentheses

Using parentheses when defining a multi-condition rule makes it possible to define condition blocks and the priorities between these blocks. The principle is the same as for priorities in mathematical operators.

Example:

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

In the previous example, the rules engine will first interpret the block (#card_country = ‘FRA’ or #currency = ‘EUR’). That is, the payment will be allowed if (the card is French or the currency is the euro), AND the amount is less than 10.

Rule execution order

Rules are executed in an order to be defined. This order is important because as soon as a transaction meets the criteria of a rule, the following rules will not be processed.

Rules are executed in the display order of the list in the interface.
A position indicator is displayed in each list. To change a rule’s position, simply drag it to the desired position.

Rule examples:

ALLOW if #amount < 1000 and #transactions_amount_daily < 10000

This example allows transactions whose amount is less than 10 if the sum of the day’s transaction amounts is less than 100.

REFUSE if #risk_score > 3 or (#ip_regions = 'ASIA_PACIFIC' and #card_region = 'ASIA_ PACIFIC')

This rule blocks payments if the risk score exceeds 3 or if the IP used and the card issuing region correspond to the ‘ASIA_PACIFIC’ zone.

THREE_D_SECURE if #card_country NOT IN ('FRA', 'USA', 'GBR') 

This rule requires a 3D Secure transaction if the card country is not France, the United States, or Great Britain.

ALLOW (#amount < 10000 and #transactions_amount_daily < 100000) or (#currency IN ('EUR', 'USD') and #transactions_amount_monthly < 1000000)

This previous example ALLOWS payments IF the amount is LESS THAN 100 AND the sum of the day’s transaction amounts is LESS THAN 1000 OR the currency is € or $ AND the sum of the month’s transaction amounts is LESS THAN 10,000.

The logical operators « AND » and « OR » are only syntactically correct in lowercase.

4.3. Available comparison operators

  • = (equals)
  • != (not equal to)
  • < (less than)
  • <= (less than or equal to)
  • in (in the following)
  • not in (not in the following)

The comparison operators = , != , > , < , >= and <= must be followed by a value.

The IN and NOT IN operators are followed by a list of comparison values.
A list of values is enclosed in parentheses, and the values inside the list are separated by commas.

Example:

REFUSE if #currency NOT IN ('EUR', 'USD', 'GBP', 'CHF')

The example shown above makes it possible to refuse all payments whose currency is not the Euro, the US Dollar, the Pound Sterling, or the Swiss Franc.

This syntax avoids writing multiple rules or multiple conditions within the same rule.

4.4. Available values:

Depending on the value type, the syntax used to define the value will not be the same:

  • Integers (numeric value without decimals): Standard syntax (e.g., 100)
  • Doubles (numeric value with decimals): The value is defined with a dot as the decimal separator (e.g., 12.32)
  • String: The value is defined between single quotes (e.g., ‘FRA’)
  • Booleans: The value is true or false (e.g., false)
ℹ️ "Amount" values must be entered in centimes (e.g., for €10, enter 1000).

4.5. Logical operators:

The available operators are AND and OR. They define how the rules engine will interpret the sequence of these rules. « AND » enables inclusion, while « OR » enables exclusion.

Example:

REFUSE if #amount < 1000 and #card_country != 'FRA'

The example shown above makes it possible to refuse payments whose amount is less than €10 AND whose card is not French. If one or the other of the defined conditions is not met, the action will not be executed.

Outgoing payment

Outgoing payouts are transfers issued from your CentralPay payment account to the associated bank account.

They can be carried out manually from the Merchant Portal or via the Payment API, or automated according to the frequency defined in your payout settings.

From the Merchant Portal, only account-holder user profiles (known as « Legal ») can configure and execute payouts.

1. Payout methods

1.1. Automatic payout

The account holder can set the frequency of the automatic payout using three options:

  • Daily
  • Weekly: choose the day of the week (e.g., every Tuesday)
  • Monthly: choose the day of the month (e.g., the 5th of the month)

The automatic payout service executes each transfer at 01:00 on the selected day, based on the fonds disponibles (AVAILABLE) in the payment account.

Example of a weekly payout scheduled on Tuesday:
CentralPay will create the transfer on Tuesday morning using the funds available in the payment account up to 01:00.
ℹ️ In the case of a daily payout, all available funds are transferred each day to your bank account. 
Your CentralPay account balance is therefore zero at the start of the day.
If you need to issue customer refunds, they can be processed from early afternoon (around 2:00 PM), once the day’s transaction funds have been credited by the issuing banks.
An upcoming enhancement will allow automatic payouts to be deferred by one or more days in order to keep funds available while maintaining consistent accounting visibility. Contact Support if you are affected.

Matching for automatic payouts

Each automatic payout is linked to the detailed list of transactions included in the transfer. This feature enables automatic matching between collected transactions and the corresponding payout.

The transaction details for a payout can be accessed from Merchant Portal Administration My account Payouts by selecting the desired payout.

The first automatic payout does not yet include details, as it initializes the matching system. Subsequent payouts include the full list of the relevant transactions.

1.2. Manual payout (via Merchant Portal or API)

A payout can be executed manually from the Merchant Portal or via the Payment API. The payout amount can be set freely, up to the limit of the funds available in the account.

Payout orders placed before 05:00 are executed immediately. Those created after 05:00 are executed the next day at 05:00.

2. Identifying transactions linked to each payout

Payout matching is a Merchant Portal feature that links each automatic payout to the detailed list of transactions included in that payout.

Scope: matching applies exclusively to automatic payouts. Manual payouts do not have this automatic association.

Detail contents: list of transactions corresponding to the payout, including the amounts, value dates, and references required for accounting reconciliation.

2.1. Access the details of an automatic payout

From Merchant Portal Administration My account Payouts :

  • Select the relevant payout from the list.
  • Open the payout details to display the associated transactions.
  • Use the Export button to download the data if needed.

Or, from Merchant Portal Account My transactions :

  • Filter by Type = Outgoing payout or by Value date.
  • In the payout’s Actions column, click the arrow, then View payout transactions.
ℹ️ The first automatic payout does not include details: it is used to initialize matching.
Subsequent automatic payouts include the full list of associated transactions.

2. Funds availability

Payouts include only the fonds disponibles (AVAILABLE) in the payment account. Funds from a card transaction become available at D+2.

Example:
A card transaction made on Monday appears as "Pending" on Monday, becomes "Available" on Tuesday evening, the automatic payout is executed on Wednesday at 01:00, and the SEPA transfer is credited to the bank account on Thursday.
Funds availability diagram
ℹ️ The EscrowDate setting may affect the date on which a transaction’s funds become available (specific to partners/agents).

3. Creating a manual payout

3.1. From the Merchant Portal

Only account-holder users (« Legal ») or users with an administrator role (« Natural Admin ») can create a manual payout from the Merchant Portal.

From Merchant Portal Administration My account Payouts :

  • Click External transfers.
  • Select the sending account.
  • Enter the payout amount and the recipient IBAN.
  • Click Confirm transfer.

Once validated, the payout is executed according to the timeframes mentioned above.

Recette Merchant Portal – Outgoing payouts
Production Merchant Portal – Outgoing payouts

3.2. From the API

Creating a manual payout can also be done via the Payment API. For technical details, see the developer documentation: Developers Outgoing payout .

4. Foreign-currency payouts via the SWIFT network

International transfers are executed via the SWIFT network, unlike SEPA transfers used within the European area. This service allows payouts in euros or other currencies to accounts located outside the SEPA area.

If the beneficiary account is not reachable via SEPA, or if it is a foreign-currency account, payouts can be made via SWIFT. This service is enabled on request through your CentralPay contact.

ℹ️ SWIFT transfers incur higher fees than SEPA transfers. It is possible to configure a threshold of available funds before automatic payouts are triggered. 

5. Returns, statuses, and webhooks

To track the payout lifecycle and automate processing:

  • View the payout status documentation ➝
  • View the payout webhook documentation ➝

File Import

CentralPay File Import Service

The File Import Service allows you to manage CentralPay operations in bulk by uploading simple CSV files instead of calling the API line by line.

To date, two types of files are supported:

  • Customer files: to create your customer profiles (customers) in CentralPay, optionally with a bank account (BankAccount) and/or a SEPA direct debit mandate (SDD).
  • Operation files: to initiate SEPA direct debits (SDD) on your customer profiles and/or outgoing SEPA credit transfers (SCT) to your customer profiles’ bank accounts.

For each file uploaded, CentralPay sends you report files indicating, line by line, what was accepted, refused, or rejected.

1. Who is this service for?

This service is designed for Merchants who process large volumes of operations and prefer file exchange over real-time API integration: recurring direct debit collections, grouped outgoing payouts, creation or migration of a customer/SEPA mandate repository, etc.

The exchange occurs asynchronously: you upload your files, CentralPay processes them, then makes the reports available to you.

2. Prerequisites

2.1 Common Prerequisites

  • An active CentralPay merchant account with access to the Merchant Portal.
  • Your CentralPay merchant ID (UUID). The first 8 characters of this UUID are used to name your files (see section 5.1 Rules common to all files).
  • The setup of a secure exchange channel (SFTP, see section 4. SFTP Setup) unless another channel has been agreed upon with your CentralPay contact.
  • A testing phase with the CentralPay integration team before going live.

2.2 Prerequisites for outgoing SEPA credit transfer operations (CREDIT / SCT)

  • The outgoing SEPA credit transfer service must be activated on your merchant profile.

2.3 Prerequisites for SEPA direct debit operations (DEBIT / SDD)

Direct debits require additional prerequisites, to be validated before any first submission:

  • Your ICS (SEPA Creditor Identifier) must be declared in your CentralPay merchant profile (procedure carried out with your CentralPay contact).
  • The SEPA direct debit service must be activated on your merchant profile (procedure carried out with your CentralPay contact).
  • Validation of Mandate Management Mode Compliance. In this integration process, CentralPay does not collect the mandate signature: you transmit, in the Customer file, the mandate reference (MANDATE_RUM) and its signature date (MANDATE_SIGN_DATE). Consequently:
    • Your CentralPay contact must validate the principle upstream of mandate management via this method, whether it concerns the migration of existing mandates or newly collected mandates by you.
    • You remain responsible for the collection, legal validity, and retention of signed mandates, as well as for providing prior information to your customers (pre-notification, UMR, ICS).
Without these prerequisites, files containing direct debits cannot be processed, whether in the Sandbox or LIVE environment.

3. How does the processing cycle work?

  1. Upload. You upload your CSV files (Customer and/or Operation) to the SFTP, in the upload folder.
  2. Technical Control (ACK). CentralPay checks each line (format, mandatory fields, consistency) and sends you an .ACK file: each line is marked ACCEPTED or REFUSED, with the error reason if applicable.
  3. Bank processing. Technically valid lines are transmitted to the SEPA banking circuits.
  4. Settlement Report (SET). For operations, CentralPay produces .SET files indicating the settlement progress (ACCEPTED / PENDING / REFUSED) once bank feedback is available.
  5. Post-settlement Rejections (RET). In case of a SEPA rejection occurring after settlement (e.g., a customer dispute), CentralPay produces an .RET file detailing the reason and the returned amount.
Customer files do not generate a bank report (.SET / .RET): only an .ACK is returned.

4. SFTP Setup

SFTP is the recommended exchange channel. It ensures secure upload and retrieval, and allows CentralPay to automatically retrieve and process your files.

4.1 Exchange Model

The SFTP is hosted by the merchant.

CentralPay connects to your SFTP, retrieves files from an outgoing folder, and deposits reports into an incoming folder.

4.2 Folder Convention

The exchange relies on two directories:

DirectoryDirectionContent
Upload folder (named /OUT)Merchant → CentralPayYour Customer and Operation files to be processed
Return folder (named /IN)CentralPay → MerchantThe .ACK, .SET, reports .RET

4.3 Setup Steps

  1. Request activation from your CentralPay contact.
  2. Exchange access credentials: authentication via SSH key.
    • Two spaces should be created: one SFTP dedicated to testing and one dedicated to production.
    • The SFTP information (host + login) must be provided to us by email.
    • For us to connect to your SFTP, a CentralPay public key (per environment) will be communicated to you.
    • Furthermore, it is recommended to whitelist CentralPay’s IP addresses (these will be communicated to you during your integration).
  3. Use the directory structure defined previously (upload /OUT and return /IN folders).
  4. Test in the testing environment with an example file, validate the correct reception of .ACK, then switch to production.

5. Prepare your files

5.1 Rules common to all files

  • Format: CSV. The header row is mandatory in all files, both input and output.
  • Naming:
    • Customer file: <8 premiers caractères de votre UUID marchand en minucules>_CUST_<référence libre>.csv
    • Operations file: <8 premiers caractères de votre UUID marchand en minucules>_OPER_<référence libre>.csv
    • The free reference is at your discretion (often a timestamp). The full name must not exceed 100 characters.
    • Examples: c494f877_CUST_20241025110500.csv · c494f877_OPER_20241025110500.csv
  • Amounts: expressed in minor unit (euro cents) and always positive. The direction (debit/credit) is indicated by the OPERATION_TYPE column, not by the sign of the amount.
  • Column Legend in the tables below:
    • Mandatory: the line is rejected if the value is missing.
    • Optional: can be left blank.
    • Conditional: required only in the described case.

5.2 File Customer

This file creates your customer profiles. Depending on your needs, it can create in a single line: the customer profile alone, the customer + a bank account, or the customer + a bank account + an SDD mandate.

ColumnFormatStatusDescription
MERCHANT_IDUUIDMandatoryYour CentralPay merchant ID
MERCHANT_CUSTOMER_IDString(100)OptionalYour internal customer reference (must be unique). Highly recommended for reconciling your operations.
DESCRIPTIONString(256)OptionalFree field for your use
TYPEINDIVIDUAL / LEGAL_ENTITYMandatoryIndividual or legal entity
SOCIAL_REASONString(35)ConditionalRequired if TYPE = LEGAL_ENTITY (company name)
FIRST_NAMEString(35)MandatoryFirst name (of the legal representative if LEGAL_ENTITY)
LAST_NAMEString(35)MandatoryLast name (of the legal representative if LEGAL_ENTITY)
EMAILString(255)Optional
PHONEString(25)OptionalInternational format +<indicatif><numéro>
ADDRESS_LINE_1String(255)Mandatory
ADDRESS_LINE_2/3/4String(255)OptionalAddress supplements
POSTAL_CODEString(15)MandatoryAllowed characters: letters, numbers, space, hyphen
CITYString(35)Mandatory
COUNTRYISO 3166 alpha-3 codeMandatoryEx. FRA
IBANString(34)ConditionalRequired to create a bank account (thus for any future outgoing transfer or direct debit). Validated according to ISO 13616
BICString(11)ConditionalRequired with IBAN
MANDATE_RUMString(35)ConditionalRequired to create an SDD mandate. Unique Mandate Reference (UMR) of the mandate already signed on the merchant side
MANDATE_SIGN_DATEDate YYYY-MM-DDConditionalRequired to create an SDD mandate. Mandate signature date
"With or Without" Logic

➜ Customer only: fill in identity and address, leave IBAN/BIC and mandate columns blank.

➜ Customer + bank account (necessary for a future outgoing transfer): add IBAN + BIC.

➜ Customer + SDD mandate (necessary for a future SEPA direct debit): add IBAN + BIC + MANDATE_RUM + MANDATE_SIGN_DATE.

Example file Customer

Download the « Customer » .csv example file

Three customers: one individual (INDIVIDUAL, without company name) and two legal entities (LEGAL_ENTITY), each with their own bank account and SDD mandate.

Key takeaways from this example:

  • The phone number is in international format (+33..., without the initial 0).
  • For customer INDIVIDUAL, the SOCIAL_REASON field is left empty (two consecutive ;); it is only filled in for LEGAL_ENTITY.
  • Each customer has their own IBAN/BIC and their own MANDATE_RUM. The IBAN/BICs above are test credentials provided for the testing environment: replace them with your customers’ real credentials in production.

In return, the .ACK file will send you a CUSTOMER_ID (UUID) for each accepted line. Keep these identifiers: you will reuse them in your Operation files.

Columns added by CentralPay in the .ACK return file:

ColumnDescription
STATUSACCEPTED or REFUSED (no PENDING for customer files)
ERROR_CODEValued if REFUSED (e.g., INVALID_PARAMETERS)
ERROR_MESSAGETechnical detail (in English)
CUSTOMER_IDUUID of the created customer, valued if ACCEPTED (to be kept for your future operations)

5.3 File Operation

This file triggers operations on customer profiles already existing in CentralPay.

ColumnFormatStatusDescription
MERCHANT_IDUUIDMandatoryYour CentralPay merchant ID
POINT_OF_SALE_IDUUIDOptionalConcerned Point of Sale (POS). If empty, the default point of sale is used.
MERCHANT_TRANSACTION_IDString(35)OptionalYour operation reference (unique to you)
DESCRIPTIONString(140)OptionalDescription for your use
END_TO_END_IDString(35)OptionalSEPA end-to-end reference visible to the end customer.
Otherwise, it uses MERCHANT_TRANSACTION_ID
REMITTANCE_INFOString(140)OptionalSEPA label (unstructured remittance information) visible to the end customer. Otherwise, it uses DESCRIPTION
CUSTOMER_IDUUIDConditionalCentralPay customer identifier. CUSTOMER_ID or MERCHANT_CUSTOMER_ID must be provided
MERCHANT_CUSTOMER_IDString(100)ConditionalYour internal customer reference (alternative to the CUSTOMER_ID generated by CentralPay)
MANDATE_RUMString(35)OptionalTo target a specific mandate if the customer has several (if OPERATION_TYPE = DEBIT)
AMOUNTIntegerMandatoryAmount in centimes of euro; positive values only
CURRENCYISO CodeMandatoryEUR (mandatory euro currency for SEPA transfers and direct debits)
OPERATION_TYPEDEBIT / CREDITMandatoryDEBIT = SEPA direct debit (SDD)
CREDIT = outgoing SEPA credit transfer (payout)
EXPECTED_SETTLEMENT_DATEDate YYYY-MM-DDOptionalDesired settlement date. Default: J+1 business day
Choose the correct  OPERATION_TYPE

➜ DEBIT (direct debit): If you wish to debit your customer's bank account via a SEPA direct debit. Requires the customer profile to have a valid SDD mandate.

➜ CREDIT (transfer): If you wish to credit your customer's bank account via an outgoing SEPA credit transfer. Requires the customer to have a declared bank account (IBAN/BIC).

Example file Operation

Download the « Operation » .csv example file

Five operations on customers created in the previous step, referenced by their CUSTOMER_ID (the UUIDs returned in the .ACK of the Customer file): three direct debits (DEBIT) and two credit transfers (CREDIT).

Key takeaways from this example:

  • The customer is identified by their CUSTOMER_ID (stable and unique UUID). It can also be identified by your MERCHANT_CUSTOMER_ID but you must ensure its uniqueness and correct formatting.
  • MERCHANT_TRANSACTION_ID and END_TO_END_ID are unique for each operation.
  • Amounts are in centimes (4990 = 49.90 €) and are always positive; the sign ( OPERATION_TYPE ) indicates whether the transaction is a debit or a credit.
  • REMITTANCE_INFO carries an explicit label, visible to the end customer on their statement. Prioritize simple characters (SEPA standard: no accents or special characters).

Columns added by CentralPay in the return files:

In the .ACK (technical control):

ColumnDescription
STATUSACCEPTEDPENDING, or REFUSED
ERROR_CODEValued if REFUSED
ERROR_MESSAGETechnical detail
OPERATION_IDOperation UUID, valued if ACCEPTED (tracking key in subsequent files)

In the .SET (settlement report):

ColumnDescription
STATUSACCEPTEDPENDING, or REFUSED
ERROR_CODEValued if REFUSED (e.g., FRAUD_ALERT)
ERROR_MESSAGEBank refusal detail
SETTLEMENT_DATEValue date if ACCEPTED
OPERATION_IDOperation UUID

In the .RET (post-settlement rejection):

ColumnDescription
REASON_CODESEPA rejection code (e.g., AC04 = account closed)
REASON_MESSAGETextual detail of the rejection
RETURN_AMOUNTReturned amount (positive)
RETURN_DATERejection date
OPERATION_IDOriginal operation UUID

6. Understanding the return files

6.1 Naming of return files

Return files use the name of your original file, followed by the report type, a processing fingerprint, and a timestamp:

<nom du fichier d'origine au format csv>.<ACK|SET|RET>-<hash>-<timestamp>.csv
  • <hash> : fingerprint of the processed file (allows linking the return to the processing).
  • <timestamp> : processing timestamp.

Example:

C494F877_OPER_20241025110500.csv.ACK-098f6bcd4621d373cade4e832627b4f6-20241025112500.csv

6.2 The three levels of reporting

FileWhenWhat it tells you
.ACKImmediately upon receiptTechnical validity line by line. All lines are returned, including those refused.
.SETOnce bank feedback is available (operations only)Progress of settlement. Only lines ACCEPTED at the .ACK level are included.
.RETIn case of rejection after settlement (operations only)Subsequent SEPA rejections (e.g., customer dispute)
Indicative settlement times (business days): credit transfer (SCT) 1 to 2 days; SEPA direct debit (SDD) 3 to 5 days. A post-settlement rejection (.RET) can occur up to 8 weeks after the operation in case of dispute. 

6.3 Best practices for reconciliation

  • OPERATION_ID is the matching key between the .ACK, .SET, and .RET files of the same operation. Keep it.
  • CUSTOMER_ID (returned in the customer .ACK) is the identifier to reuse in your Operation files.
  • Systematically provide your own references (MERCHANT_CUSTOMER_ID, MERCHANT_TRANSACTION_ID) to facilitate reconciliation on your end.

7. Common errors

7.1 Technical refusals (.ACK file)

CodeMeaningAction
MISSING_COLUMNSExpected column(s) missingCheck the CSV header and structure
INVALID_PARAMETERSInvalid field valueCorrect the erroneous data (format, length, enumeration)
BAD_ROWMalformed lineCheck the separator and the number of columns in the line
COMPUTATION_EXCEPTIONInternal processing errorContact CentralPay support

(Non-exhaustive list. Messages are returned line by line and may concatenate multiple errors.)

7.2 Customer reconciliation anomalies

MessageMeaningAction
No customer fetch errorThe customer linked to the operation is not foundCheck the consistency of CUSTOMER_ID / MERCHANT_CUSTOMER_ID. If necessary, upload a Customer file for missing customers.
Too much customer found for merchantMultiple customers share the same MERCHANT_CUSTOMER_IDEnsure the uniqueness of your customer reference; contact us to arbitrate (merge / update).
Unexpected service responseCentralPay internal errorContact CentralPay support

8. Points of attention

  • The header row is mandatory in each file.
  • Amounts are in centimes and are always positive.
  • An operation may appear in several successive .SET if its status changes (PENDING → ACCEPTED/REFUSED).
  • Maintain the OPERATION_ID / CUSTOMER_ID mapping between your systems and CentralPay.
  • Any initial setup is subject to a testing phase with the integration team before production.

9. Getting Started

  1. Check your prerequisites, especially the ICS chain + SDD service + Compliance validation if you plan direct debits.
  2. Request SFTP channel activation from your CentralPay contact.
  3. Prepare an example file and validate it in the testing environment.
  4. Go live.

For any questions regarding setup, contact your CentralPay representative or support.

Accounting Exports

You can perform several exports of your account in CSV, EXCEL, or JSON formats from your Merchant Portal. To do this, configure your search using the available filters on the desired export page, click « Search » then « Export ». Within seconds, you will receive the file by email and can download it at any time from your Merchant Portal Export Files .

1. Accounting Export of Account Transactions

This export includes all debit and credit financial movements that have been made on your account: card authorizations, card transactions, SDD transactions, SCT transactions, transfers, payouts, CentralPay fees, etc.

You will have the details of each transaction so that you can easily reconcile it with your invoices or files.

The export contains the following data:

DesignationMeaning
wallet_idaccount identifier
wallet_nameaccount name
owner_namecompany name
value_datetransaction value date
operation_idCentralPay transaction reference
operation_datetimetransaction date
source_typetransaction type
source_idreference linking multiple transactions
naturetransaction nature
debit_amountamount of « debit » type transactions
credit_amountamount of « credit » type transactions
currencytransaction currency
custom_referencecustom transaction reference
custom_labelcustom transaction name
third_party_idtransaction recipient identifier
third_party_labeltransaction recipient name
third_party_countrytransaction recipient country
payout_numberpayout number

Access:

Recette Merchant Portal – Transactions
Production Merchant Portal – Transactions

2. Download the Monthly Financial Report

At the beginning of each month, in addition to the invoice, an account statement is generated and made available in the secure area of your account ( My Accounts Account Statements ). It presents the total credit and debit amounts made, including a breakdown « of which funds » and « of which fees » to distinguish the nature.

We offer two types of statements: detailed or summary.
- The detailed statement shows all transactions for the selected period.
⚠️ If you have a large number of transactions, they may not appear on the statement. In this case, we recommend performing an export in CSV, Excel, or JSON format.
- The summary statement groups your transactions by day and by transaction type, for the selected period.
To properly understand your detailed account statement:

A) The total amount of debits on your account for the given period:
– of which funds: all debits of « fund » nature (outgoing transfers, etc.)
– of which fees: all debits of « fee » nature (CentralPay fees, etc.)

B) The total amount of credits on your account for the given period:
– of which funds: all deposits to your account (= revenue).
– of which fees: all transactions to offset transactions or adjust fees (fee refunds, etc.).

C) Closing balance of the month preceding the statement.

D) Closing balance of the month of the downloaded statement.

Access:

Recette Merchant Portal – Documents
Production Merchant Portal – Documents

Data Exports

You can perform several exports of your account in CSV, EXCEL, or JSON formats from your Merchant Portal. To do this, configure your search using the filters available on the desired export page, click « Search » then « Export ». Within seconds, you will receive the file by email and can download it at any time from your Merchant Portal Account Exports

1. Card Transaction Export

This export allows you to obtain the details of card transactions you have processed over a given period.
This export simplifies the reading of your card transactions by aggregating authorization and debit operations, and presents additional data specific to card transactions.

The export contains the following data:

DesignationMeaning
transaction_creation_datecreation date
transaction_idtransaction ID
transaction_amountamount
transaction_currencycurrency
transaction_payout_amountsettlement currency value
transaction_payout_currencysettlement currency
transaction_commision_amounttransaction fees
transaction_commision_currencyfee currency
transaction_fee_amountfixed fees per transaction
transaction_3ds3DS (0=no, 1=yes)
transaction_descriptionmerchant-defined description
transaction_sourceEC E-commerce, DP Deposit, MO Mail order
transaction_bank_codebank authorization response
transaction_statustransaction status
transaction_authorization_statusauthorization status
transaction_authorization_codeauthorization code
transaction_capture_statuscapture status
transaction_capture_datecapture date
transaction_capture_amountcapture amount
merchant_transaction_idmerchant transaction ID
point_of_sale_idpoint of sale ID
point_of_sale_namepoint of sale name
merchant_idmerchant ID
merchant_namemerchant name
dispute_amountdispute amount
dispute_currencydispute currency
dispute_datedispute date
refund_amountrefund amount
refund_currencyrefund currency
refund_daterefund date
card_idpayment card ID
card_first6first 6 digits of card
card_last4last 4 digits of card
card_cardholder_namecardholder name
card_cardholder_emailcardholder email
card_typecard type (credit/debit/prepaid)
card_productcard product name (Infinite, Gold…)
card_product_typeconsumer or corporate card
card_commercial_brandcard network (VISA/Mastercard/CB)
card_regioncard origin continent
card_countrycard origin country
card_establishment_namename of card-issuing institution
customer_idcustomer ID
end_user_ipuser IP
end_user_languageuser language
browser_user_agentuser browser
receipt_emailuser reception email
clearing_numberclearing number
merchant_category_codemerchant activity

Access:

Recette Merchant Portal – Transactions
Production Merchant Portal – Transactions

2. Card Refund Export

This export allows you to obtain the details of card refunds you have processed over a given period.

Access:

Recette Merchant Portal – Card Refunds
Production Merchant Portal – Card Refunds

3. Card Transaction Disputes Export

This export allows you to obtain the details of card transaction disputes/chargebacks you have received over a given period.

Access:

Recette Merchant Portal – Chargebacks
Production Merchant Portal – Chargebacks

4. Subscriptions Export (Cards and SDD)

This export allows you to obtain the details of card and SDD subscriptions you have processed over a given period.

Access:

Recette Merchant Portal – Subscriptions
Production Merchant Portal – Subscriptions

Webhooks

Webhooks let you send HTTP notifications to the URLs of your choice based on events (events) that occur on your CentralPay Merchant profile. These events correspond to the creation, data change, or status change of a CentralPay API object.

The service therefore lets you notify your information system in real time as soon as an event occurs on your CentralPay Merchant profile. For example, a successful or failed transaction, the creation of a new subscription (subscription), a new Customer (customer), the receipt of an unpaid payment…

Webhooks are grouped into two categories:

  • Related to Points of Sale (« POS »)
  • Related to « Accounts »

The remote server must confirm successful receipt of the request by returning a 2XX code. Otherwise, a new request will be sent every 5 min for 2h.

To ensure hooks are received correctly, we recommend using the Webhook Site service. Enter the URL provided by the site and the email address, then run your tests. Once you are satisfied with the hook responses, you can replace the email address and the URL with your own and run a new test.

See the list of webhooks in: Developers Webhook notifications

Credit

See more about Credit

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

Credit

See more about Credit

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

Points de vente

Les points de vente (Point of Sales ou POS) sont la représentation de vos différents sites web, boutiques, ou équipes de vente. Ils permettent de segmenter les opérations de vos comptes CentralPay à des fins :

  • Techniques : Vous pouvez réaliser des paramétrages différents par point de vente (notifications clients, notifications internes, nom expéditeur des emails de confirmation, logo affiché dans la page de paiement…)
  • Administratives : Vous pouvez limiter les droits de consultation ou de modification de vos profils utilisateurs à certains points de ventes
  • Comptables : Vous pouvez filtrer les opérations par point de vente dans votre portail Marchand ou dans vos exports de données

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

Recette Portail Marchand – Points de vente
Production Portail Marchand – Points de vente

1. Paramétrages

Les points de vente comprennent un certain nombre de paramétrages obligatoires :

  • Paramètres généraux
    • Nom : Nom du point de vente (visible par vos clients)
    • URL du site : S’il s’agit d’un site e-commerce, renseignez l’URL de ce dernier. Sinon, renseigner l’URL de votre site vitrine.
    • Pays du point de vente

  • Configuration
    • Type technique : Sélectionnez « Vente à distance »
    • Utilisateurs API : Sélectionnez les utilisateurs API ayant un droit d’accès à ce point de vente
    • Contrats : Sélectionnez le contrat VAD carte qui a été paramétré pour votre profil marchand (en règle générale, vous n’aurez qu’un seul contrat à disposition)
    • Contrat par défaut : Sélectionnez le contrat VAD carte qui sera utilisé par défaut (en règle générale, vous n’aurez qu’un seul contrat à disposition)
    • Viban prioritaire : Si vous souhaitez que les IBAN Virtuels affichés dans les demandes de paiement soient ceux des Customers, alors sélectionnez « Client ». Si vous préférez afficher des IBAN Virtuels dédiés à chaque demande de paiement, alors sélectionnez « SCT ». Si besoin d’informations complémentaires, consultez notre rubrique sur les IBAN Virtuel

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

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

  • Emails de confirmation
    • Cocher « Activer l’email de confirmation de paiement » : En cochant cette case, vous activez l’envoi d’un email à vos clients lorsqu’ils réalisent un paiement par carte. Il s’agit d’un email standardisé non modifiable contenant un récapitulatif du paiement (raison sociale de votre profil marchand, nom de votre point de vente, date du paiement, identifiant de la transaction CentralPay, référence marchand de la transaction, description marchand de la transaction, code d’autorisation du paiement, marque de la carte, 6 premiers et 4 derniers chiffres de la carte, montant de la transaction, état de la transaction). La langue et le pied de page de l’email peuvent être paramétrés depuis le Portail Marchand Configuration Email confirmation paiement
    • Email de l’expéditeur : Si vous avez coché la case « Activer l’email de confirmation de paiement », vous pouvez personnaliser l’adresse expéditeur en utilisant l’une de vos adresses email (par exemple : no-reply@mondomaine.com). Attention, veillez à nous demander de vous communiquer nos clés SPF et DKIM afin que vous puissiez autoriser CentralPay à envoyer des emails depuis votre domaine
    • Nom de l’expéditeur : Si vous avez coché la case « Activer l’email de confirmation de paiement », vous pouvez personnaliser le nom de l’expéditeur (par exemple : MonEntreprise)
    • Coche « Recevoir une copie de la confirmation de paiement » : En cochant cette case, vous activez l’envoi d’une copie de l’email adressé à vos clients lorsqu’ils réalisent un paiement par carte. Cela peut vous permettre d’être informé facilement par email lorsqu’un client réalise un paiement
    • Email du destinataire : si vous avez coché la case « Recevoir une copie de la confirmation de paiement », vous devez renseigner l’adresse email du destinataire de cette copie

Enfin, d’autres paramètres secondaires sont disponibles :

  • OTP
    • Email de l’expéditeur OTP email : Email affiché en tant qu’expéditeur des emails de One Time Password (connexion à l’espace Administration du Portail Marchand…)
    • Nom de l’expéditeur OTP email : Nom affiché en tant qu’expéditeur des emails de One Time Password (connexion à l’espace Administration du Portail Marchand…)
    • Numéro de téléphone ou nom de l’expéditeur OTP SMS : Nom ou numéro de téléphone affiché en tant qu’expéditeur des SMS de One Time Password (validation de mandat SEPA…)

  • Paramètres de communication : Ces paramètres sont appliqués aux emails ou SMS transmettant le lien vers le formulaire de paiement d’une demande de paiement (paymentRequest). Ils s’appliquent uniquement lorsque aucun scenario n’a été configuré sur la demande paiement.
    • Expéditeur SMS : Nom du correspondant affiché sur le SMS
    • Expéditeur email : Email du correspondant affiché sur l’email
    • Nom de l’expéditeur email : Nom du correspondant affiché sur l’email
    • Adresse de réponse email : Email utilisé pour les réponses des emails envoyés (applicable prochainement)
    • Pied de page de l’email : Pied de page des emails (applicable prochainement)

Retail locations

Points of sale (Point of Sales or POS) represent your various websites, stores, or sales teams. They allow you to segment the operations of your CentralPay accounts for the following purposes:

  • Technical: You can configure different settings per point of sale (customer notifications, internal notifications, sender name for confirmation emails, logo displayed on the payment page, etc.)
  • Administrative: You can restrict viewing or editing rights for your user profiles to specific points of sale
  • Accounting: You can filter operations by point of sale in your Merchant Portal or in your data exports

When your CentralPay Merchant profile is created, a first point of sale is automatically created. You can then access your Merchant Portal to configure it or create new ones:

Recette Merchant Portal – Points of Sale
Production Merchant Portal – Points of Sale

1. Settings

Points of sale include a number of mandatory settings:

  • General Settings
    • Name: Point of sale name (visible to your customers)
    • Site URL: If this is an e-commerce site, enter its URL. Otherwise, enter the URL of your corporate website.
    • Point of sale country

  • Configuration
    • Technical type: Select « Remote sale »
    • API users: Select the API users with access rights to this point of sale
    • Contracts: Select the card VAD contract that has been configured for your merchant profile (generally, you will only have one contract available)
    • Default contract: Select the card VAD contract that will be used by default (generally, you will only have one contract available)
    • Priority Viban: If you want the Virtual IBANs displayed in payment requests to be those of the Customers, then select « Customer. » If you prefer to display Virtual IBANs dedicated to each payment request, then select « SCT. » If you need additional information, consult our section on Virtual IBANs

Other settings are not mandatory but are important for your sales process:

  • General Settings
    • Logo: Upload your company logo or one dedicated to your point of sale. It will appear on the payment page generated by payment requests
    • Merchant point of sale ID: Enter a custom reference allowing you to identify the point of sale more easily in your information systems

  • Confirmation Emails
    • Check « Enable payment confirmation email »: By checking this box, you activate the sending of an email to your customers when they make a card payment. This is a standardized, non-modifiable email containing a payment summary (legal name of your merchant profile, name of your point of sale, payment date, CentralPay transaction identifier, merchant transaction reference, merchant transaction description, payment authorization code, card brand, first 6 and last 4 digits of the card, transaction amount, transaction status). The language and footer of the email can be configured from the Merchant Portal Configuration Payment confirmation email
    • Sender email: If you have checked the « Enable payment confirmation email » box, you can customize the sender address by using one of your email addresses (for example: no-reply@mydomain.com). Please ensure you ask us to provide you with our SPF and DKIM keys so that you can authorize CentralPay to send emails from your domain
    • Sender name: If you have checked the « Enable payment confirmation email » box, you can customize the sender name (for example: MyCompany)
    • Check « Receive a copy of the payment confirmation »: By checking this box, you activate the sending of a copy of the email sent to your customers when they make a card payment. This can allow you to be easily notified by email when a customer makes a payment
    • Recipient email: If you have checked the « Receive a copy of the payment confirmation » box, you must enter the email address of the recipient of this copy

Finally, other secondary settings are available:

  • OTP
    • OTP email sender email: Email displayed as the sender of One Time Password emails (login to the Merchant Portal Administration area, etc.)
    • OTP email sender name: Name displayed as the sender of One Time Password emails (login to the Merchant Portal Administration area, etc.)
    • OTP SMS sender phone number or name: Name or phone number displayed as the sender of One Time Password SMS messages (SEPA mandate validation, etc.)

  • Communication settings: These settings are applied to emails or SMS messages transmitting the link to the payment form of a payment request (paymentRequest). They apply only when no scenario has been configured on the payment request.
    • SMS sender: Correspondent name displayed on the SMS
    • Email sender: Correspondent email displayed on the email
    • Email sender name: Correspondent name displayed on the email
    • Email reply address: Email used for replies to sent emails (coming soon)
    • Email footer: Email footer (coming soon)

Versement sortant

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

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

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

1. Modes de versement

1.1. Versement automatique

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

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

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

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

Lettrage des versements automatiques

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

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

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

1.2. Versement manuel (via Portail Marchand ou API)

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

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

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

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

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

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

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

Depuis le Portail Marchand Administration Mon compte Versements :

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

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

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

2. Disponibilité des fonds

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

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

3. Création d’un versement manuel

3.1. Depuis le Portail Marchand

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

Depuis le Portail Marchand Administration Mon compte Versements :

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

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

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

3.2. Depuis l’API

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

4. Versements en devises via le réseau SWIFT

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

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

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

5. Retours, statuts et webhooks

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

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

Outgoing payment

Outgoing payouts are transfers issued from your CentralPay payment account to the associated bank account.

They can be carried out manually from the Merchant Portal or via the Payment API, or automated according to the frequency defined in your payout settings.

From the Merchant Portal, only account-holder user profiles (known as « Legal ») can configure and execute payouts.

1. Payout methods

1.1. Automatic payout

The account holder can set the frequency of the automatic payout using three options:

  • Daily
  • Weekly: choose the day of the week (e.g., every Tuesday)
  • Monthly: choose the day of the month (e.g., the 5th of the month)

The automatic payout service executes each transfer at 01:00 on the selected day, based on the fonds disponibles (AVAILABLE) in the payment account.

Example of a weekly payout scheduled on Tuesday:
CentralPay will create the transfer on Tuesday morning using the funds available in the payment account up to 01:00.
ℹ️ In the case of a daily payout, all available funds are transferred each day to your bank account. 
Your CentralPay account balance is therefore zero at the start of the day.
If you need to issue customer refunds, they can be processed from early afternoon (around 2:00 PM), once the day’s transaction funds have been credited by the issuing banks.
An upcoming enhancement will allow automatic payouts to be deferred by one or more days in order to keep funds available while maintaining consistent accounting visibility. Contact Support if you are affected.

Matching for automatic payouts

Each automatic payout is linked to the detailed list of transactions included in the transfer. This feature enables automatic matching between collected transactions and the corresponding payout.

The transaction details for a payout can be accessed from Merchant Portal Administration My account Payouts by selecting the desired payout.

The first automatic payout does not yet include details, as it initializes the matching system. Subsequent payouts include the full list of the relevant transactions.

1.2. Manual payout (via Merchant Portal or API)

A payout can be executed manually from the Merchant Portal or via the Payment API. The payout amount can be set freely, up to the limit of the funds available in the account.

Payout orders placed before 05:00 are executed immediately. Those created after 05:00 are executed the next day at 05:00.

2. Identifying transactions linked to each payout

Payout matching is a Merchant Portal feature that links each automatic payout to the detailed list of transactions included in that payout.

Scope: matching applies exclusively to automatic payouts. Manual payouts do not have this automatic association.

Detail contents: list of transactions corresponding to the payout, including the amounts, value dates, and references required for accounting reconciliation.

2.1. Access the details of an automatic payout

From Merchant Portal Administration My account Payouts :

  • Select the relevant payout from the list.
  • Open the payout details to display the associated transactions.
  • Use the Export button to download the data if needed.

Or, from Merchant Portal Account My transactions :

  • Filter by Type = Outgoing payout or by Value date.
  • In the payout’s Actions column, click the arrow, then View payout transactions.
ℹ️ The first automatic payout does not include details: it is used to initialize matching.
Subsequent automatic payouts include the full list of associated transactions.

2. Funds availability

Payouts include only the fonds disponibles (AVAILABLE) in the payment account. Funds from a card transaction become available at D+2.

Example:
A card transaction made on Monday appears as "Pending" on Monday, becomes "Available" on Tuesday evening, the automatic payout is executed on Wednesday at 01:00, and the SEPA transfer is credited to the bank account on Thursday.
Funds availability diagram
ℹ️ The EscrowDate setting may affect the date on which a transaction’s funds become available (specific to partners/agents).

3. Creating a manual payout

3.1. From the Merchant Portal

Only account-holder users (« Legal ») or users with an administrator role (« Natural Admin ») can create a manual payout from the Merchant Portal.

From Merchant Portal Administration My account Payouts :

  • Click External transfers.
  • Select the sending account.
  • Enter the payout amount and the recipient IBAN.
  • Click Confirm transfer.

Once validated, the payout is executed according to the timeframes mentioned above.

Recette Merchant Portal – Outgoing payouts
Production Merchant Portal – Outgoing payouts

3.2. From the API

Creating a manual payout can also be done via the Payment API. For technical details, see the developer documentation: Developers Outgoing payout .

4. Foreign-currency payouts via the SWIFT network

International transfers are executed via the SWIFT network, unlike SEPA transfers used within the European area. This service allows payouts in euros or other currencies to accounts located outside the SEPA area.

If the beneficiary account is not reachable via SEPA, or if it is a foreign-currency account, payouts can be made via SWIFT. This service is enabled on request through your CentralPay contact.

ℹ️ SWIFT transfers incur higher fees than SEPA transfers. It is possible to configure a threshold of available funds before automatic payouts are triggered. 

5. Returns, statuses, and webhooks

To track the payout lifecycle and automate processing:

  • View the payout status documentation ➝
  • View the payout webhook documentation ➝

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

Payment page (SmartForm)

The payment page (also called SmartForm) is a page hosted and secured by CentralPay for collecting customer data and payment details. Generated via the payment request service, it allows your customers to view the details of this request (amount, order reference, etc.) and select an authorized payment method before proceeding to the payment step.

1. Page configuration

You can create one or more page templates to customize your payment flow. Below is the list of configurable elements on the page:

LabelDefinition
NomPage template name
Template par défautCheckbox to define whether this template should be applied by default (payment requests created without a template will use this one)
Forcer la création du CustomerCheckbox to systematically force the creation of a Customer when creating the payment request. The Customer creation parameter specified on payment requests will be ignored. Note: CentralPay will not create a new Customer if their email or phone number is already used by another Customer, and will assign the request to that existing Customer
URL de redirectionRedirect URL after payment. Fixed URL; however, you can choose to populate this value dynamically via API for each PaymentRequest if needed
Délais de redirectionRedirect delay to the redirect URL after payment. Empty field: no redirect, 0: immediate redirect, other value: number of seconds before redirect
URL d'annulationRedirect URL in case of cancellation before payment. Fixed URL; however, you can choose to populate this value dynamically via API for each PaymentRequest if needed
Couleur du texteText color of the payment page
Couleur des boutonsButton color of the payment page
Champs supplémentairesAdditional fields that can be added to card (CB) or bank transfer payment flows. Used to collect additional customer data if necessary (address, last name, first name, etc.)

Access:

Recette Merchant Portal – Form configuration
Production Merchant Portal – Form configuration

2. Customizing the logo displayed on the SmartForm

The logo displayed on the SmartForm is the one you have specified in the point of sale settings used for your payment request. By default, the CentralPay logo is displayed.

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 ➝

3DS 2.0 Authentication

The 3D Secure 2.0 protocol ensures that the person performing the transaction is indeed the cardholder. The customer’s bank analyzes numerous payment-related factors sent by CentralPay (IP address, location, device used, etc.) and compares them with the customer’s usual data:

  • If the data does not match or the transaction amount is significant, it requires manual identification via a code sent by SMS or via the banking application (« strong authentication » or « SCA »).
  • Otherwise, it directly authorizes the payment (« Frictionless »).

1. Characteristics

There are two types of 3DS, depending on whether you wish to initiate a classic transaction (where the cardholder is present) or if you are executing a recurring payment installment (where the cardholder is not present):

1.1. 3DS 2 « BRW » or « Browser Authentication » (participating cardholder – 1st transaction)

It represents the majority of 3DS 2 integrations. It requires customer authentication to verify that they are the legitimate cardholder at the time of the transaction. It triggers a challenge if necessary to verify the cardholder’s identity (SCA).

👉 Discover how to integrate 3DS 2.0 BRW ➝

1.2. 3DS2 « 3RI Authentication » (non-participating cardholder – recurring payment installments)

3DS Requestor Initiated (3RI) Authentication, or Merchant-Initiated Authentication, is used when the cardholder is not present or not participating.

3RI offers the possibility to generate the necessary 3DS authentications without customer involvement. This allows for the use of an authentication previously generated with a customer. It is used in the following recurring payment contexts: Split payment, Subscription, Refund, etc.

👉 Discover how to integrate 3DS 2.0 3RI ➝

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

Bank Transfer Transaction

1. Operation

An SCT Transaction is a bank transfer received at one of your CentralPay Virtual IBANs.

It can be created in three different ways:

  • Automatically
    If you provide a dedicated Virtual IBAN for one of your customers or one of your payment accounts, CentralPay will automatically create the SCT Transaction upon receipt of the transfer. You can then reconcile this SCT Transaction with your order/invoice by retrieving the value from the “description” field (which corresponds to the reference your customer entered in their online banking portal).
  • From the SCT Transaction service
    If you want to automate the reconciliation of the wire transfer with the transaction, you can:
    • Create an SCT transaction with a dedicated virtual IBAN: this will ensure 100% accurate reconciliation of your transaction. Please note that in this case, your customers will need to add a new payee in their online banking portal for each transfer they send to you.
    • Create an SCT transaction using a Virtual Customer IBAN and retrieve the short reference generated by CentralPay for this transaction: this will allow you to automatically reconcile the transfer with the corresponding customer profile, and potentially track it down to the specific transaction if your customer has correctly entered the reference in their transfer
  • From the Payment Request Service
    If you would like to have CentralPay display payment information to your customers (amount, IBAN, BIC, reference, etc.), you can create a Payment Request that authorizes payments via SCT Transaction. This option also makes it easy to manage multiple transfers or customer payments made through various payment methods

2. Create a transaction SCT

Create an SCT Transaction:

  • Enter an amount in cents (amount) and a currency (currency)
  • If you want to create a Virtual IBAN specifically for the SCT Transaction, enter the UUID of the payment account where you want to receive the funds in the “ibanWalletId” field. You can find this UUID in the Merchant Portal Administration Accounts UUID
  • If you want to use an existing Virtual IBAN (assigned to a customer or a payment account), enter the desired IBAN in the “iban” field
    • You can then retrieve the “sepaReference” value generated by CentralPay and provide it to your customer so that CentralPay can match the transfer to your transaction
    • Or enter your own custom reference in the “merchantSctTransactionId” field to reconcile the transfer yourself using our transaction exports

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

Bank account statement

To process a SEPA direct debit transaction, you must first create your customer’s (the payer’s) profile and enter their bank account information on the CentralPay platform.

1. Create a “Customer” client profile

  • Collect your customer’s information (email, last name, first name, etc.)
  • Create a Customer client profile
  • Retrieve property customerId from the Customer creation response

2. Create a « bankAccount » bank account

  • Collect your customer’s bank account information (IBAN, BIC, account holder’s name, etc.)
  • Create a bankAccount by entering your client’s customerId
  • Retrieve bankAccountId and identityId from the creation response bankAccount

Transfert via Transaction ou PaymentRequest

Contrairement aux transferts indépendants, réservés aux Agents (pour les comptes de paiement) et aux Distributeurs de Monnaie Électronique (DME) (pour les comptes de monnaie électronique), les transferts via transaction sont accessibles à l’ensemble des modèles de partenariat, y compris aux Partenaires Techniques non régulés.

Dans ce cadre, le partenaire transmet à CentralPay, au moment de la création d’une transaction (par carte, virement ou prélèvement), des données commerciales contextualisées (ex. : montant du panier, commission, identifiants des wallets destinataires…)

ℹ️ L’appel API ne crée pas directement le mouvement financier : CentralPay instruit le transfert de manière autonome, après validation effective de la transaction (capture d’une opération carte, réception d’un virement, ou exécution d’un prélèvement SEPA).

Le modèle de transfert conditionné permet de réaliser un mouvement de fonds à l’issue d’une transaction : carte, virement (SCT), ou prélèvement (SDD). Dans ce cas, le transfert est directement paramétré lors de la création de la transaction, via un champ dédié transfer[].

Cette méthode ne passe pas par l’endpoint /transfer, mais s’appuie sur les endpoints spécifiques des transactions concernées :

  • /transaction pour les paiements par carte : Voir comment créer une transaction CARD ➝
  • /sctTransaction pour les virements reçus : Voir comment créer une transaction SCT ➝
  • /sddTransaction pour les prélèvements SEPA : Voir comment créer une transaction SDD ➝
  • /paymentRequest pour les demandes de paiement : Voir comment créer une demande de paiement ➝

Ce mode de fonctionnement garantit que les fonds sont uniquement transférés si la transaction est réussie. Le transfert devient alors une étape automatisée et synchronisée.

1. Conditions d’utilisation

  • Le transfert est créé en même temps que la transaction (pas d’appel distinct)
  • Il n’est exécuté qu’en cas de succès de la transaction source
  • Il respecte les contraintes de la source (statut, solde disponible, date…)
  • Il peut être instantané ou différé via le champ escrowDate

2. Paramétrer un transfert dans une transaction

Dans les quatre cas de figure, la logique est identique : un tableau transfer[] est renseigné dans le corps de la requête lors de l’appel POST de création de la transaction.

Les champs acceptés dans transfer[] sont les suivants :

ChampTypeObligatoireDescription
destinationWalletIdUUID✅ OuiCompte CentralPay bénéficiaire. Doit appartenir à un marchand participant autorisé.
amountInteger✅ OuiMontant du transfert en centimes.
currencyString❌ NonDevise du transfert (si différente de la devise de la transaction).
merchantTransferIdString❌ NonRéférence partenaire.
feeInteger❌ NonFrais applicables (prélevés sur le montant brut).
escrowDateDate ISO❌ NonDate différée d’exécution (si applicable).
transferGroupString❌ NonIdentifiant de groupe pour les suivis agrégés.
descriptionString❌ NonLibellé du transfert visible sur les relevés.
additionalDataKV pairs❌ NonDonnées métier structurées (clé/valeur).

⚠️ Les règles de disponibilité des fonds (notamment après délai de capture ou de validation) doivent être respectées. Si la transaction est annulée ou échoue, aucun transfert n’est déclenché.

Transfer via Transaction or PaymentRequest

Unlike independent transfers, which are reserved for Agents (for Payment Accounts) and Electronic Money Distributors (EMD) (for Electronic Money Accounts), transfers via transactions are available to all partnership models, including unregulated Technical Partners.

In this context, when a transaction is created (via card, bank transfer, or direct debit), the partner sends CentralPay contextualized transaction data (e.g., cart total, commission, recipient wallet IDs, etc.).

ℹ️ The API call does not directly initiate the financial transaction: CentralPay processes the transfer independently after the transaction has been successfully validated (Card Transaction, receipt of a Bank transfer, or execution of a SEPA Direct Debit).

The conditional transfer model allows you to initiate a funds transfer upon completion of a transaction: card payment, bank transfer (SCT), or direct debit (SDD). In this case, the transfer is configured directly when the transaction is created, using a dedicated field transfer[].

This method does not use the /transfer endpoint, but instead relies on the specific endpoints for the relevant transactions:

  • /transaction For card payments: See how to create a Card Transaction ➝
  • /sctTransaction For incoming bank transfers: See how to create an SCT Transaction ➝
  • /sddTransaction For SEPA Direct Debits: See how to create an SDD Transaction ➝
  • /paymentRequest For payment requests: See how to create a payment request ➝

This process ensures that funds are transferred only if the transaction is successful. The transfer then becomes an automated and synchronized step.

1. Terms of Use

  • The transfer is created at the same time as the transaction (no separate call)
  • It is executed only if the source transaction is successful.
  • It adheres to the source’s constraints (status, available balance, date, etc.)
  • It can be done immediately or at a later time using the field escrowDate

2. Set up a transfer within a transaction

In all four scenarios, the logic is the same: an ` transfer[] ` array is included in the request body during the POST call to create the transaction.

The following fields are accepted at transfer[]:

FieldTypeRequiredDescription
destinationWalletIdUUID✅ YesCentralPay Beneficiary account. Must belong to an authorized Participant Merchant.
amountInteger✅ YesTransfer amount in centimes.
currencyThong❌ NoTransfer currency (if different from the transaction currency).
merchantTransferIdThong❌ NoPartner Reference.
feeInteger❌ NoApplicable fees (deducted from the gross amount).
escrowDateISO Date❌ NoDeferred execution date (if applicable).
transferGroupThong❌ NoGroup ID for aggregated tracking.
descriptionThong❌ NoTransfer description visible on statements.
additionalDataKV pairs❌ NoStructured business data (key/value).

⚠️ The rules regarding fund availability (particularly after the capture or validation period) must be followed. If the transaction is canceled or fails, no transfer is initiated.

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

ME Distributor Declaration (ACPR)

Electronic money issuers such as CentralPay may authorize Electronic Money Distributors (EMDs) to collect funds and facilitate transactions for the purchase and refund of electronic money within a defined network of Sub-merchants.

The registration process for an Electronic Money Distributor consists of two steps:

  • Preparation of the tax return: handled by CentralPay with the assistance of its future EMD
  • Processing of the application by the ACPR: handled by CentralPay. It does not require any specific approval from the ACPR.

1. Responsibilities of the EMD Intermediary

CentralPay handles all complex processes or those requiring specialized expertise. However, you remain responsible for ensuring a high standard of compliance with AML/CFT (Anti-Money Laundering and Counter-Terrorist Financing) rules. As such, you must provide CentralPay with assurance regarding the conditions under which transactions processed through you are carried out, including:

  • The Economic Reality of the Transaction
  • The Fight Against Fraud

Regulated institutions that use distributors remain responsible for the transactions carried out by those distributors. A clear legal framework has therefore been established.

To qualify as an Electronic money Distributor, the following requirements must be met:

  • The execution of an Electronic money Distribution Framework Agreement that defines the relationship between the parties
  • Terms of Use for Electronic Money

In the event that an EMD internalizes certain functions assigned to CentralPay as part of its regulatory obligations, a contract for Outsourced Essential Services must be signed. This is the case, for example, if the agent handles KYC management in-house or develops management interfaces that would prevent CentralPay from providing the service without the assistance of the PSEE.

2. Become an EMD Intermediary

Becoming a CentralPay distributor involves following a series of steps that take several weeks to complete.

Here is a guide to help you better understand the issues related to the acceptance and subsequent processing of distributors’ filing documents.

2.1. Summary of the Steps

  1. Understanding the Model
    • Explanation of the services provided by the intermediary
    • Defining Its Business Model
    • Approval by CentralPay’s Risk & Compliance Department
  2. Sales Offer
    • Overview
  3. Validation
    • Approval of the intermediary by CentralPay’s Risk & Compliance Department
    • Approval of the commercial proposal and pricing terms by the intermediary
  4. Test & Intégration
    • Setting Up the Sandbox
    • Project Kickoff Meeting with the Technical Team
    • Technical Integration Phase
  5. Review of the ACPR File
    • Gathering the information needed to compile the file
    • Preparing the Application
    • Overview of the Case
  6. Go-Live
    • Acceptance Testing
    • Go-Live

2.2. Documents to Submit to CentralPay

Coming Soon

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

Complete an enrollment

Once the enrollment request has been created, the future account owner can complete the process in one of two ways: via the CentralPay portal or via full API integration.

1. Option 1 – Complete the enrollment via the CentralPay Portal

The onboarding link (generated or recreated when the enrollment is created) allows the future account owner to enter their information and upload the required documents through the CentralPay interface on their own.

  • You will be notified automatically at each step of the enrollment process or only upon its completion (depending on your webhook settings)
  • Once the user has completed the process, the data is sent to CentralPay’s compliance teams for validation
  • In some cases, CentralPay analysts may request additional documents

2. Option 2 – Complete the enrollment via API

It is also possible to control the entire enrollment process via API, step by step.

The process consists of four main phases:

  1. Complete the profile
  2. Determine the workflow
  3. Complete the workflow
  4. Complete the enrollment

2.1. Complete the profile

Profile status

A profile always starts with the status workflow.status = “ON_GOING”. To be considered complete, this status must change to ACCEPTED.

⚠️ In SEQUENTIAL mode, this status may revert to ON_GOING when additional questions are unlocked. It should be checked again at each step. 

Get the first activity to complete

  • Retrieve activityUuid via : GET /api/nauth/merchant-enrollment/{enrollmentId}
  • Browse: profile.workflow.activities[0].uuid
  • Then ask: GET /api/nauth/profile/{activityUuid}/activity

Submit the data

Send the expected data via a form: POST /api/nauth/profile/{activityUuid}/activity
Content-Type : multipart/form-data

Example of expected fields (the “Identity Information” activity):

FieldTypeConstraints
firstname[value]string255 characters
lastname[value]string255 characters
mail[value]stringValid email address
phone[value]stringInternational number (at least 10 characters)
birthday[value]stringDate in the format YYYY-MM-DD, between 18 and 110 years old
place_of_birth[value]string—
country_of_birth[country]stringISO 3166-1 alpha-3

Autres types d’activité possibles :

  • Registered addresses: address information
  • Identity document: type (IDENTITY_CARD, PASSPORT) + documents (2 files for an ID card, 1 for a passport)

Repeat this process as long as an activity’s status remains “TODO.”

2.2. Determine the workflow

This step unlocks the next part of the process (collecting documents, supporting evidence, etc.).

  • POST /api/merchant-enrollment/{enrollmentUuid}/activity/{uuid}

Expected payload:

FieldTypeRequiredNotes
typeEnum✅ YesINDIVIDUAL, INDIVIDUAL_WITH_STATUS, LEGAL_ENTITY
bankAccountInEEACountrybool✅ Yes—
turnoverUUID (36)✅ YesPOST /api/nauth/enrollment-claim/turnover
companyNamestring(255)Yes, if LEGAL_ENTITY—
activityAgeUUID (36)Yes, if LEGAL_ENTITY or INDIVIDUAL_WITH_STATUSGET /api/nauth/enrollment-claim/activity-age
subTypeENUMRecommendedDepends on type (see details below)
isCompanyboolYes, if LEGAL_ENTITY—

If you used a identityBadge (enrollment via SIREN), this step is automatically skipped: the workflow has already been determined.

2.3. Complete the workflow

Each step in the workflow follows the same logic as the profile.

Possible types of step:

  • FORM : fields to be filled in via key[value]
  • API_CALL : external treatment
  • VALIDATION : manual action by the CentralPay teams
  • ENDED : step completed
Example: for the field company_legal_status, you must send company_legal_status[value].

The endpoints used are:

  • POST /api/merchant-enrollment/{merchantUuid}/activity/{uuid}
  • POST /api/merchant-enrollment/{uuid}/complete

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.

Magento

1. Download the module

  • For Magento ➝ Download the plugin (v1.0)
ℹ️ This module is compatible with Magento 1.7 and later

2. Installing the plugin

2.1 Extract the archive

Unzip the downloaded .zip file. You will get the following folders:

  • app/
  • js/
  • skin/
  • centralpay.sql (SQL file to run)

2.2. Copy the files

Copy all the folders (app, js, skin) to the root of your Magento installation. They will automatically be integrated into the existing directory structure.

2.3. Run the SQL script

Run the file ` centralpay.sql ` on your Magento site’s database.

⚠️ Use phpMyAdmin or any other database management tool to import this file.
⚠️ Be sure to back up your database before running the script.

3. Module Configuration

Once the module is installed, log in to your Magento admin interface to enter the CentralPay settings.

3.1. Go to Settings

In the Magento admin menu, go to: Stores Configuration Sales Payment Methods CentralPay

3.2. Fields to Fill In

Field in MagentoDescriptionRequiredAccess to Data
Enable CentralPayEnables the module in the Magento environment.✅ YesMagento
TitleName of the payment method as displayed to the customer.✅ YesMagento
Merchant ID (merchantLogin)API ID provided by CentralPay.✅ YesCentralPay Merchant Portal > Administration > Technical Support > Click on your “API ID” > Copy the “login”
API Password (merchantPassword)API password associated with the ID.✅ YesCentralPay Merchant Portal > Administration > Technique > Click on your « API ID » > Edit > Generate a password > Copy the password > Click « Update »
Merchant Public Key (merchantPublicKey)Encryption key used to secure card data.✅ YesCentralPay Merchant Portal > Administration > Technical Support > Copy the “Merchant Public Key”
POS IDUnique identifier for your Point of Sale (POS) (UUID)❌ NoCentralPay Merchant Portal > Configuration > Points of Sale > Copy the ID of the relevant Point of Sale (POS)
Return URL (returnUrl)Allows you to redirect the customer to Magento after payment. Can be left blank to use automatic redirection. ❌ NoMagento
Test Mode (sandbox)Allows you to use the CentralPay test environment.❌ NoMagento
Pending OrderMagento status used if the payment is in progress or pending (e.g., 3DS).❌ NoMagento
Order ConfirmedMagento status used if the payment is accepted.❌ NoMagento

4. Test Mode and Sandbox Environment

The module offers a sandbox option that can be enabled in the Magento admin panel.

ℹ️ Use the CentralPay sandbox environment to simulate payments before going live.

Be sure to use the test API credentials (username, password, public key) provided by CentralPay.

5. Customer Experience

  1. The customer adds items to the shopping cart and proceeds to checkout
  2. At checkout, he selects CentralPay as his payment method
  3. He is redirected to the secure CentralPay payment interface
  4. Once the payment is processed (or there is a refusal), the customer is redirected to your Magento site
  5. The order status is updated automatically

6. Payment Tracking

  • From Magento: You can view the status of orders and payments in the standard back office
  • From CentralPay: All transactions are also visible in your CentralPay interface (transactions, refunds, Rejections, etc.)

7. Technical Support

If you have any questions:

  • View the CentralPay technical documentation: docs.centralpay.com
  • Contact our support team: support.centralpay.com

Support is available in French and English.

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

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

Verification of Payee (VoP)

À compter du 9 octobre 2025, la réglementation européenne impose aux banques de mettre en place la Verification of Payee (VoP) pour tous les virements SEPA (règlement IPR 2024/886, art. 5c).

L’objectif est de protéger les consommateurs contre les fraudes à l’IBAN.

1. Fonctionnement

Lorsqu’un virement est initié, la banque du payeur doit vérifier que le nom du bénéficiaire saisi correspond à celui associé à l’IBAN. Le résultat de cette vérification est affiché au payeur :

  • MATCH : correspondance exacte
  • CLOSE MATCH : correspondance partielle (ex. faute de frappe, abréviation, particule)
  • NO MATCH : aucune correspondance
  • CHECK NOT POSSIBLE : vérification impossible
⚠️ Le payeur reste libre de poursuivre ou non le virement.
Cependant, un NO MATCH ou un CLOSE MATCH augmentent fortement le risque d’abandon de la transaction.

2. Impacts pour les marchands

Afin d’éviter les rejets ou abandons de virements, il est essentiel de vérifier la cohérence du nom affiché à vos clients avec la raison sociale enregistrée sur votre compte CentralPay.

Cas fréquents :

  • Nom commercial / enseigne / marque → Si vous êtes connus sous un autre nom que votre raison sociale, transmettez-nous ces dénominations. Nous pourrons les déclarer manuellement afin d’améliorer le taux de correspondance.
  • vIBAN CentralPay → Vérifiez que vos interfaces et supports affichent bien la raison sociale du titulaire CentralPay associé à l’IBAN.
  • SmartForm (PaymentRequest) → Aucune action nécessaire : CentralPay affiche automatiquement le titulaire du compte.
  • Devis, factures, communications externes → Assurez-vous que la raison sociale présentée est identique à celle du compte bancaire communiqué à vos clients.
À retenir : 
- Vérifiez que votre raison sociale est correctement enregistrée et communiquée.
- Transmettez à CentralPay vos noms commerciaux ou marques si vous souhaitez les faire reconnaître.
- Harmonisez vos documents (factures, devis, emails) avec le nom officiel de votre compte bancaire.
- Informez vos clients :
* Lorsqu’ils effectuent un virement, le nom du bénéficiaire saisi doit correspondre strictement à votre raison sociale.
* En cas d’alerte de type Close match ou No match dans leur application bancaire, invitez-les à vérifier le nom renseigné.

Articles

  • FAQ - Verification Of Payee

FAQ - Verification Of Payee

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

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

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

Enjeux du dispositif

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

Base légale

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

Foire aux questions (FAQ)

1. Qu’est-ce que la VoP ?

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

2. Qui est concerné ?

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

3. Comment fonctionne la VoP concrètement ?

Lorsqu’un virement est initié :

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

4. Quels résultats peuvent apparaître ?

Trois cas sont possibles :

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

Est-ce que la VoP bloque un virement ?

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

Quels échanges ont lieu entre banques et PSP ?

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

Quels sont les avantages de la VoP ?

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

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

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

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

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

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

Illustration du VoP par le CNMP

Verification of Payee (VoP)

Effective October 9, 2025, European regulations require banks to implement Verification of Payee (VoP) for all SEPA bank transfers (Regulation (EU) 2024/886, Article 5c).

The goal is to protect consumers from IBAN fraud.

1. Operation

When a bank transfer is initiated, the payer’s bank must verify that the beneficiary’s name entered matches the name associated with the IBAN. The result of this verification is displayed to the payer:

  • MATCH: exact match
  • CLOSE MATCH: partial match (e.g., typo, abbreviation, particle)
  • NO MATCH: No matches found
  • CHECK NOT POSSIBLE: Verification not possible
⚠️ The payer is free to decide whether or not to proceed with the bank transfer.
However, a "NO MATCH" or "CLOSE MATCH" significantly increases the risk that the transaction will be abandoned.

2. Impacts on Merchants

To prevent bank transfers from being rejected or abandoned, it is essential to verify that the name displayed to your customers matches the business name registered on your CentralPay account.

Common cases:

  • Trade name / business name / brand name → If you are known by a name other than your legal business name, please provide us with those names. We can enter them manually to improve the match rate.
  • vIBAN CentralPay → Verify that your interfaces and media correctly display the business name of the CentralPay account owner associated with the IBAN.
  • SmartForm (PaymentRequest) → No action required: CentralPay automatically displays the account owner.
  • Quotes, invoices, external communications → Make sure the company name listed is the same as the one on the Bank Account you provide to your customers.
Key points: 
- Verify that your business name is correctly registered and communicated.
- Submit your trade names or trademarks to CentralPay if you wish to have them recognized.
- Ensure that your documents (invoices, quotes, emails) match the official name on your Bank Account.
- Verify that your documents (invoices, quotes, emails) match the official name on your Bank Account. - Inform your customers:
* When they make a bank transfer, the beneficiary name they enter must match your business name exactly.
* If they see a “Close match” or “No match” alert in their banking app, ask them to verify the name they entered.

Articles

  • FAQ - Verification of Payee

FAQ - Verification of Payee

Effective October 9, 2025, Verification of Beneficiary (VoP) will become mandatory for all SEPA bank transfers, whether standard or instant. This system, which is free for users, aims to enhance payment security by reducing both:

  • Bank transfer fraud (particularly fraud involving fake bank account information),
  • errors in entering the IBAN or the Beneficiary’s name.

Specifically, before executing a bank transfer, the payer’s financial institution must check with the Beneficiary’s financial institution to verify that the IBAN matches the account owner’s name. If there is a discrepancy, an alert is displayed to the Payer, who remains free to decide whether or not to proceed with the transaction.

Challenges of the Program

  • User protection: limiting misdirected or fraudulent bank transfers.
  • SEPA Payment System Security: Supporting the Rollout of Instant Bank Transfers in Europe.
  • Business and Consumer Confidence: Improving the Transparency and Reliability of Payments.
  • European harmonization: establishing a common standard for all PSPs (banks, payment institutions, and Electronic money institutions).

Legal Basis

  • Regulation (EU) 2021/1230 on instant bank transfers in euros and amending Regulation (EU) No. 260/2012 (SEPA), which introduces the VoP requirement.
  • Regulation (EU) 2015/847 on information accompanying fund transfers, which requires the accurate transmission of information about the Payer and the Beneficiary.
  • Monetary and Financial Code:
    • Articles L.133-6 and L.133-7 concerning the authorization of payment transactions and the accuracy of information,
    • Articles L.561-5 et seq. concerning due diligence obligations in the area of AML/CFT.
  • ACPR doctrine, which in several decisions has penalized the inadequacy of verification procedures and the failure to ensure that a customer’s identity matches their account

Frequently Asked Questions (FAQ)

1. What is VoP?

The Payment Order Verification (VoP) is a regulatory service established at the European level.
It automatically compares the name of the Beneficiary of the bank transfer with the IBAN provided by the Payer before the bank transfer is executed.
Objective: to enhance payment security and reduce fraud (particularly fraud involving fake bank account information).

2. Who is affected?

  • Payers: individuals or businesses that initiate a bank transfer.
  • Beneficiaries: Any individual or entity that receives bank transfers (you, as a CentralPay customer).
  • Payment Service Providers (PSPs): banks, payment institutions, or Electronic money institutions, which must integrate VoP into their systems.

3. How does VoP actually work?

When a bank transfer is initiated:

  1. The payer enters the IBAN and the beneficiary’s name.
  2. The sender’s bank queries the beneficiary’s payment service provider (via a secure channel) to verify that the IBAN matches the name on file for the beneficiary.
  3. The response is sent back to the payer’s PSP and displayed to the payer.

4. What results might occur?

There are three possible scenarios:

  • Exact match: The IBAN and name match → the bank transfer can be initiated without a warning.
  • Partial match: The IBAN matches, but the name is different (typos, abbreviations, different spelling). The payer receives a warning and can:
    • correct the name,
    • or confirm that this is indeed the intended Beneficiary.
  • Mismatch: The IBAN and name do not match → the payer receives a high-priority alert. The payer can cancel the transaction or decide to proceed by accepting the risk.

Does the VoP block a bank transfer?

No. VoP does not block the execution of a bank transfer. It provides additional information to the Payer, who remains free to approve or reject the transaction.
However, some banks may set internal rules to block transactions in the event of a complete mismatch.

What kind of data exchanges take place between banks and PSPs?

  • The Beneficiary’s PSP (e.g., CentralPay) stores the exact name of the account owner in its database.
  • When a VoP query is made, it responds with a standardized code indicating: match, partial match, or no match.
  • These transactions are secure, traceable, and limited to only the necessary data, in accordance with Regulation (EU) 2015/847 on the reporting of bank transfers.
  • No other personal data (address, KYC documents, etc.) is shared.

What are the benefits of VoP?

  • For the payer: reduced risk of bank transfer fraud; detection of data entry errors.
  • For the beneficiary: reduced payment delays caused by errors; protection of the company’s reputation with its customers.
  • For the financial system: improved fraud prevention and compliance with European standards.

What should I do as a CentralPay Beneficiary?

  • Provide your customers with the correct IBAN and the exact name on file with CentralPay (full company name, without abbreviations).
  • Make sure your invoices, contracts, and other documents always include the same bank account information.
  • If your company name changes or you start using a trade name, notify your customers and CentralPay promptly so that your information can be updated.

What happens if there are frequent discrepancies?

If your customers frequently encounter VoP alerts when making bank transfers, this may indicate that your bank account information is not being provided consistently.

CentralPay can help you review and standardize your payment information to avoid friction.

Illustration of VoP by the CNMP

Attachment

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

Attachment

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

Sous-traitants

Dans le cadre de la fourniture de ses services de paiement, Centralpay s’appuie sur un ensemble de sous-traitants au sens de l’article 4 du Règlement Général sur la Protection des Données (RGPD). Ces sous-traitants peuvent être amenés à traiter des données à caractère personnel pour le compte de Centralpay, exclusivement sur instructions documentées et dans la limite des finalités du service auquel ils contribuent.

La présente page recense les sous-traitants susceptibles d’intervenir dans le traitement des données à caractère personnel des Titulaires, Marchands et Payeurs utilisateurs des services Centralpay. Elle est mise à jour à mesure de l’évolution de notre dispositif.

Sous-traitantFinalitéPays de traitement des donnéesCatégories de données
Amazon Web Services (AWS)Hébergement cloud de certains services et données applicativesIrlandeEnsemble des données traitées par les services
Comply Advantage (IVXS)Screening LCB-FT et vérification des listes de sanctions internationalesRoumanieDonnées d’identification
DotfileGestion des processus d’onboarding, collecte et mise à jour des dossiers KYC/KYBFranceDonnées d’identification, justificatifs
GpaymentsAuthentification 3D-Secure des transactions par carte (second prestataire)IrlandeDonnées carte, authentification
InnovestSociété mère du groupe, destinataire interne pour les finalités de gouvernance, audit, conformité et reporting consolidéFranceDonnées de gouvernance et de reporting
MicrosoftGestion et contrôle des flux financiersFranceDonnées transactionnelles et comptables
NetceteraAuthentification 3D-Secure des transactions par carte (Access Control Server)SuisseDonnées carte, authentification
OnfidoVérification automatisée des documents d’identité et des éléments biométriques (reconnaissance faciale, détection de vie)EuropeDonnées d’identité, données biométriques
QomboVerification of Payee (vérification du bénéficiaire d’un virement SEPA)FranceDonnées d’identification, IBAN
Tanla Digital LabsEnvoi de SMS (codes d’authentification, notifications)EuropeNuméro de téléphone, contenu du message

Encadrement des sous-traitants et procédure de modification

Conformément à l’article 28 du RGPD, l’ensemble des sous-traitants engagés par Centralpay agissent exclusivement sur instructions documentées, sont liés par des engagements contractuels stricts en matière de confidentialité et de sécurité, et ne peuvent utiliser les données à caractère personnel à d’autres fins que celles définies par Centralpay.

Toute modification substantielle de cette liste fera l’objet d’une information préalable par tout moyen approprié (notification dans le Portail Marchand, courrier électronique, ou mise à jour publique de la présente page), permettant aux personnes concernées, le cas échéant, de s’y opposer.

Pour toute question relative au traitement de vos données ou à l’exercice de vos droits, vous pouvez contacter notre Délégué à la Protection des Données à l’adresse : dpo@centralpay.eu.

Subcontractors

In providing its payment services, Centralpay relies on a number of processors as defined in Article 4 of the General Data Protection Regulation (GDPR). These processors may be required to process personal data on behalf of Centralpay, exclusively in accordance with documented instructions and within the scope of the purposes of the service to which they contribute.

This page lists the subcontractors that may be involved in the processing of personal data belonging to Account Owners, Merchants, and Payers who use Centralpay services. It is updated as our system evolves.

SubcontractorPurposeCountry Where Data Is ProcessedData Categories
Amazon Web Services (AWS)Cloud hosting for certain services and application dataIrelandAll data processed by the departments
Comply Advantage (IVXS)AML/CFT Screening and Verification Against International Sanctions ListsRomaniaIdentification Information
DotfileManagement of onboarding processes, collection and updating of KYC/KYB recordsFranceIdentification Information, Supporting Documents
Gpayments3D Secure authentication for Card Transactions (second service provider)IrelandCard data, authentication
InnovestThe group’s parent company; internal recipient for the purposes of governance, audit, compliance, and consolidated reportingFranceGovernance and Reporting Data
MicrosoftManagement and Control of Cash FlowsFranceTransaction and Accounting Data
Netcetera3D-Secure Authentication for Card Transactions (Access Control Server)SwitzerlandCard data, authentication
OnfidoAutomated verification of identification documents and biometric data (facial recognition, liveness detection)EuropeIdentification data, biometric data
QomboVerification of Beneficiary (verification of the beneficiary of a SEPA bank transfer)FranceIdentification Information, IBAN
Tanla Digital LabsSending text messages (authentication codes, notifications)EuropePhone number, message content

Supervision of Subcontractors and Change Control Procedures

In accordance with Article 28 of the GDPR, all processors engaged by Centralpay act exclusively on the basis of documented instructions, are bound by strict contractual obligations regarding confidentiality and security, and may not use personal data for any purposes other than those defined by Centralpay.

Any substantial change to this list will be announced in advance by any appropriate means (notification on the Merchant Portal, email, or a public update to this page), allowing the individuals concerned, if applicable, to object to such changes.

If you have any questions regarding the processing of your data or the exercise of your rights, you can contact our Data Protection Officer at: dpo@centralpay.eu.

Optimiser le taux de Frictionless

Qu’est-ce que le frictionless ?

Une authentification est dite frictionless lorsque la banque du porteur valide l’opération sans aucune interaction de sa part (pas de challenge : ni code à usage unique, ni validation dans l’application bancaire). La banque authentifie « en silence », sur la base des données reçues et de sa propre analyse de risque (Risk-Based Authentication).

Son intérêt est double :

  • Meilleure conversion : aucune étape supplémentaire pour le porteur, donc moins d’abandons.
  • Responsabilité transférée : comme pour une authentification avec challenge réussie, un frictionless réussi (transStatus = Y) reporte la responsabilité en cas de fraude vers la banque émettrice. C’est ce qui le distingue d’un paiement sans 3DS.
ℹ️ La décision finale appartient toujours à la banque émettrice. Aucun levier ne garantit le frictionless : l'émetteur peut imposer un challenge quelle que soit votre intégration. Les pistes ci-dessous maximisent les chances de frictionless, elles ne le forcent pas.

Levier 1 — Enrichir les données d’authentification

C’est le levier le plus important. Plus la requête d’authentification (3ds2/authentication) contient de données contextuelles fiables sur le porteur, mieux la banque évalue le risque et plus elle accorde un frictionless. À l’inverse, une requête minimale (montant + données navigateur seulement) prive la banque des éléments qui lui permettraient de se passer du challenge.

Tous les champs ci-dessous sont acceptés par l’API aussi bien en BRW qu’en 3RI, et sont marqués Recommended ou Conditional (à envoyer dès que l’information est disponible) :

Coordonnées du porteur

ChampRôle
emailadresse e-mail du porteur (conditionnel : à envoyer sauf restriction locale)
homePhone / mobilePhone / workPhonenuméros de téléphone du porteur (indicatif [cc] + numéro [subscriber])
deliveryEmailAddresse-mail de livraison (pour une livraison électronique)

Adresse de facturation et de livraison

ChampRôle
billAddrLine1/2/3, billAddrCity, billAddrPostCode, billAddrState, billAddrCountryadresse de facturation
shipAddrLine1/2/3, shipAddrCity, shipAddrPostCode, shipAddrState, shipAddrCountryadresse de livraison
shipAddressUsageIndancienneté d’utilisation de l’adresse de livraison

Historique du compte client

ChampRôle
chAccAgeInd, chAccDate, chAccChangeancienneté et dernière modification du compte du porteur chez le marchand
paymentAccAge, paymentAccIndancienneté de l’enregistrement du moyen de paiement
nbPurchaseAccountnombre d’achats sur les six derniers mois
provisionAttemptsDaynombre de tentatives d’ajout de carte sur 24 h
preOrderDate, preOrderPurchaseIndinformations de pré-commande, le cas échéant
💡 La consigne pratique : transmettez tout ce dont vous disposez de fiable. Une donnée incohérente (adresse erronée) est contre-productive ; une donnée fiable absente est une occasion manquée de frictionless.

Levier 2 — Exécuter le 3DS Method

Lorsque le versioning le propose, exécutez systématiquement le 3DS Method : il permet à la banque de collecter en arrière-plan l’empreinte technique du navigateur du porteur, ce qui nourrit directement son analyse de risque. Le sauter revient à priver la banque d’informations qui favorisent le frictionless. Voir la procédure sur la page BRW.

Levier 3 — Exprimer une préférence et signaler les exemptions

Le champ threeDSRequestorChallengeInd (optionnel, flux BRW) permet d’indiquer à la banque votre préférence en matière de challenge, et de signaler qu’une exemption s’applique :

ValeurSignification
01Pas de préférence
02Pas de challenge souhaité
03Challenge souhaité (préférence du marchand)
04Challenge souhaité (obligation)
05Pas de challenge — analyse de risque transactionnelle (TRA) déjà réalisée
06Pas de challenge — partage de données uniquement
07Pas de challenge — authentification forte (SCA) déjà réalisée
08Pas de challenge — exemption « bénéficiaire de confiance » (whitelist)
09Pas de challenge — invitation au whitelisting si un challenge est requis
⚠️ Les valeurs 05, 07 et 08 déclarent qu'une exemption s'applique. Ne les utilisez que si l'exemption correspondante s'applique réellement à votre configuration : déclarer à tort une exemption engage votre responsabilité et peut entraîner un soft decline (voir FAQ). En cas de doute, conservez 01 ou 02.

Le champ whiteListStatus permet par ailleurs de communiquer le statut « bénéficiaire de confiance » du marchand (Y = marchand whitelisté par le porteur, N, E, P, R, U). Lorsqu’un porteur ajoute votre enseigne à sa liste de confiance auprès de sa banque, ses paiements suivants passent plus facilement en frictionless.

Levier 4 — Bien implémenter les transactions initiées par le marchand (MIT)

Une fois une transaction CIT initiale authentifiée, les transactions ultérieures initiées par le marchand (MIT) s’effectuent via le flux 3RI et sortent du champ de l’authentification forte. C’est l’un des moyens les plus directs de supprimer la friction sur les paiements récurrents, échelonnés ou ultérieurs : authentifier une fois (CIT), réutiliser ensuite (MIT).

Ce qui reste hors de votre contrôle

Même avec des données complètes et une exemption demandée, l’émetteur peut décider d’un challenge (step-up). Si vous tentez une autorisation sans authentification (via exemption) et que l’émetteur la refuse, vous recevez un soft decline : il faut alors rejouer l’opération avec authentification. Voir l’entrée correspondante dans la FAQ.

Optimize the Frictionless Rate

What is “frictionless”?

Authentication is considered “frictionless” when the cardholder’s bank approves the transaction without any interaction on the cardholder’s part (no challenge: no one-time code and no confirmation in the banking app). The bank authenticates “silently,” based on the data received and its own risk analysis (Risk-Based Authentication).

It serves two purposes:

  • Better conversion: no extra steps for the carrier, so fewer dropouts.
  • Liability Shift: As with successful challenge-based authentication, a successful frictionless transaction (transStatus = Y) shifts liability for fraud to the card issuer. This is what distinguishes it from a payment without 3DS.
ℹ️ The final decision always rests with the issuer bank. No approach guarantees a frictionless experience: the issuer may require verification regardless of your integration. The strategies below maximize the chances of a frictionless experience; they do not guarantee it. 

Lever 1 — Enhance authentication data

This is the most important lever. The more reliable contextual data about the user that the authentication request (3ds2/authentication) contains, the better the bank can evaluate the risk and the more likely it is to provide frictionless access. Reverse, a minimal request (amount + browser data only) deprives the bank of the information it would need to bypass the challenge.

All of the fields below are accepted by the API in both BRW and 3RI formats and are marked as “Recommended” or “Conditional” (to be submitted as soon as the information is available):

Contact information for the cardholder

FieldRole
emailcardholder’s email address (conditional: to be sent unless restricted by local regulations)
homePhone / mobilePhone / workPhonecardholder’s phone numbers (area code [cc] + number [subscriber])
deliveryEmailAddressdelivery email (for electronic delivery)

Billing and shipping address

FieldRole
billAddrLine1/2/3, billAddrCity, billAddrPostCode, billAddrState, billAddrCountrybilling address
shipAddrLine1/2/3, shipAddrCity, shipAddrPostCode, shipAddrState, shipAddrCountryshipping address
shipAddressUsageIndlength of time the shipping address has been in use

Customer account history

FieldRole
chAccAgeInd, chAccDate, chAccChangethe account holder’s account age and the date of the last change made to the account with the merchant
paymentAccAge, paymentAccIndlength of time the payment method has been registered
nbPurchaseAccountnumber of purchases over the past six months
provisionAttemptsDayNumber of attempts to add a card in a 24-hour period
preOrderDate, preOrderPurchaseIndpre-order information, if applicable
💡 Practical tip: Share all the reliable information you have. Inconsistent data (such as an incorrect address) is counterproductive; missing reliable data is a missed opportunity for a frictionless experience. 

Lever 2 — Run the 3DS Method

Whenever versioning allows it, always run the 3DS Method: it enables the bank to collect the technical fingerprint of the cardholder’s browser in the background, which directly feeds into its risk analysis. Skipping this step deprives the bank of information that promotes a frictionless experience. See the procedure on the BRW page.

Lever 3 — Expressing a preference and reporting exemptions

The threeDSRequestorChallengeInd field (optional, BRW flow) allows you to indicate your challenge preference to the bank and to specify that an exemption applies:

ValueMeaning
01No preference
02No challenge desired
03Desired challenge (merchant’s preference)
04Desired challenge (required)
05No challenge — transactional risk analysis (TRA) already completed
06No challenge — data sharing only
07No challenge — strong customer authentication (SCA) already completed
08No challenge — “trusted beneficiary” exemption (whitelist)
09No challenge — invitation to whitelist if a challenge is required
⚠️ The values 05, 07 and 08 indicate that an exemption applies. Use them only if the corresponding exemption actually applies to your configuration: incorrectly declaring an exemption makes you liable and may result in a soft decline (see FAQ). If in doubt, use 01 or 02. 

The field whiteListStatus also allows you to indicate the merchant’s « trusted beneficiary » status (Y = merchant whitelisted by the cardholder, N, E, P, R, U). When a cardholder adds your merchant to their trusted list with their bank, their subsequent payments go through more smoothly and frictionless.

Lever 4 — Properly implement merchant-initiated transactions (MIT)

Once an initial CIT transaction has been authenticated, subsequent transactions initiated by the merchant (MIT) are processed via the 3RI flow and are no longer subject to strong authentication. This is one of the most direct ways to reduce friction in recurring, installment, or future payments: authenticate once (CIT), then reuse (MIT).

What’s beyond your control

Even with complete data and a requested exemption, the issuer may decide to issue a challenge (step-up). If you attempt an authorization without authentication (via exemption) and the issuer denies it, you will receive a soft decline: you must then retry the transaction with authentication. See the corresponding entry in the FAQ.

Liens de paiement

Articles

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

Informations générales

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

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

Vous pouvez au choix :

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

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

2. À propos de l’intégration SMART

La demande de paiement permet de générer un lien de paiement menant à une page de paiement hébergée par CentralPay. Votre client peut ainsi vous régler selon les conditions de règlement que vous avez déterminé (moyens et modes de paiement autorisés, délais de règlement, etc.). Les transactions ainsi créées sont automatiquement liées à la demande de paiement et permettent d’actualiser son statut (non payé, partiellement payé, payé, etc.).

La demande de paiement doit être alimenté des conditions de règlement de votre panier ou de votre facture :

  • Montant à régler
  • Moyens de paiement acceptés (carte, virement, prélèvement, initiation de paiement)
  • Modes de paiement acceptés (unitaire, par abonnement, paiement fractionné…)
  • Référence de commande
  • Description de commande
  • Coordonnés clients
  • Délais de règlement autorisé
  • Délais d’expiration du lien
  • …

Le lien de paiement peut être adressé à vos clients depuis :

  • Vos tunnels de vente ou interfaces web
  • Vos outils de communications (email, sms, courriers via QR code…)
  • Le service de notifications email / sms de CentralPay

La page de paiement permet ensuite au client de réaliser sa ou ses transactions :

  • Visualisation des informations de la demande de paiement
  • Sélection du moyen ou mode de paiement
  • Renseignement des données clients
  • Renseignement des coordonnées de paiement

Demandes de paiement

La demande de paiement (PaymentRequest) est le service vous permettant de générer des liens de paiement. Vous pouvez créer des demandes de paiement par API ou via le Portail Marchand. La demande de paiement peut également être couplé au service de notification de CentralPay, vous permettant d’adresser facilement un lien de paiement par email ou sms à vos clients et de programmer des relances automatisées.

1. Création par API

1.1. Créer une PaymentRequest

Vous trouverez ci-dessous les moyens de paiement disponibles et les valeurs API correspondantes dans le service PaymentRequest :

Moyen ou mode de paiement souhaitéValeurs API à renseigner
Paiements unitaires
Transaction par cartepaymentMethod[]=TRANSACTION
Caution carte (réservé aux activités de locations)paymentMethod[]=TRANSACTION
transaction[source]=DP
Vérification/Empreinte 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 Paiement par banque (virement standard)paymentMethod[]=SCT_TRANSACTION_PIS
Transaction par Paiement par banque (virement instantané par défaut, sinon standard)paymentMethod[]=SCT_TRANSACTION_PIS_IP
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 entrer en conflit 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 ➝

Payment Links

Articles

  • General information
  • Payment requestspaymentRequest
  • Payment page (SmartForm)
  • Callbacks, statuses and hooks

General information

1. The two Smart Collection integration modes

The Smart Collection solution allows you to collect payments from various payment methods.

You can choose to:

  • Create and integrate your own payment flows (CUSTOM integration), by consuming the API services of each payment method:
    • Card transaction ➝
    • Transfer transaction ➝
    • SEPA direct debit transaction ➝

  • Use our secure payment request flows (SMART integration), via our dedicated service:
    • Payment requests (PaymentRequest) ➝
    • The EscrowDate parameter can affect the funds availability date of a transaction (applies to AGENT partners only)
ℹ️ If you choose SMART integration, specific features such as R-transactions, bank descriptor management, Virtual IBAN management, etc., are presented in the documentation under the CUSTOM sections dedicated to each payment method.

2. About SMART integration

The payment request allows you to generate a payment link leading to a payment page hosted by CentralPay. Your customer can thus pay you according to the payment terms you have determined (authorized payment methods and modes, payment deadlines, etc.). Transactions created in this way are automatically linked to the payment request and allow its status to be updated (unpaid, partially paid, paid, etc.).

The payment request must be populated with the payment terms of your cart or invoice:

  • Amount to be paid
  • Accepted payment methods (card, transfer, direct debit, payment initiation)
  • Accepted payment modes (one-off, subscription, installment payment…)
  • Order reference
  • Order description
  • Customer details
  • Authorized payment deadline
  • Link expiration time
  • …

The payment link can be sent to your customers from:

  • Your sales funnels or web interfaces
  • Your communication tools (email, SMS, mail via QR code…)
  • The CentralPay email / SMS notification service

The payment page then allows the customer to carry out their transaction(s):

  • Viewing payment request information
  • Selection of payment method or mode
  • Entering customer data
  • Entering payment details

Payment requests

The payment request (PaymentRequest) is the service that allows you to generate payment links. You can create payment requests via API or via the Merchant Portal. The payment request can also be paired with the CentralPay notification service, allowing you to easily send a payment link to your customers by email or SMS and schedule automated reminders.

1. API creation

1.1. Create a PaymentRequest

Below are the available payment methods and the corresponding API values in the PaymentRequest service:

Desired payment method or modeAPI values to provide
One-off payments
Card transactionpaymentMethod[]=TRANSACTION
Card deposit (reserved for rental businesses)paymentMethod[]=TRANSACTION
transaction[source]=DP
Card verification/imprint (0€ transaction)paymentMethod[]=TRANSACTION
transaction[source]=RI
Bank transfer transactionpaymentMethod[]=SCT_TRANSACTION
SEPA Direct Debit transactionpaymentMethod[]=SDD
sdd[remittanceInformation]
Pay by bank transaction (standard transfer)paymentMethod[]=SCT_TRANSACTION_PIS
Pay by bank transaction (instant transfer by default, otherwise standard)paymentMethod[]=SCT_TRANSACTION_PIS_IP
Recurring payments
Card subscriptionpaymentMethod[]=SUBSCRIPTION
subscriptionModel[subscriptionModelId]
SEPA Direct Debit subscriptionpaymentMethod[]=SUBSCRIPTION
subscription[source]=SDD
subscriptionModel[subscriptionModelId]
Card instalment paymentpaymentMethod[]=INSTALLMENT
intallment[intervalUnit]
installment[intervalCount]
installment [iterationCount]
SEPA Direct Debit instalment paymentpaymentMethod[]=INSTALLMENT
installment[source]=SDD
intallment[intervalUnit]
installment[intervalCount]
installment [iterationCount]

If you want to allow multiple payment methods or modes in your PaymentRequest, you must provide the paymentMethod object multiple times.

Example:

paymentMethod[]=TRANSACTION
paymentMethod[]=SCT_TRANSACTION

⚠️ Some combinations of payment methods or modes may conflict and your PaymentRequest may return an error. For example, you cannot allow a TRANSACTION and a SUBSCRIPTION; however, you can allow a TRANSACTION and an INSTALLMENT.

Here is the key information about other values to provide when creating a PaymentRequest:

LabelDefinition
amountAmount of the payment request in centimes
merchantPaymentRequestIdCustom reference (your order or invoice number, for example) that you can use to reconcile the payment. This value will be visible to your customer on the payment page
descriptionCustom description (name of the product or service sold). This value will be visible to your customer on the payment page
additionalData[*]Free key-value data, allowing you to pass through one or more data items (invoice references, customer number, etc.). Not visible to your customer on the payment page
createCustomerTRUE / FALSE creation of a Customer account (in particular, enables saving the customer payment method: card, SEPA mandate, and creating a virtual IBAN dedicated to the Customer)
breakdown[customerId]Select an existing Customer
ℹ️ For SEPA transfer transactions, you can define whether you want to display the Virtual IBAN dedicated to the Customer or generate a single-use Virtual IBAN (SCT) from the settings of your Points of Sale.

1.2. Send a PaymentRequest by email / SMS

When creating it, you can ask CentralPay to send the payment request to your customer. There are two sending methods:

  • Via the default PaymentRequest mailer: CentralPay sends the payment request using a standardised email/SMS template and from the sender email configured in your point of sale (or, failing that, CentralPay’s sender email « no-reply@centralpay.eu »).
    • To do this, you must [coming soon]

  • Via the CentralPay email/SMS notification service: CentralPay sends the payment request according to the scenario and communication templates you have configured. This service notably enables automated customer reminders, based on the payment request parameters (payment deadlines, payment progress, etc.).
    • To do this, you must [coming soon]

1.3. Specific features

Send an open-amount payment request (multi-payment methods)

It is possible to allow the amount to be paid to be modified (up to the initial amount), so that your payers can pay the amount due using multiple payment methods or at different times.

Example:

Example of a €500 payment request:

• Payment of €250 by transfer, then €250 by card
• Or €300 with a first card, then €200 with another
• Or payment of €350 with a card, then come back later to pay the remaining €150 with the same card

To do this, you must [coming soon]

Send a payment request to multiple recipients

It is possible to send a payment request to multiple recipients with a different amount to be paid by each of them. As follows:

  • Each participant receives an email or SMS notification detailing the item to be paid
  • Amounts are set by the initiator or left open for each participant, who pays the amount they wish
  • The dates configured on the request (creation, expiration, etc.) allow notifications to be generated for each participant

To do this, you must [coming soon]

2. Creation from the Merchant Portal

2.1. Creation and types of payment requests

You can create a payment request from Merchant Portal Payment requests Payment links Create .

Payment requests created from the Merchant Portal are necessarily sent to your customers by CentralPay. Depending on your needs, you must choose one of the following request types:

  • Instant request: A simple request, sent from CentralPay’s standard email/SMS senders and templates
  • Scheduled request: An advanced request, using the communication templates, scenarios, and sending/reminder rules that you have previously configured in the CentralPay email/SMS notification service. A scheduled request sent without selecting a notification scenario will automatically be reclassified as an instant request

Once created, you can access the payment page by clicking payment request details Payment form . This way, you can send your customer the page URL in case of a sending error.

Access:

Recette Merchant Portal – Payment requests
Production Merchant Portal – Payment requests

2.2. Payment request profiles

To make it easier to create payment requests, you can create predefined profiles that include the main request settings:

  • Point of Sale (POS)
  • Currency
  • Language
  • Allowed payment methods
  • Payment due date (contractual payment terms)
  • Link expiration (time before the link expires)
  • Notification scenarios
  • Rerouting of the payment confirmation email
  • Display rules (payment page settings)
  • Customer creation
  • Attachments

You can then use this profile when creating your scheduled payment requests via the Merchant Portal, or via flat-file import.

2.3. Create payment requests by flat-file import

From Merchant Portal Payment requests Payment links Import , you can upload a payment request import file. This use may be recommended for businesses that want to send, at the end of the month, and automatically follow up on a list of debtors.

Download the template:

  • CSV format➝
  • JSON format ➝

Some important information:

LabelDefinition
profil_uuid*UUID of the payment request profile
merchant_payment_request_idCustom reference (your order or invoice number, for example) that you can use to reconcile the payment. This value will be visible to the payer on the payment page.
descriptionCustom description (name of the product or service sold). This value will be visible to your customer on the payment page.
total_amount*Payment request amount. Provide as a double with a « . » separator (e.g., 500.00 for €500).
last_nameLast name
first_nameFirst name
email*Recipient email
phoneRecipient phone number in international format (e.g., 33612345678).
create_customerCreation of a « Customer » customer profile: enter « O » for YES or « N » for NO
link_expiration_datePayment request expiration date (date after which the customer can no longer pay you)
deadlinePayment due date (date by which your customer must have paid you, and after which they are late).
receipt_emailEmail address to which you want to reroute the payment confirmation email
language*Communication and payment page language (FRE for French, ENG for English…)
Fields marked with * are required.

Payment page (SmartForm)

The payment page (also called SmartForm) is a page hosted and secured by CentralPay for collecting customer data and payment details. Generated via the payment request service, it allows your customers to view the details of this request (amount, order reference, etc.) and select an authorized payment method before proceeding to the payment step.

1. Page configuration

You can create one or more page templates to customize your payment flow. Below is the list of configurable elements on the page:

LabelDefinition
NomPage template name
Template par défautCheckbox to define whether this template should be applied by default (payment requests created without a template will use this one)
Forcer la création du CustomerCheckbox to systematically force the creation of a Customer when creating the payment request. The Customer creation parameter specified on payment requests will be ignored. Note: CentralPay will not create a new Customer if their email or phone number is already used by another Customer, and will assign the request to that existing Customer
URL de redirectionRedirect URL after payment. Fixed URL; however, you can choose to populate this value dynamically via API for each PaymentRequest if needed
Délais de redirectionRedirect delay to the redirect URL after payment. Empty field: no redirect, 0: immediate redirect, other value: number of seconds before redirect
URL d'annulationRedirect URL in case of cancellation before payment. Fixed URL; however, you can choose to populate this value dynamically via API for each PaymentRequest if needed
Couleur du texteText color of the payment page
Couleur des boutonsButton color of the payment page
Champs supplémentairesAdditional fields that can be added to card (CB) or bank transfer payment flows. Used to collect additional customer data if necessary (address, last name, first name, etc.)

Access:

Recette Merchant Portal – Form configuration
Production Merchant Portal – Form configuration

2. Customizing the logo displayed on the SmartForm

The logo displayed on the SmartForm is the one you have specified in the point of sale settings used for your payment request. By default, the CentralPay logo is displayed.

Callbacks, statuses and hooks

1. Statuses related to payment requests

Consult the Payment Request Statuses ➝

2. Webhooks related to payment requests

As payment requests indirectly allow the creation of card, SCT and SDD transactions, but also other objects like Customer, Subscription or Installment depending on the use cases, it may be useful to track the associated webhooks.

Consult the PaymentRequest Webhooks ➝

Consult the Transaction Webhooks ➝

Consult the SCT Transaction Webhooks ➝

Consult the SDD Transaction Webhooks ➝

Consult the Customer Webhooks ➝

Consult the Subscription Webhooks ➝

Consult the Installment Webhooks ➝

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_6ab3046e95db9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Dispute.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046e95db9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046e95db9.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_6ab3046e9656d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Dispute.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046e9656d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046e9656d.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

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

Comptes de paiement

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

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

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

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

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

Recette Portail Marchand – Comptes de paiement
Production Portail Marchand – Comptes de paiement

1. Utilisation

Les comptes de paiement sont systématiquement utilisés pour les opérations de paiement de notre plateforme, à l’exception des opérations de monnaie électronique.

2. Création de comptes de paiement

Si vous êtes marchand CentralPay, vous pouvez adresser une demande par email aux équipes CentralPay pour la création de plusieurs comptes de paiement à votre nom. Cela afin de segmenter vos opérations ou d’ouvrir un compte dans une devise différente.

Si vous êtes Partenaire MOBSP ou mandataire AGENT de CentralPay, vous pouvez créer des comptes pour vos marchands en utilisant le service de demande d’enrôlement.

Payment accounts

Payment accounts are used to carry out payment transactions (collecting payments in ISO currencies, paying out funds to a bank account, etc.). They allow you to hold funds in an ISO currency (EUR, USD, CHF, GBP, etc.) and have their own IBAN/BIC.

With few exceptions, a Payment Account is linked to a bank account with the same account holder, enabling CentralPay to make automatic payouts via SEPA transfer.

If you have several bank accounts to which your funds must be paid out, you may ask your CentralPay contact to create the same number of Payment Accounts in your CentralPay Merchant profile. This way, each Payment Account will be linked to a different bank account and will send SEPA payouts accordingly.

It is also possible to create several payment accounts for fund segmentation purposes (with an account dedicated to commission or fee transactions, for example).

You can view the details of your payment accounts via the following access points:

Recette Merchant Portal – Payment Accounts
Production Merchant Portal – Payment Accounts

1. Usage

Payment accounts are systematically used for our platform’s payment transactions, except for electronic money transactions.

2. Creating payment accounts

If you are a CentralPay merchant, you may send an email request to the CentralPay teams to create several payment accounts in your name. This is to segment your transactions or to open an account in a different currency.

If you are a CentralPay MOBSP Partner or AGENT representative, you can create accounts for your merchants using the onboarding request service.

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 ➝

Callbacks, statuses and hooks

1. Statuses related to payment requests

Consult the Payment Request Statuses ➝

2. Webhooks related to payment requests

As payment requests indirectly allow the creation of card, SCT and SDD transactions, but also other objects like Customer, Subscription or Installment depending on the use cases, it may be useful to track the associated webhooks.

Consult the PaymentRequest Webhooks ➝

Consult the Transaction Webhooks ➝

Consult the SCT Transaction Webhooks ➝

Consult the SDD Transaction Webhooks ➝

Consult the Customer Webhooks ➝

Consult the Subscription Webhooks ➝

Consult the Installment Webhooks ➝

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

Card Transaction

Depending on your business needs, CentralPay offers various unit transaction modes via its Transaction API service.

Please note, you must first manage the collection of your customer’s card data by creating a Custom Form payment form and integrating 3DS 2.0 authentication.

The basic principles of a card transaction are described in the general information section.

1. Authorization and instant capture

To perform a simple card payment (authorization then instant capture):

  • Create a Transaction by setting the « source » parameter to « EC »

2. Authorization and deferred capture

This transaction mode can be useful if you wish to block your customer’s funds before definitively debiting them, for example, during order validation. This allows you to cancel the operation without being subject to transaction or refund fees.

To perform a card payment with deferred capture (authorization then deferred capture), you must:

  • Perform an authorization by setting the « capture » parameter of the Transaction to « false ». Funds will thus be blocked on the customer’s card
  • Then debit the desired amount by initiating a capture on the received transactionId, specifying the desired amount (« amount »)

You have 7 calendar days following the authorization to perform the capture; otherwise, the customer’s funds will be released.

3. Pre-authorization and deferred capture

The pre-authorization and deferred capture service (or security deposit / PLBS) allows for a pre-authorization of a certain amount, which you can then capture partially or fully within 30 days. During this period, funds are guaranteed to you, as they are blocked on the card and cannot be used by your customer.

This service is only accessible to certain authorized activities (vehicle or equipment rentals, hospitality, etc.).

To perform a pre-authorization and deferred capture, you must:

  • Perform a pre-authorization by setting the « source » parameter of the Transaction to « DP ». Funds will thus be blocked on the customer’s card
  • Then debit the desired amount by initiating a capture on the received « transactionId », specifying the desired amount (« amount »)

You have 30 calendar days following the authorization to perform the capture; otherwise, the customer’s funds will be released.

4. Card verification (secure imprint)

The card imprint & verification service allows for a €0 authorization with cardholder authentication (3DS 2.0). This provides you with information regarding your customer’s card (debit, credit, prepaid, etc.) and ensures it is not fraudulent (card not stolen, cardholder identified, etc.). This service is generally used to register a card with 3DS for a subscription with a deferred start date.

To perform a card imprint and verification (€0 authorization without capture), you must:

  • Create a Transaction by setting the « source » parameter to « RI »
  • We also recommend creating a « customer » during the transaction to associate the generated « cardId » and allow for a potential subsequent debit of this card

5. Card debit only (MO/TO)

The MOTO (Mail Order / Telephone Order) payment service allows for an authorization followed by a capture of a card without the cardholder being present. It is generally used by hotels to debit additional services or consumption at the end of a stay.

Please note, this service is only accessible to certain authorized activities (hospitality, etc.) and has shown increasingly lower conversion results since the PSD2 directive, as it does not allow for cardholder authentication.

To perform a MOTO payment, you must:

  • Create a Transaction by setting the « source » parameter to « MO » (Mail Order) or « TO » (Telephone Order)

6. One-click card payment

One-click card payment consists of saving your customer’s card data so they can pay for their order without having to re-enter it. The customer’s card(s) are securely stored in the CentralPay Customer. In this context, it is necessary to allow your customer to select the card they wish to use or to add a new card.

To perform a one-click card payment, you must:

  • Select the « One-click » option in the point of sale configuration
  • Ensure that your Customers have a card linked to their profile

Création du mandat SEPA

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

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

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

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

1.1. Créez un mandat SEPA :

  • Créez un « Mandate »
    • Renseignez votre « creditorBankAccountId »
    • Renseignez le « CustomerId » de votre client
    • Renseignez votre Référence Unique de Mandat (RUM)
    • Indiquez le type de mandat que vous souhaitez créer dans la propriété « paymentType »
    • Renseignez le numéro de téléphone de votre client dans la propriété « debtorPhone »
    • Renseignez l’email de votre client dans la propriété « debtorEmail »
    • Indiquez le compte bancaire de votre client en renseignant son « bankAccountId » dans la propriété « debtorBankAccountId »

  • Une fois le mandat SEPA créé :
    • Un « mandateId » sera généré
    • Le statut du mandat sera en PENDING
    • Un code à 6 chiffres (OTP) sera envoyé à votre client par SMS (durée de vie 15 min). Vous pouvez renouveler l’envoi de l’OTP.

1.2. Signez un mandat SEPA :

  • Signez le « Mandate »
    • Collectez le code à 6 chiffres auprès de votre client, et renseignez-le dans la propriété « otp »
    • Renseignez le « mandateId » généré lors de la création du mandat
    • Renseignez l’IP de votre client dans la propriété « endUserIp »
    • Le statut du mandat passera ainsi en « ACTIVE » et le mandat SEPA au format PDF sera envoyé au client par email

1.3. Schéma de déclaration du compte bancaire et création mandat

2. Déclaration d’un mandat existant (migration)

Dans le cadre d’une migration de mandats déjà créé auprès d’un autre prestataire de paiement, il est possible de désactiver la fonction de signature par OTP sms et d’envoi du mandat SEPA par email. Si c’est votre cas, contactez nos équipes afin d’obtenir plus de détails concernant cette procédure.

Prérequis :

  • Les mandats doivent avoir été créés avec votre Identifiant de Créancier SEPA (ICS)
  • Les mandats doivent avoir été créés avec votre entité juridique actuelle
  • Les mandats doivent avoir été dûment signés et acceptés par vos débiteurs
  • Les mandats doivent être encore actifs (<36 mois depuis la dernière transaction)

3. Modification d’un mandat SEPA existant

3.1. Modifications possibles sans nécessité de nouveau mandat

Certaines données peuvent être mises à jour sans exiger la signature d’un nouveau mandat SEPA, sous réserve d’informer correctement le débiteur :

  • Changement de nom du créancier (modification de la structure juridique prélevant)
  • Changement de l’Identifiant Créancier SEPA (ICS)
  • Changement de la Référence Unique de Mandat (RUM)
  • Changement de compte / IBAN du débiteur au sein d’une même banque
  • Changement de compte / IBAN du débiteur suite à un changement de banque

Endpoints associés :

  • Modifier un IBAN débiteur
    POST /bankAccount/{bankAccountId}
    Permet de mettre à jour l’IBAN d’un compte bancaire débiteur lié à un mandat SEPA existant.
  • Modifier une RUM
    Cette opération n’est pas possible via les API CentralPay. Une modification de la RUM nécessite la création d’un nouveau mandat (migration).
  • Modifier le nom du créancier
    En cas de changement de la structure juridique réalisant les prélèvements, un nouveau Profil Marchand CentralPay (Merchant) doit être créé. Les mandats existants devront alors être redéclarés sous ce nouveau profil via un processus de migration.

3.2. Modifications nécessitant un nouveau mandat

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

  • Changement de nom du débiteur
  • Changement de la date de signature du mandat
  • Changement de type de mandat : passage de SDD Core à SDD B2B
    NB : Ce cas d’usage n’est pas disponible dans les services CentralPay
  • Changement de la fréquence de prélèvement : passage de ponctuel à récurrent

3.3. Communication des modifications

Les notifications de modifications doivent obligatoirement être transmises :

  • Par le créancier au débiteur, pour toute modification initiée par le créancier (ICS, RUM, IBAN, etc.)
  • Par le débiteur au créancier, avec présentation d’un justificatif (ex : RIB ou pièce d’identité) pour les changements d’IBAN ou de données personnelles

Creating a SEPA direct debit mandate

After registering the customer’s bank account bankAccount and linking it to their “Customer” profile, you can create a SEPA mandate “mandate” and collect your customer’s electronic signature using a one-time password (OTP) sent via text message.

Prerequisite: You must retrieve the creditorBankAccountId from your CentralPay Merchant Profile that corresponds to your ICS. You can find it in your Merchant Portal by using a profile with Admin privileges: Administration My Merchant Profile Bank accounts

Locate the row containing your ICS in the “IBAN” column, then copy the associated UUID.

1. Creating and signing a new SEPA mandate

1.1. Create a SEPA direct debit:

  • Create a « Mandate »
    • Enter your « creditorBankAccountId »
    • Enter your customer’s « CustomerId »
    • Enter your Unique Mandate Reference (RUM)
    • Specify the type of payment you want to create in the “paymentType” property
    • Enter your customer’s phone number in the “debtorPhone” property
    • Enter your customer’s email address in the “debtorEmail” property
    • Specify your customer’s bank account by entering their “bankAccountId” in the “debtorBankAccountId” property.

  • Once the SEPA direct debit has been set up:
    • Un « mandateId » sera généré
    • The mandate status will be PENDING
    • A 6-digit code (OTP) will be sent to your customer via text message (valid for 15 minutes). You can have the OTP resent.

1.2. Sign a SEPA direct debit authorization:

  • Sign the « Mandate »
    • Collect the 6-digit code from your customer and enter it in the “otp” property
    • Enter the “mandateId” generated when the mandate was created
    • Enter your client’s IP address in the “endUserIp” property
    • The mandate status will then change to “ACTIVE,” and the SEPA mandate in PDF format will be emailed to the customer.

1.3. Flowchart for bank account registration and power of attorney creation

2. Declaration of an existing mandate (migration)

When migrating payment orders that were previously created with another payment service provider, you can disable the SMS OTP signature feature and the option to send SEPA payment orders via email. If this applies to you, please contact our team for more details about this process.

Requirements:

  • Direct debits must have been set up using your SEPA Creditor Identifier (ICS)
  • Power of attorney documents must have been created using your current legal entity
  • The payment orders must have been duly signed and accepted by your debtors
  • Accounts must still be active (less than 36 months since the last transaction)

3. Modifying an existing SEPA mandate

3.1. Possible changes that do not require a new mandate

Certain information may be updated without requiring the signing of a new SEPA direct debit mandate, provided that the debtor is properly notified:

  • Change in the creditor’s name (change in the legal structure of the entity making the deduction)
  • Change to the SEPA Creditor Identifier (ICS)
  • Change to the Unique Mandate Reference (RUM)
  • Change of account or IBAN for the payer within the same bank
  • Change of account/IBAN of the payer following a change of bank

Related endpoints:

  • Edit a Debit Account IBAN
    POST /bankAccount/{bankAccountId}
    Allows you to update the IBAN of a debit account linked to an existing SEPA mandate.
  • Modifying a RUM
    This operation is not possible via the CentralPay APIs. Modifying a RUM requires creating a new mandate (migration).
  • Change the Creditor’s Name
    If there is a change in the legal structure responsible for processing direct debits, a new CentralPay Merchant Profile (Merchant) must be created. Existing mandates will then need to be re-registered under this new profile through a migration process.

3.2. Changes that require a new mandate

The following changes require the creation of a new SEPA direct debit mandate, as they involve a new authorization from the payer:

  • Change of the debtor’s name
  • Change in the date of signing the mandate
  • Change in mandate type: transition from SDD Core to SDD B2B
    Note: This use case is not available in CentralPay services
  • Change in the sampling frequency: from one-time to recurring

3.3. Notification of changes

Notifications of changes must be submitted:

  • From the creditor to the debtor, for any changes initiated by the creditor (ICS, RUM, IBAN, etc.)
  • By the debtor to the creditor, with submission of supporting documentation (e.g., bank account information or identification) for changes to the IBAN or personal information

Versement sortant pour tiers

Le versement sortant pour un tiers permet de transférer des fonds depuis un compte de paiement ou monnaie électronique CentralPay vers le compte bancaire d’un marchand participant, en tant que mandataire CentralPay (Agent ou DME). Les partenaires (technique ou intégrateur) n’ont pas accès à cette fonction.

1. Objectif et périmètre

Ce service permet de :

  • Déclencher des versements manuels ou automatisés pour des marchands participants
  • Cibler un compte bancaire autorisé par le marchand participant
  • Utiliser un compte CentralPay comme source des fonds

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

2. Méthodes disponibles

2.1. L’API CentralPay

Endpoint : /payout/byThirdParty
➡️ Voir détails ci-dessous.

2.2. Le Portail Marchand CentralPay

Accessible pour les comptes disposant des droits adéquats (Agent ou DME).

  1. Accéder à Comptes liés
  2. Sélectionner le marchand concerné
  3. Accéder à l’onglet Comptes bancaires
  4. Choisir le compte cible et déclencher le payout

3. Endpoint API : /payout/byThirdParty

Ce service permet d’envoyer une instruction à CentralPay pour reverser une somme définie vers un compte bancaire rattaché à un marchand participant.

3.1. Limites d’usage

  • 1 versement / jour / marchand participant / devise
  • Compte bancaire cible validé par le marchand participant
  • Versement uniquement sur fonds disponibles

3.2. Paramètres API (BODY)

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

4. Suivi des versements

4.1. Récupérer un payout

Endpoint : /payout/byThirdParty/retrieve
Paramètre : payoutId (UUID)

4.2. Lister les payouts

Endpoint : /payout/byThirdParty/list
Paramètre : walletId (UUID)

4.3. Statuts possibles :

StatutSignification
PENDINGVersement en cours de traitement
PAIDVersement exécuté avec succès
CANCELVersement annulé manuellement

5. Contraintes réglementaires

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

Payout to a Third Party

An outgoing payout to a third party allows funds to be transferred from a CentralPay Payment Account or Electronic Money Account to the Bank Account of a Participant Merchant acting as a CentralPay Intermediary (Agent or EMD). Partners (technical or integration partners) do not have access to this feature.

1. Purpose and Scope

This service allows you to:

  • Initiate manual or automated payouts for Participant Merchants
  • Target a Bank Account authorized by the Participant Merchant
  • Use a CentralPay account as a source of funds

The regulated partner retains technical control over the payout, but the funds are always held and transferred by CentralPay, which remains responsible for executing the transaction.

2. Available Methods

2.1. The CentralPay API

Endpoint: /payout/byThirdParty
➡️ See details below.

2.2. The CentralPay Merchant Portal

Available to accounts with the appropriate permissions (Agent or EMD).

  1. Go to Linked Accounts
  2. Select the relevant Merchant
  3. Go to the Bank Accounts tab
  4. Select the destination account and initiate the payout

3. API endpoint: /payout/byThirdParty

This service allows you to send an instruction to CentralPay to perform a payout for a specified amount to a Bank Account linked to a Participant Merchant.

3.1. Limits on Use

  • 1 payout per day per Participant Merchant / currency
  • Target Bank Account validated by the Participating Merchant
  • Payouts may only be made from available funds

3.2. API Parameters (BODY)

ParametersTypeRequiredDescription
currencyISO 4217✅ YesCurrency of the payout (must match the Bank Account).
destinationBankAccountIdUUID✅ YesBeneficiary Bank Account (linked to the Participant Merchant).
walletIdUUID❌ NoWallet where the funds come from.
amountInteger (in cents)❌ NoAmount to be paid out. If blank: maximum balance.
merchantPayoutIdThong❌ NoInternal reference ID.
descriptionThong❌ NoFree-form text, visible in the report.
payoutReferenceString (max 35)❌ NoBank reference number (shown on the bank statement).
additionalDataMap❌ NoAdditional data (e.g., order ID, segment, etc.).
transitionWalletUUID❌ No(advanced case) temporary wallet.
customerIdUUID❌ NoCustomer ID if the target is non-commercial.

4. Tracking Payouts

4.1. Claim a payout

Endpoint: /payout/byThirdParty/retrieve
Parameter: payoutId (UUID)

4.2. List the payouts

Endpoint: /payout/byThirdParty/list
Parameter: walletId (UUID)

4.3. Possible articles of association:

StatusMeaning
PENDINGPayout is being processed
PAIDPayout successfully processed
CANCELPayout Canceled Manually

5. Regulatory Constraints

  • Only Electronic money Agents and Distributors (EMDs) registered with the ACPR through CentralPay may initiate these payouts
  • Partners must ensure that the data they submit complies with their contractual and regulatory framework
  • CentralPay reserves the right to refuse a payout or to request supporting documents if there is any doubt about the transaction

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

Platform Development

CentralPay’s APIs are based on a microservices architecture that provides maximum flexibility. Our modular approach allows us to continuously evolve our solutions to offer an ever-increasing range of services and features.

These updates are implemented following thorough impact analyses to ensure they do not require any changes to our users’ integrations. In very rare cases, these updates may require minor or more significant modifications when regulatory changes occur, as was the case with the transition to version 2.0 of the 3DS, for example.

In the event of changes to the platform or modifications to expectations regarding the use of its APIs, CentralPay commits to notifying you within a timeframe commensurate with the scope of the actions to be taken:

  • Minor changes that do not require any action on the part of the merchant or partner:
    Simple Information Disclosure
  • Minor changes requiring action by the Merchant or Partner:
    Minimum 2-month notice period + assistance with implementation
  • Major changes requiring action by the Merchant or Partner:
    Minimum 6-month notice period + support during implementation

Please note that changes requiring action on the part of our merchants or partners are either rare or nonexistent, and that every precaution is taken to avoid any impact on their business.

FAQ – 3DS 2.2

Choix du flux

Dois-je utiliser le flux BRW ou le flux 3RI ?

Le critère est qui initie la transaction et si le porteur est présent, pas le rang de la transaction :

  • BRW → transaction initiée par le client (CIT), porteur présent qui valide lui-même le paiement. À utiliser pour la première authentification d’une carte comme pour tout paiement où le client agit en séance.
  • 3RI → transaction initiée par le marchand (MIT), porteur absent, sur la base d’une CIT authentifiée antérieure (référencée via threeDSReqPriorRef).

Voir la vue d’ensemble de la section et la page MIT.

Puis-je utiliser le flux BRW pour mes transactions récurrentes / initiées par le marchand ?

Non. Le BRW suppose un navigateur et un porteur présents. L’employer pour des MIT entraîne friction inutile, soft declines et non-conformité DSP2. Pour ces transactions, utilisez le 3RI, qui s’appuie sur l’acsTransID de la CIT initiale. Une MIT peut toutefois être exceptionnellement requalifiée en CIT par l’émetteur ; dans ce cas, rejouez une CIT (BRW) avec le porteur.

Environnement de test

Existe-t-il des cartes de test pour des transactions 3DS2 en environnement RCT ?

👉 Consultez la liste des cartes de test de l’environnement RCT.

Erreurs et statuts d’authentification 3DS

Mon versioning retourne une erreur 404 « Card account number not found in card ranges from Directory Server ». Que faire ?

La carte utilisée n’est pas enrôlée 3DS 2.2 : la transaction ne peut pas se faire en 3DS 2.2. Nous conseillons de prévoir un basculement vers un paiement en 3DS1 pour ce type de carte.

La requête Result retourne transStatus = U. Comment l’interpréter ?

La valeur U signifie que l’authentification / vérification n’a pas pu se faire (problème technique ou autre).

  • Côté SmartForm : lors du challenge, seules les valeurs Y et A valident le challenge et permettent de continuer le paiement. Les autres valeurs font échouer le challenge et le paiement.
  • Côté CustomForm : le comportement peut différer. Vous pouvez utiliser la valeur U pour retenter un challenge ; en cas de nouvel échec, basculer en 3DS1, ou considérer le paiement comme refusé. Ces différents traitements sont possibles.
SmartForm vs CustomForm : le SmartForm est la page de paiement hébergée par 

Après soumission du formulaire à l’acsURL, le client revient sans CRES mais avec un paramètre ERROR (base64) et un THREEDSSESSIONDATA vide. Que faire ?

Vérifiez que tout votre process 3DS2 se déroule sur une seule et même page via la solution d’iframe. Si le processus est conforme, 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, grâce à la solution d’iframe.

Erreur 303 « acquirerBIN, acquirerMerchantID not recognized » lors de l’authentification. Que faire ?

Il s’agit soit d’un contrat qui n’est pas 3DS2, soit d’un autre problème. Dans ce dernier cas, contactez le support technique en fournissant le numéro de contrat monétique (si connu) et les autres informations utiles.

Erreur 203 « Validation of 3DS Requestor Authentication data failed […] » pour le champ merchant.merchantName. Que signifie-t-elle ?

L’erreur 203 signale un caractère invalide dans le paramètre merchant.merchantName.

Erreur « There is no unique source of card » dans la clé card data. Que signifie-t-elle ?

Cette erreur, commune à toute la plateforme, survient lorsque vous envoyez les informations de carte deux fois : par exemple un cardToken et un cardId, ou un PAN et un cardToken. N’envoyez qu’une seule source de carte.

Illustration de l'erreur de source de carte
Exemple complémentaire

Autorisation bancaire

L’API transaction retourne « Soft Decline » alors que threeDSServerTransID est bien celui retourné par le CRES. Que faire ?

Le soft decline (code A1) est renvoyé par la banque lorsque le 3DS n’est pas présent dans la transaction. Vérifiez qu’aucun champ 3ds[...] n’est manquant — voir les données à transmettre sur la page BRW, étape Transaction.

Codes retour banque 5 et 12 (hors 3DS)

Ces codes proviennent de l’autorisation bancaire et ne sont pas spécifiques au 3DS.

  • Code 5 : la banque refuse sans donner de statut particulier (CVV erroné ou autre décision que nous ne connaissons pas). Ce statut ne permet pas d’affirmer que la banque refusera l’autorisation après d’autres tentatives.
  • Code 12 : la banque refuse sans donner de statut particulier. Causes possibles : transaction invalide ; CAVV erroné ou invalide (le CAVV est le cryptogramme d’authentification fourni par l’ACS lors du 3DS, à ne pas confondre avec le CVV) ; ou autre décision que nous ne connaissons pas.

FAQ – 3DS 2.2

Selecting a flow

Should I use the BRW feed or the 3RI feed?

The criterion is who initiates the transaction and if the cardholder is present, not the order of the transaction:

  • BRW → customer-initiated transaction (CIT), where the cardholder is present and authorizes the payment personally. Use this for the initial authentication of a card as well as for any payment where the customer is present during the transaction.
  • 3RI → merchant-initiated transaction (MIT), with the cardholder absent, based on a previously authenticated CIT (referenced via threeDSReqPriorRef).

See the section overview and the MIT page.

Can I use the BRW feed for my recurring or Merchant-initiated transactions?

No. The BRW assumes that both a browser and a cardholder are present. Using it for MITs results in unnecessary friction, soft declines, and PSD2 non-compliance. For these transactions, use the 3RI, which relies on the acsTransID from the initial CIT. However, an MIT may, in exceptional cases, be reclassified as a CIT by the issuer; in this case, reprocess a CIT (BRW) with the cardholder.

Test environment

Are there any test cards for 3DS2 transactions in a Sandbox environment?

👉 View the list of test maps for the RCT environment.

3DS authentication errors and statuses

My versioning is returning a 404 error: « Card account number not found in card ranges from Directory Server. » What should I do?

The card being used is not enrolled in 3DS 2.2: the transaction cannot be processed using 3DS 2.2. We recommend switching to a 3DS1 payment for this type of card.

The Result query returns  » transStatus = U. » How should this be interpreted?

The value U means that authentication/verification could not be completed (due to a technical issue or other problem).

  • Regarding SmartForm: during the challenge, only the values Y and A pass the challenge and allow the payment to proceed. Any other values cause the challenge and the payment to fail.
  • Regarding CustomForm : the behavior may vary. You can use the value U to retry a challenge; if it fails again, switch to 3DS1, or treat the payment as declined. These different handling options are possible.
SmartForm vs. CustomForm : SmartForm is the payment page hosted by 

After submitting the form toacsURL, the customer returns without a CRES but with a  » ERROR  » (base64) parameter and an empty  » THREEDSSESSIONDATA. » What should be done?

Verify that your entire 3DS2 process takes place on a single page using the iframe solution. If the process is compliant, contact technical support with the necessary information.

ℹ️ As a reminder, all steps of the form are completed on a single page, without being redirected to a bank page or any other page, thanks to the iframe solution.

Error 303: « acquirerBIN, acquirerMerchantID not recognized » during authentication. What should I do?

This is either a contract that is not 3DS2 or another issue. In the second case, contact technical support and provide the electronic payment contract number (if known) and any other relevant information.

Error 203: “Validation of 3DS Requestor Authentication data failed […]” for the “ merchant.merchantName ” field. What does this mean?

Error 203 indicates an invalid character in parameter merchant.merchantName.

« There is no unique source of card » error in the key ` card data`. What does this mean?

This error, which is common across the entire platform, happens when you send card information twice: for example a cardToken and a cardId, or a PAN and a cardToken. Send only one set of card information.

Illustration of the card source error
Additional example

Bank Authorization

The transaction API returns « Soft Decline, » even though  » threeDSServerTransID  » is indeed the status returned by CRES. What should I do?

The bank returns a “soft decline” (code A1) when 3DS is not included in the transaction. Verify that no 3ds[...] fields are missing — see the data to be transmitted on the BRW page, under the “Transaction” step.

Bank return codes 5 and 12 (excluding 3DS)

These codes come from the bank authorization and are not specific to 3DS.

  • Code 5: The bank declines the transaction without providing a specific reason (incorrect CVV or another reason we are unaware of). This status does not indicate that the bank will decline authorization after further attempts.
  • Code 12: The bank declines the transaction without providing a specific status. Possible causes: invalid transaction; incorrect or invalid CAVV (the CAVV is the authentication code provided by the ACS during 3DS; not to be confused with the CVV); or another reason unknown to us.

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

Pay by Bank - Payment Initiation (PIS)

1. Operation

The Payment Initiation Service (PIS) allows your customers to make a bank transfer directly from their online banking environment, without having to manually enter the recipient’s details. This feature is based on the Open Banking protocol and complies with PSD2.

At CentralPay, this service is offered under the name “Pay by Bank” and is currently available only through the hosted payment form (SmartForm) when using the PaymentRequest service.

ℹ️ This service is available only through the Smart Form (PaymentRequest). It is not yet possible to use this payment method as the sole option; it is always offered in addition to the traditional bank transfer payment service. The payment experience depends on the interfaces provided by the paying customer’s bank.  

2. Service activation

Payment initiation is not enabled by default. To use this feature, you must submit a request to the CentralPay support team.

3. Use via PaymentRequest

To allow your customers to initiate a transfer directly from the payment form, you must:

  1. Create a PaymentRequest following the usual procedure.
  2. Include the following payment method in the `payment_methods` property:
    • PIS Standard `“payment_methods”`: [“SCT_TRANSACTION_PIS”]
    • PIS IP `“payment_methods”`: [“SCT_TRANSACTION_PIS_IP”]

When this payment method is available, the Smart Form will offer the user a choice between:

  • Standard bank transfer (bank account information displayed for you to copy)
  • Initiating a payment through one’s banking system (Pay by Bank)
ℹ️ At this stage, it is not possible to require the exclusive use of the payment initiation feature. The form will always display the option to enter standard bank account information. 

4. User journey

  1. The user selects “Pay by Bank” on the form. The user selects “Pay by Bank” on the form.
  2. He selects his bank from the list provided
  3. He is redirected to his bank’s website to confirm the transfer
  4. Once the payment is initiated, the user is redirected to your return page

5. Monitoring and status reports

Once the PaymentRequest has been created, the status of the transfer is available via the API, just as with any other payment:

  • The payment_method field will be set to SCT_TRANSACTION
  • The “status” field will indicate the progress of the payment initiation (for example, PENDING, SUCCEEDED, FAILED)
ℹ️ As with traditional transfers, the completion of the payment depends on the customer’s bank actually processing the transfer. The customer can choose between a standard transfer (D+1) and an immediate transfer. 

6. List of available banks by country

ℹ️ In the staging environment, a bank named “Test Connector” is displayed to allow you to test the end-to-end flow. Please note: The maximum amount allowed on this test connector is €20. 

French banks:

InstitutionStandardSnapshot
Allianz Bank✅ Available🚫 Not available
Arkéa Banking Services✅ Available🚫 Not available
Arkéa Bank for Businesses and Institutions✅ Available✅ Available
Arkéa Private Bank✅ Available✅ Available
AXA Bank✅ Available✅ Available
BCP Bank✅ Available✅ Available
Chalus Bank✅ Available✅ Available
Bank of Savoy✅ Available✅ Available
Bank of Territoires✅ Available🚫 Not available
Crédit Mutuel European Bank✅ Available✅ Available
Banque Populaire✅ Available✅ Available
Transatlantic Bank✅ Available✅ Available
BBVA (Not activated)🚫 Not available🚫 Not available
BforBank✅ Available🚫 Not available
BNP Paribas✅ Available✅ Available
BNP Paribas Business✅ Available🚫 Not available
BNP Paribas New Caledonia (Not activated)🚫 Not available🚫 Not available
BoursoBank✅ Available✅ Available
BRED✅ Available✅ Available
BTP Bank✅ Available✅ Available
Caisse d’Épargne – Personal Banking✅ Available✅ Available
Caisse d’Épargne for Professionals✅ Available✅ Available
CCMDirect (Not activated)🚫 Not available🚫 Not available
CIC✅ Available✅ Available
CIC Private Bank✅ Available✅ Available
Crédit Agricole✅ Available✅ Available
Crédit Coopératif✅ Available✅ Available
Crédit Maritime✅ Available✅ Available
Crédit Mutuel✅ Available✅ Available
Crédit Mutuel of Bretagne✅ Available✅ Available
Crédit Mutuel of Southwest✅ Available✅ Available
Fortuneo✅ Available✅ Available
Hello bank!✅ Available✅ Available
ING Wholesale Banking✅ Available🚫 Not available
La Banque Postale✅ Available✅ Available
LCL✅ Available✅ Available
Louvre Private Bank✅ Available✅ Available
Manager.one✅ Available🚫 Not available
Memo Bank✅ Available✅ Available
Monabanq✅ Available✅ Available
N26✅ Available✅ Available
Nef Pro✅ Available🚫 Not available
Neuflize OBC (Non activé)🚫 Not available🚫 Not available
Palatine✅ Available✅ Available
Qonto✅ Available🚫 Not available
Revolut✅ Available🚫 Not available
Société Générale✅ Available✅ Available

Ouvrir un compte CentralPay

Articles

  • Parcours d'entrée en relation
  • Principes de réserve
  • Conditions générales d’utilisation

Parcours d'entrée en relation

CentralPay propose plusieurs modes d’entrée en relation, selon votre situation :

  • Vous êtes un marchand standard, partenaire ou mandataire en relation directe avec CentralPay
  • Vous êtes un marchand participant d’un mandataire, ou un marchand standard rattaché à un partenaire technique utilisant la solution CentralPay

Ce guide détaille les différentes étapes, selon votre profil. Certaines étapes peuvent être adaptées ou simplifiées selon les modalités de votre intégration.

1. Marchands en direct

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

1.1. Qualification de votre projet

Nos équipes commerciales échangent avec vous pour analyser votre projet :

  • Parcours de paiement envisagé (web, mobile, point de vente, récurrent…)
  • Moyens de paiement souhaités (carte, virement, SEPA, Pay By Bank…)
  • Méthodes d’intégration (API, portail, connecteur)
  • Typologie de vos clients finaux (B2B, B2C, abonnements…)
  • Volumétrie estimée (fréquence et montants)

1.2. Pré-analyse conformité de votre projet

Sur la base des informations fournies, notre service conformité effectue une pré-analyse réglementaire visant à :

  • Vérifier la compatibilité de votre activité avec notre cadre réglementaire
  • Identifier les points de vigilance potentiels (secteur sensible, flux complexes…)
  • Prédéfinir les éventuelles garanties ou conditions particulières

1.3. Signature du contrat cadre

Une fois cette pré-analyse validée, vous êtes invité à signer le contrat cadre de services de paiement ou de monnaie électronique.

  • Voir le contrat cadre de services de paiement
  • Un représentant légal peut désigner un mandataire pour signer à sa place (modèle de délégation disponible sur demande)

1.4. Lancement de l’intégration

Après signature du contrat :

  • Vous recevez vos accès à l’environnement de test
  • Vous accédez aux documentations techniques CentralPay

Si vous bénéficiez d’un accompagnement personnalisé, une réunion d’onboarding est organisée pour configurer vos premiers paramétrages (notifications, versements, droits utilisateurs…).

1.5. Création du profil Marchand CentralPay

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

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

Cette analyse peut donner lieu à :

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

1.6. Mise en production

Une fois l’ensemble des étapes validées, y compris l’intégration et les éventuelles factures initiales :

  • Une date de mise en production est convenue
  • Votre profil est débloqué
  • Vous pouvez encaisser vos premières transactions

2. Marchands liés à un partenaire technique

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

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

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

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

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

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

Principes de réserve

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

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

1. Le collatéral

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

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

2. Le pied de compte

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

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

3. La réserve glissante

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

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

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

Conditions générales d’utilisation

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

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

1. Deux types de CGU applicables

CentralPay propose deux catégories de comptes, soumises à des conditions générales distinctes en fonction du service souscrit :

Type de compteConditions générales applicables
Compte de paiementConditions générales de service de paiement
Compte de monnaie électroniqueConditions générales de service de monnaie électronique

Obligation d’acceptation :

Ces conditions générales doivent être lues et acceptées électroniquement par le titulaire de chaque compte, qu’il soit ouvert directement par un marchand, ou via un partenaire CentralPay.

2. Contrat cadre pour les encaissements pour compte propre

Dans le cas où un compte est utilisé pour encaisser des fonds pour compte propre (modèle marchand standard), CentralPay met également à disposition un modèle de contrat cadre dédié :

  • Ce contrat précise les droits et obligations liés à l’utilisation du compte pour l’encaissement d’opérations commerciales,
  • Il est signé électroniquement par le représentant légal ou par une personne habilitée (via délégation de pouvoir).

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

Open a CentralPay account

Articles

  • Onboarding Path
  • Principles of Reserve
  • Terms and Conditions of Use

Onboarding Path

CentralPay offers several ways of onboarding, depending on your situation:

  • You are a standard merchant, partner, or intermediary working directly with CentralPay
  • You are a Participant Merchant through an Intermediary, or a standard merchant affiliated with a Technical Partner using the CentralPay solution

This guide outlines the various steps based on your profile. Some steps may be adapted or simplified depending on the specifics of your Integration process.

1. Online Merchants

The onboarding process consists of six main steps.

1.1. Project Eligibility

Our sales teams will work with you to analyze your project:

  • Proposed payment channels (web, mobile, Point of Sale (POS), recurring, etc.)
  • Preferred payment methods (credit card, Bank transfer, SEPA, Pay By Bank, etc.)
  • Integration Methods (API, Portal, Connector)
  • Profile of Your End Customers (B2B, B2C, subscriptions, etc.)
  • Estimated volume (frequency and amounts)

1.2. Preliminary Compliance Analysis of Your Project

Based on the information provided, our compliance department conducts a preliminary regulatory analysis aimed at:

  • Check whether your business is compatible with our regulatory framework
  • Identify potential areas of concern (sensitive sectors, complex flows, etc.)
  • Specify any warranties or special conditions in advance

1.3. Signing of the Master Agreement

Once this preliminary analysis has been approved, you will be asked to sign the Payment Services Framework Agreement or Electronic money agreement.

  • View the Payment Services Framework Agreement
  • A legal representative may designate an intermediary to sign on their behalf (sample delegation form available upon request)

1.4. Launch of the Integration

After signing the contract:

  • You will receive your login credentials for the test environment
  • You can access the CentralPay technical documentation

If you are receiving personalized support, an onboarding meeting will be scheduled to set up your initial settings (notifications, Payouts, user permissions, etc.).

1.5. Creating a CentralPay Merchant Profile

The legal representative receives a secure registration link to create the profile:

  • It supplements the legal information
  • He accepts the Terms and Conditions of Use
  • The comprehensive compliance analysis is then initiated

This analysis may lead to:

  • Requests for additional documents (KYC/KYB, contracts, supporting documents, etc.)
  • A refusal to open the account if the regulatory criteria are not met
  • Profile validation, leading to its activation

1.6. Go-Live

Once all steps have been validated, including Integration and any initial invoices:

  • A go-live date has been agreed upon
  • Your profile has been unlocked
  • You can cash out your first transactions

2. Merchants affiliated with a Technical Partner

If you are a merchant integrated through a CentralPay Technical Partner or Intermediary Merchant, the process is simplified.

You’ll go directly to Step 5: Creating a CentralPay Merchant Profile.

2.1. Single Step: Profile Creation and Regulatory Approval

  • You will receive a registration link sent by your partner or directly from CentralPay.
  • This link allows you to:
    • Please complete the information about your organization
    • Describe your business in detail, the types of end customers you serve, and the estimated volume of your operations
    • Accept the Terms and Conditions of Use and sign the framework agreement

The technical aspects (integration, user flow, payment methods) have already been defined as part of the agreement signed with the Technical Partner or Intermediary.

CentralPay’s comprehensive compliance review remains mandatory before the profile can be approved.

Principles of Reserve

The reserve represents the funds held in your CentralPay reserve account to cover R-transactions (rejections, refusals, returns, refunds, chargebacks, and unpaid amounts) when your Payment Account lacks sufficient funds. These settings are determined based on your account’s financial risk profile and are updated based on an analysis of your R-transactions over a sufficient period of time. Recurring transactions via SEPA Direct Debit and credit card are particularly prone to the risk of R-transactions.

CentralPay offers three types of protection guarantees that may apply to Merchants, depending on the nature of their contract:

1. Collateral

It represents the fixed amount paid at the start of the relationship, intended to cover the credit risk in the event that the Merchant is unable to meet its repayment obligations to its customers.

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

2. The account footer

In the absence of collateral, a fixed amount may be deducted directly from transactions to guarantee refunds to customers if necessary. The account balance must therefore exceed the account threshold to authorize Payouts (payout).

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

3. The Rolling reserve

Depending on the industry and the account settlement processes, a rolling reserve may be automatically established. This is an additional safeguard that sets aside a certain percentage of your collection volume in a reserve account to enable automatic refunds in the event of a Chargeback, fraud, or to cover potential operational fees if your Payment Account is insolvent. This amount belongs to the Merchant’s cash flow and is held for a specified number of days before being released (generally between 90 and 180 days).

For example, the variable threshold for the Rolling reserve is 5% of the 90-day collection volume. The daily calculation of the reserve amount is as follows: total amount of transactions collected over the past 90 days * 5%

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

Terms and Conditions of Use

The use of CentralPay services is governed by several contractual documents that each account owner must review and accept before activating their account.

👉 View the latest versions of the CentralPay Terms and Conditions currently in effect

1. Two Types of Applicable Terms of Use

CentralPay offers two types of accounts, each subject to separate terms and conditions depending on the service subscribed to:

Account typeApplicable Terms and Conditions
Payment AccountGeneral Terms and Conditions for Payment Services
Electronic Money AccountGeneral Terms and Conditions for Electronic Money Services

Obligation to Accept:

These terms and conditions must be read and accepted electronically by the account owner of each account, whether the account is opened directly by a Merchant or through a CentralPay partner.

2. Master Agreement for Collections on Own Account

If an account is used to collect funds on its own account (standard Merchant model), CentralPay also provides a dedicated master agreement template:

  • This agreement sets forth the rights and obligations related to the use of the account for the collection of payments for commercial transactions,
  • It is signed electronically by the legal representative or by an authorized person (by delegation of authority).

👉 View the latest versions of the CentralPay Terms and Conditions currently in effect

Validation d'un enrôlement

Une fois toutes les étapes du profil et du workflow complétées (que ce soit via le portail d’onboarding CentralPay ou par API), l’enrôlement entre en phase de vérification par les équipes conformité de CentralPay.

1. Vérification par le service conformité

Les analystes procèdent à une analyse complète des informations et documents collectés au cours du parcours. Cette étape peut mener à l’une des décisions suivantes :

1.1 Validation de l’enrôlement

Si les éléments fournis sont complets, lisibles et conformes aux obligations réglementaires, l’enrôlement est validé. CentralPay procède alors automatiquement à la création :

  • Du profil Marchand CentralPay (Merchant)
  • Du compte de paiement (Wallet)
  • Du profil utilisateur légal du profil Marchand CentralPay (BO User)
ℹ️ Ces entités sont accessibles immédiatement depuis vos outils de supervision (portail ou API).

1.2. Demande de compléments

Si certaines pièces sont manquantes, floues, expirées ou incohérentes, une demande de documents complémentaires peut être émise par le service conformité.

Cette demande est :

  • Soit transmise par email directement au futur titulaire du compte
  • Soit affichée dans le portail d’onboarding CentralPay, si la demande le permet
ℹ️ L’utilisateur pourra compléter les pièces demandées pour relancer la vérification.

1.3. Refus de l’enrôlement

Dans certains cas (documents non valides, identité invalide, incohérences non résolues, risque trop élevé), l’ouverture du compte peut être refusée.

Aucune entité CentralPay (BO User, Wallet, Merchant) n’est alors créée.

2. Notifications via webhook

Quel que soit le scénario de sortie (validation, complément ou refus), vous êtes notifié en temps réel via les webhooks configurés.

Cela vous permet de :

  • Suivre les enrôlements au fil de l’eau
  • Adapter votre UX si l’enrôlement est refusé ou en attente
  • Déclencher des actions internes (création CRM, attribution, etc.)

Enrollment validation

Once all profile and workflow steps have been completed (whether via the CentralPay onboarding portal or via API), the enrollment enters the verification phase, which is handled by CentralPay’s compliance teams.

1. Review by the compliance department

Analysts conduct a comprehensive analysis of the information and documents collected throughout the process. This step may lead to one of the following decisions:

1.1 Enrollment validation

If the information provided is complete, legible, and in compliance with regulatory requirements, the enrollment is approved. CentralPay then automatically creates:

  • Of the CentralPay Merchant Profile (Merchant)
  • Of the payment account (Wallet)
  • Of the legal user profile for the CentralPay Merchant Profile (BO User).
ℹ️ These entities are immediately accessible from your monitoring tools (portal or API).

1.2. Additional information requested

If certain documents are missing, unclear, expired, or inconsistent, the compliance department may request additional documentation.

This request is:

  • Either sent by email directly to the future account owner
  • Either displayed in the CentralPay onboarding portal, if the request allows it
ℹ️ The user can submit the requested documents to restart the verification process.

1.3. Refusal of enrollment

In certain cases (invalid documents, invalid identity, unresolved inconsistencies, or excessive risk), the account opening request may be denied.

No CentralPay entity (BO User, Wallet, Merchant) is created at that point.

2. Notifications via webhook

Regardless of the outcome (approval, request for additional information, or rejection), you will be notified in real time via the configured webhooks.

This allows you to:

  • Track enrollments in real time
  • Adjust your UX if enrollment is denied or pending
  • Trigger internal actions (CRM creation, assignment, etc.)

FAQ - Conformité et résilience

Gouvernance et responsabilités

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

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

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

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

Protection des données et des systèmes

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

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

Tests et contrôles de sécurité

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

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

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

Organisation et culture sécurité

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

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

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

Anticipation et amélioration continue

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

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

Résilience et continuité

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

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

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

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

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

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

Relations avec les prestataires

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

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

Gestion des incidents

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

FAQ - Compliance and Resilience

Governance and Responsibilities

Who is responsible for security at CentralPay?
Security is overseen by our CISO (Chief Information Security Officer), who reports directly to the President. The CISO relies on an ICT committee and a risk management framework aligned with ISO 27005 and the DORA regulation. The CISO can be reached at the following address: rssi@centralpay.com

Do you have a documented security policy?
Yes. Our Information System Security Policy (ISSP) defines the rules that apply to all our teams and service providers. It covers data classification, access management, system protection, incident management, business continuity, and oversight of IT service providers.

How do you integrate security into your strategic decisions?
Security and resilience are integrated into our comprehensive risk management framework. This framework includes ISO/DORA-aligned risk mapping, a risk appetite policy, and monitoring through key risk indicators (KRIs). Security decisions are reviewed by the Security & Compliance Committee and approved by senior management.

How do you monitor your security systems?
We follow the three lines of defense model: business teams perform operational controls, compliance and ongoing monitoring provide oversight, and periodic audits conduct an independent assessment.

Data and System Protection

How do you protect CentralPay’s data and systems?
All data is encrypted: TLS 1.2/1.3 for data in transit and AES-256 for data at rest. Card data is processed exclusively in a PCI DSS Level 1-certified environment and immediately tokenized, so that no full card numbers are stored in plain text.

Our infrastructure is segmented and protected by firewalls, IDS/IPS, and SOC monitoring. Access to sensitive environments is restricted, follows the principle of least privilege, and is protected by MFA. All workstations are encrypted, secured by antivirus/EDR software, and updated automatically.

Safety Tests and Inspections

Do you conduct security tests?
Yes. We regularly conduct independent penetration tests, automated vulnerability scans, and external audits (including PCI DSS). These checks help us identify vulnerabilities and continuously strengthen our security measures.

How do you handle logging?
Logs are retained for 24 months, time-stamped, protected by encryption, and integrated into our security information and event management (SIEM) system. Access to them is strictly limited to authorized teams.

How do you manage vulnerabilities and updates?
We follow a strict patch management policy: critical vulnerabilities are patched within 24 hours, high-severity vulnerabilities within 7 days, and other patches are applied on a scheduled basis. Compliance is monitored through scans and compliance reports.

Organizational Structure and Safety Culture

How do you raise your employees’ awareness of safety?
All employees undergo mandatory annual training on cybersecurity, the GDPR, and anti-money laundering and counter-terrorism financing (AML/CTF) regulations. Regular awareness campaigns (phishing exercises, e-learning) complement this program. Technical teams receive more in-depth training.

How do you ensure that access remains restricted?
We follow the principle of least privilege: each user has access only to the resources necessary for their role. Permissions are justified, temporary, and systematically tracked.

How do you manage administrator access?
Access to elevated privileges is limited to a small number of individuals, is subject to MFA, is tracked, and is reviewed regularly. Such access is granted only for specific purposes and for a limited period of time.

Proactive Planning and Continuous Improvement

How do you anticipate emerging threats?
We conduct active cybersecurity monitoring through bulletins from CERT-FR, ANSSI, software vendors, and cloud providers. This threat intelligence activity allows us to adapt our defenses in real time.

How do you continuously improve your security?
Every incident, audit, or test is followed by a documented review and a corrective action plan. Our policies and procedures are reviewed annually to integrate these lessons learned and regulatory changes.

Resilience and Continuity

How do you ensure the continuity of your services?
We have an Emergency and Business Continuity Plan (PUPA) that includes a Business Continuity Plan (BCP) and a Disaster Recovery Plan (DRP). These plans are regularly tested through crisis drills and failover scenarios.

How do you ensure availability and redundancy?
Our services are based on a redundant architecture spanning multiple European regions, ensuring availability of more than 99.95%.

What are your RPO and RTO goals?
CentralPay regularly defines and tests its business continuity objectives:

  • RPO (Recovery Point Objective): less than 1 minute for critical systems, thanks to real-time data replication.
  • RTO (Recovery Time Objective): less than 15 minutes for the restoration of essential services, thanks to our redundant architecture and failover procedures.
    These objectives are validated during our business continuity and disaster recovery drills and incorporated into our DORA framework.

How do you manage your backups?
Backups are encrypted, isolated, replicated, and regularly tested to ensure they can be restored. They follow the same security policies as production environments.

Do you conduct resilience tests in accordance with DORA?
Yes. We conduct crisis exercises (simulated cyberattacks, critical outages), load and performance tests, failover scenarios, and—for critical functions—advanced tests such as TLPT (Threat-Led Penetration Testing).

Relationships with Service Providers

How do you select your critical service providers?
Each service provider undergoes due diligence (security, compliance, data location, SLA). The contracts include GDPR and DORA clauses (security, incident notification, right to audit).

How do you monitor your service providers over time?
We maintain a DORA registry that lists all of our IT service providers and identifies critical ones. These critical providers are subject to enhanced oversight, including regular reviews, audits, ISO/PCI certifications, and resilience assessments.

Incident Management

What happens in the event of a security incident?
We follow an incident management procedure that includes: detection, classification, containment, remediation, and forensic analysis. If necessary, we notify the CNIL within 72 hours and inform the affected customers. Every major incident results in a post-incident review and a corrective action plan that is monitored until the incident is closed.

Balance Histories

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

Balance Histories

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

Import de fichiers

Service d’import de fichiers CentralPay

Le Service d’import de fichiers vous permet de piloter des opérations CentralPay en masse, en déposant de simples fichiers CSV plutôt qu’en appelant l’API ligne à ligne.

À ce jour, deux types de fichiers sont pris en charge :

  • Fichiers Customer : pour créer vos profils clients (customers) dans CentralPay, avec en option un compte bancaire (BankAccount) et/ou un mandat de prélèvement SEPA (SDD).
  • Fichiers Operation : pour déclencher des prélèvements SEPA (SDD) sur vos profils clients et/ou des virements SEPA sortants (SCT) vers les comptes bancaires de vos profils clients.

Pour chaque fichier déposé, CentralPay vous renvoie des fichiers de compte-rendu vous indiquant, ligne par ligne, ce qui a été accepté, refusé ou rejeté.

1. À qui s’adresse ce service ?

Ce service est conçu pour les marchands qui traitent des volumes d’opérations et préfèrent un échange par fichiers à une intégration API en temps réel : encaissements récurrents par prélèvement, versements sortants groupés, constitution ou migration d’un référentiel clients/mandats SEPA, etc.

L’échange s’effectue de façon asynchrone : vous déposez vos fichiers, CentralPay les traite, puis met à votre disposition les comptes-rendus.

2. Prérequis

2.1 Prérequis communs

  • Un compte marchand CentralPay actif avec accès au Portail Marchand.
  • Votre identifiant marchand (UUID) CentralPay. Les 8 premiers caractères de cet UUID servent à nommer vos fichiers (voir section 5.1 Règles communes à tous les fichiers).
  • La mise en place d’un canal d’échange sécurisé (SFTP, voir section 4. Mise en place du SFTP) sauf si un autre canal a été convenu avec votre interlocuteur CentralPay.
  • Une phase de recette avec l’équipe intégration CentralPay avant la mise en production.

2.2 Prérequis pour les opérations de virements SEPA sortants (CREDIT / SCT)

  • Le service de virement SEPA sortant doit être activé sur votre profil marchand.

2.3 Prérequis pour les opérations prélèvements SEPA (DEBIT / SDD)

Les prélèvements imposent des prérequis supplémentaires, à valider avant tout premier dépôt :

  • Votre ICS (Identifiant Créancier SEPA) doit être déclaré dans votre profil marchand CentralPay (démarche réalisée avec votre interlocuteur CentralPay).
  • Le service de prélèvement SEPA doit être activé sur votre profil marchand (démarche réalisée avec votre interlocuteur CentralPay).
  • Validation de la Conformité du mode de gestion des mandats. Dans ce parcours d’intégration, CentralPay ne recueille pas la signature du mandat : vous transmettez vous-même, dans le fichier Customer, la référence du mandat (MANDATE_RUM) et sa date de signature (MANDATE_SIGN_DATE). En conséquence :
    • Votre interlocuteur CentralPay doit valider en amont le principe de gestion des mandats par ce biais, qu’il s’agisse d’une migration de mandats existants ou de mandats nouvellement collectés par vos soins.
    • Vous restez responsable de la collecte, de la validité juridique et de la conservation des mandats signés, ainsi que de l’information préalable de vos clients (préavis, RUM, ICS).
Sans ces prérequis, les fichiers comportant des prélèvements ne pourront pas être traités, que ce soit en environnement de RCT ou de PROD.

3. Comment fonctionne le cycle de traitement ?

  1. Dépôt. Vous déposez vos fichiers CSV (Customer et/ou Operation) sur le SFTP, dans le dossier de dépôt.
  2. Contrôle technique (ACK). CentralPay vérifie chaque ligne (format, champs obligatoires, cohérence) et vous renvoie un fichier .ACK : chaque ligne y est marquée ACCEPTED ou REFUSED, avec le motif d’erreur le cas échéant.
  3. Traitement bancaire. Les lignes techniquement valides sont transmises aux circuits bancaires SEPA.
  4. Compte-rendu de règlement (SET). Pour les opérations, CentralPay produit des fichiers .SET indiquant l’avancement du règlement (ACCEPTED / PENDING / REFUSED) une fois les retours bancaires disponibles.
  5. Rejets post-règlement (RET). En cas de rejet SEPA survenant après le règlement (par exemple une contestation client), CentralPay produit un fichier .RET reprenant le motif et le montant retournés.
Les fichiers Customer ne génèrent pas de compte-rendu bancaire (.SET / .RET) : seul un .ACK est renvoyé.

4. Mise en place du SFTP

Le SFTP est le canal d’échange recommandé. Il garantit un dépôt et une récupération sécurisés, et permet à CentralPay de récupérer et traiter automatiquement vos fichiers.

4.1 Modèle d’échange

Le SFTP est hébergé par le marchand.

CentralPay se connecte à votre SFTP, récupère les fichiers dans un dossier de sortie et y dépose les comptes-rendus dans un dossier d’entrée.

4.2 Convention de dossiers

L’échange repose sur deux répertoires :

RépertoireSensContenu
Dossier de dépôt (nommé /OUT)Marchand → CentralPayVos fichiers Customer et Operation à traiter
Dossier de retour (nommé /IN)CentralPay → MarchandLes comptes-rendus .ACK, .SET, .RET

4.3 Étapes de mise en place

  1. Demander l’activation auprès de votre interlocuteur CentralPay.
  2. Échanger les accès : authentification par clé SSH.
    • Il convient de créer deux espaces : un SFTP dédié à la recette et un dédié à la production
    • Les informations du SFTP (hote + login) devront nous être fournies par email
    • Afin que nous puissions nous connecter à votre SFTP, une clé publique Centralpay (par environnement) vous sera communiquée
    • Par ailleurs, il est recommandé de mettre en liste blanche (whitelist) les adresses IP de CentralPay (celles-ci vous seront communiquées lors de votre intégration).
  3. Utilisation de l’arborescence définie précédemment (dossiers de dépôt /OUT et de retour /IN).
  4. Tester en recette avec un fichier d’exemple, valider la bonne réception des .ACK, puis basculer en production.

5. Préparer vos fichiers

5.1 Règles communes à tous les fichiers

  • Format : CSV. La ligne d’en-tête (header) est obligatoire dans tous les fichiers, en entrée comme en sortie.
  • Nommage :
    • Fichier client : <8 premiers caractères de votre UUID marchand en minucules>_CUST_<référence libre>.csv
    • Fichier opérations : <8 premiers caractères de votre UUID marchand en minucules>_OPER_<référence libre>.csv
    • La référence libre est à votre main (souvent un horodatage). Le nom complet ne doit pas dépasser 100 caractères.
    • Exemples : c494f877_CUST_20241025110500.csv · c494f877_OPER_20241025110500.csv
  • Montants : exprimés en unité mineure (centimes d’euro) et toujours positifs. Le sens (débit/crédit) est porté par la colonne OPERATION_TYPE, pas par le signe du montant.
  • Légende des colonnes dans les tableaux ci-dessous :
    • Obligatoire : la ligne est refusée si la valeur est absente.
    • Facultatif : peut être laissé vide.
    • Conditionnel : requis uniquement dans le cas décrit.

5.2 Fichier Customer

Ce fichier crée vos profils clients. Selon votre besoin, il peut créer en une seule ligne : le profil client seul, le client + un compte bancaire, ou le client + un compte bancaire + un mandat SDD.

ColonneFormatStatutDescription
MERCHANT_IDUUIDObligatoireVotre identifiant marchand CentralPay
MERCHANT_CUSTOMER_IDString(100)FacultatifVotre référence client interne (doit être unique). Fortement recommandé pour réconcilier vos opérations
DESCRIPTIONString(256)FacultatifChamp libre à votre usage
TYPEINDIVIDUAL / LEGAL_ENTITYObligatoirePersonne physique ou morale
SOCIAL_REASONString(35)ConditionnelRequis si TYPE = LEGAL_ENTITY (raison sociale)
FIRST_NAMEString(35)ObligatoirePrénom (du représentant légal si LEGAL_ENTITY)
LAST_NAMEString(35)ObligatoireNom (du représentant légal si LEGAL_ENTITY)
EMAILString(255)Facultatif
PHONEString(25)FacultatifFormat international +<indicatif><numéro>
ADDRESS_LINE_1String(255)Obligatoire
ADDRESS_LINE_2/3/4String(255)FacultatifCompléments d’adresse
POSTAL_CODEString(15)ObligatoireCaractères autorisés : lettres, chiffres, espace, tiret
CITYString(35)Obligatoire
COUNTRYCode ISO 3166 alpha-3ObligatoireEx. FRA
IBANString(34)ConditionnelRequis pour créer un compte bancaire (donc pour tout virement sortant ou prélèvement futur). Validé selon ISO 13616
BICString(11)ConditionnelRequis avec l’IBAN
MANDATE_RUMString(35)ConditionnelRequis pour créer un mandat SDD. Référence unique de mandat (RUM) du mandat déjà signé côté marchand
MANDATE_SIGN_DATEDate YYYY-MM-DDConditionnelRequis pour créer un mandat SDD. Date de signature du mandat
Logique « avec ou sans »

➜ Client seul : renseignez l'identité et l'adresse, laissez IBAN/BIC et les colonnes mandat vides.

➜ Client + compte bancaire (nécessaire pour un virement sortant futur) : ajoutez IBAN + BIC.

➜ Client + mandat SDD (nécessaire pour un prélèvement SEPA futur) : ajoutez IBAN + BIC + MANDATE_RUM + MANDATE_SIGN_DATE.

Exemple de fichier Customer

Télécharger l’exemple de fichier .csv « Customer »

Trois clients : un particulier (INDIVIDUAL, sans raison sociale) et deux personnes morales (LEGAL_ENTITY), chacun avec son propre compte bancaire et son mandat SDD.

À retenir sur cet exemple :

  • Le téléphone est au format international (+33..., sans le 0 initial).
  • Pour le client INDIVIDUAL, le champ SOCIAL_REASON est laissé vide (deux ; consécutifs) ; il est renseigné uniquement pour les LEGAL_ENTITY.
  • Chaque client a son propre IBAN/BIC et sa propre MANDATE_RUM. Les IBAN/BIC ci-dessus sont des coordonnées de test fournies pour la recette : remplacez-les par les coordonnées réelles de vos clients en production.

En retour, le fichier .ACK vous renverra pour chaque ligne acceptée un CUSTOMER_ID (UUID). Conservez ces identifiants : ce sont eux que vous réutiliserez dans vos fichiers Operation.

Colonnes ajoutées par CentralPay dans le fichier .ACK de retour :

ColonneDescription
STATUSACCEPTED ou REFUSED (pas de PENDING pour les fichiers customer)
ERROR_CODEValorisé si REFUSED (ex. INVALID_PARAMETERS)
ERROR_MESSAGEDétail technique (en anglais)
CUSTOMER_IDUUID du client créé, valorisé si ACCEPTED (à conserver pour vos opérations futures)

5.3 Fichier Operation

Ce fichier déclenche des opérations sur des profils clients déjà existants dans CentralPay.

ColonneFormatStatutDescription
MERCHANT_IDUUIDObligatoireVotre identifiant marchand CentralPay
POINT_OF_SALE_IDUUIDFacultatifPoint de vente concerné. Si vide, le point de vente par défaut est utilisé
MERCHANT_TRANSACTION_IDString(35)FacultatifVotre référence d’opération (unique chez vous)
DESCRIPTIONString(140)FacultatifDescription à votre usage
END_TO_END_IDString(35)FacultatifRéférence SEPA end-to-end visible par le client final.
À défaut, reprend MERCHANT_TRANSACTION_ID
REMITTANCE_INFOString(140)FacultatifLibellé SEPA (unstructured remittance information) visible par le client final. À défaut, reprend DESCRIPTION
CUSTOMER_IDUUIDConditionnelIdentifiant CentralPay du client. CUSTOMER_ID ou MERCHANT_CUSTOMER_ID doit être renseigné
MERCHANT_CUSTOMER_IDString(100)ConditionnelVotre référence client interne (alternative au CUSTOMER_ID généré par CentralPay)
MANDATE_RUMString(35)FacultatifPour cibler un mandat précis si le client en possède plusieurs (si OPERATION_TYPE = DEBIT)
AMOUNTEntierObligatoireMontant en centimes d’euro, valeur positive uniquement
CURRENCYCode ISOObligatoireEUR (devise euros obligatoire pour virements et prélèvements SEPA)
OPERATION_TYPEDEBIT / CREDITObligatoireDEBIT = prélèvement SEPA (SDD)
CREDIT = virement SEPA sortant (payout)
EXPECTED_SETTLEMENT_DATEDate YYYY-MM-DDFacultatifDate de règlement souhaitée. Par défaut : J+1 ouvré
Choisir le bon OPERATION_TYPE

➜ DEBIT (prélèvement) : Si vous souhaitez débiter le compte bancaire de votre client via un prélèvement SEPA. Nécessite que le profil client dispose d'un mandat SDD valide.

➜ CREDIT (virement) : Si vous souhaitez créditer le compte bancaire de votre client via un virement SEPA sortant. Nécessite que le client dispose d'un compte bancaire déclaré (IBAN/BIC).

Exemple de fichier Operation

Télécharger l’exemple de fichier .csv « Operation »

Cinq opérations sur les clients créés à l’étape précédente, référencés par leur CUSTOMER_ID (les UUID renvoyés dans le .ACK du fichier Customer) : trois prélèvements (DEBIT) et deux virements (CREDIT).

À retenir sur cet exemple :

  • Le client est désigné par son CUSTOMER_ID (UUID stable et unique). Il peut sinon être désigné par votre MERCHANT_CUSTOMER_ID mais vous devez vous assurer de son unicité et de son bon formatage.
  • MERCHANT_TRANSACTION_ID et END_TO_END_ID sont uniques pour chaque opération.
  • Les montants sont en centimes (4990 = 49,90 €) et toujours positifs ; c’est OPERATION_TYPE qui donne le sens (débit ou crédit).
  • REMITTANCE_INFO porte un libellé explicite, visible du client final sur son relevé. Privilégiez des caractères simples (norme SEPA : pas d’accents ni de caractères spéciaux).

Colonnes ajoutées par CentralPay dans les fichiers de retour :

Dans le .ACK (contrôle technique) :

ColonneDescription
STATUSACCEPTED, PENDING ou REFUSED
ERROR_CODEValorisé si REFUSED
ERROR_MESSAGEDétail technique
OPERATION_IDUUID de l’opération, valorisé si ACCEPTED (clé de suivi dans les fichiers suivants)

Dans le .SET (compte-rendu de règlement) :

ColonneDescription
STATUSACCEPTED, PENDING ou REFUSED
ERROR_CODEValorisé si REFUSED (ex. FRAUD_ALERT)
ERROR_MESSAGEDétail bancaire du refus
SETTLEMENT_DATEDate de valeur si ACCEPTED
OPERATION_IDUUID de l’opération

Dans le .RET (rejet post-règlement) :

ColonneDescription
REASON_CODECode de rejet SEPA (ex. AC04 = compte clos)
REASON_MESSAGEDétail textuel du rejet
RETURN_AMOUNTMontant retourné (positif)
RETURN_DATEDate du rejet
OPERATION_IDUUID de l’opération d’origine

6. Comprendre les fichiers de retour

6.1 Nommage des fichiers de retour

Les fichiers de retour reprennent le nom de votre fichier d’origine, suivi du type de compte-rendu, d’une empreinte de traitement et d’un horodatage :

<nom du fichier d'origine au format csv>.<ACK|SET|RET>-<hash>-<timestamp>.csv
  • <hash> : empreinte du fichier traité (permet de relier le retour au traitement).
  • <timestamp> : horodatage du traitement.

Exemple :

C494F877_OPER_20241025110500.csv.ACK-098f6bcd4621d373cade4e832627b4f6-20241025112500.csv

6.2 Les trois niveaux de compte-rendu

FichierQuandCe qu’il vous dit
.ACKImmédiatement après réceptionValidité technique ligne à ligne. Toutes les lignes sont retournées, y compris celles refusées
.SETUne fois les retours bancaires disponibles (opérations uniquement)Avancement du règlement. Seules les lignes ACCEPTED au niveau .ACK y figurent
.RETEn cas de rejet après règlement (opérations uniquement)Rejets SEPA postérieurs (ex. contestation client)
Délais indicatifs de règlement (jours ouvrés) : virement (SCT) 1 à 2 jours ; prélèvement SEPA (SDD) 3 à 5 jours. Un rejet post-règlement (.RET) peut survenir jusqu'à 8 semaines après l'opération en cas de contestation.

6.3 Bonnes pratiques de réconciliation

  • OPERATION_ID est la clé de correspondance entre les fichiers .ACK, .SET et .RET d’une même opération. Conservez-le.
  • CUSTOMER_ID (renvoyé dans le .ACK customer) est l’identifiant à réutiliser dans vos fichiers Operation.
  • Renseignez systématiquement vos propres références (MERCHANT_CUSTOMER_ID, MERCHANT_TRANSACTION_ID) pour faciliter le rapprochement de votre côté.

7. Erreurs fréquentes

7.1 Refus techniques (fichier .ACK)

CodeSignificationAction
MISSING_COLUMNSColonne(s) attendue(s) absente(s)Vérifier l’en-tête et la structure du CSV
INVALID_PARAMETERSValeur de champ invalideCorriger la donnée fautive (format, longueur, énumération)
BAD_ROWLigne mal forméeVérifier le séparateur et le nombre de colonnes de la ligne
COMPUTATION_EXCEPTIONErreur de traitement interneContacter le support CentralPay

(Liste non exhaustive. Les messages sont retournés ligne par ligne et peuvent concatener plusieurs erreurs.)

7.2 Anomalies de rapprochement client

MessageSignificationAction
No customer fetch errorLe client lié à l’opération est introuvableVérifier la cohérence du CUSTOMER_ID / MERCHANT_CUSTOMER_ID. Au besoin, déposer un fichier Customer pour les clients manquants
Too much customer found for merchantPlusieurs clients partagent le même MERCHANT_CUSTOMER_IDGarantir l’unicité de votre référence client ; nous contacter pour arbitrer (fusion / mise à jour)
Unexpected service responseErreur interne CentralPayContacter le support CentralPay

8. Points d’attention

  • La ligne d’en-tête est obligatoire dans chaque fichier.
  • Les montants sont en centimes et toujours positifs.
  • Une opération peut apparaître dans plusieurs .SET successifs si son statut évolue (PENDING → ACCEPTED/REFUSED).
  • Conservez le mapping OPERATION_ID / CUSTOMER_ID entre vos systèmes et CentralPay.
  • Toute première mise en place fait l’objet d’une recette avec l’équipe intégration avant production.

9. Démarrer

  1. Vérifiez vos prérequis, en particulier la chaîne ICS + service SDD + validation Conformité si vous prévoyez des prélèvements.
  2. Demandez l’ouverture du canal SFTP auprès de votre interlocuteur CentralPay.
  3. Préparez un fichier d’exemple et validez-le en recette.
  4. Passez en production.

Pour toute question sur la mise en place, contactez votre interlocuteur CentralPay ou le support.

File Import

CentralPay File Import Service

The File Import Service allows you to manage CentralPay operations in bulk by uploading simple CSV files instead of calling the API line by line.

To date, two types of files are supported:

  • Customer files: to create your customer profiles (customers) in CentralPay, optionally with a bank account (BankAccount) and/or a SEPA direct debit mandate (SDD).
  • Operation files: to initiate SEPA direct debits (SDD) on your customer profiles and/or outgoing SEPA credit transfers (SCT) to your customer profiles’ bank accounts.

For each file uploaded, CentralPay sends you report files indicating, line by line, what was accepted, refused, or rejected.

1. Who is this service for?

This service is designed for Merchants who process large volumes of operations and prefer file exchange over real-time API integration: recurring direct debit collections, grouped outgoing payouts, creation or migration of a customer/SEPA mandate repository, etc.

The exchange occurs asynchronously: you upload your files, CentralPay processes them, then makes the reports available to you.

2. Prerequisites

2.1 Common Prerequisites

  • An active CentralPay merchant account with access to the Merchant Portal.
  • Your CentralPay merchant ID (UUID). The first 8 characters of this UUID are used to name your files (see section 5.1 Rules common to all files).
  • The setup of a secure exchange channel (SFTP, see section 4. SFTP Setup) unless another channel has been agreed upon with your CentralPay contact.
  • A testing phase with the CentralPay integration team before going live.

2.2 Prerequisites for outgoing SEPA credit transfer operations (CREDIT / SCT)

  • The outgoing SEPA credit transfer service must be activated on your merchant profile.

2.3 Prerequisites for SEPA direct debit operations (DEBIT / SDD)

Direct debits require additional prerequisites, to be validated before any first submission:

  • Your ICS (SEPA Creditor Identifier) must be declared in your CentralPay merchant profile (procedure carried out with your CentralPay contact).
  • The SEPA direct debit service must be activated on your merchant profile (procedure carried out with your CentralPay contact).
  • Validation of Mandate Management Mode Compliance. In this integration process, CentralPay does not collect the mandate signature: you transmit, in the Customer file, the mandate reference (MANDATE_RUM) and its signature date (MANDATE_SIGN_DATE). Consequently:
    • Your CentralPay contact must validate the principle upstream of mandate management via this method, whether it concerns the migration of existing mandates or newly collected mandates by you.
    • You remain responsible for the collection, legal validity, and retention of signed mandates, as well as for providing prior information to your customers (pre-notification, UMR, ICS).
Without these prerequisites, files containing direct debits cannot be processed, whether in the Sandbox or LIVE environment.

3. How does the processing cycle work?

  1. Upload. You upload your CSV files (Customer and/or Operation) to the SFTP, in the upload folder.
  2. Technical Control (ACK). CentralPay checks each line (format, mandatory fields, consistency) and sends you an .ACK file: each line is marked ACCEPTED or REFUSED, with the error reason if applicable.
  3. Bank processing. Technically valid lines are transmitted to the SEPA banking circuits.
  4. Settlement Report (SET). For operations, CentralPay produces .SET files indicating the settlement progress (ACCEPTED / PENDING / REFUSED) once bank feedback is available.
  5. Post-settlement Rejections (RET). In case of a SEPA rejection occurring after settlement (e.g., a customer dispute), CentralPay produces an .RET file detailing the reason and the returned amount.
Customer files do not generate a bank report (.SET / .RET): only an .ACK is returned.

4. SFTP Setup

SFTP is the recommended exchange channel. It ensures secure upload and retrieval, and allows CentralPay to automatically retrieve and process your files.

4.1 Exchange Model

The SFTP is hosted by the merchant.

CentralPay connects to your SFTP, retrieves files from an outgoing folder, and deposits reports into an incoming folder.

4.2 Folder Convention

The exchange relies on two directories:

DirectoryDirectionContent
Upload folder (named /OUT)Merchant → CentralPayYour Customer and Operation files to be processed
Return folder (named /IN)CentralPay → MerchantThe .ACK, .SET, reports .RET

4.3 Setup Steps

  1. Request activation from your CentralPay contact.
  2. Exchange access credentials: authentication via SSH key.
    • Two spaces should be created: one SFTP dedicated to testing and one dedicated to production.
    • The SFTP information (host + login) must be provided to us by email.
    • For us to connect to your SFTP, a CentralPay public key (per environment) will be communicated to you.
    • Furthermore, it is recommended to whitelist CentralPay’s IP addresses (these will be communicated to you during your integration).
  3. Use the directory structure defined previously (upload /OUT and return /IN folders).
  4. Test in the testing environment with an example file, validate the correct reception of .ACK, then switch to production.

5. Prepare your files

5.1 Rules common to all files

  • Format: CSV. The header row is mandatory in all files, both input and output.
  • Naming:
    • Customer file: <8 premiers caractères de votre UUID marchand en minucules>_CUST_<référence libre>.csv
    • Operations file: <8 premiers caractères de votre UUID marchand en minucules>_OPER_<référence libre>.csv
    • The free reference is at your discretion (often a timestamp). The full name must not exceed 100 characters.
    • Examples: c494f877_CUST_20241025110500.csv · c494f877_OPER_20241025110500.csv
  • Amounts: expressed in minor unit (euro cents) and always positive. The direction (debit/credit) is indicated by the OPERATION_TYPE column, not by the sign of the amount.
  • Column Legend in the tables below:
    • Mandatory: the line is rejected if the value is missing.
    • Optional: can be left blank.
    • Conditional: required only in the described case.

5.2 File Customer

This file creates your customer profiles. Depending on your needs, it can create in a single line: the customer profile alone, the customer + a bank account, or the customer + a bank account + an SDD mandate.

ColumnFormatStatusDescription
MERCHANT_IDUUIDMandatoryYour CentralPay merchant ID
MERCHANT_CUSTOMER_IDString(100)OptionalYour internal customer reference (must be unique). Highly recommended for reconciling your operations.
DESCRIPTIONString(256)OptionalFree field for your use
TYPEINDIVIDUAL / LEGAL_ENTITYMandatoryIndividual or legal entity
SOCIAL_REASONString(35)ConditionalRequired if TYPE = LEGAL_ENTITY (company name)
FIRST_NAMEString(35)MandatoryFirst name (of the legal representative if LEGAL_ENTITY)
LAST_NAMEString(35)MandatoryLast name (of the legal representative if LEGAL_ENTITY)
EMAILString(255)Optional
PHONEString(25)OptionalInternational format +<indicatif><numéro>
ADDRESS_LINE_1String(255)Mandatory
ADDRESS_LINE_2/3/4String(255)OptionalAddress supplements
POSTAL_CODEString(15)MandatoryAllowed characters: letters, numbers, space, hyphen
CITYString(35)Mandatory
COUNTRYISO 3166 alpha-3 codeMandatoryEx. FRA
IBANString(34)ConditionalRequired to create a bank account (thus for any future outgoing transfer or direct debit). Validated according to ISO 13616
BICString(11)ConditionalRequired with IBAN
MANDATE_RUMString(35)ConditionalRequired to create an SDD mandate. Unique Mandate Reference (UMR) of the mandate already signed on the merchant side
MANDATE_SIGN_DATEDate YYYY-MM-DDConditionalRequired to create an SDD mandate. Mandate signature date
"With or Without" Logic

➜ Customer only: fill in identity and address, leave IBAN/BIC and mandate columns blank.

➜ Customer + bank account (necessary for a future outgoing transfer): add IBAN + BIC.

➜ Customer + SDD mandate (necessary for a future SEPA direct debit): add IBAN + BIC + MANDATE_RUM + MANDATE_SIGN_DATE.

Example file Customer

Download the « Customer » .csv example file

Three customers: one individual (INDIVIDUAL, without company name) and two legal entities (LEGAL_ENTITY), each with their own bank account and SDD mandate.

Key takeaways from this example:

  • The phone number is in international format (+33..., without the initial 0).
  • For customer INDIVIDUAL, the SOCIAL_REASON field is left empty (two consecutive ;); it is only filled in for LEGAL_ENTITY.
  • Each customer has their own IBAN/BIC and their own MANDATE_RUM. The IBAN/BICs above are test credentials provided for the testing environment: replace them with your customers’ real credentials in production.

In return, the .ACK file will send you a CUSTOMER_ID (UUID) for each accepted line. Keep these identifiers: you will reuse them in your Operation files.

Columns added by CentralPay in the .ACK return file:

ColumnDescription
STATUSACCEPTED or REFUSED (no PENDING for customer files)
ERROR_CODEValued if REFUSED (e.g., INVALID_PARAMETERS)
ERROR_MESSAGETechnical detail (in English)
CUSTOMER_IDUUID of the created customer, valued if ACCEPTED (to be kept for your future operations)

5.3 File Operation

This file triggers operations on customer profiles already existing in CentralPay.

ColumnFormatStatusDescription
MERCHANT_IDUUIDMandatoryYour CentralPay merchant ID
POINT_OF_SALE_IDUUIDOptionalConcerned Point of Sale (POS). If empty, the default point of sale is used.
MERCHANT_TRANSACTION_IDString(35)OptionalYour operation reference (unique to you)
DESCRIPTIONString(140)OptionalDescription for your use
END_TO_END_IDString(35)OptionalSEPA end-to-end reference visible to the end customer.
Otherwise, it uses MERCHANT_TRANSACTION_ID
REMITTANCE_INFOString(140)OptionalSEPA label (unstructured remittance information) visible to the end customer. Otherwise, it uses DESCRIPTION
CUSTOMER_IDUUIDConditionalCentralPay customer identifier. CUSTOMER_ID or MERCHANT_CUSTOMER_ID must be provided
MERCHANT_CUSTOMER_IDString(100)ConditionalYour internal customer reference (alternative to the CUSTOMER_ID generated by CentralPay)
MANDATE_RUMString(35)OptionalTo target a specific mandate if the customer has several (if OPERATION_TYPE = DEBIT)
AMOUNTIntegerMandatoryAmount in centimes of euro; positive values only
CURRENCYISO CodeMandatoryEUR (mandatory euro currency for SEPA transfers and direct debits)
OPERATION_TYPEDEBIT / CREDITMandatoryDEBIT = SEPA direct debit (SDD)
CREDIT = outgoing SEPA credit transfer (payout)
EXPECTED_SETTLEMENT_DATEDate YYYY-MM-DDOptionalDesired settlement date. Default: J+1 business day
Choose the correct  OPERATION_TYPE

➜ DEBIT (direct debit): If you wish to debit your customer's bank account via a SEPA direct debit. Requires the customer profile to have a valid SDD mandate.

➜ CREDIT (transfer): If you wish to credit your customer's bank account via an outgoing SEPA credit transfer. Requires the customer to have a declared bank account (IBAN/BIC).

Example file Operation

Download the « Operation » .csv example file

Five operations on customers created in the previous step, referenced by their CUSTOMER_ID (the UUIDs returned in the .ACK of the Customer file): three direct debits (DEBIT) and two credit transfers (CREDIT).

Key takeaways from this example:

  • The customer is identified by their CUSTOMER_ID (stable and unique UUID). It can also be identified by your MERCHANT_CUSTOMER_ID but you must ensure its uniqueness and correct formatting.
  • MERCHANT_TRANSACTION_ID and END_TO_END_ID are unique for each operation.
  • Amounts are in centimes (4990 = 49.90 €) and are always positive; the sign ( OPERATION_TYPE ) indicates whether the transaction is a debit or a credit.
  • REMITTANCE_INFO carries an explicit label, visible to the end customer on their statement. Prioritize simple characters (SEPA standard: no accents or special characters).

Columns added by CentralPay in the return files:

In the .ACK (technical control):

ColumnDescription
STATUSACCEPTEDPENDING, or REFUSED
ERROR_CODEValued if REFUSED
ERROR_MESSAGETechnical detail
OPERATION_IDOperation UUID, valued if ACCEPTED (tracking key in subsequent files)

In the .SET (settlement report):

ColumnDescription
STATUSACCEPTEDPENDING, or REFUSED
ERROR_CODEValued if REFUSED (e.g., FRAUD_ALERT)
ERROR_MESSAGEBank refusal detail
SETTLEMENT_DATEValue date if ACCEPTED
OPERATION_IDOperation UUID

In the .RET (post-settlement rejection):

ColumnDescription
REASON_CODESEPA rejection code (e.g., AC04 = account closed)
REASON_MESSAGETextual detail of the rejection
RETURN_AMOUNTReturned amount (positive)
RETURN_DATERejection date
OPERATION_IDOriginal operation UUID

6. Understanding the return files

6.1 Naming of return files

Return files use the name of your original file, followed by the report type, a processing fingerprint, and a timestamp:

<nom du fichier d'origine au format csv>.<ACK|SET|RET>-<hash>-<timestamp>.csv
  • <hash> : fingerprint of the processed file (allows linking the return to the processing).
  • <timestamp> : processing timestamp.

Example:

C494F877_OPER_20241025110500.csv.ACK-098f6bcd4621d373cade4e832627b4f6-20241025112500.csv

6.2 The three levels of reporting

FileWhenWhat it tells you
.ACKImmediately upon receiptTechnical validity line by line. All lines are returned, including those refused.
.SETOnce bank feedback is available (operations only)Progress of settlement. Only lines ACCEPTED at the .ACK level are included.
.RETIn case of rejection after settlement (operations only)Subsequent SEPA rejections (e.g., customer dispute)
Indicative settlement times (business days): credit transfer (SCT) 1 to 2 days; SEPA direct debit (SDD) 3 to 5 days. A post-settlement rejection (.RET) can occur up to 8 weeks after the operation in case of dispute. 

6.3 Best practices for reconciliation

  • OPERATION_ID is the matching key between the .ACK, .SET, and .RET files of the same operation. Keep it.
  • CUSTOMER_ID (returned in the customer .ACK) is the identifier to reuse in your Operation files.
  • Systematically provide your own references (MERCHANT_CUSTOMER_ID, MERCHANT_TRANSACTION_ID) to facilitate reconciliation on your end.

7. Common errors

7.1 Technical refusals (.ACK file)

CodeMeaningAction
MISSING_COLUMNSExpected column(s) missingCheck the CSV header and structure
INVALID_PARAMETERSInvalid field valueCorrect the erroneous data (format, length, enumeration)
BAD_ROWMalformed lineCheck the separator and the number of columns in the line
COMPUTATION_EXCEPTIONInternal processing errorContact CentralPay support

(Non-exhaustive list. Messages are returned line by line and may concatenate multiple errors.)

7.2 Customer reconciliation anomalies

MessageMeaningAction
No customer fetch errorThe customer linked to the operation is not foundCheck the consistency of CUSTOMER_ID / MERCHANT_CUSTOMER_ID. If necessary, upload a Customer file for missing customers.
Too much customer found for merchantMultiple customers share the same MERCHANT_CUSTOMER_IDEnsure the uniqueness of your customer reference; contact us to arbitrate (merge / update).
Unexpected service responseCentralPay internal errorContact CentralPay support

8. Points of attention

  • The header row is mandatory in each file.
  • Amounts are in centimes and are always positive.
  • An operation may appear in several successive .SET if its status changes (PENDING → ACCEPTED/REFUSED).
  • Maintain the OPERATION_ID / CUSTOMER_ID mapping between your systems and CentralPay.
  • Any initial setup is subject to a testing phase with the integration team before production.

9. Getting Started

  1. Check your prerequisites, especially the ICS chain + SDD service + Compliance validation if you plan direct debits.
  2. Request SFTP channel activation from your CentralPay contact.
  3. Prepare an example file and validate it in the testing environment.
  4. Go live.

For any questions regarding setup, contact your CentralPay representative or support.

Utilisation des API CentralPay

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

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

1. Les APIs disponibles

CentralPay met à disposition deux APIs principales :

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

2. URLs des environnements

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

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

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

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

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

3. Authentification API

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

  • Identifiant API (login)
  • Mot de passe API

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

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

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

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

3.2. Étape 2 – Ouvrir la section technique

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

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

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

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

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

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

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

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

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

4. Clé publique Marchand (MerchantPublicKey)

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

Où la trouver :

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

5. Méthodes HTTP et MIME Types

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

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

Les types MIME suivants sont utilisés :

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

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

6. En-têtes HTTP à utiliser

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

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

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

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

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

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

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

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

8. Réponses HTTP

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

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

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

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

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

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

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

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

Using the CentralPay APIs

The CentralPay APIs allow you to securely interact with our platform to create accounts, initiate payments, or automate business operations.

Our APIs are based on the HTTP(S) protocol and use a JSON response format. Authentication is required for every request, unless otherwise specified.

1. Available APIs

CentralPay provides two main APIs:

APIDescriptionAccess
Core Payment APIManages all functions related to payment transactions (initiation, transfer, refund, etc.)All merchants
API OnboardingAllows users to request the creation of Payment Accounts or Electronic Money Accounts (Enrollment, Wallets, etc.)Reserved for Partner Merchants and Intermediary Merchants (Agents, EMD).

2. Environment URLs

Two environments are available, depending on your stage of Integration:

ComponentTest environmentPRODUCTION Environment
Core Payment APIhttps://test-api.centralpay.net/https://api.centralpay.net/
API Onboardinghttps://test-onboarding-api.centralpay.net/https://onboarding-api.centralpay.net/

The login credentials are different for the test environment and the production environment.

You can also access your Merchant Portal to view information or configure settings:

ComponentTest environmentPRODUCTION Environment
Merchant Portalhttps://test-backoffice.centralpay.net/https://backoffice.centralpay.net/

3. API Authentication

The CentralPay API uses HTTP Basic authentication, which requires two mandatory elements to be included in every call:

  • API ID (login)
  • API Password

All requests must be sent via HTTPS. These credentials are different for the Test environment and production environment.

To retrieve your API credentials, follow these steps:

3.1. Step 1 – Access the Merchant Portal

  • For the production environment: https://backoffice.centralpay.net/
  • For the test environment: https://test-backoffice.centralpay.net/

3.2. Step 2 – Open the technical section

From the navigation menu: Administration > My Account > Technical

  • Direct link to the production version: https://backoffice.centralpay.net/admin/actor/account#technical_tab
  • Direct link (in testing): https://test-backoffice.centralpay.net/admin/actor/account#technical_tab

3.3. Step 3 – Retrievethe API ID (login)

  1. On the  » Technical » tab, locate the « API ID » field
  2. Click on the ID shown to view the details
  3. Copy the value shown in the  » Login » field

⚠️ This login must be included in the Authorization header of your requests (in Base64 format along with the password; see below).

3.4. Step 4 – Generate an API Password

  1. On the same screen, click the  » Edit » button
  2. Then click  » Generate a password« 
  3. Copy the generated password immediately; please note that it is displayed only once.
  4. Finally, click  » Update  » to confirm the new password

If you forget your password, you’ll need to repeat this process to generate a new one.

ℹ️ Best Practices:
- The username and password can be revoked or regenerated at any time through the Merchant Portal.
- Never share these credentials in plain text.
- Store the password in a secure password manager after it has been generated.

4. Merchant Public Key (MerchantPublicKey)

Some services, such as cardToken, do not require a username or password but only a Merchant public key (MerchantPublicKey) to authenticate the request.

Where to find it:

  • Log in to the Production or Test Merchant Portal
  • Go to: Administration >, Technical
  • Copy the key into the  » Merchant Public Key » section

5. HTTP Methods and MIME Types

Our APIs follow the REST style and support the following HTTP methods:

MethodUsage
POSTCreating or Updating an Object
GETSearching for or Viewing an Item
DELETEDeleting an Object

The following MIME types are used:

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

The Content-Type must always be specified in the HTTP headers.

6. HTTP Headers to Use

Each API call must include a number of correctly populated HTTP headers:

HTTP HeaderDescription
AuthorizationHTTP Basic Authentication Using the API Username and Password
Content-TypeRequired for all requests. Must be: application/x-www-form-urlencoded or multipart/form-data
User-AgentHighly recommended; useful for plotting integrals
Idempotence-Key (optional but recommended)Prevents duplicates when the same request is resubmitted

7. Idempotence: Ensuring Safe Reissuance

The ` Idempotence-Key ` header ensures that the same request sent multiple times with the same key will be processed only once.

This is particularly useful in the event of a network error or if you are unsure whether a call was successful.

The value of the ` Idempotence-Key ` header is an SHA1 hash of the request’s main business fields. It must be unique for each functional combination of data. Example for a card transaction:

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

The key  » Idempotence-Key  » is valid for up to 24 hours on our servers

8. HTTP Responses

Each response returned by the API contains useful traceability information in the headers:

HTTP HeaderDescription
Request-IdA unique identifier assigned to each call. This can be provided to CentralPay support in the event of an investigation or technical dispute.

The JSON response body depends, of course, on the resource being called (payment, transfer, onboarding, etc.), but the ` Request-Id ` header is always included.

9. Registering Your Domains for CustomForm Services

For certain services, such as cardToken, that rely on embedded forms (CustomForm), you must first declare the web domains that host these forms.

Without this declaration, any attempt to access the relevant services from an unauthorized domain will result in a 403 (Forbidden) error.

  1. Log in to the Merchant Portal:
    • Production
    • Test
  2. Go to:
    • Administration > My Account > Technical
  3. Click  » Edit« 
  4. In the  » Allowed Hosts for Custom Forms » field, enter the URL or domains to allow (e.g., https://www.votre-site.com)
  5. Save the changes

Once this step is complete, services such as cardToken can be accessed from the registered domains, in accordance with the security rules imposed by CentralPay.

Transaction par carte

Articles

  • Informations générales
  • Formulaire de paiement CUSTOM
  • Authentification 3DS 2.0
  • Transaction cartetransaction
  • Transaction carte récurrentetransaction
  • Transaction carte via walletApplePay / GooglePay
  • R-transaction carterefund / credit / dispute
  • Email de confirmation
  • Libellé relevé bancaire
  • Gestion des devises
  • Gestion des cartes virtuelles (VCC)
  • Retours, statuts et hooks

Informations générales

1. Fonctionnement

Une transaction carte comprend une succession d’actions :

1.1. Authentification 3DS 2.0

Elle permet de s’assurer que la personne réalisant la transaction est bien le titulaire de la carte. La banque du client analyse les nombreux facteurs liés au paiement adressés par CentralPay (adresse IP, localisation, appareil utilisé, etc.) et les compare aux données habituelles de son client :

  • Si les données ne concordent pas ou que le montant de la transaction est important, elle requière une identification manuelle via un code adressé par SMS ou via son application bancaire (« authentification forte » ou « SCA »)
  • Sinon, elle autorise directement le paiement (« Frictionless »)

1.2. Autorisation bancaire

Demande effectuée par CentralPay à la banque du payeur permettant de vérifier la validité et la provision de sa carte. Les fonds « autorisés » sont bloqués jusqu’à la réalisation de la capture des fonds. Si aucune capture n’est réalisée sous un délai de 7 jours, les fonds « autorisés » sont libérés et le marchand devra renouveler son autorisation.

Pour les activités éligibles (location, hôtellerie, etc.), le service de « pré-autorisation » donne la possibilité au marchand d’étendre le délai d’autorisation jusqu’à 30 jours.

1.3. Capture

La capture permet d’initier le débit de la carte sur la base d’une autorisation ou d’une pré-autorisation. Un marchand peut réaliser une capture complète ou partielle du montant autorisé.

2. Types et réseaux de cartes acceptés

Les cartes de paiement sont émises par les banques ou les établissements de paiement agréés, elles peuvent être badgées par un ou plusieurs réseaux de carte (aussi nommés « Card Scheme »).

Les réseaux acceptés par CentralPay sont :

  • Carte Bancaire
  • VISA
  • MasterCard
  • American Express

En France, la majorité des cartes émises sont co-badgées CB et VISA ou CB et Mastercard. Dans ce cas, le client doit avoir la possibilité de choisir le réseau qu’il souhaite utiliser.

Les cartes peuvent être de débit ou de débit différé / crédit (en France la majorité des cartes sont de débit), et peuvent être des cartes de particulier (dit « Consumer ») ou des cartes de professionnels (dit « Corporate »).

À noter que ces paramètres impactent le coût de la transaction pour le marchand (interchange bancaire et frais de réseaux carte).

Formulaire de paiement CUSTOM

Le service API Transaction permet d’effectuer une autorisation suivie d’une capture des fonds sur la carte bancaire de votre client. Tous les modes de paiement par carte (paiement simple, récurrents, MoTo, etc.) sont gérés via ce service.

Lorsqu’un client souhaite effectuer un premier paiement, ses données de carte doivent être collectées pour générer un cardTokenId, grâce au service de tokenisation « token.js » de CentralPay. Ce token temporaire permet ensuite de créer une ressource Card, identifiée par un cardId, pouvant être enregistrée dans un objet Customer. Ce rattachement est indispensable pour permettre des paiements ultérieurs sans redemander la carte (paiement en 1 clic, récurrents, etc.).

ℹ️ Avec un formulaire de paiement personnalisé (CUSTOM FORM), l'intégration de l'authentification 3DS 2.2 est obligatoire avant d'exécuter une transaction.

Schéma du flux de paiement avec cardTokenId :

ℹ️ Si vous disposez d'une certification PCI-DSS de niveau 1 et que vous gérez les données de carte, vous pouvez directement créer un objet /card en envoyant les données (PAN, date d'expiration, CVC) à l'API, sans passer par token.js.

1. Prérequis

1.1. Déclarer vos domaines

Avant d’utiliser le token.js, vous devez déclarer les domaines hébergeant vos formulaires Custom dans votre Portail Marchand. Allez dans Administration Mon profil marchand Technique Modifier , puis complétez le champ Hosts Custom Forms autorisés.

Accès :

Recette Portail Marchand – Administration
Production Portail Marchand – Administration

1.2. Sécuriser votre formulaire

Assurez-vous que vos pages de paiement utilisent le protocole HTTPS avec TLS 1.2 ou supérieur.

1.3. Conformité PCI-DSS

L’utilisation de token.js implique que vous gérez vous-même l’affichage du formulaire et le déclenchement du token. Cette méthode impose de respecter les exigences PCI DSS SAQ A-EP.

Téléchargez le formulaire A-EP ➝

2. Intégration du formulaire de paiement

2.1. Créer un formulaire de paiement HTML

Contrairement au Smart Form hébergé par CentralPay, le Custom Form est créé par vos soins, via votre propre code HTML. Vous devez implémenter les champs suivants :

  • Numéro de carte : 16 chiffres pour CB/Visa/Mastercard, 15 pour American Express
  • Date d’expiration : format MM/AAAA
  • CVC : 3 chiffres (CB/Visa/Mastercard), 4 chiffres (Amex)

Vous pouvez consulter nos exemples de formulaires Custom Form :

  • Consultez l’exemple de formulaire Custom Form sans 3DS 2.2 ➝
  • Consultez l’exemple de formulaire Custom Form avec 3DS 2.2 ➝

2.2. Intégration du script token.js

Ajoutez dans votre page le script token.js pour générer un cardTokenId :

<script src="https://js.centralpay.net/js/token.js"></script>

Ajoutez ensuite votre clé publique marchand (MerchantPublicKey) dans un tag distinct :

<script type="text/javascript">
  window.Centralpay ? Centralpay.card.setMerchantPublicKey('VOTRE_CLE_PUBLIQUE') : alert('Error loading html form');
</script>

Vous pouvez voir où retrouver votre MerchantPublicKey depuis la page Authentification de nos API.

Intégration dans une application mobile

Si vous utilisez une WebView dans votre application, vous pouvez intégrer soit un formulaire personnalisé avec token.js, soit un formulaire hébergé via le service PaymentRequest. Ces options vous permettent d’externaliser la collecte des données carte tout en offrant une expérience utilisateur fluide.

Dans une application mobile native, le script token.js n’est pas compatible. Vous devez alors collecter les données de carte via les champs de l’application, puis appeler directement l’API cardToken en utilisant votre merchantPublicKey.

L’appel à l’API cardToken doit inclure un en-tête HTTP Origin correspondant à une URL déclarée dans votre profil Marchand CentralPay (voir 2.1 Prérequis).

Pour vos tests, vous pouvez utiliser l’Origin suivant : https://example.centralpay.net

ℹ️ Pour les applications mobiles natives, les données de carte sont transmises directement depuis le device de l’utilisateur vers CentralPay, sans passer par les serveurs du marchand. Cependant, ce type d’intégration nécessite de veiller à respecter les exigences de sécurité et de conformité PCI-DSS applicables à la collecte et la transmission de données de carte dans un environnement natif.

2.3. Créer un Customer et rattacher une carte

ℹ️ Le cardTokenId est un token à usage unique, dont le CVC est temporaire (10 minutes en production, 5 minutes en RCT). Passé ce délai, le token expire automatiquement (status=EXPIRED) et ne peut plus être utilisé, ce qui entraînera l’erreur suivante : "cardTokenId": "Card token already used". 

Que vous utilisiez la carte immédiatement (paiement simple) ou que vous souhaitiez la réutiliser plus tard (paiement en 1 clic, récurrent, etc.), il est recommandé de commencer par créer un objet Customer, puis d’enregistrer une Card à l’aide du cardTokenId. L’authentification 3DS 2.2 pouvant parfois allonger le délai de traitement, cette séquence permet d’éviter l’expiration du CVC associé au cardToken.

  1. Créez un objet customer via l’endpoint POST /customer ou récupérez le customerId s’il est déjà connu
  2. Créez une card en utilisant POST /card en spécifiant le cardTokenId émis par le token.js et le customerId

Une fois la card rattachée à un customer, le CVC devient permanent et les transactions futures peuvent être initiées sans limite de temps.

Si vous n'utilisez pas le token.js (certification PCI-DSS requise), vous pouvez directement créer une card sans passer par le cardToken en fournissant le PAN + expiration + CVC + customerId

3. Authentification 3DS 2.2

Avant d’initier une transaction par carte, vous devez vérifier l’identité du porteur via une authentification 3DS 2.2. Cette étape est obligatoire pour les transactions carte unitaire comme pour les transactions carte récurrente.

ℹ️ Exception : Les transactions de type MoTo (Mail Order / Telephone Order) ne sont pas soumises à l’authentification 3DS. Vous pouvez créer la transaction directement après la création de la carte.

Authentification 3DS 2.0

Le protocole 3D Secure 2.0 permet de s’assurer que la personne réalisant la transaction est bien le titulaire de la carte. La banque du client analyse les nombreux facteurs liés au paiement adressés par CentralPay (adresse IP, localisation, appareil utilisé…) et les compare aux données habituelles de son client :

  • Si les données ne sont pas concordantes ou que le montant de la transaction est important, elle requière une identification manuelle via un code adressé par SMS ou via son application bancaire (« authentification forte » ou « SCA »)
  • Sinon, elle autorise directement le paiement (« Frictionless »)

1. Caractéristiques

Il existe deux types de 3DS, selon si vous souhaitez initier une transaction classique (pour laquelle le porteur est présent) ou si vous exécutez une échéance de paiement récurrent (pour laquelle le porteur n’est pas présent) :

1.1. Le 3DS 2 « BRW » ou « Browser Authentication » (porteur participant – 1ère transaction)

Il représente la majorité des intégrations de 3DS 2. Il requiert l’authentification du client afin de vérifier qu’il est bien le porteur légitime de la carte au moment de la transaction. Il déclenche si nécessaire un challenge qui vérifie l’identité du porteur de carte (SCA).

👉 Découvrez comment intégrer le 3DS 2.0 BRW ➝

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

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

Le 3RI offre la possibilité de générer les authentifications 3DS nécessaires sans que le client ne soit impliqué. Cela permet d’utiliser une authentification générée précédemment avec un client. Elle est utilisée dans les contextes suivants de paiements récurrents : Paiement fractionné, Abonnement, Refund, etc.

👉 Découvrez comment intégrer le 3DS 2.0 3RI ➝

Transaction carte

Selon les besoins de votre activité, CentralPay propose divers modes de transactions unitaires via son service API Transaction.

Attention, vous devez au préalable gérer la collecte des données carte de votre client en créant un formulaire de paiement Custom Form et intégrer l’authentification 3DS 2.0.

Les principes de base d’une transaction carte sont décrits dans la rubrique informations générales.

1. Autorisation et capture instantanée

Pour réaliser un paiement simple par carte (autorisation puis capture instantanée) :

  • Réaliser une Transaction en renseignant le paramètre « source » avec la valeur « EC »

2. Autorisation et capture différée

Ce mode de transaction peut être utile si vous souhaitez bloquer les fonds de votre client avant de le débiter définitivement, le temps de la validation de votre commande par exemple. Ainsi, vous pouvez annuler l’opération sans être soumis aux frais de transaction ou de remboursement.

Pour réaliser un paiement par carte avec capture différée (autorisation puis capture différée), vous devez :

  • Réaliser une autorisation en renseignant le paramètre « capture » de la Transaction avec la valeur « false ». Les fonds seront ainsi bloqués sur la carte du client
  • Puis débiter le montant souhaité en initiant une capture sur le transactionId reçu en précisant le montant souhaité (« amount »)

Vous avez 7 jours calendaires suivant l’autorisation pour réaliser la capture, à défaut les fonds du client seront libérés.

3. Pré-autorisation et capture différée

Le service de pré-autorisation et capture différée (ou caution / PLBS) permet d’effectuer une pré-autorisation d’un certain montant, que vous pourrez ensuite capturer partiellement ou pleinement sous 30 jours. Durant cette période, les fonds vous sont garantis, ils sont donc bloqués sur la carte et ne peuvent être utilisés par votre client.

Ce service n’est accessible qu’à certaines activités autorisées (locations de véhicules ou de matériels, hôtellerie…).

Pour réaliser une pré-autorisation et capture différée, vous devez :

  • Réaliser une pré-autorisation en renseignant le paramètre « source » de la Transaction avec la valeur « DP ». Les fonds seront ainsi bloqués sur la carte du client
  • Puis débiter le montant souhaité en initiant une capture sur le « transactionId » reçu en précisant le montant souhaité (« amount »)

Vous avez 30 jours calendaires suivant l’autorisation pour réaliser la capture, à défaut les fonds du client seront libérés.

4. Vérification carte (empreinte sécurisée)

Le service d’empreinte & vérification carte permet d’effectuer une autorisation à 0€ avec authentification du porteur (3DS 2.0). Ainsi, vous disposerez des informations concernant la carte de votre client (carte de débit, de crédit, prépayée…), et vous vous assurerez qu’elle n’est pas frauduleuse (carte non volée, porteur identifié…). Ce service est généralement utilisé pour enregistrer une carte avec 3DS en vue d’un abonnement avec une date de démarrage différée.

Pour réaliser une prise d’empreinte et une vérification carte (autorisation à 0€ sans capture), vous devez :

  • Réaliser une Transaction en renseignant le paramètre « source » avec la valeur « RI »
  • Nous vous recommandons également de créer un « customer » lors de la transaction, afin d’associer le « cardId » ainsi généré et de vous permettre un éventuel débit ultérieur de cette carte

5. Débit carte seul (MO/TO)

Le service de paiement MOTO (Mail Order / Telephone Order) permet d’effectuer une autorisation puis une capture d’une carte, sans la présence de son porteur. Il est généralement utilisé par les hôtels pour le débit de services ou de consommations additionnelles en fin de séjour.

Attention, ce service n’est accessible qu’à certaines activités autorisées (hôtellerie…), et apporte des résultats de conversion de moins en moins performants depuis la directive DSP2, car elle ne permet pas l’authentification du porteur de carte.

Pour réaliser un paiement MOTO, vous devez :

  • Réaliser une Transaction en renseignant le paramètre « source » avec la valeur « MO » (Mail Order) ou « TO » (Telephone Order)

6. Paiement par carte en 1 clic

Le paiement par carte en 1 clic consiste à enregistrer les données cartes de votre client, afin qu’il puisse régler sa commande sans avoir à les ressaisir. La ou les cartes du client sont stockées de manière sécurisée dans le Customer CentralPay. Il est dans ce cadre nécessaire de permettre à votre client de sélectionner la carte qu’il souhaite utiliser ou d’ajouter une nouvelle carte.

Pour réaliser un paiement par carte en 1 clic, vous devez :

  • Sélectionner l’option « One-click » dans la configuration du point de vente
  • Vous assurez que vos Customer ont une carte liée à leur profil

Transaction carte récurrente

Selon les besoins de votre activité, CentralPay propose plusieurs modes de transactions récurrentes :

  • Abonnement depuis un modèle d’abonnement
    CentralPay gère le prélèvement des échéances selon un modèle d’abonnement que vous avez défini en amont.
  • Abonnement piloté par API
    Vous pilotez le prélèvement de chaque échéance vous-même par API (authentification BRW initiale, puis 3RI), sans recourir au service d’abonnement automatisé par CentralPay
  • 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.2.

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.2 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 piloté par API

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

Ensuite, le service de paiement fractionné (Installment) vous permettra d’initier facilement un paiement fractionné en se basant sur les éléments renseignés dans votre requête.

Transaction carte via wallet

1. Apple Pay (Smart Form)

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

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

2. Apple Pay (Custom Form)

2.1. Prérequis

1. Créer un compte Apple Developer :

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

2. Intégration côté device :

  • Implémentez Apple Pay côté frontend via Apple Pay JS (pour les sites web) ou PassKit (pour les apps iOS)
  • Collectez le token Apple Pay (ApplePayToken) après validation du paiement par l’utilisateur (Face ID, Touch ID…)
🔐 Certificats requis pour une intégration Apple Pay (https://developer.apple.com/help/account/certificates/create-a-certificate-signing-request)

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

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

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

2. Merchant Payment Processing Certificate

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

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

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

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

2.2. Via token Apple Pay déchiffré

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

ℹ️ CentralPay ne prend actuellement en charge que les tokens Apple Pay déchiffrés. Cette méthode implique une responsabilité PCI-DSS importante de votre part (formulaire SAQ-D). Renseignez-vous et assurez-vous d'être en conformité avant de développer ce mode d'intégration.

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

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

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

Le résultat contiendra :

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

Étape 2 : Création du cardToken CentralPay (Backend)

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

ChampDescription
card[number]PAN de la carte extrait du token Apple Pay
card[expirationMonth]Mois d’expiration de la carte (format MM)
card[expirationYear]Année d’expiration de la carte (format YYYY)
onlinePaymentCryptogramCryptogramme issu du token Apple Pay (CAVV)
eciIndicatorIndice d’authentification issu du token Apple Pay (eci)
applePayTransactionIdID de la transaction Apple Pay
amountMontant en centimes (ex : 2500 = 25,00 €)
currencyCode alpha ISO (ex : EUR, USD, etc.)
merchantPublicKeyClé publique fournie par CentralPay
ℹ️ Où trouver la merchantPublicKey ?
Connectez-vous à votre portail CentralPay Back Office Administration Technique Merchant Public Key

Exemple :

card[number]=5454696696312664
card[expirationMonth]=12
card[expirationYear]=2031
onlinePaymentCryptogram=MGnp3S1LBgJxAANgdNCRAoABFIA=
applePayTransactionId=3d2b17abed2696ca...
amount=2500
currency=EUR
merchantPublicKey=abcdef123456...

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

Étape 3 : Création de la transaction CentralPay (Backend)

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

Champs requis :

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

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

Étape 4 : Testing avant mise en production

L’environnement de test CentralPay permet de valider l’ensemble de votre intégration Apple Pay sans déclencher de véritables paiements. Il est fortement recommandé d’utiliser cet environnement pour toutes les phases de développement, de debug et de validation côté frontend comme backend.

Portail de test
API de test
Cartes de test

Différences entre environnement de test et de production :

  • Les URLs des API sont différentes : Elles utilisent le préfixe test-
    • Test : https://test-api.centralpay.net/v2/rest/transaction
    • Production : https://api.centralpay.net/v2/rest/transaction
  • Les identifiants API (login + secret) sont propres à l’environnement de test. Ils ne sont pas interchangeables avec ceux de production
  • La clé publique CentralPay (merchantPublicKey) est également spécifique à l’environnement

2.3. Via token ApplePay chiffré (hybride)

ℹ️ Si cette méthode d’intégration vous intéresse, veuillez contacter le support CentralPay afin de connaître les livrables associés et les modalités d’accès.

2.3.1. Paramétrage du compte Apple

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

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

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

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

Choisir « Merchant IDs » : 

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

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

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

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

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

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

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

Ajoutez votre certificat : 

Ajouter le domaine associé

Indiquez le nom de domaine en question : 

Téléchargez le fichier indiqué par Apple

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

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

2.3.2. Paiement via Applepay

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

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

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

Frontend : 

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

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

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

session.onpaymentauthorized = (event) => {

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

session.begin();

Backend : 

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

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

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

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

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

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

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

Création de la transaction : (Backend)

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

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

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

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

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

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

Champs requis :

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

3. Google Pay (Smart Form)

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

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

4. Google Pay (Custom Form)

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

Prérequis

1. Créer un compte Google Pay Business :

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

2. Enregistrer votre domaine :

  • Dans la console Google Pay, allez dans l’onglet « Domains »
  • Ajoutez votre domaine de production et de test (ex : example.com)
  • Google vous demandera d’y héberger un fichier de vérification pour valider votre propriété
⚠️ Google Pay fournit un merchantId spécifique au domaine validé.
Ce merchantId est obligatoire pour toute Payment Request Google Pay.
L’utilisation d’un merchantId non associé au domaine entraîne une erreur Google Pay (Error 11).

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

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

4. Récupérez vos identifiants CentralPay :

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

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

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

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

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

2. Utiliser CentralPay comme passerelle de paiement :

Configurez la tokenisation comme suit :

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

Remplacez YOUR_GATEWAY_MERCHANT_ID par votre MerchantPublicKey fourni par CentralPay.

3.Définir les types de cartes acceptées :

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

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

Il existe deux type différents : PAN_ONLY et CRYPTOGRAM_3DS

⚠️​CentralPay n’autorise pas l’utilisation du type PAN_ONLY car il requiert de respecter des normes de sécurité spécifiques. Seul le type CRYPTOGRAM_3DS est autorisé.

const allowedCardAuthMethods = ["CRYPTOGRAM_3DS"];

5. Environnement de test ou production :

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

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

Étape 2 : Récupération du token Google Pay

Lorsqu’un utilisateur final valide un paiement via Google Pay, l’API retourne un token au format JSON dans :

paymentData.paymentMethodData.tokenizationData.token

Ce champ contient une chaîne JSON représentant un objet du type :

{
  "signature": "MEYCIQDn...",
  "protocolVersion": "ECv2",
  "intermediateSigningKey": {
    "signedKey": "{...}",
    "signatures": ["MEUCID..."]
  },
  "signedMessage": "{...}"
}

Ce bloc devra être transmis tel quel à l’API CentralPay lors de la création du cardToken dans le champ googlePayToken.

Étape 3 : Envoi du token à CentralPay (création du cardToken)

Faites un appel à l’endpoint POST /cardToken de CentralPay avec les paramètres suivants :

Paramètres requis :

ChampDescription
amountMontant en centimes (ex : 2500 pour 25,00 €)
currencyCode ISO alpha (ex : EUR, USD, etc.)
googlePayTokenLe JSON complet retourné par Google Pay (tokenizationData.token)
merchantPublicKeyClé publique CentralPay disponible dans le backoffice

Exemple de requête (format x-www-form-urlencoded) :

amount=2500
currency=EUR
merchantPublicKey=abcdef123456...
googlePayToken={"signature":"MEYCIQDn...","protocolVersion":"ECv2",...}

Ne déchiffrez pas le token vous-même : CentralPay s’occupe de sa validation côté serveur.

Étape 4 : Création de la transaction

Une fois que le cardToken est obtenu, vous pouvez déclencher une transaction de manière standard via l’endpoint POST /transaction.

Exemple de paramètres :

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

Le cardToken contient déjà toutes les informations d’authentification : pas besoin d’ajouter de cryptogramme ou de champ CVV.

Étape 5 : Testing avant mise en production

L’environnement de test CentralPay permet de valider l’ensemble de votre intégration Google Pay sans déclencher de véritables paiements. Il est fortement recommandé d’utiliser cet environnement pour toutes les phases de développement, de debug et de validation côté frontend comme backend.

Portail de test
API de test
Cartes de test

Différences entre environnement de test et de production :

  • Les URLs des API sont différentes : elles utilisent le préfixe test-
    • Test : https://test-api.centralpay.net/v2/rest/transaction
    • Production : https://api.centralpay.net/v2/rest/transaction
  • Les identifiants API (login + secret) sont propres à l’environnement de test
    Ils ne sont pas interchangeables avec ceux de production
  • La clé publique CentralPay (merchantPublicKey) est également spécifique à l’environnement

R-transaction carte

1. Remboursement – refund

Vous pouvez rembourser une Transaction si celle-ci est CLEARED via le service Refund ou depuis le détail de la Transaction dans le Portail Marchand. Vous pouvez initier un remboursement total ou partiel en renseignant un montant.

Votre client recevra les fonds sur sa carte sous 3 à 5 jours ouvrés après l’opération. Votre compte de paiement est lui débité immédiatement, il doit donc être solvable pour pouvoir réaliser l’opération.

Vous ne pouvez pas annuler un remboursement une fois celui-ci réalisé.

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

2. Crédit – credit

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

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

3. Contestation – Dispute

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

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

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

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

1. Alerte de fraude FRAUD_NOTICED

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

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

Bonnes pratiques :

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

2. Demande d’information RETRIEVAL_NOTICED

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

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

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

3. Contestation officielle CHARGEBACK_NOTICED

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

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

Lorsqu’un chargeback est émis :

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

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

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

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

Email de confirmation

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

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

Paramétrage

L’email de confirmation possède une mise en forme standardisée affichant les différentes informations de paiement, vous pouvez cependant configurer plusieurs paramètres depuis le Portail Marchand.

  1. Adresse email de l’expéditeur : Paramètrage depuis le point de vente
  2. Nom de l’expéditeur : Paramètrage depuis le point de vente
  3. Votre logo : Paramètrage depuis le point de vente
  4. Nom du point de vente : Paramètrage depuis le point de vente
  5. Texte de pied de page : Paramétrage depuis l’entrrée Configuration Email confirmation paiement Créer
  6. Langue d’affichage : Renseigner la valeur « endUserLanguage » dans la requête de Transaction (anglais par défaut)

Libellé relevé bancaire

Le libellé de relevé bancaire correspond à la description qui sera affichée sur le relevé de compte bancaire de vos clients pour chacune de vos transactions par carte.

Lorsqu’un profil Marchand CentralPay est créé, un libellé de relevé bancaire est défini automatiquement en utilisant le nom de votre premier Point de Vente : CPAY*NomDuPointDeVente

Vous pouvez demander à CentralPay de modifier votre libellé, cependant il doit permettre à vos clients de vous identifier clairement ou d’accéder à votre site de réclamation.

Gestion des devises

Dans le cadre d’une activité internationale, vos clients peuvent disposer d’une carte adossée à un compte bancaire en devises non Euros.

Quelle que soit votre intégration, ces clients pourront vous régler en Euros grâce au système de conversion automatique des réseaux carte (Visa, Mastercard, American Express). Vos clients porteront l’ensemble des coûts de conversion des devises, et vous recevrez des Euros sur votre compte de paiement CentralPay.

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

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

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

Gestion des cartes virtuelles (VCC)

1. Fonctionnement

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

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

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

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

➡️ Cartes virtuelles Booking.com
Booking.com utilise des cartes virtuelles sur certaines destinations. En fonction du paramétrage réalisé sur le site de l’hôtel, une réservation pourra être réalisée avec ou sans prise d’empreinte carte. Si l’hôtelier a choisi de demander un moyen de paiement, alors Booking.com génèrera une carte virtuelle et l’adressera à l’hôtelier ou à son prestataire technique. Suite à la crise du Covid 19, Booking.com n'autorise plus les débits de ses VCC qu'un jour après le checkin du client.

En savoir plus sur le fonctionnement des cartes virtuelles de Booking.com ➝
➡️ Cartes virtuelles Expedia.com
Chez Expedia, il est possible de laisser le visiteur choisir entre la possibilité de payer à l’hôtel (Hotel Collect) ou de payer directement lorsqu’il réalise la réservation (Expedia Collect). Cette option est appelée Expedia Traveler Preference (ETP). Si un client utilise la méthode Expedia Collect, une carte virtuelle sera alors générée.

En savoir plus sur le fonctionnement des cartes virtuelles d'expedia.com ➝

2. Gestion des cartes virtuelles avec CentralPay

La meilleure méthode pour stocker une VCC et de pouvoir l’utiliser une fois disponible est de créer un « Customer » et de lui associer la carte concernée.

Deux options sont ouvertes :

  • Soit la carte est débitable au moment de la création et une demande de vérification est réalisable à la création du Customer 
  • Soit la carte n’est pas utilisable à la création du customer et la carte doit être créé sans vérification. Cela ne signifie pas qu’elle ne pourra pas être utilisée à terme. Cela veut simplement dire qu’elle ne doit être débitée qu’à une certaine date. En général, les OTA auront préalablement vérifié les données de la carte pour s’assurer qu’elle était débitable

Ainsi, créer un Customer dans l’API CentralPay permet de tokeniser la carte virtuelle, sécuriser son stockage et de faciliter son utilisation lorsque les conditions d’acceptation initiales auront été réunies.

Retours, statuts et hooks

1. Codes de retour banque liés aux transactions carte

Lorsqu’une transaction carte (Transaction) est initiée, une demande d’autorisation est soumise à la banque émettrice de la carte. Cette dernière répond avec un code, permettant d’interpréter l’acceptation, le refus et la cause du refus de l’autorisation.

La banque du titulaire de la carte (appelée également « banque émettrice ») exprime son refus en fonction de choix qui lui sont propres et totalement indépendants de CentralPay. CentralPay n’est en possession d’aucune information complémentaire si une carte est refusée et n’a aucun moyen d’en obtenir.

Les principaux codes de retour banque :

CodeDescription
A1 – Repli VADSDSP2 et Soft decline
La banque refuse la transaction, car elle ne possède pas d’authentification forte (3DS 2.0).
Il est nécessaire de repasser cette transaction en 3DS afin de ne plus avoir ce code.
57, 3 et 5Refus générique de la banque
La banque refuse sans donner de statut particulier.
Cela peut être un code CVV erroné ou une autre décision que nous ne connaissons pas.
Ce statut ne permet pas d’affirmer que la banque n’acceptera pas l’autorisation après d’autres tentatives.
4, 7, 14, 15, 31, 33, 34, 41, 43, 54, 55, 56, 59, 63, 76Suspicion de fraude ou vol de la carte
La banque émettrice estime que son client n’est plus en possession de la carte et qu’il s’agit d’une usurpation.
51, 61Provisions insuffisantes / plafond atteint
La carte a dépassé le montant du plafond autorisé ou ne dispose pas des fonds suffisants.
La carte peut de nouveau être acceptée ultérieurement, les plafonds étant calculés sur 7 jours glissant, une transaction peut tout à fait être retentée le lendemain.
12Transaction invalide
La banque refuse sans donner de statut particulier. Cela peut être :
– Simplement une transaction invalide
– Un code 75 de la part de la banque émettrice (le code PIN de la carte a été trop de fois incorrect).
– Un CVV erroné (fournit par l’ACS lors d’une authentification 3DS)
– Ou une autre décision que nous ne connaissons pas.

Consultez la liste complète des codes de retour banque ➝

2. Statuts liés aux transactions carte

Consultez les Statuts Transaction ➝

Consultez les Statuts Refund ➝

Consultez les Statuts Credit ➝

Consultez les Statuts Disputes ➝

Consultez les Statuts Subscription ➝

Consultez les Statuts Installement ➝

3. Webhooks liés aux transactions carte

Consultez les Webhooks Transaction ➝

Consultez les Webhooks Card ➝

Consultez les Webhooks Refund ➝

Consultez les Webhooks Credit ➝

Consultez les Webhooks Customer ➝

Consultez les Webhooks Dispute ➝

Consultez les Webhooks Subscription ➝

Consultez les Statuts Installement ➝

Card transaction

Articles

  • General information
  • CUSTOM payment form
  • 3DS 2.0 Authentication
  • Card Transactiontransaction
  • Recurring Card Transactiontransaction
  • Card transaction via walletApplePay / GooglePay
  • Card Refund Transactionrefund / credit / dispute
  • Confirmation email
  • Bank statement descriptor
  • Currency management
  • Virtual Card Management (VCC)
  • Callbacks, statuses and hooks

General information

1. Operation

A card transaction comprises a sequence of actions:

1.1. 3DS 2.0 Authentication

This ensures that the person making the transaction is indeed the cardholder. The customer’s bank analyzes numerous payment-related factors provided by CentralPay (IP address, location, device used, etc.) and compares them to its customer’s usual data:

  • If the data does not match or the transaction amount is significant, it requires manual identification via a code sent by SMS or through its banking application (« strong authentication » or « SCA »)
  • Otherwise, it directly authorizes the payment (« Frictionless »)

1.2. Bank Authorization

A request made by CentralPay to the payer’s bank to verify the validity and funds availability of their card. The « authorized » funds are blocked until the funds are captured. If no capture is performed within 7 days, the « authorized » funds are released, and the merchant will need to renew their authorization.

For eligible activities (rental, hospitality, etc.), the « pre-authorization » service allows the merchant to extend the authorization period up to 30 days.

1.3. Capture

Capture initiates the debit of the card based on an authorization or pre-authorization. A merchant can perform a full or partial capture of the authorized amount.

2. Accepted Card Types and Networks

Payment cards are issued by banks or approved payment institutions; they can be branded by one or more card networks (also called « Card Scheme »).

The networks accepted by CentralPay are:

  • Debit Card
  • VISA
  • MasterCard
  • American Express

In France, the majority of cards issued are co-branded CB and VISA or CB and Mastercard. In this case, the customer must have the option to choose the network they wish to use.

Cards can be debit or deferred debit / credit (in France, the majority of cards are debit), and can be for individuals (referred to as « Consumer ») or for professionals (referred to as « Corporate »).

Note that these parameters impact the transaction cost for the merchant (interchange fees and card network fees).

CUSTOM payment form

The Transaction API service lets you perform an authorisation followed by a capture of funds on your customer’s bank card. All card payment methods (one-off payments, recurring payments, MoTo, etc.) are managed via this service.

When a customer wants to make a first payment, their card data must be collected to generate a cardTokenId, using CentralPay’s tokenisation service « token.js ». This temporary token can then be used to create a Card resource, identified by a cardId, which can be stored in a Customer object. This linking is required to enable subsequent payments without asking for the card again (1-click payments, recurring payments, etc.).

ℹ️ With a custom payment form (CUSTOM FORM), integrating 3DS 2.2 authentication is mandatory before executing a transaction.

Payment flow diagram with cardTokenId:

ℹ️ If you have PCI DSS Level 1 certification and you handle card data, you can create a /card object directly by sending the data (PAN, expiry date, CVC) to the API, without using token.js.

1. Prerequisites

1.1. Declare your domains

Before using token.js, you must declare the domains hosting your Custom forms in your Merchant Portal. Go to Administration My merchant profile Technical Edit , then complete the Allowed Custom Forms Hosts field.

Access:

Recette Merchant Portal – Administration
Production Merchant Portal – Administration

1.2. Secure your form

Ensure that your payment pages use the HTTPS protocol with TLS 1.2 or higher.

1.3. PCI DSS compliance

Using token.js means you manage the form display and the token trigger yourself. This method requires compliance with PCI DSS SAQ A-EP requirements.

Download the A-EP form ➝

2. Payment form integration

2.1. Create an HTML payment form

Unlike the Smart Form hosted by CentralPay, the Custom Form is created by you, using your own HTML code. You must implement the following fields:

  • Card number: 16 digits for CB/Visa/Mastercard, 15 for American Express
  • Expiry date: MM/YYYY format
  • CVC: 3 digits (CB/Visa/Mastercard), 4 digits (Amex)

You can view our Custom Form examples:

  • See the example of a Custom Form without 3DS 2.2 ➝
  • See the example of a Custom Form with 3DS 2.2 ➝

2.2. token.js script integration

Add the token.js script to your page to generate a cardTokenId:

<script src="https://js.centralpay.net/js/token.js"></script>

Then add your merchant public key (MerchantPublicKey) in a separate tag:

<script type="text/javascript">
  window.Centralpay ? Centralpay.card.setMerchantPublicKey('VOTRE_CLE_PUBLIQUE') : alert('Error loading html form');
</script>

You can see where to find your MerchantPublicKey on the API authentication page.

Integration in a mobile application

If you use a WebView in your application, you can integrate either a custom form with token.js or a hosted form via the PaymentRequest service. These options let you externalise card data collection while providing a smooth user experience.

In a native mobile application, the token.js script is not compatible. You must then collect card data via the application fields, then call the cardToken API directly using your merchantPublicKey.

The call to the cardToken API must include an HTTP Origin header matching a URL declared in your CentralPay Merchant profile (see 2.1 Prerequisites).

For your tests, you can use the following Origin: https://example.centralpay.net

ℹ️ For native mobile applications, card data is transmitted directly from the user’s device to CentralPay, without going through the merchant’s servers. However, this type of integration requires ensuring compliance with the security and PCI DSS requirements applicable to collecting and transmitting card data in a native environment. 

2.3. Create a Customer and link a card

ℹ️ The cardTokenId is a single-use token, for which the CVC is temporary (10 minutes in production, 5 minutes in RCT). After this time, the token automatically expires (status=EXPIRED) and can no longer be used, which will result in the following error: "cardTokenId": "Card token already used".   

Whether you use the card immediately (one-off payment) or want to reuse it later (1-click payment, recurring, etc.), it is recommended to start by creating a Customer object, then save a Card using the cardTokenId. As 3DS 2.2 authentication can sometimes increase processing time, this sequence helps prevent the CVC associated with the cardToken from expiring.

  1. Create a customer object via the POST /customer endpoint, or retrieve the customerId if it is already known
  2. Create a card using POST /card by specifying the cardTokenId issued by token.js and the customerId

Once the card is linked to a customer, the CVC becomes permanent and future transactions can be initiated with no time limit.

If you do not use token.js (PCI DSS certification required), you can create a card directly without using the cardToken by providing the PAN + expiry + CVC +  customerId

3. 3DS 2.2 authentication

Before initiating a card transaction, you must verify the cardholder’s identity via 3DS 2.2 authentication. This step is mandatory for one-off card transactions as well as for recurring card transactions.

ℹ️ Exception: MoTo (Mail Order / Telephone Order) transactions are not subject to 3DS authentication. You can create the transaction directly after creating the card. 

3DS 2.0 Authentication

The 3D Secure 2.0 protocol ensures that the person performing the transaction is indeed the cardholder. The customer’s bank analyzes numerous payment-related factors sent by CentralPay (IP address, location, device used, etc.) and compares them with the customer’s usual data:

  • If the data does not match or the transaction amount is significant, it requires manual identification via a code sent by SMS or via the banking application (« strong authentication » or « SCA »).
  • Otherwise, it directly authorizes the payment (« Frictionless »).

1. Characteristics

There are two types of 3DS, depending on whether you wish to initiate a classic transaction (where the cardholder is present) or if you are executing a recurring payment installment (where the cardholder is not present):

1.1. 3DS 2 « BRW » or « Browser Authentication » (participating cardholder – 1st transaction)

It represents the majority of 3DS 2 integrations. It requires customer authentication to verify that they are the legitimate cardholder at the time of the transaction. It triggers a challenge if necessary to verify the cardholder’s identity (SCA).

👉 Discover how to integrate 3DS 2.0 BRW ➝

1.2. 3DS2 « 3RI Authentication » (non-participating cardholder – recurring payment installments)

3DS Requestor Initiated (3RI) Authentication, or Merchant-Initiated Authentication, is used when the cardholder is not present or not participating.

3RI offers the possibility to generate the necessary 3DS authentications without customer involvement. This allows for the use of an authentication previously generated with a customer. It is used in the following recurring payment contexts: Split payment, Subscription, Refund, etc.

👉 Discover how to integrate 3DS 2.0 3RI ➝

Card Transaction

Depending on your business needs, CentralPay offers various unit transaction modes via its Transaction API service.

Please note, you must first manage the collection of your customer’s card data by creating a Custom Form payment form and integrating 3DS 2.0 authentication.

The basic principles of a card transaction are described in the general information section.

1. Authorization and instant capture

To perform a simple card payment (authorization then instant capture):

  • Create a Transaction by setting the « source » parameter to « EC »

2. Authorization and deferred capture

This transaction mode can be useful if you wish to block your customer’s funds before definitively debiting them, for example, during order validation. This allows you to cancel the operation without being subject to transaction or refund fees.

To perform a card payment with deferred capture (authorization then deferred capture), you must:

  • Perform an authorization by setting the « capture » parameter of the Transaction to « false ». Funds will thus be blocked on the customer’s card
  • Then debit the desired amount by initiating a capture on the received transactionId, specifying the desired amount (« amount »)

You have 7 calendar days following the authorization to perform the capture; otherwise, the customer’s funds will be released.

3. Pre-authorization and deferred capture

The pre-authorization and deferred capture service (or security deposit / PLBS) allows for a pre-authorization of a certain amount, which you can then capture partially or fully within 30 days. During this period, funds are guaranteed to you, as they are blocked on the card and cannot be used by your customer.

This service is only accessible to certain authorized activities (vehicle or equipment rentals, hospitality, etc.).

To perform a pre-authorization and deferred capture, you must:

  • Perform a pre-authorization by setting the « source » parameter of the Transaction to « DP ». Funds will thus be blocked on the customer’s card
  • Then debit the desired amount by initiating a capture on the received « transactionId », specifying the desired amount (« amount »)

You have 30 calendar days following the authorization to perform the capture; otherwise, the customer’s funds will be released.

4. Card verification (secure imprint)

The card imprint & verification service allows for a €0 authorization with cardholder authentication (3DS 2.0). This provides you with information regarding your customer’s card (debit, credit, prepaid, etc.) and ensures it is not fraudulent (card not stolen, cardholder identified, etc.). This service is generally used to register a card with 3DS for a subscription with a deferred start date.

To perform a card imprint and verification (€0 authorization without capture), you must:

  • Create a Transaction by setting the « source » parameter to « RI »
  • We also recommend creating a « customer » during the transaction to associate the generated « cardId » and allow for a potential subsequent debit of this card

5. Card debit only (MO/TO)

The MOTO (Mail Order / Telephone Order) payment service allows for an authorization followed by a capture of a card without the cardholder being present. It is generally used by hotels to debit additional services or consumption at the end of a stay.

Please note, this service is only accessible to certain authorized activities (hospitality, etc.) and has shown increasingly lower conversion results since the PSD2 directive, as it does not allow for cardholder authentication.

To perform a MOTO payment, you must:

  • Create a Transaction by setting the « source » parameter to « MO » (Mail Order) or « TO » (Telephone Order)

6. One-click card payment

One-click card payment consists of saving your customer’s card data so they can pay for their order without having to re-enter it. The customer’s card(s) are securely stored in the CentralPay Customer. In this context, it is necessary to allow your customer to select the card they wish to use or to add a new card.

To perform a one-click card payment, you must:

  • Select the « One-click » option in the point of sale configuration
  • Ensure that your Customers have a card linked to their profile

Recurring Card Transaction

Depending on your business needs, CentralPay offers several recurring transaction modes:

  • Subscription from a subscription template
    CentralPay manages the collection of instalments based on a subscription template that you defined in advance.
  • API-driven subscription
    You manage the collection of each instalment yourself via API (initial BRW authentication, then 3RI), without using CentralPay’s automated subscription service.
  • Installment payment
    CentralPay splits an amount due into several transactions and manages their collection, according to the payment terms you provided.

Please note: you must first manage the collection of your customer’s card data by creating a Custom Form payment form, create a Customer profile for this customer, and implement the 3DS 2.2 authentication principles.

The basic principles of a card transaction are described in the general information section.

For a recurring payment, your customer automatically receives an email containing the details of their instalments. This email also includes a link to our Customer Portal, which allows them to view the status of their recurring payments, change their bank card, and cancel a subscription if needed.

1. Subscription from a subscription template

1.1. Creation

You must first:

  • Create a Custom Form payment form
  • Create a Customer containing at least one Card
  • And perform a 3DS 2.2 BRW authentication

Then, the subscription service (Subscription) will allow you to easily initiate a subscription payment based on a subscription template created in advance via the CentralPay API or the Merchant Portal.

1.2. Specific integration cases

  • If the first subscription payment must be higher than the following instalments (e.g., registration fees), you can first initiate a Transaction following your 3DS BRW authentication, then set a start date (startingDate) in the Subscription object.
  • If you simply want to start a subscription on a specific date, you can first perform a verified card imprint following your 3DS BRW authentication, then set a start date (startingDate) in the Subscription object.

2. API-driven subscription

2.1. Creation

You must first:

  • Create a Custom Form payment form
  • Create a Customer containing at least one Card
  • Perform a 3DS 2.2 BRW authentication
  • Perform an initial Transaction

Then, you will be able to initiate the next Transactions yourself using 3DS 3RI authentication.

2.2. Important information

  • To ensure an optimal conversion rate, the amount of the first transaction must be greater than or equal to the amounts of subsequent transactions performed with 3DS 3RI authentication.
  • The CentralPay platform will not consider the generated transactions as « subscriptions »; therefore, the « Merchant Portal » and « Customer Portal » interfaces will display these operations in the same way as a succession of one-off transactions.
  • With this model, the retry automation system will not apply if the collection of one of your transactions fails.

3. Installment payment

3.1. Creation

You must first:

  • Create a Custom Form payment form
  • Create a Customer containing at least one Card
  • And perform a 3DS 2.2 BRW authentication

Then, the installment payment service (Installment) will allow you to easily initiate an installment payment based on the information provided in your request.

Card transaction via wallet

1. Apple Pay (Smart Form)

Apple Pay is natively integrated into the SmartForm card payment flow (PaymentRequest > paymentMethod[]=TRANSACTION) as long as your customer’s device is compatible.

No action is required on your part. The service is fully managed by CentralPay (device detection, management of Apple certificates and tokens, PCI-DSS security). No card data is exposed on the merchant side (PCI-DSS SAQ-A scope).

2. Apple Pay (Custom Form)

2.1. Requirements

1. Create an Apple Developer account:

  • Sign up for the Apple Developer Program
  • Create your Apple Pay merchant credentials (Merchant ID)
  • Generate your Apple Pay processing certificate through the Apple portal
  • Register your domain (Apple Pay Merchant Domain)

2. Device-side integration:

  • Implement Apple Pay on the front end using Apple Pay JS (for websites) or PassKit (for iOS apps)
  • Retrieve the Apple Pay token (ApplePayToken) after the user has confirmed the payment (Face ID, Touch ID, etc.)
🔐 Certificates required for Apple Pay integration 
(https://developer.apple.com/help/account/certificates/create-a-certificate-signing-request)

To process Apple Pay payments through a direct integration, the merchant must have the following:
• a Merchant ID Identity certificate;
• a Merchant Payment Processing G2 certificate.

The merchant must ensure that all private keys used to generate the CSRs associated with these certificates are retained.

1. Merchant ID Identity
A CSR based on an EC key (256 bits) must be generated.
This CSR will be generated by Centralpay

2. Merchant Payment Processing Certificate

Main steps:
• Request the CSR generated by Centralpay
• Submit the CSR through the Apple Developer Account to obtain the Merchant Payment Processing Certificate.
• Install the certificate on the same macOS computer used to generate the CSR so that it is associated with the private key.
• Export the complete identity in .p12 format (certificate + private key).

⚠️ If the option to export in .p12 format is not available, this indicates that a step in the process was not completed correctly (private key is missing or not associated).

The .p12 file is a secure container that allows the private key associated with the certificate to be used later, in accordance with the Apple Pay workflow.

Important notes:
• If you lose your private key, you must completely recreate the certificate through the Apple Developer portal.
• The Apple Pay documentation can be confusing: the use of OpenSSL applies only to the Merchant ID Identity certificate and does not apply to the Merchant Payment Processing Certificate.

2.2. Via a decrypted Apple Pay token

CentralPay enables the processing of card payments made via Apple Pay as part of a custom integration (excluding Smart Form).

ℹ️ CentralPay currently supports only decrypted Apple Pay tokens. This method entails significant PCI-DSS liability on your part (SAQ-D form). Please research this and ensure you are in compliance before developing this integration method.  

Step 1: Decrypting the Apple Pay token (Backend)

The Apple Pay token must be decrypted on your backend using:

  • Your Apple Pay treatment certificate
  • Your private key
  • Apple Documentation: Payment Token Format

The result will contain:

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

Step 2: Creating the CentralPay cardToken (Backend)

Use the /cardToken POST endpoint of the CentralPay API

FieldDescription
card[number]PAN of the card extracted from the Apple Pay token
card[expirationMonth]Card expiration month (MM format)
card[expirationYear]Card expiration year (YYYY format)
onlinePaymentCryptogramCryptogram derived from the Apple Pay token (CAVV)
eciIndicatorAuthentication Index Derived from the Apple Pay Token (ECI)
applePayTransactionIdApple Pay Transaction ID
amountAmount in cents (e.g., 2,500 = €25.00)
currencyISO alpha code (e.g., EUR, USD, etc.)
merchantPublicKeyPublic key provided by CentralPay
ℹ️ Where can I find the merchantPublicKey?
Log in to your CentralPay Back Office portal Administration Technical Merchant Public Key

Example:

card[number]=5454696696312664
card[expirationMonth]=12
card[expirationYear]=2031
onlinePaymentCryptogram=MGnp3S1LBgJxAANgdNCRAoABFIA=
applePayTransactionId=3d2b17abed2696ca...
amount=2500
currency=EUR
merchantPublicKey=abcdef123456...

The generated cardToken contains all the data needed for Apple Pay authentication.

Step 3: Creating the CentralPay Transaction (Backend)

Use the /transaction POST endpoint of the CentralPay API

Required fields:

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

The cardToken already encapsulates the Apple Pay context and authentication data.

Step 4: Testing before deployment

The CentralPay test environment allows you to validate your entire Apple Pay integration without triggering actual payments. We strongly recommend using this environment for all phases of development, debugging, and validation, both on the front end and the back end.

Test portal
Test API
Test cards

Differences between the test and production environments:

  • The API URLs are different: They use the “test-” prefix
    • Test: https://test-api.centralpay.net/v2/rest/transaction
    • Deployment: https://api.centralpay.net/v2/rest/transaction
  • The API credentials (login and secret) are specific to the test environment. They are not interchangeable with those used in production.
  • The CentralPay public key (merchantPublicKey) is also environment-specific

2.3. Via an encrypted Apple Pay token (hybrid)

ℹ️ If you are interested in this integration method, please contact CentralPay support to learn about the associated deliverables and access procedures.

2.3.1. Apple account settings

– Log in on « https://developer.apple.com/« , create an account, and verify your « developer » account for $99)

– Go to https://developer.apple.com/account/resources/identifiers/list

– Under « App IDs », select « Merchant IDs« :

Then click the « + » to add an « Identifier« :

Select « Merchant IDs« :

Enter your username and click »Register »:

Go to https://developer.apple.com/account/resources, then click Identifiers

On the “Identify” page, select a Merchant ID using the filter in the upper-right corner

Under « Apple Pay Payment Processing Certificate », click « Create Certificate« .

Please note that this « Merchant ID » will NOT be used exclusively for China.

At that point, click « Choose File » to upload the CSR file that was sent to you by CentralPay (CentralPay only).

You can download the generated file.
Next, you need to create the “Apple Pay Merchant Identity Certificate.”
To do this, go to https://developer.apple.com/account/resources, then click Identifiers and finally click the identifier you want to edit.
Once it’s open, click « Create Certificate ».

Upload your certificate:

Add the associated domain

Enter the domain name in question:

Download the file specified by Apple

Deploy the file specified by Apple to a server on the domain in question that is accessible to Apple, then click “Verify”:

You will then be able to download the required certificate.

2.3.2. Payment via Apple Pay

Generating the certificate and key in the same file:

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

Creating an ApplePayToken with the Apple Pay JS API (Demo at https://applepaydemo.apple.com/apple-pay-js-api)

Front end:

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

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

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

session.onpaymentauthorized = (event) => {

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

session.begin();

Backend:

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

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

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

Creating a CardToken with your encrypted Apple Pay token. (Frontend)

When making your API call, in addition to the required fields, you must include the “applePayToken” field in JSON format, containing your Apple Pay token, which includes the elements paymentData,paymentMethod, and transactionIdentifier.
You can then complete a transaction using your cardToken as usual.

Use the CentralPay API’s POST /cardToken endpoint
Required fields:

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

Creating the transaction: (Backend)

Use the /transaction POST endpoint of the CentralPay API
Required fields:

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

The cardToken already encapsulates the Apple Pay context and authentication data.

Create a transaction using your encrypted Apple Pay token. (Backend)

When making your API call, in addition to the required fields, you must include the “applePayToken” field in JSON format, containing your Apple Pay token, which includes the elements paymentData, paymentMethod and transactionIdentifier.

Then use the /transaction POST endpoint of the CentralPay API

Required fields:

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

3. Google Pay (Smart Form)

Google Pay is natively integrated into the SmartForm card payment flow (PaymentRequest > paymentMethod[]=TRANSACTION), provided your customer’s device or browser is compatible.

No action is required on your part. The service will be fully managed by CentralPay (Google Pay compatibility detection, certificate and token management, PCI-DSS security). No card data passes through the merchant’s system; the payment flow falls within the scope of PCI-DSS SAQ-A.

4. Google Pay (Custom Form)

CentralPay enables the integration of Google Pay via the PAYMENT_GATEWAY mode, as required by Google Pay in a multi-merchant PSP environment, without requiring server-side decryption of the token.

Requirements

1. Create a Google Pay Business account:

  • Access the Google Pay Business Console
  • Create a Merchant Profile or link an existing one.
  • Please enter your company and business information.

2. Register your domain:

  • In the Google Pay console, go to the “Domains” tab
  • Add your production and test domains (e.g., example.com)
  • Google will ask you to upload a verification file there to confirm your ownership
⚠️ Google Pay provides a domain-specific merchantId.
This merchantId is required for all Google Pay Payment Requests.
Using a merchantId that is not associated with the domain results in a Google Pay error (Error 11).

3. Implement your Google Pay front-end integration:

  • Implement Google Pay on the front end using Google Pay JS (for websites) or Google Pay Android API (for mobile apps)
  • Collect the Google Pay token (tokenizationData.token) after the user has authorized the payment (PIN, fingerprint, facial recognition, etc.).
ℹ️ Google offers an official tutorial for this integration: Google Pay API | Google for Developers

4. Retrieve your CentralPay login credentials:

  • MerchantPublicKey: Log in to your CentralPay Back Office portal → Administration → Technical → Merchant Public Key
  • API Login: Log in to your CentralPay Back Office portal → Administration → Technical → API ID and copy the ID
  • API Pass: Log in to your CentralPay Back Office portal → Administration → Technical → Click on your API ID → Edit → Generate, copy your API pass, and update it

Step 1: Configuring Google Pay on the front end

ℹ️ The Google Pay button is provided by the official Google Pay SDK.
Payment initiation and token generation are entirely controlled by Google Pay (hosted button).

1. Specify the API version:

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

2. Use CentralPay as a payment gateway:

Configure tokenization as follows:

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

Replace YOUR_GATEWAY_MERCHANT_ID with your MerchantPublicKey provided by CentralPay.

3. Specify the types of cards accepted:

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

4. Select the payment method:

There are two different types: PAN_ONLY and CRYPTOGRAM_3DS

⚠️​CentralPay does not allow the use of the PAN_ONLY type because it requires compliance with specific security standards. Only the CRYPTOGRAM_3DS type is allowed.

const allowedCardAuthMethods = ["CRYPTOGRAM_3DS"];

5. Test or production environment:

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

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

Step 2: Retrieving the Google Pay token

When an end user authorizes a payment via Google Pay, the API returns a token in JSON format in:

paymentData.paymentMethodData.tokenizationData.token

This field contains a JSON string representing an object of the following type:

{
  "signature": "MEYCIQDn...",
  "protocolVersion": "ECv2",
  "intermediateSigningKey": {
    "signedKey": "{...}",
    "signatures": ["MEUCID..."]
  },
  "signedMessage": "{...}"
}

This block must be sent as-is to the CentralPay API when creating the cardToken in the googlePayToken field.

Step 3: Sending the token to CentralPay (creating the cardToken)

Make a POST request to CentralPay’s /cardToken endpoint with the following parameters:

Required parameters:

FieldDescription
amountAmount in centimes (e.g., 2,500 for €25.00)
currencyISO alpha code (e.g., EUR, USD, etc.)
googlePayTokenThe complete JSON returned by Google Pay (tokenizationData.token)
merchantPublicKeyCentralPay public key available in the back office

Example request (x-www-form-urlencoded format):

amount=2500
currency=EUR
merchantPublicKey=abcdef123456...
googlePayToken={"signature":"MEYCIQDn...","protocolVersion":"ECv2",...}

Do not decrypt the token yourself: CentralPay handles its validation on the server side.

Step 4: Creating the transaction

Once you have obtained the cardToken, you can initiate a transaction in the standard way via endpoint POST /transaction.

Example settings:

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

The cardToken already contains all the authentication information: there is no need to add a cryptogram or a CVV field.

Step 5: Testing before deployment

The CentralPay test environment allows you to validate your entire Google Pay integration without triggering actual payments. We strongly recommend using this environment for all phases of development, debugging, and validation, both on the front end and the back end.

Test portal
Test API
Test cards

Differences between the test and production environments:

  • The API URLs are different: they use the “test-” prefix
    • Test: https://test-api.centralpay.net/v2/rest/transaction
    • Deployment: https://api.centralpay.net/v2/rest/transaction
  • The API credentials (login + secret) are specific to the test environment.
    They are not interchangeable with those used in production.
  • The CentralPay public key (merchantPublicKey) is also environment-specific

Card Refund Transaction

1. Refund – refund

You can refund a Transaction if it is CLEARED via the Refund service or from the Transaction details in the Merchant Portal. You can initiate a full or partial refund by entering an amount.

Your customer will receive the funds on their card within 3 to 5 business days after the operation. Your payment account is debited immediately, so it must be solvent to perform the operation.

You cannot cancel a refund once it has been processed.

⚠️ If the card to which you are attempting to issue the refund has expired or the account has been closed, CentralPay will not be able to process the refund. In this case, we invite you to contact your customer to request up-to-date bank details and proceed with a SEPA transfer from your bank. 

2. Credit – credit

You can credit a customer’s card without an initial transaction from the Credit service. There are several ways to do this:

  • Tokenize a card via the cardToken service and then enter it into the Credit service
  • Create or search for a Customer with a valid card, then enter their « customerId » and « cardId » into the Credit service
ℹ️ This service is only available for specific activities; contact CentralPay for more information.

3. Chargeback – Dispute

When a cardholder disputes or reports a transaction to their bank, the network (Visa, Mastercard, Carte Bancaire, etc.) may notify CentralPay to initiate a dispute operation (Dispute).
This operation allows you to track the status of the dispute and act according to the type of signal received: fraud alert, information request, or chargeback.

Each dispute is represented in the CentralPay back office by a distinct operation (Dispute), linked to the original transaction. Notifications are also available via the webhook DISPUTE_CREATED.

For any card payment, a customer can dispute a transaction with their bank within the following timeframes:

  • 120 days from the transaction for Visa and Mastercard networks;
  • 13 months from the operation date for the French Carte Bancaire network.
ℹ️ In France, disputes are generally reserved for cases of fraud (stolen, usurped, or misused card).
In other European countries, they can also be used in the context of a commercial dispute (product not delivered, non-compliant service, etc.).

1. Fraud Alert FRAUD_NOTICED

This status corresponds to a preventive fraud notification transmitted by the network (e.g., TC40 file for Visa).
It is triggered when the issuing bank reports that a cardholder claims not to have originated the transaction (stolen, copied, or usurped card).

➡️ No refund is initiated at this stage.
➡️ This signal allows you to anticipate a potential chargeback and strengthen your anti-fraud controls.

Best practices:

  • Identify the transaction concerned (amount, country, card, date).
  • Check for similar transactions (same card, same account, same IP).
  • Blacklist the card or account to prevent new attempts.
  • Retain proof of authenticity (logs, proof of delivery, consent).
  • Do not contact the cardholder directly (the signal comes from their bank).

2. Information Request RETRIEVAL_NOTICED

This status corresponds to a documentary request issued by the cardholder’s bank.
It occurs when a customer does not recognize a transaction, without mentioning fraud.

The issuing bank then asks CentralPay to request the merchant to provide evidence (invoice, receipt, proof of delivery, etc.).

➡️ A response is expected within 7 days.
➡️ If the elements are accepted, the dispute is closed (RETRIEVAL_CLOSE).
➡️ If no response is submitted, the cardholder’s bank may trigger a chargeback.

3. Official Chargeback CHARGEBACK_NOTICED

A chargeback corresponds to a formal refund request initiated by the issuing bank.
It may result from:

  • confirmed fraud (following an FRAUD_NOTICED);
  • an unresolved dispute (following an RETRIEVAL_NOTICED);
  • or another reason recognized by the networks (product not received, incorrect amount, non-compliant service, etc.).

When a chargeback is issued:

  • The transaction amount is debited from your payment account to refund the cardholder.
  • Non-refundable fees apply for each dispute received, even if the outcome is favorable.
  • You have 20 calendar days to respond to the dispute by providing supporting documents:
    • Proof of delivery or service execution,
    • Proof of cardholder consent (mandatory for non-3D Secure transactions),
    • Other documents demonstrating the legitimacy of the payment.

Failure to respond within the allotted time will result in the dispute being automatically lost.

Once your response is submitted, the issuing bank analyzes the provided elements:

StatusDescription
CHARGEBACK_WONThe evidence was deemed sufficient. The transaction amount is re-credited to you.
CHARGEBACK_LOSTThe dispute is maintained. The refund to the cardholder becomes final.

Confirmation email

When a card transaction has been successfully completed, CentralPay can send a payment confirmation email to your customer. To do this, you must enable it by configuring the confirmation email settings in your Point of Sale.

This email is sent by default to the email address of the Customer associated with the transaction, but you can enter the receiptEmail value of the transaction if you wish to send it to a different address.

Configuration

The confirmation email has a standardized format displaying the various payment details; however, you can configure several parameters from the Merchant Portal.

  1. Sender email address: Configuration from the Point of Sale
  2. Sender name: Configuration from the Point of Sale
  3. Your logo: Configuration from the Point of Sale
  4. Point of Sale name: Configuration from the Point of Sale
  5. Footer text: Configuration from the Configuration Payment confirmation email Create entry
  6. Display language: Enter the « endUserLanguage » value in the Transaction request (English by default)

Bank statement descriptor

The bank statement descriptor is the description that will be displayed on your customers’ bank account statements for each of your card transactions.

When a CentralPay Merchant profile is created, a bank statement descriptor is defined automatically using the name of your first Point of Sale: CPAY*PointOfSaleName

You can request CentralPay to modify your descriptor; however, it must allow your customers to clearly identify you or access your complaint site.

Currency management

In the context of international business, your customers may have a card linked to a bank account in a non-Euro currency.

Regardless of your integration, these customers will be able to pay you in Euros thanks to the automatic conversion system of the card networks (Visa, Mastercard, American Express). Your customers will bear all currency conversion costs, and you will receive Euros in your CentralPay payment account.

In certain cases, CentralPay can allow you to process credit card transactions in different currencies: Euros (EUR), Dollars (USD), Swiss Francs (CHF), and Pounds (GBP). Contact CentralPay if multi-currency transaction management is a requirement for your business.

Note that in this case, acquisition costs in foreign currencies (non-EURO) are subject to additional fees and will be deducted from your transaction amounts.

ℹ️ Outgoing payments (payout) via SEPA transfer can only be made from available balances in EUROS. Non-EURO balances are paid out via SWIFT transfer, which incurs higher fees. However, it is possible to schedule SWIFT payouts so that they are only executed once a certain threshold is reached, in order to better control transfer costs.  

Virtual Card Management (VCC)

1. Operation

Major OTAs such as Booking.com, Expedia.com, hotels.com, and Agoda.com can collect payments at the time of booking. In such cases, they provide hoteliers not with the guest’s actual card information, but with an alias, a virtual card or VCC.

A virtual card, or VCC, is generally issued for restricted use in order to limit the risk of compromise. A virtual card is, in a sense, an alias for an existing card that can only be used starting on a specific date and from a defined MCC. In this case, in the tourism sector, a contract with MCC 7011 (HOTELS) is required in order to charge the card.

Thus, even if the card number fell into the hands of a malicious individual, that person would not be able to initiate a charge on the source card. Given the unique nature of the cards issued by these OTAs, it is generally impossible to perform authorization, pre-authorization, or verification requests at the time of the order.

If the card can only be charged on the day of the reservation, for example, by an MCC 7011, the issuer, typically MASTERCARD B2B PRODUCT, will return an error code for an invalid transaction (12).

➡️ Booking.com Virtual Cards
Booking.com uses virtual cards for certain destinations. Depending on the settings configured on the hotel’s website, a reservation may be made with or without a credit card authorization. If the hotelier has chosen to require a payment method, Booking.com will generate a virtual card and send it to the hotelier or their technical service provider. Following the COVID-19 crisis, Booking.com no longer authorizes charges to its virtual credit cards until one day after the guest checks in.

Learn more about how Booking.com virtual cards work ➝
➡️ Expedia.com Virtual Cards
At Expedia, visitors can choose between paying at the hotel (Hotel Collect) or paying directly when they make their reservation (Expedia Collect). This option is called Expedia Traveler Preference (ETP). If a customer uses the Expedia Collect method, a virtual card will be generated.

Learn more about how Expedia.com virtual cards work ➝

2. Managing Virtual Cards with CentralPay

The best way to store a VCC and be able to use it once it becomes available is to create a “Customer” and link the card to that customer.

There are two options available:

  • Either the card is chargeable at the time of creation, and a verification request can be made when the customer is created,
  • Either the card cannot be used when the customer is created, and the card must be added without verification. This does not mean that it cannot be used later on. It simply means that it should not be charged until a certain date. Generally, OTAs will have verified the card information beforehand to ensure that it is valid for charging.

Thus, creating a Customer in the CentralPay API allows you to tokenize the virtual card, secure its storage, and facilitate its use once the initial acceptance criteria have been met.

Callbacks, statuses and hooks

1. Bank Return Codes for Card Transactions

When a card transaction (Transaction) is initiated, an authorization request is submitted to the card-issuing bank. It responds with a code, allowing for the interpretation of the authorization’s acceptance, refusal, and the reason for refusal.

The cardholder’s bank (also called the « issuing bank ») expresses its refusal based on its own choices, which are entirely independent of CentralPay. CentralPay possesses no additional information if a card is declined and has no means of obtaining it.

Main bank return codes:

CodeDescription
A1 – VADS FallbackPSD2 and Soft decline
The bank declines the transaction because it does not have strong authentication (3DS 2.0).
It is necessary to re-process this transaction with 3DS to avoid this code.
57, 3 and 5Generic Bank Refusal
The bank declines without providing a specific status.
This could be an incorrect CVV code or another decision unknown to us.
This status does not confirm that the bank will not accept the authorization after further attempts.
4, 7, 14, 15, 31, 33, 34, 41, 43, 54, 55, 56, 59, 63, 76Suspicion of Fraud or Card Theft
The issuing bank believes its customer is no longer in possession of the card and that it is a case of identity theft.
51, 61Insufficient Funds / Limit Reached
The card has exceeded the authorized limit amount or does not have sufficient funds.
The card may be accepted again later, as limits are calculated on a 7-day rolling basis, so a transaction can certainly be retried the next day.
12Invalid Transaction
The bank declines without providing a specific status. This could be:
– Simply an invalid transaction
– A code 75 from the issuing bank (the card’s PIN code was entered incorrectly too many times).
– An incorrect CVV (provided by the ACS during 3DS authentication)
– Or another decision unknown to us.

Consult the complete list of bank return codes ➝

2. Card Transaction Statuses

Consult Transaction Statuses ➝

Consult Refund Statuses ➝

Consult Credit Statuses ➝

Consult Dispute Statuses ➝

Consult Subscription Statuses ➝

Consult Installment Statuses ➝

3. Webhooks for Card Transactions

Consult Transaction Webhooks ➝

Consult Card Webhooks ➝

Consult Refund Webhooks ➝

Consult Credit Webhooks ➝

Consult Customer Webhooks ➝

Consult Dispute Webhooks ➝

Consult Subscription Webhooks ➝

Consult Installment Statuses ➝

SCT Transaction

See more about SCT Transaction

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

SCT Transaction

See more about SCT Transaction

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

Comptes de ME

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

Les comptes de ME (Monnaie Électronique) sont utilisés pour stocker et échanger des fonds dans une devise CUSTOM (devise dédiée à un mandataire DME). Un mandataire DME peut demander la création de comptes de ME pour les sous-marchands de son réseau puis réaliser des transferts de fonds en ME entre ces comptes.

Le titulaire d’un compte de ME ne peut recevoir des paiements et utiliser sa monnaie électronique que par l’intermédiaire du mandataire DME. Il peut cependant demander le remboursement de sa monnaie électronique à tout moment et recevra ses fonds en devise ISO : soit sur son compte bancaire par virement SEPA, soit sur sa carte bancaire, selon les paramétrages de son compte.

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

Recette Portail Marchand – Comptes de monnaie électronique
Production Portail Marchand – Comptes de monnaie électronique

1. Utilisation

Les comptes de ME sont principalement utilisés pour permettre à des personnes physiques de recevoir et d’échanger facilement des fonds dans les contextes suivants :

  • Marketplaces C2C de produits ou de services
  • Stockage et utilisation de valeurs-cadeaux au sein d’un réseau de commerçants indépendants

2. Spécificités

Le CMF (Code Monétaire et Financier) présente des conditions spécifiques pour la monnaie électronique. Ainsi, il existe deux types de comptes de ME chez CentralPay :

  • Compte de ME anonyme : Ce compte peut être ouvert sans vérification d’identité du titulaire, à condition qu’il soit adressé à une personne physique et soit limité à 150 € de solde ou d’encaissement sur 30 jours. Ce type de compte est particulièrement utile dans le cadre d’une utilisation ponctuelle du compte par son titulaire, ou tout simplement pour simplifier l’entrée en relation avec le mandataire DME
  • Compte de ME vérifié : Un compte anonyme peut être ensuite vérifié par les équipes conformité de CentralPay (procédure KYC) pour augmenter les limites qui lui étaient imposées, il devient ainsi « vérifié »

3. Création de comptes de ME

Si vous êtes mandataire DME de CentralPay, vous pouvez demander la création de comptes de ME pour vos sous-marchands.

EM Accounts

ℹ️ Reserved exclusively for EMD Intermediaries and their sub-merchants.

EM (Electronic Money) accounts are used to store and exchange funds in a CUSTOM currency (a currency dedicated to an EMD Intermediary). An EMD Intermediary may request the creation of EM accounts for the sub-merchants in its network and then carry out EM fund transfers between these accounts.

The holder of an EM account may only receive payments and use their electronic money through the EMD Intermediary. However, they may request a refund of their electronic money at any time and will receive their funds in an ISO currency: either to their bank account via SEPA transfer, or to their bank card, depending on their account settings.

You can view the details of your EM accounts via the following access points:

Recette Merchant Portal – Electronic Money Accounts
Production Merchant Portal – Electronic Money Accounts

1. Usage

EM accounts are mainly used to enable individuals to easily receive and exchange funds in the following contexts:

  • C2C marketplaces for products or services
  • Storage and use of gift values within a network of independent merchants

2. Specifics

The CMF (Monetary and Financial Code) sets out specific conditions for electronic money. As such, there are two types of EM accounts at CentralPay:

  • Anonymous EM account: This account may be opened without verifying the holder’s identity, provided it is issued to an individual and is limited to a balance or collections of €150 over 30 days. This type of account is particularly useful for occasional use by its holder, or simply to simplify onboarding with the EMD Intermediary.
  • Verified EM account: An anonymous account may subsequently be verified by CentralPay’s compliance teams (KYC procedure) to increase the limits imposed on it; it then becomes « verified ».

3. Creating EM accounts

If you are a CentralPay EMD Intermediary, you can request the creation of EM accounts for your sub-merchants.

Exports comptables

Vous pouvez réaliser plusieurs exports de votre compte aux formats CSV, EXCEL, ou JSON depuis votre Portail Marchand. Pour cela, paramétrez votre recherche avec les filtres disponibles sur la page de l’export souhaité, cliquez sur « Rechercher » puis « Exporter ». En quelques secondes, vous recevrez le fichier par email et pourrez le télécharger à tout moment depuis votre Portail Marchand Fichiers d’export .

1. Export comptable des opérations du compte

Cet export reprend l’ensemble des mouvements financiers débiteurs et créditeurs qui ont été réalisés sur votre compte : autorisations cartes, transactions cartes, transactions SDD, transactions SCT, transfers, payout, frais CentralPay, etc.

Vous disposerez du détail de chaque opération afin que vous puissiez le rapprocher facilement à vos factures ou vos dossiers.

L’export contient les données suivantes :

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

Accès :

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

2. Télécharger le rapport financier mensuel

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

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

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

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

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

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

Accès :

Recette Portail Marchand – Documents
Production Portail Marchand – Documents

Accounting Exports

You can perform several exports of your account in CSV, EXCEL, or JSON formats from your Merchant Portal. To do this, configure your search using the available filters on the desired export page, click « Search » then « Export ». Within seconds, you will receive the file by email and can download it at any time from your Merchant Portal Export Files .

1. Accounting Export of Account Transactions

This export includes all debit and credit financial movements that have been made on your account: card authorizations, card transactions, SDD transactions, SCT transactions, transfers, payouts, CentralPay fees, etc.

You will have the details of each transaction so that you can easily reconcile it with your invoices or files.

The export contains the following data:

DesignationMeaning
wallet_idaccount identifier
wallet_nameaccount name
owner_namecompany name
value_datetransaction value date
operation_idCentralPay transaction reference
operation_datetimetransaction date
source_typetransaction type
source_idreference linking multiple transactions
naturetransaction nature
debit_amountamount of « debit » type transactions
credit_amountamount of « credit » type transactions
currencytransaction currency
custom_referencecustom transaction reference
custom_labelcustom transaction name
third_party_idtransaction recipient identifier
third_party_labeltransaction recipient name
third_party_countrytransaction recipient country
payout_numberpayout number

Access:

Recette Merchant Portal – Transactions
Production Merchant Portal – Transactions

2. Download the Monthly Financial Report

At the beginning of each month, in addition to the invoice, an account statement is generated and made available in the secure area of your account ( My Accounts Account Statements ). It presents the total credit and debit amounts made, including a breakdown « of which funds » and « of which fees » to distinguish the nature.

We offer two types of statements: detailed or summary.
- The detailed statement shows all transactions for the selected period.
⚠️ If you have a large number of transactions, they may not appear on the statement. In this case, we recommend performing an export in CSV, Excel, or JSON format.
- The summary statement groups your transactions by day and by transaction type, for the selected period.
To properly understand your detailed account statement:

A) The total amount of debits on your account for the given period:
– of which funds: all debits of « fund » nature (outgoing transfers, etc.)
– of which fees: all debits of « fee » nature (CentralPay fees, etc.)

B) The total amount of credits on your account for the given period:
– of which funds: all deposits to your account (= revenue).
– of which fees: all transactions to offset transactions or adjust fees (fee refunds, etc.).

C) Closing balance of the month preceding the statement.

D) Closing balance of the month of the downloaded statement.

Access:

Recette Merchant Portal – Documents
Production Merchant Portal – Documents

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 piloté par API
    Vous pilotez le prélèvement de chaque échéance vous-même par API (authentification BRW initiale, puis 3RI), sans recourir au service d’abonnement automatisé par CentralPay
  • 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.2.

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.2 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 piloté par API

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

Recurring Card Transaction

Depending on your business needs, CentralPay offers several recurring transaction modes:

  • Subscription from a subscription template
    CentralPay manages the collection of instalments based on a subscription template that you defined in advance.
  • API-driven subscription
    You manage the collection of each instalment yourself via API (initial BRW authentication, then 3RI), without using CentralPay’s automated subscription service.
  • Installment payment
    CentralPay splits an amount due into several transactions and manages their collection, according to the payment terms you provided.

Please note: you must first manage the collection of your customer’s card data by creating a Custom Form payment form, create a Customer profile for this customer, and implement the 3DS 2.2 authentication principles.

The basic principles of a card transaction are described in the general information section.

For a recurring payment, your customer automatically receives an email containing the details of their instalments. This email also includes a link to our Customer Portal, which allows them to view the status of their recurring payments, change their bank card, and cancel a subscription if needed.

1. Subscription from a subscription template

1.1. Creation

You must first:

  • Create a Custom Form payment form
  • Create a Customer containing at least one Card
  • And perform a 3DS 2.2 BRW authentication

Then, the subscription service (Subscription) will allow you to easily initiate a subscription payment based on a subscription template created in advance via the CentralPay API or the Merchant Portal.

1.2. Specific integration cases

  • If the first subscription payment must be higher than the following instalments (e.g., registration fees), you can first initiate a Transaction following your 3DS BRW authentication, then set a start date (startingDate) in the Subscription object.
  • If you simply want to start a subscription on a specific date, you can first perform a verified card imprint following your 3DS BRW authentication, then set a start date (startingDate) in the Subscription object.

2. API-driven subscription

2.1. Creation

You must first:

  • Create a Custom Form payment form
  • Create a Customer containing at least one Card
  • Perform a 3DS 2.2 BRW authentication
  • Perform an initial Transaction

Then, you will be able to initiate the next Transactions yourself using 3DS 3RI authentication.

2.2. Important information

  • To ensure an optimal conversion rate, the amount of the first transaction must be greater than or equal to the amounts of subsequent transactions performed with 3DS 3RI authentication.
  • The CentralPay platform will not consider the generated transactions as « subscriptions »; therefore, the « Merchant Portal » and « Customer Portal » interfaces will display these operations in the same way as a succession of one-off transactions.
  • With this model, the retry automation system will not apply if the collection of one of your transactions fails.

3. Installment payment

3.1. Creation

You must first:

  • Create a Custom Form payment form
  • Create a Customer containing at least one Card
  • And perform a 3DS 2.2 BRW authentication

Then, the installment payment service (Installment) will allow you to easily initiate an installment payment based on the information provided in your request.

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

Reconciliation of a payment request

CentralPay offers a service called bankReconciliation that allows you to link one or more SCT transactions to a payment request (PaymentRequest) if you are not using the virtual IBANs designated for SCT transactions.

1. In the event of a reference error on the part of your client

When you use payment requests with virtual IBANs assigned to a specific customer, and your customer does not enter the “sepaReference” correctly when making the transfer, CentralPay is unable to automatically match the transfer to the payment request.

You can therefore use the bankReconciliation service to map the received SCT Transaction to the payment request that was originally created:

  • amount = transfer amount in centimes
  • wireTransferID = SCT TRANSACTION ID (available in the SCT TRANSACTION hook)
  • paymentRequestBreakdownId = PaymentRequest breakdown ID (available in the PaymentRequest hook)

2. If you are using your own order reference

If you want to manage your accounts receivable in CentralPay using the Payment Requests service without using the Smart Form payment page, follow these steps:

  • For each customer: Create a Customer record with a vIBAN, retrieve the vIBAN, and display it in your sales funnel along with your order reference
  • At the same time, create a paymentRequest containing the same order ID (in the “merchantPaymentRequestId” field) and the order amount
  • As soon as you receive a customer transfer, you can identify the associated order using the “description” field in the SCT Transaction.
  • Vous recherchez ensuite une PaymentRequest avec la même référence dans « merchantPaymentRequestId »
    • If a PaymentRequest has the same reference, you associate it with the “bankReconciliation” service
    • If no PaymentRequest has the same reference number, but the transfer was received to a vIBAN Customer that has only one pending PaymentRequest or one with an identical amount, you can reconcile them using a bankReconciliation.
    • If no PaymentRequest has the same reference number and the Customer has multiple PaymentRequests pending settlement or for different amounts, trigger an alert in your system so that your finance department can manually reconcile the transfer (by manually linking it to the correct PaymentRequest via a bankReconciliation).
  • Transfers not associated with a PaymentRequest will thus be easily identifiable
  • As well as unpaid or partially paid PaymentRequests

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.

Direct Debit transaction

Once you have completed the steps to create and sign a mandate, you can create a SEPA Direct Debit transaction (SDD transaction). Each SDD transaction will be linked to the corresponding mandate.

To create SDD transactions, you have several options:

  1. Create individual SDD transactions: to process one or more SDD transactions via API completely on your own
  2. Create SDD transactions using “Subscription” templates: to process X transactions at a frequency defined by a subscription template (for example, €50 per month for 12 months).
  3. Create SDD transactions using the “Installment” payment service: to split a customer receivable into multiple transactions (example: €1,000 to be paid in 3 installments with a down payment of €500).

1. Individual SDD transactions

1.1. Create an “SDDTransaction”

  • Enter the SEPA mandate ID “mandateId”
  • Enter the transaction amount in centimes “amount”
  • Enter “EUR” in the “currency” property
  • Enter your unique transaction ID in the “endToEndIdentification” property
  • Enter the transaction description in the “remittanceInformation” field (this information will appear on your customers’ account statements)
  • Enter your client’s IP address in “endUserIp”
  • Enter your CentralPay point-of-sale ID in the “pointOfSaleId” field
  • Enter the desired transaction date in “requestedCollectionDate”

You can then repeat this process for each of your customer’s recurring payment due dates.

1.2. [Optional] Ask the customer to confirm via text message

  • For added security, you can set up a one-time password (OTP) to validate each SDDTransaction: an OTP will then be generated upon creation and sent to your customer via text message. An sddTransactionId will also be generated upon creation.
  • By default, SDDTransactions are validated automatically
  • This step is required only if you have configured OTP validation for the SDDTransaction
  • Get your client’s secret code from them
  • Send it to us, along with the sddTransactionId
  • As a result of this action, the SDDTransaction will be considered validated and will therefore be processed

2. SDD transactions from “subscription” templates

2.1. Creation

First, you must create a Customer that contains at least one Mandate.

Then, the subscription service (Subscription) will allow you to easily initiate a subscription payment based on a subscription template created in advance via the CentralPay API or the Merchant Portal.

2.2. Specific integration cases

  • If the first subscription payment must be for a higher amount than subsequent payments (e.g., sign-up fee), you can first initiate a one-time SDD transaction, then enter a start date (startingDate) in the Subscription object.
  • If you simply want to start a subscription on a specific date (e.g., the effective date of your contract), you can enter a start date (startingDate) in the Subscription object

3. SDD transaction with “Installment” payment plan

3.1. Creation

First, you must create a Customer that contains at least one Mandate.

Then, the installment payment service (Installment) will allow you to easily initiate an installment payment based on the information provided in your request.

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

Responses, statuses, and webhooks

1. Return Codes Related to Transfers

Transfers made via the CentralPay API (subject: Transfer or Transfer Reversal) are internal transactions between two CentralPay account holders (e.g., merchants, customers, partners). These transactions are executed synchronously or nearly instantly.

Unlike Card Transactions or Bank transfers, there are no bank return codes associated with these internal transfers. If a transfer fails, the API returns an HTTP error describing the reason for the Rejection (e.g., insufficient funds, inactive account, incompatible currency, etc.).

These errors are not business statuses, but rather input validations that prevent the transfer from being created. Once the transfer is accepted, it follows its own lifecycle.

2. Articles of association related to transfers

View the Transfer Articles of association ➝

View the Transfer Reversal Articles of association ➝

View the Payout Articles of Association (also applicable to PayoutByThirdParty) ➝

3. Webhooks Related to Transfers

Check out Transfer Webhooks ➝

View the Transfer Reversal Webhooks ➝

View the Payout Webhooks (also applicable to PayoutByThirdParty) ➝

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

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

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_6ab3046f045e5 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Account.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f045e5", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f045e5.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_6ab3046f04eb2 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Account.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f04eb2", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f04eb2.load(); });

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é

Limited Electronic Money Account

CentralPay allows users to create electronic money accounts (Wallets) to store and use digital assets. Two complementary options are available:

  1. Quickly create a wallet without KYC (limited account): available immediately with regulatory limits
  2. Removing the Wallet limit via KYC enrollment (verified account): limits are lifted after document verification.

This approach is well-suited to progressive onboarding: a user can create a limited account for their first use, and then be invited to complete their profile to access all features.

1. Creating a limited Electronic Money Account

CentralPay allows users to create electronic money accounts that can be used immediately, without the collection of documents, within a strict regulatory framework. Limited electronic money accounts are reserved for individuals (natural persons). Legal entities are not eligible for this type of account.

1.1. Regulatory limits

  • Maximum balance: €150
  • Rolling cash flow: €150 over 30 days

This threshold is based on the provisions of Article R561-16 of the Monetary and Financial Code concerning unaudited electronic money accounts.

ℹ️ This type of account can then have its limit removed through KYC enrollment (see below).

1.2. Step 1 – Create a Customer

The Wallet must be linked to an object Customer representing the final user (see Customer Profiles)

1.3. Step 2 – Create a Wallet

  • POST /wallets

Required fields

FieldTypeDescriptionNote
customerIdUUIDID of the CustomerRequired unless merchantId is provided
currencystring (3)Wallet currency (e.g., "EUR")ISO 4217 – 3-letter code

Optional fields

FieldTypeDescription
referencestringBusiness reference
activationDatedateActivation date
expirationDatedateExpiration date
additionalDataobjectCustom data (JSON)

1.4. Additional steps – Managing a limited wallet

Once you’ve created a Wallet, CentralPay allows you:

  • edit it (e.g., add an expiration date, a reference, or a merchant)
  • view it in detail
  • List the existing wallets for a Customer or Merchant

2. Edit a Wallet

  • POST /wallets/{walletId}

This service allows you to update certain attributes of the Wallet without recreating it.

Required fields

FieldTypeDescriptionNote
walletIdUUIDWallet ID to be updatedRequired in the URL and/or the request body

Optional fields

FieldTypeDescriptionNote
referencestringCustom Wallet reference—
expirationDatedateWallet expiration dateYYYY-MM-DD
activationDatedateActivation Wallet dateYYYY-MM-DD
additionalDataobjectStructured business data (JSON key/value pairs)—
merchantIdUUIDTo link a Wallet to a specific MerchantOptional – not to be confused with customerId

3. View a Wallet

  • GET /wallets/{walletId}

This service allows you to retrieve detailed information about an existing wallet.

Required settings

FieldTypeDescriptionNote
walletIdUUID (36)Wallet IDThe Wallet must belong to the connected Merchant or one of its sub-merchants

Field descriptions

FieldTypeDescriptionNote
currencystringWallet currencyISO 4217 (e.g., EUR)
available[].amountintAvailable balance in centsEx.: 10500 = €105.00
pending[].amountintPending balance (transactions in progress)—
referencestringWallet referenceOptional
additionalDataobjectCustom dataOpen JSON

4. List a Customer’s Wallets

  • GET /wallets

Allow to retrieve the list of wallets created for a given Customer.

Required settings

FieldTypeDescription
customerIdUUIDCustomer ID
currencystringCurrency (e.g., "EUR")

Optional settings

FieldTypeDescriptionNote
afterstringPlease return only those wallets created after this dateISO 8601 format
beforestringPlease return only those Wallets created before that dateISO 8601 format
limitstringNumber of items per pageDefault: 10
pagestringPage indexDefault: 1

5. Steps for creating a limited EM account

FAQ - Protection des données personnelles

Gouvernance et responsabilités

Responsable du traitement et contact DPO

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

Données collectées

Quelles données collectons-nous ?

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

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

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

Finalités

Pourquoi utilisons-nous vos données ?

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

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

Bases légales

Sur quelles bases légales reposent nos traitements ?

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

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

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

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

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

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

Localisation et transferts

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

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

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

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

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

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

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

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

Nature des données

Traitons-nous des données sensibles ?

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

Collectons-nous des données de mineurs ?

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

Conformité RGPD

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

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

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

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

Comment CentralPay documente sa conformité RGPD ?

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

Sous-traitants

Comment encadrons-nous nos prestataires ?

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

Quels prestataires utilisons-nous ?

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

Comment sélectionnons-nous nos prestataires essentiels ?

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

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

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

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

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

Sécurité et résilience

Quelles protections techniques appliquons-nous ?

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

Comment notre organisation garantit la sécurité ?

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

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

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

Nos audits de sécurité

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

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

Droits des personnes

Quels sont vos droits et comment les exercer ?

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

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

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

Comment concilions-nous effacement et obligations légales ?

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

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

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

Autres garanties

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Partageons-nous nos politiques et procédures internes ?

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

FAQ - Privacy Policy

Governance and Responsibilities

Data Controller and DPO Contact

CentralPay, an Electronic money Institution (EMI), is the data controller for its payment services.
DPO contact: dpo@centralpay.com (response within 30 days).

Data Collected

What data do we collect?

As part of the provision of its payment services and in order to comply with its legal obligations, CentralPay collects only the data that is strictly necessary. This data varies depending on the type of transaction (payment, KYC verification, fraud prevention, customer support). It falls into several categories:

  • Identifying information: last name, first name, title, date and place of birth, nationality, and role (e.g., legal representative, executive, or Beneficial Owner—UBO).
  • Contact information: email address, phone number, mailing address.
  • Payment information: bank account details (IBAN, BIC); card information processed exclusively in a PCI DSS-certified environment (full card number and CVC collected solely for tokenization and never exposed in plain text), expiration date, card brand (Visa, Mastercard, etc.), issuing country, and last 4 digits.
  • Transaction data: transaction ID (transactionId), date and time, amount, currency, status, order ID (orderId), transaction history (one-time payments, recurring payments, split payments, refunds).
  • Security and anti-fraud data: IP address, 3DS fingerprint (browser/device), anti-fraud results and scores, and any technical monitoring status.
  • KYC/AML-CFT compliance data: official identity documents, proof of address, legal documents pertaining to the company (e.g., Commercial register, Articles of association), information on ultimate Beneficial Owners (UBOs and ownership percentages).
  • Technical data: application logs (API logs), events sent to Merchants (webhooks), technical identifiers (customerId, eventId).

CentralPay does not collect any sensitive data as defined in Article 9 of the GDPR (health, religion, political opinions, sexual orientation, etc.), unless required to do so by law in exceptional circumstances.

Purposes

Why do we use your data?

CentralPay processes your personal data solely for specific, explicit, and legitimate purposes. This processing is carried out in connection with the provision of our payment services, compliance with our regulatory obligations, and the security of our systems. The main purposes are as follows:

  • Payment Processing: processing payment transactions (SEPA, credit cards, recurring or installment payments), managing cash flows, issuing invoices, and tracking payments.
  • Compliance with regulatory requirements: enforcement of anti-money laundering and counter-terrorism financing (AML/CTF) rules, know-your-customer (KYC) verification, legal document retention, and supervision by the ACPR.
  • Fraud prevention and detection: implementation of the security controls required by PSD2 (strong authentication, 3DS), calculation of anti-fraud scores, and alert management.
  • Customer Relations and Support: communicating with customers and users (notifications, confirmations, sending payment links), handling support requests, and managing complaints and disputes.
  • Accounting and tax obligations: retention of supporting documents; compliance with the provisions of the Commercial Code and the General Tax Code.
  • Technical Improvement and Security: Monitoring the performance and availability of our services; strengthening operational resilience in accordance with the DORA regulation; and continuously improving the customer experience and the security of our systems.

Legal Basis

What is the legal basis for our data processing?

CentralPay processes your personal data solely for specific, explicit, and legitimate purposes. This processing is carried out in connection with the provision of our payment services, compliance with our regulatory obligations, and the security of our systems. The main purposes are as follows:

  • Payment Processing: processing payment transactions (SEPA, credit cards, recurring or installment payments), managing cash flows, issuing invoices, and tracking payments.
  • Compliance with regulatory obligations: enforcement of anti-money laundering and counter-terrorism financing (AML/CTF) rules, know-your-customer (KYC) verification, legal document retention, and supervision by the ACPR.
  • Fraud prevention and detection: implementation of the security controls required by PSD2 (strong authentication, 3DS), calculation of fraud scores, and alert management.
  • Customer Relations and Support: communicating with customers and users (notifications, confirmations, sending payment links), handling support requests, and managing complaints and Disputes.
  • Accounting and Tax Obligations: Retention of supporting documents; compliance with the provisions of the Commercial Code and the General Tax Code.
  • Technical Improvement and Security: Monitoring the performance and availability of our services, strengthening operational resilience in accordance with the DORA regulation, and continuously improving the customer experience and the security of our systems.

How long do we retain your data?

CentralPay follows specific retention periods based on legal requirements and operational needs. At the end of these periods, the data is either deleted or irreversibly anonymized.

  • Financial transactions (supporting documents): retained for 10 years, in accordance with the Commercial Code.
  • Personal data associated with transactions (email, phone number, IP address, 3DS fingerprints, masked PAN, card token, fraud scores): retained for a maximum of 24 months, then deleted or anonymized.
  • Card data (token + metadata): retained for up to 24 months after the card’s expiration date. The full PAN and CVC are never stored in plain text.
  • Payment Requests (emails/text messages): Retained for up to 24 months.
  • Subscriptions and installment payments: retained for the duration of the subscription plus 5 years.
  • Bank Accounts (IBAN/BIC) and SEPA direct debits: retained for the duration of the mandate plus 10 years (contractual evidence).
  • KYC / AML-CFT: Data retained for 5 years after the end of the business relationship (Art. L561-12 of the French Monetary and Financial Code).
  • Technical logs and webhooks: retained for 24 months.

Beyond these time periods, CentralPay retains only anonymized data or data that is strictly necessary to comply with a legal obligation.

Location and Transfers

Where is your data processed?

The data processed by CentralPay is primarily hosted in the European Union—mainly in France—in environments certified to PCI DSS and ISO 27001 standards.

To date, CentralPay does not transfer personal data outside the European Union.
If a transfer outside the EU were to become necessary in the future (for example, to an SMS or email service provider), it would be governed by:

  • an impact analysis of the transfer,
  • the implementation of the European Commission’s Standard Contractual Clauses (SCCs),
  • additional technical measures (encryption, segmentation, access control),
  • and transparent communication with our customers.

Data Transfers Outside the EU: How Do We Handle Them?

To date, CentralPay does not transfer personal data outside the European Union.
All data is hosted and processed within the EU, primarily in France and within certified (PCI DSS) infrastructure.

If, in the future, a transfer outside the EU were to be necessary (for example, to an SMS or email service provider), CentralPay undertakes to:

  • conduct an impact analysis of the transfer,
  • apply the European Commission’s Standard Contractual Clauses (SCCs),
  • implement additional technical measures (encryption, segmentation, access control),
  • and keep its customers fully informed.

Nature of the Data

Do we process sensitive data?

No. CentralPay does not process any sensitive data as defined in Article 9 of the GDPR (health, religion, political opinions, sexual orientation, etc.).
We collect only the information strictly necessary to process payments and comply with our legal obligations (anti-money laundering and counter-terrorism financing, ACPR supervision).

Do we collect data from minors?

CentralPay provides its services exclusively to businesses (B2B). We therefore do not knowingly collect data from minors.
If, indirectly, a minor is required to make a payment, data processing is limited to the necessary payment information (e.g., bank or card details), and is always carried out under the responsibility of the minor’s legal guardian when verification is required.

GDPR Compliance

Do we conduct impact assessments (PIA)?

Yes, we conduct AIPDs (PIAs) for processing operations that may pose a high risk (e.g., KYC, anti-fraud/3DS, card tokenization, longitudinal analyses). Residual risks and mitigation measures are documented.

How do we ensure data minimization and privacy by design?

We collect only the fields necessary for each specific purpose, segregate environments (LIVE/pre-production), do not use any real data in testing, limit webhook payloads to the minimum necessary, and automatically purge or anonymize data upon expiration.

How does CentralPay document its GDPR compliance?

  • Public GDPR Policy (website).
  • Record of data processing (internal, up-to-date).
  • PIA on High-Risk Processing (Internal).
  • Policies/procedures (security, data deletion, incidents, rights).
  • Internal Control Reports (ACPR).

Subcontractors

How do we supervise our service providers?

Each service provider is subject to contractual requirements (Art. 28): security measures, confidentiality, incident reporting, auditability, data location, and controlled sub-contracting. Initial due diligence + regular reassessment (security, SLA, compliance).

Which service providers do we use?

Upon request and after signing an NDA, we can provide an up-to-date list of our service providers, organized by category (hosting/cloud, KYC, email/SMS delivery, fraud prevention, support), along with their geographic locations.

How do we select our key service providers?

CentralPay has a policy for managing subcontractors that complies with both the GDPR (Article 28) and the DORA Regulation.

During the selection process, we conduct a thorough due diligence review covering security (certifications, technical measures), regulatory compliance (GDPR, PSD2, AML/CFT), data location and legal framework, the service provider’s financial stability, and the service levels (SLAs) offered. For critical service providers, we examine in particular their integration into the payment services value chain and their role in ensuring operational resilience.

Each contractual relationship includes clauses that comply with Article 28 of the GDPR (confidentiality, security, incident notification, and restrictions on cascading subcontracting) as well as, where applicable, Standard Contractual Clauses (SCCs) to govern transfers outside the European Union.

In accordance with DORA, we maintain a registry of ICT service providers and identify those considered critical service providers. These service providers are subject to enhanced evaluation, with specific contractual requirements regarding availability, integrity, continuity, and resilience testing.

Monitoring is conducted through regular reviews (inspections, audit reports, SOC/ISO-type compliance certifications, security questionnaires), a contractual right to audit, and periodic reporting mechanisms. We perform integration of these assessments into our ICT risk mapping and our DORA monitoring committees.

Security and Resilience

What technical safeguards do we use?

CentralPay protects data and systems by combining robust technical mechanisms that comply with the highest international standards.
Communications are secured through systematic encryption: TLS 1.2/1.3 for data in transit and AES-256 for data at rest, with centralized key management.
Card data is processed exclusively in a PCI DSS Level 1 environment, with data collection in a dedicated area and irreversible tokenization to prevent any exposure of the full PAN.
Access to the systems is controlled by RBAC (role-based access control) mechanisms and protected by strong authentication (MFA), with regular reviews of access privileges.
All sensitive actions are logged with a timestamp and cannot be tampered with; this logging is integrated into an SIEM system that provides real-time detection and alerts.
The infrastructure is compartmentalized: network segmentation, strict separation of environments (production, testing, pre-production), and secure management of secrets.
Finally, CentralPay regularly tests its system through penetration tests, vulnerability scans, and independent external audits.

How does our organization ensure safety?

Security relies not only on technology but also on strong organization and governance.
CentralPay implements a risk management framework that includes detailed risk mapping, key performance indicators (KPIs), and a risk appetite policy approved by management.
Oversight is based on the recognized three lines of defense model: operations provide first-line controls, an independent compliance and ongoing monitoring function serves as the second line, and internal audit constitutes the third line.
A Security and Compliance Committee meets regularly to steer strategy and update key policies and procedures (access management, incident response, data purges, and the exercise of GDPR rights).
Finally, the security culture is reinforced through regular training for teams, covering cybersecurity, personal data protection, and AML/CFT obligations.

What should we do in the event of a security incident?

CentralPay has a formalized incident management procedure.
In the event of an incident, we quickly detect, assess, and immediately contain it, followed by remedial actions.
All events are fully logged and investigated (forensically) to identify the cause and prevent recurrence.
When required by regulation, we notify the CNIL within a maximum of 72 hours and inform the affected individuals in the event of a high-risk incident.
Each incident results in a lessons-learned review and the implementation of a corrective action plan, which is monitored until the issue is fully resolved.

Our Security Audits

CentralPay is subject to multiple levels of security controls and testing, both internal and external:

  • Regular external audits:
    • Annual PCI DSS Level 1 certification for the collection and processing of payment data,
    • Independent cybersecurity audits,
    • Penetration tests conducted by third-party service providers to identify and fix vulnerabilities.
  • Ongoing internal controls (second line of defense): security clearance reviews, vulnerability scans, and monitoring of critical systems.
  • Periodic independent audits (third line of defense): internal and external audits of the security framework and regulatory compliance (ACPR, DORA).
  • Annual Policy Review: All of our policies regarding security, data purging, incidents, and vendor management are reviewed and approved annually by management.
  • Resilience testing in accordance with DORA:
    • Business Continuity and Disaster Recovery Plans (BCP/DRP) that are regularly tested to verify the ability to maintain services in the event of a major incident,
    • Crisis exercises simulating cyberattack scenarios or critical system outages,
    • Load and performance testing of critical infrastructure,
    • Failover and redundancy scenarios across environments to ensure availability,
    • For critical functions, a gradual shift toward advanced resilience tests such as “TLPT” (Threat-Led Penetration Testing), as required by DORA for significant entities.

Human Rights

What are your rights, and how can you exercise them?

Pursuant to Articles 15 through 22 of the GDPR, you have the following rights regarding your personal data:

  • right of access,
  • right to correction,
  • right to erasure,
  • right to restriction,
  • right to object,
  • right to data portability,
  • right to withdraw consent.

You can exercise your rights by sending a request to: dpo@centralpay.com.
We are committed to responding to you within a maximum of 30 days, except in exceptional cases that warrant an extension. If you encounter any difficulties, you may also file a complaint with the CNIL.

How do we balance data erasure with legal obligations?

CentralPay respects the right to erasure as provided for by the GDPR, but certain data must be retained due to legal obligations.
We delete or anonymize all personal data that is no longer necessary.
However, when the law requires us to retain certain information (for example, accounting records for 10 years or KYC data for 5 years after the end of the relationship), this data is retained, but:

  • access to them is strictly limited,
  • They are used only for purposes required by law (ACPR audits, TRACFIN, evidentiary obligations).

In this way, we strike a balance between respecting people’s rights and meeting our regulatory obligations.

Other Coverages

Do we use automated decisions or profiling?

CentralPay does not apply any fully automated decisions that produce legal or significant effects on individuals, as defined in Article 22 of the GDPR.
However, we do use anti-fraud scoring tools that calculate a risk level for transactions. These results are used solely as a decision-making aid: when a case is sensitive or high-risk, it is systematically reviewed and validated by a human reviewer.

Do we use cookies or trackers for advertising purposes?

In payment flows and APIs, CentralPay does not use any advertising cookies or marketing trackers. Only cookies or trackers that are strictly necessary for the technical operation and security of the payment flows (e.g., session management, authentication) may be used.
At this point, no banner-based consent mechanism is necessary, since we do not use optional cookies.

How do we ensure resilience and backups?

Yes. The infrastructure is redundant across two data centers located in France; backups are encrypted and stored off-site, tested regularly (restores), and are subject to the same access controls as the production environment.

Do we have a documented policy for data purging and anonymization?

Yes, with retention periods by category (transactions/personal data: 24 months; cards: up to 24 months after the expiration date; KYC: 5 years after the relationship ends, power of attorney: 10 years, logs: 24 months) and mechanisms (deletion vs. irreversible anonymization), plus records of data purging (execution logs).

Do our test environments contain real data?

CentralPay never uses actual personal data in its test or pre-production environments. All of our internal datasets (e.g., cards, IBANs, Customer Profiles) are synthetic or fictitious and comply with PCI DSS standards.

However, users of our test environments (e.g., Merchant integrators) can technically enter their own data. This practice is strictly prohibited and governed by our Terms of Use.

If a user accidentally enters personal data into a test environment, that data:

  • are not used for actual payment processing,
  • are not replicated in production,
  • and are automatically or manually purged as soon as they are detected.

How does CentralPay manage support teams’ access to data?

CentralPay’s support teams do not have direct, permanent access to personal data. Access is granted only when necessary for operational purposes (for example, to resolve an incident or assist a customer), and in accordance with the following principles:

  • Temporary and Justified Access: Each access request is granted for a limited period and must be supported by a ticket or an approved request.
  • Principle of least privilege: The support agent sees only the data strictly necessary to process the request.
  • Strong Authentication (MFA): All access is secured through multi-factor authentication.
  • Full traceability: Every action performed by a support team member is logged and audited.
  • Regular review of access permissions: Access rights are reviewed monthly to ensure they remain justified.
  • Masking of Sensitive Data: Sensitive fields (e.g., full card number, CVV, full IBAN) are systematically masked in the interfaces so that support staff can never view them in plain text.

Do we provide your customers with specific GDPR-compliant contract terms?

Our Terms of Service and contracts include the necessary provisions (confidentiality, security, incident response, subcontracting, data retention and deletion). GDPR addenda may be included depending on the specific use case.

Do we share our internal policies and procedures?

The public GDPR policy is available online. Detailed internal policies (incident response, data retention, security) are not shared by default.

Glossaire CentralPay

1. Les types d’acteurs

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

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

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

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

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

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

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

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

2. Les types de comptes

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

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

Il est représenté par l’objet Wallet type EM dans l’API CentralPay.
Compte de commissionCompte de paiement secondaire permettant d’isoler les flux de commissions et/ou certains prélèvements de frais (selon modèle).
Dans le cadre des modèles Partenaire/Mandataire, ce compte peut recevoir les commissions imputées aux transactions des marchands liés/participants, conformément aux règles contractuelles applicables.

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

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

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

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

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

DésignationDescription
Frais CentralPayEnsemble des frais dus à CentralPay déduits des opérations correspondantes, prélevés sur un compte de commission dédié ou facturés en fin de mois (selon les conditions contractuelles applicables).
Devises ISODevises conventionnelles aux normes ISO 4217 (exemple : EUR, USD, CHF, GBP…)
Devise CUSTOMDevise de monnaie électronique créée pour un Mandataire DME de CentralPay. La valeur de la devise CUSTOM est toujours adossée à celle d’une devise ISO (ex. EUR).
Instruction TechniqueDonnée / événement à finalité strictement technique et commerciale transmis à CentralPay (ex. références de commande, panier, commission, évènements logistiques). Une Instruction Technique n’est pas un ordre de paiement et ne déclenche aucun effet financier automatique : CentralPay reste seul décisionnaire du traitement et, le cas échéant, des mises à disposition de fonds.
Date de déblocageDate de mise à disposition différée pouvant être appliquée par CentralPay pour rendre des fonds utilisables par un bénéficiaire (ex. après livraison/expédition), selon la politique de risque et les règles applicables. Elle peut être déterminée à partir d’informations commerciales transmises, sans constituer une instruction de paiement.
Compte bancaireCompte bancaire externe lié à :
• un Profil Marchand pour réaliser des versements sortants (payout)
• ou à un Profil client pour réaliser des prélèvements SEPA ou des versements sortants.
Il est représenté par l’objet BankAccount dans l’API CentralPay.
Versement sortantVirement sortant d’un compte CentralPay vers un compte bancaire externe. Peut être réalisé par SEPA ou SWIFT.
Il est représenté par l’objet Payout dans l’API CentralPay.
Autorisation CarteOpération d’interrogation de disponibilité des fonds d’une carte bancaire, puis de blocage en prévision d’une transaction carte (7 jours max).
Elle est représentée par l’objet Transaction dans l’API CentralPay.
Transaction carteOpération de débit d’une carte bancaire, au crédit d’un compte CentralPay.
Elle est représentée par l’objet Transaction dans l’API CentralPay.
Transaction SCTOpération de réception d’un virement SEPA ou SWIFT, au crédit d’un compte CentralPay.
Elle est représentée par l’objet sctTransaction dans l’API CentralPay.
Transaction SDDOpération de débit d’un compte bancaire, au crédit d’un compte CentralPay.
Elle est représentée par l’objet sddTransaction dans l’API CentralPay.

CentralPay Glossary

1. Types of Actors

LabelDescription
ActorAny entity identified on the CentralPay platform. This may be a Merchant Profile, a Point of Sale (POS), a third-party establishment, or CentralPay.
Merchant ProfileThe Merchant Profile technically and operationally represents a merchant on the CentralPay platform. It serves as the basis for:
• His accounts: Payment Accounts or Electronic Money Accounts;
• Administration: API access, User Profiles, available services;
• Its technical configuration: webhooks, notifications, Point of Sale (POS) systems, acceptance rules, Bank Accounts;
• Its regulatory documentation: KYC/KYB, AML/CFT, risk scoring, contract management, fee schedule…

The Merchant Profile corresponds to the API object ` Merchant ` and is created automatically after the registration is validated (via the API object ` Merchant-Enrollment`).
Standard MerchantA legal entity or sole proprietorship that is a CentralPay customer and processes payments on its own account when selling goods or services.
May be functionally linked to a Technical Partner or Integration Partner.
Has a Merchant Profile of the type STANDARD.
Partner MerchantA legal entity that is a CentralPay customer, has a Merchant Profile, and may fall under one of the following models:
• Technical Partner: operates a shared solution (e.g., marketplace, SaaS platform) and has one or more Points of Sale (POS) open in its name, to which standard Merchants can be linked.
Has a Merchant Profile of type TECHNIQUE.
• Integration Partner: provides technical support, via access delegated by standard merchants, to facilitate integration and day-to-day operations (without sharing POSes under the partner’s name).
Has a Merchant Profile of the type INTEGRATEUR (if applicable).

A Partner Merchant may earn commissions (depending on the model) and/or be registered as a MOBSP to assist merchants during onboarding.
Intermediary MerchantA legal entity that is a customer of CentralPay, acting on behalf of third-party accounts, under one of the following regulatory statuses:
• PSP Agent: A Payment Service Provider (PSP) agent of CentralPay, registered with the ACPR (Bank of France) and authorized to act in the name and on behalf of CentralPay within a contractually defined scope (e.g., debit/credit transactions and transfers on behalf of third-party accounts).
Has a Merchant Profile of the type AGENT.
• EMD: Electronic Money Distributor registered/declared by CentralPay with the ACPR (Bank of France) for a project involving the issuance, distribution, and exchange of electronic money (CUSTOM currencies).
Has a Merchant Profile of type DME.
Sub-merchant / ParticipantA legal entity or individual who is a customer of a CentralPay Intermediary Merchant (PSP Agent or EMD).
• Sub-merchant: acts to sell products or services, for an LMNP business,
• Participant: acts for non-commercial purposes (crowdfunding, personal wallet, collective projects, etc.).
Has a specific Merchant Profile BASIC, with a limited scope of functionality.
CustomerA natural or legal person who pays or issues a payment order to a CentralPay Merchant (may also be referred to as the payee, payer, or debtor).
May or may not have a Customer Profile (Customer).

Note: In CentralPay’s regulatory or contractual documents, the term “Customer” may refer to the Merchant itself, depending on the context defined in the document.
Customer ProfileRepresents a customer registered by a Merchant on the CentralPay platform.
It contains:
• the customer’s personal information: last name, first name, email, phone number, company name, etc.
• the customer’s payment methods: cards, SEPA direct debits, IBAN, Bank Accounts, etc.
• the customer’s activities: payment requests, payment history, etc..

The Customer Profile corresponds to the API object Customer.
BO User ProfilesIndividuals with access to the CentralPay Merchant Portal to view or manage one or more Merchant Profiles.
• Type Legal: the Merchant’s legal representative.
• Type Natural: other authorized user (finance, support, development, etc.).

The BO User Profile corresponds to the API entity BO_user.
API User ProfilesAn entity created via the CentralPay platform that identifies the user (person or system) making API calls on a Merchant Profile.
Enables the tracking of actions and the management of authorizations.

The API User Profile corresponds to the API entity api_user.
Point of Sale (POS)Representation of a website, a brick-and-mortar store, or a sales team. They enable the segmentation of CentralPay Merchant Profile operations for the following purposes:
• Features: to configure different settings for each Point of Sale (POS) (customer notifications, internal notifications, sender name for confirmation emails, logo displayed on the checkout page, etc.)
• Administrative: to restrict the rights to view or edit your BO User Profiles to certain Points of Sale (POS)
• Accountants: to filter transactions by Point of Sale (POS) in the Merchant Portal or in data exports

The Point of Sale (POS) corresponds to the API object PointOfSale.

2. Types of Accounts

LabelDescription
Payment AccountAn account opened in CentralPay’s books in a Merchant’s name. This account is used exclusively for payment transactions (collecting payments in ISO currencies, performing Payouts to a Bank Account, etc.).

It is represented by the ` Wallet ` object of type ` PS ` in the CentralPay API.
Electronic Money AccountAn account opened in CentralPay’s books in the name of a Merchant. This account is used exclusively for the storage and exchange of Electronic money within the distributor’s network (CUSTOM currencies).

It is represented by the ` Wallet ` object of type ` EM ` in the CentralPay API.
Commission AccountA secondary Payment Account used to segregate commission flows and/or certain fee deductions (depending on the model).
Under the Partner/Agent models, this account can receive commissions allocated to transactions by affiliated/participating merchants, in accordance with the applicable contractual rules.

It is represented by the object ` Wallet ` of type ` CM ` in the CentralPay API.
Reserve AccountA secondary Payment Account used to set aside CentralPay reserve funds (account balance, collateral, or Rolling reserve). It is not authorized to make Payouts.

It is represented by the ` Wallet ` object of type ` RS ` in the CentralPay API.
« Agent » Collection AccountA Payment Account opened in CentralPay’s books in the name of an Agent. It is used to receive funds related to transactions initiated through the Agent model, prior to their allocation or transfer to the Payment Accounts of Participant Merchants. It is not authorized to make payouts.

It is represented by the ` Wallet ` object of type ` CL ` in the CentralPay API.
CentralPay Technical Partner AccountThe Technical Partner Account refers to an internal, temporary mechanism used by CentralPay to receive, identify, and temporarily process funds related to a payment transaction, with a view to transferring them to the final Beneficiary. It is not a Payment Account opened for a customer, is not made available to any third party, and does not confer any right of disposal.

Depending on the technical implementation, this mechanism may be implemented using internal objects (e.g., Wallet of type TR) used exclusively by CentralPay for operational processing.

3. The names of objects or operations

LabelDescription
CentralPay FeesAll fees owed to CentralPay, deducted from the corresponding transactions, debited from a dedicated Commission Account, or billed at the end of the month (depending on the applicable contractual terms).
ISO CurrenciesStandard currencies in accordance with ISO 4217 (e.g., EUR, USD, CHF, GBP…)
CUSTOM CurrencyElectronic money created for a CentralPay EMD. The value of the CUSTOM currency is always pegged to that of an ISO currency (e.g., EUR).
Technical InstructionData or events for strictly technical and commercial purposes transmitted to CentralPay (e.g., order references, shopping cart, commission, logistics events). A Technical Instruction is not a payment order and does not trigger any automatic financial action: CentralPay retains sole discretion over the processing and, where applicable, the release of funds.
Release dateA deferred availability date that CentralPay may apply to make funds available to a Beneficiary (e.g., after delivery/shipment), in accordance with applicable risk policies and rules. It may be determined based on submitted commercial information, without constituting a payment instruction.
Bank AccountExternal Bank Account linked to:
• a Merchant Profile for making outgoing Payouts (payout)
• or a Customer Profile for making SEPA Direct Debits or outgoing Payouts.
It is represented by the ` BankAccount ` object in the CentralPay API.
Outgoing paymentOutgoing bank transfer from a CentralPay account to an external Bank Account. Can be made via SEPA or SWIFT.
It is represented by the  » Payout  » object in the CentralPay API.
Card AuthorizationAn operation to check the availability of funds on a credit card, followed by a hold in anticipation of a Card Transaction (max. 7 days).
It is represented by the ` Transaction ` object in the CentralPay API.
Card TransactionA debit transaction from a bank card, credited to a CentralPay account.
It is represented by the ` Transaction ` object in the CentralPay API.
SCT TransactionOperation to receive a SEPA or SWIFT bank transfer credited to a CentralPay account.
It is represented by the  » sctTransaction  » object in the CentralPay API.
SDD TransactionA transaction that debits a Bank Account and credits a CentralPay account.
It is represented by the ` sddTransaction ` object in the CentralPay API.

Portail Marchand

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

Accès :

Recette Portail Marchand
Production Portail Marchand

1. Fonctionnalités

Le Portail Marchand permet notamment :

  • De consulter les opérations comptables du compte
  • De consulter les paiements par carte (« transaction »)
  • De consulter les paiements par virement SEPA (« sctTransaction »)
  • De consulter les paiements par prélèvement SEPA (« sddTransaction »)
  • De créer et de consulter les demandes de paiement (« paymentRequest »)
  • De créer et de paramétrer les profils clients (« customer »)
  • De créer et de paramétrer les points de vente (« pointOfSale »)
  • De paramétrer les notifications Smart Push (templates, scénarios …)
  • D’initier et de gérer les paramètres de versement sortant (« payout »)
  • De générer des exports et de télécharger les rapports financiers mensuels
  • Pour les marchands Partenaires et Mandataires uniquement :
    • De créer et de consulter les demandes d’inscription (« merchant-enrollment »)
    • De consulter l »activité des profils marchands standards ou participants associés
ℹ️ Les comptes ayant des droits "Basic" (marchands participants de mandataires CentralPay) peuvent uniquement consulter les opérations dont ils sont bénéficiaires (transfer) et gérer leurs paramètres de versement (payout).

2. Les profils utilisateurs du Portail

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

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

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

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

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

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

Accès :

Recette Portail Marchand – Gestion des profils utilisateurs BO
Recette Portail Marchand – Gestion des profils utilisateurs BO

2.2. Gestion des rôles et droits des profils utilisateurs « Natural »

Les droits des profils utilisateurs « Natural » sont régis par leur rôle utilisateur. Le rôle comprend une liste de droits (lecture seule, création, modification, suppression) paramétrables par service (transaction, demandes de paiement, règles d’acceptation…). Ces droits peuvent être différents en fonction des services sélectionnés.

Les utilisateurs disposant des droits nécessaires peuvent créer des rôles pour chaque équipe de leur entreprise, cependant des rôles préétablis sont disponibles nativement :

  • Standard Admin : Accès complet à toutes les fonctionnalités du Portail Marchand (excepté les fonctionnalités admin). Attention, ce rôle comprend des accès à des services sensibles comme les règles d’acceptation, les whitelists, les blacklists, les créations d’utilisateurs du Portail Marchand, les créations de rôles utilisateurs du Portail, la création et la gestion d’utilisateurs API…
  • Standard read only : Prochainement
  • Prochainement

Contactez le service client CentralPay si vous avez besoin d’aide pour la création de rôles personnalisés.

Quelques précisions importantes concernant les rôles :

  • Les rôles sont cumulables, un utilisateur peut ainsi se voir assigner plusieurs rôles
  • Les droits des rôles sont héritables, ainsi un utilisateur ayant le droit de créer d’autres profils utilisateurs ne pourra affecter qu’un rôle similaire ou inférieur au sien

Accès :

Recette Portail Marchand – Gestion des rôles utilisateurs BO
Production Portail Marchand – Gestion des rôles utilisateurs BO

2.3. Gestion des catégories de point de vente

Si vous avez le besoin de limiter l’accès d’utilisateurs à certains points de ventes, vous pouvez créer des catégories, les affecter à vos points de ventes puis les affecter à vos profils utilisateurs.

Exemple : Un utilisateur ayant des droits de création de demandes de paiement ne pourra le faire que sur les points de ventes de sa catégorie. Il ne pourra également visualiser que les demandes de paiement émises via les points de vente de sa catégorie.

Contactez le service client CentralPay si vous avez besoin d’aide pour la création de catégories de point de vente personnalisées.

Accès :

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

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

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

Articles

  • Guide : Mes comptes

Guide : Mes comptes

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

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

Accéder au Portail Marchand > Mes comptes

1. Sous-entrées disponibles

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

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

2. Vue d’ensemble

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

2.1. Informations de compte

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

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

2.2. Solde temps réel

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

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

2.3. Évolution sur période

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

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

3. Opérations

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

3.1. Deux notions de date à connaître

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

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

3.2. Rechercher une opération

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

Filtres essentiels

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

Filtres avancés

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

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

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

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

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

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

3.4. Exports comptables personnalisés

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

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

4. Solde

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

Vous y retrouvez généralement :

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

5. Relevés de compte

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

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

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

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

6. Actions fréquentes

6.1. Clôture mensuelle

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

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

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

6.3. Justifier un solde à date

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

Merchant Portal

The Merchant Portal is a web interface connected to CentralPay’s APIs. It allows you to view activity and manage your CentralPay Merchant Profile. Partner and Intermediary merchants can also view the activity of their standard and Participant merchants’ profiles.

Access:

Recette Merchant Portal
Production Merchant Portal

1. Features

The Merchant Portal allows you to:

  • To view the accounting transactions for the account
  • To view card payments (« Card Transactions »)
  • View SEPA bank transfer payments (« sctTransaction »)
  • To view SEPA Direct Debit payments (« sddTransaction »)
  • To create and view payment requests (« paymentRequest »)
  • To create and configure Customer Profiles
  • To create and configure Point of Sale (POS)
  • Configure Smart Push notifications (templates, scenarios, etc.)
  • To set up and manage payout settings
  • To generate exports and download monthly financial reports
  • For Partner Merchants and Intermediary Merchants only:
    • To create and view enrollment requests (« merchant-enrollment »)
    • View the activity of standard Merchant Profiles or associated Participants Merchants
ℹ️ Accounts with "Basic" privileges (Participant Merchants through CentralPay intermediaries) can only view transactions in which they are the Beneficiaries (transfer) and manage their Payout settings (payout).

2. User Profiles on the Portal

They represent individuals who have access to one or more CentralPay accounts as well as to all or some of the Merchant Portal’s services.

2.1. Management of « Legal » and « Natural » User Profiles

When creating a CentralPay Merchant Profile, the person responsible for completing the registration (an executive or an individual with delegated authority) is assigned a User Profile known as “Legal.” This person thus has full administrator rights for the account, as well as legal authority to configure the account’s most sensitive settings:

  • Payment Account Settings:
    • Change to the Outgoing IBAN (Payout)
    • Change in the Terms for Bank Account Payouts
    • Updating Corporate Documents
  • User Settings:
    • Creating New « Legal » Users
    • Coming Soon

Once the account has been created, you can create as many User Profiles as needed by entering their last name, first name, email address, and user role (which defines the permissions they will have on the account). The User Profiles created in this way are named « Natural. »

ℹ️ If you have multiple CentralPay accounts and your teams need access to them, create their User Profiles in one of those accounts, then ask CentralPay to assign those profiles to your other accounts. This will give them a single, centralized point of access for all those accounts. 

Access:

Recette Merchant Portal – BO User Profile Management
Recette Merchant Portal – BO User Profile Management

2.2. Managing Roles and Permissions for « Natural » User Profiles

The permissions for « Natural » user profiles are governed by their user role. The role includes a list of permissions (read-only, create, edit, delete) that can be configured by service (transactions, payment requests, acceptance rules, etc.). These permissions may vary depending on the selected services.

Users with the necessary permissions can create roles for each team in their company; however, predefined roles are available out of the box:

  • Standard Admin: Full access to all Merchant Portal features (except for admin features). Please note that this role includes access to sensitive services such as acceptance rules, whitelists, blacklists, creating Merchant Portal users, creating Merchant Portal user roles, and creating and managing API users…
  • Standard Read-Only: Coming soon
  • Coming Soon

Contact CentralPay customer service if you need help creating custom roles.

Some important details regarding the roles:

  • Roles can be combined; a user can therefore be assigned multiple roles
  • Role permissions are inheritable; therefore, a user with the permission to create other User Profiles can only assign a role that is the same as or lower than their own.

Access:

Recette Merchant Portal – BO User Role Management
Production Merchant Portal – BO User Role Management

2.3. Managing POS Categories

If you need to restrict user access to certain POS locations, you can create categories, assign them to your POS locations, and then assign them to your User Profiles.

Example: A user with permissions to create payment requests can only do so for the POS locations in their category. They can also view only the payment requests issued through the POS locations in their category. 

Contact CentralPay customer service if you need help creating custom POS categories.

Access:

Recette Merchant Portal – Point of Sale (POS) Category Management
Production Merchant Portal – Point of Sale (POS) Category Management

3. List of transaction types visible on the Merchant Portal

Object TypeValueFunction
AUTHORIZATIONFlow RateAuthorization to place a hold on a credit card balance
TRANSACTIONCreditCard Transaction
TRANSACTION_CANCELFlow RateCard Transaction Cancellation
REFUNDCreditCard Transaction Refund
REFUND_CANCELFlow RateCancellation of a Card Transaction Refund
DISPUTEFlow RateUnpaid payment due to a Chargeback on a Card Transaction
DISPUTE_WONCreditCancellation of an Unpaid Credit Card Balance
TRANSFERFlow RateTransferring Funds Between CentralPay Accounts
TRANSFER_CANCELCreditCancellation of Pending Transfer
TRANSFER_REVERSALCreditConfirmed return of a transfer
PAYOUTFlow RateOutgoing bank transfer from the CentralPay account
PAYOUT_CANCELCreditCanceling an Outgoing Bank Transfer
PAYOUT_REVERSALCreditConfirmed Return of an Outgoing Bank Transfer
SCT_TRANSACTIONCreditIncoming Bank transfer
SCT_TRANSACTION_CANCELFlow RateCanceling an Incoming Bank Transfer Before It Arrives
SCT_TRANSACTION_REFUNDFlow RateCancellation of an Incoming Bank Transfer After It Has Been Received by the Merchant
SCT_TRANSACTION_REVERSALFlow RateCanceling an Incoming Bank Transfer After It Has Been Processed by CentralPay
CREDITFlow RateCard credit not associated with a transaction
CREDIT_CANCELCreditCanceling a credit card balance
SDD_TRANSACTIONCreditSEPA Direct Debit from an External Bank Account
SDD_TRANSACTION_CANCELFlow RateCanceling a direct debit from an external account before it is processed
SDD_TRANSACTION_REVERSALFlow RateRefund of a debit from an external account after it has been posted
DEPOSITCreditDepositing Funds into a CentralPay Account

Articles

  • Guide: My Accounts

Guide: My Accounts

The “My Accounts” section of the CentralPay Merchant Portal is where you can manage your accounts (those linked to your Merchant Profile): view account information, track completed and upcoming transactions, review historical balances, and download official monthly statements.

This section is particularly useful for accounting teams, the finance department, and those responsible for account reconciliation and month-end closings.

Go to the Merchant Portal > My Accounts

1. Available subentries

The  » My Accounts  » section consists of 4 sub-entries:

  • Overview
  • Transactions (including the  » Upcoming Transactions » tab)
  • Balance
  • Account Statements
ℹ️ Depending on your profile or settings, access to certain sub-entries may vary. The functional logic remains the same. 

2. Overview

The « Overview » sub-section allows you to quickly identify the selected account and get an immediate snapshot of its financial status.

2.1. Account Information

There you’ll find, among other things, key account information:

  • Account owner
  • IBAN and BIC
  • Currency
  • Account type
  • Account Name (a useful filter if multiple accounts are linked to your Merchant Profile)

2.2. Real-Time Balance

The « Real-Time Balance  » section provides an instant overview of the balance, with a distinction that is useful for day-to-day management:

  • Available Funds (Amount immediately available in your account)
  • Scheduled Transactions (Scheduled Payouts and R-Transactions Scheduled for a Future Date)
ℹ️ Depending on your settings, a "reserve account balance" may also be displayed.

2.3. Changes Over Time

A graph allows you to observe trends over a period of time by combining:

  • the balance
  • Upcoming Operations (Forecast)

3. Operations

The « Transactions » sub-tab displays a list of transactions affecting the account, with a « Upcoming Transactions  » tab for transactions that are expected but have not yet been processed. This is the main view for account reconciliation and generating exports.

3.1. Two Date Concepts You Should Know

To ensure reliable accounting data, the view generally distinguishes between:

  • Value date: the date on which a transaction is considered to have taken effect for financial and accounting purposes (widely used for reconciliation and financial closings).
  • Transaction Date: Date and time of the event (useful for investigating a timeline or cross-referencing a history).
ℹ️ Recommendation: For closing or reconciliation, it’s best to use the “value date.” For an investigation, the “transaction date” is often more meaningful. 

3.2. Search for a transaction

The search engine allows you to quickly find a transaction based on an accounting criterion, a reference, or an identifier.

Essential Filters

FilterWhat is it used for?Key Features / Best Practices
AccountLimit the display to transactions for a specific account.This is essential if you have multiple accounts linked to your profile. Start by selecting the account before applying other filters.
Period (value date)Filter transactions by a reference accounting period.Working basis for filtering and matching. Recommended: Always specify a time period before adding more specific criteria (reference, amount, etc.).
AmountSearch for one or more transactions that match a specific amount.Combine this with  » Account  » and  » Period  » to avoid getting too many results, especially if you have a large number of transactions for the same amount.
ReferenceFind a transaction using your custom business reference (order, invoice, internal ID, etc.).This is very useful if your teams use a shared ID between your system and CentralPay. It can also be used to group multiple lines related to the same event, depending on your settings.
Operation IDSearch for a transaction using its unique CentralPay ID.The most precise filter: Each Operation ID corresponds to a single row. Best used for support or audit investigations when the ID is known.
WordingSearch for a transaction by its descriptive title (keyword search).Useful when you don’t have an identifier (Operation ID, reference). Handy for finding an operation “based on what’s visible” in the list.
TypeIdentify a category of transactions (credit cards, Bank transfers, direct debits, refunds, Chargebacks, etc.).Ideal for analyzing a specific scope (e.g., only incoming bank transfers) or preparing a targeted export before reconciliation.

Advanced Filters

Advanced filters are useful for investigations (support/audit), analysis of payouts, and accounting exports. The table below summarizes their purpose and features.

FilterWhat is it used for?Key Features / Best Practices
NatureIdentify the accounting and functional origin of a transaction in order to quickly distinguish between Expense, Fund, and Management journal entries. Fees: Transactions related to costs and commissions debited or credited to the account, associated with the use of services (e.g., transaction fees, commissions, refunds, or fee adjustments).
Funds: Transactions corresponding to cash flows entering or leaving the account as part of its activity (e.g., customer transactions, Payouts, refunds).
Management: Internal CentralPay transactions carried out to adjust or secure the account balance (e.g., reserve transfers, cash pledges, technical adjustments, or adjusting entries).
Source IDGroup related transactions together (e.g., a Card Authorization, the associated transaction, and its Refund) in order to analyze the entire customer journey. The Source ID is an identifier used to group related transactions.
You can either:
• click “Filter by this Source ID” from a transaction in the results list;
• or enter the Source ID in the search bar to display all transactions associated with that identifier.
Payout NumberView all transactions related to a payout and analyze their breakdown (funds, fees, adjustments, etc.). This filter groups together all transactions associated with a single Payout, making it easier to understand the details and breakdown of that Payout.

How do I get the payout number?
• Search for thePayout transaction, open its details (action button), then click “View Payout transactions ”: the portal automatically applies the filter and displays the relevant transactions.
• Alternatively, you can derive it from the Payout reference: the last digits correspond to the payout number (e.g., PAYOUT-7usge67-153 → payout number = 153).

Please note: Details of a payout are available only when automatic payouts are enabled. The first automatic payout may not display the expected details (due to calculation method calibration).
Third Party
(Third Party / Third-Party Type / Third-Party ID / Third Country)
Filter transactions by the counterparty involved (other than you) to analyze cash flows by party.A third party is any legal entity or individual involved in the transaction other than you (for example, a customer, CentralPay, another Merchant, an external account, etc.).
You can filter by either:
• By a third party: name of the third party (free-form field);
• by third-party ID: the third party’s CentralPay identifier (e.g., CustomerID or MerchantID), for a precise search;
• By third-party type: one of the following four types: Customer, Merchant, CentralPay, External Account;
• By Third-Party Country: the country in which the third party is registered (for example, based on the region where their card was issued if they are a Customer), which can be particularly useful for certain reporting requirements (e.g., VAT filings).

3.3. Debits and Credits Summary

This page provides a summary of debits and credits for the filtered period (volume and amount), with the option to break them down by transaction type (expenses, funds, management). This overview allows you to quickly verify the consistency of a period before exporting the data.

3.4. Custom Accounting Exports

From the Operations view, you can generate exports in CSV, Excel, or JSON formats. The process is simple:

  • Set your search criteria (account, time period, useful filters).
  • Start the search, then click Export.
  • You will receive the file via email and can download it at any time from the Merchant Portal (under  » Export Files« ).
See the documentation: Accounting exports and account statements

4. Balance

The « Balance  » sub-entry provides a historical view of account balances, organized by value date (end-of-day view).

You’ll usually find the following there:

  • Closing Balance (End of Day)
  • Upcoming Transactions (Aggregate of Expected Movements)
  • Projected balance (balance reflecting future transactions)
ℹ️ Use case: to verify a “current” balance (for closing the books, internal control), or to compare an actual balance with a projected balance.

5. Account statements

The « Account Statements  » sub-section provides access to the official monthly statements for your CentralPay account. These documents serve as the primary records for accounting purposes and as official documentation.

At the beginning of each month, in addition to the invoice, an account statement is generated and made available in the secure area: My Accounts > Account Statements.

Two types of statements may be offered:

  • Detailed statement: Shows all transactions for the period.
  • Summary Statement: Groups transactions by day and by transaction type.
⚠️ If you have a large number of transactions, not all of them may appear on the detailed statement. In this case, we recommend exporting the data in CSV, Excel, or JSON format. 
See the documentation: Accounting exports and account statements

6. Common Actions

6.1. Monthly Closing

  1. Go to  » Transactions, » and filter by  » Account  » and  » Period » (value date).
  2. Review the summary of debits and credits and the breakdown by category (expenses, funds, and administration).
  3. Generate an accounting export (with columns tailored to your reconciliation process).
  4. Or download the monthly statement directly from  » Account Statements  » for your records and as an official document (1 statement per account).

6.2. Reconciliation of transactions related to a payout

  1. Go to  » My Accounts » >  » « Transactions, » and, if necessary, select the relevant account first.
  2. Locate the payout transaction (PAYOUT), open its details (action button), then click “View payout transactions ”: the Portal automatically applies the “Payout Number ” filter and displays only the transactions associated with that payout.
  3. Analyze the breakdown of the payout using the « Type » filter to distinguish between the  » Funds, »  » Fees, » and « Management  » (adjustments) lines, then verify that the total amount is correct.
  4. If necessary, generate an export (CSV / Excel / JSON) to archive the payout details or perform Integration with your reconciliation.
ℹ️ Alternative: The payout number can also be derived from the payout reference (e.g., PAYOUT-7usge67-153 → payout number = 153).
⚠️ Transaction details for a payout are available only when automatic payouts are enabled. The first automatic payout may not display the expected details (due to calculation method calibration). 

6.3. Justify a balance as of a specific date

  1. Go to  » Balance  » to find the closing balance as of the desired date.
  2. If necessary, supplement this with the monthly statement in « Account Statements. »

Marchand standard

Le modèle Marchand standard s’adresse aux entreprises (personnes morales) qui souhaitent utiliser la plateforme CentralPay pour encaisser des paiements pour leur propre compte dans le cadre d’une activité de vente de biens ou de services.

1. Description du modèle

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

🔗 Plus d’informations sur Smart Collection

Les fonctionnalités incluses sont les suivantes :

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

2. Frais et commissions

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

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

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

Standard Merchant

The standard Merchant plan is intended for businesses (legal entities) that wish to use the CentralPay platform to collect payments on their own account as part of their business selling goods or services.

1. Model Description

This plan gives you access to all of Smart Collection’s services—the comprehensive payment processing solution offered by CentralPay.

🔗 More information about Smart Collection

The included features are as follows:

  • The CentralPay Merchant Profile
    A standard Merchant Profile that includes one or more Payment Accounts dedicated to your business, with individual IBANs, transaction tracking, and payout tracking.
  • Account-related services
    Management tools, user profiles, API access, notifications, reporting…
  • The Smart payment service
    Centralization of your flows, automated routing, management of statuses and payments.
  • Card Transaction
    : Accepts Visa and Mastercard, 3D Secure, Apple Pay and Google Pay, and handles refunds and chargebacks.
  • Transactions by bank transfer
    Generation of virtual IBANs, receipt notifications, automatic reconciliations.
  • SEPA Direct Debit Transactions
    One-time or recurring debits, mandate management, and tracking of rejections.

2. Fees and Commissions

Fixed and variable fees are charged based on the types of transactions performed (transactions, payouts, Rejections, etc.). You can view our published fee schedule on our website.

  • Fees are charged:
    • Either directly from your primary Payment Account
    • Or from a dedicated Commission Account, if it is enabled

If there are insufficient funds, CentralPay may process a SEPA Direct Debit from your Bank Account or send you a request for an additional Bank transfer.

Transaction par virement

Articles

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

Informations générales

1. Fonctionnement

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

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

Quelques informations importantes :

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

2. Types de réseaux acceptés

Il existe deux types de virements bancaires :

  • Les virements SEPA (ou SEPA Credit Transfer) : Utilisés pour les opérations en EUROS réalisées entre deux pays membres de la zone SEPA (= 27 pays de l’Union européenne + Royaume-Uni, Monaco, Andorre, Vatican, Suisse, Liechtenstein, Norvège, Islande et Saint-Marin)
  • Les virements internationaux : Utilisés pour les opérations internationales en EUROS ou en devises, via le réseau SWIFT

Les frais applicables aux réseaux SEPA sont très largement favorables (à peine quelques dizaines de centimes contre plusieurs dizaines d’euros pour SWIFT). SWIFT permet cependant plusieurs options liées au règlement de ses frais : à la charge de l’émetteur, du bénéficiaire ou partagés.

CentralPay est atteignable par toutes les banques de l’Espace Économique Européen utilisant les réseaux SEPA (via STEP2 pour les SCT/SDD, ainsi que TIPS et RT1 pour les « Instant SCT »). Seuls les virements de réseaux internationaux ou en devises hors EUROS ne sont pas recevables pour le moment (via réseau SWIFT par exemple).

IBAN Virtuels

Le paiement par virement bancaire impose une responsabilité au client émetteur : celle de renseigner les coordonnées bancaires (IBAN + BIC + Nom du titulaire), le montant du règlement mais aussi la référence de virement.

Une absence ou un mauvais formatage de la référence (causé par le client ou par le système de sa banque) contraint le bénéficiaire d’analyser manuellement le virement reçu pour le rapprocher à la bonne facture et au bon poste client.

CentralPay vous permet de présenter un IBAN virtuel différent à chacun de vos clients (Customer) ou dans chacune de vos factures (PaymentRequest). Ainsi lors de la réception d’un virement, CentralPay identifie automatiquement l’émetteur et peut rapprocher la facture pour vous, selon l’IBAN virtuel utilisé par votre client, même en cas d’erreur de référence.

Un IBAN Virtuel est en tous points identique à un IBAN classique, ce qui rend le processus entièrement transparent pour vos clients.

Ce service vous permettra notamment :

  • D’être informé instantanément quand un client vous a réglé par virement
  • D’automatiser vos alertes internes et vos relances clients (via le service de notifications)
  • D’automatiser le rapprochement de vos paiements dans vos solutions comptables ou de facturations (ERP…)
  • Pour les plateformes et marketplaces : d’identifier facilement le marchand bénéficiaire et de lui transférer les fonds

Vous pourrez créer des IBAN Virtuels CentralPay depuis différents services de la plateforme :

  • Depuis le service Customer
  • Depuis le service SCT Transaction
  • Depuis le service PaymentRequest
ℹ️ Chaque compte de paiement ou de monnaie électronique dispose nativement d'un IBAN Virtuel dédié

1. Consulter l’IBAN Virtuel de ses comptes

Vous pouvez retrouver l’IBAN Virtuel de vos comptes depuis le Portail Marchand Administration Comptes IBAN/BIC :

Il est également possible d’interroger l’API CentralPay avec le endpoint /bankAccount

Accès :

Recette Portail Marchand – Comptes
Production Portail Marchand – Comptes

2. Créer un IBAN Virtuel dédié à un Customer

Vous pouvez créer un IBAN Virtuel dédié à un client lors de la création d’un nouveau Customer, ou via l’update d’un Customer existant.

Pour cela, vous devez renseigner le champ « walletIdForIban » avec l’UUID du compte de paiement sur lequel vous souhaitez recevoir les fonds.

Vous pouvez retrouver ce dernier depuis le Portail Marchand Administration Comptes UUID :

Accès :

Recette Portail Marchand – Comptes
Production Portail Marchand – Comptes

En retour, vous recevrez dans le champ bankAccounts les valeurs « iban » et « bic » constituant l’IBAN Virtuel de votre Customer.

ℹ️ Le BIC des IBAN émis par CentralPay est CEAYFR22

3. Création d’un IBAN Virtuel dédié à une SCT Transaction

Comme pour un Customer, vous pouvez créer un IBAN Virtuel dédié à une transaction par virement lors de la création d’une SCT Transaction.

ℹ️ Pour rappel, une SCT Transaction est créée automatiquement par CentralPay lorsque vous recevez un virement sur votre IBAN Virtuel principal ou celui d'un Customer. Il est cependant possible de créer une SCT Transaction en amont afin de lui affecter un IBAN Virtuel dédié et une référence personnalisée par exemple.

Pour cela, vous devez renseigner le champ « ibanWalletId » avec l’UUID du compte de paiement sur lequel vous souhaitez recevoir les fonds.

Vous pouvez retrouver ce dernier depuis le Portail Marchand Administration Comptes UUID :

Accès :

Recette Portail Marchand – Comptes
Production Portail Marchand – Comptes

En retour, vous recevrez dans le champ bankAccounts les valeurs « iban » et « bic » constituant l’IBAN Virtuel de votre SCT Transaction.

ℹ️ Un IBAN Virtuel dédié à une SCT Transaction n'est plus fonctionnel une fois que sa SCT Transaction a été entièrement réglée. Il est cependant possible de recevoir plusieurs virements d'un montant inférieur sur un même IBAN pour compléter le montant de la SCT Transaction.

À noter que si un virement reçu dépasse le montant de la SCT Transaction, il sera tout de même accepté. Vous devrez réaliser un remboursement partiel pour reverser le trop perçu à votre client.

4. Utilisation des IBAN Virtuels depuis les demandes de paiement

Il est possible d’utiliser des IBAN Virtuels Customer ou SCT Transaction depuis le service de demande de paiement, si vous acceptez le moyen de paiement « SCT Transaction ».

Vous pouvez sélectionner le type d’IBAN Virtuel que vous souhaitez afficher dans vos demandes de paiement depuis le champ « Viban prioritaire » des paramétrages de votre point de vente. Si vous sélectionnez :

  • SCT : La demande de paiement créera systématiquement un IBAN Virtuel dédié à la SCT Transaction
  • Client : La demande de paiement utilisera l’IBAN Virtuel du Customer s’il en dispose déjà d’un, sinon elle en créera un automatiquement
ℹ️ Dans le cas d'une demande de paiement avec vIBAN à la SCT Transaction uniquement : Si vous annulez la demande de paiement, le vIBAN associé ne sera plus atteignable. Ainsi, chaque virement reçu sur ce vIBAN sera automatiquement renvoyé à son émetteur.

Transaction par virement

1. Fonctionnement

Une SCT Transaction représente un virement bancaire reçu sur un de vos IBAN Virtuel CentralPay.

Elle peut être créée de trois manières différentes :

  • Automatiquement
    Si vous adressez un IBAN Virtuel dédié à l’un de vos clients ou l’un de vos comptes de paiement, CentralPay créera la SCT Transaction automatiquement lors de la réception du virement. Vous pourrez ensuite rapprocher cette SCT Transaction à votre commande/facture en récupérant la valeur du champ « description » (correspondant à la référence renseignée par votre client dans son espace bancaire)
  • Depuis le service SCT Transaction
    Si vous souhaitez automatiser le rapprochement du virement à la transaction, vous pouvez :
    • Créer une SCT Transaction avec un IBAN Virtuel dédié : ce qui permettra un rapprochement sûr à 100% à votre transaction. Attention, dans ce cas vos clients devront déclarer un nouveau bénéficiaire dans leur espace bancaire à chaque virement qu’ils vous adresseront
    • Créer une SCT Transaction en utilisant un IBAN Virtuel Customer et récupérer la référence courte générée par CentralPay pour cette transaction : ce qui permettra de rapprocher systématiquement le virement au profil client correspondant, et potentiellement jusqu’à la transaction si votre client a bien renseigné la référence dans son virement
  • Depuis le service de demande de paiement
    Si vous souhaitez déléguer à CentralPay l’affichage des informations de règlement à vos clients (montant, IBAN, BIC, référence…), vous pouvez créer une Demande de paiement autorisant les paiements par SCT Transaction. Cette option permet également de gérer facilement les virements multiples ou les règlements clients depuis plusieurs moyens de paiement

2. Créer une SCT transaction

Créer une SCT Transaction :

  • Renseignez un montant en centimes (amount), et une devise (currency)
  • Si vous souhaitez créer un IBAN Virtuel dédié à la SCT Transaction, renseignez le champ « ibanWalletId » avec l’UUID de votre compte de paiement sur lequel vous souhaitez recevoir les fonds. Vous pouvez retrouver ce dernier depuis le  Portail Marchand Administration Comptes UUID
  • Si vous souhaitez utiliser un IBAN Virtuel existant (dédié à un Customer ou à un compte de paiement), renseignez le champ « iban » avec l’IBAN souhaité
    • Vous pourrez ensuite récupérer la valeur « sepaReference » générée par CentralPay et la transmettre à votre client pour laisser CentralPay rapprocher le virement à votre transaction
    • Ou renseigner la valeur « merchantSctTransactionId » avec votre propre référence personnalisée pour rapprocher vous-même le virement via nos exports d’opérations

Pay by Bank - Initiation de paiement (PIS)

1. Fonctionnement

Le service d’initiation de paiement (PIS – Payment Initiation Service) permet à vos clients de réaliser un virement bancaire directement depuis leur environnement bancaire, sans avoir à saisir manuellement les coordonnées du bénéficiaire. Cette fonctionnalité repose sur le protocole Open Banking, en conformité avec la DSP2.

Chez CentralPay, ce service est proposé sous l’intitulé Pay by Bank et est actuellement accessible uniquement via le formulaire de paiement hébergé (SmartForm), dans le cadre de l’utilisation du service PaymentRequest.

ℹ️ Le service est uniquement disponible via le Smart Form (PaymentRequest). Il n’est pas encore possible d’utiliser ce mode de paiement en tant que moyen unique, il est toujours présenté en complément du service de paiement par virement traditionnel. L’expérience de paiement dépend des interfaces de la banque du client payeur.

2. Activation du service

L’initiation de paiement n’est pas activée par défaut. Pour en bénéficier, il est nécessaire d’en faire la demande auprès des équipes support de CentralPay.

3. Utilisation via PaymentRequest

Pour permettre à vos clients d’initier un virement directement depuis le formulaire de paiement, vous devez :

  1. Créer une PaymentRequest selon les modalités habituelles.
  2. Inclure le moyen de paiement suivant dans la propriété payment_methods :
    • PIS Standard « payment_methods » : [« SCT_TRANSACTION_PIS »]
    • PIS IP « payment_methods » : [« SCT_TRANSACTION_PIS_IP »]

Lorsque ce moyen de paiement est présent, le Smart Form proposera à l’utilisateur un choix entre :

  • Le virement bancaire classique (affichage des coordonnées bancaires à recopier)
  • L’initiation de paiement via son environnement bancaire (Pay by Bank)
ℹ️ Il n’est pas possible à ce stade de forcer l’utilisation exclusive de l’initiation de paiement. Le formulaire affichera toujours l’alternative avec les coordonnées bancaires classiques.

4. Parcours utilisateur

  1. L’utilisateur sélectionne « Pay by Bank » dans le formulaire
  2. Il choisit sa banque dans la liste proposée
  3. Il est redirigé vers l’environnement de sa banque pour valider l’opération de virement
  4. Une fois le paiement initié, il est redirigé vers votre page de retour

5. Suivi et statuts

Une fois la PaymentRequest créée, le statut du virement est disponible via l’API comme pour tout autre paiement :

  • Le champ payment_method sera valorisé à SCT_TRANSACTION
  • Le champ status indiquera la progression de l’initiation de paiement (par exemple PENDING, SUCCEEDED, FAILED)
ℹ️ Comme pour les virements classiques, la finalisation du paiement dépend de l’exécution effective du virement par la banque du client. Le client peut choisir entre réaliser un virement standard (à J+1) ou un virement immédiat.

6. Liste des banques disponibles par pays

ℹ️ En environnement de recette, une banque nommée "Connecteur de test" est affichée pour vous permettre de tester le parcours de bout en bout. Attention : le montant maximum autorisé sur ce connecteur de test est de 20 €.

Banques françaises :

InstitutionStandardInstantané
Allianz Banque✅ Disponible🚫 Non disponible
Arkéa Banking Services✅ Disponible🚫 Non disponible
Arkéa Banque Entreprises et Institutionnels✅ Disponible✅ Disponible
Arkéa Banque Privée✅ Disponible✅ Disponible
AXA Banque✅ Disponible✅ Disponible
Banque BCP✅ Disponible✅ Disponible
Banque Chalus✅ Disponible✅ Disponible
Banque de Savoie✅ Disponible✅ Disponible
Banque des Territoires✅ Disponible🚫 Non disponible
Banque Européenne Crédit Mutuel✅ Disponible✅ Disponible
Banque Populaire✅ Disponible✅ Disponible
Banque Transatlantique✅ Disponible✅ Disponible
BBVA (Non activé)🚫 Non disponible🚫 Non disponible
BforBank✅ Disponible🚫 Non disponible
BNP Paribas✅ Disponible✅ Disponible
BNP Paribas Entreprises✅ Disponible🚫 Non disponible
BNP Paribas Nouvelle-Calédonie (Non activé)🚫 Non disponible🚫 Non disponible
BoursoBank✅ Disponible✅ Disponible
BRED✅ Disponible✅ Disponible
BTP Banque✅ Disponible✅ Disponible
Caisse d’Épargne Particuliers✅ Disponible✅ Disponible
Caisse d’Épargne Professionnels✅ Disponible✅ Disponible
CCMDirect (Non activé)🚫 Non disponible🚫 Non disponible
CIC✅ Disponible✅ Disponible
CIC Banque Privée✅ Disponible✅ Disponible
Crédit Agricole✅ Disponible✅ Disponible
Crédit Coopératif✅ Disponible✅ Disponible
Crédit Maritime✅ Disponible✅ Disponible
Crédit Mutuel✅ Disponible✅ Disponible
Crédit Mutuel de Bretagne✅ Disponible✅ Disponible
Crédit Mutuel du Sud Ouest✅ Disponible✅ Disponible
Fortuneo✅ Disponible✅ Disponible
Hello bank!✅ Disponible✅ Disponible
ING Wholesale Banking✅ Disponible🚫 Non disponible
La Banque Postale✅ Disponible✅ Disponible
LCL✅ Disponible✅ Disponible
Louvre Banque Privée✅ Disponible✅ Disponible
Manager.one✅ Disponible🚫 Non disponible
Memo Bank✅ Disponible✅ Disponible
Monabanq✅ Disponible✅ Disponible
N26✅ Disponible✅ Disponible
Nef Pro✅ Disponible🚫 Non disponible
Neuflize OBC (Non activé)🚫 Non disponible🚫 Non disponible
Palatine✅ Disponible✅ Disponible
Qonto✅ Disponible🚫 Non disponible
Revolut✅ Disponible🚫 Non disponible
Société Générale✅ Disponible✅ Disponible

Rapprochement à une demande de paiement

CentralPay met à disposition un service nommé bankReconciliation permettant de lier une ou plusieurs SCT Transaction à une demande de paiement (PaymentRequest) si vous n’utilisez pas les IBAN Virtuel dédié aux SCT Transaction.

1. En cas d’erreur de référence par votre client

Lorsque vous utilisez les demandes de paiement avec IBAN Virtuels dédiés à un Customer et que votre client ne renseigne pas correctement la « sepaReference » lors de l’émission de son virement ; CentralPay n’est pas en mesure de rapprocher automatiquement le virement à la demande de paiement.

Vous pouvez donc utiliser le service bankReconciliation pour affecter la SCT Transaction reçue à la demande de paiement créée initialement :

  • amount = montant du virement en centimes
  • wireTransferID = ID de la SCT TRANSACTION (accessible dans le hook de la SCT TRANSACTION)
  • paymentRequestBreakdownId = ID du breakdown de la PaymentRequest (accessible dans le hook de la PaymentRequest)

2. Si vous utilisez votre propre référence de commande

Si vous souhaitez organiser vos créances clients dans CentralPay grâce au service de Demandes de paiement sans utiliser la page de paiement Smart Form, voici la démarche à suivre :

  • Pour chaque client : Créer un Customer avec vIBAN, récupérer le vIBAN et l’afficher dans votre tunnel de vente avec votre référence de commande
  • Créer en parallèle une paymentRequest contenant cette même référence de commande (dans le champ « merchantPaymentRequestId ») et le montant de commande
  • Dès réception d’un virement client, vous identifiez la commande liée grâce au champ « description » de la SCT Transaction
  • Vous recherchez ensuite une PaymentRequest avec la même référence dans « merchantPaymentRequestId »
    • Si une PaymentRequest présente la même référence, vous l’associez avec le service « bankReconciliation »
    • Si aucune PaymentRequest ne présente la même référence mais que le virement a été reçu sur un vIBAN Customer n’ayant qu’une seule PaymentRequest en attente ou d’un montant identique, vous pouvez faire en sorte de les rapprocher avec une bankReconciliation
    • Si aucune PaymentRequest ne présente la même référence et que le Customer présente plusieurs PaymentRequest en attente de règlement ou d’un montant différent, levez une alerte dans votre système pour faire rapprocher le virement manuellement par votre service financier (qui l’associera manuellement à la bonne PaymentRequest via une bankReconciliation)
  • Les virements non liés à une PaymentRequest seront ainsi facilement identifiables
  • De même que les PaymentRequest non payées ou partiellement payées

R-transaction SCT

Vous pouvez rembourser une SCT Transaction si celle-ci est RECEIVED via le service Refund ou depuis le détail de la SCT Transaction dans le Portail Marchand. Vous pouvez initier un remboursement total ou partiel en renseignant un montant.

Votre client recevra les fonds sur son compte bancaire sous 24 à 48 heures ouvrés après l’opération. Votre compte de paiement est lui débité immédiatement, il doit donc être solvable pour pouvoir réaliser l’opération.

Vous ne pouvez pas annuler un remboursement une fois celui-ci réalisé.

Virements internationaux

Les virements bancaires internationaux sont gérés via le réseau SWIFT (contrairement au réseau SEPA pour les virements européens). Ces virements peuvent être émis depuis un très grand nombre de pays en EUROS ou dans d’autres devises.

Il sera prochainement possible d’accepter des virements internationaux via le service SCT Transaction. Veuillez contacter CentralPay si ce service est un enjeu pour le développement de votre activité.

Retours, statuts et webhooks

1. Retours liés aux SCT Transactions

Il n’existe pas de code retours pour les SCT Transactions.

2. Statuts liés aux SCT Transactions

Consultez les Statuts Transaction ➝

Consultez les Statuts Refunds ➝

3. Webhooks liés aux SCT Transactions

Consultez les Webhooks SCT Transaction ➝

Consultez les Webhooks Refunds ➝

Consultez les Webhooks Customer ➝

Bank Transfer Transaction

Articles

  • General information
  • Virtual IBANs
  • Bank Transfer TransactionsctTransaction
  • Pay by Bank - Payment Initiation (PIS)
  • Reconciliation of a payment requestbankReconciliation
  • SCT R-transactionrefund
  • International wire transfers
  • Responses, statuses, and webhooks

General information

1. Operation

Bank transfers are the most common method of payment for business transactions. They involve the direct transfer of funds from one account (bank or payment account) to another, without using any additional medium, such as a card.

The individual or legal entity requesting the transfer is called the payer (or sender), and the one receiving the money is the payee. Unlike a card payment or a SEPA direct debit, only the sender themselves can initiate a wire transfer. To do so, they log in to their bank’s online banking portal, enter the beneficiary’s bank details (IBAN + BIC + account holder’s name), and then specify an amount and a transfer reference.

Some important information:

  • The processing time for a standard transfer with CentralPay is 4 to 24 business hours (compared to 24 to 48 business hours at most traditional banks). Starting in October 2024, it will also be possible to receive instant transfers (processed in <5 seconds).
  • The transfer does not pose a significant financial risk to the receiving merchant, since the sender undergoes strong authentication with their bank and therefore cannot dispute the transaction
  • Issuing banks set a settlement limit for wire transfers that is significantly higher than the limit applied to SEPA direct debit transactions or card payments
  • Depending on the features offered by their bank, the sender can set up a recurring transfer or a deferred transfer

2. Accepted Network Types

There are two types of bank transfers:

  • SEPA transfers (or SEPA Credit Transfers): Used for transactions in euros between two member countries of the SEPA area (= 27 European Union countries + the United Kingdom, Monaco, Andorra, the Vatican, Switzerland, Liechtenstein, Norway, Iceland, and San Marino)
  • International wire transfers: Used for international transactions in euros or other currencies via the SWIFT network

The fees for SEPA networks are very favorable (just a few tenths of a cent, compared to several tens of euros for SWIFT). SWIFT, however, offers several options for paying these fees: they can be borne by the sender, the recipient, or shared between the two.

CentralPay is accessible to all banks in the European Economic Area that use the SEPA networks (via STEP2 for SCT/SDD, as well as TIPS and RT1 for “Instant SCT”). Only transfers made through international networks or in currencies other than the euro are not currently accepted (via the SWIFT network, for example).

Virtual IBANs

Payment by bank transfer requires the customer making the payment to provide the bank details (IBAN + BIC + account holder’s name), the payment amount, and the transfer reference.

If the reference number is missing or formatted incorrectly (whether due to the customer or the customer’s bank’s system), the payee must manually review the received transfer to match it to the correct invoice and customer account.

CentralPay allows you to provide a different virtual IBAN to each of your customers (Customer) or on each of your invoices (PaymentRequest). Thus, when a transfer is received, CentralPay automatically identifies the sender and can reconcile the invoice for you based on the virtual IBAN used by your customer, even if there is an error in the reference number.

A virtual IBAN is identical in every way to a standard IBAN, which makes the process completely transparent for your customers.

With this service, you will be able to:

  • To be notified instantly when a customer has paid you via bank transfer
  • Automate your internal alerts and customer follow-ups (via the notification service)
  • To automate the reconciliation of your payments in your accounting or billing solutions (ERP, etc.)
  • For platforms and marketplaces: to easily identify the merchant receiving the payment and transfer the funds to them

You can create CentralPay Virtual IBANs from various services on the platform:

  • From the Customer service department
  • From the SCT Transaction department
  • From the PaymentRequest department
ℹ️ Each payment or e-money account comes with its own dedicated virtual IBAN by default

1. Check the virtual IBAN for your accounts

You can find the virtual IBAN for your accounts in the Merchant Portal Administration Accounts IBAN/BIC:

It is also possible to query the CentralPay API using the /bankAccount endpoint

Access:

Recette Merchant Portal – Accounts
Production Merchant Portal – Accounts

2. Create a Virtual IBAN for a specific customer

You can create a virtual IBAN for a specific customer when creating a new Customer or when updating an existing customer.

To do this, you must enter the UUID of the payment account into the “walletIdForIban” field—the account into which you want to receive the funds.

You can find it under Merchant Portal Administration Accounts UUID:

Access:

Recette Merchant Portal – Accounts
Production Merchant Portal – Accounts

In return, you will receive the “iban” and “bic” values in field bankAccounts, which make up your Customer‘s virtual IBAN.

ℹ️ The BIC for IBANs issued by CentralPay is CEAYFR22

3. Creation of a Virtual IBAN Dedicated to an SCT Transaction

Just as with a customer, you can create a virtual IBAN specific to a bank transfer transaction when creating an SCT transaction.

ℹ️ As a reminder, CentralPay automatically creates an SCT transaction when you receive a transfer to your primary virtual IBAN or a customer’s virtual IBAN. However, you can create an SCT transaction in advance to assign it a dedicated virtual IBAN and a custom reference, for example. 

To do this, you must enter the UUID of the payment account into the “ibanWalletId” field, the account into which you want to receive the funds.

You can find it under Merchant Portal Administration Accounts UUID:

Access:

Recette Merchant Portal – Accounts
Production Merchant Portal – Accounts

In return, you will receive the “iban” and “bic” values in field bankAccounts, which make up the Virtual IBAN for your SCT Transaction.

ℹ️ A virtual IBAN assigned to an SCT transaction is no longer valid once the SCT transaction has been paid in full. However, it is possible to receive multiple smaller transfers to the same IBAN to make up the full amount of the SCT transaction. 

Please note that if a received transfer exceeds the amount of the SCT Transaction, it will still be accepted. You will need to issue a partial refund to return the overpayment to your customer.

4. Using Virtual IBANs in Payment Requests

You can use Customer Virtual IBANs or SCT Transactions through the payment request service if you accept the “SCT Transaction” payment method.

You can select the type of Virtual IBAN you want to display in your payment requests from the “Priority Viban” field in your point-of-sale settings. If you select:

  • SCT: The payment request will automatically generate a virtual IBAN specific to the SCT transaction
  • Client: The payment request will use the customer’s virtual IBAN if they already have one; otherwise, it will automatically generate one.
ℹ️ For payment requests using a vIBAN submitted exclusively via SCT Transaction: If you cancel the payment request, the associated vIBAN will no longer be accessible. As a result, any transfer received at that vIBAN will be automatically returned to the sender. 

Bank Transfer Transaction

1. Operation

An SCT Transaction is a bank transfer received at one of your CentralPay Virtual IBANs.

It can be created in three different ways:

  • Automatically
    If you provide a dedicated Virtual IBAN for one of your customers or one of your payment accounts, CentralPay will automatically create the SCT Transaction upon receipt of the transfer. You can then reconcile this SCT Transaction with your order/invoice by retrieving the value from the “description” field (which corresponds to the reference your customer entered in their online banking portal).
  • From the SCT Transaction service
    If you want to automate the reconciliation of the wire transfer with the transaction, you can:
    • Create an SCT transaction with a dedicated virtual IBAN: this will ensure 100% accurate reconciliation of your transaction. Please note that in this case, your customers will need to add a new payee in their online banking portal for each transfer they send to you.
    • Create an SCT transaction using a Virtual Customer IBAN and retrieve the short reference generated by CentralPay for this transaction: this will allow you to automatically reconcile the transfer with the corresponding customer profile, and potentially track it down to the specific transaction if your customer has correctly entered the reference in their transfer
  • From the Payment Request Service
    If you would like to have CentralPay display payment information to your customers (amount, IBAN, BIC, reference, etc.), you can create a Payment Request that authorizes payments via SCT Transaction. This option also makes it easy to manage multiple transfers or customer payments made through various payment methods

2. Create a transaction SCT

Create an SCT Transaction:

  • Enter an amount in cents (amount) and a currency (currency)
  • If you want to create a Virtual IBAN specifically for the SCT Transaction, enter the UUID of the payment account where you want to receive the funds in the “ibanWalletId” field. You can find this UUID in the Merchant Portal Administration Accounts UUID
  • If you want to use an existing Virtual IBAN (assigned to a customer or a payment account), enter the desired IBAN in the “iban” field
    • You can then retrieve the “sepaReference” value generated by CentralPay and provide it to your customer so that CentralPay can match the transfer to your transaction
    • Or enter your own custom reference in the “merchantSctTransactionId” field to reconcile the transfer yourself using our transaction exports

Pay by Bank - Payment Initiation (PIS)

1. Operation

The Payment Initiation Service (PIS) allows your customers to make a bank transfer directly from their online banking environment, without having to manually enter the recipient’s details. This feature is based on the Open Banking protocol and complies with PSD2.

At CentralPay, this service is offered under the name “Pay by Bank” and is currently available only through the hosted payment form (SmartForm) when using the PaymentRequest service.

ℹ️ This service is available only through the Smart Form (PaymentRequest). It is not yet possible to use this payment method as the sole option; it is always offered in addition to the traditional bank transfer payment service. The payment experience depends on the interfaces provided by the paying customer’s bank.  

2. Service activation

Payment initiation is not enabled by default. To use this feature, you must submit a request to the CentralPay support team.

3. Use via PaymentRequest

To allow your customers to initiate a transfer directly from the payment form, you must:

  1. Create a PaymentRequest following the usual procedure.
  2. Include the following payment method in the `payment_methods` property:
    • PIS Standard `“payment_methods”`: [“SCT_TRANSACTION_PIS”]
    • PIS IP `“payment_methods”`: [“SCT_TRANSACTION_PIS_IP”]

When this payment method is available, the Smart Form will offer the user a choice between:

  • Standard bank transfer (bank account information displayed for you to copy)
  • Initiating a payment through one’s banking system (Pay by Bank)
ℹ️ At this stage, it is not possible to require the exclusive use of the payment initiation feature. The form will always display the option to enter standard bank account information. 

4. User journey

  1. The user selects “Pay by Bank” on the form. The user selects “Pay by Bank” on the form.
  2. He selects his bank from the list provided
  3. He is redirected to his bank’s website to confirm the transfer
  4. Once the payment is initiated, the user is redirected to your return page

5. Monitoring and status reports

Once the PaymentRequest has been created, the status of the transfer is available via the API, just as with any other payment:

  • The payment_method field will be set to SCT_TRANSACTION
  • The “status” field will indicate the progress of the payment initiation (for example, PENDING, SUCCEEDED, FAILED)
ℹ️ As with traditional transfers, the completion of the payment depends on the customer’s bank actually processing the transfer. The customer can choose between a standard transfer (D+1) and an immediate transfer. 

6. List of available banks by country

ℹ️ In the staging environment, a bank named “Test Connector” is displayed to allow you to test the end-to-end flow. Please note: The maximum amount allowed on this test connector is €20. 

French banks:

InstitutionStandardSnapshot
Allianz Bank✅ Available🚫 Not available
Arkéa Banking Services✅ Available🚫 Not available
Arkéa Bank for Businesses and Institutions✅ Available✅ Available
Arkéa Private Bank✅ Available✅ Available
AXA Bank✅ Available✅ Available
BCP Bank✅ Available✅ Available
Chalus Bank✅ Available✅ Available
Bank of Savoy✅ Available✅ Available
Bank of Territoires✅ Available🚫 Not available
Crédit Mutuel European Bank✅ Available✅ Available
Banque Populaire✅ Available✅ Available
Transatlantic Bank✅ Available✅ Available
BBVA (Not activated)🚫 Not available🚫 Not available
BforBank✅ Available🚫 Not available
BNP Paribas✅ Available✅ Available
BNP Paribas Business✅ Available🚫 Not available
BNP Paribas New Caledonia (Not activated)🚫 Not available🚫 Not available
BoursoBank✅ Available✅ Available
BRED✅ Available✅ Available
BTP Bank✅ Available✅ Available
Caisse d’Épargne – Personal Banking✅ Available✅ Available
Caisse d’Épargne for Professionals✅ Available✅ Available
CCMDirect (Not activated)🚫 Not available🚫 Not available
CIC✅ Available✅ Available
CIC Private Bank✅ Available✅ Available
Crédit Agricole✅ Available✅ Available
Crédit Coopératif✅ Available✅ Available
Crédit Maritime✅ Available✅ Available
Crédit Mutuel✅ Available✅ Available
Crédit Mutuel of Bretagne✅ Available✅ Available
Crédit Mutuel of Southwest✅ Available✅ Available
Fortuneo✅ Available✅ Available
Hello bank!✅ Available✅ Available
ING Wholesale Banking✅ Available🚫 Not available
La Banque Postale✅ Available✅ Available
LCL✅ Available✅ Available
Louvre Private Bank✅ Available✅ Available
Manager.one✅ Available🚫 Not available
Memo Bank✅ Available✅ Available
Monabanq✅ Available✅ Available
N26✅ Available✅ Available
Nef Pro✅ Available🚫 Not available
Neuflize OBC (Non activé)🚫 Not available🚫 Not available
Palatine✅ Available✅ Available
Qonto✅ Available🚫 Not available
Revolut✅ Available🚫 Not available
Société Générale✅ Available✅ Available

Reconciliation of a payment request

CentralPay offers a service called bankReconciliation that allows you to link one or more SCT transactions to a payment request (PaymentRequest) if you are not using the virtual IBANs designated for SCT transactions.

1. In the event of a reference error on the part of your client

When you use payment requests with virtual IBANs assigned to a specific customer, and your customer does not enter the “sepaReference” correctly when making the transfer, CentralPay is unable to automatically match the transfer to the payment request.

You can therefore use the bankReconciliation service to map the received SCT Transaction to the payment request that was originally created:

  • amount = transfer amount in centimes
  • wireTransferID = SCT TRANSACTION ID (available in the SCT TRANSACTION hook)
  • paymentRequestBreakdownId = PaymentRequest breakdown ID (available in the PaymentRequest hook)

2. If you are using your own order reference

If you want to manage your accounts receivable in CentralPay using the Payment Requests service without using the Smart Form payment page, follow these steps:

  • For each customer: Create a Customer record with a vIBAN, retrieve the vIBAN, and display it in your sales funnel along with your order reference
  • At the same time, create a paymentRequest containing the same order ID (in the “merchantPaymentRequestId” field) and the order amount
  • As soon as you receive a customer transfer, you can identify the associated order using the “description” field in the SCT Transaction.
  • Vous recherchez ensuite une PaymentRequest avec la même référence dans « merchantPaymentRequestId »
    • If a PaymentRequest has the same reference, you associate it with the “bankReconciliation” service
    • If no PaymentRequest has the same reference number, but the transfer was received to a vIBAN Customer that has only one pending PaymentRequest or one with an identical amount, you can reconcile them using a bankReconciliation.
    • If no PaymentRequest has the same reference number and the Customer has multiple PaymentRequests pending settlement or for different amounts, trigger an alert in your system so that your finance department can manually reconcile the transfer (by manually linking it to the correct PaymentRequest via a bankReconciliation).
  • Transfers not associated with a PaymentRequest will thus be easily identifiable
  • As well as unpaid or partially paid PaymentRequests

SCT R-transaction

You can issue a refund for an SCT Transaction if it has been RECEIVED via the Refund service or from the SCT Transaction details in the Merchant Portal. You can initiate a full or partial refund by entering an amount.

Your customer will receive the funds in their bank account within 24 to 48 business hours after the transaction. Your payment account is debited immediately, so it must have sufficient funds to complete the transaction.

You cannot cancel a refund once it has been processed.

International wire transfers

International bank transfers are processed through the SWIFT network (unlike the SEPA network for European transfers). These transfers can be initiated from a wide range of countries in euros or other currencies.

It will soon be possible to accept international wire transfers through the SCT Transaction service. Please contact CentralPay if this service is important to the growth of your business.

Responses, statuses, and webhooks

1. Retours liés aux SCT Transactions

Il n’existe pas de code retours pour les SCT Transactions.

2. Statuts liés aux SCT Transactions

Consultez les Statuts Transaction ➝

Consultez les Statuts Refunds ➝

3. Webhooks liés aux SCT Transactions

Consultez les Webhooks SCT Transaction ➝

Consultez les Webhooks Refunds ➝

Consultez les Webhooks Customer ➝

Card token

See more about Card Token

The Json « CardToken » object

The « CardToken » object represents a debit/credit card token.

Merchants usually want to be able to charge payment cards, IBAN or other without having to store sensitive data on their servers.
Token.js makes this easy in the browser, but you can use the same technique in other environments with our token API.

Tokens can be created with your publishable API key, which can safely be embedded in downloadable applications like iPhone and Android apps. You can then use a token anywhere in our API when a credit/debit card, bank account or any personal ID number is accepted.

You need to add a header "Origin" with an URL previously added in your Back Office as an Authorized Custom form Host.
For your tests, you can use the origin : https://example.centralpay.net.

jQuery(document).ready( function($) { window.live_6ab3046f22af9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Card Token.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f22af9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f22af9.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_6ab3046f23505 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Card Token.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f23505", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f23505.load(); });

SCT Transaction Reversal

See more about SCT Transaction Reversal

jQuery(document).ready( function($) { window.live_6ab3046f23dbb = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f23dbb", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f23dbb.load(); });

SCT Transaction Reversal

See more about SCT Transaction Reversal

jQuery(document).ready( function($) { window.live_6ab3046f2459c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f2459c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f2459c.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

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

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

Data Exports

You can perform several exports of your account in CSV, EXCEL, or JSON formats from your Merchant Portal. To do this, configure your search using the filters available on the desired export page, click « Search » then « Export ». Within seconds, you will receive the file by email and can download it at any time from your Merchant Portal Account Exports

1. Card Transaction Export

This export allows you to obtain the details of card transactions you have processed over a given period.
This export simplifies the reading of your card transactions by aggregating authorization and debit operations, and presents additional data specific to card transactions.

The export contains the following data:

DesignationMeaning
transaction_creation_datecreation date
transaction_idtransaction ID
transaction_amountamount
transaction_currencycurrency
transaction_payout_amountsettlement currency value
transaction_payout_currencysettlement currency
transaction_commision_amounttransaction fees
transaction_commision_currencyfee currency
transaction_fee_amountfixed fees per transaction
transaction_3ds3DS (0=no, 1=yes)
transaction_descriptionmerchant-defined description
transaction_sourceEC E-commerce, DP Deposit, MO Mail order
transaction_bank_codebank authorization response
transaction_statustransaction status
transaction_authorization_statusauthorization status
transaction_authorization_codeauthorization code
transaction_capture_statuscapture status
transaction_capture_datecapture date
transaction_capture_amountcapture amount
merchant_transaction_idmerchant transaction ID
point_of_sale_idpoint of sale ID
point_of_sale_namepoint of sale name
merchant_idmerchant ID
merchant_namemerchant name
dispute_amountdispute amount
dispute_currencydispute currency
dispute_datedispute date
refund_amountrefund amount
refund_currencyrefund currency
refund_daterefund date
card_idpayment card ID
card_first6first 6 digits of card
card_last4last 4 digits of card
card_cardholder_namecardholder name
card_cardholder_emailcardholder email
card_typecard type (credit/debit/prepaid)
card_productcard product name (Infinite, Gold…)
card_product_typeconsumer or corporate card
card_commercial_brandcard network (VISA/Mastercard/CB)
card_regioncard origin continent
card_countrycard origin country
card_establishment_namename of card-issuing institution
customer_idcustomer ID
end_user_ipuser IP
end_user_languageuser language
browser_user_agentuser browser
receipt_emailuser reception email
clearing_numberclearing number
merchant_category_codemerchant activity

Access:

Recette Merchant Portal – Transactions
Production Merchant Portal – Transactions

2. Card Refund Export

This export allows you to obtain the details of card refunds you have processed over a given period.

Access:

Recette Merchant Portal – Card Refunds
Production Merchant Portal – Card Refunds

3. Card Transaction Disputes Export

This export allows you to obtain the details of card transaction disputes/chargebacks you have received over a given period.

Access:

Recette Merchant Portal – Chargebacks
Production Merchant Portal – Chargebacks

4. Subscriptions Export (Cards and SDD)

This export allows you to obtain the details of card and SDD subscriptions you have processed over a given period.

Access:

Recette Merchant Portal – Subscriptions
Production Merchant Portal – Subscriptions

Transaction carte via wallet

1. Apple Pay (Smart Form)

Apple Pay est intégré nativement au parcours de paiement carte du SmartForm (PaymentRequest > paymentMethod[]=TRANSACTION) dès que l’appareil de votre client est compatible.

Aucune action n’est requise de votre part. Le service est entièrement opéré par CentralPay (détection de l’appareil, gestion des certificats et des tokens Apple, sécurité PCI-DSS). Aucune donnée de carte n’est exposée côté marchand (périmètre PCI-DSS SAQ-A).

2. Apple Pay (Custom Form)

2.1. Prérequis

1. Créer un compte Apple Developer :

  • Inscrivez-vous au programme Apple Developer
  • Créez vos identifiants de marchand Apple Pay (Merchant ID)
  • Générez votre certificat de traitement Apple Pay via le portail Apple
  • Déclarez votre domaine (Apple Pay Merchant Domain)

2. Intégration côté device :

  • Implémentez Apple Pay côté frontend via Apple Pay JS (pour les sites web) ou PassKit (pour les apps iOS)
  • Collectez le token Apple Pay (ApplePayToken) après validation du paiement par l’utilisateur (Face ID, Touch ID…)
🔐 Certificats requis pour une intégration Apple Pay (https://developer.apple.com/help/account/certificates/create-a-certificate-signing-request)

Pour traiter des paiements Apple Pay dans le cadre d’une intégration directe, le marchand doit disposer des éléments suivants :
• un certificat Merchant ID Identity ;
• un certificat Merchant Payment Processing G2.

Le marchand doit veiller à conserver l’ensemble des clés privées utilisées lors de la génération des CSR associées à ces certificats.

1. Merchant ID Identity
La génération d’un CSR basé sur une clé EC (256 bits) est requise.
Cette CSR sera générée par Centralpay

2. Merchant Payment Processing Certificate

Étapes principales :
• Demander le CSR généré par Centralpay
• Soumettre le CSR depuis le compte développeur Apple afin d’obtenir le Merchant Payment Processing Certificate.
• Installer le certificat sur le même poste macOS ayant servi à la génération de la CSR afin qu’il soit associé à la clé privée.
• Exporter l’identité complète au format .p12 (certificat + clé privée).

⚠️ Si l’option d’export au format .p12 n’est pas disponible, cela indique qu’une étape du processus n’a pas été correctement réalisée (clé privée manquante ou non associée).

Le fichier .p12 constitue un conteneur sécurisé permettant l’exploitation ultérieure de la clé privée associée au certificat, conformément au flux Apple Pay.

Notes importantes :
• Toute perte de la clé privée nécessite la recréation complète du certificat depuis le portail Apple Developer.
• La documentation Apple Pay peut prêter à confusion : l’utilisation d’OpenSSL ne concerne que le certificat Merchant ID Identity, et ne s’applique pas au Merchant Payment Processing Certificate.

2.2. Via token Apple Pay déchiffré

CentralPay permet le traitement des paiements par carte effectués via Apple Pay, dans le cadre d’une intégration Custom (hors Smart Form).

ℹ️ CentralPay ne prend actuellement en charge que les tokens Apple Pay déchiffrés. Cette méthode implique une responsabilité PCI-DSS importante de votre part (formulaire SAQ-D). Renseignez-vous et assurez-vous d'être en conformité avant de développer ce mode d'intégration.

Étape 1 : Déchiffrement du token Apple Pay (Backend)

Le déchiffrement du token Apple Pay doit être effectué sur votre backend, à l’aide de :

  • Votre certificat de traitement Apple Pay
  • Votre clé privée
  • La documentation Apple : Payment Token Format

Le résultat contiendra :

{
  "applicationPrimaryAccountNumber": "5454********2664",
  "applicationExpirationDate": "YYMMDD",
  "paymentData": {
    "cryptogram": "base64-cryptogram",
    "eciIndicator": "05"
  }
}

Étape 2 : Création du cardToken CentralPay (Backend)

Utilisez l’endpoint POST /cardToken de l’API CentralPay

ChampDescription
card[number]PAN de la carte extrait du token Apple Pay
card[expirationMonth]Mois d’expiration de la carte (format MM)
card[expirationYear]Année d’expiration de la carte (format YYYY)
onlinePaymentCryptogramCryptogramme issu du token Apple Pay (CAVV)
eciIndicatorIndice d’authentification issu du token Apple Pay (eci)
applePayTransactionIdID de la transaction Apple Pay
amountMontant en centimes (ex : 2500 = 25,00 €)
currencyCode alpha ISO (ex : EUR, USD, etc.)
merchantPublicKeyClé publique fournie par CentralPay
ℹ️ Où trouver la merchantPublicKey ?
Connectez-vous à votre portail CentralPay Back Office Administration Technique Merchant Public Key

Exemple :

card[number]=5454696696312664
card[expirationMonth]=12
card[expirationYear]=2031
onlinePaymentCryptogram=MGnp3S1LBgJxAANgdNCRAoABFIA=
applePayTransactionId=3d2b17abed2696ca...
amount=2500
currency=EUR
merchantPublicKey=abcdef123456...

Le cardToken généré contient toutes les données nécessaires à l’authentification Apple Pay.

Étape 3 : Création de la transaction CentralPay (Backend)

Utilisez l’endpoint POST /transaction de l’API CentralPay

Champs requis :

cardToken=...
amount=2500
currency=EUR
pointOfSaleId=...
endUserIp=...
merchantTransactionId=...

Le cardToken encapsule déjà le contexte Apple Pay et les données d’authentification.

Étape 4 : Testing avant mise en production

L’environnement de test CentralPay permet de valider l’ensemble de votre intégration Apple Pay sans déclencher de véritables paiements. Il est fortement recommandé d’utiliser cet environnement pour toutes les phases de développement, de debug et de validation côté frontend comme backend.

Portail de test
API de test
Cartes de test

Différences entre environnement de test et de production :

  • Les URLs des API sont différentes : Elles utilisent le préfixe test-
    • Test : https://test-api.centralpay.net/v2/rest/transaction
    • Production : https://api.centralpay.net/v2/rest/transaction
  • Les identifiants API (login + secret) sont propres à l’environnement de test. Ils ne sont pas interchangeables avec ceux de production
  • La clé publique CentralPay (merchantPublicKey) est également spécifique à l’environnement

2.3. Via token ApplePay chiffré (hybride)

ℹ️ Si cette méthode d’intégration vous intéresse, veuillez contacter le support CentralPay afin de connaître les livrables associés et les modalités d’accès.

2.3.1. Paramétrage du compte Apple

– Se connecter sur « https://developer.apple.com/« , créer un compte et valider le compte ‘developer’ à 99$)

– Aller sur https://developer.apple.com/account/resources/identifiers/list

– Dans « App IDs », choisir « Merchant IDs » :

Puis cliquer sur le « + » pour ajouter un « Identifier » :

Choisir « Merchant IDs » : 

Renseigner le nom de l’identifier et cliquez sur « Register » : 

Aller à https://developer.apple.com/account/resources, puis cliquer sur Identifiers 

Sur Identifier, sélectionner un Merchant IDs en utilisant le filtre en haut à droite

Sous « Apple Pay Payment Processing Certificate », cliquer sur « Create Certificate« .

Indiquez que ce « Merchant ID » ne sera PAS (No) utilisé uniquement pour la Chine.

A ce moment là cliquez sur « Choose File » afin d’envoyer le fichier CSR qui vous a été envoyé par CentralPay(uniquement CentralPay)

Vous pouvez télécharger le fichier généré.
Il reste à créer le certificat « Apple Pay Merchant Identity Certificate » 
Pour cela aller à https://developer.apple.com/account/resources, puis cliquer sur Identifiers et enfin cliquer sur l’Identifier que vous voulez éditer.
Une fois ouvert, cliquez sur « Create Certificate ».

Ajoutez votre certificat : 

Ajouter le domaine associé

Indiquez le nom de domaine en question : 

Téléchargez le fichier indiqué par Apple

Déployez le fichier indiqué par Apple sur un serveur du nom de domaine en question accessible à Apple, puis cliquez sur « Verify » :

Vous pourrez alors télécharger le certificat nécessaire.

2.3.2. Paiement via Applepay

Génération du certificat et clé dans le même fichier : 

openssl pkcs12 -in certificat.p12 -out certificat.pem -clcerts

Création d’un ApplePayToken avec Apple Pay JS API (Démo à https://applepaydemo.apple.com/apple-pay-js-api)

Frontend : 

<script crossorigin
src="https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js">
</script>
<style>
apple-pay-button {
--apple-pay-button-width: 250px;
--apple-pay-button-height: 100px;
--apple-pay-button-border-radius: 99px;
--apple-pay-button-padding: 0px 0px;
--apple-pay-button-box-sizing: border-box;
}
</style>
<apple-pay-button id="btn-card" buttonstyle="white-outline" type="plain" locale="fr-FR"></apple-pay-button>
<br />
<div data-info="gateway-link" class="text-small text-gray-light font-weight-normal ml-1">
<img src="https://docs.centralpay.com/wp-content/uploads/2024/10/paysecure_reassurance_1-fond_blanc.png" alt="CentralPay" style="max-width:200px"></a>
</div>
var request = {
countryCode: 'FR',
currencyCode: 'EUR',
supportedNetworks: ['visa', 'masterCard', 'amex'],
merchantCapabilities: ['supports3DS'],
total: { label: 'Your Merchant Name', amount: '10.00' },
}
var applepayversion = 3;
var session = new ApplePaySession(applepayversion, request);

session.onvalidatemerchant = event => {
// Call your own server to request a new merchant session.
console.log("event.validationURL :"+event.validationURL);

fetch('/applepay-session')
.then(res => res.json()) // Parse the response as JSON.
.then(merchantSession => {
session.completeMerchantValidation(merchantSession);
})
.catch(err => {
console.error("Error fetching merchant session : ", err);
});
};

session.onpaymentauthorized = (event) => {

var token = event.payment.token;
fetch(`https://api.centralpay.net/transaction`, {
method: "post",
body: JSON.stringify(
{
applePayToken: token,
endUserIp: "127.0.0.1",
currency: "EUR",
amount: 1000,
source="EC",
browserUserAgent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36",
merchantTransactionId="1234567890123456789"
}),
})
.then((response) => {
if (response.ok) {
return response.json();
}
appleSession.completePayment(ApplePaySession.STATUS_FAILURE);
})
.then((responseJson) => {
// Do something with the response
appleSession.completePayment(ApplePaySession.STATUS_SUCCESS);
})
.catch((error) => {
appleSession.completePayment(ApplePaySession.STATUS_FAILURE);
});
};

session.begin();

Backend : 

$router->map('GET', '/applepay-session', function (ServerRequestInterface $request) use ($twig) : ResponseInterface {

$APPLE_URL = "https://apple-pay-gateway.apple.com/paymentservices/paymentSession";

$curl = new Curl();
$curl->setHeader('Content-Type', 'application/json');
$curl->setOpt($ch, CURLOPT_SSLCERT, getcwd() . 'certificat.pem');
$curl->setOpt($ch, CURLOPT_SSLCERTPASSWD, "thesslpassword");
$curl->setOpt(CURLOPT_POSTFIELDS, '{
merchantIdentifier: "merchant.net.centralpay.test-form",
displayName: "MyStore",
initiative: "web",
initiativeContext: "merchant.net.centralpay.test-form"
}'
);
$curl->setOpt(CURLOPT_CUSTOMREQUEST, "POST");
$curl->setOpt(CURLOPT_URL, $APPLE_URL);
$curl->exec();
...
return new Laminas\Diactoros\Response\JsonResponse($curl->getResponse());
...
});

Création de CardToken avec votre token Apple pay chiffré. (Frontend)

Lors de votre appel API, en plus des champs obligatoires, il faudra utiliser le champ « applePayToken«  au format JSON comprenant votre token Apple Pay qui incluent les éléments paymentData, paymentMethod et transactionIdentifier.
Vous pourrez ensuite effectuer une transaction à l’aide de votre cardToken normalement.

Utilisez l’endpoint POST /cardToken de l’API CentralPay
Champs requis :

curl --location 'https://test-api.centralpay.net/cardToken' \
--header 'Origin: https://example.centralpay.net' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'merchantPublicKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--data-urlencode 'endUserIp=xxxx.xxxx.xxxx.xxxx'
--data-urlencode 'applePayToken=xxxxxxxxxxxxxxxxxxxxxx'

Création de la transaction : (Backend)

Utilisez l’endpoint POST /transaction de l’API CentralPay
Champs requis :

curl --location 'https://api.centralpay.net/transaction' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: ••••••' \
--data-urlencode 'customerId=870005ca-xxxx-xxxx-xxxx-140fa71d6e01' \
--data-urlencode 'cardTokenId=xxxxxxxxxxxxxxxxxxxxxxxx'
--data-urlencode 'currency=EUR' \
--data-urlencode 'amount=1000' \
--data-urlencode 'endUserIp=xxxx.xxxx.xxxx.xxxx' \
--data-urlencode 'endUserLanguage=fre' \
--data-urlencode 'source=EC' \
--data-urlencode 'browserUserAgent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36' \
--data-urlencode 'browserAcceptLanguage=en_US' \
--data-urlencode 'email=xxxxx@example.com' \
--data-urlencode 'country=FRA' \
--data-urlencode 'merchantTransactionId=1234567890123456789'

Le cardToken encapsule déjà le contexte Apple Pay et les données d’authentification.

Création de Transaction avec votre token Apple pay chiffré. (Backend)

Lors de votre appel API, en plus des champs obligatoires, il faudra utiliser le champ « applePayToken » au format JSON comprenant votre token Apple Pay qui inclus les éléments paymentData, paymentMethod et transactionIdentifier.

Puis utilisez l’endpoint POST /transaction de l’API CentralPay

Champs requis :

curl --location 'https://api.centralpay.net/transaction' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: ••••••' \
--data-urlencode 'customerId=870005ca-xxxx-xxxx-xxxx-140fa71d6e01' \
--data-urlencode 'currency=EUR' \
--data-urlencode 'amount=1000' \
--data-urlencode 'endUserIp=xxxx.xxxx.xxxx.xxxx' \
--data-urlencode 'endUserLanguage=fre' \
--data-urlencode 'source=EC' \
--data-urlencode 'browserUserAgent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36' \
--data-urlencode 'browserAcceptLanguage=en_US' \
--data-urlencode 'email=xxxxx@example.com' \
--data-urlencode 'country=FRA' \
--data-urlencode 'merchantTransactionId=1234567890123456789'
--data-urlencode 'applePayToken=xxxxxxxxxxxxxxxxxxxxxxxx'

3. Google Pay (Smart Form)

Google Pay est nativement au parcours de paiement carte du SmartForm (PaymentRequest > paymentMethod[]=TRANSACTION), dès que l’appareil ou le navigateur de votre client est compatible.

Aucune action ne sera nécessaire de votre part. Le service sera entièrement opéré par CentralPay (détection de compatibilité Google Pay, gestion des certificats et des tokens, sécurité PCI-DSS). Aucune donnée de carte ne transite côté marchand, le flux relève du périmètre PCI-DSS SAQ-A.

4. Google Pay (Custom Form)

CentralPay permet l’intégration de Google Pay via le mode PAYMENT_GATEWAY, tel qu’imposé par Google Pay dans un contexte PSP multi-marchands, sans nécessiter de déchiffrement du token côté serveur.

Prérequis

1. Créer un compte Google Pay Business :

  • Accédez au Google Pay Business Console
  • Créez un Merchant Profile ou connectez-en un existant.
  • Renseignez vos coordonnées de société et d’activité.

2. Enregistrer votre domaine :

  • Dans la console Google Pay, allez dans l’onglet « Domains »
  • Ajoutez votre domaine de production et de test (ex : example.com)
  • Google vous demandera d’y héberger un fichier de vérification pour valider votre propriété
⚠️ Google Pay fournit un merchantId spécifique au domaine validé.
Ce merchantId est obligatoire pour toute Payment Request Google Pay.
L’utilisation d’un merchantId non associé au domaine entraîne une erreur Google Pay (Error 11).

3. Réaliser votre intégration frontend Google Pay :

  • Implémentez Google Pay côté frontend via Google Pay JS (pour les sites web) ou Google Pay API Android (pour les applications mobiles)
  • Collectez le token Google Pay (tokenizationData.token) après validation du paiement par l’utilisateur (code PIN, empreinte digitale, reconnaissance faciale…).
ℹ️ Google propose un tutoriel officiel pour cette intégration : Google Pay API | Google for Developers

4. Récupérez vos identifiants CentralPay :

  • MerchantPublicKey : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Merchant Public Key
  • Login API : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Identifiant API et copiez l’identifiant
  • Pass API : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Cliquez sur votre Identifiant API → Modifier → Générer , copiez votre pass API et mettez à jour

Étape 1: Configuration de Google Pay côté frontend

ℹ️ Le bouton Google Pay est fourni par le SDK officiel Google Pay.
L’initiation du paiement et la génération du token sont entièrement contrôlées par Google Pay (hosted button).

1. Définir la version de l’API :

const baseRequest = {
  apiVersion: 2,
  apiVersionMinor: 0
};

2. Utiliser CentralPay comme passerelle de paiement :

Configurez la tokenisation comme suit :

const tokenizationSpecification = {
  type: 'PAYMENT_GATEWAY',
  parameters: {
    gateway: 'centralpay',
    gatewayMerchantId: 'YOUR_GATEWAY_MERCHANT_ID'
  }
};

Remplacez YOUR_GATEWAY_MERCHANT_ID par votre MerchantPublicKey fourni par CentralPay.

3.Définir les types de cartes acceptées :

const allowedCardNetworks = ["AMEX", "MASTERCARD", "VISA"];

4. Définir le type de moyen de paiement :

Il existe deux type différents : PAN_ONLY et CRYPTOGRAM_3DS

⚠️​CentralPay n’autorise pas l’utilisation du type PAN_ONLY car il requiert de respecter des normes de sécurité spécifiques. Seul le type CRYPTOGRAM_3DS est autorisé.

const allowedCardAuthMethods = ["CRYPTOGRAM_3DS"];

5. Environnement de test ou production :

// Environnement de test
const paymentsClient = new google.payments.api.PaymentsClient({ environment: 'TEST' });

// Environnement de production
const paymentsClient = new google.payments.api.PaymentsClient({ environment: 'PRODUCTION' });

Étape 2 : Récupération du token Google Pay

Lorsqu’un utilisateur final valide un paiement via Google Pay, l’API retourne un token au format JSON dans :

paymentData.paymentMethodData.tokenizationData.token

Ce champ contient une chaîne JSON représentant un objet du type :

{
  "signature": "MEYCIQDn...",
  "protocolVersion": "ECv2",
  "intermediateSigningKey": {
    "signedKey": "{...}",
    "signatures": ["MEUCID..."]
  },
  "signedMessage": "{...}"
}

Ce bloc devra être transmis tel quel à l’API CentralPay lors de la création du cardToken dans le champ googlePayToken.

Étape 3 : Envoi du token à CentralPay (création du cardToken)

Faites un appel à l’endpoint POST /cardToken de CentralPay avec les paramètres suivants :

Paramètres requis :

ChampDescription
amountMontant en centimes (ex : 2500 pour 25,00 €)
currencyCode ISO alpha (ex : EUR, USD, etc.)
googlePayTokenLe JSON complet retourné par Google Pay (tokenizationData.token)
merchantPublicKeyClé publique CentralPay disponible dans le backoffice

Exemple de requête (format x-www-form-urlencoded) :

amount=2500
currency=EUR
merchantPublicKey=abcdef123456...
googlePayToken={"signature":"MEYCIQDn...","protocolVersion":"ECv2",...}

Ne déchiffrez pas le token vous-même : CentralPay s’occupe de sa validation côté serveur.

Étape 4 : Création de la transaction

Une fois que le cardToken est obtenu, vous pouvez déclencher une transaction de manière standard via l’endpoint POST /transaction.

Exemple de paramètres :

cardToken=...
amount=2500
currency=EUR
pointOfSaleId=...
endUserIp=...
merchantTransactionId=...

Le cardToken contient déjà toutes les informations d’authentification : pas besoin d’ajouter de cryptogramme ou de champ CVV.

Étape 5 : Testing avant mise en production

L’environnement de test CentralPay permet de valider l’ensemble de votre intégration Google Pay sans déclencher de véritables paiements. Il est fortement recommandé d’utiliser cet environnement pour toutes les phases de développement, de debug et de validation côté frontend comme backend.

Portail de test
API de test
Cartes de test

Différences entre environnement de test et de production :

  • Les URLs des API sont différentes : elles utilisent le préfixe test-
    • Test : https://test-api.centralpay.net/v2/rest/transaction
    • Production : https://api.centralpay.net/v2/rest/transaction
  • Les identifiants API (login + secret) sont propres à l’environnement de test
    Ils ne sont pas interchangeables avec ceux de production
  • La clé publique CentralPay (merchantPublicKey) est également spécifique à l’environnement

Card transaction via wallet

1. Apple Pay (Smart Form)

Apple Pay is natively integrated into the SmartForm card payment flow (PaymentRequest > paymentMethod[]=TRANSACTION) as long as your customer’s device is compatible.

No action is required on your part. The service is fully managed by CentralPay (device detection, management of Apple certificates and tokens, PCI-DSS security). No card data is exposed on the merchant side (PCI-DSS SAQ-A scope).

2. Apple Pay (Custom Form)

2.1. Requirements

1. Create an Apple Developer account:

  • Sign up for the Apple Developer Program
  • Create your Apple Pay merchant credentials (Merchant ID)
  • Generate your Apple Pay processing certificate through the Apple portal
  • Register your domain (Apple Pay Merchant Domain)

2. Device-side integration:

  • Implement Apple Pay on the front end using Apple Pay JS (for websites) or PassKit (for iOS apps)
  • Retrieve the Apple Pay token (ApplePayToken) after the user has confirmed the payment (Face ID, Touch ID, etc.)
🔐 Certificates required for Apple Pay integration 
(https://developer.apple.com/help/account/certificates/create-a-certificate-signing-request)

To process Apple Pay payments through a direct integration, the merchant must have the following:
• a Merchant ID Identity certificate;
• a Merchant Payment Processing G2 certificate.

The merchant must ensure that all private keys used to generate the CSRs associated with these certificates are retained.

1. Merchant ID Identity
A CSR based on an EC key (256 bits) must be generated.
This CSR will be generated by Centralpay

2. Merchant Payment Processing Certificate

Main steps:
• Request the CSR generated by Centralpay
• Submit the CSR through the Apple Developer Account to obtain the Merchant Payment Processing Certificate.
• Install the certificate on the same macOS computer used to generate the CSR so that it is associated with the private key.
• Export the complete identity in .p12 format (certificate + private key).

⚠️ If the option to export in .p12 format is not available, this indicates that a step in the process was not completed correctly (private key is missing or not associated).

The .p12 file is a secure container that allows the private key associated with the certificate to be used later, in accordance with the Apple Pay workflow.

Important notes:
• If you lose your private key, you must completely recreate the certificate through the Apple Developer portal.
• The Apple Pay documentation can be confusing: the use of OpenSSL applies only to the Merchant ID Identity certificate and does not apply to the Merchant Payment Processing Certificate.

2.2. Via a decrypted Apple Pay token

CentralPay enables the processing of card payments made via Apple Pay as part of a custom integration (excluding Smart Form).

ℹ️ CentralPay currently supports only decrypted Apple Pay tokens. This method entails significant PCI-DSS liability on your part (SAQ-D form). Please research this and ensure you are in compliance before developing this integration method.  

Step 1: Decrypting the Apple Pay token (Backend)

The Apple Pay token must be decrypted on your backend using:

  • Your Apple Pay treatment certificate
  • Your private key
  • Apple Documentation: Payment Token Format

The result will contain:

{
  "applicationPrimaryAccountNumber": "5454********2664",
  "applicationExpirationDate": "YYMMDD",
  "paymentData": {
    "cryptogram": "base64-cryptogram",
    "eciIndicator": "05"
  }
}

Step 2: Creating the CentralPay cardToken (Backend)

Use the /cardToken POST endpoint of the CentralPay API

FieldDescription
card[number]PAN of the card extracted from the Apple Pay token
card[expirationMonth]Card expiration month (MM format)
card[expirationYear]Card expiration year (YYYY format)
onlinePaymentCryptogramCryptogram derived from the Apple Pay token (CAVV)
eciIndicatorAuthentication Index Derived from the Apple Pay Token (ECI)
applePayTransactionIdApple Pay Transaction ID
amountAmount in cents (e.g., 2,500 = €25.00)
currencyISO alpha code (e.g., EUR, USD, etc.)
merchantPublicKeyPublic key provided by CentralPay
ℹ️ Where can I find the merchantPublicKey?
Log in to your CentralPay Back Office portal Administration Technical Merchant Public Key

Example:

card[number]=5454696696312664
card[expirationMonth]=12
card[expirationYear]=2031
onlinePaymentCryptogram=MGnp3S1LBgJxAANgdNCRAoABFIA=
applePayTransactionId=3d2b17abed2696ca...
amount=2500
currency=EUR
merchantPublicKey=abcdef123456...

The generated cardToken contains all the data needed for Apple Pay authentication.

Step 3: Creating the CentralPay Transaction (Backend)

Use the /transaction POST endpoint of the CentralPay API

Required fields:

cardToken=...
amount=2500
currency=EUR
pointOfSaleId=...
endUserIp=...
merchantTransactionId=...

The cardToken already encapsulates the Apple Pay context and authentication data.

Step 4: Testing before deployment

The CentralPay test environment allows you to validate your entire Apple Pay integration without triggering actual payments. We strongly recommend using this environment for all phases of development, debugging, and validation, both on the front end and the back end.

Test portal
Test API
Test cards

Differences between the test and production environments:

  • The API URLs are different: They use the “test-” prefix
    • Test: https://test-api.centralpay.net/v2/rest/transaction
    • Deployment: https://api.centralpay.net/v2/rest/transaction
  • The API credentials (login and secret) are specific to the test environment. They are not interchangeable with those used in production.
  • The CentralPay public key (merchantPublicKey) is also environment-specific

2.3. Via an encrypted Apple Pay token (hybrid)

ℹ️ If you are interested in this integration method, please contact CentralPay support to learn about the associated deliverables and access procedures.

2.3.1. Apple account settings

– Log in on « https://developer.apple.com/« , create an account, and verify your « developer » account for $99)

– Go to https://developer.apple.com/account/resources/identifiers/list

– Under « App IDs », select « Merchant IDs« :

Then click the « + » to add an « Identifier« :

Select « Merchant IDs« :

Enter your username and click »Register »:

Go to https://developer.apple.com/account/resources, then click Identifiers

On the “Identify” page, select a Merchant ID using the filter in the upper-right corner

Under « Apple Pay Payment Processing Certificate », click « Create Certificate« .

Please note that this « Merchant ID » will NOT be used exclusively for China.

At that point, click « Choose File » to upload the CSR file that was sent to you by CentralPay (CentralPay only).

You can download the generated file.
Next, you need to create the “Apple Pay Merchant Identity Certificate.”
To do this, go to https://developer.apple.com/account/resources, then click Identifiers and finally click the identifier you want to edit.
Once it’s open, click « Create Certificate ».

Upload your certificate:

Add the associated domain

Enter the domain name in question:

Download the file specified by Apple

Deploy the file specified by Apple to a server on the domain in question that is accessible to Apple, then click “Verify”:

You will then be able to download the required certificate.

2.3.2. Payment via Apple Pay

Generating the certificate and key in the same file:

openssl pkcs12 -in certificat.p12 -out certificat.pem -clcerts

Creating an ApplePayToken with the Apple Pay JS API (Demo at https://applepaydemo.apple.com/apple-pay-js-api)

Front end:

<script crossorigin
src="https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js">
</script>
<style>
apple-pay-button {
--apple-pay-button-width: 250px;
--apple-pay-button-height: 100px;
--apple-pay-button-border-radius: 99px;
--apple-pay-button-padding: 0px 0px;
--apple-pay-button-box-sizing: border-box;
}
</style>
<apple-pay-button id="btn-card" buttonstyle="white-outline" type="plain" locale="fr-FR"></apple-pay-button>
<br />
<div data-info="gateway-link" class="text-small text-gray-light font-weight-normal ml-1">
<img src="https://docs.centralpay.com/wp-content/uploads/2024/10/paysecure_reassurance_1-fond_blanc.png" alt="CentralPay" style="max-width:200px"></a>
</div>
var request = {
countryCode: 'FR',
currencyCode: 'EUR',
supportedNetworks: ['visa', 'masterCard', 'amex'],
merchantCapabilities: ['supports3DS'],
total: { label: 'Your Merchant Name', amount: '10.00' },
}
var applepayversion = 3;
var session = new ApplePaySession(applepayversion, request);

session.onvalidatemerchant = event => {
// Call your own server to request a new merchant session.
console.log("event.validationURL :"+event.validationURL);

fetch('/applepay-session')
.then(res => res.json()) // Parse the response as JSON.
.then(merchantSession => {
session.completeMerchantValidation(merchantSession);
})
.catch(err => {
console.error("Error fetching merchant session : ", err);
});
};

session.onpaymentauthorized = (event) => {

var token = event.payment.token;
fetch(`https://api.centralpay.net/transaction`, {
method: "post",
body: JSON.stringify(
{
applePayToken: token,
endUserIp: "127.0.0.1",
currency: "EUR",
amount: 1000,
source="EC",
browserUserAgent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36",
merchantTransactionId="1234567890123456789"
}),
})
.then((response) => {
if (response.ok) {
return response.json();
}
appleSession.completePayment(ApplePaySession.STATUS_FAILURE);
})
.then((responseJson) => {
// Do something with the response
appleSession.completePayment(ApplePaySession.STATUS_SUCCESS);
})
.catch((error) => {
appleSession.completePayment(ApplePaySession.STATUS_FAILURE);
});
};

session.begin();

Backend:

$router->map('GET', '/applepay-session', function (ServerRequestInterface $request) use ($twig) : ResponseInterface {

$APPLE_URL = "https://apple-pay-gateway.apple.com/paymentservices/paymentSession";

$curl = new Curl();
$curl->setHeader('Content-Type', 'application/json');
$curl->setOpt($ch, CURLOPT_SSLCERT, getcwd() . 'certificat.pem');
$curl->setOpt($ch, CURLOPT_SSLCERTPASSWD, "thesslpassword");
$curl->setOpt(CURLOPT_POSTFIELDS, '{
merchantIdentifier: "merchant.net.centralpay.test-form",
displayName: "MyStore",
initiative: "web",
initiativeContext: "merchant.net.centralpay.test-form"
}'
);
$curl->setOpt(CURLOPT_CUSTOMREQUEST, "POST");
$curl->setOpt(CURLOPT_URL, $APPLE_URL);
$curl->exec();
...
return new Laminas\Diactoros\Response\JsonResponse($curl->getResponse());
...
});

Creating a CardToken with your encrypted Apple Pay token. (Frontend)

When making your API call, in addition to the required fields, you must include the “applePayToken” field in JSON format, containing your Apple Pay token, which includes the elements paymentData,paymentMethod, and transactionIdentifier.
You can then complete a transaction using your cardToken as usual.

Use the CentralPay API’s POST /cardToken endpoint
Required fields:

curl --location 'https://test-api.centralpay.net/cardToken' \
--header 'Origin: https://example.centralpay.net' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'merchantPublicKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--data-urlencode 'endUserIp=xxxx.xxxx.xxxx.xxxx'
--data-urlencode 'applePayToken=xxxxxxxxxxxxxxxxxxxxxx'

Creating the transaction: (Backend)

Use the /transaction POST endpoint of the CentralPay API
Required fields:

curl --location 'https://api.centralpay.net/transaction' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: ••••••' \
--data-urlencode 'customerId=870005ca-xxxx-xxxx-xxxx-140fa71d6e01' \
--data-urlencode 'cardTokenId=xxxxxxxxxxxxxxxxxxxxxxxx'
--data-urlencode 'currency=EUR' \
--data-urlencode 'amount=1000' \
--data-urlencode 'endUserIp=xxxx.xxxx.xxxx.xxxx' \
--data-urlencode 'endUserLanguage=fre' \
--data-urlencode 'source=EC' \
--data-urlencode 'browserUserAgent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36' \
--data-urlencode 'browserAcceptLanguage=en_US' \
--data-urlencode 'email=xxxxx@example.com' \
--data-urlencode 'country=FRA' \
--data-urlencode 'merchantTransactionId=1234567890123456789'

The cardToken already encapsulates the Apple Pay context and authentication data.

Create a transaction using your encrypted Apple Pay token. (Backend)

When making your API call, in addition to the required fields, you must include the “applePayToken” field in JSON format, containing your Apple Pay token, which includes the elements paymentData, paymentMethod and transactionIdentifier.

Then use the /transaction POST endpoint of the CentralPay API

Required fields:

curl --location 'https://api.centralpay.net/transaction' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: ••••••' \
--data-urlencode 'customerId=870005ca-xxxx-xxxx-xxxx-140fa71d6e01' \
--data-urlencode 'currency=EUR' \
--data-urlencode 'amount=1000' \
--data-urlencode 'endUserIp=xxxx.xxxx.xxxx.xxxx' \
--data-urlencode 'endUserLanguage=fre' \
--data-urlencode 'source=EC' \
--data-urlencode 'browserUserAgent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36' \
--data-urlencode 'browserAcceptLanguage=en_US' \
--data-urlencode 'email=xxxxx@example.com' \
--data-urlencode 'country=FRA' \
--data-urlencode 'merchantTransactionId=1234567890123456789'
--data-urlencode 'applePayToken=xxxxxxxxxxxxxxxxxxxxxxxx'

3. Google Pay (Smart Form)

Google Pay is natively integrated into the SmartForm card payment flow (PaymentRequest > paymentMethod[]=TRANSACTION), provided your customer’s device or browser is compatible.

No action is required on your part. The service will be fully managed by CentralPay (Google Pay compatibility detection, certificate and token management, PCI-DSS security). No card data passes through the merchant’s system; the payment flow falls within the scope of PCI-DSS SAQ-A.

4. Google Pay (Custom Form)

CentralPay enables the integration of Google Pay via the PAYMENT_GATEWAY mode, as required by Google Pay in a multi-merchant PSP environment, without requiring server-side decryption of the token.

Requirements

1. Create a Google Pay Business account:

  • Access the Google Pay Business Console
  • Create a Merchant Profile or link an existing one.
  • Please enter your company and business information.

2. Register your domain:

  • In the Google Pay console, go to the “Domains” tab
  • Add your production and test domains (e.g., example.com)
  • Google will ask you to upload a verification file there to confirm your ownership
⚠️ Google Pay provides a domain-specific merchantId.
This merchantId is required for all Google Pay Payment Requests.
Using a merchantId that is not associated with the domain results in a Google Pay error (Error 11).

3. Implement your Google Pay front-end integration:

  • Implement Google Pay on the front end using Google Pay JS (for websites) or Google Pay Android API (for mobile apps)
  • Collect the Google Pay token (tokenizationData.token) after the user has authorized the payment (PIN, fingerprint, facial recognition, etc.).
ℹ️ Google offers an official tutorial for this integration: Google Pay API | Google for Developers

4. Retrieve your CentralPay login credentials:

  • MerchantPublicKey: Log in to your CentralPay Back Office portal → Administration → Technical → Merchant Public Key
  • API Login: Log in to your CentralPay Back Office portal → Administration → Technical → API ID and copy the ID
  • API Pass: Log in to your CentralPay Back Office portal → Administration → Technical → Click on your API ID → Edit → Generate, copy your API pass, and update it

Step 1: Configuring Google Pay on the front end

ℹ️ The Google Pay button is provided by the official Google Pay SDK.
Payment initiation and token generation are entirely controlled by Google Pay (hosted button).

1. Specify the API version:

const baseRequest = {
  apiVersion: 2,
  apiVersionMinor: 0
};

2. Use CentralPay as a payment gateway:

Configure tokenization as follows:

const tokenizationSpecification = {
  type: 'PAYMENT_GATEWAY',
  parameters: {
    gateway: 'centralpay',
    gatewayMerchantId: 'YOUR_GATEWAY_MERCHANT_ID'
  }
};

Replace YOUR_GATEWAY_MERCHANT_ID with your MerchantPublicKey provided by CentralPay.

3. Specify the types of cards accepted:

const allowedCardNetworks = ["AMEX", "MASTERCARD", "VISA"];

4. Select the payment method:

There are two different types: PAN_ONLY and CRYPTOGRAM_3DS

⚠️​CentralPay does not allow the use of the PAN_ONLY type because it requires compliance with specific security standards. Only the CRYPTOGRAM_3DS type is allowed.

const allowedCardAuthMethods = ["CRYPTOGRAM_3DS"];

5. Test or production environment:

// Environnement de test
const paymentsClient = new google.payments.api.PaymentsClient({ environment: 'TEST' });

// Environnement de production
const paymentsClient = new google.payments.api.PaymentsClient({ environment: 'PRODUCTION' });

Step 2: Retrieving the Google Pay token

When an end user authorizes a payment via Google Pay, the API returns a token in JSON format in:

paymentData.paymentMethodData.tokenizationData.token

This field contains a JSON string representing an object of the following type:

{
  "signature": "MEYCIQDn...",
  "protocolVersion": "ECv2",
  "intermediateSigningKey": {
    "signedKey": "{...}",
    "signatures": ["MEUCID..."]
  },
  "signedMessage": "{...}"
}

This block must be sent as-is to the CentralPay API when creating the cardToken in the googlePayToken field.

Step 3: Sending the token to CentralPay (creating the cardToken)

Make a POST request to CentralPay’s /cardToken endpoint with the following parameters:

Required parameters:

FieldDescription
amountAmount in centimes (e.g., 2,500 for €25.00)
currencyISO alpha code (e.g., EUR, USD, etc.)
googlePayTokenThe complete JSON returned by Google Pay (tokenizationData.token)
merchantPublicKeyCentralPay public key available in the back office

Example request (x-www-form-urlencoded format):

amount=2500
currency=EUR
merchantPublicKey=abcdef123456...
googlePayToken={"signature":"MEYCIQDn...","protocolVersion":"ECv2",...}

Do not decrypt the token yourself: CentralPay handles its validation on the server side.

Step 4: Creating the transaction

Once you have obtained the cardToken, you can initiate a transaction in the standard way via endpoint POST /transaction.

Example settings:

cardToken=...
amount=2500
currency=EUR
pointOfSaleId=...
endUserIp=...
merchantTransactionId=...

The cardToken already contains all the authentication information: there is no need to add a cryptogram or a CVV field.

Step 5: Testing before deployment

The CentralPay test environment allows you to validate your entire Google Pay integration without triggering actual payments. We strongly recommend using this environment for all phases of development, debugging, and validation, both on the front end and the back end.

Test portal
Test API
Test cards

Differences between the test and production environments:

  • The API URLs are different: they use the “test-” prefix
    • Test: https://test-api.centralpay.net/v2/rest/transaction
    • Deployment: https://api.centralpay.net/v2/rest/transaction
  • The API credentials (login + secret) are specific to the test environment.
    They are not interchangeable with those used in production.
  • The CentralPay public key (merchantPublicKey) is also environment-specific

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é.

SCT R-transaction

You can issue a refund for an SCT Transaction if it has been RECEIVED via the Refund service or from the SCT Transaction details in the Merchant Portal. You can initiate a full or partial refund by entering an amount.

Your customer will receive the funds in their bank account within 24 to 48 business hours after the transaction. Your payment account is debited immediately, so it must have sufficient funds to complete the transaction.

You cannot cancel a refund once it has been processed.

R-transaction SDD

1. Remboursement de prélèvement SEPA

Vous pouvez rembourser une SDD Transaction si celle-ci est CLEARED via le service Refund ou depuis le détail de la SDD Transaction dans le Portail Marchand. Vous pouvez initier un remboursement total ou partiel en renseignant un montant.

Votre client recevra les fonds sur son compte bancaire sous 24 à 48 heures ouvrés après l’opération. Votre compte de paiement est lui débité immédiatement, il doit donc être solvable pour pouvoir réaliser l’opération.

Vous ne pouvez pas annuler un remboursement une fois celui-ci réalisé.

2. Rejet et contestations de prélèvement SEPA

Les rejets et contestations de prélèvements SEPA sont émis par les banques de vos clients. Ils sont représentés dans votre compte de paiement CentralPay par les opérations « SDD Transaction Reversal ».

Un rejet de prélèvement SEPA est émis par la banque avant la mise à disposition des fonds au créancier (sous 2 à 5 jours). Voici les principaux motifs de rejet des prélèvements SEPA Core :

  • Provisions insuffisantes : le compte bancaire du débiteur ne dispose pas de fonds suffisants pour réaliser l’opération
  • Compte clôturé : le compte bancaire du débiteur a été fermé
  • Coordonnées bancaires incorrectes : l’IBAN ou BIC utilisé est incorrect, ou le compte n’est pas en devise EUROS

Une contestation de prélèvement SEPA peut être émise par le débiteur jusqu’à 13 mois après l’opération. C’est le principal facteur de risque financier de ce moyen de paiement. Voici les principaux motifs de contestation des prélèvements SEPA Core :

  • Contestation de l’opération (sous 8 semaines max) : le mandat SEPA est valide, mais le client conteste l’opération auprès de sa banque pour quelconque motif. L’opération est entièrement remboursée et des frais de contestation sont applicables au créancier. Le délai est de 70 jours pour les banques hors de l’Union européenne ou de l’Espace Économique Européen
  • Contestation pour absence de mandat (sous 13 mois max) : le mandat SEPA n’est pas valide (absence de mandat, mauvais signataire…), le client conteste les opérations réalisées. Les opérations sont entièrement remboursées et des frais de contestation sont applicables au créancier

Pour en savoir plus, consultez la liste complète des codes de rejets et contestation de prélèvement SEPA.

SDD R-Transaction

1. SEPA Direct Debit refund

You can refund an SDD transaction if it has been CLEARED using the Refund service or from the SDD transaction details in the Merchant Portal. You can initiate a full or partial refund by entering an amount.

Your customer will receive the funds in their bank account within 24 to 48 business hours after the transaction. Your payment account is debited immediately, so it must have sufficient funds to complete the transaction.

You cannot cancel a refund once it has been processed.

2. SEPA Direct Debit rejections and contests

SEPA direct debit rejections and contests are issued by your customers’ banks. They are reflected in your CentralPay payment account as “SDD Transaction Reversal” operations.

A SEPA direct debit rejection is issued by the bank before the funds are made available to the creditor (within 2 to 5 days). Here are the main reasons for rejecting SEPA Core direct debits:

  • Insufficient funds: The debtor’s bank account does not have sufficient funds to complete the operation.
  • Account closed: The debtor’s bank account has been closed
  • Incorrect bank account information: The IBAN or BIC provided is incorrect, or the account is not denominated in euros.

A debtor may contest a SEPA direct debit up to 13 months after the transaction. This is the primary source of financial risk associated with this payment method. Here are the main reasons for contesting SEPA Core direct debits:

  • Transaction contested (within a maximum of 8 weeks): The SEPA direct debit is valid, but the customer contests the transaction with their bank for any reason. The transaction is fully refunded, and a contestation fee applies to the creditor. The deadline is 70 days for banks outside the European Union or the European Economic Area.
  • Dispute due to lack of authorization (within 13 months max): The SEPA direct debit is invalid (lack of authorization, incorrect signatory, etc.), and the customer disputes the transactions. The transactions are fully refunded, and dispute fees apply to the creditor.

For more information, see the complete list of SEPA direct debit rejection and contested payment codes.

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

Remove the limit on an Electronic Money Account

A Wallet can be converted into a verified account (with limits removed) via a full onboarding process triggered by the API.

1. Step 1 – Create an enrollment

  • POST /merchant-enrollments

You must include the walletId from the existing limited wallet.

Required fields

FieldTypeDescriptionNote
walletIdUUIDLink to the EM Wallet to remove the limitValid UUID
profile[firstname][value]string (255)First nameAlpha + -
profile[lastname][value]string (255)NameAlpha + -
profile[email][value]string (255)Contact email—
profile[phone][value]string (15)International phone—
profile[birthday][value]date (YYYY-MM-DD)Date of birthBetween 18 and 110 years old
profile[place_of_birth][value]string (255)Birthplace—
profile[country_of_birth][country]string (3)Country of birthISO 3166-1 alpha-3
languagestring (3)"fr" or "en"—
accountTypestring"BASIC"—
typestring"INDIVIDUAL"—
activitySectorUUID (36)Activity sectorGET /api/nauth/enrollment-claim/activity-sector
feeScheduleUUID (36)Price gridPOST /api/merchant-enrollment/fee-schedule
turnoverUUID (36)Expected annual revenuePOST /api/nauth/enrollment-claim/turnover
workflowDefinitionUUIDWorkflow templateprovided by CentralPay
profileWorkflowDefinitionUUIDProfile templateprovided by CentralPay
workflowModestring"SEQUENTIAL"Required
allowedEmailCommunicationbooleanConsentement à recevoir des emailstrue or false

Optional fields

FieldTypeDescription
sendClaimEmailbooleanSending the enrollment email (default: true)
sendProfileCreationEmailbooleanEmail after profile completion
sendAccountCreationEmailbooleanEmail upon opening a verified account
customReferencestringInternal reference
technicalContact, administrativeContact, financialContactstring(255)Business contacts
addSecurityReferencebooleanDisplays a safety reference (for STANDARD, PARTNER, RESELLER)
hookUUIDTechnical hook
birthdayConfirmation[value]dateIf affiliated with an agent

2. Step 2 – Complete a KYC enrollment (via autocomplete)

To speed up the enrollment process, you can fill out all the required information at once by calling:

  • POST /merchant-enrollment/{uuid}/autocomplete

Residential address

FieldTypeRequiredDescriptionNote
address[nameLine1]string✅ YesStreet number and name—
address[locality]string✅ YesCity of residence—
address[postalCode]string✅ YesPostal code—
address[country]string✅ YesCountry of residenceISO 3166-1 alpha-3

Identification document

FieldTypeRequiredDescriptionNote
identityDocument[type]string✅ YesDocument typeIDENTITY_CARD, PASSPORT, RESIDENCE_PERMIT, VISA, IDENTITY_DOCUMENT_RECEIPT
identityDocument[documents][0]file✅ YesFront side or main scanJPG, JPEG or PNG
identityDocument[documents][1]file✅ Yes, if IDENTITY_CARDBack side or additional pageJPG, JPEG or PNG
identityDocument[issuingCountry]string✅ YesIssuing countryISO 3166-1 alpha-3
identityDocument[expiryDate]string❌ NoExpiration dateFormat YYYY-MM-DD
identityDocument[checkId]string❌ NoControl ID (Onfido)—
identityDocument[documentNumber]string❌ NoDocument number—
identityDocument[mrzLine1]string❌ NoMRZ 1 Line—
identityDocument[mrzLine2]string❌ NoMRZ 2 Line—

Special cases

FieldRequiredConditionDescription
identityDocument[proofOfIdentityDocument]✅ Yesif type = IDENTITY_DOCUMENT_RECEIPTVisual proof of receipt
identityDocument[proofOfIdentityDocuments][*]✅ YeslikewiseMultiple files, if applicable
identityDocument[proofOfIdentityDocumentExpiryDate]✅ Yesif file proofOfIdentityDocument providedFormat YYYY-MM-DD

Banking information (optional but recommended)

FieldTypeRequiredDescriptionNote
iban[value]string❌ NoIBAN to be verifiedValid IBAN format
bic[value]string❌ NoBIC/SWIFT code—
ibanDocument[document]file❌ NoProof of bank information (bank account details, statement)JPG, JPEG or PNG

Additional KYC data (riskData)

All of the following fields are required unless otherwise noted.

FieldTypeRequiredDescriptionNote
riskData[isPep]bool✅ YesPolitically exposed person?default: false
riskData[isInSanctionList]bool✅ YesIs it on a sanctions list?default: false
riskData[residentAlpha3Code]string✅ YesCountry of residenceISO 3166-1 alpha-3
riskData[isHighRiskResident]bool✅ YesCountry of residence at risk?—
riskData[nationalityAlpha3Code]string✅ YesNationalityISO 3166-1 alpha-3
riskData[isHighRiskNationality]bool✅ YesNationality at risk?—
riskData[isHighRiskMCCActivitySector]bool✅ YesIs the MCC sector at risk?—
riskData[MCCActivitySector]int✅ YesMCC code (NAF or sector)—
riskData[monthlyLimit]int✅ YesReported monthly limit (in centimes)E.g., 150000 = €1,500.00
riskData[monthlyLimitCurrencyAlphabeticCode]string✅ YesCurrency (e.g., EUR)ISO 4217
riskData[isCrossBorderPayment]bool❌ NoCross-border payments?Default: true
riskData[declaredMonthlyRevenue]int❌ NoReported income (in centimes)—
riskData[verifiedMonthlyRevenue]int✅ Yes, if full KYCVerified incomes—

Additional documents (if required)

FieldTypeRequiredDescriptionNote
proofOfAddressDocument[documents][0]file✅ Yes, if the profile is at riskProof of addressJPG, JPEG or PNG
incomeDocument[document]file✅ Yes, if full KYC is requiredProof of income (1 document)JPG, JPEG or PNG
incomeDocument[documents][*]file✅ Yes, if full KYC is requiredMultiple files allowedJPG, JPEG or PNG

Other documents (if necessary to lift the limit)

FieldTypeDescriptionNotes
additionalDocuments[X]['type']stringType of document submittedEx: UBO_DECLARATION, PROOF_OF_VAT_REGISTRATION, LICENSING_AGREEMENT, etc.
additionalDocuments[X]['documents'][X]fileFiles submittedFile format: JPG, JPEG, PNG
ℹ️ The complete list of accepted document types is documented in the Open API.

Open data (required, even if empty)

FieldTypeRequiredDescription
metaDataJSON object✅ YesOpen metadata, in {"key": "value"} format (may be empty)

3. Step 3 – Correcting a failed enrollment (autoupdate)

If the compliance department rejects one or more documents (e.g., a blurry ID card, an expired document), you can submit only the rejected items via a self-update request.

  • POST /merchant-enrollment/{uuid}/autoupdate

Correction of an identification document

FieldTypeRequiredDescriptionNote
identityDocument[type]string✅ YesType of document to be correctedIDENTITY_CARD, PASSPORT, RESIDENCE_PERMIT, VISA, IDENTITY_DOCUMENT_RECEIPT
identityDocument[documents][0]file✅ YesFront side of the document (or single file)JPG, JPEG or PNG
identityDocument[documents][1]file✅ Yes, if type = IDENTITY_CARDBack side of the NICJPG, JPEG or PNG
identityDocument[issuingCountry]string✅ Yes, if the document is submittedIssuing countryISO 3166-1 alpha-3

Additional identification document (if required)

FieldTypeRequiredDescription
complementaryIdentityDocument[documents][0]file✅ Yes, if requiredAdditional scan or photo
complementaryIdentityDocument[expiryDate]string✅ YesExpiration date (YYYY-MM-DD)
complementaryIdentityDocument[documentNumber]string✅ YesDocument number
complementaryIdentityDocument[mrzLine1]string✅ YesMRZ Line 1
complementaryIdentityDocument[mrzLine2]string✅ YesMRZ Line 2
complementaryIdentityDocument[issuingCountry]string✅ YesIssuing country (ISO alpha-3)

Income documents

FieldTypeRequiredDescription
incomeDocument[document]file✅ Yes, if requiredSingle JPG/JPEG/PNG file
incomeDocument[documents][*]file✅ Yes, if multiple are expectedMultiple documents by index ([0], [1], etc.)

Additional personal information

FieldTypeRequiredDescription
profile[firstname][value]string❌ NoFirst name
profile[lastname][value]string❌ NoName
profile[birthday][value]string❌ NoDate of birth
profile[place_of_birth][value]string❌ NoBirthplace
profile[country_of_birth][country]string❌ NoCountry of birth (ISO 3166-1 alpha-3)

Address correction (if rejected)

FieldTypeRequiredDescription
profile[address][nameLine1]string❌ NoAddress – line 1
profile[address][postalCode]string❌ NoPostal code
profile[address][country]string❌ NoCountry (ISO alpha-3)
profile[address][locality]string❌ NoCity

Updating KYC data (riskData)

All of the following fields are required unless otherwise noted. They must be returned exactly as they are or updated if changed as part of the correction.

FieldTypeRequiredDescriptionNote
riskData[isPep]boolean✅ YesPEP?default: false
riskData[isInSanctionList]boolean✅ YesOn a sanctions list?default: false
riskData[residentAlpha3Code]string✅ YesCountry of residenceISO alpha-3
riskData[isHighRiskResident]boolean✅ YesCountry of residence at risk?—
riskData[nationalityAlpha3Code]string✅ YesNationalityISO alpha-3
riskData[isHighRiskNationality]boolean✅ YesNationality at risk?—
riskData[isHighRiskMCCActivitySector]boolean✅ YesHigh-risk area?—
riskData[MCCActivitySector]int✅ YesMCC business code—
riskData[monthlyLimit]int✅ YesMonthly limit (in centimes)[0 ; 190000]
riskData[monthlyLimitCurrencyAlphabeticCode]string✅ YesCurrency (e.g., EUR)ISO 4217
riskData[isCrossBorderPayment]boolean❌ NoCross-border paymentsdefault: true
riskData[declaredMonthlyRevenue]int❌ NoReported incomes—
riskData[verifiedMonthlyRevenue]int✅ Yes, if full KYCVerified incomes (centimes)

Additional documents (optional or required)

FieldTypeRequiredDescription
additionalDocuments[X]['type']string✅ Yes, if the documents are expectedType of proof
additionalDocuments[X]['documents'][X]file✅ YesRelated files (JPG, JPEG, PNG)

Other fields

FieldTypeRequiredDescription
fullKycboolean❌ NoAllows you to require full or simplified KYC (true / false)

4. Step 4 – Track the status of an enrollment

Once an enrollment has been created and completed, you can check its status at any time to:

  • Check the status (ON_GOING, ACCEPTED, REFUSED)
  • Track pending steps in the workflow
  • Extract previously submitted profile data

Retrieve an enrollment

GET /merchant-enrollment/{enrolmentId}

Required settings

FieldTypeRequiredDescriptionNote
enrolmentIdUUID (36)✅ YesEnrollment ID returned upon creation (POST /merchant-enrollments)Standard UUID format
ℹ️ The enrollment must belong to the scope authorized by your API credentials (merchant or sub-merchant).

Main fields in the response

FieldTypeDescription
uuidUUIDUnique enrollment ID
workflow.statusstringProcess status (ON_GOING, ACCEPTED, REFUSED)
workflow_modestring"SEQUENTIAL" or "CONTINUAL"
workflow.activities[]tableList of activities (steps) still to be completed
profile[...]objectProfile data that has already been submitted, with their status
conformity_statusstringOverall compliance status (ON_GOING, REVIEW, APPROVED, etc.)
created_atdatetimeEnrollment creation date
activity_sector.namestringSector reported on the enrollment form

Keep an eye on

  • As long as an activity has a state = TODO, enrollment is incomplete
  • When there are no pending activities and workflow.status = ACCEPTED, the user is approved
  • In case of workflow.status = REFUSED, no verified wallet will be generated

5. KYC verification process for a ME account

Portail Client

Le portail client CentralPay est l’interface des profils clients (Customer). Il permet à vos clients de :

  • Consulter leur historique de paiement
  • D’administrer leurs opérations en cours (mise à jour de leur moyen de paiement par défaut, résiliation d’abonnement…)
  • Mais aussi d’interagir avec vous en cas de question concernant une opération (formulaire de contact)

Ce portail est principalement utilisé pour l’administration des paiements récurrents par les clients. Les équipes conformité de CentralPay peuvent requérir que l’URL de ce portail soit intégrée dans le pied de page ou les conditions générales de votre site marchand.

Pour s’y connecter, vos clients ont deux options :

Soit via la page d’accueil du portail Client, en renseignant les informations d’un de leurs paiements opéré avec votre profil Marchand CentralPay :

Recette Portail Client
Production Portail Client

Ou en direct via le lien communiqué dans les emails automatique de création d’abonnement / de paiement fractionné, ou en intégrant le CustomerID visible dans votre Portail Marchand : Compte Customer Détail CustomerId

  • Portail Client de RCT : https://test-customer.centralpay.net/customer/?uuid=[CustomerId]
  • Portail Client de PROD : https://customer.centralpay.net/customer/?uuid=[CustomerId]

Customer Portal

The CentralPay Customer Portal is the interface for Customer Profiles (Customer). It allows your customers to:

  • View their payment history
  • To manage their ongoing transactions (updating their default payment method, canceling a subscription, etc.)
  • But also to get in touch with you if you have any questions about a transaction (contact form)

This portal is primarily used by customers to manage recurring payments. CentralPay’s compliance teams may require that the URL for this portal be included in the footer or the terms and conditions of your e-commerce site.

To log in, your customers have two options:

Either through the Customer Portal homepage, by entering the details of one of their payments made using your CentralPay Merchant Profile:

Recette Customer Portal
Production Customer Portal

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

  • Sandbox Customer Portal: https://test-customer.centralpay.net/customer/?uuid=[CustomerId]
  • LIVE Customer Portal: https://customer.centralpay.net/customer/?uuid=[CustomerId]

Transaction prélèvement SEPA

Articles

  • Informations générales
  • Identifiant de Créancier SEPA
  • Déclaration du compte bancaire
  • Création du mandat SEPA
  • Transaction par prélèvementsddTransaction
  • R-transaction SDDrefund / sddTransactionReversal
  • Retours, statuts et webhooks

Informations générales

Le prélèvement SEPA (SEPA Direct Debit ou « SDD » en anglais) permet à un créancier (marchand) de prélever un montant dû directement sur le compte de son débiteur (client). Il est principalement destiné aux règlements récurrents (abonnements ou paiements en plusieurs fois) mais peut-être dans certains cas utilisé pour des règlements ponctuels (par exemple pour le règlement de factures entre professionnels).

Étant émis à l’initiative du créancier, il requiert la collecte préalable d’une autorisation de son débiteur. Le marchand édite ainsi un « Mandat SEPA » précisant les conditions de prélèvement et les coordonnées bancaires des deux parties que son débiteur devra signer.

1. Les deux types de prélèvement SEPA

Il existe deux types de prélèvements SEPA :

  • Le prélèvement SEPA « CORE » : le plus répandu, il permet aux créanciers de débiter des comptes de particuliers comme de personnes morales. Le mandat SEPA est édité et signé entre les deux parties sans contraintes particulières. Le débiteur est cependant protégé et peut contester un prélèvement CORE sans motifs auprès de sa banque sous 8 semaines
  • Le prélèvement SEPA « B2B » : réservé aux prélèvements entre entreprises. Le mandat SEPA est édité, signé puis doit être transmis par le débiteur à sa banque. Le parcours de contractualisation requiert ainsi une action forte du débiteur et la validation de sa banque. Cependant, les prélèvements initiés depuis ce type de mandats ne sont pas contestables.
    CentralPay ne propose pas ce service de prélèvement SEPA type « B2B »

2. Risques de rejet et de contestation

Le prélèvement SEPA étant un moyen de paiement dont les transactions sont initiées sans authentification forte du client, les risques de rejets et de contestations sont à prendre en considération.

👉 Consultez la rubrique « R-Transaction SDD » pour en savoir plus sur les rejets et contestations SDD

3. Informations importantes

  • Le prélèvement SEPA est utilisable sur la vaste majorité des comptes bancaires « courants » des pays de la zone SEPA et certains de l’Espace Économique Européen hors SEPA. Cela dépend de la connectivité aux réseaux SEPA des banques des débiteurs. Les comptes spéciaux type « comptes épargnes » ne sont pas atteignables
  • Les opérations SEPA sont traitées en devise EUROS (€) uniquement
  • Les opérations SEPA sont traitées lors des jours ouvrés uniquement (hors weekend et jours fériés). Ainsi, le délai de réception des fonds varie entre 2 à 5 jours à compter de la date d’initiation de l’opération
  • Le débiteur doit être informé par le créancier des prélèvements à venir, au moins 14 jours avant la date, soit par l’envoi d’un échéancier, d’une notification ou d’une facture
  • La durée de validité d’un mandat SEPA est de 36 mois après la dernière transaction opérée sur ce mandat
  • Dans le cadre d’un prélèvement SEPA sur le compte bancaire d’une entreprise (personne morale), le créancier doit veiller à ce que le mandat SEPA soit adressé et signé par le dirigeant ou un responsable habilité (gérant, service comptabilité…)
  • Le prélèvement SEPA est particulièrement adapté aux transactions récurrentes d’un montant situé entre 20 et 200 EUR pour les débiteurs particuliers, et entre 20 et 2 000 EUR pour les débiteurs personnes morales

Identifiant de Créancier SEPA

L’Identifiant Créancier SEPA (ICS) est un numéro de référence unique qui identifie chaque émetteur de prélèvement. En France, il est composé de 13 caractères alphanumériques, dont les 2 premiers représentent le code pays ISO (FR pour la France).

Disposer d’un ICS est un prérequis obligatoire pour réaliser des prélèvements. Le créancier doit faire la demande d’attribution de l’ICS auprès de sa banque. Le créancier conserve ensuite son ICS, même s’il change de banque.

Communiquez votre ICS à CentralPay lors de votre entrée en relation afin que nos équipes puissent le déclarer dans votre compte.

Déclaration du compte bancaire

Pour réaliser une transaction par prélèvement SEPA, il faut d’abord créer le profil de votre client (le débiteur) et déclarer ses coordonnées bancaires sur la plateforme CentralPay.

1. Créer un profil client « Customer »

  • Collecter les informations de votre client (email, nom, prénom…)
  • Créer un profil client Customer
  • Récupérer la propriété customerId dans le retour de création du Customer

2. Créer un compte bancaire « bankAccount »

  • Collecter les coordonnées bancaires de votre client (IBAN, BIC, nom du titulaire du compte…)
  • Créer un compte bancaire bankAccount en renseignant le customerId de votre client
  • Récupérer le bankAccountId et le identityId dans le retour de création du bankAccount

Création du mandat SEPA

Après avoir déclaré le compte bancaire bankAccount du client et rattaché son profil client « Customer », vous pouvez créer un mandat SEPA « mandate » et collecter la signature électronique de votre client via un code (OTP) envoyé par SMS.

Prérequis : vous devez récupérer le creditorBankAccountId de votre profil Marchand CentralPay correspondant à votre ICS. Vous pouvez le retrouver depuis votre Portail Marchand en utilisant un profil avec des droits Admin : Administration Mon profil marchand Comptes bancaires

Identifiez la ligne présentant votre ICS dans la colonne « IBAN » puis copiez l’UUID associé.

1. Création et signature d’un nouveau mandat SEPA

1.1. Créez un mandat SEPA :

  • Créez un « Mandate »
    • Renseignez votre « creditorBankAccountId »
    • Renseignez le « CustomerId » de votre client
    • Renseignez votre Référence Unique de Mandat (RUM)
    • Indiquez le type de mandat que vous souhaitez créer dans la propriété « paymentType »
    • Renseignez le numéro de téléphone de votre client dans la propriété « debtorPhone »
    • Renseignez l’email de votre client dans la propriété « debtorEmail »
    • Indiquez le compte bancaire de votre client en renseignant son « bankAccountId » dans la propriété « debtorBankAccountId »

  • Une fois le mandat SEPA créé :
    • Un « mandateId » sera généré
    • Le statut du mandat sera en PENDING
    • Un code à 6 chiffres (OTP) sera envoyé à votre client par SMS (durée de vie 15 min). Vous pouvez renouveler l’envoi de l’OTP.

1.2. Signez un mandat SEPA :

  • Signez le « Mandate »
    • Collectez le code à 6 chiffres auprès de votre client, et renseignez-le dans la propriété « otp »
    • Renseignez le « mandateId » généré lors de la création du mandat
    • Renseignez l’IP de votre client dans la propriété « endUserIp »
    • Le statut du mandat passera ainsi en « ACTIVE » et le mandat SEPA au format PDF sera envoyé au client par email

1.3. Schéma de déclaration du compte bancaire et création mandat

2. Déclaration d’un mandat existant (migration)

Dans le cadre d’une migration de mandats déjà créé auprès d’un autre prestataire de paiement, il est possible de désactiver la fonction de signature par OTP sms et d’envoi du mandat SEPA par email. Si c’est votre cas, contactez nos équipes afin d’obtenir plus de détails concernant cette procédure.

Prérequis :

  • Les mandats doivent avoir été créés avec votre Identifiant de Créancier SEPA (ICS)
  • Les mandats doivent avoir été créés avec votre entité juridique actuelle
  • Les mandats doivent avoir été dûment signés et acceptés par vos débiteurs
  • Les mandats doivent être encore actifs (<36 mois depuis la dernière transaction)

3. Modification d’un mandat SEPA existant

3.1. Modifications possibles sans nécessité de nouveau mandat

Certaines données peuvent être mises à jour sans exiger la signature d’un nouveau mandat SEPA, sous réserve d’informer correctement le débiteur :

  • Changement de nom du créancier (modification de la structure juridique prélevant)
  • Changement de l’Identifiant Créancier SEPA (ICS)
  • Changement de la Référence Unique de Mandat (RUM)
  • Changement de compte / IBAN du débiteur au sein d’une même banque
  • Changement de compte / IBAN du débiteur suite à un changement de banque

Endpoints associés :

  • Modifier un IBAN débiteur
    POST /bankAccount/{bankAccountId}
    Permet de mettre à jour l’IBAN d’un compte bancaire débiteur lié à un mandat SEPA existant.
  • Modifier une RUM
    Cette opération n’est pas possible via les API CentralPay. Une modification de la RUM nécessite la création d’un nouveau mandat (migration).
  • Modifier le nom du créancier
    En cas de changement de la structure juridique réalisant les prélèvements, un nouveau Profil Marchand CentralPay (Merchant) doit être créé. Les mandats existants devront alors être redéclarés sous ce nouveau profil via un processus de migration.

3.2. Modifications nécessitant un nouveau mandat

Les modifications suivantes imposent la création d’un nouveau mandat SEPA, car elles impliquent une nouvelle autorisation du débiteur :

  • Changement de nom du débiteur
  • Changement de la date de signature du mandat
  • Changement de type de mandat : passage de SDD Core à SDD B2B
    NB : Ce cas d’usage n’est pas disponible dans les services CentralPay
  • Changement de la fréquence de prélèvement : passage de ponctuel à récurrent

3.3. Communication des modifications

Les notifications de modifications doivent obligatoirement être transmises :

  • Par le créancier au débiteur, pour toute modification initiée par le créancier (ICS, RUM, IBAN, etc.)
  • Par le débiteur au créancier, avec présentation d’un justificatif (ex : RIB ou pièce d’identité) pour les changements d’IBAN ou de données personnelles

Transaction par prélèvement

Une fois les étapes de création et de signature de mandat réalisées, vous pouvez créer une transaction en prélèvement SEPA (Transaction SDD). Chaque transaction SDD sera liée au mandat correspondant.

Pour créer des transactions SDD, vous avez plusieurs possibilités :

  1. Créer des transactions SDD individuelles : pour réaliser une ou plusieurs transactions SDD par API en complète autonomie
  2. Créer des transactions SDD via les modèles d’abonnement « Subscription » : pour réaliser X transactions selon une fréquence définie par un modèle d’abonnement (exemple : 50 € par mois pendant 12 mois).
  3. Créer des transactions SDD via le service de paiement fractionné « Installment » : pour fractionner une créance client en plusieurs transactions (exemple : 1000 € à régler en 3 fois avec un acompte de 500 €).

1. Transactions SDD individuelles

1.1. Créez une « SDDTransaction »

  • Renseignez l’identifiant du mandat SEPA « mandateId »
  • Renseignez le montant de la transaction en centimes « amount »
  • Renseignez la devise EUR dans la propriété « currency »
  • Renseignez votre identifiant unique de transaction dans la propriété « endToEndIdentification »
  • Renseignez la description de la transaction dans la propriété « remittanceInformation » (cette donnée apparaitra sur le relevé de compte de vos clients)
  • Renseignez l’IP de votre client dans « endUserIp »
  • Renseignez l’identifiant de votre point de vente CentralPay dans « pointOfSaleId »
  • Renseignez la date souhaitée de la transaction dans « requestedCollectionDate »

Vous pouvez ensuite répéter l’opération à chaque échéance de prélèvement de votre client.

1.2. [Optionnel] Demander au client une validation par SMS

  • Pour plus de sécurité, vous pouvez configurer un OTP pour la validation de chaque SDDTransaction : un OTP sera alors généré à la création et envoyé à votre client par SMS. Un sddTransactionId sera également généré à la création
  • Par défaut, la validation des SDDTransaction est automatique
  • Cette étape est nécessaire que si vous avez configuré une validation OTP pour la SDDTransaction
  • Récupérer auprès de votre client son code secret
  • Nous le transmettre, ainsi que le sddTransactionId
  • Par cette action, la SDDTransaction sera considéré comme validé et sera donc effectuée

2. Transactions SDD depuis les modèles d’abonnement « subscription »

2.1. Création

Vous devez d’abord créer un Customer contenant au moins un Mandate.

Ensuite, le service d’abonnement (Subscription) vous permettra d’initier facilement un paiement par abonnement en se basant sur un modèle d’abonnement créé en amont depuis l’API CentralPay ou le Portail Marchand.

2.2. Cas d’intégration spécifiques

  • Si le premier paiement de l’abonnement doit être d’un montant supérieur aux échéances suivantes (ex: frais d’inscription), vous pouvez d’abord initier une SDD Transaction seule, puis renseigner une date de démarrage (startingDate) dans l’objet Subscription
  • Si vous souhaitez simplement faire démarrer un abonnement à une date précise (ex : date d’entrée en vigueur de votre contrat), vous pouvez renseigner une date de démarrage (startingDate) dans l’objet Subscription

3. Transactions SDD en paiement fractionné « Installment »

3.1. Création

Vous devez d’abord créer un Customer contenant au moins un Mandate.

Ensuite, le service de paiement fractionné (Installment) vous permettra d’initier facilement un paiement fractionné en se basant sur les éléments renseignés dans votre requête.

R-transaction SDD

1. Remboursement de prélèvement SEPA

Vous pouvez rembourser une SDD Transaction si celle-ci est CLEARED via le service Refund ou depuis le détail de la SDD Transaction dans le Portail Marchand. Vous pouvez initier un remboursement total ou partiel en renseignant un montant.

Votre client recevra les fonds sur son compte bancaire sous 24 à 48 heures ouvrés après l’opération. Votre compte de paiement est lui débité immédiatement, il doit donc être solvable pour pouvoir réaliser l’opération.

Vous ne pouvez pas annuler un remboursement une fois celui-ci réalisé.

2. Rejet et contestations de prélèvement SEPA

Les rejets et contestations de prélèvements SEPA sont émis par les banques de vos clients. Ils sont représentés dans votre compte de paiement CentralPay par les opérations « SDD Transaction Reversal ».

Un rejet de prélèvement SEPA est émis par la banque avant la mise à disposition des fonds au créancier (sous 2 à 5 jours). Voici les principaux motifs de rejet des prélèvements SEPA Core :

  • Provisions insuffisantes : le compte bancaire du débiteur ne dispose pas de fonds suffisants pour réaliser l’opération
  • Compte clôturé : le compte bancaire du débiteur a été fermé
  • Coordonnées bancaires incorrectes : l’IBAN ou BIC utilisé est incorrect, ou le compte n’est pas en devise EUROS

Une contestation de prélèvement SEPA peut être émise par le débiteur jusqu’à 13 mois après l’opération. C’est le principal facteur de risque financier de ce moyen de paiement. Voici les principaux motifs de contestation des prélèvements SEPA Core :

  • Contestation de l’opération (sous 8 semaines max) : le mandat SEPA est valide, mais le client conteste l’opération auprès de sa banque pour quelconque motif. L’opération est entièrement remboursée et des frais de contestation sont applicables au créancier. Le délai est de 70 jours pour les banques hors de l’Union européenne ou de l’Espace Économique Européen
  • Contestation pour absence de mandat (sous 13 mois max) : le mandat SEPA n’est pas valide (absence de mandat, mauvais signataire…), le client conteste les opérations réalisées. Les opérations sont entièrement remboursées et des frais de contestation sont applicables au créancier

Pour en savoir plus, consultez la liste complète des codes de rejets et contestation de prélèvement SEPA.

Retours, statuts et webhooks

1. Retours liés aux prélèvements SEPA

Lorsqu’une transaction SDD (prélèvement SEPA) est rejetée, la banque de votre client adresse un code de rejet permettant d’en identifier la cause. Il faut principalement différencier les rejets (à l’initiative de la banque, ils sont reçus rapidement) des contestations (à l’initiative du client, elles peuvent être reçues plusieurs semaines ou mois après la transaction) :

Contestations
MD06 Opération contestée par le débiteur (peut être reçu jusqu’à 8 semaines après la transaction)
MD01 Contestation pour absence de mandat (peut être reçu jusqu’à 13 mois après la transaction)
SL01 ICS marchand blacklisté par le client via sa banque
MS02Raison non communiquée (peut inclure des contestations ou des rejets)
Rejets
AM04 Provisions insuffisantes
Tout autre codeRejets techniques divers (compte clôturé, bloqué, IBAN non atteignable…)

👉 Consultez la liste complète des codes de rejet SDD ➝

2. Statuts liés aux prélèvements SEPA

Consultez les Statuts des SDD Transaction ➝

Consultez les Statuts des Mandates ➝

Consultez les Statuts des bankAccount ➝ (à venir)

Consultez les Statuts des Subscription ➝

Consultez les Statuts des Installment ➝

3. Webhooks liés aux prélèvements SEPA

Consultez les Webhooks des SDD Transaction ➝

Consultez les Webhooks des Mandates ➝

Consultez les Webhooks des bankAccount ➝

Consultez les Webhooks des Customer ➝

Consultez les Webhooks des Subscription ➝

Consultez les Webhooks des Installment ➝

SEPA direct debit transaction

Articles

  • General information
  • SEPA Creditor ID
  • Bank account statement
  • Creating a SEPA direct debit mandate
  • Direct Debit transactionsddTransaction
  • SDD R-Transactionrefund / sddTransactionReversal
  • Responses, statuses, and webhooks

General information

The SEPA Direct Debit (or “SDD”) allows a creditor (merchant) to collect an amount owed directly from the debtor’s (customer’s) account. It is primarily intended for recurring payments (subscriptions or installment payments) but may, in certain cases, be used for one-time payments (for example, to settle invoices between businesses).

Since it is issued at the creditor’s initiative, it requires prior authorization from the debtor. The merchant therefore prepares a “SEPA Direct Debit Mandate” specifying the terms of the direct debit and the bank details of both parties, which the debtor must sign.

1. The two types of SEPA direct debits

There are two types of SEPA direct debits:

  • The SEPA “CORE” direct debit: the most widely used type, it allows creditors to debit the accounts of both individuals and legal entities. The SEPA direct debit mandate is drawn up and signed by both parties without any specific restrictions. However, the debtor is protected and may dispute a CORE direct debit with their bank within 8 weeks without providing a reason.
  • The SEPA “B2B” direct debit: reserved for direct debits between businesses. The SEPA direct debit mandate is printed, signed, and then must be submitted by the debtor to their bank. The onboarding process thus requires significant action on the part of the debtor and validation by their bank. However, direct debits initiated using this type of mandate cannot be disputed.
    CentralPay does not offer this “B2B” SEPA direct debit service

2. Risks of rejections and contests

Since the SEPA Direct Debit is a payment method in which transactions are initiated without strong customer authentication, the risks of rejections and disputes must be taken into account.

👉 See the “R-Transaction SDD” section to learn more about SDD rejections and disputes

3. Important information

  • The SEPA Direct Debit can be used with the vast majority of “checking” accounts in SEPA countries and some in the European Economic Area outside the SEPA zone. This depends on the connectivity of the payees’ banks to the SEPA networks. Special accounts, such as “savings accounts,” are not accessible.
  • SEPA transactions are processed in euros (€) only
  • SEPA transactions are processed on business days only (excluding weekends and holidays). As a result, the time it takes for funds to be received ranges from 2 to 5 days from the date the transaction is initiated.
  • The creditor must notify the debtor of upcoming debits at least 14 days in advance, either by sending a payment schedule, a notice, or an invoice
  • A SEPA direct debit mandate is valid for 36 months after the last transaction processed under that mandate
  • In the case of a SEPA direct debit from a business’s (legal entity’s) bank account, the creditor must ensure that the SEPA direct debit mandate is addressed to and signed by the executive or an authorized representative (manager, accounting department, etc.).
  • The SEPA Direct Debit is particularly well-suited for recurring transactions ranging from 20 to 200 EUR for individual payers and from 20 to 2,000 EUR for corporate payers

SEPA Creditor ID

The SEPA Creditor Identifier (ICS) is a unique reference number that identifies each direct debit issuer. In France, it consists of 13 alphanumeric characters, the first two of which represent the ISO country code (FR for France).

Having an ICS is a mandatory requirement for making direct debits. The creditor must apply to their bank for an ICS. The creditor then retains their ICS, even if they switch banks.

Please provide your ICS to CentralPay when you first sign up so that our teams can enter it into your account.

Bank account statement

To process a SEPA direct debit transaction, you must first create your customer’s (the payer’s) profile and enter their bank account information on the CentralPay platform.

1. Create a “Customer” client profile

  • Collect your customer’s information (email, last name, first name, etc.)
  • Create a Customer client profile
  • Retrieve property customerId from the Customer creation response

2. Create a « bankAccount » bank account

  • Collect your customer’s bank account information (IBAN, BIC, account holder’s name, etc.)
  • Create a bankAccount by entering your client’s customerId
  • Retrieve bankAccountId and identityId from the creation response bankAccount

Creating a SEPA direct debit mandate

After registering the customer’s bank account bankAccount and linking it to their “Customer” profile, you can create a SEPA mandate “mandate” and collect your customer’s electronic signature using a one-time password (OTP) sent via text message.

Prerequisite: You must retrieve the creditorBankAccountId from your CentralPay Merchant Profile that corresponds to your ICS. You can find it in your Merchant Portal by using a profile with Admin privileges: Administration My Merchant Profile Bank accounts

Locate the row containing your ICS in the “IBAN” column, then copy the associated UUID.

1. Creating and signing a new SEPA mandate

1.1. Create a SEPA direct debit:

  • Create a « Mandate »
    • Enter your « creditorBankAccountId »
    • Enter your customer’s « CustomerId »
    • Enter your Unique Mandate Reference (RUM)
    • Specify the type of payment you want to create in the “paymentType” property
    • Enter your customer’s phone number in the “debtorPhone” property
    • Enter your customer’s email address in the “debtorEmail” property
    • Specify your customer’s bank account by entering their “bankAccountId” in the “debtorBankAccountId” property.

  • Once the SEPA direct debit has been set up:
    • Un « mandateId » sera généré
    • The mandate status will be PENDING
    • A 6-digit code (OTP) will be sent to your customer via text message (valid for 15 minutes). You can have the OTP resent.

1.2. Sign a SEPA direct debit authorization:

  • Sign the « Mandate »
    • Collect the 6-digit code from your customer and enter it in the “otp” property
    • Enter the “mandateId” generated when the mandate was created
    • Enter your client’s IP address in the “endUserIp” property
    • The mandate status will then change to “ACTIVE,” and the SEPA mandate in PDF format will be emailed to the customer.

1.3. Flowchart for bank account registration and power of attorney creation

2. Declaration of an existing mandate (migration)

When migrating payment orders that were previously created with another payment service provider, you can disable the SMS OTP signature feature and the option to send SEPA payment orders via email. If this applies to you, please contact our team for more details about this process.

Requirements:

  • Direct debits must have been set up using your SEPA Creditor Identifier (ICS)
  • Power of attorney documents must have been created using your current legal entity
  • The payment orders must have been duly signed and accepted by your debtors
  • Accounts must still be active (less than 36 months since the last transaction)

3. Modifying an existing SEPA mandate

3.1. Possible changes that do not require a new mandate

Certain information may be updated without requiring the signing of a new SEPA direct debit mandate, provided that the debtor is properly notified:

  • Change in the creditor’s name (change in the legal structure of the entity making the deduction)
  • Change to the SEPA Creditor Identifier (ICS)
  • Change to the Unique Mandate Reference (RUM)
  • Change of account or IBAN for the payer within the same bank
  • Change of account/IBAN of the payer following a change of bank

Related endpoints:

  • Edit a Debit Account IBAN
    POST /bankAccount/{bankAccountId}
    Allows you to update the IBAN of a debit account linked to an existing SEPA mandate.
  • Modifying a RUM
    This operation is not possible via the CentralPay APIs. Modifying a RUM requires creating a new mandate (migration).
  • Change the Creditor’s Name
    If there is a change in the legal structure responsible for processing direct debits, a new CentralPay Merchant Profile (Merchant) must be created. Existing mandates will then need to be re-registered under this new profile through a migration process.

3.2. Changes that require a new mandate

The following changes require the creation of a new SEPA direct debit mandate, as they involve a new authorization from the payer:

  • Change of the debtor’s name
  • Change in the date of signing the mandate
  • Change in mandate type: transition from SDD Core to SDD B2B
    Note: This use case is not available in CentralPay services
  • Change in the sampling frequency: from one-time to recurring

3.3. Notification of changes

Notifications of changes must be submitted:

  • From the creditor to the debtor, for any changes initiated by the creditor (ICS, RUM, IBAN, etc.)
  • By the debtor to the creditor, with submission of supporting documentation (e.g., bank account information or identification) for changes to the IBAN or personal information

Direct Debit transaction

Once you have completed the steps to create and sign a mandate, you can create a SEPA Direct Debit transaction (SDD transaction). Each SDD transaction will be linked to the corresponding mandate.

To create SDD transactions, you have several options:

  1. Create individual SDD transactions: to process one or more SDD transactions via API completely on your own
  2. Create SDD transactions using “Subscription” templates: to process X transactions at a frequency defined by a subscription template (for example, €50 per month for 12 months).
  3. Create SDD transactions using the “Installment” payment service: to split a customer receivable into multiple transactions (example: €1,000 to be paid in 3 installments with a down payment of €500).

1. Individual SDD transactions

1.1. Create an “SDDTransaction”

  • Enter the SEPA mandate ID “mandateId”
  • Enter the transaction amount in centimes “amount”
  • Enter “EUR” in the “currency” property
  • Enter your unique transaction ID in the “endToEndIdentification” property
  • Enter the transaction description in the “remittanceInformation” field (this information will appear on your customers’ account statements)
  • Enter your client’s IP address in “endUserIp”
  • Enter your CentralPay point-of-sale ID in the “pointOfSaleId” field
  • Enter the desired transaction date in “requestedCollectionDate”

You can then repeat this process for each of your customer’s recurring payment due dates.

1.2. [Optional] Ask the customer to confirm via text message

  • For added security, you can set up a one-time password (OTP) to validate each SDDTransaction: an OTP will then be generated upon creation and sent to your customer via text message. An sddTransactionId will also be generated upon creation.
  • By default, SDDTransactions are validated automatically
  • This step is required only if you have configured OTP validation for the SDDTransaction
  • Get your client’s secret code from them
  • Send it to us, along with the sddTransactionId
  • As a result of this action, the SDDTransaction will be considered validated and will therefore be processed

2. SDD transactions from “subscription” templates

2.1. Creation

First, you must create a Customer that contains at least one Mandate.

Then, the subscription service (Subscription) will allow you to easily initiate a subscription payment based on a subscription template created in advance via the CentralPay API or the Merchant Portal.

2.2. Specific integration cases

  • If the first subscription payment must be for a higher amount than subsequent payments (e.g., sign-up fee), you can first initiate a one-time SDD transaction, then enter a start date (startingDate) in the Subscription object.
  • If you simply want to start a subscription on a specific date (e.g., the effective date of your contract), you can enter a start date (startingDate) in the Subscription object

3. SDD transaction with “Installment” payment plan

3.1. Creation

First, you must create a Customer that contains at least one Mandate.

Then, the installment payment service (Installment) will allow you to easily initiate an installment payment based on the information provided in your request.

SDD R-Transaction

1. SEPA Direct Debit refund

You can refund an SDD transaction if it has been CLEARED using the Refund service or from the SDD transaction details in the Merchant Portal. You can initiate a full or partial refund by entering an amount.

Your customer will receive the funds in their bank account within 24 to 48 business hours after the transaction. Your payment account is debited immediately, so it must have sufficient funds to complete the transaction.

You cannot cancel a refund once it has been processed.

2. SEPA Direct Debit rejections and contests

SEPA direct debit rejections and contests are issued by your customers’ banks. They are reflected in your CentralPay payment account as “SDD Transaction Reversal” operations.

A SEPA direct debit rejection is issued by the bank before the funds are made available to the creditor (within 2 to 5 days). Here are the main reasons for rejecting SEPA Core direct debits:

  • Insufficient funds: The debtor’s bank account does not have sufficient funds to complete the operation.
  • Account closed: The debtor’s bank account has been closed
  • Incorrect bank account information: The IBAN or BIC provided is incorrect, or the account is not denominated in euros.

A debtor may contest a SEPA direct debit up to 13 months after the transaction. This is the primary source of financial risk associated with this payment method. Here are the main reasons for contesting SEPA Core direct debits:

  • Transaction contested (within a maximum of 8 weeks): The SEPA direct debit is valid, but the customer contests the transaction with their bank for any reason. The transaction is fully refunded, and a contestation fee applies to the creditor. The deadline is 70 days for banks outside the European Union or the European Economic Area.
  • Dispute due to lack of authorization (within 13 months max): The SEPA direct debit is invalid (lack of authorization, incorrect signatory, etc.), and the customer disputes the transactions. The transactions are fully refunded, and dispute fees apply to the creditor.

For more information, see the complete list of SEPA direct debit rejection and contested payment codes.

Responses, statuses, and webhooks

1. Refunds related to SEPA direct debits

When an SDD (SEPA Direct Debit) transaction is rejected, your customer’s bank sends a rejection code that identifies the cause. It is important to distinguish between rejections (initiated by the bank, which are received quickly) and contests (initiated by the customer, which may be received several weeks or months after the transaction):

Disputes
MD06 Transaction disputed by the debtor (may be received up to 8 weeks after the transaction)
MD01 Dispute due to lack of mandate (may be received up to 13 months after the transaction)
SL01 Merchant ICS blacklisted by the customer via their bank
MS02Reason not provided (may include disputes or rejections)
Rejections
AM04 Insufficient provisions
Any other codeVarious technical rejections (account closed, frozen, unreachable IBAN, etc.)

👉 View the complete list of SDD rejection codes ➝

2. Statuses related to SEPA direct debits

Consult SDD Transaction statuses ➝

Consult Mandates statuses ➝

Consult bankAccount statuses ➝ (coming soon)

Consult Subscription statuses ➝

Consult Installment statuses ➝

3. Webhooks related to SEPA direct debits

Consult SDD Transaction Webhooks ➝

Consult Mandates Webhooks ➝

Consult bankAccount Webhooks ➝

Consult Customer Webhooks ➝

Consult Subscription Webhooks ➝

Consult Installment Webhooks ➝

CARD Transaction

Articles

  • Transaction
  • Card
  • Credit
  • Disputes

Transaction

See more about card transactions

jQuery(document).ready( function($) { window.live_6ab3046da9c4d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046da9c4d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046da9c4d.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_6ab3046e02f78 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Card.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046e02f78", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046e02f78.load(); });

Credit

See more about Credit

jQuery(document).ready( function($) { window.live_6ab3046e7a4a3 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Credit.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046e7a4a3", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046e7a4a3.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_6ab3046e95db9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Dispute.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046e95db9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046e95db9.load(); });

CARD Transaction

Articles

  • Transaction
  • Card
  • Credit
  • Disputes

Transaction

See more about card transactions

jQuery(document).ready( function($) { window.live_6ab3046daa42e = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046daa42e", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046daa42e.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_6ab3046e037a7 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Card.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046e037a7", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046e037a7.load(); });

Credit

See more about Credit

jQuery(document).ready( function($) { window.live_6ab3046e7ac35 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Credit.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046e7ac35", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046e7ac35.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_6ab3046e9656d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Dispute.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046e9656d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046e9656d.load(); });

Webhooks

Les webhooks permettent d’adresser des notifications HTTP sur les URL de votre choix en fonction des évènements (events) qui surviennent sur votre profil Marchand CentralPay. Ces évènements correspondent à la création, au changement de donnée ou au changement de statut d’un objet des API CentralPay.

Le service permet ainsi d’avertir en temps réel votre système d’information, dès qu’un évènement intervient sur votre profil Marchand CentralPay. Par exemple, une transaction réussie ou échouée, la création d’un nouvel abonnement (subscription), un nouveau client (customer), la réception d’un impayé… 

Les webhooks sont classés en deux catégories :

  • Liés aux Points de Vente « POS »
  • Liés aux « Comptes »

Le serveur distant doit confirmer la bonne réception de la requête en retournant un code 2XX. Dans le cas contraire, une nouvelle requête sera adressée toutes les 5 min pendant 2h.

Pour s’assurer de la bonne réception des hooks, nous vous conseillons d’utiliser le service Webhook Site. Entrez l’URL donnée par le site et l’adresse mail, et effectuez vos tests. Une fois que vous êtes satisfait des réponses hooks, vous pouvez remplacer l’adresse mail et l’URL par les vôtres et effectuez un nouveau test.

Consultez la liste des webhooks dans la rubrique : Développeurs Webhook notifications

Webhooks

Webhooks let you send HTTP notifications to the URLs of your choice based on events (events) that occur on your CentralPay Merchant profile. These events correspond to the creation, data change, or status change of a CentralPay API object.

The service therefore lets you notify your information system in real time as soon as an event occurs on your CentralPay Merchant profile. For example, a successful or failed transaction, the creation of a new subscription (subscription), a new Customer (customer), the receipt of an unpaid payment…

Webhooks are grouped into two categories:

  • Related to Points of Sale (« POS »)
  • Related to « Accounts »

The remote server must confirm successful receipt of the request by returning a 2XX code. Otherwise, a new request will be sent every 5 min for 2h.

To ensure hooks are received correctly, we recommend using the Webhook Site service. Enter the URL provided by the site and the email address, then run your tests. Once you are satisfied with the hook responses, you can replace the email address and the URL with your own and run a new test.

See the list of webhooks in: Developers Webhook notifications

R-transaction carte

1. Remboursement – refund

Vous pouvez rembourser une Transaction si celle-ci est CLEARED via le service Refund ou depuis le détail de la Transaction dans le Portail Marchand. Vous pouvez initier un remboursement total ou partiel en renseignant un montant.

Votre client recevra les fonds sur sa carte sous 3 à 5 jours ouvrés après l’opération. Votre compte de paiement est lui débité immédiatement, il doit donc être solvable pour pouvoir réaliser l’opération.

Vous ne pouvez pas annuler un remboursement une fois celui-ci réalisé.

⚠️ Si la carte sur laquelle vous tentez d'effectuer le remboursement est expirée ou que le compte a été clôturé, CentralPay ne pourra réaliser de remboursement. Dans ce cas, nous vous invitons à vous rapprocher de votre client pour lui demander un RIB à jour et procéder à un virement SEPA depuis votre banque.

2. Crédit – credit

Vous pouvez créditer la carte d’un client sans transaction initiale depuis le service Credit. Pour cela, il existe plusieurs solutions :

  • Tokeniser une carte via le service cardToken pour ensuite la renseigner dans le service Credit
  • Créer ou rechercher un Customer disposant d’une carte valide, puis renseigner son « customerId » ainsi que son « cardId » dans le service Credit
ℹ️ Ce service n'est disponible que pour des activités spécifiques, contactez CentralPay pour en savoir plus.

3. Contestation – Dispute

Lorsqu’un porteur de carte conteste ou signale une transaction auprès de sa banque, le réseau (Visa, Mastercard, Carte Bancaire, etc.) peut notifier CentralPay afin d’initier une opération de contestation (Dispute).
Cette opération permet de suivre l’état du litige et d’agir selon le type de signal reçu : alerte de fraude, demande d’information, ou chargeback.

Chaque contestation est représentée dans le backoffice CentralPay par une opération distincte (Dispute), liée à la transaction d’origine. Les notifications sont également disponibles via le webhook DISPUTE_CREATED.

Pour tout paiement par carte, un client peut contester une transaction auprès de sa banque dans les délais suivants :

  • 120 jours à compter de la transaction pour les réseaux Visa et Mastercard ;
  • 13 mois à compter de la date d’opération pour le réseau français Carte Bancaire.
ℹ️ En France, la contestation est en principe réservée aux cas de fraude (carte volée, usurpée, utilisation abusive).
Dans d’autres pays européens, elle peut également être utilisée dans le cadre d’un litige commercial (produit non livré, service non conforme, etc.).

1. Alerte de fraude FRAUD_NOTICED

Ce statut correspond à une notification préventive de fraude transmise par le réseau (ex. : fichier TC40 pour Visa).
Il est déclenché lorsque la banque émettrice signale qu’un porteur affirme ne pas être à l’origine de la transaction (carte volée, copiée ou usurpée).

➡️ Aucun remboursement n’est initié à ce stade.
➡️ Ce signal vous permet d’anticiper un chargeback potentiel et de renforcer vos contrôles antifraude.

Bonnes pratiques :

  • Identifier la transaction concernée (montant, pays, carte, date).
  • Vérifier les transactions similaires (même carte, même compte, même IP).
  • Mettre la carte ou le compte en liste noire pour éviter de nouvelles tentatives.
  • Conserver les preuves d’authenticité (logs, preuves de livraison, consentement).
  • Ne pas contacter directement le porteur (le signal vient de sa banque).

2. Demande d’information RETRIEVAL_NOTICED

Ce statut correspond à une demande documentaire émise par la banque du porteur.
Il intervient lorsqu’un client ne reconnaît pas une transaction, sans parler de fraude.

La banque émettrice demande alors à CentralPay de solliciter le marchand pour fournir des éléments de preuve (facture, reçu, preuve de livraison, etc.).

➡️ Une réponse est attendue sous 7 jours.
➡️ Si les éléments sont acceptés, la contestation est clôturée (RETRIEVAL_CLOSE).
➡️ Si aucune réponse n’est transmise, la banque du porteur peut déclencher un chargeback.

3. Contestation officielle CHARGEBACK_NOTICED

Le chargeback correspond à une demande de remboursement formelle initiée par la banque émettrice.
Il peut résulter :

  • d’une fraude confirmée (suite à un FRAUD_NOTICED) ;
  • d’un litige non résolu (suite à un RETRIEVAL_NOTICED) ;
  • ou d’un autre motif reconnu par les réseaux (produit non reçu, montant incorrect, service non conforme, etc.).

Lorsqu’un chargeback est émis :

  • Le montant de la transaction est débité de votre compte de paiement afin de rembourser le porteur.
  • Des frais non remboursables s’appliquent pour chaque contestation reçue, même en cas d’issue favorable.
  • Vous disposez d’un délai de 20 jours calendaires pour répondre à la contestation en fournissant les éléments justificatifs :
    • Preuve de livraison ou d’exécution du service,
    • Preuve du consentement du porteur (obligatoire pour les transactions non 3-D Secure),
    • Autres pièces démontrant la légitimité du paiement.

À défaut de réponse dans le délai imparti, la contestation sera automatiquement perdue.

Une fois votre réponse transmise, la banque émettrice analyse les éléments fournis :

StatutDescription
CHARGEBACK_WONLes preuves ont été jugées suffisantes. Le montant de la transaction vous est recrédité.
CHARGEBACK_LOSTLa contestation est maintenue. Le remboursement au porteur devient définitif.

Card Refund Transaction

1. Refund – refund

You can refund a Transaction if it is CLEARED via the Refund service or from the Transaction details in the Merchant Portal. You can initiate a full or partial refund by entering an amount.

Your customer will receive the funds on their card within 3 to 5 business days after the operation. Your payment account is debited immediately, so it must be solvent to perform the operation.

You cannot cancel a refund once it has been processed.

⚠️ If the card to which you are attempting to issue the refund has expired or the account has been closed, CentralPay will not be able to process the refund. In this case, we invite you to contact your customer to request up-to-date bank details and proceed with a SEPA transfer from your bank. 

2. Credit – credit

You can credit a customer’s card without an initial transaction from the Credit service. There are several ways to do this:

  • Tokenize a card via the cardToken service and then enter it into the Credit service
  • Create or search for a Customer with a valid card, then enter their « customerId » and « cardId » into the Credit service
ℹ️ This service is only available for specific activities; contact CentralPay for more information.

3. Chargeback – Dispute

When a cardholder disputes or reports a transaction to their bank, the network (Visa, Mastercard, Carte Bancaire, etc.) may notify CentralPay to initiate a dispute operation (Dispute).
This operation allows you to track the status of the dispute and act according to the type of signal received: fraud alert, information request, or chargeback.

Each dispute is represented in the CentralPay back office by a distinct operation (Dispute), linked to the original transaction. Notifications are also available via the webhook DISPUTE_CREATED.

For any card payment, a customer can dispute a transaction with their bank within the following timeframes:

  • 120 days from the transaction for Visa and Mastercard networks;
  • 13 months from the operation date for the French Carte Bancaire network.
ℹ️ In France, disputes are generally reserved for cases of fraud (stolen, usurped, or misused card).
In other European countries, they can also be used in the context of a commercial dispute (product not delivered, non-compliant service, etc.).

1. Fraud Alert FRAUD_NOTICED

This status corresponds to a preventive fraud notification transmitted by the network (e.g., TC40 file for Visa).
It is triggered when the issuing bank reports that a cardholder claims not to have originated the transaction (stolen, copied, or usurped card).

➡️ No refund is initiated at this stage.
➡️ This signal allows you to anticipate a potential chargeback and strengthen your anti-fraud controls.

Best practices:

  • Identify the transaction concerned (amount, country, card, date).
  • Check for similar transactions (same card, same account, same IP).
  • Blacklist the card or account to prevent new attempts.
  • Retain proof of authenticity (logs, proof of delivery, consent).
  • Do not contact the cardholder directly (the signal comes from their bank).

2. Information Request RETRIEVAL_NOTICED

This status corresponds to a documentary request issued by the cardholder’s bank.
It occurs when a customer does not recognize a transaction, without mentioning fraud.

The issuing bank then asks CentralPay to request the merchant to provide evidence (invoice, receipt, proof of delivery, etc.).

➡️ A response is expected within 7 days.
➡️ If the elements are accepted, the dispute is closed (RETRIEVAL_CLOSE).
➡️ If no response is submitted, the cardholder’s bank may trigger a chargeback.

3. Official Chargeback CHARGEBACK_NOTICED

A chargeback corresponds to a formal refund request initiated by the issuing bank.
It may result from:

  • confirmed fraud (following an FRAUD_NOTICED);
  • an unresolved dispute (following an RETRIEVAL_NOTICED);
  • or another reason recognized by the networks (product not received, incorrect amount, non-compliant service, etc.).

When a chargeback is issued:

  • The transaction amount is debited from your payment account to refund the cardholder.
  • Non-refundable fees apply for each dispute received, even if the outcome is favorable.
  • You have 20 calendar days to respond to the dispute by providing supporting documents:
    • Proof of delivery or service execution,
    • Proof of cardholder consent (mandatory for non-3D Secure transactions),
    • Other documents demonstrating the legitimacy of the payment.

Failure to respond within the allotted time will result in the dispute being automatically lost.

Once your response is submitted, the issuing bank analyzes the provided elements:

StatusDescription
CHARGEBACK_WONThe evidence was deemed sufficient. The transaction amount is re-credited to you.
CHARGEBACK_LOSTThe dispute is maintained. The refund to the cardholder becomes final.

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é.

International wire transfers

International bank transfers are processed through the SWIFT network (unlike the SEPA network for European transfers). These transfers can be initiated from a wide range of countries in euros or other currencies.

It will soon be possible to accept international wire transfers through the SCT Transaction service. Please contact CentralPay if this service is important to the growth of your business.

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 ➝

Responses, statuses, and webhooks

1. Refunds related to SEPA direct debits

When an SDD (SEPA Direct Debit) transaction is rejected, your customer’s bank sends a rejection code that identifies the cause. It is important to distinguish between rejections (initiated by the bank, which are received quickly) and contests (initiated by the customer, which may be received several weeks or months after the transaction):

Disputes
MD06 Transaction disputed by the debtor (may be received up to 8 weeks after the transaction)
MD01 Dispute due to lack of mandate (may be received up to 13 months after the transaction)
SL01 Merchant ICS blacklisted by the customer via their bank
MS02Reason not provided (may include disputes or rejections)
Rejections
AM04 Insufficient provisions
Any other codeVarious technical rejections (account closed, frozen, unreachable IBAN, etc.)

👉 View the complete list of SDD rejection codes ➝

2. Statuses related to SEPA direct debits

Consult SDD Transaction statuses ➝

Consult Mandates statuses ➝

Consult bankAccount statuses ➝ (coming soon)

Consult Subscription statuses ➝

Consult Installment statuses ➝

3. Webhooks related to SEPA direct debits

Consult SDD Transaction Webhooks ➝

Consult Mandates Webhooks ➝

Consult bankAccount Webhooks ➝

Consult Customer Webhooks ➝

Consult Subscription Webhooks ➝

Consult Installment Webhooks ➝

Retours, statuts et webhooks

1. Codes de retour liés à la création de profil marchand

La création d’un profil marchand via l’API d’enrôlement déclenche un processus automatisé permettant à CentralPay de collecter et valider les informations nécessaires à l’ouverture du profil.

En cas d’échec, une réponse d’erreur HTTP est retournée immédiatement à l’appel API, précisant le champ en erreur et la nature du rejet (donnée manquante, incohérente ou invalide).

⚠️ Il n'existe pas de table de codes de retour centralisée pour ces erreurs, car elles sont liées aux validations dynamiques effectuées par champ. L'erreur retournée est toujours structurée dans le corps de réponse et permet de corriger précisément le point bloquant.

2. Statuts liés aux enrôlements

Consultez les Statuts Merchant Enrollment ➝

3. Webhooks liés aux enrôlements

Consultez les Webhooks d’Onboarding ➝

Responses, articles of association, and webhooks

1. Return codes related to creating a merchant profile

Creating a merchant profile via the enrollment API triggers an automated process that allows CentralPay to collect and validate the information needed to open the profile.

If the request fails, an HTTP error response is immediately returned to the API call, specifying the field that caused the error and the nature of the rejection (missing, inconsistent, or invalid data).

⚠️ There is no centralized table of return codes for these errors, because they are linked to the dynamic validations performed on a per-field basis. The error returned is always structured within the response body and allows you to precisely correct the issue causing the blockage. 

2. Articles of association related to enrollments

View the Merchant Enrollment Terms and Conditions ➝

3. Webhooks related to enrollments

View the Onboarding Webhooks ➝

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

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

Marchand Partenaire

CentralPay propose deux modèles distincts pour les partenaires souhaitant accompagner des marchands CentralPay dans leur intégration technique : le Partenaire Technique et le Partenaire Intégrateur. Dans les deux cas, les marchands restent en relation contractuelle directe avec CentralPay ; les modalités d’accès API, de mutualisation et de facturation diffèrent selon le modèle.

Selon la nature de leur activité, ces partenaires peuvent également être immatriculés à l’ORIAS en qualité d’IOBSP (mandataire – “MOBSP”) afin d’encadrer juridiquement certaines activités de présentation et d’accompagnement des marchands lors de leur entrée en relation avec CentralPay. Ce statut ne confère aucun droit d’accès aux fonds ni aucun pouvoir d’exécution d’opérations de paiement.

1. Partenaire Intégrateur

Le Partenaire Intégrateur est un prestataire technique mandaté par un ou plusieurs marchands standards. Il intervient en leur nom et pour leur compte, afin de faciliter leur connexion aux services CentralPay.

Chaque marchand standard dispose de son propre point de vente (POS), de son propre profil Marchand CentralPay, et signe directement ses documents de souscription et son contrat (CCSP) avec CentralPay. L’Intégrateur ne détient aucun droit contractuel sur les comptes ou fonds du marchand.

1.1. Responsabilités et fonctionnement

  • L’Intégrateur utilise les accès API délégués par chaque marchand (identifiants dédiés “Intégrateur”), dans le cadre d’un mandat contractuel entre l’Intégrateur et le marchand
  • Il peut réaliser des actions techniques nécessaires à l’intégration et au RUN (paramétrage, suivi d’Instructions Techniques, maintenance), exclusivement via ces accès, sans pouvoir consulter les soldes ni initier / modifier / annuler une opération de paiement
  • Les parcours sont généralement réalisés en “1 pour 1” : un client (payeur) règle un seul marchand, chaque marchand conservant son environnement et ses accès propres

1.2. Facturation

  • Chaque marchand est facturé directement par CentralPay au titre des services souscrits dans son CCSP
  • Le Partenaire Intégrateur n’intervient à aucun moment dans les flux financiers

1.3. Pour aller plus loin sur le modèle d’Intégrateur

  • Le Partenaire Intégrateur intervient exclusivement en soutien technique des marchands standards, sans jamais agir comme intermédiaire de paiement ni représentant de CentralPay. Son rôle se limite à l’intégration, au support fonctionnel de niveau 1 et à la maintenance des interfaces
  • Chaque marchand conserve l’entière maîtrise de son profil Marchand CentralPay : encaissements, versements, solde, paramétrage des accès API, gestion documentaire et contractuelle
  • CentralPay peut mettre à disposition de l’intégrateur un accès portail strictement limité à l’administration technique (suivi d’Instructions Techniques, paramétrages, opérations nécessaires au RUN). Cet accès n’autorise pas la consultation des soldes, ni la manipulation de transactions financières, ni l’initiation/modification/annulation d’opérations de paiement, ni la modification d’IBAN ou de paramètres financiers
  • Pour permettre la connexion, le marchand délègue à l’intégrateur des identifiants dédiés, avec des droits strictement limités et révocables à tout moment. Toutes les actions techniques sont réalisées via ces identifiants, sous la responsabilité du marchand
  • Si le Partenaire Intégrateur est immatriculé à l’ORIAS en qualité d’IOBSP (mandataire – “MOBSP”) et qu’un cadre contractuel distinct le prévoit, il peut accompagner le marchand dans son entrée en relation (ex. : transmission d’un lien d’inscription, assistance à la constitution du dossier). CentralPay reste seule décisionnaire de l’entrée en relation, de l’ouverture de compte et des contrôles réglementaires
  • À défaut, le Partenaire Intégrateur peut orienter le marchand vers CentralPay pour toute question contractuelle, tarifaire ou réglementaire liée aux services de paiement

2. Partenaire Technique

Le Partenaire Technique est un acteur qui développe une solution mutualisée (ex. : marketplace, plateforme SaaS), à destination de plusieurs marchands standards. Il opère depuis un ou plusieurs points de vente ouverts à son nom dans CentralPay, auxquels des marchands peuvent être rattachés.

Les opérations sont traitées par CentralPay au moyen d’un mécanisme interne de “Compte de Traitement” (utilisé par CentralPay pour recevoir et traiter temporairement les fonds en vue de leur transmission au bénéficiaire final). Le Partenaire Technique n’y dispose d’aucun droit de disposition : il transmet uniquement des données commerciales et conserve une visibilité sur les flux rattachés à ses points de vente, sans jamais pouvoir déclencher un transfert.

2.1. Responsabilités et fonctionnement

  • Le Partenaire Technique dispose de ses propres accès API délivrés par CentralPay
  • Il peut transmettre des Instructions Techniques (données commerciales, panier, commission, références, évènements logistiques…), et suivre les transactions rattachées aux marchands liés à ses points de vente
  • Il n’a aucun accès aux fonctionnalités de transfert (notamment l’endpoint transfer) et ne peut pas accéder aux soldes ni effectuer de versements : CentralPay décide et exécute les opérations et mises à disposition de fonds
  • Dans ce cadre, CentralPay peut gérer des paiements en mode “1 pour X” : un client (payeur) peut régler plusieurs marchands simultanément, CentralPay assurant ensuite la ventilation/mise à disposition au bénéfice des marchands

2.2. Facturation

  • Le Partenaire Technique est facturé par CentralPay en fonction des opérations réalisées via son (ou ses) point(s) de vente, conformément aux conditions prévues au CCSP et aux documents de souscription applicables
  • Lorsqu’une commission est prévue, CentralPay peut, sur la base des données commerciales transmises et selon les règles contractuelles, ventiler les flux : la part de commission est alors créditée sur le compte de commission du Partenaire Technique, sans que celui-ci ne détienne de fonds de tiers

Pour aller plus loin sur le modèle de Partenaire Technique

  • Le Partenaire Technique développe une solution mutualisée (ex. : marketplace, plateforme SaaS) intégrant CentralPay. Il opère depuis un ou plusieurs points de vente ouverts à son nom, qui accueillent les transactions de marchands standards associés
  • Chaque marchand associé contracte directement avec CentralPay (CCSP et documents de souscription) et dispose de son propre profil Marchand CentralPay
  • Le Partenaire Technique transmet à CentralPay les données commerciales des transactions (montant commercial, références, commission, évènements logistiques…). Ces données ne déclenchent aucun effet financier automatique : CentralPay analyse, contrôle, puis décide de traiter l’opération et d’initier les mises à disposition nécessaires
  • CentralPay peut décider d’appliquer une retenue temporaire et/ou une date de déblocage pour la mise à disposition des fonds au bénéfice d’un marchand (ex. : jusqu’à une livraison/expédition), selon sa politique de risque, les règles des réseaux et ses obligations réglementaires
  • Le Partenaire Technique ne détient jamais de fonds de tiers, ne donne aucun ordre de paiement, et ne peut intervenir dans les versements ou la tenue de compte. Il n’agit ni pour compte de tiers ni au nom de CentralPay
  • L’accès du Partenaire Technique est limité à une vue et à des fonctionnalités strictement nécessaires à la transmission et au suivi d’Instructions Techniques ; il n’existe aucun accès au “Compte de Traitement” en tant que compte (pas de droit d’exécution, pas de droit de disposition, pas d’accès aux soldes)
  • En cas d’immatriculation ORIAS en qualité d’IOBSP (mandataire – “MOBSP”) et si un cadre contractuel distinct le prévoit, le Partenaire Technique peut accompagner les marchands dans leur entrée en relation (transmission de lien d’inscription, assistance documentaire), sous réserve de validation préalable par CentralPay

3. Règles de conformité communes

Pour les deux modèles :

  • Le Partenaire n’est pas prestataire de services de paiement, ne dispose d’aucun pouvoir d’exécution d’opérations de paiement et ne détient aucun fonds de tiers dans le cadre des services de paiement
  • Les comptes, la mise à disposition des fonds, les versements et la protection des fonds sont gérés et encadrés par CentralPay, en sa qualité de PSP
  • Aucune délégation réglementaire d’exécution de service de paiement (type agent PSP) n’est accordée à ces partenaires

3.1. Relation contractuelle avec les marchands

Le Partenaire (technique ou intégrateur) conserve sa propre relation commerciale avec ses utilisateurs et reste responsable des services proposés sur sa plateforme. Il définit librement les conditions générales d’utilisation applicables à ses services.

De leur côté, les marchands associés :

  • Ouvrent leur propre profil Marchand CentralPay, lors d’un parcours d’enrôlement individualisé
  • Signent directement avec CentralPay le CCSP et les documents de souscription applicables (dont la désignation éventuelle d’un partenaire)
  • Reconnaissent que le partenaire pourra réaliser certaines actions techniques dans le cadre de son intégration (ex. : transmission d’une commande, remontée de panier, suivi d’Instructions Techniques), sans que cela ne constitue un ordre de paiement ni un accès aux fonds

CentralPay agit alors directement auprès du marchand associé pour :

  • la création et la gestion de son compte (signature électronique, affectation des POS, rattachement au partenaire)
  • le traitement réglementaire des justificatifs transmis (KYC/KYB, lutte contre le blanchiment et le financement du terrorisme)
  • la mise à jour documentaire ou les vérifications complémentaires nécessaires à la bonne exécution des services de paiement

L’ensemble de cette organisation repose sur un dispositif contractuel strictement balisé :

  • Le partenaire signe un contrat dédié avec CentralPay, encadrant son rôle et ses droits d’accès (API/portail) et, le cas échéant, les modalités de commissionnement
  • Les marchands associés signent directement leurs documents contractuels CentralPay (CCSP et souscription), dans lesquels leur association au partenaire peut être précisée
  • Les conditions générales du partenaire s’appliquent uniquement à l’usage de sa propre plateforme. Elles ne peuvent ni interférer avec les services de paiement CentralPay, ni se substituer aux documents contractuels CentralPay

4. Déclaration ORIAS (IOBSP / “MOBSP”)

Un Partenaire Intégrateur ou un Partenaire Technique peut, si son activité le nécessite, être immatriculé à l’ORIAS en qualité d’IOBSP (mandataire – “MOBSP”). Ce statut est distinct de celui d’agent de prestataire de services de paiement (au sens de l’article L.523-1 du Code monétaire et financier).

Cette immatriculation peut permettre, selon le cadre contractuel applicable :

  • De présenter les services de CentralPay et d’assister le marchand dans ses démarches d’entrée en relation
  • D’accompagner la constitution du dossier (sans jamais se substituer aux contrôles réglementaires réalisés par CentralPay)

Ce statut ne modifie en rien les restrictions précédemment énoncées : il ne confère aucun droit sur les fonds et aucun pouvoir d’exécution d’opérations de paiement. CentralPay demeure seul responsable de l’entrée en relation, des contrôles réglementaires et de l’exécution des services de paiement.

Articles

  • Déclaration MOBSP (Orias)

Déclaration MOBSP (Orias)

ℹ️ Avant de lire cette page, veuillez consulter la rubrique dédiée à l'entrée en relation pour les partenaires.

Les partenaires CentralPay basés en France opèrent avec le statut d’intermédiaires en opérations de banque et en service de paiement (IOBSP), plus précisément en tant que Mandataires en Opérations de Banques et Services de Paiement (MOBSP).

Pour devenir partenaire MOBSP de CentralPay, vous devez vous déclarer à l’ORIAS. CentralPay devra ensuite vous déclarer en tant que son mandataire. Votre partie peut être réalisée en quelques heures, celle de CentralPay prend quelques jours. L’ORIAS peut quant à elle prendre jusqu’à deux mois pour examiner votre demande.

Bien que ce processus vous incombe, CentralPay peut vous assister en cas de besoin. Contactez notre service client en cas de besoin.

1. Préparez vos données

1.1. Obtenez votre attestation de mandat

Après avoir signé votre contrat de partenariat avec CentralPay :

  1. Envoyez un e-mail à notre service client qui inclut votre raison sociale et votre numéro SIREN
  2. CentralPay vous répondra avec votre attestation de mandat. Vous aurez besoin de ce document pour l’étape 3.3.

1.2. Préparez vos documents justificatifs

Lors de l’étape 3.3 du processus d’inscription, vous devrez fournir les pièces justificatives suivantes :

  • KBIS datant de moins de trois mois
  • Justificatif d’aptitude professionnelle : diplôme dans une école de commerce ou de gestion agréée ou certification RNCP (NCF 122, 128, 313 ou 314, niveaux 7 à 5) ou reconnaissance par le CIEP pour les diplômes étrangers

Si vous ne disposez pas d’un justificatif d’aptitude professionnelle accepté par l’Orias, envoyez un email à notre service client. CentralPay peut vous aider à suivre la formation nécessaire.

Voir l’image ci-jointe, faisant référence à la catégorie Niveau III – IOBSP (niveau 3).

2. Créez votre compte ORIAS

2.1. Accéder au formulaire

  1. Allez sur le site de l’ORIAS
  2. Faites défiler vers le bas jusqu’à voir la section Comment ça marche ?
  3. Cliquez sur S’inscrire

Vous serez redirigé vers le formulaire d’inscription.

2.2. Saisir les informations

  1. Entrez votre numéro SIREN
  2. Saisissez les informations sur votre entreprise. Assurez-vous de vous inscrire en tant que personne morale / entité juridique
  3. Saisissez les informations de votre représentant légal
  4. Saisissez les coordonnées de votre représentant légal
  5. Saisissez les coordonnées de votre entreprise, y compris votre site web si vous en avez un
  6. Entrez l’adresse de votre entreprise
  7. Vérifiez toutes les informations que vous avez saisies, puis cliquez sur Valider

2.3. Connectez-vous à votre compte ORIAS

Vérifiez votre boîte de réception pour un email de l’ORIAS (no-reply-orias@orias.fr). L’email contient votre identifiant et un mot de passe provisoire.

  1. Retournez sur le site de l’ORIAS
  2. Cliquez sur Connexion / Login
  3. Saisissez votre identifiant et votre mot de passe provisoire depuis votre email
  4. Suivez les instructions sur votre écran pour modifier votre mot de passe, puis enregistrez-le

Après avoir enregistré votre nouveau mot de passe, vous serez redirigé vers votre espace compte ORIAS

3. Réalisez une nouvelle demande d’inscription

3.1. Enregistrez votre entreprise

  1. Cliquez sur Nouvelle inscription pour démarrer votre inscription, un formulaire apparaît
  2. Choisissez Activité IOB
  3. Choisissez ensuite Mandataire non-exclusif en opérations de banque et en services de paiement (MOBSP)
  4. Cliquez sur Soumettre

3.2. Fournissez des informations complémentaires

  1. Sélectionnez la case précisant que vous complétez votre inscription à titre de Mandataire non exclusif en opérations de banque et en services de paiement
    • Si un autre type d’inscription est spécifié, utilisez le bouton Précédent de votre navigateur pour revenir à la page précédente et réessayez.
  2. Pour la première question, choisissez la réponse : Je déclare que l’on ne me confie pas de fonds
  3. Pour la deuxième question, choisissez la réponse : Accessoire, indiquant à l’ORIAS que les services financiers ne sont pas l’activité principale de votre entreprise
  4. Pour la troisième question, choisissez la réponse : Oui, indiquant à l’ORIAS que votre entreprise propose du crédit (ou d’autres services bancaires et de paiement) uniquement à titre de service secondaire
  5. Cliquez sur Aller à l’étape « Pièces justificatives »

3.3. Fournissez vos documents justificatifs

  1. Soumettez votre KBIS
  2. Soumettez votre mandat d’attestation, qui est le certificat de mandat de l’étape 1.1
  3. Soumettez votre Capacité professionnelle pour « vous » (Niveau I IOBSP), qui constitue votre preuve d’aptitude professionnelle de l’étape 1.2.
  4. Cliquez sur Aller à l’étape suivante

3.4. Payez votre inscription

La dernière étape consiste à payer votre inscription.

  1. Notez que vous payez pour l’enregistrement de Mandataire non exclusif en opérations de banque et en services de paiement. Sans payer les frais, votre inscription ne peut être finalisée
  2. Choisissez de payer avec votre Carte bancaire, ou cliquez sur Choisir un autre mode de paiement pour payer par Virement (virement) ou Chèque (chèque)
  3. Après avoir payé, cliquez sur Télécharger la facture pour télécharger votre reçu
  4. Cliquez sur Terminer la demande d’inscription pour finaliser votre inscription
  5. Vous recevrez votre numéro d’inscription ORIAS par e-mail, confirmant que votre inscription est terminée. Envoyez ce numéro au service client de CentralPay par email

4. CentralPay vous enregistre en tant que MOBSP

Après avoir envoyé à CentralPay votre numéro d’enregistrement Orias par email, CentralPay vous enregistre en tant que Mandataire non exclusif en opérations de banque et en services de paiement (MOBSP).

5. L’ORIAS examine votre candidature

L’ORIAS examine vos documents et votre candidature pour s’assurer que votre dossier est entièrement conforme. L’ORIAS vous informera de sa décision finale par email. Si elle est approuvée, l’e-mail contient également la date à laquelle votre statut de MOBSP prendra effet.

N’hésitez pas à contacter l’ORIAS par téléphone (09.69.32.59.73) ou par email (contact@orias.fr) si vous ne recevez pas à temps les informations concernant votre candidature.

6. Mettez à jour vos mentions légales

Après avoir reçu l’agrément de l’ORIAS et être devenu MOBSP, assurez-vous de mettre à jour vos mentions légales. Ajoutez quelque chose de similaire à l’exemple suivant au pied de page de votre site Web, dans votre page de mentions légales et partout où vous distribuez ou vendez des services de paiement.

[Raison sociale], société immatriculée au RCS de [ville d’enregistrement] sous le numéro [numéro RCS], et inscrite au Registre unique des Intermédiaires en Assurance, Banque et Finance sous le numéro d’immatriculation [numéro d’enregistrement ORIAS] en qualité de Mandataire non exclusif en opérations de banque et en services de paiement.

Partner Merchant

CentralPay offers two distinct models for partners wishing to assist CentralPay merchants with their technical integration: the Technical Partner and the Integration Partner. In both cases, merchants remain in a direct contractual relationship with CentralPay; the terms regarding API access, resource sharing, and billing differ depending on the model.

Depending on the nature of their business, these partners may also be registered with ORIAS asIOBSPs (intermediaries—“MOBSPs”) in order to provide a legal framework for certain activities involving the introduction andsupport of merchants during onboarding with CentralPay. This article of association does not confer any right of access to funds or any authority to execute payment transactions.

1. Integration Partner

An Integration Partner is a technical service provider contracted by one or more standard merchants. It acts on their behalf and for their account to facilitate their connection to CentralPay services.

Each standard merchant has its own Point of Sale (POS), its own CentralPay Merchant Profile, and signs its application documents and contract (CCSP) directly with CentralPay. The Integrator has no contractual rights to the merchant’s accounts or funds.

1.1. Responsibilities and Operations

  • The Integrator uses the API access credentials delegated by each Merchant (dedicated “Integrator” credentials) under a contractual agreement between the Integrator and the Merchant
  • He or she may perform the technical tasks necessary for Integration and RUN (configuration, following technical instructions, maintenance), exclusively through these access points, without being able to view account balances or initiate, modify, or cancel a payment transaction.
  • Transactions are generally conducted on a “one-to-one” basis: a customer (Payer) pays a single Merchant, with each Merchant retaining its own environment and access points.

1.2. Billing

  • Each Merchant is billed directly by CentralPay for the services subscribed to in their CCSP
  • The Integration Partner does not get involved in the financial flows at any time

1.3. To learn more about the Integrator model

  • The Integration Partner provides technical support exclusively to standard merchants and never acts as a payment intermediary or representative of CentralPay. Its role is limited to integration, Level 1 functional support, and interface maintenance.
  • Each merchant retains full control over their CentralPay Merchant Profile: collections, payouts, balance, API access settings, and document and contract management
  • CentralPay may provide the integrator with portal access strictly limited to technical administration (monitoring of Technical Instructions, configuration settings, and operations necessary for RUN). This access does not allow the viewing of balances, the manipulation of financial transactions, the initiation, modification, or cancellation of payment transactions, or the modification of IBANs or financial parameters.
  • To enable the connection, the merchant provides the integrator with dedicated credentials, which have strictly limited permissions and can be revoked at any time. All technical actions are performed using these credentials, under the merchant’s responsibility.
  • If the Integration Partner is registered with ORIAS as an IOBSP (Intermediary – “MOBSP”) and a separate contractual framework provides for it, they may assist the Merchant in onboarding (e.g., providing a registration link, assisting with the onboarding process). CentralPay retains sole discretion regarding onboarding, account opening, and regulatory compliance checks.
  • Otherwise, the Integration Partner may refer the Merchant to CentralPay for any contractual, pricing, or regulatory questions related to payment services

2. Technical Partner

A Technical Partner is an entity that develops a shared solution (e.g., marketplace, SaaS platform) intended for multiple standard merchants. It operates through one or more Points of Sale (POS) registered under its name in CentralPay, to which merchants can be linked.

Transactions are processed by CentralPay through an internal “Technical Partner Account” mechanism (used by CentralPay to temporarily receive and process funds prior to their transfer to the final Beneficiary). The Technical Partner has no right to dispose of these funds: it merely transmits commercial data and maintains visibility into the cash flows associated with its POSes, without ever being able to initiate a transfer.

2.1. Responsibilities and Operations

  • The Technical Partner has its own API credentials issued by CentralPay
  • It can transmit technical instructions (sales data, shopping cart, commission, product codes, logistics events, etc.) and track transactions associated with Merchants linked to its Point of Sale (POS) locations
  • He has no access to transfer features (including the endpoint transfer) and cannot view balances or make Payouts: CentralPay decides on and executes transactions and fund transfers.
  • In this context, CentralPay can process “1-for-X” payments: a customer (payer) can pay multiple Merchants simultaneously, and CentralPay then handles the allocation and disbursement of funds to the Merchants.

2.2. Billing

  • CentralPay bills the Technical Partner based on the transactions processed through its Point of Sale (POS) systems, in accordance with the terms set forth in the CCSP and the applicable subscription documents.
  • When a commission is applicable, CentralPay may, based on the transaction data provided and in accordance with the terms of the agreement, allocate the funds: the commission portion is then credited to the Technical Partner’s Commission Account, without the Technical Partner holding any third-party funds

To learn more about the Technical Partner model

  • The Technical Partner develops a shared solution (e.g., marketplace, SaaS platform) that integrates CentralPay. It operates through one or more Points of Sale (POS) registered in its name, which process transactions from affiliated standard merchants.
  • Each participating merchant enters into a contract directly with CentralPay (CCSP and subscription documents) and has its own CentralPay Merchant Profile
  • The Technical Partner transmits transaction data (transaction amount, reference numbers, commission, logistics events, etc.) to CentralPay. This data does not trigger any automatic financial action: CentralPay analyzes and verifies the data, then decides whether to process the transaction and initiate the necessary fund transfers.
  • CentralPay may decide to impose a temporary hold and/or set a Release date for the funds to be made available to a Merchant (e.g., pending delivery or shipment), in accordance with its risk policy, network rules, and regulatory obligations.
  • The Technical Partner never holds third-party funds, does not issue any payment orders, and cannot intervene in payouts or account management. It acts neither on behalf of third parties nor in the name of CentralPay.
  • The Technical Partner’s access is limited to the views and features strictly necessary for the transmission and tracking of Technical Instructions; there is no access to the “Technical Partner Account” as an account (no right of execution, no right of disposal, no access to balances)
  • In the event of ORIAS registration as an IOBSP (intermediary – “MOBSP”) and if a separate contractual framework so provides, the Technical Partner may assist merchants in onboarding (providing a registration link, assisting with documentation), subject to prior approval by CentralPay

3. Common Compliance Rules

For both models:

  • The Partner is not a Payment Service Provider (PSP), has no authority to execute payment transactions, and does not hold any third-party funds in connection with payment services
  • Accounts, the provision of funds, payouts, and the protection of funds are managed and overseen by CentralPay in its capacity as a payment service provider (PSP)
  • No regulatory delegation of authority to provide payment services (such as a PSP agent) is granted to these partners

3.1. Contractual Relationship with Merchants

The Partner (whether a technical partner or integration partner) maintains its own business relationship with its users and remains responsible for the services offered on its platform. It is free to define the terms and conditions of use applicable to its services.

For their part, the affiliated merchants:

  • Create their own CentralPay Merchant Profile as part of a personalized Enrollment process
  • Sign the CCSP and the applicable subscription documents (including the designation of a partner, if applicable) directly with CentralPay
  • Acknowledge that the partner may perform certain technical actions as part of its integration (e.g., submitting an order, submitting a shopping cart, following technical instructions), without this constituting a payment order or access to funds

CentralPay then works directly with the affiliated Merchant to:

  • creating and managing their account (electronic signature, POS assignment, linking to a partner)
  • the regulatory processing of submitted supporting documents (KYC/KYB, anti-money laundering and counter-terrorism financing)
  • updating documentation or conducting additional verifications necessary for the proper execution of payment services

This entire organization is based on a strictly defined contractual framework:

  • The partner signs a dedicated contract with CentralPay that outlines its role and access rights (API/portal) and, if applicable, the commission terms.
  • Affiliated merchants sign their CentralPay contractual documents (CCSP and subscription) directly, in which their affiliation with the partner may be specified
  • The partner’s terms and conditions apply solely to the use of its own platform. They may not interfere with CentralPay’s payment services or supersede CentralPay’s contractual documents.

4. ORIAS Declaration (IOBSP / “MOBSP”)

An Integration Partner or a Technical Partner may, if required by its business activities, be registered with ORIAS as an IOBSP (intermediary—“MOBSP”). This status is distinct from thatof a Payment Service Provider (PSP) agent (as defined in Article L.523-1 of the Monetary and Financial Code).

Depending on the applicable contractual framework, this registration may allow for:

  • To present CentralPay’s services and assist the Merchant with the Onboarding process
  • To assist with the preparation of the application (without ever replacing the regulatory reviews conducted by CentralPay)

This status does not alter the restrictions set forth above in any way: it does not confer any rights to the funds or any authority to execute payment transactions. CentralPay remains solely responsible for onboarding, conducting regulatory checks, and executing payment services.

Articles

  • MOBSP (Orias) Declaration

MOBSP (Orias) Declaration

ℹ️ Before reading this page, please see the section on onboarding for partners.

CentralPay partners based in France operate as intermediaries in banking and payment services (IOBSP), specifically as Intermediaries for Banking and Payment Services (MOBSP).

To become a CentralPay MOBSP partner, you must register with ORIAS. CentralPay will then need to register you as its Intermediary. Your part of the process can be completed in a few hours, while CentralPay’s part takes a few days. ORIAS, for its part, may take up to two months to review your application.

Although this process is your responsibility, CentralPay can assist you if needed. Please contact our customer service department if you need help.

1. Prepare your data

1.1. Get your certificate of appointment

After signing your partnership agreement with CentralPay:

  1. Send an email to our customer service department that includes your company name and SIREN number
  2. CentralPay will respond with your authorization certificate. You will need this document for step 3.3.

1.2. Gather your supporting documents

During Step 3.3 of the registration process, you will need to provide the following supporting documents:

  • Commercial register issued within the last three months
  • Proof of professional qualifications: a degree from an accredited business or management school; an RNCP certification (NCF 122, 128, 313, or 314, levels 7 through 5); or recognition by the CIEP for foreign degrees

If you do not have proof of professional competence accepted by Orias, please send an email to our customer service department. CentralPay can help you complete the necessary training.

See the attached image, which refers to the Level III – IOBSP category (Level 3).

2. Create your ORIAS account

2.1. Access the form

  1. Go to the ORIAS website
  2. Scroll down until you see the  » How Does It Work? » section .
  3. Click  » Sign Up« 

You will be redirected to the registration form.

2.2. Enter the information

  1. Enter your SIREN number
  2. Enter your business information. Be sure to register as a legal entity.
  3. Enter your legal representative’s information
  4. Enter the contact information for your legal representative
  5. Enter your company’s contact information, including your website if you have one
  6. Enter your business address
  7. Check all the information you’ve entered, then click  » Submit. »

2.3. Log in to your ORIAS account

Check your inbox for an email from ORIAS (no-reply-orias@orias.fr). The email contains your username and a temporary password.

  1. Return to the ORIAS website
  2. Click  » Sign In  » /  » Login »
  3. Enter your username and the temporary password provided in your email
  4. Follow the instructions on your screen to change your password, then save it

After saving your new password, you will be redirected to your ORIAS account page

3. Submit a new registration request

3.1. Register Your Business

  1. Click  » New Registration  » to begin the registration process; a form will appear
  2. Select IOB Activity
  3. Next, select  » Non-Exclusive Intermediary for Banking Transactions and Payment Services (MOBSP)« 
  4. Click Submit

3.2. Please provide additional information

  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
    • If a different registration type is specified, use your browser’s Back button to return to the previous page and try again.
  2. For the first question, select the answer:  » I declare that I am not entrusted with any funds. »
  3. For the second question, select the answer:  » Minor, » indicating to ORIAS that financial services are not your company’s primary business activity
  4. For the third question, select the answer: Yes, indicating to ORIAS that your company offers credit (or other banking and payment services) solely as a secondary service
  5. Click  » Go to the ‘Supporting documents’ step »

3.3. Please provide your supporting documents

  1. Submit your Commercial register
  2. Submit your authorization form, which is the authorization certificate from Step 1.1
  3. Submit your Professional Competency for « you » (Level I IOBSP), which serves as your proof of professional competence for Step 1.2.
  4. Click « Go to the next step« 

3.4. Pay your registration fee

The final step is to pay your registration fee.

  1. Please note that you are paying for registration as a non-exclusive Intermediary for banking transactions and payment services. Your registration cannot be finalized without paying the fee.
  2. Choose to pay with your credit card, or click  » Select another payment method  » to pay by Bank transfer or check.
  3. After you’ve paid, click  » Download Invoice  » to download your receipt
  4. Click  » Complete Registration  » to finalize your registration
  5. You will receive your ORIAS registration number by email, confirming that your registration is complete. Please email this number to CentralPay’s customer service department.

4. CentralPay registers you as a MOBSP

After you email your Orias registration number to CentralPay, CentralPay will register you as a non-exclusive Intermediary for banking operations and payment services (MOBSP).

5. ORIAS reviews your application

ORIAS will review your documents and application to ensure that your file is fully compliant. ORIAS will notify you of its final decision via email. If your application is approved, the email will also include the date on which your MOBSP status will take effect.

Please feel free to contact ORIAS by phone (09.69.32.59.73) or email (contact@orias.fr) if you do not receive the information regarding your application in a timely manner.

6. Update your legal notices

After receiving approval from ORIAS and becoming a MOBSP, be sure to update your legal notices. Add something similar to the following example to the footer of your website, to your legal notices page, and anywhere else you distribute or sell payment services.

[Company Name], a company registered with the Trade and Companies Register (RCS) of [City of Registration] under number [RCS number], and listed in the Single Register of Insurance Intermediaries, Banking and Finance under registration number [ORIAS registration number] as a non-exclusive Intermediary for banking transactions and payment services.

SCT Transaction Refund

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_6ab3046f43d3e = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction Refund.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f43d3e", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f43d3e.load(); });

SCT Transaction Refund

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_6ab3046f44638 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction Refund.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f44638", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f44638.load(); });

Portail d'inscription

Le portail d’inscription permet la création d’un profil Marchand CentralPay en assurant les étapes d’entrée en relation : de la création du profil utilisateur, jusqu’à la contractualisation, en passant par la collecte du KYC/KYB. Il interagit avec l’API Onboarding de CentralPay.

Pour les marchands Mandataires, il permet donc de créer facilement des Profils Marchands Participants depuis un portail hébergé par CentralPay, et d’ainsi éviter une intégration complète de l’API Onboarding.

Pour adresser un lien d’inscription à l’un de vos futurs participants, vous pouvez utiliser le service de demande d’enrôlement.

Accès :

Recette Portail d’Inscription
Production Portail d’Inscription

Onboarding Portal

The Onboarding Portal enables the creation of a CentralPay Merchant Profile by handling the steps involved in Onboarding: from creating the User Profile to signing the contract, including the collection of KYC/KYB information. It interfaces with CentralPay’s Onboarding API.

For Intermediary Merchants, this makes it easy to create Participant Merchant Profiles through a portal hosted by CentralPay, thereby avoiding the need for a full Integration of the Onboarding API.

To send a registration link to one of your future participants, you can use the Enrollment request service.

Access:

Recette Onboarding Portal
Production Onboarding Portal

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

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

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 ➝

Responses, statuses, and 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 ➝

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)

Confirmation email

When a card transaction has been successfully completed, CentralPay can send a payment confirmation email to your customer. To do this, you must enable it by configuring the confirmation email settings in your Point of Sale.

This email is sent by default to the email address of the Customer associated with the transaction, but you can enter the receiptEmail value of the transaction if you wish to send it to a different address.

Configuration

The confirmation email has a standardized format displaying the various payment details; however, you can configure several parameters from the Merchant Portal.

  1. Sender email address: Configuration from the Point of Sale
  2. Sender name: Configuration from the Point of Sale
  3. Your logo: Configuration from the Point of Sale
  4. Point of Sale name: Configuration from the Point of Sale
  5. Footer text: Configuration from the Configuration Payment confirmation email Create entry
  6. Display language: Enter the « endUserLanguage » value in the Transaction request (English by default)

Paiements récurrents

Articles

  • Abonnementsubscription
  • Fractionnéinstallment

Abonnement

Le service d’abonnement vous permet se réaliser automatiquement des transactions récurrentes sur vos profils clients en se basant sur un modèle d’abonnement défini en amont depuis l’API CentralPay ou le Portail Marchand. Il est ensuite possible d’ajouter des échéances ou de modifier leur montant à la volée depuis les services Invoice & Invoice Item.

Ce service permet de générer soit des transactions carte, soit des transactions SDD (prélèvement SEPA).

Définitions utiles pour cette section :

– SubscriptionModel : 
modèle d’abonnement (définissant le montant et la fréquence d’abonnement)

– Subscription : 
abonnement appliqué à un client

– Invoice : 
facture, option à utiliser si vous devez modifier la valeur à l’intérieur d’un plan d’abonnement

– InvoiceItem : 
ligne ou article inclus dans la facture. Une facture a potentiellement plusieurs lignes ou éléments
ℹ️ Le service "Subscription" n'est pas le seul moyen de réaliser des transactions récurrentes. 
Consultez la page Transaction carte récurrente ou la page Transaction par prélèvement pour prendre connaissance du détail par moyen de paiement.

1. Créer un modèle d’abonnement (subscriptionModel)

Accès :

Recette Portail Marchand – Modèles d’abonnements
Production Portail Marchand – Modèles d’abonnements

Le subcriptionModel vous permet de pouvoir créer différents types d’abonnements en fonction de vos services proposés. Par exemple, si vous avez à votre disposition deux types d’offre d’abonnement, le premier en utilisant les caractéristiques de base de votre service et l’autre en utilisant les fonctionnalités avancées, vous allez devoir créer deux modèles :

  • Un pour l’offre d’abonnement « basique »
  • Un pour l’offre d’abonnement « avancé »

Chaque « SubscriptionModel » possède un ID unique. Vous fournirez cet identifiant dans vos requêtes API lorsque vous souhaiterez appliquer un abonnement à un client sur la base de ce modèle.

Vous pouvez utiliser les attributs suivants :

  • amount : montant à renseigner en centimes
  • intervalUnit : DAY / WEEK / MONTH / YEAR (jour / semaine / mois / année)
  • intervalCount : nombre de « intervalUnit » entre deux échéances (ex : si intervalUnit = DAY et intervalCount = 10, alors il y aura une transaction tous les 10 jours)
  • iterationCount : nombre d’échéances (attention la première transaction n’est pas comptabilisée dans ce paramètre, elle s’ajoute donc à ce nombre)

Exemple :

  • amount = 3000
  • intervalUnit = DAY
  • intervalCount = 3
  • iterationCount = 3

Ainsi votre modèle d’abonnement sera configuré pour facturer à votre client 30,00 EUR tous les 3 jours pendant 4 échéances (pour un total d’un abonnement de 12 Jours).

2. Créer un abonnement (subscription)

Pour créer un abonnement, vous devez d’abord créer un Customer contenant au moins :

  • Une Card (si vous souhaitez opérer des transactions carte)
  • Ou un Mandate (si vous souhaitez opérer des transactions par prélèvement SEPA)

Vous pouvez ensuite créer une Subscription :

  • Selon le moyen de paiement souhaité :
    • pour des transactions carte : renseignez l’identifiant du profil client « customerId »
    • pour des transactions par prélèvement SEPA : renseignez l’identifiant du mandat SEPA « mandateId » et renseignez la date souhaitée de la transaction dans « requestedCollectionDate »
    • pour des transactions entre comptes CentralPay : renseignez l’identifiant du compte émetteur « walletId »
  • Renseignez l’identifiant du modèle d’abonnement « subscriptionModelId »
  • Renseignez l’IP de votre client dans « endUserIp »
  • Renseignez l’identifiant de votre point de vente CentralPay dans « pointOfSaleId »

Notez qu’à la création d’un abonnement, votre client reçoit automatiquement un email contenant le détail de ses échéances. Cet email contient également un lien vers notre Portail client qui lui permet de visualiser le statut de ses paiements récurrent, de changer sa carte bancaire ou son mandat SEPA et de résilier un abonnement si besoin est.

ℹ️ Un client pouvant à tout moment résilier son abonnement depuis le portail client mis à sa disposition. Veillez à vous inscrire aux webhooks d'annulation d'abonnement. Si votre abonnement comprend une période d'engagement, il est préférable d'utiliser la méthode d'abonnement par transactions successives, ou demander à CentralPay de ne pas diffuser le lien vers le portail client.

3. Automatisation des nouvelles tentatives en cas d’échec

En cas d’échec de prélèvement d’une échéance, CentralPay réalise de nouvelles tentatives de prélèvement selon les paramètres définis dans le Portail Marchand.

Accès :

Recette Portail Marchand – Paramétrages d’abonnements
Production Portail Marchand – Paramétrages d’abonnements

Comportement des champs :

  • Heure de transaction : heure à laquelle les échéances de prélèvement seront réalisées par CentralPay
    • Sélection d’une valeur de 4 à 23
  • 1er échec de paiement de facture : comportement en cas d’un premier échec de prélèvement
    • Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la transaction initiale
    • Stop = le système appliquera directement l’action finale, sans prendre en compte les actions suivantes.
  • 2nd échec de paiement de facture : comportement en cas d’un deuxième échec de prélèvement
    • Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative
    • Stop = le système appliquera directement l’action finale, sans prendre en compte les actions suivantes.
  • 3eme échec de paiement de facture : comportement en cas d’un troisième échec de prélèvement
    • Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative
    • Stop = le système appliquera directement l’action finale, sans prendre en compte les actions suivantes.
  • Action finale : comportement si les actions précédentes ont échoué
    • CANCELED = Annulation de l’abonnement (modification du statut de l’abonnement en CANCELED)
    • FAILURE = Échec de l’abonnement (modification du statut de l’abonnement en FAILURE)
    • UNPAID = Abonnement impayé (modification du statut de l’abonnement en FAILURE + envoi de hook SUBSCRIPTION_UNPAID)

4. Fonctions d’annulation des abonnements

Il existe deux fonctions d’annulation d’abonnement depuis l’API, le Portail Marchand ou le Portail Client :

  • Annuler : l’abonnement est annulé immédiatement
  • Annuler en fin de période : l’abonnement sera annulé à la fin de l’échéance en cours (afin de laisser l’abonné bénéficier de votre service durant sa dernière période payée). Par API, vous devrez renseigner le champ « atPeriodEnd ».
    • Note : Durant ce laps de temps, vous pouvez réactiver l’abonnement avec le service « reactivate » des Subscription.
ℹ️ Les abonnements dont l'ensemble des échéances ont été réalisées passent automatiquement en statut CANCELED.

5. Modifier le montant d’une échéance d’abonnement

CentralPay crée un invoice pour chaque échéance d’un abonnement (Subscription), selon le modèle d’abonnement associé (subscriptionModel).

Vous pouvez procéder à des actions manuelles à n’importe quel moment pour modifier les échéances (invoice) d’un abonnement (subscription). Vous trouverez ci-dessous une liste d’actions possibles :

  • Modifier le montant d’une échéance : Le service invoiceItem vous permet de modifier le montant d’une échéance (invoice) en renseignant un montant positif ou négatif qui s’additionnera au montant initial de l’échéance. L’invoiceItem sera pris en compte lors de la prochaine échéance de l’abonnement, qu’elle soit créée manuellement ou automatiquement. Vous avez également la possibilité de spécifier une échéance donnée dans votre requête en renseignant un invoiceId.
  • Créer une échéance supplémentaire : les échéances (invoice) dites « périodiques » sont créées automatiquement selon votre subscriptionModel. Vous avez la possibilité de créer d’autres échéances ponctuelles sur votre abonnement en créant une invoice.
  • Supprimer un invoiceItem non traité : s’il n’est pas encore lié à une facture
  • Fermer une échéance à venir : si vous souhaitez que CentralPay ne réalise pas le prélèvement d’une échéance (et/ou ses nouvelles tentatives automatiques), vous pouvez fermer cette dernière depuis le service « close » de l’invoice. Au besoin vous pourrez rouvrir cette échéance via le service « reopen » de l’invoice, si elle n’a pas été payée ou qu’il reste des nouvelles tentatives programmées.
  • Forcer le paiement d’une échéance : les transactions sont effectuées automatiquement par le service d’abonnement, vous pouvez cependant initier la transaction en avance ou réaliser une nouvelle tentative manuellement avec le service « pay » de l’invoice. Ces paiements « manuels » ne sont pas comptabilisés par le système de nouvelles tentatives automatisées. Cette action peut être effectuée sur une facture fermée.

6. Schéma complet de création d’un abonnement

Fractionné

Le paiement fractionné permet de découper le règlement d’une facture en plusieurs échéances. CentralPay prélève ensuite la carte du client selon un échéancier défini lors de la première transaction. Il peut être utilisé pour proposer un étalement de règlement à votre client ou pour automatiser un règlement type « acompte/solde ».

Contrairement aux abonnements, un client ne peut pas résilier un paiement fractionné depuis le portail client.

CentralPay vous aide à recouvrer les échéances dues par vos clients avec un système de nouvelles tentatives automatisées en cas d’échec de prélèvement. Cependant, CentralPay ne garantie pas les sommes dues à l’aide d’un crédit ou d’un système de financement de créances.

ℹ️ Le service "Installment" n'est pas le seul moyen de réaliser des transactions récurrentes. 
Consultez la page Transaction carte récurrente ou la page Transaction par prélèvement pour prendre connaissance du détail par moyen de paiement.

1. Créer un paiement fractionné

Vous devez d’abord créer un Customer contenant au moins :

  • Une Card (si vous souhaitez opérer des transactions carte)
  • Ou un Mandate (si vous souhaitez opérer des transactions par prélèvement SEPA)

Ensuite, le service Installment vous permettra de créer facilement un paiement fractionné en se basant sur les éléments renseignés dans votre requête.

Vous pouvez ensuite créer un Installment:

  • Selon le moyen de paiement souhaité :
    • pour des transactions carte : renseignez l’identifiant du profil client « customerId »
    • pour des transactions par prélèvement SEPA : renseignez l’identifiant du mandat SEPA « mandateId » et renseignez la date souhaitée de la transaction dans « requestedCollectionDate »
  • Renseignez le montant en centimes « amount »
  • Renseignez la devise en format ISO « currency »
  • Renseignez l’IP de votre client dans « endUserIp »
  • Renseignez les paramètres de fractionnement « iterationCount », « intervalCount » et « intervalUnit »

Avec ce service, il est également possible :

  • d’imputer des frais supplémentaires à votre client (feeAmount) : pour la mise à disposition de cet étalement des paiements
  • de définir un montant d’acompte qui sera déduit du montant total (depositAmount). Cet acompte peut également être défini à une date spécifique (depositStartingDate)
  • de définir une date de démarrage du paiement fractionné (startingDate) : si l’on souhaite par exemple que l’acompte soit réglé tout de suite, et que les premières échéances soient prélevées à partir d’une certaine date

Notez qu’à la création d’un paiement fractionné, votre client reçoit automatiquement un email contenant le détail de ses échéances. Cet email contient également un lien vers notre Portail client qui lui permet de visualiser le statut de ses paiements récurrent et de changer sa carte bancaire ou son mandat SEPA si besoin est.

2. Exemple de paiement fractionné

Vous souhaitez facturer à votre client 1 000 € divisés en 3 mois à partir du 05/07/2024, avec un acompte de 200 € le 28/06/2024 et ajouter un frais supplémentaire de 10 € :

  • amount =100000
  • depositAmount = 20000
  • feeAmount = 1000
  • currency = EUR
  • intervalUnit = MONTH
  • intervalCount = 1
  • iterationCount = 3
  • depositStartingDate = 2024-06-28
  • startingDate = 2024-07-05

Le plan de fractionnement sera le suivant :

  • 28/06/2024 = 200,00 € (acompte)
  • 05/07/2024 = 276,68 € (premier fractionnement + ajustement arrondis + frais supplémentaires)
  • 05/08/2024 = 276,66 € (deuxième fractionnement)
  • 05/09/2024 = 276,66 € (troisième fractionnement)
ℹ️ Les arrondis sont appliqués au premier paiement (hors acompte).

3. Automatisation des nouvelles tentatives en cas d’échec

En cas d’échec de prélèvement d’une échéance, CentralPay réalise de nouvelles tentatives de prélèvement selon les paramètres définis dans le Portail Marchand :

Accès :

Recette Portail Marchand – Paramétrages Paiements Fractionnés
Production Portail Marchand – Paramétrages Paiements Fractionnés

Comportement des champs :

  • Heure de transaction : heure à laquelle les échéances de prélèvement seront réalisées par CentralPay
    • Sélection d’une valeur de 4 à 23
  • 1er échec de paiement : comportement en cas d’un premier échec de prélèvement
    • Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la transaction initiale
    • Stop = le système ne réalisera pas de nouvelle tentative de prélèvement
  • 2nd échec de paiement : comportement en cas d’un deuxième échec de prélèvement
    • Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative
    • Stop = le système ne réalisera pas de deuxième nouvelle tentative de prélèvement
  • 3eme échec de paiement : comportement en cas d’un troisième échec de prélèvement
    • Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative
    • Stop = le système ne réalisera pas de troisième nouvelle tentative de prélèvement.
  • 4eme échec de paiement : comportement en cas d’un quatrième échec de prélèvement
    • Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative
    • Stop = le système ne réalisera pas de quatrième nouvelle tentative de prélèvement

Recurring payments

Articles

  • Subscriptionsubscription
  • Installmentinstallment

Subscription

The subscription service allows you to automatically process recurring transactions on your customer profiles based on a subscription template defined in advance via the CentralPay API or the Merchant Portal. You can then add due dates or modify the amounts on the fly using the Invoice & Invoice Item services.

This service allows you to generate either card transactions or SDD (SEPA Direct Debit) transactions.

Useful definitions for this section:

– SubscriptionModel :
subscription template (specifying the subscription amount and frequency)

– Subscription :
subscription appplied to a customer

– Invoice :
invoice, use this option if you need to change the amount within a subscription plan

– InvoiceItem :
line item or item included in the invoice. An invoice may contain multiple line items or items
ℹ️ The "Subscription" service is not the only way to process recurring transaction.
Visit the Recurring card transactions page or the Direct debit transactions page for details by payment method.

1. Create a subscription template (subscriptionModel)

Access:

Recette Merchent Portal – Subscription templates
Production Merchent Portal – Subscription templates

The subcriptionModel allows you to create different types of subscriptions based on the services you offer. For example, if you have two types of subscription plans available—one that includes the basic features of your service and the other that includes advanced features, you will need to create two models:

  • One for the “basic” subscription plan
  • One for the “advanced” subscription plan

Each “SubscriptionModel” has a unique ID. You will provide this ID in your API requests when you want to apply a subscription to a customer based on that model.

You can use the following attributes:

  • amount : amount to be entered in centimes
  • intervalUnit : DAY / WEEK / MONTH / YEAR (day / week / month / year)
  • intervalCount : the number of « intervalUnit » units between two due dates (e.g., if intervalUnit = DAY and intervalCount = 10, then there will be a transaction every 10 days)
  • iterationCount: number of installments (note that the first transaction is not included in this parameter; it is therefore added to this number)

Example:

  • amount = 3000
  • intervalUnit = DAY
  • intervalCount = 3
  • iterationCount = 3

This means your subscription template will be set up to bill your customer 30.00 EUR every 3 days for 4 billing cycles (for a total subscription period of 12 days).

2. Create a subscription (subscription)

To create a subscription, you must first create a Customer that contains at least:

  • A Card (if you wish to make card transactions)
  • Or a Mandate (if you wish to make card transactions via SEPA direct debit)

You can then create a Subscription:

  • Depending on your preferred payment method:
    • for card transactions : enter the customer profile ID « customerId »
    • for transactions via SEPA direct debit : enter the mandate SEPA direct debit ID « mandateId » an enter the desired transaction date in “requestedCollectionDate”
    • for transactions between CentralPay accounts : enter the sender’s account ID “walletId”
  • Enter the subscription template ID « subscriptionModelId
  • Enter your client’s IP address in “endUserIp”
  • Enter your CentralPay point-of-sale ID in the “pointOfSaleId” field

Please note that when a subscription is created, your customer automatically receives an email containing the details of their payment schedule. This email also includes a link to our Customer Portal, where they can view the status of their recurring payments, update their credit card or SEPA direct debit information, and cancel a subscription if necessary.

ℹ️ Customers can cancel their subscription at any time through the customer portal provided to them. Be sure to subscribe to the subscription cancellation webhooks. If your subscription includes a minimum commitment period, it is best to use the recurring payment method or ask CentralPay not to share the link to the customer portal.  

Automating retries in case of failure

If a payment fails to be debited, CentralPay will make additional debit attempts based on the settings defined in the Merchant Portal.

Access:

Recette Merchent Portal – Subscription settings
Production Merchent Portal – Subscription settings

Field behavior:

  • Transaction time: the time at which the direct debit payments will be processed by CentralPay
    • Selection of a value between 4 and 23
  • First failed invoice payment: What to do in the event of a first failed direct debit
    • Try again in 1, 3, 5, or 7 days = a new attempt to process the transaction on day+X after the initial transaction
    • Stop = the system will immediately perform the final action, without considering the subsequent actions.
  • Second failed invoice payment: What to do in the event of a second failed direct debit
    • Try again in 1, 3, 5 or 7 days = a new attempt to process the transaction on day+X after the previous attempt.
    • Stop = the system will immediately perform the final action, without considering the subsequent actions.
  • Third failed invoice payment: What to do in the event of a third failed direct debit
    • Try again in 1, 3, 5 or 7 days = a new attempt to process the transaction on day+X after the previous attempt.
    • Stop = the system will immediately perform the final action, without considering the subsequent actions.
  • Final action: What to do if the previous actions failed.
    • CANCELED = Subscription cancelation (changing the subscription status to CANCELED)
    • FAILURE = Subscription failure (subscription status changed to FAILURE)
    • UNPAID = Unpaid subscription (subscription status changed to FAILURE + SUBSCRIPTION_UNPAID hook sent)

4. Subscription cancellation functions

There are two ways to cancel a subscription via the API, the Merchant Portal, or the Customer Portal:

  • Cancel: the subscription is canceled immediately
  • Cancel at the end of the billing period: The subscription will be canceled at the end of the current billing period (so that the subscriber can continue to use your service during their last paid period). When using the API, you must fill in the “atPeriodEnd” field.
    • Note: During this time, you can reactivate your subscription using the “reactivate” feature in Subscriptions.
ℹ️ Subscriptions for which all payments have been made automatically change to CANCELED status.

5. Change the amount of a subscription payment

CentralPay creates an invoice for each billing cycle of a subscription, based on the associated subscription model (subscriptionModel).

You can take manual actions at any time to modify the billing dates (invoices) for a subscription. Below is a list of possible actions:

  • Modify the amount of an invoice installment: The invoiceItem service allows you to modify the amount of an invoice installment by entering a positive or negative amount that will be added to the original installment amount. The invoiceItem will be applied to the next subscription installment, whether it is created manually or automatically. You can also specify a particular installment in your request by providing an invoiceId.
  • Create an additional payment due date: so-called “recurring” payment due dates (invoices) are created automatically based on your subscription model. You can create additional one-time payment due dates for your subscription by creating an invoice.
  • Delete an unprocessed invoiceItem: if it is not yet linked to an invoice
  • Close an upcoming payment due date: if you do not want CentralPay to process a payment (and/or its automatic retry attempts), you can close it using the “close” feature on the invoice. If necessary, you can reopen this payment due date using the “reopen” feature on the invoice if it has not been paid or if there are still scheduled retry attempts remaining.
  • Forcing a payment due: transactions are processed automatically by the subscription service; however, you can initiate the transaction in advance or retry it manually using the “pay” feature on the invoice. These “manual” payments are not tracked by the automated retry system. This action can be performed on a closed invoice.

6. Complete guide to creating a subscription

Installment

Installment payments allows you to split the payment of an invoice into several installments. CentralPay then charges the customer’s card according to a payment schedule defined during the first transaction. It can be used to offer your customer a payment plan or to automate a “down payment/balance” type of payment.

Unlike subscriptions, a customer cannot cancel an installment payment from the customer portal.

CentralPay helps you collect payments owed by your customers through a system of automated retries in the event of a failed direct debit. However, CentralPay does not guarantee the collection of these amounts through credit or a receivables financing system.

ℹ️ The "Installment" is not the only way to process recurring transactions.
Visit the Recurring card transactions page or the Direct debit transactions page for details by payment method.

1. Create an installment payment

First, you must create a Customer that contains at least:

  • A Card (if you wish to make card transactions)
  • Or a Mandate (if you wish to make card transactions via SEPA direct debit)

Next, the Installment service will allow you to easily set up an installment payment based on the information provided in your request.

Then you can create an Installment:

  • Depending on your preferred payment method:
    • for card transactions : enter the customer profile ID « customerId »
    • for transactions via SEPA direct debit: enter the SEPA direct debit mandate ID « mandateId » and enter the desired transaction date in « requestedCollectionDate »
  • Enter the amount in centimes « amounts »
  • Enter the currency in ISO “currency” format
  • Enter your client’s IP address in “endUserIp”
  • Enter the installment settings « iterationCount », « IntervalCount » and « intervalUnit »

With this service, you can also:

  • d’imputer des frais supplémentaires à votre client (feeAmount) : pour la mise à disposition de cet étalement des paiements
  • to specify a deposit amount that will be deducted from the total amount (depositAmount). This deposit can also be set for a specific date (depositStartingDate)
  • to set a start date for the installment plan (startingDate): for example, if you want the down payment to be paid immediately and the first installments to be debited starting on a certain date

Please note that when a installment payment is created, your customer automatically receives an email containing the details of their payment schedule. This email also includes a link to our Customer Portal, where they can view the status of their recurring payments and update their credit card or SEPA direct debit information if necessary.

2. Example of installment payment

You want to bill your customer €1,000, divided into 3 monthly payments starting on July 5, 2024, with a down payment of €200 on June 28, 2024, and add an additional fee of €10:

  • amount =100000
  • depositAmount = 20000
  • feeAmount = 1000
  • currency = EUR
  • intervalUnit = MONTH
  • intervalCount = 1
  • iterationCount = 3
  • depositStartingDate = 2024-06-28
  • startingDate = 2024-07-05

The split plan will be as follows:

  • June 28, 2024 = €200.00 (deposit)
  • July 05, 2024 = €276,68 (first installment + rounding adjustments + additional fees)
  • August 05, 2024 = €276,66 (second installment)
  • September 05, 2024 = €276,66 (third installment)
ℹ️ The rounding are applied to the first payment (excluding deposit).

3. Automating retries in case of failure

If a payment fails to be debited, CentralPay will make additional debit attempts based on the settings defined in the Merchant Portal:

Access:

Recette Merchent Portal – Installment Payment Settings
Production Merchent Portal – Installment Payment Settings

Field behavior:

  • Transaction time: the time at which the direct debit payments will be processed by CentralPay
    • Selection of a value between 4 and 23
  • First payment failure: What to do in the event of a first failed direct debit
    • Try again in 1, 3, 5, or 7 days = a new attempt to process the transaction on day+X after the initial transaction
    • Stop = the system will not another attempt to process the payment
  • Second payment failure: What to do in the event of a second failed direct debit
    • Try again in 1, 3, 5 or 7 days = a new attempt to process the transaction on day+X after the previous attempt.
    • Stop = the system will not make a second attempt to process the payment
  • Third payment failure: What to do in the event of a third failed direct debit
    • Try again in 1, 3, 5 or 7 days = a new attempt to process the transaction on day+X after the previous attempt.
    • Stop = the system will not make a third attempt to process the payment.
  • Fourth payment failure: What to do in the event of a fourth failed direct debit
    • Try again in 1, 3, 5 or 7 days = a new attempt to process the transaction on day+X after the previous attempt.
    • Stop = the system will not make a fourth attempt to process the payment

Charge

jQuery(document).ready( function($) { window.live_6ab3046f4a6c9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Charge.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f4a6c9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f4a6c9.load(); });

Charge

jQuery(document).ready( function($) { window.live_6ab3046f4ab26 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Charge.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f4ab26", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f4ab26.load(); });

Marchand Mandataire

Agent de Prestataire de Services de Paiement (Agent PSP) ou Distributeur de Monnaie Électronique (DME)

Certains projets nécessitent un cadre réglementaire spécifique permettant à des mandataires d’agir au nom et pour le compte de CentralPay, établissement agréé et supervisé par l’ACPR. Deux statuts principaux peuvent être mobilisés en France :

  • L’Agent de Prestataire de Services de Paiement (Agent PSP), pour les projets nécessitant une gestion active des flux de paiement (encaissements, transferts, versements), dans le strict cadre d’un mandat et sous la responsabilité de CentralPay
  • Le Distributeur de Monnaie Électronique (DME), pour des projets reposant sur des mécanismes de valeur stockée / monnaie électronique (plateformes C2C, titres prépayés, réseaux fermés, etc.), dans le cadre d’un contrat de distribution

Ces modèles peuvent offrir une autonomie opérationnelle importante au mandataire, mais s’accompagnent de contraintes réglementaires fortes et d’une supervision permanente, sous la responsabilité de CentralPay.

1. Agent de Prestataire de Services de Paiement (Agent PSP)

1.1. Cas d’usage typiques

  • Plateformes B2B avec flux financiers complexes
  • Outils de gestion financière ou de trésorerie pour tiers
  • Solutions SaaS intégrant l’encaissement et la mise à disposition de fonds à des bénéficiaires

1.2. Rôle de l’Agent

L’Agent PSP agit en tant que représentant réglementaire de CentralPay pour la fourniture de services de paiement, au nom et pour le compte de CentralPay, dans les limites du mandat et des droits techniques configurés.

Fonctionnalités (selon périmètre contractuel et habilitations) :

  • Mise en relation commerciale et promotion des services CentralPay auprès des utilisateurs finaux (les “Participants”)
  • Accompagnement des Participants à l’ouverture de comptes CentralPay (parcours CentralPay et/ou parcours piloté par l’Agent, selon modèle retenu)
  • Ouverture, au nom de l’Agent, de comptes techniques dédiés à la ségrégation des flux (ex. compte de collecte et compte de commission), sans que l’Agent ne devienne propriétaire des fonds des Participants
  • Transmission à CentralPay des demandes/instructions nécessaires à la bonne exécution des services (ex. affectation des fonds, demandes de versement, demandes de remboursement), CentralPay restant seul exécutant
  • Gestion du support de premier niveau (N1) et traitement opérationnel défini comme prestation externalisée, avec escalade vers CentralPay lorsque requis

1.3. Les 3 options du modèle Agent (délégation KYC/KYB)

Le modèle Agent de CentralPay prévoit trois niveaux de délégation en matière d’inscription et de contrôles KYC/KYB. Une seule option est applicable à la fois, et le niveau retenu est formalisé contractuellement :

  • Option A – Agent simple (absence de délégation de contrôle) : l’Agent agit comme Agent PSP déclaré mais sans délégation KYC/KYB. Il se limite à la mise en relation commerciale et oriente les Participants vers les parcours/outils fournis par CentralPay. Il ne reçoit aucun mandat pour collecter des pièces justificatives ni effectuer des contrôles.
  • Option B – Agent collecteur (délégation de la complétude administrative) : l’Agent est mandaté pour constituer le dossier administratif du Participant pour le compte de CentralPay. Il collecte les pièces et réalise des vérifications strictement formelles de complétude (lisibilité, validité apparente, cohérence documentaire). Il ne réalise pas d’analyse de risque, ni filtrage sanctions/PPE, ni analyse approfondie ; la décision d’entrée en relation demeure celle de CentralPay.
  • Option C – Agent délégataire de contrôle (délégation de niveau 1) : option réservée aux Agents disposant d’une organisation conformité dédiée et expressément validée par CentralPay. L’Agent peut collecter les pièces KYC/KYB, vérifier la complétude/cohérence et assurer un contrôle de vigilance de niveau 1 exclusivement formel et administratif. Il peut également participer au traitement des alertes de niveau 1 (collecte/qualification administrative/transmission), selon des procédures strictes. CentralPay conserve la décision finale et peut révoquer l’option à tout moment en cas de défaillance.

1.4. CentralPay reste responsable

  • CentralPay reste pleinement responsable des services fournis aux Participants
  • L’Agent agit dans le strict cadre du mandat qui lui est confié, et selon les habilitations techniques mises en place
  • Toute activité réalisée via la plateforme est auditable, traçable et documentée

1.5. Contraintes réglementaires

  • Signature d’un contrat d’Agent et de ses documents associés
  • Enregistrement officiel en tant qu’Agent sur le registre de l’ACPR (via CentralPay)
  • Évaluation de la capacité organisationnelle du mandataire et exigences renforcées (conformité, sécurité, confidentialité, continuité, contrôle interne)
  • Reporting périodique à CentralPay (volume d’activité, incidents, qualité de service) et possibilité d’audit sur pièce ou sur site
  • Formations obligatoires des équipes opérationnelles, selon le périmètre de délégation

2. Distributeur de Monnaie Électronique (DME)

2.1. Cas d’usage typiques

  • Plateformes de vente entre particuliers (C2C)
  • Réseaux d’enseignes prépayées ou de bons cadeaux
  • Programmes de fidélité à valeur monétaire stockée

2.2. Rôle du DME

Le DME agit pour le compte de CentralPay dans la mise à disposition et la gestion opérationnelle de la monnaie électronique, dans les limites prévues par le contrat de distribution et les règles définies par CentralPay.

Fonctionnalités :

  • Mise en relation de CentralPay avec les utilisateurs finaux (les “sous-marchands” / utilisateurs de monnaie électronique)
  • Transmission à CentralPay des instructions de chargement (montant, bénéficiaire, commission), CentralPay restant seul émetteur/exécutant
  • Visualisation et suivi des opérations via un dispositif de suivi dédié (ex. vue consolidée / compte centralisateur selon modèle), sans droit de disposition sur les fonds
  • Transmission des demandes/instructions permettant la circulation de monnaie électronique entre utilisateurs dans un cadre défini (réseau fermé, règles contractuelles), sous contrôle de CentralPay
  • Transmission des demandes de remboursement de monnaie électronique à la demande de l’utilisateur, selon les règles applicables
  • Détention d’un compte de commission pour percevoir les frais définis dans ses CGU

2.3. Limites fonctionnelles

  • Le DME ne détient jamais les fonds : il agit comme intermédiaire et ne peut pas conserver, stocker ou utiliser les fonds collectés
  • Il n’est pas autorisé à créer/émettre lui-même de la monnaie électronique
  • Il ne peut pas offrir de services de paiement non explicitement autorisés dans le cadre contractuel défini par CentralPay
  • Il ne peut pas sous-traiter son activité, sauf accord explicite de CentralPay

2.4. Contraintes réglementaires

  • Signature d’un contrat de distribution avec CentralPay
  • Déclaration / formalités de mise en conformité réalisées sous l’initiative et la responsabilité de CentralPay, selon la réglementation applicable
  • Mise en conformité organisationnelle : dispositifs internes de sécurité, confidentialité, gestion des incidents, continuité d’activité
  • Supervision permanente par CentralPay, incluant :
    • Contrôle de l’usage de l’API / des habilitations
    • Reporting régulier sur l’activité
    • Formation obligatoire des équipes du DME
    • Validation des CGU utilisées auprès des utilisateurs

Articles

  • Déclaration Agent PSP (ACPR)
  • Déclaration Distributeur ME (ACPR)

Déclaration Agent PSP (ACPR)

Rôle de l’ACPR

L’ACPR (Autorité de Contrôle Prudentiel et de Résolution), adossée à la Banque de France, tient le registre des prestataires régulés et de leurs agents. Dans le cadre d’un modèle Agent PSP, CentralPay (établissement agréé) constitue et dépose la notification/dossier d’enregistrement de l’Agent et demeure l’unique interlocuteur de l’ACPR.

Le futur Agent ne peut pas déposer de dossier directement auprès de l’ACPR : les échanges sont pilotés par CentralPay, avec le concours de l’Agent (transmission de pièces, réponses aux questions, éléments d’organisation).

Étapes de déclaration d’un Agent

ÉtapeDescription
1. Cadrage & pré-qualificationAnalyse du modèle, du périmètre fonctionnel et des responsabilités ; validation juridique & conformité côté CentralPay
2. Constitution du dossierCollecte des pièces société/dirigeants, éléments d’organisation (process, contrôles, sécurité), CGU Agent/Participants, prévisions d’activité
3. Dépôt / échanges ACPRDépôt réalisé par CentralPay ; réponses aux demandes complémentaires pilotées par CentralPay avec l’aide de l’Agent
4. Enregistrement & activationÀ l’issue de l’enregistrement sur le registre public, CentralPay peut activer l’Agent en production (avant cela, l’activité reste bloquée)

1. Responsabilités de l’Agent

En tant qu’Agent PSP, l’Agent agit au nom et pour le compte de CentralPay dans le périmètre défini contractuellement. CentralPay reste pleinement responsable de la fourniture des services de paiement et de la conformité réglementaire ; toutefois, l’Agent doit appliquer strictement les procédures et exigences opérationnelles fixées par CentralPay, notamment en matière de LCB-FT et de lutte contre la fraude.

L’Agent est notamment responsable de :

  • La compréhension de l’activité de ses marchands/Participants et de la cohérence économique des opérations initiées via son modèle
  • La mise en œuvre des dispositifs opérationnels attendus (process internes, contrôles, traçabilité, gestion des incidents) et du respect des consignes CentralPay
  • La lutte contre la fraude (détection, escalade, coopération) et le respect des obligations de vigilance dans le périmètre confié
  • La coopération avec CentralPay en cas de demande d’information (contrôles, audit, questions ACPR), et la transmission rapide des pièces demandées

L’Agent doit signer :

  • Un Contrat d’Agent PSP avec CentralPay (mandat / externalisation / supervision / flux)
  • Le CCSP (Contrat Cadre de Services de Paiement) applicable à l’Agent en sa qualité de client professionnel de CentralPay (accès plateforme, services souscrits)
  • Des CGU Agent (ou documentation équivalente) encadrant sa relation avec ses Participants, incluant les mentions nécessaires sur les parcours, la ventilation, les dates de déblocage et les éventuelles demandes de versements

Selon le périmètre retenu (et les annexes applicables), certaines fonctions peuvent être déléguées à l’Agent (ex. collecte et contrôles formels KYC/KYB). CentralPay reste seule décisionnaire de l’entrée en relation, de l’ouverture/maintien des comptes et des décisions réglementaires.

2. Devenir Partenaire Agent CentralPay

Le processus d’enregistrement d’un Agent dépend de la complétude du dossier, du niveau de délégation opérationnelle et des échanges avec l’ACPR. En pratique, il s’étale généralement sur plusieurs semaines et peut être prolongé si des pièces complémentaires sont demandées.

2.1. Résumé des étapes

ÉtapeDétails
1. Compréhension du modèle– Cadrage du périmètre et des responsabilités
– Description des flux & cas d’usage
– Validation par les équipes Juridique & Conformité de CentralPay
2. Offre commerciale– Présentation par CentralPay
– Alignement sur le périmètre (technique, opérationnel, conformité)
3. Contractualisation– Signature du Contrat d’Agent
– Signature/acceptation du CCSP applicable à l’Agent
4. Test & intégration– Accès sandbox
– Intégration technique & recette
– Vérification des parcours (onboarding/consentement/affichages)
5. Instruction ACPR– Collecte des éléments réglementaires
– Constitution et dépôt du dossier auprès de l’ACPR par CentralPay
– Gestion des questions / compléments
6. Mise en production– Activation en production après enregistrement
– Tests en environnement de recette / production encadrée

2.2. Pièces à fournir à CentralPay

Phase 1 – Pré-constitution du dossier

  • CGU Agent / documentation contractuelle Participants (parcours, consentements, information “agent”, ventilation/commission, dates de déblocage, modalités de remboursement)
  • Définition des activités régulées, services associés, modèle d’affaires
  • Organigramme (y compris répartition des effectifs par service) et description des rôles clés
  • Structure de l’actionnariat / gouvernance
  • Flux prévisionnels sur 3 ans confiés à CentralPay (volumes, montants, typologies)
  • Nombre d’enrôlements prévisionnels sur 3 ans
  • Cas de reprise de KYC existant (migration) le cas échéant

Phase 2 – Déclaration auprès du régulateur

  • Signature du Contrat d’Agent (préalable au dépôt du dossier)
  • CentralPay collecte et dépose les pièces suivantes (liste indicative) :
    • Kbis < 3 mois de la société et, le cas échéant, des sociétés de tête/dirigeantes
    • Statuts à jour signés
    • Pièces d’identité couleur des dirigeants
    • CV des dirigeants datés et signés
    • Casier judiciaire des dirigeants (si demandé)
    • Déclarations de non-condamnation des dirigeants
    • Répartition de la détention des parts / actionnariat
    • Kbis des personnes morales actionnaires (si applicable) + organigramme de groupe (si applicable)
    • PV d’AG récents (fusion, perte > 50% du capital, changement direction, etc.)
    • Registre des bénéficiaires effectifs (si demandé)

Peuvent également être demandés par l’ACPR :

  • Bilans et comptes de résultat récents
  • États financiers en cours ou de l’année précédente
  • Toute pièce jugée utile par le régulateur

2.3. Délais d’instruction

  • Instruction par CentralPay : généralement ~2 semaines à compter de la réception d’un dossier complet
  • Délai ACPR : variable ; peut aller jusqu’à ~2 mois, avec premières questions sous 30 jours en général

2.4. Fin d’instruction

  • L’Agent peut démarrer l’activité uniquement après enregistrement effectif (publication sur le registre public)
  • Avant enregistrement, CentralPay n’active pas l’Agent en production et peut maintenir les comptes de l’Agent bloqués (IN/OUT)
  • L’Agent est référencé dans les registres publics avec un numéro/identifiant d’enregistrement pouvant devoir figurer dans certaines communications/mentions

2.5. Particularité – Agents Télécom SVA (numéros surtaxés)

  • Obligation de fournir un récapitulatif des minutes par opérateur
  • Transmission du détail de répartition des encaissements (ventilation) à CentralPay
  • CentralPay met en place des contrôles complémentaires afin de s’assurer que les marchands/Participants sont correctement crédités

3. Traitement des flux agent

Cette section définit les règles applicables au traitement et au contrôle des flux financiers dans un modèle Agent. Elle précise les responsabilités, la structure des comptes et les contrôles complémentaires mis en œuvre afin de répondre aux exigences légales et prudentielles.

3.1. Responsabilité de l’établissement

Conformément au Code monétaire et financier (CMF), l’Agent agit au nom et pour le compte de CentralPay. CentralPay demeure pleinement responsable du respect des obligations réglementaires, notamment en matière de LCB-FT, de sécurité et de protection des fonds.

CentralPay met en place un dispositif de contrôle interne couvrant l’ensemble du cycle des flux, y compris ceux traités dans le cadre de ses Agents (supervision, auditabilité, traçabilité).

3.2. Comptes opérationnels des agents

Pour les besoins de ségrégation des flux, CentralPay met à disposition (dans ses livres) :

  • Compte de Collecte : compte de transit destiné à recevoir les fonds liés aux opérations initiées via le modèle Agent, et à permettre leur affectation/ventilation vers les comptes des Participants
  • Compte de Commission : destiné à recevoir la rémunération revenant à l’Agent (commissions) et à régler les frais dus à CentralPay
  • Compte de paiement Agent (optionnel) : destiné aux opérations courantes de l’Agent pour son compte propre (approvisionnement, paiement de factures SaaS, etc.), distinct des flux tiers et des commissions

3.3. Traitement des opérations

Lorsqu’un Agent initie une transaction pour le compte d’un ou plusieurs Participants :

  1. L’Agent transmet à CentralPay les informations nécessaires à la ventilation (part des Participants, commission Agent, références), soit directement dans la transaction, soit au plus tard en fin de journée via un traitement par lot lorsque cela est objectivement nécessaire.
  2. CentralPay exécute ensuite, sous sa responsabilité, les opérations d’affectation/ventilation et, le cas échéant, les mouvements nécessaires (dont la commission vers le compte de commission), conformément au cadre contractuel et aux contrôles réglementaires.

Le Compte de Collecte doit rester un compte de transit : l’Agent ne doit pas conserver passivement des fonds de tiers au-delà des délais strictement nécessaires au traitement (pas de “trésorerie flottante”).

Les modalités de versement sortant (Payout) sont encadrées par CentralPay ; le Compte de Collecte n’a pas vocation à servir de compte de versement sortant “libre”.

3.4. Dates de déblocage et montants prévisionnels

Fonctionnement

Selon le modèle contractuel, l’Agent peut transmettre ou paramétrer (en qualité d’intermédiaire mandaté par le Participant) une date de déblocage (endpoint API : EscrowDate) correspondant à un évènement contractuel objectivable (ex. livraison/expédition/fin de prestation). Cette date ne produit aucun effet financier automatique : CentralPay demeure seule décisionnaire de la mise à disposition des fonds (acceptation, refus, report, encadrement).

Jusqu’à la date de déblocage :

  • Les fonds restent protégés et indisponibles (ni accessibles à l’Agent, ni utilisables par le Participant)
  • Le Participant peut visualiser l’opération sous forme d’opération à venir ou de montant prévisionnel, avec affichage de la date de disponibilité, sans constituer un crédit au solde disponible

Conditions de conformité

L’usage des dates de déblocage est autorisé uniquement si :

  • Information claire : l’Agent doit expliquer à ses Participants comment fonctionne la date de déblocage (principes, délais, exceptions).
  • Affichage transparent : l’interface Participant doit indiquer la date de l’opération, la date de disponibilité prévue et un statut “indisponible avant cette date”.
  • Mentions dans les CGU Agent : les CGU signées par les Participants doivent préciser :
    • Que la date de déblocage correspond à la date contractuelle à laquelle les fonds deviennent utilisables.
    • Qu’il est impossible pour le Participant d’utiliser ces fonds avant cette date.
    • Que CentralPay peut refuser, différer, suspendre ou encadrer la mise à disposition au regard de ses obligations réglementaires, de sa politique de risque et des règles des réseaux de paiement.
  • Gestion des exceptions : en cas d’annulation, de remboursement, d’impayé ou de litige :
    • Si la transaction source est annulée/remboursée, les fonds ne seront pas mis à disposition.
    • En cas d’impayé (ex. chargeback carte) ou de risque, CentralPay peut retenir/ajuster les montants en attente ou compenser lors de règlements ultérieurs.
    • La date de déblocage peut être reportée (litige/incident) ; le Participant doit être informé via son interface/notifications.

Ce mécanisme ne constitue ni un séquestre au sens du droit civil, ni un service de conservation fiduciaire : il s’agit d’une mise à disposition différée sous contrôle exclusif de CentralPay.

3.5. Gestion des versements sortants

Fonctionnement

CentralPay peut mettre à disposition des Participants (et, selon les habilitations, à l’Agent agissant comme intermédiaire mandaté) différents modes de gestion des versements sortants :

  • Versements sortants automatisés (paramétrage de règles/plannings, lorsque prévu contractuellement)
  • Versements sortants ponctuels (demande via portail/API selon les droits accordés)

Conditions de conformité

Lorsque l’Agent est autorisé à transmettre des demandes de versement sortant pour le compte de ses Participants, il doit recueillir leur consentement et décrire clairement le mode de fonctionnement dans les CGU Agent. CentralPay demeure seule responsable de l’exécution et peut refuser, suspendre ou encadrer ces demandes conformément à ses obligations.

À retenir

Le dispositif présenté garantit :
- La séparation stricte des flux tiers / commissions / compte propre
- L’absence de droit de disposition de l’Agent sur les fonds de tiers
- La traçabilité complète des opérations (auditabilité)
- La supervision active par CentralPay
- La conformité aux exigences du CMF et aux attentes de supervision

Le respect de ce dispositif est obligatoire. Toute anomalie (fraude, incident, incohérence de ventilation, non-respect des procédures) doit être signalée immédiatement à votre Account Manager CentralPay.

Déclaration Distributeur ME (ACPR)

Les Établissements émetteurs de monnaie électronique comme CentralPay peuvent mandater des Distributeurs de Monnaie Électronique (DME) afin de collecter des fonds et d’assurer les échanges permettant l’achat et le remboursement de ME dans un réseau de sous-marchands défini.

La déclaration d’un Distributeur de Monnaie Électronique se déroule en deux étapes :

  • Le montage du dossier de déclaration : réalisé par CentralPay avec l’aide de son futur DME
  • L’instruction du dossier à l’ACPR : réalisé par CentralPay. Elle ne nécessite pas de validation particulière de l’ACPR

1. Responsabilité du mandataire DME

CentralPay réalise tous les processus complexes ou nécessitant de fortes compétences. Néanmoins, vous êtes toujours garant de la tenue d’un haut niveau d’exigence dans le suivi et l’application des règles de LCB-FT (Lutte Contre le Blanchiment et le Financement du Terrorisme). À ce titre, vous devez apporter à CentralPay des certitudes sur les conditions de réalisation des opérations qui passent par votre intermédiaire, notamment :

  • La réalité économique de l’opération
  • La lutte contre la fraude

Les Établissements régulés qui font appel à des distributeurs restent responsables des opérations réalisées par ces derniers. Un cadre juridique précis est donc mis en place.

Un statut de Distributeur de Monnaie Électronique passe par :

  • La contractualisation d’un contrat Cadre de Distribution de Monnaie Électronique qui définit les relations entre les parties
  • Des CGU d’utilisation de Monnaie Électronique

Dans le cas où un DME internalise certaines fonctions dévolues à CentralPay dans le cadre de ses obligations règlementaires, un contrat de Prestations de Services Essentiels Externalisées devra être signé. C’est par exemple le cas si l’agent internalise la gestion des KYC ou réalise des interfaces de gestion qui ne permettrait pas à CentralPay d’assurer l’exécution du service sans le concours du PSEE.

2. Devenir mandataire DME

Devenir Distributeur de CentralPay nécessite le suivi d’étapes qui s’étalent sur plusieurs semaines.

Voici un guide qui permet de mieux comprendre les enjeux liés à l’acceptation, puis à l’instruction des dossiers de déclaration des Distributeurs.

2.1. Résumé des étapes

  1. Compréhension du modèle
    • Explication des services apportés par le mandataire
    • Définition de son modèle d’affaires
    • Validation par le service Risque & Conformité de CentralPay
  2. Offre Commerciale
    • Présentation
  3. Validation
    • Validation du mandataire par le service Risque & Conformité de CentralPay
    • Validation de la proposition commerciale et des conditions tarifaires par le mandataire
  4. Test & Intégration
    • Mise en place de la sandbox
    • Réunion de lancement de projet avec l’équipe technique
    • Phase d’intégration technique
  5. Instruction du dossier ACPR
    • Collecte des éléments nécessaires à la constitution du dossier
    • Préparation du dossier
    • Présentation du dossier
  6. Mise en production
    • Validation de la recette
    • Mise en production

2.2. Pièces à fournir à CentralPay

Prochainement

Intermediary Merchant

Payment Service Provider Agent (PSP Agent) or Electronic Money Distributor (EMD)

Certain projects require a specific regulatory framework that allows intermediaries to act in the name and on behalf of CentralPay, an institution authorized and supervised by the ACPR. Two main legal statuses can be utilized in France:

  • Payment Service Provider (PSP) Agent, for projects requiring active management of payment flows (collections, transfers, Payouts), strictly within the scope of a mandate and under the responsibility of CentralPay
  • The Electronic Money Distributor (EMD), for projects based on stored-value/Electronic money mechanisms (C2C platforms, prepaid cards, closed networks, etc.), under a distribution agreement

These models can provide the intermediary with a high degree of operational autonomy, but they come with strict regulatory constraints and ongoing supervision, under the responsibility of CentralPay.

1. Payment Service Provider Agent (PSP Agent)

1.1. Typical Use Cases

  • B2B platforms with complex financial flows
  • Financial or cash management tools for third parties
  • SaaS solutions that integrate payment collection and the distribution of funds to beneficiaries

1.2. Role of the Agent

The PSP Agent acts as CentralPay’s regulatory representative for the provision of payment services, in the name and on behalf of CentralPay, within the limits of the configured mandate and technical rights.

Features (depending on the scope of the contract and user permissions):

  • Business development and promotion of CentralPay services to end users (the “Participants”)
  • Assisting participants in opening CentralPay accounts (via the CentralPay process and/or the agent-guided process, depending on the selected model)
  • Opening, on behalf of the Agent, special accounts dedicated to segregating cash flows (e.g., a Collection Account and a Commission Account), without the Agent becoming the owner of the Participants’ funds
  • Submission to CentralPay of the requests/instructions necessary for the proper performance of services (e.g., allocation of funds, payout requests, refund requests), with CentralPay acting as the sole executor
  • First-level (L1) support management and operational processing provided as an outsourced service, with escalation to CentralPay as needed

1.3. The 3 options in the Agent model (KYC/KYB delegation)

CentralPay’s Agent model provides for three levels of delegation regarding registration and KYC/KYB checks. Only one option may be applied at a time, and the selected level is formalized in a contract:

  • Option A – Basic Agent (no delegation of control): The Agent acts as a registered PSP Agent but without KYC/KYB delegation. The Agent is limited to establishing business connections and directs Participants to the processes and tools provided by CentralPay. The Agent is not authorized to collect supporting documents or perform any checks.
  • Option B – Collection Agent (delegation of administrative completeness verification): The Agent is authorized to compile the Participant’s administrative file on behalf of CentralPay. The Agent collects the documents and performs strictly formal checks for completeness (legibility, apparent validity, and consistency of the documents). The Agent does not conduct risk analysis, sanctions/PPE screening, or in-depth analysis; the decision for onboarding remains with CentralPay.
  • Option C – Delegated Compliance Officer (Level 1 delegation): This option is reserved for Agents with a dedicated compliance organization that has been expressly approved by CentralPay. The Agent may collect KYC/KYB documents, verify their completeness and consistency, and perform Level 1 due diligence that is exclusively formal and administrative in nature. The Agent may also participate in the handling of Level 1 alerts (collection, administrative assessment, and transmission) in accordance with strict procedures. CentralPay retains the final decision-making authority and may revoke this option at any time in the event of non-compliance.

1.4. CentralPay remains responsible

  • CentralPay remains fully responsible for the services provided to Participants
  • The Agent acts strictly within the scope of the mandate entrusted to him or her and in accordance with the technical authorizations that have been established
  • Every activity carried out through the platform is auditable, traceable, and documented

1.5. Regulatory Requirements

  • Signing an Agent Agreement and Related Documents
  • Official registration as an Agent in the ACPR registry (via CentralPay)
  • Assessment of the intermediary’s organizational capacity and enhanced requirements (compliance, security, confidentiality, business continuity, internal control)
  • Periodic reporting to CentralPay (business volume, incidents, service quality) and the option for document-based or on-site audits
  • Mandatory training for operational teams, based on the scope of delegation

2. Electronic Money Distributor (EMD)

2.1. Typical Use Cases

  • Peer-to-Peer (C2C) Sales Platforms
  • Prepaid card or gift card networks
  • Stored-Value Loyalty Programs

2.2. Role of the EMD

The EMD acts on behalf of CentralPay in the provision and operational management of Electronic money, within the limits set forth in the distribution agreement and the rules established by CentralPay.

Features:

  • Connecting CentralPay with end users (the “Sub-merchants” / Electronic money users)
  • Transmission of payment instructions (amount, Beneficiary, fee) to CentralPay, with CentralPay acting as the sole issuer and executor
  • Viewing and tracking transactions through a dedicated monitoring system (e.g., consolidated view/centralized account based on the model), without the right to dispose of the funds
  • Transmission of requests/instructions enabling the transfer of Electronic money between users within a defined framework (closed network, contractual rules), under CentralPay’s control
  • Submission of requests for refund of electronic money at the user’s request, in accordance with applicable rules
  • Maintenance of a Commission Account to collect the fees specified in its Terms of Service

2.3. Functional Limitations

  • The EMD never holds the funds: it acts as an intermediary and cannot retain, store, or use the funds collected
  • It is not permitted to create or issue Electronic money on its own
  • It may not offer payment services that are not explicitly authorized under the contractual framework established by CentralPay
  • He may not subcontract his business activities unless expressly authorized by CentralPay

2.4. Regulatory Requirements

  • Signing of a Distribution Agreement with CentralPay
  • Declaration / compliance procedures carried out on the initiative and under the responsibility of CentralPay, in accordance with applicable regulations
  • Organizational Compliance: Internal Security Measures, Confidentiality, Incident Management, Business Continuity
  • Continuous monitoring by CentralPay, including:
    • Monitoring API Usage / Permissions
    • Regular reports on business activity
    • Mandatory Training for EMD Teams
    • Validation of the Terms of Service provided to users

Articles

  • PSP Agent Declaration (ACPR)
  • ME Distributor Declaration (ACPR)

PSP Agent Declaration (ACPR)

Role of the ACPR

The ACPR (Prudential Supervision and Resolution Authority), which operates under the auspices of the Banque de France, maintains a registry of regulated service providers and their agents. Under the PSP Agent model, CentralPay (an authorized institution) prepares and files the Agent’s notification/registration application and serves as the sole point of contact for the ACPR.

Prospective agents cannot submit applications directly to the ACPR: all communications are managed by CentralPay, with the agent’s assistance (submitting documents, answering questions, and providing organizational details).

Steps for Registering an Agent

StepDescription
1. Scope Definition & Pre-qualificationAnalysis of the model, functional scope, and responsibilities; legal validation and compliance on the CentralPay side
2. Compiling the FileCollection of company and executive documents, organizational information (processes, controls, security), Terms of Use for Agents and Participants, and business forecasts
3. Deposits / ACPR ExchangesDeposit processed by CentralPay; responses to additional requests managed by CentralPay with the assistance of the Agent
4. Registration & ActivationOnce the entry has been made in the public registry, CentralPay can activate the Agent in production (until then, the activity remains suspended)

1. Responsibilities of the Agent

Asa PSP Agent, the Agent acts in the name and on behalf of CentralPay within the scope defined in the contract. CentralPay remains fully responsible for the provision of payment services and regulatory compliance; however, the Agent must strictly adhere to the operational procedures and requirements established by CentralPay, particularly with regard to AML/CFT and fraud prevention.

The Agent is responsible, in particular, for:

  • An understanding of the activities of its merchants/participants and the economic soundness of the transactions initiated through its model
  • Implementation of the expected operational procedures (internal processes, controls, traceability, incident management) and compliance with CentralPay guidelines
  • Fraud prevention (detection, escalation, cooperation) and compliance with due diligence obligations within the assigned scope
  • Cooperation with CentralPay in response to requests for information (inspections, audits, ACPR inquiries), and the prompt submission of requested documents

The agent must sign:

  • A PSP Agent Agreement with CentralPay (mandate / outsourcing / supervision / payment flows)
  • The CCSP (Payment Services Framework Agreement) applicable to the Agent in its capacity as a business customer of CentralPay (platform access, subscribed services)
  • Agent Terms of Service (or equivalent documentation) governing the Agent’s relationship with its Participants, including the necessary details regarding payment plans, allocation, Release dates, and any requests for Payouts

Depending on the scope of authority (and the applicable appendices), certain functions may be delegated to the Agent (e.g., KYC/KYB data collection and formal checks). CentralPay retains sole decision-making authority regarding onboarding, the opening and maintenance of accounts, and regulatory decisions.

2. Become a CentralPay Partner

The process for registering an Agent depends on the completeness of the application, the level of operational delegation, and communication with the ACPR. In practice, it generally takes several weeks and may be extended if additional documents are requested.

2.1. Summary of the Steps

StepDetails
1. Understanding the Model– Defining the scope and responsibilities
– Description of workflows and use cases
– Approval by CentralPay’s Legal and Compliance teams
2. Commercial Offer– Presentation by CentralPay
– Alignment with the scope (technical, operational, compliance)
3. Formalization in a Contract– Signing of the Agent Agreement
– Signing/acceptance of the CCSP applicable to the Agent
4. Testing & Integration– Sandbox access
– Technical integration & acceptance testing
– Verification of user flows (onboarding/consent/disclosures)
5. ACPR Directive– Collection of regulatory documents
– Preparation and submission of the application to the ACPR by CentralPay
– Handling of questions and requests for additional information
6. Deployment– Deployment to production after registration
– Testing in the Sandbox / supervised production

2.2. Documents to Submit to CentralPay

Phase 1 – Preliminary Compilation of the Case File

  • Agent Terms of Service / Contractual Documentation for Participants (program details, consents, “agent” information, breakdown/commission, Release dates, refund terms)
  • Definition of Regulated Activities, Related Services, and Business Model
  • Organizational Chart (including a breakdown of staff by department) and descriptions of key roles
  • Shareholder Structure / Corporate Governance
  • 3-Year Forecast Transactions Entrusted to CentralPay (volumes, amounts, types)
  • Projected number of enrollments over 3 years
  • Scenario involving the reuse of existing KYC data (migration), if applicable

Phase 2 – Filing with the regulator

  • Signing of the Agent Agreement (prior to submitting the application)
  • CentralPay collects and deposits the following items (indicative list):
    • A Commercial register extract less than 3 months old for the company and, if applicable, for its parent or controlling companies
    • Signed, up-to-date Articles of association
    • Color copies of executives’ identity documents
    • Resumes of executives, dated and signed
    • Criminal Records of Executives (if requested)
    • Declarations of No Criminal Convictions by Executives
    • Breakdown of Share Ownership / Shareholder Structure
    • Commercial register for shareholder corporations (if applicable) + group organizational chart (if applicable)
    • Recent General Meeting Minutes (merger, loss of more than 50% of the capital, change in management, etc.)
    • Register of Beneficial Owners (if requested)

The ACPR may also request the following:

  • Recent Balance Sheets and Income Statements
  • Current or prior year financial statements
  • Any document deemed useful by the regulator

2.3. Processing Times

  • Processing time by CentralPay: typically ~2 weeks from receipt of a complete application
  • ACPR processing time: varies; can take up to ~2 months, with initial questions typically received within 30 days

2.4. End of Investigation

  • The Agent may begin the activity only after it has been effectively registered (published in the public registry)
  • Prior to registration, CentralPay does not activate the Agent in production and may keep the Agent’s accounts blocked (IN/OUT)
  • The Agent is listed in public records with a registration number or identifier that may need to be included in certain communications or disclosures.

2.5. Special Feature – Telecom Agents for Value-Added Services (premium-rate numbers)

  • Requirement to Provide a Summary of the Minutes by Operator
  • Submission of detailed breakdown of receipts (breakdown) to CentralPay
  • CentralPay implements additional controls to ensure that Merchants/Participants are properly credited

3. Processing Agent Workflows

This section defines the rules governing the processing and control of financial flows in an Agent model. It specifies the responsibilities, the account structure, and the additional controls implemented to meet legal and prudential requirements.

3.1. Responsibility of the Institution

In accordance with the Monetary and Financial Code (CMF), the Agent acts in the name and on behalf of CentralPay. CentralPay remains fully responsible for compliance with regulatory obligations, particularly with regard to anti-money laundering and counter-terrorism financing (AML/CTF), security, and the protection of funds.

CentralPay has implemented an internal control system that covers the entire transaction cycle, including transactions processed through its agents (supervision, auditability, traceability).

3.2. Employee Operating Accounts

To facilitate the segregation of funds, CentralPay provides (in its records):

  • Collection Account: a transit account used to receive funds related to transactions initiated through the Agent model, and to facilitate their allocation or distribution to Participants’ accounts
  • Commission Account: intended to receive the Agent’s compensation (commissions) and to pay fees owed to CentralPay
  • Agent Payment Account (optional): intended for the Agent’s day-to-day transactions on its own account (funding, payment of SaaS invoices, etc.), separate from third-party transactions and commissions

3.3. Processing Transactions

When an Agent initiates a transaction on behalf of one or more Participants:

  1. The Agent provides CentralPay with the information needed for allocation (Participants’ shares, Agent’s commission, reference numbers), either directly as part of the transaction or, at the latest, by the end of the day via batch processing when objectively necessary.
  2. CentralPay then carries out, under its own responsibility, the allocation and breakdown processes and, where applicable, the necessary transactions (including the transfer of commissions to the Commission Account), in accordance with the contractual framework and regulatory controls.

The Collection Account must remain a transit account: the Agent must not passively hold third-party funds beyond the time strictly necessary for processing (no “floating cash”).

Payout procedures (Payout) are managed by CentralPay; the Collection Account is not intended to serve as a “general-purpose” payout account.

3.4. Release dates and estimated amounts

How It Works

Depending on the contract model, the Agent may submit or configure (as an intermediary authorized by the Participant) a release date (API endpoint: EscrowDate) corresponding to a verifiable contractual event (e.g., delivery, shipment, or completion of services). This date does not trigger any automatic financial consequences: CentralPay retains sole discretion over the release of funds (approval, Refusal, postponement, or other measures).

Until the release date:

  • The funds remain protected and unavailable (neither accessible to the Agent nor usable by the Participant)
  • The Participant can view the transaction asan upcoming transaction or a projected amount, with the availability date displayed, without it being credited to the Available balance

Compliance Requirements

The use of release dates is permitted only if:

  • Clear information: The Agent must explain to its Participants how the Release date works (principles, timeframes, exceptions).
  • Transparent display: The Participant interface must show the transaction date, the expected availability date, and a status of “unavailable before this date.”
  • Provisions in the Agent Terms of Use: The Terms of Use signed by the Participants must specify:
    • The release date corresponds to the contractual date on which the funds become available.
    • That the Participant may not use these funds before that date.
    • CentralPay may refuse, delay, suspend, or restrict the provision of services in accordance with its regulatory obligations, risk policy, and payment network rules.
  • Exception Handling: In the event of a cancellation, refund, unpaid balance, or dispute:
    • If the source transaction is reversed or subject to a refund, the funds will not be made available.
    • In the event of an unpaid transaction (e.g., a credit card chargeback) or a risk, CentralPay may withhold or adjust pending amounts or offset them against future payments.
    • The release date may be postponed (due to a Dispute or incident); the Participant must be notified via their interface or notifications.

This mechanism is neither an escrow arrangement under civil law nor a fiduciary custody service: it is a deferred release of funds under the exclusive control of CentralPay.

3.5. Outgoing Payout Management

How It Works

CentralPay can provide Participants (and, depending on their authorizations, the Agent acting as an authorized intermediary) with various methods for managing Payouts:

  • Automated Payouts (setting up rules/schedules, when provided for in the contract)
  • One-time Payouts (request via portal/API depending on granted permissions)

Compliance Requirements

When the Agent is authorized to submit payout requests on behalf of its Participants, it must obtain their consent and clearly describe the process in the Agent Terms of Service. CentralPay remains solely responsible for the execution of such requests and may face refusals, suspend them, or regulate them in accordance with its obligations.

Key points

The system described guarantees:
- Strict separation of third-party funds, commissions, and Own accounts
- The Agent has no right to dispose of third-party funds
- Complete traceability of transactions (auditability)
- Active oversight by CentralPay
- Compliance with CMF requirements and supervisory expectations

Compliance with this policy is mandatory. Any irregularities (fraud, incidents, inconsistencies in allocation, or failure to follow procedures) must be reported immediately to your CentralPay Account Manager.

ME Distributor Declaration (ACPR)

Electronic money issuers such as CentralPay may authorize Electronic Money Distributors (EMDs) to collect funds and facilitate transactions for the purchase and refund of electronic money within a defined network of Sub-merchants.

The registration process for an Electronic Money Distributor consists of two steps:

  • Preparation of the tax return: handled by CentralPay with the assistance of its future EMD
  • Processing of the application by the ACPR: handled by CentralPay. It does not require any specific approval from the ACPR.

1. Responsibilities of the EMD Intermediary

CentralPay handles all complex processes or those requiring specialized expertise. However, you remain responsible for ensuring a high standard of compliance with AML/CFT (Anti-Money Laundering and Counter-Terrorist Financing) rules. As such, you must provide CentralPay with assurance regarding the conditions under which transactions processed through you are carried out, including:

  • The Economic Reality of the Transaction
  • The Fight Against Fraud

Regulated institutions that use distributors remain responsible for the transactions carried out by those distributors. A clear legal framework has therefore been established.

To qualify as an Electronic money Distributor, the following requirements must be met:

  • The execution of an Electronic money Distribution Framework Agreement that defines the relationship between the parties
  • Terms of Use for Electronic Money

In the event that an EMD internalizes certain functions assigned to CentralPay as part of its regulatory obligations, a contract for Outsourced Essential Services must be signed. This is the case, for example, if the agent handles KYC management in-house or develops management interfaces that would prevent CentralPay from providing the service without the assistance of the PSEE.

2. Become an EMD Intermediary

Becoming a CentralPay distributor involves following a series of steps that take several weeks to complete.

Here is a guide to help you better understand the issues related to the acceptance and subsequent processing of distributors’ filing documents.

2.1. Summary of the Steps

  1. Understanding the Model
    • Explanation of the services provided by the intermediary
    • Defining Its Business Model
    • Approval by CentralPay’s Risk & Compliance Department
  2. Sales Offer
    • Overview
  3. Validation
    • Approval of the intermediary by CentralPay’s Risk & Compliance Department
    • Approval of the commercial proposal and pricing terms by the intermediary
  4. Test & Intégration
    • Setting Up the Sandbox
    • Project Kickoff Meeting with the Technical Team
    • Technical Integration Phase
  5. Review of the ACPR File
    • Gathering the information needed to compile the file
    • Preparing the Application
    • Overview of the Case
  6. Go-Live
    • Acceptance Testing
    • Go-Live

2.2. Documents to Submit to CentralPay

Coming Soon

SCT transaction Refund Reversal

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_6ab3046f4d2fa = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT transaction Refund Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f4d2fa", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f4d2fa.load(); });

SCT transaction Refund Reversal

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_6ab3046f4db1b = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT transaction Refund Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f4db1b", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f4db1b.load(); });

Bank Reconciliation

See more about Bank Reconciliation

jQuery(document).ready( function($) { window.live_6ab3046f4e2ea = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Reconciliation wireTransfer.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f4e2ea", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f4e2ea.load(); });

Bank Reconciliation

See more about Bank Reconciliation

jQuery(document).ready( function($) { window.live_6ab3046f4eb2d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Reconciliation wireTransfer.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f4eb2d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f4eb2d.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

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

Libellé relevé bancaire

Le libellé de relevé bancaire correspond à la description qui sera affichée sur le relevé de compte bancaire de vos clients pour chacune de vos transactions par carte.

Lorsqu’un profil Marchand CentralPay est créé, un libellé de relevé bancaire est défini automatiquement en utilisant le nom de votre premier Point de Vente : CPAY*NomDuPointDeVente

Vous pouvez demander à CentralPay de modifier votre libellé, cependant il doit permettre à vos clients de vous identifier clairement ou d’accéder à votre site de réclamation.

Bank statement descriptor

The bank statement descriptor is the description that will be displayed on your customers’ bank account statements for each of your card transactions.

When a CentralPay Merchant profile is created, a bank statement descriptor is defined automatically using the name of your first Point of Sale: CPAY*PointOfSaleName

You can request CentralPay to modify your descriptor; however, it must allow your customers to clearly identify you or access your complaint site.

Authentification 3DS 2.2

Articles

  • Transaction initiée par le porteur (CIT – BRW)
  • Transaction initiée par le marchand (MIT – 3RI)
  • Optimiser le taux de Frictionless
  • FAQ – 3DS 2.2

Transaction initiée par le porteur (CIT – BRW)

Le flux BRW (Browser) s’applique aux transactions initiées par le client (CIT — Customer-Initiated Transaction) : le titulaire de la carte est présent et valide lui-même le paiement. Cette CIT authentifiée sert aussi de socle aux transactions MIT futures.

👉 Pour une transaction initiée par le marchand sans le porteur (facturation récurrente, montant variable, usage-based, frais ponctuels), consultez la documentation du flux 3RI.

❌ Attention au choix du flux : utiliser le BRW pour une transaction initiée par le marchand (MIT) entraîne une non-conformité, une friction inutile et une réduction importante du taux de conversion.

1. Les grandes étapes du flux BRW

Le flux BRW enchaîne cinq étapes côté API, dont deux conditionnelles : versioning (la carte est-elle authentifiable ?) → 3DS Method (si nécessaire) → authentification → challenge (si la banque l’exige) → résultat, avant de réaliser la transaction.

Schéma du flux 3DS 2.2 BRW
ℹ️ Tout le processus doit se dérouler sur une seule et même page web, sans redirection vers une page bancaire, grâce à une solution d'iframe. C'est une contrainte du process bancaire.

Pour accélérer votre intégration du flux BRW, vous pouvez partir d’une application d’exemple complète (PHP / Twig) qui rejoue toute la séquence décrite sur cette page : formulaire de paiement CUSTOM, versioning, 3DS Method en iframe, authentication, gestion du challenge, results puis transaction, le tout sur une seule et même page, conformément à la contrainte bancaire.

👉 Télécharger le code d’exemple  ·  Voir la démo en ligne

Avant de lancer le code d'exemple, renseignez vos identifiants dans le fichier .env (API_USER, API_PASSWORD, POS_UUID) et faites pointer HOST_CENTRALPAY_API_CORE vers l'environnement de test https://test-api.centralpay.net/v2/rest/.

2. Versioning

Le versioning est la première étape : il interroge le réseau de la carte pour savoir si elle peut être authentifiée en 3DS 2.2, et récupère les éléments techniques nécessaires à la suite. Concrètement, vous adressez à l’API CentralPay le PAN de la carte (Primary Account Number, le numéro à 16 chiffres).

Exemple (curl) :

curl --location --request POST 'https://test-api.centralpay.net/v2/rest/3ds2/versioning' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA==' \
--data-urlencode 'acctNumber=4000001000000067'

Comprendre la réponse. Une carte est dite « enrôlée » lorsque la banque qui l’a émise participe au protocole 3DS 2.2 pour cette carte. C’est la banque émettrice qui en décide : ni vous ni CentralPay ne pouvez enrôler une carte. Le versioning sert justement à savoir si c’est le cas.

  • Carte non enrôlée → le versioning retourne une erreur 404 : l’authentification 3DS 2.2 est impossible pour cette carte. Prévoyez un repli (basculement en 3DS1 si supporté, ou refus du paiement selon votre politique de risque).
  • Carte enrôlée → vous recevez un identifiant d’opération, le threeDSServerTransID (généré par CentralPay et conservé jusqu’au résultat final), ainsi que, le cas échéant, les données nécessaires au « 3DS Method » (une URL + une donnée encodée en base64).

Pour une carte enrôlée, deux réponses sont possibles :

Version 1 (la plus fréquente) — un 3DS Method est attendu :

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "threeDSMethodURL": "https://test-3dss-demo.centralpay.net/acs/3ds-method",
    "threeDSMethodDataForm": {
        "threeDSMethodData": "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly90ZXN0LTNkc3MuY2VudHJhbHBheS5uZXQvM2RzLzNkcy1tZXRob2Qtbm90aWZpY2F0aW9uLyIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiOWNjNmIzM2MtZGQzNS00ZmJkLTgxY2QtZmQ5Y2YwYWVlZDljIn0="
    },
    "errorDetails": null
}

Les champs threeDSMethodURL et threeDSMethodData sont renseignés : passez à l’étape 3. 3DS Method.

Version 2 — pas de 3DS Method :

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "threeDSMethodURL": null,
    "threeDSMethodDataForm": null,
    "errorDetails": null
}

Seul threeDSServerTransID est renseigné (les champs 3DS Method sont vides) : passez directement à l’étape 4. Authentification.

3. 3DS Method

À quoi ça sert ? Le 3DS Method permet à la banque du porteur — via son ACS (Access Control Server, le serveur de la banque émettrice qui authentifie le porteur) — de collecter discrètement des informations techniques sur le navigateur du client, avant l’authentification. Ces informations enrichissent son analyse de risque et augmentent les chances d’une authentification frictionless (sans challenge pour le porteur).

Quand l’exécuter ? Uniquement si le versioning a renvoyé une valeur pour threeDSMethodURL et threeDSMethodData (cas « Version 1 » ci-dessus). Sinon, passez directement à l’authentification.

Comment ? Chargez l’threeDSMethodURL dans une iframe invisible (masquée à l’écran : cet échange est purement technique et ne doit rien afficher au porteur) et postez-y le champ threeDSMethodData. C’est le navigateur du porteur qui effectue cet appel vers la banque, en arrière-plan.

4. Authentification (BRW)

L’appel est adressé à l’URL 3ds2/authentication de l’API CentralPay. Cette requête transmet les données contextuelles liées au porteur et à son navigateur, qui permettent à la banque de décider si une authentification active (challenge) est nécessaire.

Exemple (curl) :

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'
💡 deviceChannel=02 indique le canal navigateur, propre au flux BRW. Les paramètres browser* (caractéristiques du navigateur du porteur) sont donc obligatoires ici.
Pour augmenter le taux d'authentification Frictionless, enrichissez cette requête avec les données contextuelles du porteur → voir Optimiser le taux de Frictionless

Champs à préciser selon l’objet de la CIT. Le champ threeDSRequestorAuthenticationInd est obligatoire : il indique la nature de l’authentification. Une CIT BRW peut servir soit à authentifier un paiement (messageCategory=01, PA), soit à authentifier une carte ou son porteur sans débit (messageCategory=02, NPA) — par exemple pour enregistrer une carte, la mettre à jour ou en vérifier le porteur. Les deux champs se renseignent de façon cohérente :

threeDSRequestorAuthenticationIndObjet de la CITmessageCategoryChamps requis en plus
01 — PaymentPaiement unitaire (ponctuel)01 (PA)—
02 — RecurringPaiement récurrent (abonnement)01 (PA)recurringExpiry, recurringFrequency
03 — InstalmentPaiement échelonné (en plusieurs fois)01 (PA)recurringExpiry, recurringFrequency, purchaseInstalData
04 — Add cardEnregistrement / empreinte d’une carte pour usage futur, sans débit02 (NPA)—
05 — Maintain cardMise à jour des informations d’une carte déjà enregistrée (ex. renouvellement)02 (NPA)—
06 — Cardholder verificationVérification du porteur dans le cadre de l’ID&V d’un token EMV02 (NPA)—
  • recurringExpiry → date après laquelle plus aucune autorisation ne sera effectuée (format YYYYMMDD).
  • recurringFrequency → nombre minimum de jours entre deux autorisations (1 à 999).
  • purchaseInstalData → nombre maximum d’autorisations (échéances) prévues pour le paiement échelonné (1 à 999).
ℹ️ Les cas 04, 05 et 06 sont des authentifications hors paiement : aucun montant ni champ de récurrence n'est requis. Elles ne préparent pas forcément une MIT — ce sont souvent une fin en soi (enregistrer, vérifier ou maintenir une carte). La carte ainsi authentifiée pourra ensuite servir à des transactions CIT (porteur présent) comme MIT (3RI).

La réponse contient un statut d’authentification (transStatus) qui détermine la suite à donner :

❌ Pas d’autorisation — ne pas effectuer la transaction

Statut (transStatus)Signification
NNon authentifié / compte non vérifié. Transaction refusée.
UAuthentification / vérification impossible (problème technique ou autre).
RAuthentification / vérification rejetée. L’émetteur demande de ne pas tenter d’autorisation.
IInformation seulement. Reconnaissance de la préférence du demandeur pour le challenge 3DS.

✅ Autorisation sans challenge

Statut (transStatus)Signification
YAuthentification réussie.
ATentative effectuée. Non authentifié / vérifié, mais une preuve de tentative est fournie.

🔐 Autorisation après challenge

Statut (transStatus)Signification
CChallenge requis : le porteur doit s’authentifier activement (voir étape 5), via les messages CReq/CRes (Challenge Request / Response).
DChallenge requis. Authentification découplée confirmée.

Exemples de réponses :

C — Challenge requis :

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "transStatus": "C",
    "acsTransID": "375d90ad-3873-498b-9133-380cbbc8d99d",
    "acsURL": "https://test-3dss-demo.centralpay.net/acs/challenge",
    "acsChallengeMandated": "Y",
    "base64EncodedChallengeRequest": "eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImU2MDFlYjQ0LTU2N2MtNDM4Ny05MmZjLWU2ZjIzMjJiODIyYiIsImFjc1RyYW5zSUQiOiI3ZTQzZDI4ZC00M2RkLTRmM2MtYTcwOS00YjZkZDVlZjc5Y2QiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIn0=",
    "contractId": "71602dd0-2790-4743-877b-e72530d7576d"
}

Y — Authentification réussie (challenge non nécessaire) :

{
    "threeDSServerTransID": "7d994177-32d8-43f7-87a4-3a3cd734cbfe",
    "transStatus": "Y",
    "acsTransID": "375d90ad-3873-498b-9133-380cbbc8d99d",
    "authenticationValue": "MTIzNDU2Nzg5MDA5ODc2NTQzMjEa",
    "eci": "02",
    "contractId": "71602dd0-2790-4743-877b-e72530d7576d"
}

Les champs requis pour la transaction sont présents : threeDSServerTransID, transStatus, authenticationValue (le cavv — Cardholder Authentication Verification Value, le cryptogramme qui prouve l’authentification) et eci (Electronic Commerce Indicator, qui indique le niveau d’authentification obtenu et conditionne le transfert de responsabilité en cas de fraude). Le xid n’est pas fourni : c’est une référence libre destinée aux marchands.

N — Transaction refusée :

{
    "threeDSServerTransID": "6396b832-3e5b-4143-bde6-f5r1c1e47da0",
    "transStatus": "N",
    "eci": "00",
    "contractId": "258128f3-5db9-4235-918a-f1d786f67c29"
}

5. Challenge

Le challenge est l’étape où le porteur s’authentifie activement auprès de sa banque (code à usage unique reçu par SMS, validation dans l’application bancaire, biométrie…). Il n’a lieu que si l’authentification a renvoyé transStatus = C.

  • Une iframe doit soumettre un formulaire à l’acsURL retournée à l’étape 4.
  • Le seul paramètre envoyé est creq, dont la valeur est le base64EncodedChallengeRequest issu de l’authentification.
  • À la fin du challenge, l’URL que vous avez fournie (notificationURL) est appelée par la banque.

En environnement de test, le challenge s’affiche sous forme d’un OTP (One-Time Password, code à usage unique) ; en production, c’est la fenêtre de l’ACS de la banque qui s’affiche :

Fenêtre de challenge OTP en environnement de test

OTP de test :

  • 1234 → Y (simule un challenge réussi – Authentification réussie)
  • 4444 → A (simule un challenge réussi – Non authentifié / vérifié, mais une preuve de tentative est fournie.)
  • 1111 → N (simule un challenge échoué – Non authentifié / compte non vérifié)
  • 2222 → R (simule un challenge échoué – Authentification / vérification rejetée)
  • 3333 → U (simule un challenge échoué – Authentification / vérification impossible (problème technique ou autre)

6. Réponse du challenge

À l’issue du challenge, le résultat est transmis dans le paramètre cres, encodé en base64. Décodez-le pour lire le statut. Exemple en PHP :

$retour = json_decode(base64_decode($_POST['cres']), true);
  • Si le statut est Y ou A, le challenge est validé et le paiement est autorisé : appelez GET /results (étape 7) pour récupérer les données 3DS nécessaires à la transaction.
  • Toute autre valeur signifie que le challenge a échoué : le paiement est refusé.

7. Résultat

Cette étape récupère les données 3DS définitives à reporter dans la transaction. Adressez le threeDSServerTransID de l’authentification.

ℹ️ Si l'authentification a directement retourné transStatus = Y (sans challenge), les données 3DS y figurent déjà : cette étape n'est pas nécessaire.

Appel :

curl --location -g --request GET 'https://test-api.centralpay.net/v2/rest/3ds2/results/{{threeDSServerTransID}}' \
--header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA=='

Réponse :

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "transStatus": "Y",
    "acsTransID": "375d90ad-3873-498b-9133-380cbbc8d99d",
    "authenticationValue": "JAmi21makAifmwqo2120cjq1AAA=",
    "eci": "01"
}
🔁 Préparer les MIT futures (3RI). Si cette CIT doit servir de référence à des paiements ultérieurs initiés par le marchand, conservez l'acsTransID de la séquence d'authentification : il sera requis comme threeDSReqPriorRef côté 3RI.

8. Transaction

Données à renseigner pour valider une transaction authentifiée en 3DS 2.2 :

  • 3ds[threeDSServerTransID] = threeDSServerTransID
  • 3ds[status] = transStatus
  • 3ds[cavv] = authenticationValue
  • 3ds[eci] = eci (obligatoire si disponible)
  • 3ds[xid] = paramètre custom, référence libre destinée aux marchands

Exemple (curl) :

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'

Étape suivante : pour les transactions ultérieures initiées par le marchand (MIT), voir 3DS 2.2 – 3RI.

Transaction initiée par le marchand (MIT – 3RI)

Le flux 3RI (3DS Requestor Initiated) s’applique aux transactions initiées par le marchand (MIT — Merchant-Initiated Transaction) : le marchand déclenche le débit sans intervention du porteur, dans le cadre d’un mandat préexistant, sur la base d’une transaction CIT authentifiée antérieurement.

Il couvre l’ensemble des cas MIT : facturations récurrentes, montants variables, modèles usage-based, frais ponctuels, débits différés (no-show, pénalités), pas seulement les abonnements à montant fixe.

👉 Si le porteur est présent et valide lui-même le paiement, utilisez le flux BRW. Pour le cadre contractuel, les exemptions d’authentification (SCA) et la durée de validité d’une CIT, consultez la page Bonnes pratiques — Merchant Initiated Transaction (MIT).

1. Prérequis : une transaction CIT déjà authentifiée

Le porteur étant absent, le 3RI ne ré-authentifie personne : il réutilise la preuve d’authentification produite lors d’une transaction CIT (porteur présent) réalisée précédemment via le flux BRW.

Lors de cette CIT, le serveur de la banque émettrice qui a authentifié le porteur — l’ACS (Access Control Server) — a généré un identifiant unique pour cette authentification : l’acsTransID. C’est ce acsTransID que vous rattacherez à chacune de vos MIT, pour prouver à la banque que la carte a bien été authentifiée une première fois avec le consentement du porteur.

⚠️ Conservez l'acsTransID de la CIT. Sans CIT authentifiée préalable — et donc sans acsTransID — une transaction 3RI ne peut pas aboutir. Si vous n'en avez pas, réalisez d'abord une CIT en BRW pour authentifier et tokeniser la carte.

2. Authentification (3RI)

L’appel est adressé à l’URL 3ds2/authentication de l’API CentralPay, comme pour le flux BRW, mais avec deux différences clés :

  • Le canal est différent. deviceChannel=03 indique une transaction initiée par le marchand (3RI), sans navigateur du porteur. Les paramètres browser* du flux BRW sont donc inutiles ici.
  • On référence la CIT. L’acsTransID conservé à l’étape 1 est placé dans le champ threeDSReqPriorRef, qui désigne « l’authentification précédente à laquelle se rattache cette transaction ».

Identification de la carte. Le porteur étant absent, on ne saisit pas de carte en séance : on référence la carte déjà stockée sur le client (Customer) en transmettant customerId + cardId.

💡 N'envoyez qu'une seule source de carte. Combiner deux sources (par ex. cardId + un token, ou un PAN + un token) déclenche l'erreur « There is no unique source of card » (voir la FAQ).

Exemple (curl) :

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=01' \
--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=1' \
--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=375d90ad-3873-498b-9133-380cbbc8d99d' \
--data-urlencode 'threeDSRequestorDecReqInd=N' \
--data-urlencode 'threeDSRequestorAuthenticationInd=02' \
--data-urlencode 'threeRIInd=01'

2.1. Explication des principaux paramètres

ParamètreDescription
deviceChannel03 → 3DS Requestor Initiated (transaction initiée par le marchand, sans navigateur du porteur)
messageCategory01 → PA (Payment Authentication) = Authentification rattachée à un paiement (ex. transaction récurrente)
02 → NPA (Non-Payment Authentication) = authentification hors paiement (ex. enregistrement ou vérification d’une carte sans débit).
threeDSReqPriorRefdoit contenir l’acsTransID de la transaction CIT (BRW) précédente (voir étape 1)
purchaseAmountmontant de l’achat courant
purchaseCurrencymonnaie au format ISO
purchaseExponentunité mineure de la monnaie courante
purchaseDatedate de l’achat
recurringExpirydate après laquelle plus aucune autorisation ne pourra être effectuée
recurringFrequencynombre de jours minimum entre deux autorisations
acctTypetype de compte (03 = debit)
chAccAgeIndancienneté du compte du titulaire auprès du demandeur 3DS :
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
chAccChangedate de dernière modification du compte du titulaire (format YYYYMMDD)
chAccDatedate d’ouverture du compte du titulaire (format YYYYMMDD)
nbPurchaseAccountnombre d’achats effectués avec ce compte au cours des six derniers mois
paymentAccAgedate d’inscription du compte de paiement sur le compte du titulaire
paymentAccIndancienneté de l’inscription du compte de paiement :
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
threeDSReqPriorAuthMethodMéthode d’authentification de la CIT initiale :
01 → si frictionless
02 → si le porteur a relevé un challenge
03 → AVS
04 → autre
threeDSReqPriorAuthTimestampdate et heure (UTC) de l’authentification précédente (format YYYYMMDDHHMM)
threeDSRequestorDecReqIndN → ne pas utiliser l’authentification découplée
threeDSRequestorAuthenticationInd02 → transaction récurrente
threeRIIndType de transaction 3RI :
01 → transaction récurrente
02 → transaction échelonnée
03 → ajout de carte
04 → maintenance
05 → vérification de compte
06 → expédition fractionnée/différée
07 → rechargement
08 → vente par correspondance
09 → vente par téléphone
10 → vérification statut whitelist
11 → autre paiement

Exemple de réponse :

{
    "threeDSServerTransID": "67dc456c-6c7a-987f-92cf-f68752525d0c",
    "transStatus": "Y",
    "eci": "02",
    "contractId": "fb8736a5-8741-19b6-9d38-ec135888e0bf"
}

Ici, threeDSServerTransID est l’identifiant de l’opération généré par CentralPay (à reporter dans la transaction), et eci (Electronic Commerce Indicator) indique le niveau d’authentification obtenu, qui conditionne le transfert de responsabilité en cas de fraude.

2.2. Statuts retournés (transStatus) et conduite à tenir

L’objectif est d’obtenir une authentification sans friction (frictionless), c’est-à-dire un transStatus = Y. Tentez systématiquement le 3RI, puis agissez selon le transStatus retourné.

ℹ️ Le support du 3RI dépend du scheme de la carte et de la version 3DS de la banque émettrice : il n'est jamais garanti à l'avance. D'où la conduite « best effort » ci-dessous — vous tentez le 3RI, et vous ne vous appuyez sur son résultat que s'il est positif.

✅ Authentification réussie — exploitez le résultat (transfert de responsabilité)

Statut (transStatus)Signification
YAuthentification réussie.
ATentative effectuée. Non authentifié / vérifié, mais une preuve de tentative est fournie.

→ Réalisez la transaction en transmettant les données 3DS issues du 3RI (voir étape 3). Le transfert de responsabilité vers l’émetteur s’applique.

⚠️ 3RI non abouti — réalisez la transaction sans authentification (« best effort »)

Statut (transStatus)Signification
NNon authentifié / compte non vérifié.
UAuthentification / vérification impossible (problème technique ou autre).
IInformation seulement.
C / DChallenge demandé (impossible en MIT car porteur absent — voir note ci-dessous).

→ Vous pouvez réaliser la transaction classique sans les données 3RI : le Customer (customerId + cardId) assure le chaînage automatique à la CIT initiale. Attention : dans ce cas, le transfert de responsabilité ne s’applique pas (risque de contestation accru) et le risque de refus de l’autorisation est plus élevé.

⚠️ Challenge en MIT (C / D). Un challenge suppose la présence du porteur, par définition absent en MIT. Deux cas : si le porteur peut revenir (ex. abonnement avec espace client), rejouez une CIT en BRW pour réauthentifier la carte ; sinon, traitez-le comme un 3RI non abouti et réalisez la transaction sans authentification (best effort). Voir Bonnes pratiques — MIT.

❌ Refus explicite — ne pas tenter la transaction

Statut (transStatus)Signification
RAuthentification rejetée : l’émetteur demande de ne pas tenter l’autorisation.

→ N’effectuez pas la transaction, même sans 3RI.

3. Transaction

Une fois l’authentification 3RI réussie (Y ou A), renseignez les données 3DS suivantes dans l’appel transaction :

  • 3ds[threeDSServerTransID] = threeDSServerTransID généré par l’authentification 3RI (pas celui d’une transaction précédente)
  • 3ds[status] = transStatus
  • 3ds[eci] = eci (obligatoire si disponible)
  • 3ds[xid] = paramètre custom, référence libre destinée aux marchands
⚠️ N'envoyez pas 3ds[cavv] en 3RI. Le cavv (Cardholder Authentication Verification Value, le cryptogramme qui prouve l'authentification) est propre au flux BRW ; il est absent de la réponse 3RI et ne doit pas être transmis ici.

Exemple (curl) :

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'
ℹ️ Cas « best effort » (3RI non abouti). Si le 3RI n'a pas abouti (transStatus autre que Y/A, et hors R), réalisez la même transaction sans l'objet 3ds[...] : le Customer (customerId + cardId) suffit à chaîner l'opération à la CIT initiale. Le transfert de responsabilité ne s'applique alors pas.

À lire aussi : Bonnes pratiques — Merchant Initiated Transaction (MIT) pour le cadre contractuel, le mandat et les exemptions d’authentification (SCA).

Optimiser le taux de Frictionless

Qu’est-ce que le frictionless ?

Une authentification est dite frictionless lorsque la banque du porteur valide l’opération sans aucune interaction de sa part (pas de challenge : ni code à usage unique, ni validation dans l’application bancaire). La banque authentifie « en silence », sur la base des données reçues et de sa propre analyse de risque (Risk-Based Authentication).

Son intérêt est double :

  • Meilleure conversion : aucune étape supplémentaire pour le porteur, donc moins d’abandons.
  • Responsabilité transférée : comme pour une authentification avec challenge réussie, un frictionless réussi (transStatus = Y) reporte la responsabilité en cas de fraude vers la banque émettrice. C’est ce qui le distingue d’un paiement sans 3DS.
ℹ️ La décision finale appartient toujours à la banque émettrice. Aucun levier ne garantit le frictionless : l'émetteur peut imposer un challenge quelle que soit votre intégration. Les pistes ci-dessous maximisent les chances de frictionless, elles ne le forcent pas.

Levier 1 — Enrichir les données d’authentification

C’est le levier le plus important. Plus la requête d’authentification (3ds2/authentication) contient de données contextuelles fiables sur le porteur, mieux la banque évalue le risque et plus elle accorde un frictionless. À l’inverse, une requête minimale (montant + données navigateur seulement) prive la banque des éléments qui lui permettraient de se passer du challenge.

Tous les champs ci-dessous sont acceptés par l’API aussi bien en BRW qu’en 3RI, et sont marqués Recommended ou Conditional (à envoyer dès que l’information est disponible) :

Coordonnées du porteur

ChampRôle
emailadresse e-mail du porteur (conditionnel : à envoyer sauf restriction locale)
homePhone / mobilePhone / workPhonenuméros de téléphone du porteur (indicatif [cc] + numéro [subscriber])
deliveryEmailAddresse-mail de livraison (pour une livraison électronique)

Adresse de facturation et de livraison

ChampRôle
billAddrLine1/2/3, billAddrCity, billAddrPostCode, billAddrState, billAddrCountryadresse de facturation
shipAddrLine1/2/3, shipAddrCity, shipAddrPostCode, shipAddrState, shipAddrCountryadresse de livraison
shipAddressUsageIndancienneté d’utilisation de l’adresse de livraison

Historique du compte client

ChampRôle
chAccAgeInd, chAccDate, chAccChangeancienneté et dernière modification du compte du porteur chez le marchand
paymentAccAge, paymentAccIndancienneté de l’enregistrement du moyen de paiement
nbPurchaseAccountnombre d’achats sur les six derniers mois
provisionAttemptsDaynombre de tentatives d’ajout de carte sur 24 h
preOrderDate, preOrderPurchaseIndinformations de pré-commande, le cas échéant
💡 La consigne pratique : transmettez tout ce dont vous disposez de fiable. Une donnée incohérente (adresse erronée) est contre-productive ; une donnée fiable absente est une occasion manquée de frictionless.

Levier 2 — Exécuter le 3DS Method

Lorsque le versioning le propose, exécutez systématiquement le 3DS Method : il permet à la banque de collecter en arrière-plan l’empreinte technique du navigateur du porteur, ce qui nourrit directement son analyse de risque. Le sauter revient à priver la banque d’informations qui favorisent le frictionless. Voir la procédure sur la page BRW.

Levier 3 — Exprimer une préférence et signaler les exemptions

Le champ threeDSRequestorChallengeInd (optionnel, flux BRW) permet d’indiquer à la banque votre préférence en matière de challenge, et de signaler qu’une exemption s’applique :

ValeurSignification
01Pas de préférence
02Pas de challenge souhaité
03Challenge souhaité (préférence du marchand)
04Challenge souhaité (obligation)
05Pas de challenge — analyse de risque transactionnelle (TRA) déjà réalisée
06Pas de challenge — partage de données uniquement
07Pas de challenge — authentification forte (SCA) déjà réalisée
08Pas de challenge — exemption « bénéficiaire de confiance » (whitelist)
09Pas de challenge — invitation au whitelisting si un challenge est requis
⚠️ Les valeurs 05, 07 et 08 déclarent qu'une exemption s'applique. Ne les utilisez que si l'exemption correspondante s'applique réellement à votre configuration : déclarer à tort une exemption engage votre responsabilité et peut entraîner un soft decline (voir FAQ). En cas de doute, conservez 01 ou 02.

Le champ whiteListStatus permet par ailleurs de communiquer le statut « bénéficiaire de confiance » du marchand (Y = marchand whitelisté par le porteur, N, E, P, R, U). Lorsqu’un porteur ajoute votre enseigne à sa liste de confiance auprès de sa banque, ses paiements suivants passent plus facilement en frictionless.

Levier 4 — Bien implémenter les transactions initiées par le marchand (MIT)

Une fois une transaction CIT initiale authentifiée, les transactions ultérieures initiées par le marchand (MIT) s’effectuent via le flux 3RI et sortent du champ de l’authentification forte. C’est l’un des moyens les plus directs de supprimer la friction sur les paiements récurrents, échelonnés ou ultérieurs : authentifier une fois (CIT), réutiliser ensuite (MIT).

Ce qui reste hors de votre contrôle

Même avec des données complètes et une exemption demandée, l’émetteur peut décider d’un challenge (step-up). Si vous tentez une autorisation sans authentification (via exemption) et que l’émetteur la refuse, vous recevez un soft decline : il faut alors rejouer l’opération avec authentification. Voir l’entrée correspondante dans la FAQ.

FAQ – 3DS 2.2

Choix du flux

Dois-je utiliser le flux BRW ou le flux 3RI ?

Le critère est qui initie la transaction et si le porteur est présent, pas le rang de la transaction :

  • BRW → transaction initiée par le client (CIT), porteur présent qui valide lui-même le paiement. À utiliser pour la première authentification d’une carte comme pour tout paiement où le client agit en séance.
  • 3RI → transaction initiée par le marchand (MIT), porteur absent, sur la base d’une CIT authentifiée antérieure (référencée via threeDSReqPriorRef).

Voir la vue d’ensemble de la section et la page MIT.

Puis-je utiliser le flux BRW pour mes transactions récurrentes / initiées par le marchand ?

Non. Le BRW suppose un navigateur et un porteur présents. L’employer pour des MIT entraîne friction inutile, soft declines et non-conformité DSP2. Pour ces transactions, utilisez le 3RI, qui s’appuie sur l’acsTransID de la CIT initiale. Une MIT peut toutefois être exceptionnellement requalifiée en CIT par l’émetteur ; dans ce cas, rejouez une CIT (BRW) avec le porteur.

Environnement de test

Existe-t-il des cartes de test pour des transactions 3DS2 en environnement RCT ?

👉 Consultez la liste des cartes de test de l’environnement RCT.

Erreurs et statuts d’authentification 3DS

Mon versioning retourne une erreur 404 « Card account number not found in card ranges from Directory Server ». Que faire ?

La carte utilisée n’est pas enrôlée 3DS 2.2 : la transaction ne peut pas se faire en 3DS 2.2. Nous conseillons de prévoir un basculement vers un paiement en 3DS1 pour ce type de carte.

La requête Result retourne transStatus = U. Comment l’interpréter ?

La valeur U signifie que l’authentification / vérification n’a pas pu se faire (problème technique ou autre).

  • Côté SmartForm : lors du challenge, seules les valeurs Y et A valident le challenge et permettent de continuer le paiement. Les autres valeurs font échouer le challenge et le paiement.
  • Côté CustomForm : le comportement peut différer. Vous pouvez utiliser la valeur U pour retenter un challenge ; en cas de nouvel échec, basculer en 3DS1, ou considérer le paiement comme refusé. Ces différents traitements sont possibles.
SmartForm vs CustomForm : le SmartForm est la page de paiement hébergée par 

Après soumission du formulaire à l’acsURL, le client revient sans CRES mais avec un paramètre ERROR (base64) et un THREEDSSESSIONDATA vide. Que faire ?

Vérifiez que tout votre process 3DS2 se déroule sur une seule et même page via la solution d’iframe. Si le processus est conforme, 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, grâce à la solution d’iframe.

Erreur 303 « acquirerBIN, acquirerMerchantID not recognized » lors de l’authentification. Que faire ?

Il s’agit soit d’un contrat qui n’est pas 3DS2, soit d’un autre problème. Dans ce dernier cas, contactez le support technique en fournissant le numéro de contrat monétique (si connu) et les autres informations utiles.

Erreur 203 « Validation of 3DS Requestor Authentication data failed […] » pour le champ merchant.merchantName. Que signifie-t-elle ?

L’erreur 203 signale un caractère invalide dans le paramètre merchant.merchantName.

Erreur « There is no unique source of card » dans la clé card data. Que signifie-t-elle ?

Cette erreur, commune à toute la plateforme, survient lorsque vous envoyez les informations de carte deux fois : par exemple un cardToken et un cardId, ou un PAN et un cardToken. N’envoyez qu’une seule source de carte.

Illustration de l'erreur de source de carte
Exemple complémentaire

Autorisation bancaire

L’API transaction retourne « Soft Decline » alors que threeDSServerTransID est bien celui retourné par le CRES. Que faire ?

Le soft decline (code A1) est renvoyé par la banque lorsque le 3DS n’est pas présent dans la transaction. Vérifiez qu’aucun champ 3ds[...] n’est manquant — voir les données à transmettre sur la page BRW, étape Transaction.

Codes retour banque 5 et 12 (hors 3DS)

Ces codes proviennent de l’autorisation bancaire et ne sont pas spécifiques au 3DS.

  • Code 5 : la banque refuse sans donner de statut particulier (CVV erroné ou autre décision que nous ne connaissons pas). Ce statut ne permet pas d’affirmer que la banque refusera l’autorisation après d’autres tentatives.
  • Code 12 : la banque refuse sans donner de statut particulier. Causes possibles : transaction invalide ; CAVV erroné ou invalide (le CAVV est le cryptogramme d’authentification fourni par l’ACS lors du 3DS, à ne pas confondre avec le CVV) ; ou autre décision que nous ne connaissons pas.

3DS 2.2 authentication

Articles

  • Transaction Initiated by the Holder (CIT – BRW)
  • Merchant-initiated transaction (MIT – 3RI)
  • Optimize the Frictionless Rate
  • FAQ – 3DS 2.2

Transaction Initiated by the Holder (CIT – BRW)

The BRW (Browser) flow applies to Customer-Initiated Transactions (CIT): the cardholder is present and authorizes the payment personally. This authenticated CIT also serves as the foundation for future MIT transactions.

👉 For a transaction initiated by the merchant without the cardholder (recurring billing, variable amounts, usage-based charges, one-time fees), see the 3RI flow documentation.

❌ Be careful when choosing the payment flow: Using BRW for a merchant-initiated transaction (MIT) results in non-compliance, unnecessary friction, and a significant drop in the conversion rate.

1. The main steps in the BRW workflow

The BRW flow consists of five steps on the API side, two of which are conditional: versioning (is the card authenticatable?) → 3DS Method (if necessary) → authentication → challenge (if required by the bank) → result, before completing the transaction.

3DS 2.2 BRW flow diagram
ℹ️ The entire process must take place on a single web page, without being redirected to a bank page, using an iframe solution. This is a requirement of the banking process. 

To speed up your integration of the BRW flow, you can start with a complete sample application (PHP/Twig) that replicates the entire sequence described on this page: CUSTOM payment form, versioning, 3DS Method in an iframe, authentication, challenge handling, results, and then the transaction, all on a single page, in accordance with banking requirements.

👉 Download the sample code · View the online demo

Before running the sample code, enter your credentials in the file .env  (API_USER,  API_PASSWORD,  POS_UUID) and point it HOST_CENTRALPAY_API_CORE to the test environment https://test-api.centralpay.net/v2/rest/.

2. Versioning

The versioning is the first step: it queries the card network to determine whether the card can be authenticated using 3DS 2.2, and retrieves the technical information needed for the rest of the process. Specifically, you send the card’s PAN (Primary Account Number, the 16-digit number) to the CentralPay API.

Sample (curl) :

curl --location --request POST 'https://test-api.centralpay.net/v2/rest/3ds2/versioning' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA==' \
--data-urlencode 'acctNumber=4000001000000067'

Understanding the response. A card is said to be “enrolled” when the bank that issued it participates in the 3DS 2.2 protocol for that card. This is determined by the issuing bank: neither you nor CentralPay can enroll a card. Versioning is used precisely to determine whether this is the case.

  • Card not enrolled → versioning return a 404 error: the 3DS 2.2 authentification is impossible for this card. Plan for a fallback (switch to 3DS1 if supported, or decline the payment according to your risk policy).
  • Card enrolled → you receive a transaction ID, the threeDSServerTransID (generated by CentralPay and retained until the final result is available), as well as, if applicable, the data required for the “3DS Method” (a URL and data encoded in Base64).

For a rolled-up card, there are two possible answers:

Version 1 (the most common) — a 3DS Method is expected:

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "threeDSMethodURL": "https://test-3dss-demo.centralpay.net/acs/3ds-method",
    "threeDSMethodDataForm": {
        "threeDSMethodData": "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly90ZXN0LTNkc3MuY2VudHJhbHBheS5uZXQvM2RzLzNkcy1tZXRob2Qtbm90aWZpY2F0aW9uLyIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiOWNjNmIzM2MtZGQzNS00ZmJkLTgxY2QtZmQ5Y2YwYWVlZDljIn0="
    },
    "errorDetails": null
}

The threeDSMethodURL and threeDSMethodData field have been filled in: proceed to step 3. 3DS Method.

Version 2 — no 3DS Method:

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "threeDSMethodURL": null,
    "threeDSMethodDataForm": null,
    "errorDetails": null
}

Only threeDSServerTransID is filled in (the 3DS Method fields are empty): proceed directly to Step 4. Authentication.

3. 3DS Method

What is it used for? The 3DS Method allows the cardholder’s bank — via its ACS (Access Control Server, the issuing bank’s server that authenticates the cardholder) — to discreetly collect technical information about the customer’s browser, before authentication. This information enhances the bank’s risk analysis and increases the likelihood of frictionless authentication (without requiring the cardholder to complete a challenge).

When should this be executed? Only if versioning returned a value for threeDSMethodURL and threeDSMethodData (the “Version 1” case above). Otherwise, proceed directly to authentication.

How? Load the threeDSMethodURL into an invisible iframe (hidden from view: this exchange is purely technical and should not display anything to the user) and post the threeDSMethodData field there. The user’s browser makes this call to the bank in the background.

4. (BRW) Authentification

The request is sent to the CentralPay API URL 3ds2/authentication. This request transmits contextual data related to the cardholder and their browser, which allows the bank to determine whether active authentication (challenge) is required.

Sample (curl) :

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'
💡 deviceChannel=02 indicates the browser channel, specific to the BRW feed. The browser* (the cardholder's browser characteristics) are therefore required here.
To increase the frictionless authentication rate, enrich this request with contextual data about the cardholder → see Optimizing the Frictionless Rate

Fields to be specified based on the purpose of the CIT. Field threeDSRequestorAuthenticationInd is required: it specifies the type of authentication. A CIT BRW can be used to authenticate a payment (messageCategory=01, PA), or to authenticate a card or its holder without a charge (messageCategory=02, NPA) — for example, to register a card, update it, or verify the cardholder. Both fields must be filled out consistently:

threeDSRequestorAuthenticationIndPurpose of the CITmessageCategoryAdditional required fields
01 — PaymentPer-unit payment (one-time)01 (PA)—
02 — RecurringRecurring payment (subscription)01 (PA)recurringExpiry, recurringFrequency
03 — InstalmentInstallment payments (in several payments)01 (PA)recurringExpiry, recurringFrequency, purchaseInstalData
04 — Add cardRegistering/encoding a card for future use, with no charge02 (NPA)—
05 — Maintain cardUpdating the information for an already registered card (e.g., renewal)02 (NPA)—
06 — Cardholder verificationCardholder verification as part of the ID&V process for an EMV token02 (NPA)—
  • recurringExpiry → the date after which no further authorizations will be issued (format YYYYMMDD).
  • recurringFrequency → minimum number of days between two authorizations (1 to 999).
  • purchaseInstalData → maximum number of authorizations (due dates) specified for installment payments (1 to 999).
ℹ️ Cases 04, 05, and 06 are non-payment authentications: no amount or recurrence field is required. They do not necessarily lead to an MIT transaction — they are often an end in themselves (to register, verify, or maintain a card). The card authenticated in this way can then be used for both CIT (cardholder present) and MIT (3RI) transactions.  

The response contains an authentication status (transStatus) that determines the next steps:

❌ No authorization — do not complete the transaction

Status (transStatus)Meaning
NNon authenticated/unverified account. Transaction declined.
UAuthentication/verification failed (technical issue or other problem).
RAuthentication/verification declined. The sender requests that you do not attempt to obtain authorization.
IFor informational purposes only. Acknowledgment of the applicant’s preference for the 3DS Challenge.

✅ Authorization without challenge

Status (transStatus)Meaning
YAuthentication successful.
AAttempt made. Not authenticated/verified, but a proof of the attempt is provided.

🔐 Authorization after challenge

Status (transStatus)Meaning
CChallenge required: the owner must actively authenticate (see step 5) using CReq/CRes (Challenge Request/Response) messages.
DChallenge required. Decoupled authentication confirmed.

Sample of responses:

C — Challenge required:

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "transStatus": "C",
    "acsTransID": "375d90ad-3873-498b-9133-380cbbc8d99d",
    "acsURL": "https://test-3dss-demo.centralpay.net/acs/challenge",
    "acsChallengeMandated": "Y",
    "base64EncodedChallengeRequest": "eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImU2MDFlYjQ0LTU2N2MtNDM4Ny05MmZjLWU2ZjIzMjJiODIyYiIsImFjc1RyYW5zSUQiOiI3ZTQzZDI4ZC00M2RkLTRmM2MtYTcwOS00YjZkZDVlZjc5Y2QiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIn0=",
    "contractId": "71602dd0-2790-4743-877b-e72530d7576d"
}

Y — Authentication successful (no challenge required):

{
    "threeDSServerTransID": "7d994177-32d8-43f7-87a4-3a3cd734cbfe",
    "transStatus": "Y",
    "acsTransID": "375d90ad-3873-498b-9133-380cbbc8d99d",
    "authenticationValue": "MTIzNDU2Nzg5MDA5ODc2NTQzMjEa",
    "eci": "02",
    "contractId": "71602dd0-2790-4743-877b-e72530d7576d"
}

The required fields for the transaction are present: threeDSServerTransID, transStatus, authenticationValue (the CAVV — Cardholder Authentication Verification Value, the security code that verifies authentication) and eci (Electronic Commerce Indicator, which indicates the level of authentication achieved and determines the transfer of liability in the event of fraud). The xid is not provided: it is an optional reference intended for merchants.

N — Transaction declined:

{
    "threeDSServerTransID": "6396b832-3e5b-4143-bde6-f5r1c1e47da0",
    "transStatus": "N",
    "eci": "00",
    "contractId": "258128f3-5db9-4235-918a-f1d786f67c29"
}

5. Challenge

The challenge is the step in which the cardholder actively authenticates themselves with their bank (one-time code received via text message, validation in the banking app, biometrics, etc.). It occurs only if the authentication returned transStatus = C.

  • An iframe must submit a form to the acsURL page returned in step 4.
  • The only parameter sent is creq, whose value is the base64EncodedChallengeRequest obtained from authentication.
  • At the end of the challenge, the URL you provided (notificationURL) is called by the bank.

In a test environment, the challenge appears as an OTP (One-Time Password); in production, the bank’s ACS window appears:

OTP challenge window in a test environment

Test OTP:

  • 1234 → Y (simulates a successful challenge – Authentication successful)
  • 4444 → A (simulates a successful challenge – Not authenticated/verified, but a proof of the attempt is provided.)
  • 1111 → N (simulates a failed challenge – No authenticated/unverified account)
  • 2222 → R (simulates a failed challenge – Authentication/verification declined)
  • 3333 → U (simulates a failed challenge – Authentication/verification failed (technical issue or other problem)

6. Challenge response

Once the challenge is complete, the result is returned in the cres parameter, encoded in Base64. Decode it to read the status. Example in PHP:

$retour = json_decode(base64_decode($_POST['cres']), true);
  • If the status is Y or A, the challenge is validated and the payment is authorized: call GET /results (step 7) to retrieve the 3DS data required for the transaction.
  • Any other value means the challenge failed: the payment was declined.

7. Result

This step retrieves the final 3DS data to be included in the transaction. Send the threeDSServerTransID authentication request.

ℹ️ If the authentication returned transStatus = Y directly (without a challenge), the 3DS data is already included: this step is not necessary.

Call:

curl --location -g --request GET 'https://test-api.centralpay.net/v2/rest/3ds2/results/{{threeDSServerTransID}}' \
--header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA=='

Response:

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "transStatus": "Y",
    "acsTransID": "375d90ad-3873-498b-9133-380cbbc8d99d",
    "authenticationValue": "JAmi21makAifmwqo2120cjq1AAA=",
    "eci": "01"
}
🔁 Prepare for future MITs (3RI). If this CIT is to serve as a reference for subsequent payments initiated by the merchant, retain the acsTransID from the authentication sequence: it will be required as threeDSReqPriorRef on the 3RI side.

8. Transaction

Information required to validate a transaction authenticated using 3DS 2.2:

  • 3ds[threeDSServerTransID] = threeDSServerTransID
  • 3ds[status] = transStatus
  • 3ds[cavv] = authenticationValue
  • 3ds[eci] = eci (required if available)
  • 3ds[xid] = custom parameter, free-form reference for merchants

Sample (curl) :

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'

Next step: For subsequent merchant-initiated transactions (MIT), see 3DS 2.2 – 3RI.

Merchant-initiated transaction (MIT – 3RI)

The 3RI (3DS Requestor Initiated) flow applies to merchant-initiated transactions (MIT): the merchant initiates the debit without the cardholder’s involvement, under a pre-existing authorization, based on a previously authenticated CIT transaction.

It covers all MIT scenarios: recurring billing, variable amounts, usage-based templates, one-time fees, and deferred debits (no-shows, penalties), not just fixed-rate subscriptions.

👉 If the cardholder is present and authorizes the payment themselves, use the BRW flow. For information on the contractual framework, Strong Customer Authentication (SCA) exemptions, and the validity period of a CIT, see the Best Practices — Merchant Initiated Transaction (MIT) page.

1. Prerequisite: a CIT transaction that has already been authenticated

Since the cardholder is absent, the 3RI does not re-authenticate anyone: it reuses the authentication proof generated during a previous CIT transaction (with the cardholder present) carried out via the BRW flow.

During this CIT, the issuing bank’s server that authenticated the cardholder — the ACS (Access Control Server) — generated a unique identifier for this authentication: theacsTransID. This is the acsTransID that you will associate with each of your MITs to prove to the bank that the card was indeed authenticated for the first time with the cardholder’s consent.

⚠️ Keep the acsTransID from the CIT. Without a previously authenticated CIT — and therefore without acsTransID — a 3RI transaction cannot be completed. If you don't have one, first perform a CIT in BRW to authenticate and tokenize the card. 

2. (3RI) Authentication

The request is sent to the CentralPay API URL 3ds2/authentication, just like for the BRW flow, but with two key differences:

  • The channel is different. deviceChannel=03 Indicates a transaction initiated by the merchant (3RI), without the cardholder using a browser. The browser* parameters in the BRW flow are therefore unnecessary here.
  • The CIT is referenced. The acsTransID value retained in step 1 is placed in the threeDSReqPriorRef field, which refers to “the previous authentication associated with this transaction.”

Card identification. Since the cardholder is not present, no card is scanned during the session: the card already stored for the customer (Customer) is referenced by transmitting customerId + cardId.

💡 Send only one card source. Combining two sources (e.g., cardId + a token, or a PAN + a token) triggers the error “There is no unique source of card” (see the FAQ). 

Sample (curl) :

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=01' \
--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=1' \
--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=375d90ad-3873-498b-9133-380cbbc8d99d' \
--data-urlencode 'threeDSRequestorDecReqInd=N' \
--data-urlencode 'threeDSRequestorAuthenticationInd=02' \
--data-urlencode 'threeRIInd=01'

2.1. Explanation of the main parameters

ParametersDescription
deviceChannel03 → 3DS Requestor Initiated (transaction initiated by the merchant, without the cardholder using a browser)
messageCategory01 → PA (Payment Authentication) = Authentication associated with a payment (e.g., recurring transaction)
02 → NPA (Non-Payment Authentication) = authentication that does not involve a payment (e.g., registration or card verification without a charge).
threeDSReqPriorRefmust contain the acsTransID from the previous CIT (BRW) transaction (see step 1)
purchaseAmountamount of the current purchase
purchaseCurrencycurrency in ISO format
purchaseExponentminor unit of the current currency
purchaseDatedate of purchase
recurringExpirythe date after which no further authorizations may be issued
recurringFrequencyminimum number of days between two authorizations
acctTypeaccount type (03 = debit)
chAccAgeIndlength of time the account holder has had an account with the 3DS requester:
01 → no account
02 → created during the transaction
03 → less than 30 days
04 → between 30 and 60 days
05 → more than 60 days
chAccChangedate of the last change to the account holder’s account (format YYYYMMDD)
chAccDateaccount holder’s account opening date (format YYYYMMDD)
nbPurchaseAccountnumber of purchases made with this account over the past six months
paymentAccAgedate the payment account was credited to the account holder’s account
paymentAccIndlenght of time the payment account has been registered:
01 → no account
02 → created during the transaction
03 → less than 30 days
04 → between 30 ans 60 days
05 → more than 60 days
threeDSReqPriorAuthMethodInitial CIT Authentication Method:
01 → if frictionless
02 → if the cardholder has completed a challenge
03 → AVS
04 → other
threeDSReqPriorAuthTimestampdate and time (UTC) of the previous authentication (format YYYYMMDDHHMM)
threeDSRequestorDecReqIndN → do not use decoupled authentication
threeDSRequestorAuthenticationInd02 → recurring transaction
threeRIIndType of 3RI transaction:
01 → recurring transaction
02 → installment transaction
03 → add a card
04 → maintenance
05 → account verification
06 → split/delayed shipment
07 → recharging
08 → mail-order sales
09 → telephone sales
10 check whitelist status
11 → other payment

Sample of response:

{
    "threeDSServerTransID": "67dc456c-6c7a-987f-92cf-f68752525d0c",
    "transStatus": "Y",
    "eci": "02",
    "contractId": "fb8736a5-8741-19b6-9d38-ec135888e0bf"
}

Here, threeDSServerTransID is the transaction ID generated by CentralPay (to be included in the transaction), and eci (Electronic Commerce Indicator) indicates the level of authentication achieved, which determines the transfer of liability in the event of fraud.

2.2. Returned statuses (transStatus) and recommended course of action

The goal is to achieve frictionless authentication, that is, a transStatus = Y. Always try the 3RI first, then proceed according to the transStatus returned.

ℹ️ Support for 3RI depends on the card's scheme and the issuing bank's 3DS version: it is never guaranteed in advance. Hence the “best effort” approach described below — you attempt 3RI, and you only rely on the result if it is positive. 

✅ Authentication successful — use the results (transfer of responsibility)

Status (transStatus)Meaning
YAuthentication successful.
AAttempt made. Not authenticated/verified, but a proof of the attempt is provided.

→ Complete the transaction by submitting the 3DS data from the 3RI (see Step 3). Liability shifts to the issuer.

⚠️ 3RI failed — complete the transaction without authentication (“best effort”)

Status (transStatus)Meaning
NNot authenticated/unverified account.
UAuthentication/verification failed (technical issue or other problem).
IFor informational purposes only.
C / DChallenge requested (not possible in MIT because the cardholder is absent — see note below).

→ You can perform the standard transaction without the 3RI data: the Customer (customerId + cardId) ensures automatic linking to the initial CIT. Please note: In this case, the transfer of responsibility does not apply (increased risk of dispute), and the risk of authorization denial is higher.

⚠️ MIT Challenge (C / D). A challenge requires the cardholder to be present, which, by definition, is not the case with MIT. There are two scenarios: if the cardholder can return (e.g., subscription with a customer portal), reprocess a CIT in BRW to re-authenticate the card; otherwise, treat it as an unsuccessful 3RI and complete the transaction without authentication (best effort). See Best Practices — MIT.  

❌ Explicit refusal — do not attempt the transaction

Status (transStatus)Meaning
RAuthentication declined: the sender requests that you do not attempt to obtain authorization.

→ Do not complete the transaction, even without a 3RI.

3. Transaction

Once 3RI authentication is successful (Y or A), enter the following 3DS data in the transaction call:

  • 3ds[threeDSServerTransID] = threeDSServerTransID generated by 3RI authentication (not the one from a previous transaction)
  • 3ds[status] = transStatus
  • 3ds[eci] = eci (required if available)
  • 3ds[xid] = custom parameter, free-form reference for merchants
⚠️ Do not send 3ds[cavv] in3RI. The cavv (Cardholder Authentication Verification Value, the cryptogram that verifies authentication) is specific to the BRW stream; it is not included in the 3RI response and should not be transmitted here.

Sample (curl) :

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'
ℹ️ « best effort » case (3RI not completed). If the 3RI is not completed (transStatus other than Y/A, and excluding R), perform the same transaction without the subject 3ds[...] : the Customer  (customerId  +  cardId) is sufficient to link the operation to the initial CIT. In that case, the transfer of liability does not apply. 

See also: Best Practices — Merchant-Initiated Transactions (MIT) for the contractual framework, mandate, and Strong Customer Authentication (SCA) exemptions.

Optimize the Frictionless Rate

What is “frictionless”?

Authentication is considered “frictionless” when the cardholder’s bank approves the transaction without any interaction on the cardholder’s part (no challenge: no one-time code and no confirmation in the banking app). The bank authenticates “silently,” based on the data received and its own risk analysis (Risk-Based Authentication).

It serves two purposes:

  • Better conversion: no extra steps for the carrier, so fewer dropouts.
  • Liability Shift: As with successful challenge-based authentication, a successful frictionless transaction (transStatus = Y) shifts liability for fraud to the card issuer. This is what distinguishes it from a payment without 3DS.
ℹ️ The final decision always rests with the issuer bank. No approach guarantees a frictionless experience: the issuer may require verification regardless of your integration. The strategies below maximize the chances of a frictionless experience; they do not guarantee it. 

Lever 1 — Enhance authentication data

This is the most important lever. The more reliable contextual data about the user that the authentication request (3ds2/authentication) contains, the better the bank can evaluate the risk and the more likely it is to provide frictionless access. Reverse, a minimal request (amount + browser data only) deprives the bank of the information it would need to bypass the challenge.

All of the fields below are accepted by the API in both BRW and 3RI formats and are marked as “Recommended” or “Conditional” (to be submitted as soon as the information is available):

Contact information for the cardholder

FieldRole
emailcardholder’s email address (conditional: to be sent unless restricted by local regulations)
homePhone / mobilePhone / workPhonecardholder’s phone numbers (area code [cc] + number [subscriber])
deliveryEmailAddressdelivery email (for electronic delivery)

Billing and shipping address

FieldRole
billAddrLine1/2/3, billAddrCity, billAddrPostCode, billAddrState, billAddrCountrybilling address
shipAddrLine1/2/3, shipAddrCity, shipAddrPostCode, shipAddrState, shipAddrCountryshipping address
shipAddressUsageIndlength of time the shipping address has been in use

Customer account history

FieldRole
chAccAgeInd, chAccDate, chAccChangethe account holder’s account age and the date of the last change made to the account with the merchant
paymentAccAge, paymentAccIndlength of time the payment method has been registered
nbPurchaseAccountnumber of purchases over the past six months
provisionAttemptsDayNumber of attempts to add a card in a 24-hour period
preOrderDate, preOrderPurchaseIndpre-order information, if applicable
💡 Practical tip: Share all the reliable information you have. Inconsistent data (such as an incorrect address) is counterproductive; missing reliable data is a missed opportunity for a frictionless experience. 

Lever 2 — Run the 3DS Method

Whenever versioning allows it, always run the 3DS Method: it enables the bank to collect the technical fingerprint of the cardholder’s browser in the background, which directly feeds into its risk analysis. Skipping this step deprives the bank of information that promotes a frictionless experience. See the procedure on the BRW page.

Lever 3 — Expressing a preference and reporting exemptions

The threeDSRequestorChallengeInd field (optional, BRW flow) allows you to indicate your challenge preference to the bank and to specify that an exemption applies:

ValueMeaning
01No preference
02No challenge desired
03Desired challenge (merchant’s preference)
04Desired challenge (required)
05No challenge — transactional risk analysis (TRA) already completed
06No challenge — data sharing only
07No challenge — strong customer authentication (SCA) already completed
08No challenge — “trusted beneficiary” exemption (whitelist)
09No challenge — invitation to whitelist if a challenge is required
⚠️ The values 05, 07 and 08 indicate that an exemption applies. Use them only if the corresponding exemption actually applies to your configuration: incorrectly declaring an exemption makes you liable and may result in a soft decline (see FAQ). If in doubt, use 01 or 02. 

The field whiteListStatus also allows you to indicate the merchant’s « trusted beneficiary » status (Y = merchant whitelisted by the cardholder, N, E, P, R, U). When a cardholder adds your merchant to their trusted list with their bank, their subsequent payments go through more smoothly and frictionless.

Lever 4 — Properly implement merchant-initiated transactions (MIT)

Once an initial CIT transaction has been authenticated, subsequent transactions initiated by the merchant (MIT) are processed via the 3RI flow and are no longer subject to strong authentication. This is one of the most direct ways to reduce friction in recurring, installment, or future payments: authenticate once (CIT), then reuse (MIT).

What’s beyond your control

Even with complete data and a requested exemption, the issuer may decide to issue a challenge (step-up). If you attempt an authorization without authentication (via exemption) and the issuer denies it, you will receive a soft decline: you must then retry the transaction with authentication. See the corresponding entry in the FAQ.

FAQ – 3DS 2.2

Selecting a flow

Should I use the BRW feed or the 3RI feed?

The criterion is who initiates the transaction and if the cardholder is present, not the order of the transaction:

  • BRW → customer-initiated transaction (CIT), where the cardholder is present and authorizes the payment personally. Use this for the initial authentication of a card as well as for any payment where the customer is present during the transaction.
  • 3RI → merchant-initiated transaction (MIT), with the cardholder absent, based on a previously authenticated CIT (referenced via threeDSReqPriorRef).

See the section overview and the MIT page.

Can I use the BRW feed for my recurring or Merchant-initiated transactions?

No. The BRW assumes that both a browser and a cardholder are present. Using it for MITs results in unnecessary friction, soft declines, and PSD2 non-compliance. For these transactions, use the 3RI, which relies on the acsTransID from the initial CIT. However, an MIT may, in exceptional cases, be reclassified as a CIT by the issuer; in this case, reprocess a CIT (BRW) with the cardholder.

Test environment

Are there any test cards for 3DS2 transactions in a Sandbox environment?

👉 View the list of test maps for the RCT environment.

3DS authentication errors and statuses

My versioning is returning a 404 error: « Card account number not found in card ranges from Directory Server. » What should I do?

The card being used is not enrolled in 3DS 2.2: the transaction cannot be processed using 3DS 2.2. We recommend switching to a 3DS1 payment for this type of card.

The Result query returns  » transStatus = U. » How should this be interpreted?

The value U means that authentication/verification could not be completed (due to a technical issue or other problem).

  • Regarding SmartForm: during the challenge, only the values Y and A pass the challenge and allow the payment to proceed. Any other values cause the challenge and the payment to fail.
  • Regarding CustomForm : the behavior may vary. You can use the value U to retry a challenge; if it fails again, switch to 3DS1, or treat the payment as declined. These different handling options are possible.
SmartForm vs. CustomForm : SmartForm is the payment page hosted by 

After submitting the form toacsURL, the customer returns without a CRES but with a  » ERROR  » (base64) parameter and an empty  » THREEDSSESSIONDATA. » What should be done?

Verify that your entire 3DS2 process takes place on a single page using the iframe solution. If the process is compliant, contact technical support with the necessary information.

ℹ️ As a reminder, all steps of the form are completed on a single page, without being redirected to a bank page or any other page, thanks to the iframe solution.

Error 303: « acquirerBIN, acquirerMerchantID not recognized » during authentication. What should I do?

This is either a contract that is not 3DS2 or another issue. In the second case, contact technical support and provide the electronic payment contract number (if known) and any other relevant information.

Error 203: “Validation of 3DS Requestor Authentication data failed […]” for the “ merchant.merchantName ” field. What does this mean?

Error 203 indicates an invalid character in parameter merchant.merchantName.

« There is no unique source of card » error in the key ` card data`. What does this mean?

This error, which is common across the entire platform, happens when you send card information twice: for example a cardToken and a cardId, or a PAN and a cardToken. Send only one set of card information.

Illustration of the card source error
Additional example

Bank Authorization

The transaction API returns « Soft Decline, » even though  » threeDSServerTransID  » is indeed the status returned by CRES. What should I do?

The bank returns a “soft decline” (code A1) when 3DS is not included in the transaction. Verify that no 3ds[...] fields are missing — see the data to be transmitted on the BRW page, under the “Transaction” step.

Bank return codes 5 and 12 (excluding 3DS)

These codes come from the bank authorization and are not specific to 3DS.

  • Code 5: The bank declines the transaction without providing a specific reason (incorrect CVV or another reason we are unaware of). This status does not indicate that the bank will decline authorization after further attempts.
  • Code 12: The bank declines the transaction without providing a specific status. Possible causes: invalid transaction; incorrect or invalid CAVV (the CAVV is the authentication code provided by the ACS during 3DS; not to be confused with the CVV); or another reason unknown to us.

Parcours d'entrée en relation

CentralPay propose plusieurs modes d’entrée en relation, selon votre situation :

  • Vous êtes un marchand standard, partenaire ou mandataire en relation directe avec CentralPay
  • Vous êtes un marchand participant d’un mandataire, ou un marchand standard rattaché à un partenaire technique utilisant la solution CentralPay

Ce guide détaille les différentes étapes, selon votre profil. Certaines étapes peuvent être adaptées ou simplifiées selon les modalités de votre intégration.

1. Marchands en direct

Le parcours d’entrée en relation comporte six étapes principales.

1.1. Qualification de votre projet

Nos équipes commerciales échangent avec vous pour analyser votre projet :

  • Parcours de paiement envisagé (web, mobile, point de vente, récurrent…)
  • Moyens de paiement souhaités (carte, virement, SEPA, Pay By Bank…)
  • Méthodes d’intégration (API, portail, connecteur)
  • Typologie de vos clients finaux (B2B, B2C, abonnements…)
  • Volumétrie estimée (fréquence et montants)

1.2. Pré-analyse conformité de votre projet

Sur la base des informations fournies, notre service conformité effectue une pré-analyse réglementaire visant à :

  • Vérifier la compatibilité de votre activité avec notre cadre réglementaire
  • Identifier les points de vigilance potentiels (secteur sensible, flux complexes…)
  • Prédéfinir les éventuelles garanties ou conditions particulières

1.3. Signature du contrat cadre

Une fois cette pré-analyse validée, vous êtes invité à signer le contrat cadre de services de paiement ou de monnaie électronique.

  • Voir le contrat cadre de services de paiement
  • Un représentant légal peut désigner un mandataire pour signer à sa place (modèle de délégation disponible sur demande)

1.4. Lancement de l’intégration

Après signature du contrat :

  • Vous recevez vos accès à l’environnement de test
  • Vous accédez aux documentations techniques CentralPay

Si vous bénéficiez d’un accompagnement personnalisé, une réunion d’onboarding est organisée pour configurer vos premiers paramétrages (notifications, versements, droits utilisateurs…).

1.5. Création du profil Marchand CentralPay

Le représentant légal reçoit un lien d’inscription sécurisé pour créer le profil :

  • Il complète les informations juridiques
  • Il valide les Conditions Générales d’Utilisation
  • L’analyse de conformité complète est alors déclenchée

Cette analyse peut donner lieu à :

  • Des demandes de documents complémentaires (KYC/KYB, contrats, justificatifs…)
  • Un refus d’ouverture si les critères réglementaires ne sont pas remplis
  • Une validation du profil, menant à son ouverture

1.6. Mise en production

Une fois l’ensemble des étapes validées, y compris l’intégration et les éventuelles factures initiales :

  • Une date de mise en production est convenue
  • Votre profil est débloqué
  • Vous pouvez encaisser vos premières transactions

2. Marchands liés à un partenaire technique

Si vous êtes un marchand intégré via un partenaire technique ou mandataire de CentralPay, le parcours est simplifié.

Vous entrez directement à l’étape 5 : Création du profil Marchand CentralPay.

2.1. Étape unique : Création du profil et validation réglementaire

  • Vous recevez un lien d’inscription transmis par votre partenaire ou directement par CentralPay.
  • Ce lien vous permet de :
    • Compléter les informations relatives à votre structure
    • Décrire précisément votre activité, la typologie de vos clients finaux et la volumétrie estimée de vos opérations
    • Valider les Conditions Générales d’Utilisation et signer le contrat cadre

Les aspects techniques (intégration, parcours, moyens de paiement) sont déjà définis dans le cadre de la convention signée avec le partenaire technique ou le mandataire.

L’analyse de conformité complète de CentralPay reste obligatoire avant validation du profil.

Onboarding Path

CentralPay offers several ways of onboarding, depending on your situation:

  • You are a standard merchant, partner, or intermediary working directly with CentralPay
  • You are a Participant Merchant through an Intermediary, or a standard merchant affiliated with a Technical Partner using the CentralPay solution

This guide outlines the various steps based on your profile. Some steps may be adapted or simplified depending on the specifics of your Integration process.

1. Online Merchants

The onboarding process consists of six main steps.

1.1. Project Eligibility

Our sales teams will work with you to analyze your project:

  • Proposed payment channels (web, mobile, Point of Sale (POS), recurring, etc.)
  • Preferred payment methods (credit card, Bank transfer, SEPA, Pay By Bank, etc.)
  • Integration Methods (API, Portal, Connector)
  • Profile of Your End Customers (B2B, B2C, subscriptions, etc.)
  • Estimated volume (frequency and amounts)

1.2. Preliminary Compliance Analysis of Your Project

Based on the information provided, our compliance department conducts a preliminary regulatory analysis aimed at:

  • Check whether your business is compatible with our regulatory framework
  • Identify potential areas of concern (sensitive sectors, complex flows, etc.)
  • Specify any warranties or special conditions in advance

1.3. Signing of the Master Agreement

Once this preliminary analysis has been approved, you will be asked to sign the Payment Services Framework Agreement or Electronic money agreement.

  • View the Payment Services Framework Agreement
  • A legal representative may designate an intermediary to sign on their behalf (sample delegation form available upon request)

1.4. Launch of the Integration

After signing the contract:

  • You will receive your login credentials for the test environment
  • You can access the CentralPay technical documentation

If you are receiving personalized support, an onboarding meeting will be scheduled to set up your initial settings (notifications, Payouts, user permissions, etc.).

1.5. Creating a CentralPay Merchant Profile

The legal representative receives a secure registration link to create the profile:

  • It supplements the legal information
  • He accepts the Terms and Conditions of Use
  • The comprehensive compliance analysis is then initiated

This analysis may lead to:

  • Requests for additional documents (KYC/KYB, contracts, supporting documents, etc.)
  • A refusal to open the account if the regulatory criteria are not met
  • Profile validation, leading to its activation

1.6. Go-Live

Once all steps have been validated, including Integration and any initial invoices:

  • A go-live date has been agreed upon
  • Your profile has been unlocked
  • You can cash out your first transactions

2. Merchants affiliated with a Technical Partner

If you are a merchant integrated through a CentralPay Technical Partner or Intermediary Merchant, the process is simplified.

You’ll go directly to Step 5: Creating a CentralPay Merchant Profile.

2.1. Single Step: Profile Creation and Regulatory Approval

  • You will receive a registration link sent by your partner or directly from CentralPay.
  • This link allows you to:
    • Please complete the information about your organization
    • Describe your business in detail, the types of end customers you serve, and the estimated volume of your operations
    • Accept the Terms and Conditions of Use and sign the framework agreement

The technical aspects (integration, user flow, payment methods) have already been defined as part of the agreement signed with the Technical Partner or Intermediary.

CentralPay’s comprehensive compliance review remains mandatory before the profile can be approved.

ClearedOperation

jQuery(document).ready( function($) { window.live_6ab3046f561f5 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_ClearedOperation.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f561f5", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f561f5.load(); });

ClearedOperation

jQuery(document).ready( function($) { window.live_6ab3046f56669 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_ClearedOperation.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f56669", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f56669.load(); });

Développeurs

Articles

  • How to use the swagger
  • Authentication 3DS 2.2
  • Attachment
  • Balance Histories
  • BankAccount
  • Card token
  • CARD Transaction
  • Charge
  • ClearedOperation
  • CpayUser
  • Credit
  • Customer
  • Deposit
  • Deposits
  • Event
  • Exchange
  • Identity
  • Info
  • Installment Payment
  • MerchantInfo
  • MID
  • Movement
  • Origin
  • PIS
  • Payment Request
  • Payout
  • Point Of Sale
  • Refund
  • PendingOperation
  • Regularisation
  • RIB
  • SCT Transaction
  • SDD Transaction
  • Scenario
  • SourceType
  • Subscription
  • Transfer
  • TransferReversal
  • Wallet
  • Blacklist
  • WhiteList
  • Onboarding
  • Object status
  • Webhook notifications
  • Resources by type

How to use the swagger

You’ll find below instruction to use our swagger properly

1 – This is where you can choose the server you’ll call for your tests. For now, only RCT (Test Api) is available.
2 – In order to do your tests, you’ll need to authenticate with your credentials. You can use here your RCT (test) Api login and password. You can also use our test login : Doctest:4I9HJRTd
Don’t use your Production login for the tests, you’ll get a 401 error.


3 – This is where you will be able to see the parameters for each endpoint, and do your tests.

4 – Try it out. Use this if you want to be able to test the endpoint. Make sure you’re authenticated before doing so.
5 – This is where you’ll be able to use the test values of your choosing. By default, most values are already filled, but use yours for better results.
6 – Click here once values are filled to call our Api and do your tests.
7 – This is where you’ll see the results once you called our Api. You’ll also find here by default responses example for this endpoint.

Authentication 3DS 2.2

See more about 3DS 2.2

jQuery(document).ready( function($) { window.live_6ab3046e02024 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_3D-Secure 2.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046e02024", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046e02024.load(); });

Attachment

jQuery(document).ready( function($) { window.live_6ab3046e8e8b8 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Attachment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046e8e8b8", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046e8e8b8.load(); });

Balance Histories

jQuery(document).ready( function($) { window.live_6ab3046eb4182 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Balance Histories.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046eb4182", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046eb4182.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_6ab3046f045e5 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Account.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f045e5", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f045e5.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_6ab3046f22af9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Card Token.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f22af9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f22af9.load(); });

CARD Transaction

Transaction

See more about card transactions

jQuery(document).ready( function($) { window.live_6ab3046da9c4d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046da9c4d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046da9c4d.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_6ab3046e02f78 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Card.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046e02f78", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046e02f78.load(); });

Credit

See more about Credit

jQuery(document).ready( function($) { window.live_6ab3046e7a4a3 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Credit.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046e7a4a3", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046e7a4a3.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_6ab3046e95db9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Dispute.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046e95db9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046e95db9.load(); });

Charge

jQuery(document).ready( function($) { window.live_6ab3046f4a6c9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Charge.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f4a6c9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f4a6c9.load(); });

ClearedOperation

jQuery(document).ready( function($) { window.live_6ab3046f561f5 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_ClearedOperation.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f561f5", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f561f5.load(); });

CpayUser

jQuery(document).ready( function($) { window.live_6ab3046f58a01 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_CpayUser.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f58a01", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f58a01.load(); });

Credit

jQuery(document).ready( function($) { window.live_6ab3046f58ea6 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Credit.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f58ea6", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f58ea6.load(); });

Customer

See more about Customer

jQuery(document).ready( function($) { window.live_6ab3046f5972c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Customer.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5972c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5972c.load(); });

Deposit

jQuery(document).ready( function($) { window.live_6ab3046f59bee = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Deposit.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f59bee", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f59bee.load(); });

Deposits

jQuery(document).ready( function($) { window.live_6ab3046f5a085 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Deposits.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5a085", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5a085.load(); });

Event

jQuery(document).ready( function($) { window.live_6ab3046f5a6db = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Event.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5a6db", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5a6db.load(); });

Exchange

jQuery(document).ready( function($) { window.live_6ab3046f5ab7e = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Exchange.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5ab7e", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5ab7e.load(); });

Identity

jQuery(document).ready( function($) { window.live_6ab3046f5b056 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Identity.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5b056", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5b056.load(); });

Info

jQuery(document).ready( function($) { window.live_6ab3046f5b4f4 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Info.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5b4f4", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5b4f4.load(); });

Installment Payment

See more about Installment Payment

jQuery(document).ready( function($) { window.live_6ab3046f5bc96 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Installment Payment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5bc96", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5bc96.load(); });

MerchantInfo

jQuery(document).ready( function($) { window.live_6ab3046f5c0f8 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Merchant.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5c0f8", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5c0f8.load(); });

MID

jQuery(document).ready( function($) { window.live_6ab3046f5c790 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_MID.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5c790", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5c790.load(); });

Movement

jQuery(document).ready( function($) { window.live_6ab3046f5cc30 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Movement.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5cc30", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5cc30.load(); });

Origin

See more about Payment Requests

jQuery(document).ready( function($) { window.live_6ab3046f5d3ff = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Origin.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5d3ff", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5d3ff.load(); });

PIS

See more about Payment Requests

jQuery(document).ready( function($) { window.live_6ab3046f5dba1 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_PIS.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5dba1", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5dba1.load(); });

Payment Request

See more about Payment Requests

jQuery(document).ready( function($) { window.live_6ab3046f5e31c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Payment Request.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5e31c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5e31c.load(); });
jQuery(document).ready( function($) { window.live_6ab3046f5e32b = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_PaymentRequestHistory.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5e32b", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5e32b.load(); });

Payout

See more about Payout

jQuery(document).ready( function($) { window.live_6ab3046f5eb57 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Payout.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5eb57", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5eb57.load(); });
jQuery(document).ready( function($) { window.live_6ab3046f5eb66 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Merchant Payout Setup.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5eb66", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5eb66.load(); });

Point Of Sale

jQuery(document).ready( function($) { window.live_6ab3046f5f073 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Point Of Sale.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5f073", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5f073.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_6ab3046f5fe48 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Refund.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5fe48", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5fe48.load(); });

PendingOperation

jQuery(document).ready( function($) { window.live_6ab3046f60340 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_PendingOperation.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f60340", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f60340.load(); });

Regularisation

jQuery(document).ready( function($) { window.live_6ab3046f607c4 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Regularisation.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f607c4", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f607c4.load(); });

RIB

jQuery(document).ready( function($) { window.live_6ab3046f60bf5 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Rib.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f60bf5", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f60bf5.load(); });

SCT Transaction

SCT Transaction

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_6ab3046eefdd2 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046eefdd2", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046eefdd2.load(); });

SCT Transaction Reversal

See more about SCT Transaction Reversal

jQuery(document).ready( function($) { window.live_6ab3046f23dbb = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f23dbb", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f23dbb.load(); });

SCT Transaction Refund

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_6ab3046f43d3e = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction Refund.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f43d3e", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f43d3e.load(); });

SCT transaction Refund Reversal

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_6ab3046f4d2fa = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT transaction Refund Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f4d2fa", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f4d2fa.load(); });

Bank Reconciliation

See more about Bank Reconciliation

jQuery(document).ready( function($) { window.live_6ab3046f4e2ea = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Reconciliation wireTransfer.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f4e2ea", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f4e2ea.load(); });

Bank Reconciliation external

See more about Bank Reconciliation

jQuery(document).ready( function($) { window.live_6ab3046f61bc6 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Reconciliation external.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f61bc6", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f61bc6.load(); });

SDD Transaction

Mandate

See more about Mandate

jQuery(document).ready( function($) { window.live_6ab3046f628b5 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Mandate.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f628b5", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f628b5.load(); });

SDD Transaction

See more about SDD Transaction

jQuery(document).ready( function($) { window.live_6ab3046f6330d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6330d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6330d.load(); });

SDD Transaction Reversal

See more about SDD Transaction Reversal

jQuery(document).ready( function($) { window.live_6ab3046f63bac = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f63bac", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f63bac.load(); });

SDD Transaction Refund

jQuery(document).ready( function($) { window.live_6ab3046f64050 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Refund.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f64050", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f64050.load(); });

SDD Transaction Refund Reversal

jQuery(document).ready( function($) { window.live_6ab3046f644a9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Refund Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f644a9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f644a9.load(); });

Scenario

jQuery(document).ready( function($) { window.live_6ab3046f64a11 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Scenario.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f64a11", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f64a11.load(); });

SourceType

jQuery(document).ready( function($) { window.live_6ab3046f64e68 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SourceType.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f64e68", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f64e68.load(); });

Subscription

Subscription Model

See more about Subscription Model

jQuery(document).ready( function($) { window.live_6ab3046f65a21 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Subscription Model.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f65a21", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f65a21.load(); });

Subscription

See more about Subscription

jQuery(document).ready( function($) { window.live_6ab3046f662f1 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Subscription.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f662f1", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f662f1.load(); });

Invoice

See more about Invoice & invoiceItem

jQuery(document).ready( function($) { window.live_6ab3046f66b11 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Invoice.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f66b11", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f66b11.load(); });

InvoiceItem

See more about Invoice & invoiceItem

jQuery(document).ready( function($) { window.live_6ab3046f67318 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Invoice Item.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f67318", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f67318.load(); });

Transfer

jQuery(document).ready( function($) { window.live_6ab3046f678e9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Transfer.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f678e9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f678e9.load(); });

TransferReversal

jQuery(document).ready( function($) { window.live_6ab3046f67d0b = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Transfer Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f67d0b", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f67d0b.load(); });

Wallet

jQuery(document).ready( function($) { window.live_6ab3046f682e7 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Wallet.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f682e7", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f682e7.load(); });

Blacklist

jQuery(document).ready( function($) { window.live_6ab3046f6880d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Blacklist.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6880d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6880d.load(); });

WhiteList

jQuery(document).ready( function($) { window.live_6ab3046f68dea = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Whitelist.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f68dea", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f68dea.load(); });

Onboarding

Create Enrollement

jQuery(document).ready( function($) { window.live_6ab3046f69912 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Create enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f69912", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f69912.load(); });

jQuery(document).ready( function($) { window.live_6ab3046f69921 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_User.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f69921", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f69921.load(); });

Complete enrollment

jQuery(document).ready( function($) { window.live_6ab3046f69f7c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Complete enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f69f7c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f69f7c.load(); });

jQuery(document).ready( function($) { window.live_6ab3046f69f8b = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Complete additional enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f69f8b", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f69f8b.load(); });

jQuery(document).ready( function($) { window.live_6ab3046f69f97 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f69f97", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f69f97.load(); });

Update enrollment

jQuery(document).ready( function($) { window.live_6ab3046f6a5ea = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Update enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6a5ea", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6a5ea.load(); });

jQuery(document).ready( function($) { window.live_6ab3046f6a5f9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Rollback enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6a5f9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6a5f9.load(); });

Search enrollement

jQuery(document).ready( function($) { window.live_6ab3046f6ac09 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Search enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6ac09", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6ac09.load(); });

Enrollment Details

jQuery(document).ready( function($) { window.live_6ab3046f6b1c8 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Enrollment details.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6b1c8", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6b1c8.load(); });

E-money

jQuery(document).ready( function($) { window.live_6ab3046f6b79e = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Autocomplete.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6b79e", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6b79e.load(); });

jQuery(document).ready( function($) { window.live_6ab3046f6b7ad = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Autoupdate.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6b7ad", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6b7ad.load(); });

Misc

jQuery(document).ready( function($) { window.live_6ab3046f6bbc3 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Configuration.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6bbc3", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6bbc3.load(); });

Object status

MERCHANT-ENROLLMENT status

This page lists the possible values returned by the status field in the EnrollmentWorkflow object. These statuses indicate the current state of a merchant onboarding process initiated through CentralPay’s API or user portal.

📌 Status List

StatusDescription
API_CALLThe enrollment was initiated via API. The workflow has been created but no validation has occurred yet.
VALIDATIONThe onboarding request is currently under validation (e.g., verifying provided data and uploaded documents).
ON_GOINGThe process is ongoing. The merchant is expected to provide more information or complete additional steps.
OVERRIDECentralPay has overridden a previous decision and resumed processing the enrollment.
REFUSEDThe enrollment request has been refused. CentralPay may have detected a regulatory issue, risk, or missing eligibility requirement.
ACCEPTEDThe merchant enrollment is complete and validated. The merchant can now use their CentralPay account.

🔁 Status Flow Overview

✅ Standard Status Flow

API_CALL → VALIDATION → ON_GOING → ACCEPTED

This is the default progression for a successful enrollment:

  • API_CALL – The enrollment has been created via API. No validation has started yet.
  • VALIDATION – CentralPay is verifying the submitted information and documents.
  • ON_GOING – The merchant is expected to provide additional data or complete onboarding steps.
  • ACCEPTED – The enrollment has been approved. The merchant can now use their CentralPay account.

❌ Alternative Flow – Rejection

API_CALL → VALIDATION → REFUSED

or

API_CALL → VALIDATION → ON_GOING → REFUSED

The enrollment is rejected during the process, either early on or after attempted completion. Common reasons include:

  • Invalid or non-compliant documents
  • Ineligible merchant activity
  • Excessive financial or regulatory risk

🔁 Manual Override After Refusal

REFUSED → OVERRIDE → VALIDATION / ON_GOING

If new or corrected information is provided, a CentralPay operator may resume the process after an initial refusal.

The OVERRIDE status indicates that a manual decision has been made to re-open the enrollment flow.

💬 Notes

  • An Agent or DME may retrieve the enrollment status via API to track progress.
  • CentralPay sends webhooks to the configured endpoint when the enrollment status changes (e.g., ACCEPTED, REFUSED).
  • Once the enrollment is ACCEPTED, the merchant’s profile becomes active, and their account is ready for use.

TRANSFER status

This page lists and describes the status values associated with the Transfer object. These statuses reflect the progression of a fund transfer operation created via the /transfer endpoint in CentralPay’s API.

Status values

StatusDescription
CREATEDThe transfer has been successfully created and registered. It has not yet been executed.
SCHEDULEDThe transfer is scheduled for automatic execution at a defined date/time.
PENDINGThe transfer is being processed. Execution is in progress but not yet finalized.
CANCELEDThe transfer was canceled 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 → CANCELED

If the transfer is canceled 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 canceled 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.
CANCELEDThe reversal request was canceled 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 → CANCELED

🔍 Notes

  • A reversal can only be initiated if the original transfer is eligible.
  • Once DONE, the reversal is final and reflected in both wallets.
  • Status changes can be tracked via webhook notifications if configured.

PAYMENT REQUEST status

  • Payment request status:
    • ACTIVE
    • CLOSED
    • CANCELED
  • Payment status :
    • UNPAID
    • ACCEPTED
    • PARTIALLY_PAID
    • PAID

The following table explains every possible status combination and what they point out :

Payment request statusPayment status Explanation
ACTIVEUNPAIDPayment request created, waiting for the customer’s payment.
ACTIVEPARTIALLY_PAIDThe customer has paid part of the total sum of the payment request that will stay ACTIVE while waiting for the remaining payment(s).
ACTIVEACCEPTEDTemporary status that is exclusive for the SDD transactions, PIS transactions, pre-authorization and deferred payments. The customer has done the required action and the operation is waiting for the processing.
CLOSEDPAIDThe payment request has been fully paid.
CLOSEDPARTIALLY_PAIDThe payment request has been partially paid and the merchant has manually closed it. This can be performed from the API or the user portal if the merchant is satisfied with this partial payment of the customer and allows to stop any automatic reminders.
CANCELEDUNPAIDThe payment request was cancelled before the customer’s payment. This cancellation may be initiated by the merchant via API or via the User Portal (in the event of an error in the creation or cancellation of an order, for example), or carried out automatically if the link expires. This cancellation reason is visible from the User Portal.

TRANSACTION status

Status « Transaction »

StatusDescription
SUCCESSThe transaction is a « success » when an authorization request has been issued by the Bank and the bank return code is « 0 ».
FRAUDThe status indicates that the transaction encountered a « blacklisted » item. This can come from an IP, phone number, email or card number.
CAPTUREDA Success transaction must be « captured » within 7 calendar days in order to be charged to your Customer’s card.
Note: by default, a transaction is automatically « captured ».
FAILUREThe transaction is in « failure » when the authorization has not been issued by the Bank issuing the card.
In addition, you receive a rejection code issued by the bank of the card issuer (bank code < 100).
CANCELEDThis status reflects the cancellation of a « capture » request before it is cleared. It is possible to cancel a transaction between the « success » and « cleared » transaction status.
THREEDS_AUTH_FAILURE3DS authentication failed. The cardholder submitted an incorrect code or did not submit it in time.
CLEAREDA « Cleared » transaction indicates that a debit has been made on your customer’s card. At this point, you can no longer cancel the transaction, but you can refund it using the « refund » API object.
NOT_ACCEPTEDThe transaction was declined as it encountered an element of denial of an acceptance rule.

REFUND status

Statuts « Refund »

StatutDescription
CLEAREDProcessed refund.
UNCLEAREDRefund pending processing.
FAILURERefund in error.
CANCELEDRefund cancelled, either by you or by your customer via the customer portal.

CREDIT status

Status « Credit »

StatusDescription
CLEAREDCredit processed.
UNCLEAREDCredit pending processing
FAILURECredit in error.
CANCELEDCredit cancelled, either by you or by your Customer via the customer portal.

DISPUTES status

Status « Disputes »

StatutDescription
FRAUD_NOTICEDA preventive fraud alert sent by the issuer via the card scheme (e.g., Visa TC40). It is not a formal dispute nor a refund. Use it to anticipate controls and block similar attempts.
RETRIEVAL_NOTICEDA request for information is sent to you in order to obtain information on the nature of the operation carried out. At this point, it is not a proven dispute. Depending on your response to this request, your client can turn it into a dispute.
RETRIEVAL_CLOSENotification that the request for information is closed. The information provided has prevented the dispute.
CHARGEBACK_NOTICEDA transaction dispute is sent by your customer. The amount of this transaction will be charged to refund your customer. Non-refundable fees also apply for each dispute received.
Note : a Chargeback (dispute) is not necessarily preceded by a Retrieval (request for information).
CHARGEBACK_WONYou were successful, the dispute was rejected. The amount of the transaction is refunded to you.
CHARGEBACK_LOSTYour evidences are deemed insufficient, the challenge is upheld.
TRANSACTION_REFUNDEDThe amount of the disputed transaction was refunded to you following a CHARGEBACK_WON.

SUBSCRIPTION status

Status « Subscription »

StatusDescription
ACCEPTEDThe subscription is active and running (initial status when a subscription is successfully created).
PENDINGStatus defined by the configuration you have chosen in case of repeated payment failures.
REFUSEDStatus defined by the configuration you have chosen in case of repeated payment failures.
CANCELEDThe subscription has been canceled 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.
CANCELEDThe bank account is no longer usable (closed account, fraud, …).

PAYOUT status

StatusDescription
PAIDThe payout has been paid.
PENDINGPayout pending processing.
CANCELEDThe payout has been canceled (only in pending).
REVERSEDThe payout has been refused by the creditor bank, the amount will be credited again on the debtor wallet.

SCT TRANSACTION status

Status « SCT Transaction »

StatusDescription
PENDINGPending receipt of the SCT Transaction.
RECEIVEDSCT Transaction received.
CANCELEDSCT Transaction cancelled before receipt.
REFUNDEDSCT Transaction refunded.

Webhook notifications

The PAYMENT-ACCOUNT object

PAYMENT_ACCOUNT_STATUS_UPDATED
When a payment account is updated
{
    "blockConfigurationId": "e09287a2-xxxx-xxxx-xxxx-02e4d8a90f84",
    "blockReason": "ACCOUNT_DUPLICATE",
    "blockStatus": "IN_OUT",
    "creationDate": "2026-04-16T09:03:48.171329+02:00",
    "enrollmentUuid": "af5c4ccb-xxxx-xxxx-xxxx-3365ebad820c",
    "merchantUuid": "aa23c0d6-xxxx-xxxx-xxxx-0765feacc9f1"
}

The MERCHANT-ENROLLMENT object

Prochainement

The WALLETS object

WALLET_CREATED
When a wallet is created
{
    "activityStatus": "ACTIVE",
    "additionalData": [],
    "available": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "closedAccount": false,
    "creationDate": "2026-09-16T09:51:26.776625Z",
    "currency": "EUR",
    "customerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "defaultWallet": false,
    "hasDebt": false,
    "merchantPayoutSetupId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "owner": {
        "name": "Martin Durant",
        "uuid": "xxxx-xxxx-xxxx-xxxx-xxxx",
    },
    "ownerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "name": "PAYMENT ACCOUNT",
    "pending": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "personal": false,
    "realtimeBalance": {
        "availableBalance": 0,
        "clearedBalance": 0,
        "pendingBalance": 0,
        "pendingCreditSum": 0,
        "pendingDebitSum": 0
    },
    "reserve": 0,
    "type": "PS",
    "walletId": "e0b54b2f-badc-4aef-b402-902fec733bc2"
}
WALLET_UPDATED
When a wallet is updated
{
    "activityStatus": "ACTIVE",
    "additionalData": [],
    "available": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "closedAccount": false,
    "creationDate": "2026-09-16T09:51:26.776625Z",
    "currency": "EUR",
    "customerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "defaultWallet": false,
    "hasDebt": false,
    "merchantPayoutSetupId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "owner": {
        "name": "Martin Durant",
        "uuid": "xxxx-xxxx-xxxx-xxxx-xxxx",
    },
    "ownerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "name": "PAYMENT ACCOUNT",
    "pending": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "personal": false,
    "realtimeBalance": {
        "availableBalance": 0,
        "clearedBalance": 0,
        "pendingBalance": 0,
        "pendingCreditSum": 0,
        "pendingDebitSum": 0
    },
    "reserve": 0,
    "type": "PS",
    "walletId": "e0b54b2f-badc-4aef-b402-902fec733bc2"
}

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": []
}
BANKACCOUNT_REFUSED
When a Bank account is refused
{
    "name": "BANKACCOUNT REF API",
    "description": null,
    "ownerName": "BANKACCOUNT REFAPI",
    "ownerAddress": "142 RUE DE LA REFAPI",
    "ownerDescription": null,
    "ownerPostalCode": "37000",
    "ownerCity": "TOURS",
    "ownerCountry": "FRA",
    "iban": "FR7612548029980000000150086",
    "bic": "AXABFRPP",
    "currency": "EUR",
    "refusalComment": "The bank details do not match the name of the company, SC CONNECTING FIRST.",
    "refusalReason": "IBAN_INVALID",
    "status": "REFUSED",
    "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": []
}
BANKACCOUNT_CANCELED
When a Bank account is canceled
{
    "name": "BANKACCOUNT REF API",
    "description": null,
    "ownerName": "BANKACCOUNT REFAPI",
    "ownerAddress": "142 RUE DE LA REFAPI",
    "ownerDescription": null,
    "ownerPostalCode": "37000",
    "ownerCity": "TOURS",
    "ownerCountry": "FRA",
    "iban": "FR7612548029980000000150086",
    "bic": "AXABFRPP",
    "currency": "EUR",
    "status": "CANCELED",
    "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": []
  }
}
CREDIT_CLEARED
When a credit is cleared
{
  "eventId": "b51f11be-c535-49a4-8a70-6241afd75654",
  "type": "CREDIT_CLEARED",
  "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": "CLEARED",
    "transactionTransfers": []
  }
}
CREDIT_SETTLED
When a credit is cleared
{
  "eventId": "b51f11be-c535-49a4-8a70-6241afd75654",
  "type": "CREDIT_SETTLED",
  "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": "CLEARED",
    "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

REFUND_CLEARED
When a refund is cleared

REFUND_SETTLED
When a refund is settled

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_CLEARED
When a transaction is sent to the clearing and will be debited
{
  "eventId": "ecd3fead-ccb1-44e4-b41b-5806b78dc5a5",
  "type": "TRANSACTION_CLEARED",
  "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_SETTLED
When a transaction has been sent to the clearing and has been credit to the merchant
{
  "eventId": "ecd3fead-ccb1-44e4-b41b-5806b78dc5a5",
  "type": "TRANSACTION_SETTLED",
  "creationDate": "2024-01-05T14:43:21.513924+01:00",
  "object": {
    "additionalData": {},
    "amount": 3600000,
    "amountCaptured": 3600000,
    "amountRefunded": 0,
    "archivingReference": "5MS7NOWFGWSR",
    "arn": "123456",
    "authorizationCode": "000000",
    "authorizationMovementId": "0ee6bd7e-3e74-454d-a62b-120db043714d",
    "authorizationStatus": "SUCCESS",
    "bankCode": "0",
    "bankMessage": "Simulation : Transaction Approved",
    "browserAcceptLanguage": "en_US",
    "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36",
    "captureDate": "2024-01-05T14:43:21.355125+01:00",
    "captureStatus": "CAPTURED",
    "card": {
      "additionalData": {},
      "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2",
      "cardType": "DEBIT",
      "cardholderEmail": "test@gmail.com",
      "cardholderName": "MARIE ANNE",
      "check": true,
      "commercialBrand": "MASTERCARD",
      "country": "FRA",
      "creationDate": "2024-01-05T12:52:41.054394+01:00",
      "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22",
      "europeanEconomicArea": true,
      "expirationMonth": 9,
      "expirationYear": 2035,
      "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f",
      "first6": "532509",
      "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5",
      "last4": "0008",
      "productType": "CORPORATE",
      "region": "EUROPE"
    },
    "cardPresent": {},
    "commission": 0,
    "contractId": "a674d481-4805-4a66-915a-67956efca36f",
    "country": "FRA",
    "creationDate": "2024-01-05T14:43:19.909652+01:00",
    "currency": "EUR",
    "customAcceptanceData": {},
    "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22",
    "endUserIp": "245.100.1.15",
    "endUserLanguage": "fre",
    "fee": 0,
    "merchantCategoryCode": "1711",
    "movementId": "899287b0-a0a5-413c-8be8-bc3d794ba96a",
    "order": {
      "cardholderEmail": "GDU-Solon40@gmail.com",
      "country": "FRA"
    },
    "partialAuthorization": false,
    "partialAuthorized": false,
    "payoutAmount": 3600000,
    "payoutCurrency": "EUR",
    "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247",
    "receiptEmail": "GDU-Clemens7@yahoo.com",
    "refunded": false,
    "refunds": [],
    "residualAmount": 0,
    "source": "EC",
    "threeDSecure": false,
    "totalAmount": 3600000,
    "transactionId": "aa42bd28-5a34-47e4-87b0-3d25375be798",
    "transactionStatus": "SUCCESS",
    "transactiontransfers": [],
    "withCvv": true
  },
  "requestId": "3d82de99-2346-4eef-a30b-68e7efe5acd1"
}

TRANSACTION_EXPIRED
When a transaction is expired
{
  "eventId": "9a93ea00-42cc-4555-ad29-24daa2ec5fbe",
  "type": "TRANSACTION_EXPIRED",
  "creationDate": "2024-02-01T00:30:07.148454+01:00",
  "object": {
    "transactionId": "87b40109-0de5-454d-acf4-dfa51f23d15b",
    "creationDate": "2024-01-30T14:20:47.062768+01:00",
    "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247",
    "contractId": "a674d481-4805-4a66-915a-67956efca36f",
    "merchantTransactionId": null,
    "archivingReference": "YB6J5BGOC4TF",
    "transactionStatus": "SUCCESS",
    "authorizationStatus": "SUCCESS",
    "bankCode": "0",
    "bankMessage": "Simulation : Transaction Approved",
    "authorizationCode": "000000",
    "riskScore": null,
    "source": "EC",
    "description": null,
    "currency": "EUR",
    "payoutCurrency": "EUR",
    "payoutAmount": null,
    "commission": null,
    "fee": 0,
    "amount": 36000,
    "partialAuthorization": false,
    "partialAuthorized": false,
    "partialAuthorizedAmount": null,
    "totalAmount": 36000,
    "card": {
      "cardId": "4970cff8-a3eb-4b7a-9f8e-6a4156c08cec",
      "creationDate": "2024-01-30T14:20:45.679621+01:00",
      "customerId": null,
      "cardTokenId": null,
      "infoId": null,
      "merchantCardId": null,
      "commercialBrand": "VISA",
      "first6": "403203",
      "last4": "3001",
      "expirationMonth": 12,
      "expirationYear": 2025,
      "country": "FRA",
      "cardholderName": null,
      "cardholderEmail": null,
      "description": null,
      "fingerprint": "a90fedc230c187acb2e4d6b8a3e3237044931beb",
      "cardType": "UNKNOWN",
      "region": "EUROPE",
      "productType": "UNKNOWN",
      "europeanEconomicArea": true,
      "check": false,
      "additionalData": {}
    },
    "cardMerchantToken": null,
    "captureStatus": "EXPIRED",
    "amountCaptured": 0,
    "refunded": true,
    "amountRefunded": 0,
    "refunds": [],
    "endUserIp": "8.8.8.8",
    "endUserLanguage": "fre",
    "browserUserAgent": null,
    "browserAcceptLanguage": null,
    "country": null,
    "receiptEmail": null,
    "transactiontransfers": [],
    "transferGroup": null,
    "residualAmount": null,
    "order": {
      "firstName": null,
      "lastName": null,
      "addressLine1": null,
      "addressLine2": null,
      "addressLine3": null,
      "addressLine4": null,
      "postalCode": null,
      "city": null,
      "country": null,
      "email": null,
      "phone": null,
      "cardCountry": "FRA",
      "cardholderName": null,
      "cardholderEmail": null
    },
    "dispute": null,
    "cardPresent": {
      "cardSequenceNumber": null,
      "cardEntryMode": null,
      "pinEntryCapability": null,
      "transactionSequenceCounter": null,
      "uniqueTerminalId": null,
      "cardholderSignatureImage": null,
      "gpsLatitude": null,
      "gpsLongitude": null,
      "cardholderPhoto": null,
      "cardAcceptorTerminalId": null,
      "offlinePinIndicator": null,
      "ucatTerminalIndicator": null,
      "iccData": null,
      "iccDataResponse": null
    },
    "clearingNumber": null,
    "merchantCategoryCode": "1711",
    "withCvv": true,
    "arn": "123456",
    "authorizationCancellationDate": null,
    "customerId": null,
    "captureDate": null,
    "clearingDate": null,
    "captureCancellationDate": null,
    "enrollmentId": null,
    "movementId": null,
    "authorizationMovementId": "258d16f5-3f5f-401d-8f5b-c9ff9d00f28d",
    "cancelMovementId": null,
    "paymentRequestBreakdownId": null,
    "paymentRequestId": null,
    "invoiceId": null,
    "installmentId": null,
    "customAcceptanceData": {},
    "additionalData": {
      "key1": "value1",
      "key2": "value2"
    },
    "3ds": false
  },
  "requestId": "fcf800bb-1748-4d23-9ce7-121c5f14a51b"
}

TRANSACTION_UPDATED
When a transaction is updated
{
  "eventId": "eaf9366e-cd66-4ab9-ad23-09ed2ec5972d",
  "type": "TRANSACTION_UPDATED",
  "creationDate": "2024-01-11T14:54:35.830032+01:00",
  "object": {
    "additionalData": {
      "key1": "value1",
      "key2": "value2"
    },
    "amount": 10,
    "amountCaptured": 10,
    "amountRefunded": 0,
    "archivingReference": "FLS2TYH3HJ5G",
    "arn": "123456",
    "authorizationCode": "000000",
    "authorizationMovementId": "02e0e9ec-77f6-4a75-9732-57a0d0844354",
    "authorizationStatus": "SUCCESS",
    "bankCode": "0",
    "bankMessage": "Simulation : Transaction Approved",
    "captureDate": "2024-01-11T14:53:18.688598+01:00",
    "captureStatus": "CAPTURED",
    "card": {
      "additionalData": {},
      "cardId": "180c71b5-9384-4ea5-9452-b190d4afc542",
      "cardType": "DEBIT",
      "check": false,
      "commercialBrand": "VISA",
      "country": "FRA",
      "creationDate": "2024-01-11T14:53:17.634328+01:00",
      "europeanEconomicArea": true,
      "expirationMonth": 1,
      "expirationYear": 2024,
      "fingerprint": "9e6b6fc8e48c4ee716efb06762e726c0108e5e8d",
      "first6": "400000",
      "last4": "0002",
      "productType": "UNKNOWN",
      "region": "EUROPE"
    },
    "cardPresent": {},
    "commission": 0,
    "contractId": "a674d481-4805-4a66-915a-67956efca36f",
    "creationDate": "2024-01-11T14:53:17.576925+01:00",
    "currency": "EUR",
    "customAcceptanceData": {},
    "endUserIp": "245.100.1.15",
    "fee": 0,
    "merchantCategoryCode": "1711",
    "movementId": "3dbd2c18-1110-496b-9cd2-1e7b7568fc00",
    "order": {
      "cardCountry": "FRA",
      "firstName": "MANDATORY",
      "lastName": "MANDATORY"
    },
    "partialAuthorization": false,
    "partialAuthorized": false,
    "payoutAmount": 10,
    "payoutCurrency": "EUR",
    "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247",
    "receiptEmail": "test@gmail.com",
    "refunded": false,
    "refunds": [],
    "residualAmount": 0,
    "source": "EC",
    "threeDSecure": false,
    "totalAmount": 10,
    "transactionId": "8d08a5b1-413e-46d8-8e8e-6da8c0d5025b",
    "transactionStatus": "SUCCESS",
    "transactiontransfers": [
      {
        "amount": 1,
        "destinationWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050",
        "escrowDate": "2024-01-13",
        "fee": 0
      }
    ],
    "withCvv": true
  },
  "requestId": "6b85d1b7-853a-420e-a500-62aac18840c1",
  "objectBeforeUpdate": {
    "additionalData": {
      "key1": "value1",
      "key2": "value2"
    },
    "amount": 10,
    "amountCaptured": 10,
    "amountRefunded": 0,
    "archivingReference": "FLS2TYH3HJ5G",
    "arn": "123456",
    "authorizationCode": "000000",
    "authorizationMovementId": "02e0e9ec-77f6-4a75-9732-57a0d0844354",
    "authorizationStatus": "SUCCESS",
    "bankCode": "0",
    "bankMessage": "Simulation : Transaction Approved",
    "captureDate": "2024-01-11T14:53:18.688598+01:00",
    "captureStatus": "CAPTURED",
    "card": {
      "additionalData": {},
      "cardId": "180c71b5-9384-4ea5-9452-b190d4afc542",
      "cardType": "DEBIT",
      "check": false,
      "commercialBrand": "VISA",
      "country": "FRA",
      "creationDate": "2024-01-11T14:53:17.634328+01:00",
      "europeanEconomicArea": true,
      "expirationMonth": 1,
      "expirationYear": 2024,
      "fingerprint": "9e6b6fc8e48c4ee716efb06762e726c0108e5e8d",
      "first6": "400000",
      "last4": "0002",
      "productType": "UNKNOWN",
      "region": "EUROPE"
    },
    "cardPresent": {},
    "commission": 0,
    "contractId": "a674d481-4805-4a66-915a-67956efca36f",
    "creationDate": "2024-01-11T14:53:17.576925+01:00",
    "currency": "EUR",
    "customAcceptanceData": {},
    "endUserIp": "245.100.1.15",
    "fee": 0,
    "merchantCategoryCode": "1711",
    "movementId": "3dbd2c18-1110-496b-9cd2-1e7b7568fc00",
    "order": {
      "cardCountry": "FRA",
      "firstName": "MANDATORY",
      "lastName": "MANDATORY"
    },
    "partialAuthorization": false,
    "partialAuthorized": false,
    "payoutAmount": 10,
    "payoutCurrency": "EUR",
    "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247",
    "refunded": false,
    "refunds": [],
    "residualAmount": 0,
    "source": "EC",
    "threeDSecure": false,
    "totalAmount": 10,
    "transactionId": "8d08a5b1-413e-46d8-8e8e-6da8c0d5025b",
    "transactionStatus": "SUCCESS",
    "transactiontransfers": [
      {
        "amount": 1,
        "destinationWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050",
        "escrowDate": "2024-01-13",
        "fee": 0
      }
    ],
    "withCvv": true
  }
}

TRANSACTION_DISPUTED
When a transaction is turned to a chargeback

{
  "eventId": "36e7853b-eecf-43d2-99ec-80aa5b26b46f",
  "type": "TRANSACTION_DISPUTED",
  "creationDate": "2024-01-05T15:16:28.316447+01:00",
  "object": {
    "additionalData": {},
    "amount": 36000,
    "amountCaptured": 36000,
    "amountRefunded": 0,
    "archivingReference": "AULQKEG8VFZV",
    "arn": "123456",
    "authorizationCode": "000000",
    "authorizationMovementId": "a7caf3b3-4d60-412e-9536-8b31e7fa2b99",
    "authorizationStatus": "SUCCESS",
    "bankCode": "0",
    "bankMessage": "Simulation : Transaction Approved",
    "browserAcceptLanguage": "en_US",
    "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36",
    "captureDate": "2024-01-04T15:04:14.560777+01:00",
    "captureStatus": "CLEARED",
    "card": {
      "additionalData": {},
      "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2",
      "cardType": "DEBIT",
      "cardholderEmail": "test@gmail.com",
      "cardholderName": "MARIE ANNE",
      "check": true,
      "commercialBrand": "MASTERCARD",
      "country": "FRA",
      "creationDate": "2024-01-05T12:52:41.054394+01:00",
      "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22",
      "europeanEconomicArea": true,
      "expirationMonth": 9,
      "expirationYear": 2035,
      "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f",
      "first6": "532509",
      "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5",
      "last4": "0008",
      "productType": "CORPORATE",
      "region": "EUROPE"
    },
    "cardPresent": {},
    "clearingDate": "2024-01-05",
    "clearingNumber": "008194",
    "commission": 0,
    "contractId": "a674d481-4805-4a66-915a-67956efca36f",
    "country": "FRA",
    "creationDate": "2024-01-05T15:04:13.275733+01:00",
    "currency": "EUR",
    "customAcceptanceData": {},
    "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22",
    "dispute": {
      "additionalData": {},
      "amount": 10,
      "creationDate": "2024-01-05T15:16:27.776882+01:00",
      "currency": "EUR",
      "disputeDate": "2021-03-18",
      "disputeId": "896304e9-b937-443a-ba59-3ccc99931b00",
      "fee": 0,
      "movementId": "09e2b390-a5a6-4926-a5ad-41c96bd38cea",
      "reason": "FRAUDULENT",
      "status": "CHARGEBACK_NOTICED",
      "transactionId": "8940d775-cb9c-46e4-ab5a-c5c3ea7c3116"
    },
    "endUserIp": "245.100.1.15",
    "endUserLanguage": "fre",
    "fee": 0,
    "merchantCategoryCode": "1711",
    "movementId": "15560735-1636-4a01-9a15-89eab54ef9e1",
    "order": {
      "cardholderEmail": "GDU-Dasia77@hotmail.com",
      "country": "FRA"
    },
    "partialAuthorization": false,
    "partialAuthorized": false,
    "payoutAmount": 36000,
    "payoutCurrency": "EUR",
    "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247",
    "receiptEmail": "GDU-Benton_Hamill8@gmail.com",
    "refunded": false,
    "refunds": [],
    "residualAmount": 0,
    "source": "EC",
    "threeDSecure": false,
    "totalAmount": 36000,
    "transactionId": "8940d775-cb9c-46e4-ab5a-c5c3ea7c3116",
    "transactionStatus": "SUCCESS",
    "transactiontransfers": [],
    "withCvv": false
  },
  "requestId": "29ae33a7-bcd3-405f-ab21-485729b980aa"
}

TRANSACTION_FAILED
When a transaction has been declined by the issuing bank
{
  "eventId": "0eeacc49-8957-4910-925f-d633505f23b0",
  "type": "TRANSACTION_FAILED",
  "creationDate": "2024-01-05T14:46:59.392077+01:00",
  "object": {
    "additionalData": {},
    "amount": 3600000,
    "amountCaptured": 0,
    "amountRefunded": 0,
    "archivingReference": "9GUGCIZEU0VN",
    "authorizationMovementId": "7ed9258a-ee75-4705-90f3-678973d2402e",
    "authorizationStatus": "FAILURE",
    "bankCode": "51",
    "bankMessage": "Simulation : Insufficient Funds",
    "browserAcceptLanguage": "en_US",
    "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36",
    "captureStatus": "UNCAPTURED",
    "card": {
      "additionalData": {},
      "cardId": "30e49b6e-ed07-4b43-8862-2abd2f181678",
      "cardType": "DEBIT",
      "cardholderEmail": "gduhamel@centralpay.eu",
      "check": true,
      "commercialBrand": "VISA",
      "country": "FRA",
      "creationDate": "2024-01-05T14:46:39.151564+01:00",
      "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22",
      "europeanEconomicArea": true,
      "expirationMonth": 9,
      "expirationYear": 2035,
      "fingerprint": "7032968c1a882c155b3d8014297daabaa7133680",
      "first6": "400000",
      "infoId": "90eaf823-e2e7-4757-845a-b966bbab03c6",
      "last4": "0077",
      "productType": "UNKNOWN",
      "region": "EUROPE"
    },
    "cardPresent": {},
    "contractId": "a674d481-4805-4a66-915a-67956efca36f",
    "country": "FRA",
    "creationDate": "2024-01-05T14:46:58.190985+01:00",
    "currency": "EUR",
    "customAcceptanceData": {},
    "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22",
    "endUserIp": "245.100.1.15",
    "endUserLanguage": "fre",
    "fee": 0,
    "merchantCategoryCode": "1711",
    "order": {
      "cardholderEmail": "GDU-Yvette5@hotmail.com",
      "country": "FRA"
    },
    "partialAuthorization": false,
    "partialAuthorized": false,
    "payoutCurrency": "EUR",
    "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247",
    "receiptEmail": "GDU-Buck_Gislason@hotmail.com",
    "refunded": false,
    "refunds": [],
    "source": "EC",
    "threeDSecure": false,
    "totalAmount": 3600000,
    "transactionId": "d530cdbe-b9fc-481b-b99d-8ce0db75deb4",
    "transactionStatus": "FAILURE",
    "transactiontransfers": [],
    "withCvv": true
  },
  "requestId": "c120a3c0-764a-4c7e-a705-4721784212c7"
}

TRANSACTION_FRAUDULENT
When a transaction is refused because it has meet a blacklist element (Email, IP, Card, …)

{
  "eventId": "d489a6be-9b6d-43fa-86e3-c5d26437aac3",
  "type": "TRANSACTION_FRAUDULENT",
  "creationDate": "2024-01-05T16:34:30.947564+01:00",
  "object": {
    "additionalData": {},
    "amount": 500,
    "amountCaptured": 0,
    "amountRefunded": 0,
    "authorizationStatus": "FRAUD",
    "bankMessage": "PAN in BLACKLIST [532509xxx0008]",
    "captureStatus": "UNCAPTURED",
    "card": {
      "additionalData": {},
      "cardId": "4680d102-96b0-4fba-b00c-3375ee610fc7",
      "cardType": "DEBIT",
      "cardholderEmail": "gduhamel@centralpay.eu",
      "check": true,
      "commercialBrand": "MASTERCARD",
      "country": "FRA",
      "creationDate": "2024-01-05T16:33:13.699153+01:00",
      "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9",
      "europeanEconomicArea": true,
      "expirationMonth": 9,
      "expirationYear": 2035,
      "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f",
      "first6": "532509",
      "infoId": "dabeaee8-1f45-438e-b9c7-37bbce92315e",
      "last4": "0008",
      "productType": "CORPORATE",
      "region": "EUROPE"
    },
    "cardPresent": {},
    "contractId": "a674d481-4805-4a66-915a-67956efca36f",
    "creationDate": "2024-01-05T16:34:30.385545+01:00",
    "currency": "EUR",
    "customAcceptanceData": {},
    "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9",
    "endUserIp": "245.100.1.15",
    "merchantTransactionId": "MIP_001",
    "order": {
      "cardCountry": "FRA",
      "cardholderEmail": "gduhamel@centralpay.eu",
      "email": "gduhamel@centralpay.eu",
      "firstName": "CECELIA",
      "lastName": "EBERT"
    },
    "partialAuthorization": false,
    "payoutCurrency": "EUR",
    "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247",
    "receiptEmail": "gduhamel@centralpay.eu",
    "refunded": false,
    "refunds": [],
    "source": "EC",
    "threeDSecure": false,
    "totalAmount": 500,
    "transactionId": "f061fa00-8494-4eca-b9d1-f54d36125d7d",
    "transactionStatus": "FRAUD",
    "transactiontransfers": [],
    "withCvv": true
  },
  "requestId": "47c8329d-b686-4dc0-ad21-941e4ec2945d"
}

TRANSACTION_NOT_ACCEPTED
When a transaction is refused because entering an acceptance rule

TRANSACTION_REFUNDED
When a transaction has been refunded to the card holder
{
  "eventId": "21f8a3b1-1fab-4071-9f75-ef36d10a6572",
  "type": "TRANSACTION_REFUNDED",
  "creationDate": "2024-01-10T09:35:28.762354+01:00",
  "object": {
    "additionalData": {},
    "amount": 36000,
    "amountCaptured": 36000,
    "amountRefunded": 36000,
    "archivingReference": "YNADK4W3G2EK",
    "arn": "123456",
    "authorizationCode": "000000",
    "authorizationMovementId": "679d6b91-bba5-43fa-a444-b3aa7fb2ad2f",
    "authorizationStatus": "SUCCESS",
    "bankCode": "0",
    "bankMessage": "Simulation : Transaction Approved",
    "browserAcceptLanguage": "en_US",
    "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36",
    "captureDate": "2024-01-04T15:04:11.419479+01:00",
    "captureStatus": "CLEARED",
    "card": {
      "additionalData": {},
      "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2",
      "cardType": "DEBIT",
      "cardholderEmail": "test@gmail.com",
      "cardholderName": "MARIE ANNE",
      "check": true,
      "commercialBrand": "MASTERCARD",
      "country": "FRA",
      "creationDate": "2024-01-05T12:52:41.054394+01:00",
      "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22",
      "europeanEconomicArea": true,
      "expirationMonth": 9,
      "expirationYear": 2035,
      "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f",
      "first6": "532509",
      "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5",
      "last4": "0008",
      "productType": "CORPORATE",
      "region": "EUROPE"
    },
    "cardPresent": {},
    "clearingDate": "2024-01-05",
    "clearingNumber": "008194",
    "commission": 0,
    "contractId": "a674d481-4805-4a66-915a-67956efca36f",
    "country": "FRA",
    "creationDate": "2024-01-05T15:04:10.135397+01:00",
    "currency": "EUR",
    "customAcceptanceData": {},
    "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22",
    "endUserIp": "245.100.1.15",
    "endUserLanguage": "fre",
    "fee": 0,
    "merchantCategoryCode": "1711",
    "movementId": "656895c7-e7a2-4b7d-8920-0bb78ea45f3a",
    "order": {
      "cardholderEmail": "GDU-Martina_Ondricka@hotmail.com",
      "country": "FRA"
    },
    "partialAuthorization": false,
    "partialAuthorized": false,
    "payoutAmount": 36000,
    "payoutCurrency": "EUR",
    "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247",
    "receiptEmail": "GDU-Justyn98@gmail.com",
    "refunded": true,
    "refunds": [
      {
        "additionalData": {},
        "amount": 36000,
        "commission": 0,
        "creationDate": "2024-01-10T09:35:28.448559+01:00",
        "currency": "EUR",
        "description": "GDU-testapi",
        "fee": 0,
        "movementId": "c42ea27a-6d74-4c4b-b170-e17762916c79",
        "payoutAmount": 36000,
        "payoutCurrency": "EUR",
        "refundId": "9bf06654-c023-4481-8e6a-138bb5f13777",
        "status": "UNCLEARED",
        "transactionId": "2a06bfae-51f5-4dd7-945b-47631c16cb9c"
      }
    ],
    "residualAmount": 0,
    "source": "EC",
    "threeDSecure": false,
    "totalAmount": 36000,
    "transactionId": "2a06bfae-51f5-4dd7-945b-47631c16cb9c",
    "transactionStatus": "SUCCESS",
    "transactiontransfers": [],
    "withCvv": false
  },
  "requestId": "794c20b2-4a0c-4d9d-a580-af5544c11120"
}

TRANSACTION_RISKY
When a transaction is refused because of its risk score exceed the limit

TRANSACTION_THREEDS_AUTH_FAILED
When a transaction is declined because the card holder failed to authenticate himself during the 3DS process

The TRANSFER REVERSAL object

TRANSFERREVERSAL_SUCCEEDED
When a transfer reversal succeeded
   {
  "eventId": "9bd04039-7b33-4553-af86-64a6e925eef9",
  "type": "TRANSFERREVERSAL_SUCCEEDED",
  "creationDate": "2024-01-16T11:11:40.720817+01:00",
  "object": {
    "additionalData": {},
    "amount": 140,
    "creationDate": "2024-01-16T11:11:40.611318+01:00",
    "currency": "EUR",
    "description": "Test",
    "fee": 0,
    "merchantTransferReversalId": "test",
    "movementId": "e34b6833-7b32-4fde-993a-b904f8f3aeae",
    "net": 140,
    "refundFee": true,
    "status": "TRANSFERRED",
    "transferId": "e3a45ca4-49a9-4681-bc06-be9ab6dd7d79",
    "transferReversalId": "bb47ad7b-4112-4ad5-abf3-489d5878d6fd"
  },
  "requestId": "7e593b04-58c3-4e0d-b3c6-ec2a6887164e"
}
    }

TRANSFERREVERSAL_UPDATED
When a transfer reversal is updated
   {
  "eventId": "8317512a-d7d2-4d6d-a61a-644afb7537fb",
  "type": "TRANSFERREVERSAL_UPDATED",
  "creationDate": "2024-01-16T11:18:00.682451+01:00",
  "object": {
    "additionalData": {},
    "amount": 140,
    "creationDate": "2024-01-16T11:11:40.611318+01:00",
    "currency": "EUR",
    "description": "Addeddata",
    "fee": 0,
    "merchantTransferReversalId": "test",
    "movementId": "e34b6833-7b32-4fde-993a-b904f8f3aeae",
    "net": 140,
    "refundFee": true,
    "status": "TRANSFERRED",
    "transferId": "e3a45ca4-49a9-4681-bc06-be9ab6dd7d79",
    "transferReversalId": "bb47ad7b-4112-4ad5-abf3-489d5878d6fd"
  },
  "requestId": "3509acf1-39c9-45e5-b1b6-d58ee6639b8d"
    }

The TRANSFER object

TRANSFER_SUCCEEDED
When a transfer succeeded
    {
{
  "eventId": "a1147178-8197-46d7-ba6d-433f71a1b7f5",
  "type": "TRANSFER_SUCCEEDED",
  "creationDate": "2024-01-08T14:33:25.439719+01:00",
  "object": {
    "additionalData": {},
    "amount": 140,
    "creationDate": "2024-01-08T14:33:25.050153+01:00",
    "currency": "EUR",
    "description": "Vente de XxX",
    "destinationWalletId": "ccf841d8-b066-4e96-adc7-fa6414cfe598",
    "emissionWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050",
    "exchangedAmount": 140,
    "exchangedFee": 0,
    "exchangedNet": 140,
    "fee": 0,
    "merchantTransferId": "IDENTIFIANT_MRI",
    "movementId": "20452a9f-6055-462c-8da5-f351cc0a1437",
    "net": 140,
    "rate": 1,
    "reversed": false,
    "status": "TRANSFERRED",
    "toCurrency": "GTH",
    "transferId": "c8d751cc-da30-4dbe-9e57-acf7731bb3f5",
    "transferReversals": []
  },
  "requestId": "6d21911b-40bb-4259-aef9-39c616d60aa4"
}
    }

TRANSFER_UPDATED
When a transfer is updated
    {
{
  "eventId": "356e4dff-4146-47d5-9db9-3226585cafc1",
  "type": "TRANSFER_UPDATED",
  "creationDate": "2024-01-08T14:38:40.555843+01:00",
  "object": {
    "additionalData": {
      "Key1": "val2"
    },
    "amount": 140,
    "creationDate": "2024-01-08T14:33:25.050153+01:00",
    "currency": "EUR",
    "description": "transfer1",
    "destinationWalletId": "ccf841d8-b066-4e96-adc7-fa6414cfe598",
    "emissionWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050",
    "exchangedAmount": 140,
    "exchangedFee": 0,
    "exchangedNet": 140,
    "fee": 0,
    "merchantTransferId": "TEST_002",
    "movementId": "20452a9f-6055-462c-8da5-f351cc0a1437",
    "net": 140,
    "rate": 1,
    "reversed": false,
    "status": "TRANSFERRED",
    "toCurrency": "GTH",
    "transferGroup": "TransferGroup_0002",
    "transferId": "c8d751cc-da30-4dbe-9e57-acf7731bb3f5",
    "transferReversals": []
  },
  "requestId": "e7b6b976-a0ae-45dc-a018-f6c651a7f559",
  "objectBeforeUpdate": {
    "additionalData": {},
    "amount": 140,
    "creationDate": "2024-01-08T14:33:25.050153+01:00",
    "currency": "EUR",
    "description": "Vente de XxX",
    "destinationWalletId": "ccf841d8-b066-4e96-adc7-fa6414cfe598",
    "emissionWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050",
    "exchangedAmount": 140,
    "exchangedFee": 0,
    "exchangedNet": 140,
    "fee": 0,
    "merchantTransferId": "IDENTIFIANT_MRI",
    "movementId": "20452a9f-6055-462c-8da5-f351cc0a1437",
    "net": 140,
    "rate": 1,
    "reversed": false,
    "status": "TRANSFERRED",
    "toCurrency": "GTH",
    "transferId": "c8d751cc-da30-4dbe-9e57-acf7731bb3f5",
    "transferReversals": []
  }
}
    }

TRANSFER_CANCELED
When a transfer is cancelled
    {
  "eventId": "d1a35d33-87b7-4672-8e49-495cd117f45b",
  "type": "TRANSFER_CANCELED",
  "creationDate": "2024-01-16T11:34:40.698751+01:00",
  "object": {
    "additionalData": {},
    "amount": 140,
    "cancelMovementId": "e66acfa2-60c4-4eec-8bfe-f1571318a667",
    "cancellationDate": "2024-01-16T11:34:40.691168+01:00",
    "creationDate": "2024-01-16T11:34:05.280812+01:00",
    "currency": "EUR",
    "description": "Vente de XxX",
    "destinationWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050",
    "emissionWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050",
    "escrowDate": "2035-12-23",
    "exchangedAmount": 140,
    "exchangedFee": 0,
    "exchangedNet": 140,
    "fee": 0,
    "merchantTransferId": "IDENTIFIANT_GDU",
    "movementId": "98c79326-53e5-4b71-8ef6-4b1344c428a4",
    "net": 140,
    "rate": 1,
    "reversed": false,
    "status": "CANCEL",
    "toCurrency": "EUR",
    "transferId": "fd4aa0f5-69d5-4b79-b6df-c99dab33d9ee",
    "transferReversals": []
  },
  "requestId": "35b87d6e-41dd-4a5e-b1a2-5347b6fa1eba"
}

The WIRETRANSFER object (Deprecated)

WIRETRANSFER_CREATED
When a wire transfer is created

WIRETRANSFER_UPDATED
When a wire transfer is updated

WIRETRANSFER_RECEIVED
When a wire transfer is received

WIRETRANSFER_CANCELED
When a wire transfer is cancelled

Resources by type

Codes

HTTP Codes

Find below the list of HTTP return codes:

200OK
Note: The request was executed correctly
400BAD REQUEST
Note: Wrong parameter or rule
401UNAUTHORIZED
Note: Login / password are missing for HTTP authentication
402PAYMENT_REQUIRED
Note:  Authorization denied*
403FORBIDDEN
Note: Wrong authentication
404NOT FOUND
Note: Incorrect URL
500INTERNAL SERVER ERROR
Note: Server error

(*) Only possible for the creation of a transaction

Card authorization - Bank return codes

Issuer response codes returned to CentralPay after a card authorization request.

These values generally correspond to the ISO 8583 “Response code” (DE39) returned by card networks/issuers. Depending on the scheme, country, and routing, you may also receive network-specific or gateway-specific variants (for example alphanumeric or 3-digit codes).

Important: the same code can cover multiple issuer-side reasons. Unless explicitly stated, CentralPay passes these codes as received. For troubleshooting, combine the response code with your transaction context (amount, currency, 3DS result, merchant category, card brand, retries).

Most common response codes

CodeDescriptionRecommended action
00ApprovedProceed with capture / fulfillment.
02Contact card issuerAsk customer to contact their bank; retry only if customer confirms.
03Invalid acceptorCheck merchant/terminal configuration (MID/TID, acquirer routing).
04Pick up / retain cardDo not retry; follow your in-store procedure (if applicable).
05Do not honorGeneric decline: do not “loop” retries; ask customer to contact issuer or use another payment method.
07Honor with IDIf card-present: request ID verification; otherwise ask customer to contact issuer.
08Time-outRetry once after a short delay; if repeated, check connectivity/acquirer status.
10Unable to reverseEscalate to support with trace/reference; avoid repeated reversals.
11Partial approvalOnly relevant if your flow supports partial approvals (often prepaid); otherwise request another method.
12Invalid transactionCheck request consistency (type, lifecycle, capture/void rules); if persistent, escalate with logs.
13Invalid amountValidate amount format/currency decimals; check min/max constraints.
14Invalid card numberCustomer should re-enter card details; if repeated, use another card.
15Unknown issuerUse another card/payment method; escalate if routing issue suspected.
19Try again laterRetry once later; if repeated, ask customer to contact issuer.
30Format errorCheck field formats (PAN/expiry/CVV, currency, recurring flags); escalate if needed.
33Card expiredCustomer must use another card.
38PIN attempts exceededCardholder must contact issuer / reset PIN; do not retry.
39Transaction not allowedLikely product/merchant restriction; ask customer to contact issuer or use another method.
41Lost cardDo not retry; request another payment method.
43Stolen cardDo not retry; request another payment method.
51Insufficient fundsAsk customer to use another method or wait for funds; avoid repeated immediate retries.
54Expired cardCustomer must use another card.
55Incorrect PINCard-present only: customer must retry carefully or contact issuer after repeated failures.
57Transaction not permitted to cardholderIssuer restriction; ask customer to contact issuer or use another method.
58Transaction prohibited at terminalCheck merchant/terminal capabilities & configuration; may be MCC/terminal restriction.
59Suspected fraudDo not retry “blindly”; ask customer to contact issuer or use a different method; review fraud rules if frequent.
61Exceeds withdrawal/amount limitReduce amount or ask customer to contact issuer.
62Restricted cardIssuer restriction; customer should contact issuer.
65Frequency limit exceededWait and retry later; avoid repeated attempts in short timeframes.
68Response received too lateRetry once; check acquirer/network status if repeated.
75PIN attempts exceededSame as 38: cardholder must contact issuer.
82Invalid CVVCustomer should re-enter CVV; if repeated, use another card.
91Issuer/switch unavailableRetry later; if widespread, treat as incident (issuer/network outage).
94Duplicate requestAvoid immediate retries with same identifiers; ensure idempotency / unique reference.
95Contact acquirerEscalate to support/acquirer with transaction reference.
96System malfunctionRetry later; if repeated, escalate with traces/logs.

All response codes (exhaustive)

The following codes may be returned depending on the network, country, routing, or integration. This section is exhaustive compared to the previous version of this page, and includes both standard and non-standard variants.

CodeDescriptionRecommended action
00Transaction approved or successfully processedProceed with capture / fulfillment.
02Contact card issuerAsk the customer to contact their issuer; retry only if issuer confirms.
03Invalid acceptorCheck merchant/terminal configuration (MID/TID), acquirer routing, and credentials.
04Keep cardDo not retry; follow in-store procedure if applicable; request another payment method.
05Do not honorGeneric decline: avoid retry loops; ask customer to contact issuer or use another method.
06Transaction invalid for terminalCheck terminal capability / transaction type compatibility; verify integration parameters.
07Honor with IDIf card-present: request ID verification; otherwise ask customer to contact issuer.
08Time-OutRetry once after a short delay; if repeated, check network/acquirer connectivity.
09No originalFor reversals/adjustments: ensure you reference an existing original transaction; escalate if needed.
10Unable to reverseDo not repeat reversals blindly; escalate to support with transaction references.
11Partial approvalHandle partial approval if supported (often prepaid); otherwise request another method.
12Invalid transactionCheck transaction type/lifecycle (auth/capture/void/refund), parameters; escalate with logs if persistent.
13Invalid amountValidate amount format, currency decimals, and min/max constraints; retry after correction.
14Invalid cardholder numberCustomer should re-enter card details; if repeated, use another card.
15Unknown card issuerTry another card/payment method; if widespread, suspect routing/config issue and escalate.
17Invalid capture date (terminal business date)Check terminal business date / batch settings; retry after correction if applicable.
19Repeat transaction laterRetry once later; avoid multiple attempts in a short window; ask customer to contact issuer if repeated.
20No From AccountNot typical for purchase flows; verify transaction type and account fields; escalate if unexpected.
21No To AccountNot typical for purchase flows; verify transaction type and account fields; escalate if unexpected.
22Account not verifiedAsk customer to contact issuer; consider another payment method.
23Account not savedRetry later if applicable; otherwise use another method; escalate if recurring.
24No Credit AccountAsk customer to contact issuer; use another method.
25Unable to locate record in fileFor adjustments/reversals: verify original reference; escalate with trace/reference.
26Record duplicatedCheck idempotency and uniqueness of references; do not retry with same identifiers.
27‘Edit’ error in file update fieldCheck field formats and constraints; escalate with payload/logs.
28File access deniedConfiguration/permission issue: escalate to support/acquirer with context.
29File update not possibleEscalate with trace/reference; avoid repeating the same update operation.
30Format errorCheck request formatting (amount/currency, PAN/expiry, flags, message structure); escalate with logs.
31Identifier of acquiring organization unknownCheck acquirer routing and merchant configuration; escalate to support/acquirer.
32Transaction partially completedCheck final status via retrieval; avoid blind retry; escalate if inconsistent.
33Card validity date exceededCustomer must use another card.
34Implausible card dataCustomer should re-enter details; verify card data collection; use another card if repeated.
38Number of PIN attempts exceededDo not retry; customer must contact issuer / reset PIN.
39Transaction not allowedCheck transaction type and merchant capability; ask customer to contact issuer or use another method.
41Lost cardDo not retry; request another payment method.
42Special PickupDo not retry; request another method; in-store: follow procedure if applicable.
43Stolen cardDo not retry; request another payment method.
44Stolen cardDo not retry; request another payment method.
51Insufficient funds or overdraftAsk customer to use another method or wait for funds; avoid repeated immediate retries.
54Card expiredCustomer must use another card.
55Incorrect PINCard-present: retry carefully; if repeated, customer contacts issuer.
56Card not on fileVerify card details; customer should contact issuer or use another card.
57Transaction not authorized to this cardholderIssuer restriction; ask customer to contact issuer or use another method.
58Transaction prohibited at terminalCheck merchant/terminal capabilities and MCC/terminal restrictions; adjust configuration.
59Suspected fraudAvoid retry loops; customer contacts issuer or uses another method; review risk rules if frequent.
60The card acceptor must contact the buyerAsk customer to contact issuer / confirm details; avoid repeated attempts.
61Withdrawal amount over limitReduce amount or ask customer to contact issuer.
62Card use restrictedCustomer contacts issuer; use another method.
63MAC Key ErrorCryptographic/config issue: escalate to support/acquirer with trace and timestamps.
65Frequency limit exceededWait and retry later; avoid multiple attempts in short timeframe.
66Acquirer limit reachedEscalate to acquirer/support; retry only after confirmation.
67Card withheldDo not retry; request another method; in-store: follow procedure if applicable.
68Response not received or received too lateRetry once; if repeated, check acquirer/network status and escalate.
75Number of PIN attempts exceededSame as 38: do not retry; customer must contact issuer.
76Invalid AccountAsk customer to contact issuer; use another card/method.
77Issuer not participating in serviceUse another card or method; escalate if routing/regional issue suspected.
78Function not availableRemove/disable unsupported feature; verify transaction type and integration flags.
79Key validation errorCryptographic/config issue: escalate to support/acquirer with trace.
80Approved for purchase amount onlyIf you requested cash-back/extra: retry without it; otherwise proceed as approved.
81Unable to verify PINCard-present: retry; if repeated, customer contacts issuer or use another method.
82Invalid CVVRe-enter CVV; if repeated, use another card.
83Not refusedTreat as non-decline / ambiguous: verify final status via retrieval; escalate if inconsistent.
84Invalid transaction lifecycleCheck auth/capture/void/refund ordering and timing; fix integration logic.
85No key to useCryptographic/config issue: escalate to support/acquirer.
86KME synchronization errorCryptographic sync issue: escalate with logs, trace, timestamps.
87PIN errorCard-present: retry; if repeated, customer contacts issuer.
88MAC synchronization errorCryptographic sync issue: escalate with logs, trace, timestamps.
89Security violationStop retries; escalate to support/acquirer; review fraud/security configuration.
90Temporary system shutdownRetry later; if persistent, treat as incident and escalate.
91Card transmitter inaccessibleRetry later; if widespread, treat as issuer/network outage.
92Card issuer unknownUse another card; if repeated across cards, suspect routing/config and escalate.
93Transacation cannot be finalizedRetry later once; if persistent, escalate with trace/logs.
94Duplicate requestEnsure idempotency / unique references; do not resend the exact same request.
95Contact acquirerEscalate to support/acquirer with transaction reference and timestamps.
96System malfunctionRetry later; if repeated, escalate with traces/logs.
97No Funds TransferNot typical for purchase flows; verify transaction type; escalate if unexpected.
98Duplicate ReversalDo not repeat reversal; verify original reversal status; ensure idempotency.
99Duplicate TransactionCheck idempotency and client retries; ensure unique transaction identifiers.
N3Cash Service Not AvailableNot applicable to purchase flows; ignore unless supporting cash services.
N4Cash Back Request Exceeds Issuer LimitReduce cash-back amount or remove cash-back.
N7Declined for CVV2 failureRe-enter CVV; if repeated, use another card.
R0Stop Payment OrderDo not retry; customer must contact issuer.
R1Revocation of Authorisation OrderDo not retry; customer must contact issuer.
R3Revocation of all Authorisations OrderDo not retry; customer must contact issuer.
A0Withdrawal in contact modeNot applicable to e-commerce purchase flows; verify transaction type; remove cash/withdrawal feature if not supported.
A1VADS fallbackRouting/fallback case: verify gateway/acquirer configuration; escalate if frequent or unexpected.
000ApprovedProceed with capture / fulfillment.
001Approve with IDIf supported: apply ID verification; otherwise treat as approved.
002Partial approval (prepaid cards only)Handle partial approval if supported; otherwise request another method.
100RejectGeneric decline: avoid retry loops; ask customer to contact issuer or use another method.
101Card expired / invalid expiry dateCustomer must use another card.
106PIN attempts exceededDo not retry; customer must contact issuer.
107Please call issuerCustomer must contact issuer; retry only after confirmation.
109Invalid merchantCheck merchant configuration and routing; escalate to support/acquirer.
110Invalid amountValidate amount format/limits; retry after correction.
111Invalid account / Invalid MICR (traveler’s check)Ask customer to contact issuer; use another card/method.
115Requested function not supportedDisable unsupported feature/flag; verify transaction type.
117Invalid PINCard-present: retry carefully; if repeated, customer contacts issuer.
119Cardholder not registered / not authorizedCustomer must contact issuer; use another method.
122Invalid card security code (alias CID, 4DBC, 4CSC)Re-enter security code; if repeated, use another card.
125Invalid effective dateCheck date fields / terminal business date; escalate if applicable.
181Format errorCheck request formatting and fields; escalate with logs if persistent.
183Invalid currency codeVerify ISO currency code and acquirer configuration; correct and retry.
187Refuse – New card issuedCustomer must use another card; advise contacting issuer.
189Refuse – Merchant cancelled or closed / SECheck merchant status/configuration; escalate to support/acquirer.
200Refuse – Pick up cardDo not retry; request another method; in-store: follow procedure if applicable.
900Accepted – ATC synchronizationProceed but monitor; if repeated, escalate (potential chip/crypto sync issue).
909System malfunction (cryptographic error)Escalate to support/acquirer with trace, timestamps, and logs.
912Issuer not availableRetry later; if widespread, treat as issuer outage / incident.

Card Disputes - Bank Return codes

CB Scheme

CBDescriptionGIE DISPUTE
12Unauthorized TransactionTRANSACTION_NOT_AUTHORIZED
13Merchant Forced TransactionINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
14Unauthorized TransactionTRANSACTION_NOT_AUTHORIZED
15Guarantee by Card, by Day and by SIRETTRANSACTION_NOT_AUTHORIZED
16PIN Not VerifiedTRANSACTION_NOT_AUTHORIZED
17Invalid SIRETTRANSACTION_NOT_AUTHORIZED
18Certificate Not VerifiableTRANSACTION_NOT_AUTHORIZED
21Expired CardTRANSACTION_NOT_AUTHORIZED
22Late PresentmentINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
23Missing ImprintINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
25Exceeds Transaction Amount LimitINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
27Credit Not ProcessedTRANSACTION_NOT_AUTHORIZED
28Credit Processed as DebitTRANSACTION_NOT_AUTHORIZED
40Cancelled CardINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
41Documentation Not Provided or IllegibleINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
42Duplicate ProcessingDUPLICATE
43No Such Card NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
44Disputed AmountFRAUDULENT
45Disputed TransactionFRAUDULENT
46Merchant Bankruptcy or Judicial ReorganizationINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
61Merchant Suspended or TerminatedTRANSACTION_NOT_AUTHORIZED
62Transaction Not PermittedTRANSACTION_NOT_AUTHORIZED

Mastercard Scheme

MASTERCARDDescriptionGIE DISPUTE
4801Requested Transaction Data Not ReceivedTRANSACTION_NOT_AUTHORIZED
4802Cardholder Does Not Recognize TransactionTRANSACTION_NOT_AUTHORIZED
4807Cardholder Disputes a CreditFRAUDULENT
4808Authorization-Related ChargebackTRANSACTION_NOT_AUTHORIZED
4809Transaction Not AuthorizedFRAUDULENT
4810Fraud — Card-Not-Present EnvironmentFRAUDULENT
4522Goods or Services Not as Described / Not ReceivedOTHER
4811Credit Not ProcessedTRANSACTION_NOT_AUTHORIZED
4812Fraud — Card-Present EnvironmentTRANSACTION_NOT_AUTHORIZED
4831Goods or Services Not ReceivedINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4834Duplicate ProcessingDUPLICATE
4835Transaction Processing ErrorTRANSACTION_NOT_AUTHORIZED
4837No Cardholder Authorization (Lost/Stolen Card)FRAUDULENT
4840Fraudulent Processing of TransactionsFRAUDULENT
4841Cancelled Recurring TransactionTRANSACTION_NOT_AUTHORIZED
4842Counterfeit CardTRANSACTION_NOT_AUTHORIZED
4843Transaction Not Valid / Authorization ReversalTRANSACTION_NOT_AUTHORIZED
4846Non-Compliance With Authorization RequirementsINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4847Invalid Recurring TransactionINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4849Duplicate ProcessingDUPLICATE
4850ATM Cash Disbursement Not AuthorizedTRANSACTION_NOT_AUTHORIZED
4851Cardholder Disputes Transaction (Offline)TRANSACTION_NOT_AUTHORIZED
4853Cardholder Disputes Transaction Not as DescribedPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4854Exceeds Floor LimitPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4855Non-Receipt of Merchandise / ServicesPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4857Cardholder Disputes Transaction — Services Not ProvidedTRANSACTION_NOT_AUTHORIZED
4859Services Not Provided / Merchandise Not ReceivedTRANSACTION_NOT_AUTHORIZED
4860Transaction Processing ErrorTRANSACTION_NOT_AUTHORIZED
4862Cardholder Disputes Transaction — Invalid AuthorizationTRANSACTION_NOT_AUTHORIZED
4863Credit Not Processed / Cash Not DispensedFRAUDULENT
4870Chip Liability Shift — Counterfeit FraudFRAUDULENT
4871Chip Liability Shift — Lost/Stolen FraudFRAUDULENT
4880Late PresentmentTRANSACTION_NOT_AUTHORIZED
4890Currency Conversion DisputeTRANSACTION_NOT_AUTHORIZED
4900Defective/Not as Described MerchandiseOTHER
4901Credit Not ProcessedOTHER
4902Merchandise Not AcceptedOTHER
4903Incorrect Merchandise DeliveredOTHER
4905Services Not ProvidedOTHER
4908Cash Not DispensedOTHER

Visa Scheme

VISADescriptionGIE DISPUTE
10Fraud — Card-Absent EnvironmentFRAUDULENT
11Fraud — Card-Present EnvironmentTRANSACTION_NOT_AUTHORIZED
12Incorrect Transaction Amount or Account NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
13Fraudulent Transaction — No AuthorizationFRAUDULENT
30Services Not Provided or Merchandise Not ReceivedPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
41Credit Not ProcessedOTHER
53Not as Described or Defective MerchandiseOTHER
57Fraudulent Transaction — No Cardholder AuthorizationFRAUDULENT
62Counterfeit TransactionFRAUDULENT
70Processing ErrorOTHER
71Declined AuthorizationOTHER
72Cancelled TransactionOTHER
73Duplicate ProcessingOTHER
74Credit Not ProcessedOTHER
75Transaction Not RecognizedOTHER
76Incorrect Transaction Amount or Account NumberOTHER
77Non-Receipt of MerchandiseINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
78Fraudulent Transaction — No Cardholder AuthorizationOTHER
80Incorrect Transaction Amount or Account NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
81Fraudulent Transaction — Lost CardFRAUDULENT
82Fraudulent Transaction — Stolen CardDUPLICATE
83Fraudulent Transaction — Card-Absent EnvironmentFRAUDULENT
85Duplicate ProcessingOTHER
86Non-Compliance With AuthorizationDUPLICATE
93Late PresentmentFRAUDULENT
1001Fraud — Card-Absent Environment (E-Commerce)FRAUDULENT
1002Fraudulent Transaction — E-CommerceFRAUDULENT
1003Services Not Provided or Merchandise Not ReceivedFRAUDULENT
1004Fraudulent Transaction — No Cardholder AuthorizationFRAUDULENT
1005Not as Described or Defective MerchandiseFRAUDULENT
1101Processing Error — AuthorizationOTHER
1102Incorrect Transaction AmountOTHER
1103Exceeds Authorized AmountOTHER
1201Services Not Provided or Merchandise Not ReceivedOTHER
1202Not as Described Merchandise / ServiceOTHER
1203Recurring Transaction Not RecognizedOTHER
1204Defective MerchandiseINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
1205Services Not ProvidedINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
1206Non-Receipt of MerchandiseDUPLICATE
1207Duplicate ProcessingOTHER
1301Fraudulent Transaction — Card-Present EnvironmentPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
1302Fraudulent Transaction — No Cardholder AuthorizationOTHER
1303Fraudulent Transaction — Card-Absent EnvironmentOTHER
1304Duplicate ProcessingOTHER
1305Services Not Provided or Merchandise Not ReceivedOTHER
1306Credit Not ProcessedOTHER
1307Recurring Transaction Not RecognizedOTHER
1308Transaction Processing ErrorOTHER

Currency codes

List of currency codes:

AED
UAE Dirham
Currency code: 784
AFN
Afghani
Currency code: 971
ALL
Lek
Currency code: 008
AMD
Armenian Dram
Currency code: 051
ANG
Netherlands Antillean Guilder
Currency code: 532
AOA
Kwanza
Currency code: 973
ARS
Argentine Peso
Currency code: 032
AUD
Australian Dollar
Currency code: 036
AWG
Aruban Florin
Currency code: 533
AZN
Azerbaijanian Manat
Currency code: 944
BAM
Convertible Mark
Currency code: 977
BBD
Barbados Dollar
Currency code: 052
BDT
Taka
Currency code: 050
BGN
Bulgarian Lev
Currency code: 975
BHD
Bahraini Dinar
Currency code: 048
BIF
Burundi Franc
Currency code: 108
BMD
Bermudian Dollar
Currency code: 060
BND
Brunei Dollar
Currency code: 096
BOB
Boliviano
Currency code: 068
BOV
Mvdol
Currency code: 984
BRL
Brazilian Real
Currency code: 986
BSD
Bahamian Dollar
Currency code: 044
BTN
Ngultrum
Currency code: 064
BWP
Pula
Currency code: 072
BYR
Belarussian Ruble
Currency code: 974
BZD
Belize Dollar
Currency code: 084
CAD
Canadian Dollar
Currency code: 124
CDF
Congolese Franc
Currency code: 976
CHE
WIR Euro
Currency code: 947
CHF
Swiss Franc
Currency code: 756
CHW
WIR Franc
Currency code: 948
CLF
Unidad de Fomento
Currency code: 990
CLP
Chilean Peso
Currency code: 152
CNY
Yuan Renminbi
Currency code: 156
COP
Colombian Peso
Currency code: 170
COU
Unidad de Valor Real
Currency code: 970
CRC
Costa Rican Colon
Currency code: 188
CUC
Peso Convertible
Currency code: 931
CUP
Cuban Peso
Currency code: 192
CVE
Cabo Verde Escudo
Currency code: 132
CZK
Czech Koruna
Currency code: 203
DJF
Djibouti Franc
Currency code: 262
DKK
Danish Krone
Currency code: 208
DOP
Dominican Peso
Currency code: 214
DZD
Algerian Dinar
Currency code: 012
EGP
Egyptian Pound
Currency code: 818
ERN
Nakfa
Currency code: 232
ETB
Ethiopian Birr
Currency code: 230
EUR
Euro
Currency code: 978
FJD
Fiji Dollar
Currency code: 242
FKP
Falkland Islands Pound
Currency code: 238
GBP
Pound Sterling
Currency code: 826
GEL
Lari
Currency code: 981
GHS
Ghana Cedi
Currency code: 936
GIP
Gibraltar Pound
Currency code: 292
GMD
Dalasi
Currency code: 270
GNF
Guinea Franc
Currency code: 324
GTQ
Quetzal
Currency code: 320
GYD
Guyana Dollar
Currency code: 328
HKD
Hong Kong Dollar
Currency code: 344
HNL
Lempira
Currency code: 340
HRK
Kuna
Currency code: 191
HTG
Gourde
Currency code: 332
HUF
Forint
Currency code: 348
IDR
Rupiah
Currency code: 360
ILS
New Israeli Sheqel
Currency code: 376
INR
Indian Rupee
Currency code: 356
IQD
Iraqi Dinar
Currency code: 368
IRR
Iranian Rial
Currency code: 364
ISK
Iceland Krona
Currency code: 352
JMD
Jamaican Dollar
Currency code: 388
JOD
Jordanian Dinar
Currency code: 400
JPY
Yen
Currency code: 392
KES
Kenyan Shilling
Currency code: 404
KGS
Som
Currency code: 417
KHR
Riel
Currency code: 116
KMF
Comoro Franc
Currency code: 174
KPW
North Korean Won
Currency code: 408
KRW
Won
Currency code: 410
KWD
Kuwaiti Dinar
Currency code: 414
KYD
Cayman Islands Dollar
Currency code: 136
KZT
Tenge
Currency code: 398
LAK
Kip
Currency code: 418
LBP
Lebanese Pound
Currency code: 422
LKR
Sri Lanka Rupee
Currency code: 144
LRD
Liberian Dollar
Currency code: 430
LSL
Loti
Currency code: 426
LYD
Libyan Dinar
Currency code: 434
MAD
Moroccan Dirham
Currency code: 504
MDL
Moldovan Leu
Currency code: 498
MGA
Malagasy Ariary
Currency code: 969
MKD
Denar
Currency code: 807
MMK
Kyat
Currency code: 104
MNT
Tugrik
Currency code: 496
MOP
Pataca
Currency code: 446
MRO
Ouguiya
Currency code: 478
MUR
Mauritius Rupee
Currency code: 480
MVR
Rufiyaa
Currency code: 462
MWK
Kwacha
Currency code: 454
MXN
Mexican Peso
Currency code: 484
MXV
Mexican Unidad de Inversion (UDI)
Currency code: 979
MYR
Malaysian Ringgit
Currency code: 458
MZN
Mozambique Metical
Currency code: 943
NAD
Namibia Dollar
Currency code: 516
NGN
Naira
Currency code: 566
NIO
Cordoba Oro
Currency code: 558
NOK
Norwegian Krone
Currency code: 578
NPR
Nepalese Rupee
Currency code: 524
NZD
New Zealand Dollar
Currency code: 554
OMR
Rial Omani
Currency code: 512
PAB
Balboa
Currency code: 590
PEN
Nuevo Sol
Currency code: 604
PGK
Kina
Currency code: 598
PHP
Philippine Peso
Currency code: 608
PKR
Pakistan Rupee
Currency code: 586
PLN
Zloty
Currency code: 985
PYG
Guarani
Currency code: 600
QAR
Qatari Rial
Currency code: 634
RON
Romanian Leu
Currency code: 946
RSD
Serbian Dinar
Currency code: 941
RUB
Russian Ruble
Currency code: 643
RWF
Rwanda Franc
Currency code: 646
SAR
Saudi Riyal
Currency code: 682
SBD
Solomon Islands Dollar
Currency code: 090
SCR
Seychelles Rupee
Currency code: 690
SDG
Sudanese Pound
Currency code: 938
SEK
Swedish Krona
Currency code: 752
SGD
Singapore Dollar
Currency code: 702
SHP
Saint Helena Pound
Currency code: 654
SLL
Leone
Currency code: 694
SOS
Somali Shilling
Currency code: 706
SRD
Surinam Dollar
Currency code: 968
SSP
South Sudanese Pound
Currency code: 728
STD
Dobra
Currency code: 678
SVC
El Salvador Colon
Currency code: 222
SYP
Syrian Pound
Currency code: 760
SZL
Lilangeni
Currency code: 748
THB
Baht
Currency code: 764
TJS
Somoni
Currency code: 972
TMT
Turkmenistan New Manat
Currency code: 934
TND
Tunisian Dinar
Currency code: 788
TOP
Pa’anga
Currency code: 776
TRY
Turkish Lira
Currency code: 949
TTD
Trinidad and Tobago Dollar
Currency code: 780
TWD
New Taiwan Dollar
Currency code: 901
TZS
Tanzanian Shilling
Currency code: 834
UAH
Hryvnia
Currency code: 980
UGX
Uganda Shilling
Currency code: 800
USD
US Dollar
Currency code: 840
USN
US Dollar (Next day)
Currency code: 997
UYI
Uruguay Peso en Unidades Indexadas (URUIURUI)
Currency code: 940
UYU
Peso Uruguayo
Currency code: 858
UZS
Uzbekistan Sum
Currency code: 860
VEF
Bolivar
Currency code: 937
VND
Dong
Currency code: 704
VUV
Vatu
Currency code: 548
WST
Tala
Currency code: 882
XAG
Silver
Currency code: 961
XAU
Gold
Currency code: 959
XBA
Bond Markets Unit European Composite Unit (EURCO)
Currency code: 955
XBB
Bond Markets Unit European Monetary Unit (E.M.U.-6)
Currency code: 956
XBC
Bond Markets Unit European Unit of Account 9 (E.U.A.-9)
Currency code: 957
XBD
Bond Markets Unit European Unit of Account 17 (E.U.A.-17)
Currency code: 958
XCD
East Caribbean Dollar
Currency code: 951
XDR
SDR (Special Drawing Right)
Currency code: 960
XOF
CFA Franc BCEAO
Currency code: 952
XPD
Palladium
Currency code: 964
XPF
CFP Franc
Currency code: 953
XPT
Platinum
Currency code: 962
XSU
Sucre
Currency code: 994
XTS
Codes specifically reserved for testing purposes
Currency code: 963
XUA
ADB Unit of Account
Currency code: 965
XXX
The codes assigned for transactions where no currency is involved
Currency code: 999
YER
Yemeni Rial
Currency code: 886
ZAR
Rand
Currency code: 710
ZMW
Zambian Kwacha
Currency code: 967
ZWL
Zimbabwe Dollar
Currency code: 932

Description of the certification « ISO 4217:2008 » is available at this url:

  • http://www.iso.org/iso/home/standards/currency_codes.htm

SDD return codes

Return CodeDescription
AB05Timeout Creditor Agent
AB06Timeout Instructed Agent
AB07Offline Agent
AB08Offline Creditor Agent
AB09Error Creditor Agent
AB10Error Instructed Agent
AC01Incorrect Account Number
AC03Invalid Creditor Account Number
AC04Account Closed
AC06Account blocked, reason not specified
AC13Wrong Debtor account
AG01Forbidden on this type of account
AG02Operation/Transaction code incorrect, invalid file format
AG09Payment Not Received
AG10Agent Suspended
AG11Creditor Agent Suspended
AGNTIncorrect Agent
AM02Not Allowed Amount
AM04Insufficient Funds
AM05Duplicate payment
AM09Wrong Amount
AM23Amount Exceeds Settlement Limit
ARDTAlready a returned transaction
BE04Account address invalid
BE05Creditor Identifier incorrect
CUSTCustomer decision
CURRIncorrect Currency
CUTACancellation Upon Unable to Apply
CNORCreditor Bank is not Registered
DNORDebtor Bank is not Registered
DUPLDuplicate Payment
ED05Settlement Failed
ERINERI Option Not Supported
FF01Invalid File Format
FOCRPositive answer to the recall or RfRO
FRADFraudulent originated credit transfer
LEGLLegal Decision
MD01No valid mandate
MD02Mandate data missing or invalid
MD06Refund Request By End Customer
MD07Beneficiary Deceased
MS02By order of the beneficiary
MS03Reason not specified
NOASNo Answer From Customer
NOORNo Original Transaction Received
RC01Invalid BIC
RC07Invalid Creditor BIC Identifier
RR01Missing Debtor Account Or Identification
RR02Missing Debtors Name Or Address
RR03Missing Creditors Name Or Address
RR04Regulatory Reason
SL01Specific service offered by debtor Bank
TECHTechnical problems resulting in erroneous SCT’s
TM01Invalid Cut Off Time
UPAYUndue Payment

Country codes

List of country codes:

004
Afghanistan
Alpha2 code: AF
Alpha3 code: AFG
008
Albania
Alpha2 code: AL
Alpha3 code: ALB
010
Antarctica
Alpha2 code: AQ
Alpha3 code: ATA
012
Algeria
Alpha2 code: DZ
Alpha3 code: DZA
016
American Samoa
Alpha2 code: AS
Alpha3 code: ASM
020
Andorra
Alpha2 code: AD
Alpha3 code: AND
024
Angola
Alpha2 code: AO
Alpha3 code: AGO
028
Antigua and Barbuda
Alpha2 code: AG
Alpha3 code: ATG
031
Azerbaijan
Alpha2 code: AZ
Alpha3 code: AZE
032
Argentina
Alpha2 code: AR
Alpha3 code: ARG
036
Australia
Alpha2 code: AU
Alpha3 code: AUS
040
Austria
Alpha2 code: AT
Alpha3 code: AUT
044
Bahamas (the)
Alpha2 code: BS
Alpha3 code: BHS
048
Bahrain
Alpha2 code: BH
Alpha3 code: BHR
050
Bangladesh
Alpha2 code: BD
Alpha3 code: BGD
051
Armenia
Alpha2 code: AM
Alpha3 code: ARM
052
Barbados
Alpha2 code: BB
Alpha3 code: BRB
056
Belgium
Alpha2 code: BE
Alpha3 code: BEL
060
Bermuda
Alpha2 code: BM
Alpha3 code: BMU
064
Bhutan
Alpha2 code: BT
Alpha3 code: BTN
068
Bolivia, Plurinational State of
Alpha2 code: BO
Alpha3 code: BOL
070
Bosnia and Herzegovina
Alpha2 code: BA
Alpha3 code: BIH
072
Botswana
Alpha2 code: BW
Alpha3 code: BWA
074
Bouvet Island
Alpha2 code: BV
Alpha3 code: BVT
076
Brazil
Alpha2 code: BR
Alpha3 code: BRA
084
Belize
Alpha2 code: BZ
Alpha3 code: BLZ
086
British Indian Ocean Territory (the)
Alpha2 code: IO
Alpha3 code: IOT
090
Solomon Islands (the)
Alpha2 code: SB
Alpha3 code: SLB
092
Virgin Islands (British)
Alpha2 code: VG
Alpha3 code: VGB
096
Brunei Darussalam
Alpha2 code: BN
Alpha3 code: BRN
100
Bulgaria
Alpha2 code: BG
Alpha3 code: BGR
104
Myanmar
Alpha2 code: MM
Alpha3 code: MMR
108
Burundi
Alpha2 code: BI
Alpha3 code: BDI
112
Belarus
Alpha2 code: BY
Alpha3 code: BLR
116
Cambodia
Alpha2 code: KH
Alpha3 code: KHM
120
Cameroon
Alpha2 code: CM
Alpha3 code: CMR
124
Canada
Alpha2 code: CA
Alpha3 code: CAN
132
Cape Verde
Alpha2 code: CV
Alpha3 code: CPV
136
Cayman Islands (the)
Alpha2 code: KY
Alpha3 code: CYM
140
Central African Republic (the)
Alpha2 code: CF
Alpha3 code: CAF
144
Sri Lanka
Alpha2 code: LK
Alpha3 code: LKA
148
Chad
Alpha2 code: TD
Alpha3 code: TCD
152
Chile
Alpha2 code: CL
Alpha3 code: CHL
156
China
Alpha2 code: CN
Alpha3 code: CHN
158
Taiwan (Province of China)
Alpha2 code: TW
Alpha3 code: TWN
162
Christmas Island
Alpha2 code: CX
Alpha3 code: CXR
166
Cocos (Keeling) Islands (the)
Alpha2 code: CC
Alpha3 code: CCK
170
Colombia
Alpha2 code: CO
Alpha3 code: COL
174
Comoros
Alpha2 code: KM
Alpha3 code: COM
175
Mayotte
Alpha2 code: YT
Alpha3 code: MYT
178
Congo
Alpha2 code: CG
Alpha3 code: COG
180
Congo (the Democratic Republic of the)
Alpha2 code: CD
Alpha3 code: COD
184
Cook Islands (the)
Alpha2 code: CK
Alpha3 code: COK
188
Costa Rica
Alpha2 code: CR
Alpha3 code: CRI
191
Croatia
Alpha2 code: HR
Alpha3 code: HRV
192
Cuba
Alpha2 code: CU
Alpha3 code: CUB
196
Cyprus
Alpha2 code: CY
Alpha3 code: CYP
203
Czech Republic (the)
Alpha2 code: CZ
Alpha3 code: CZE
204
Benin
Alpha2 code: BJ
Alpha3 code: BEN
208
Denmark
Alpha2 code: DK
Alpha3 code: DNK
212
Dominica
Alpha2 code: DM
Alpha3 code: DMA
214
Dominican Republic (the)
Alpha2 code: DO
Alpha3 code: DOM
218
Ecuador
Alpha2 code: EC
Alpha3 code: ECU
222
El Salvador
Alpha2 code: SV
Alpha3 code: SLV
226
Equatorial Guinea
Alpha2 code: GQ
Alpha3 code: GNQ
231
Ethiopia
Alpha2 code: ET
Alpha3 code: ETH
232
Eritrea
Alpha2 code: ER
Alpha3 code: ERI
233
Estonia
Alpha2 code: EE
Alpha3 code: EST
234
Faroe Islands (the)
Alpha2 code: FO
Alpha3 code: FRO
238
Falkland Islands (the) [Malvinas]
Alpha2 code: FK
Alpha3 code: FLK
239
South Georgia and the South Sandwich Islands
Alpha2 code: GS
Alpha3 code: SGS
242
Fiji
Alpha2 code: FJ
Alpha3 code: FJI
246
Finland
Alpha2 code: FI
Alpha3 code: FIN
248
Ã…land Islands
Alpha2 code: AX
Alpha3 code: ALA
250
France
Alpha2 code: FR
Alpha3 code: FRA
254
French Guiana
Alpha2 code: GF
Alpha3 code: GUF
258
French Polynesia
Alpha2 code: PF
Alpha3 code: PYF
260
French Southern Territories (the)
Alpha2 code: TF
Alpha3 code: ATF
262
Djibouti
Alpha2 code: DJ
Alpha3 code: DJI
266
Gabon
Alpha2 code: GA
Alpha3 code: GAB
268
Georgia
Alpha2 code: GE
Alpha3 code: GEO
270
Gambia (The)
Alpha2 code: GM
Alpha3 code: GMB
275
Palestine, State of
Alpha2 code: PS
Alpha3 code: PSE
276
Germany
Alpha2 code: DE
Alpha3 code: DEU
288
Ghana
Alpha2 code: GH
Alpha3 code: GHA
292
Gibraltar
Alpha2 code: GI
Alpha3 code: GIB
296
Kiribati
Alpha2 code: KI
Alpha3 code: KIR
300
Greece
Alpha2 code: GR
Alpha3 code: GRC
304
Greenland
Alpha2 code: GL
Alpha3 code: GRL
308
Grenada
Alpha2 code: GD
Alpha3 code: GRD
312
Guadeloupe
Alpha2 code: GP
Alpha3 code: GLP
316
Guam
Alpha2 code: GU
Alpha3 code: GUM
320
Guatemala
Alpha2 code: GT
Alpha3 code: GTM
324
Guinea
Alpha2 code: GN
Alpha3 code: GIN
328
Guyana
Alpha2 code: GY
Alpha3 code: GUY
332
Haiti
Alpha2 code: HT
Alpha3 code: HTI
334
Heard Island and McDonald Islands
Alpha2 code: HM
Alpha3 code: HMD
336
Holy See (the) [Vatican City State]
Alpha2 code: VA
Alpha3 code: VAT
340
Honduras
Alpha2 code: HN
Alpha3 code: HND
344
Hong Kong
Alpha2 code: HK
Alpha3 code: HKG
348
Hungary
Alpha2 code: HU
Alpha3 code: HUN
352
Iceland
Alpha2 code: IS
Alpha3 code: ISL
356
India
Alpha2 code: IN
Alpha3 code: IND
360
Indonesia
Alpha2 code: ID
Alpha3 code: IDN
364
Iran (the Islamic Republic of)
Alpha2 code: IR
Alpha3 code: IRN
368
Iraq
Alpha2 code: IQ
Alpha3 code: IRQ
372
Ireland
Alpha2 code: IE
Alpha3 code: IRL
376
Israel
Alpha2 code: IL
Alpha3 code: ISR
380
Italy
Alpha2 code: IT
Alpha3 code: ITA
384
Ivory coast
Alpha2 code: CI
Alpha3 code: CIV
388
Jamaica
Alpha2 code: JM
Alpha3 code: JAM
392
Japan
Alpha2 code: JP
Alpha3 code: JPN
398
Kazakhstan
Alpha2 code: KZ
Alpha3 code: KAZ
400
Jordan
Alpha2 code: JO
Alpha3 code: JOR
404
Kenya
Alpha2 code: KE
Alpha3 code: KEN
408
Korea (the Democratic People’s Republic of)
Alpha2 code: KP
Alpha3 code: PRK
410
Korea (the Republic of)
Alpha2 code: KR
Alpha3 code: KOR
414
Kuwait
Alpha2 code: KW
Alpha3 code: KWT
417
Kyrgyzstan
Alpha2 code: KG
Alpha3 code: KGZ
418
Lao People’s Democratic Republic (the)
Alpha2 code: LA
Alpha3 code: LAO
422
Lebanon
Alpha2 code: LB
Alpha3 code: LBN
426
Lesotho
Alpha2 code: LS
Alpha3 code: LSO
428
Latvia
Alpha2 code: LV
Alpha3 code: LVA
430
Liberia
Alpha2 code: LR
Alpha3 code: LBR
434
Libya
Alpha2 code: LY
Alpha3 code: LBY
438
Liechtenstein
Alpha2 code: LI
Alpha3 code: LIE
440
Lithuania
Alpha2 code: LT
Alpha3 code: LTU
442
Luxembourg
Alpha2 code: LU
Alpha3 code: LUX
446
Macao
Alpha2 code: MO
Alpha3 code: MAC
450
Madagascar
Alpha2 code: MG
Alpha3 code: MDG
454
Malawi
Alpha2 code: MW
Alpha3 code: MWI
458
Malaysia
Alpha2 code: MY
Alpha3 code: MYS
462
Maldives
Alpha2 code: MV
Alpha3 code: MDV
466
Mali
Alpha2 code: ML
Alpha3 code: MLI
470
Malta
Alpha2 code: MT
Alpha3 code: MLT
474
Martinique
Alpha2 code: MQ
Alpha3 code: MTQ
478
Mauritania
Alpha2 code: MR
Alpha3 code: MRT
480
Mauritius
Alpha2 code: MU
Alpha3 code: MUS
484
Mexico
Alpha2 code: MX
Alpha3 code: MEX
492
Monaco
Alpha2 code: MC
Alpha3 code: MCO
496
Mongolia
Alpha2 code: MN
Alpha3 code: MNG
498
Moldova (the Republic of)
Alpha2 code: MD
Alpha3 code: MDA
499
Montenegro
Alpha2 code: ME
Alpha3 code: MNE
500
Montserrat
Alpha2 code: MS
Alpha3 code: MSR
504
Morocco
Alpha2 code: MA
Alpha3 code: MAR
508
Mozambique
Alpha2 code: MZ
Alpha3 code: MOZ
512
Oman
Alpha2 code: OM
Alpha3 code: OMN
516
Namibia
Alpha2 code: NA
Alpha3 code: NAM
520
Nauru
Alpha2 code: NR
Alpha3 code: NRU
524
Nepal
Alpha2 code: NP
Alpha3 code: NPL
528
Netherlands (the)
Alpha2 code: NL
Alpha3 code: NLD
531
Curacao
Alpha2 code: CW
Alpha3 code: CUW
533
Aruba
Alpha2 code: AW
Alpha3 code: ABW
534
Sint Maarten (Dutch part)
Alpha2 code: SX
Alpha3 code: SXM
535
Bonaire, Sint Eustatius and Saba
Alpha2 code: BQ
Alpha3 code: BES
540
New Caledonia
Alpha2 code: NC
Alpha3 code: NCL
548
Vanuatu
Alpha2 code: VU
Alpha3 code: VUT
554
New Zealand
Alpha2 code: NZ
Alpha3 code: NZL
558
Nicaragua
Alpha2 code: NI
Alpha3 code: NIC
562
Niger (the)
Alpha2 code: NE
Alpha3 code: NER
566
Nigeria
Alpha2 code: NG
Alpha3 code: NGA
570
Niue
Alpha2 code: NU
Alpha3 code: NIU
574
Norfolk Island
Alpha2 code: NF
Alpha3 code: NFK
578
Norway
Alpha2 code: NO
Alpha3 code: NOR
580
Northern Mariana Islands (the)
Alpha2 code: MP
Alpha3 code: MNP
581
United States Minor Outlying Islands (the)
Alpha2 code: UM
Alpha3 code: UMI
583
Micronesia (the Federated States of)
Alpha2 code: FM
Alpha3 code: FSM
584
Marshall Islands (the)
Alpha2 code: MH
Alpha3 code: MHL
585
Palau
Alpha2 code: PW
Alpha3 code: PLW
586
Pakistan
Alpha2 code: PK
Alpha3 code: PAK
591
Panama
Alpha2 code: PA
Alpha3 code: PAN
598
Papua New Guinea
Alpha2 code: PG
Alpha3 code: PNG
600
Paraguay
Alpha2 code: PY
Alpha3 code: PRY
604
Peru
Alpha2 code: PE
Alpha3 code: PER
608
Philippines (the)
Alpha2 code: PH
Alpha3 code: PHL
612
Pitcairn
Alpha2 code: PN
Alpha3 code: PCN
616
Poland
Alpha2 code: PL
Alpha3 code: POL
620
Portugal
Alpha2 code: PT
Alpha3 code: PRT
624
Guinea-Bissau
Alpha2 code: GW
Alpha3 code: GNB
626
Timor-Leste
Alpha2 code: TL
Alpha3 code: TLS
630
Puerto Rico
Alpha2 code: PR
Alpha3 code: PRI
634
Qatar
Alpha2 code: QA
Alpha3 code: QAT
638
Réunion
Alpha2 code: RE
Alpha3 code: REU
642
Romania
Alpha2 code: RO
Alpha3 code: ROU
643
Russian Federation (the)
Alpha2 code: RU
Alpha3 code: RUS
646
Rwanda
Alpha2 code: RW
Alpha3 code: RWA
652
Saint Barthélemy
Alpha2 code: BL
Alpha3 code: BLM
654
Saint Helena, Ascension and Tristan da Cunha
Alpha2 code: SH
Alpha3 code: SHN
659
Saint Kitts and Nevis
Alpha2 code: KN
Alpha3 code: KNA
660
Anguilla
Alpha2 code: AI
Alpha3 code: AIA
662
Saint Lucia
Alpha2 code: LC
Alpha3 code: LCA
663
Saint Martin (French part)
Alpha2 code: MF
Alpha3 code: MAF
666
Saint Pierre and Miquelon
Alpha2 code: PM
Alpha3 code: SPM
670
Saint Vincent and the Grenadines
Alpha2 code: VC
Alpha3 code: VCT
674
San Marino
Alpha2 code: SM
Alpha3 code: SMR
678
Sao Tome and Principe
Alpha2 code: ST
Alpha3 code: STP
682
Saudi Arabia
Alpha2 code: SA
Alpha3 code: SAU
686
Senegal
Alpha2 code: SN
Alpha3 code: SEN
688
Serbia
Alpha2 code: RS
Alpha3 code: SRB
690
Seychelles
Alpha2 code: SC
Alpha3 code: SYC
694
Sierra Leone
Alpha2 code: SL
Alpha3 code: SLE
702
Singapore
Alpha2 code: SG
Alpha3 code: SGP
703
Slovakia
Alpha2 code: SK
Alpha3 code: SVK
704
Viet Nam
Alpha2 code: VN
Alpha3 code: VNM
705
Slovenia
Alpha2 code: SI
Alpha3 code: SVN
706
Somalia
Alpha2 code: SO
Alpha3 code: SOM
710
South Africa
Alpha2 code: ZA
Alpha3 code: ZAF
716
Zimbabwe
Alpha2 code: ZW
Alpha3 code: ZWE
724
Spain
Alpha2 code: ES
Alpha3 code: ESP
728
South Sudan
Alpha2 code: SS
Alpha3 code: SSD
729
Sudan (the)
Alpha2 code: SD
Alpha3 code: SDN
732
Western Sahara
Alpha2 code: EH
Alpha3 code: ESH
740
Suriname
Alpha2 code: SR
Alpha3 code: SUR
744
Svalbard and Jan Mayen
Alpha2 code: SJ
Alpha3 code: SJM
748
Swaziland
Alpha2 code: SZ
Alpha3 code: SWZ
752
Sweden
Alpha2 code: SE
Alpha3 code: SWE
756
Switzerland
Alpha2 code: CH
Alpha3 code: CHE
760
Syrian Arab Republic (the)
Alpha2 code: SY
Alpha3 code: SYR
762
Tajikistan
Alpha2 code: TJ
Alpha3 code: TJK
764
Thailand
Alpha2 code: TH
Alpha3 code: THA
768
Togo
Alpha2 code: TG
Alpha3 code: TGO
772
Tokelau
Alpha2 code: TK
Alpha3 code: TKL
776
Tonga
Alpha2 code: TO
Alpha3 code: TON
780
Trinidad and Tobago
Alpha2 code: TT
Alpha3 code: TTO
784
United Arab Emirates (the)
Alpha2 code: AE
Alpha3 code: ARE
788
Tunisia
Alpha2 code: TN
Alpha3 code: TUN
792
Turkey
Alpha2 code: TR
Alpha3 code: TUR
795
Turkmenistan
Alpha2 code: TM
Alpha3 code: TKM
796
Turks and Caicos Islands (the)
Alpha2 code: TC
Alpha3 code: TCA
798
Tuvalu
Alpha2 code: TV
Alpha3 code: TUV
800
Uganda
Alpha2 code: UG
Alpha3 code: UGA
804
Ukraine
Alpha2 code: UA
Alpha3 code: UKR
807
Macedonia (the former Yugoslav Republic of)
Alpha2 code: MK
Alpha3 code: MKD
818
Egypt
Alpha2 code: EG
Alpha3 code: EGY
826
United Kingdom (the)
Alpha2 code: GB
Alpha3 code: GBR
831
Guernsey
Alpha2 code: GG
Alpha3 code: GGY
832
Jersey
Alpha2 code: JE
Alpha3 code: JEY
833
Isle of Man
Alpha2 code: IM
Alpha3 code: IMN
834
Tanzania, United Republic of
Alpha2 code: TZ
Alpha3 code: TZA
840
United States (the)
Alpha2 code: US
Alpha3 code: USA
850
Virgin Islands (U.S.)
Alpha2 code: VI
Alpha3 code: VIR
854
Burkina Faso
Alpha2 code: BF
Alpha3 code: BFA
858
Uruguay
Alpha2 code: UY
Alpha3 code: URY
860
Uzbekistan
Alpha2 code: UZ
Alpha3 code: UZB
862
Venezuela, Bolivarian Republic of
Alpha2 code: VE
Alpha3 code: VEN
876
Wallis and Futuna
Alpha2 code: WF
Alpha3 code: WLF
882
Samoa
Alpha2 code: WS
Alpha3 code: WSM
887
Yemen
Alpha2 code: YE
Alpha3 code: YEM
894
Zambia  
Alpha2 code: ZM
Alpha3 code: ZMB

Transfer purpose codes

ACCT : AccountManagement
ADCS : AdvisoryDonationCopyrightServices
ADMG : AdministrativeManagement
ADVA : AdvancePayment
AEMP : ActiveEmploymentPolicy
AGRT : AgriculturalTransfer
AIRB : Air
ALLW : Allowance
ALMY : AlimonyPayment
AMEX : Amex
ANNI : Annuity
ANTS : AnesthesiaServices
AREN : AccountsReceivablesEntry
AUCO : AuthenticatedCollections
B112 : TrailerFeePayment
BBSC : BabyBonusScheme
BCDM : BearerChequeDomestic
BCFG : BearerChequeForeign
BECH : ChildBenefit
BENE : UnemploymentDisabilityBenefit
BEXP : BusinessExpenses
BFWD : BondForward
BKDF : BankLoanDelayedDrawFunding
BKFE : BankLoanFees
BKFM : BankLoanFundingMemo
BKIP : BankLoanAccruedInterestPayment
BKPP : BankLoanPrincipalPaydown
BLDM : BuildingMaintenance
BNET : BondForwardNetting
BOCE : BackOfficeConversionEntry
BOND : Bonds
BONU : BonusPayment.
BR12 : TrailerFeeRebate
BUSB : Bus
CABD : CorporateActions-Bonds
CAEQ : CorporateActions-Equities
CAFI : CustodianManagementFeeInhouse
CASH : CashManagementTransfer
CBCR : CreditCard
CBFF : CapitalBuilding
CBFR : CapitalBuildingRetirement
CBLK : CardBulkClearing
CBTV : CableTVBill
CCHD : CashCompensationHelplessnessDisability
CCIR : CrossCurrencyIRS
CCPC : CCPClearedInitialMargin
CCPM : CCPClearedVariationMargin
CCRD : CreditCardPayment
CCSM : CCPClearedInitialMarginSegregatedCash
CDBL : CreditCardBill
CDCB : CardPaymentWithCashBack
CDCD : CashDisbursementCashSettlement
CDCS : CashDisbursementWithSurcharging
CDDP : CardDeferredPayment
CDEP : CreditDefaultEventPayment
CDOC : OriginalCredit
CDQC : QuasiCash
CFDI : CapitalFallingDueInhouse
CFEE : CancellationFee
CGDD : CardGeneratedDirectDebit
CHAR : CharityPayment
CLPR : CarLoanPrincipalRepayment
CMDT : CommodityTransfer
COLL : CollectionPayment
COMC : CommercialPayment
COMM : Commission
COMP : CompensationPayment
COMT : ConsumerThirdPartyConsolidatedPayment
CORT : TradeSettlementPayment
COST : Costs
CPEN : CashPenalties
CPKC : CarparkCharges
CPYR : Copyright
CRDS : CreditDefaultSwap
CRPR : CrossProduct
CRSP : CreditSupport
CRTL : CreditLine
CSDB : CashDisbursementCashManagement
CSLP : CompanySocialLoanPaymentToBank
CVCF : ConvalescentCareFacility
DBCR : DebitCard
DBTC : DebitCollectionPayment
DCRD : DebitCardPayment
DEBT : ChargesBorneByDebtor
DEPD : DependentSupportPayment
DEPT : Deposit
DERI : Derivatives
DICL : Diners
DIVD : Dividend
DMEQ : DurableMedicaleEquipment
DNTS : DentalServices
DSMT : PrintedOrderDisbursement
DVPM : DeliverAgainstPayment
ECPG : GuaranteedEPayment
ECPR : EPaymentReturn
ECPU : NonGuaranteedEPayment
EDUC : Education
EFTC : LowValueCredit
EFTD : LowValueDebit
ELEC : ElectricityBill
ENRG : Energies
EPAY : Epayment
EQPT : EquityOption
EQTS : Equities
EQUS : EquitySwap
ESTX : EstateTax
ETUP : EPurseTopUp
EXPT : ExoticOption
EXTD : ExchangeTradedDerivatives
FACT : FactorUpdateRelatedPayment
FAND : FinancialAidInCaseOfNaturalDisaster
FCOL : FeeCollection
FCPM : LatePaymentOfFeesAndCharges
FEES : PaymentOfFees
FERB : Ferry
FIXI : FixedIncome
FLCR : FleetCard
FNET : FuturesNettingPayment
FORW : ForwardForeignExchange
FREX : ForeignExchange
FUTR : Futures
FWBC : ForwardBrokerOwnedCashCollateral
FWCC : ForwardClientOwnedCashCollateral
FWLV : ForeignWorkerLevy
FWSB : ForwardBrokerOwnedCashCollateralSegregated
FWSC : ForwardClientOwnedSegregatedCashCollateral
FXNT : ForeignExchangeRelatedNetting
GAFA : GovernmentFamilyAllowance
GAHO : GovernmentHousingAllowance
GAMB : GamblingOrWageringPayment
GASB : GasBill
GDDS : PurchaseSaleOfGoods
GDSV : PurchaseSaleOfGoodsAndServices
GFRP : GuaranteeFundRightsPayment
GIFT : Gift
GOVI : GovernmentInsurance
GOVT : GovernmentPayment
GSCB : PurchaseSaleOfGoodsAndServicesWithCashBack
GSTX : GoodsServicesTax
GVEA : AustrianGovernmentEmployeesCategoryA
GVEB : AustrianGovernmentEmployeesCategoryB
GVEC : AustrianGovernmentEmployeesCategoryC
GVED : AustrianGovernmentEmployeesCategoryD
GWLT : GovermentWarLegislationTransfer
HEDG : Hedging
HLRP : PropertyLoanRepayment
HLST : PropertyLoanSettlement
HLTC : HomeHealthCare
HLTI : HealthInsurance
HREC : HousingRelatedContribution
HSPC : HospitalCare
HSTX : HousingTax
ICCP : IrrevocableCreditCardPayment
ICRF : IntermediateCareFacility
IDCP : IrrevocableDebitCardPayment
IHRP : InstalmentHirePurchaseAgreement
INPC : InsurancePremiumCar
INPR : InsurancePremiumRefund
INSC : PaymentOfInsuranceClaim
INSM : Installment
INSU : InsurancePremium
INTC : IntraCompanyPayment
INTE : Interest
INTP : IntraPartyPayment
INTX : IncomeTax
INVS : InvestmentAndSecurities
IPAY : InstantPayments
IPCA : InstantPaymentsCancellation
IPDO : InstantPaymentsForDonations
IPEA : InstantPaymentsInECommerceWithoutAddressData
IPEC : InstantPaymentsInECommerceWithAddressData
IPEW : InstantPaymentsInECommerce
IPPS : InstantPaymentsAtPOS
IPRT : InstantPaymentsReturn
IPU2 : InstantPaymentsUnattendedVendingMachineWith2FA
IPUW : InstantPaymentsUnattendedVendingMachineWithout2FA
IVPT : InvoicePayment
LBIN : LendingBuyInNetting
LBRI : LaborInsurance
LCOL : LendingCashCollateralFreeMovement
LFEE : LendingFees
LICF : LicenseFee
LIFI : LifeInsurance
LIMA : LiquidityManagement
LMEQ : LendingEquityMarkedToMarketCashCollateral
LMFI : LendingFixedIncomeMarkedToMarketCashCollateral
LMRK : LendingUnspecifiedTypeOfMarkedToMarketCashCollateral
LOAN : Loan
LOAR : LoanRepayment
LOTT : LotteryPayment
LREB : LendingRebatePayments
LREV : LendingRevenuePayments
LSFL : LendingClaimPayment
LTCF : LongTermCareFacility
MAFC : MedicalAidFundContribution
MARF : MedicalAidRefund
MARG : DailyMarginOnListedDerivatives
MBSB : MBSBrokerOwnedCashCollateral
MBSC : MBSClientOwnedCashCollateral
MCDM : MultiCurrenyChequeDomestic
MCFG : MultiCurrenyChequeForeign
MDCS : MedicalServices
MGCC : FuturesInitialMargin
MGSC : FuturesInitialMarginClientOwnedSegregatedCashCollateral
MOMA : MoneyMarket
MP2B : MobileP2BPayment
MP2P : MobileP2PPayment
MSVC : MultipleServiceTypes
MTUP : MobileTopUp
NETT : Netting
NITX : NetIncomeTax
NOWS : NotOtherwiseSpecified
NWCH : NetworkCharge
NWCM : NetworkCommunication
OCCC : ClientOwnedOCCPledgedCollateral
OCDM : OrderChequeDomestic
OCFG : OrderChequeForeign
OFEE : OpeningFee
OPBC : OTCOptionBrokerOwnedCashCollateral
OPCC : OTCOptionClientOwnedCashCollateral
OPSB : OTCOptionBrokerOwnedSegregatedCashCollateral
OPSC : OTCOptionClientOwnedCashSegregatedCashCollateral
OPTN : FXOption
OTCD : OTCDerivatives
OTHR : Other
OTLC : OtherTelecomRelatedBill
PADD : PreauthorizedDebit
PAYR : Payroll
PCOM : PropertyCompletionPayment
PDEP : PropertyDeposit
PEFC : PensionFundContribution
PENO : PaymentBasedOnEnforcementOrder
PENS : PensionPayment
PHON : TelephoneBill
PLDS : PropertyLoanDisbursement
PLRF : PropertyLoanRefinancing
POPE : PointOfPurchaseEntry
PPTI : PropertyInsurance
PRCP : PricePayment
PRME : PreciousMetal
PTSP : PaymentTerms
PTXP : PropertyTax
RAPI : RapidPaymentInstruction
RCKE : RepresentedCheckEntry
RCPT : ReceiptPayment
RDTX : RoadTax
REBT : Rebate
REFU : Refund
RELG : RentalLeaseGeneral
RENT : Rent
REOD : AccountOverdraftRepayment
REPO : RepurchaseAgreement
RETL : RetailPayment
RHBS : RehabilitationSupport
RIMB : ReimbursementOfAPreviousErroneousTransaction
RINP : RecurringInstallmentPayment
RLWY : Railway
ROYA : Royalties
RPBC : BilateralRepoBrokerOwnedCollateral
RPCC : RepoClientOwnedCollateral
RPNT : BilateralRepoInternetNetting
RPSB : BilateralRepoBrokerOwnedSegregatedCashCollateral
RPSC : BilateralRepoClientOwnedSegregatedCashCollateral
RRBN : RoundRobin
RRCT : ReimbursementReceivedCreditTransfer
RRTP : RelatedRequestToPay
RVPM : ReceiveAgainstPayment
RVPO : ReverseRepurchaseAgreement
SALA : SalaryPayment
SASW : ATM
SAVG : Savings
SBSC : SecuritiesBuySellSellBuyBack
SCIE : SingleCurrencyIRSExotic
SCIR : SingleCurrencyIRS
SCRP : SecuritiesCrossProducts
SCVE : PurchaseSaleOfServices
SECU : Securities
SEPI : SecuritiesPurchaseInhouse
SERV : ServiceCharges
SHBC : BrokerOwnedCollateralShortSale
SHCC : ClientOwnedCollateralShortSale
SHSL : ShortSell
SLEB : SecuritiesLendingAndBorrowing
SLOA : SecuredLoan
SLPI : PaymentSlipInstruction
SPLT : SplitPayments
SPSP : SalaryPensionSumPayment
SSBE : SocialSecurityBenefit
STDY : Study
SUBS : Subscription
SUPP : SupplierPayment
SWBC : SwapBrokerOwnedCashCollateral
SWCC : SwapClientOwnedCashCollateral
SWFP : SwapContractFinalPayment
SWPP : SwapContractPartialPayment
SWPT : Swaption
SWRS : SwapContractResetPayment
SWSB : SwapsBrokerOwnedSegregatedCashCollateral
SWSC : SwapsClientOwnedSegregatedCashCollateral
SWUF : SwapContractUpfrontPayment
TAXR : TaxRefund
TAXS : TaxPayment
TBAN : TBAPairOffNetting
TBAS : ToBeAnnounced
TBBC : TBABrokerOwnedCashCollateral
TBCC : TBAClientOwnedCashCollateral
TBIL : TelecommunicationsBill
TCSC : TownCouncilServiceCharges
TELI : TelephoneInitiatedTransaction
TLRF : NonUSMutualFundTrailerFeePayment
TLRR : NonUSMutualFundTrailerFeeRebatePayment
TMPG : TMPGClaimPayment
TPRI : TriPartyRepoInterest
TPRP : TriPartyRepoNetting
TRAD : Commercial
TRCP : TreasuryCrossProduct
TREA : TreasuryPayment
TRFD : TrustFund
TRNC : TruncatedPaymentSlip
TRPT : RoadPricing
TRVC : TravellerCheque
UBIL : Utilities
UNIT : UnitTrustPurchase
VATX : ValueAddedTaxPayment
VIEW : VisionCare
WEBI : InternetInitiatedTransaction
WHLD : WithHolding
WTER : WaterBill

SDD purpose codes

The categoryPurposeCode(1) and purposeCode(2) used in the SDDTransaction.

SALA(1) (2)Salary Payment
TREA(1) (2)Treasury Payment
ADVA(2)Advance Payment
AGRT(2)Agricultural Transfer
ALMY(2)Alimony Payment
BECH(2)Child Benefit
BENE(2)Unemployment Disability Benefit
BONU(2)Bonus Payment
CASH(1) (2)Cash Management Transfer
CBFF(2)Capital Building
CHAR(2)Charity Payment
COLL(2)Collection Payment
CMDT(2)Commodity Transfer
COMC(2)Commercial Payment
COMM(2)Commission
COST(2)Costs
CPYR(2)Copyright
DIVI(1) (2)Dividend
FREX(2)Foreign Exchange
GDDS(2)Purchase Sale Of Goods
GOVT(1) (2)Gouvernment Payment
IHRP(2)Instalment Hire Purchase Agreement
INTC(1) (2)Intra Company Payment
INSU(2)Insurance Premium
INTE(1) (2)Interest
LIFC(2)Licence Fee
LOAN(1) (2)Loan
LOAR(2)Loan Repayment
NETT(2)Netting
PAYR(2)Payment Roll
PENS(1) (2)Pension
REFU (2)Refund
RENT(2)Rent
ROYA(2)Royalties
SCVE(2)Purchase Sale Of Services
SECU(1) (2)Securities
SSBE(1) (2)Social Security Benefit
SUBS(2)Subscription
TAXS(1) (2)Tax Payment
COMT(2)Consumer Third Party Consolidated Payment
DBTC(2)Debit Collection Payment
SUPP(1) (2)Supplier Payment
HEDG(1) (2)Hedging
MSVC(2)Multiple Service Types
NOWS(2)Not Otherwise Specified
CARD(2)Card Payment
CDBL(2)Credit Card Bill
FERB(2)Ferry
AIRB(2)Air
BUSB(2)Bus
RLWY(2)Railway
CVCF(2)Convalescent Care Facility
DNTS(2)Dental Services
ANTS(2)Anesthesia Services
HLTC(2)Home Health Care
HSPC(2)Hospital Care
ICRF(2)Intermediate Care Facility
LTCF(2)Long Term Care Facility
MDCS(2)Medical Services
VIEW(2)Vision Care
DMEQ(2)Durable Medicale Equipment
CBTV(2)Cable TV Bill
ELEC(2)Electricity Bill
GASB(2)Gas Bill
PHON(2)Telephone Bill
OTLC(2)Other Telecom Related Bill
WTER(2)Water Bill
STDY(2)Study
PRCP(2)Price Payment
INSM(2)Installment
RINP(2)Recurring Installment Payment
OFEE(2)Opening Fee
CFEE(2)Cancellation Fee
GOVI(2)Government Insurance
INPC(2)Insurance Premium Car
LBRI(2)Labor Insurance
LIFI(2)Life Insurance
PPTI(2)Property Insurance
HLTI(2)Health Insurance
CLPR(2)Car Loan Principal Repayment
ESTX(2)Estate Tax
HLRP(2)Housing Loan Repayment
CSLP(2)Company Social Loan Payment To Bank
HSTX(2)Housing Tax
INTX(2)Income Tax
NITX(2)Net Income Tax
NWCH(2)Network Charge
NWCM(2)Network Communication
BEXP(2)Business Expenses
TRFD(2)Trust Fund
RCPT(2)Receipt
PTSP(2)Payment Terms
OTHR(2)Other
WHLD(1)(2)With Holding
CORT(1)Trade Settlement Payment
VATX(1)Value Added Tax Payment
TRAD(1)Trade

Error codes

ErrorDetails ATTRIBUTES
errorCodeCode indicating the type of problem identified.
errorComponentCode indicating the 3-D Secure component that identified the error.
errorDescriptionText describing the problem identified.
errorDetailAdditional detail regarding the problem identified.
ErrorCode possible values
101MESSAGE_RECEIVED_INVALID
102MESSAGE_VERSION_NUMBER_NOT_SUPPORTED
103SENT_MESSAGES_LIMIT_EXCEEDED
201REQUIRED_ELEMENT_MISSING
202CRITICAL_MESSAGE_EXTENSION_NOT_RECOGNIZED
203FORMAT_ON_ONE_OR_MORE_ELEMENTS_INVALID_ACCORDING_SPECS
204DUPLICATE_DATA_ELEMENT
301TRANSACTION_ID_NOT_RECOGNIZED
302DATA_DECRYPTION_FAILURE
303ACCESS_DENIED_INVALID_ENDPOINT
304ISO_CODE_NOT_VALID
305TRANSACTION_DATA_NOT_VALID
306MCC_NOT_VALID_FOR_PAYMENT_SYSTEM
307SERIAL_NUMBER_NOT_VALID
402TRANSACTION_TIMED_OUT
403TRANSIENT_SYSTEM_FAILURE
404PERMANENT_SYSTEM_FAILURE
405SYSTEM_CONNECTION_FAILURE
911DATA_FIELDS_RELEVANCE_CHECK_FAILURE
912DUPLICATED_TRANSACTION_ID
ErrorComponent possible values
« C »THREE_DS_SDK
« S »THREE_DS_SERVER
« D »DIRECTORY_SERVER
« A »ACCESS_CONTROL_SERVER

Test values

Test IBAN values

Find below the list of HTTP return codes:

DE75512108001245126199SOGEDEFFXXX
FR7630004000031234567890143BNPAFRPPXXX
AT483200000012345864RLNWATWWXXX
BE71096123456769GKCCBEBB
AL35202111090000000001234567SGSBALTX
EE471000001020145685EEUHEE2X
ES7921000813610123456789CAIXESBBXXX

Test cards Values

This page provides a list of test card PANs you can use to validate your CentralPay integration. Each PAN below triggers a predictable scenario (bank refusal, 3DS authentication outcome, or card attributes such as EEA / region / product type).

Note: 3DS outcome values (transStatus such as Y, C, D, I, N…) are described in the dedicated 3DS 2.2 BRW documentation.

Card details to use: for all test PANs on this page, the expiry date and CVC values are free. The only requirement is that the expiry date must be later than today’s date. The CVC must be 3 digits (for example: 123).

Legend: ✅ Success · ❌ Bank refusal · ⛔ 3DS refused · 🛡️ 3DS · 🔒 3DS Challenge · 🔁 3DS Decoupled · ℹ️ 3DS Info · 🧭 Attributes

Quick test cards (most common scenarios)

PANScenarioWhat you should observe
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)Authorization succeeds with a successful 3DS authentication.
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)Challenge flow expected (you must complete the challenge step to proceed).
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowDecoupled authentication scenario (handling depends on your 3DS implementation).
4556 1041 6038 2032⛔🛡️ 3DS authentication refused (transStatus = N)The API responds with HTTP 200, but the 3DS authentication is refused (transStatus = N) and the payment is declined.
4000 0000 0000 0077❌ Bank refusal – Insufficient funds (51)Authorization is refused with bank return code 51 (Insufficient funds).
4000 0000 0000 0085❌ Bank refusal – Do not honor (5)Authorization is refused with bank return code 5 (Do not honor / refused).

Bank refusal PANs: these PANs are refused at the bank authorization stage regardless of the authentication flow.

Visa Card numbers

1) Bank refusals (regardless of the authentication flow)

PANScenarioDescription
4000 0000 0000 0051❌ Card lost (41)This PAN simulates a bank refusal with return code 41 (Card lost), regardless of the authentication flow.
4000 0000 0000 0069❌ Fraud suspicion (59)This PAN simulates a bank refusal with return code 59 (Fraud suspicion), regardless of the authentication flow.
4000 0000 0000 0077❌ Insufficient funds (51)This PAN simulates a bank refusal with return code 51 (Insufficient funds), regardless of the authentication flow.
4000 0000 0000 0085❌ Do not honor / refused (5)This PAN simulates a bank refusal with return code 5 (Do not honor / refused), regardless of the authentication flow.

2) 3DS scenarios

These PANs are designed to reproduce specific 3DS outcomes (transStatus). If transStatus = C, a challenge flow is expected and must be completed. If transStatus = N, the 3DS authentication is refused and the payment is declined.

PANScenarioDescription
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
4024 0071 7987 2394🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
4234 6319 8242 8908ℹ️🛡️ 3DS information only (transStatus = I)This PAN simulates a 3DS authentication with transStatus = I (Information only), to validate how you handle an informational 3DS outcome.
4234 6319 8242 8916🔁🛡️ 3DS decoupled (transStatus = D) – application flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using an application flow.
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using a browser flow.
4556 1041 6038 2032⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

3) Card attributes simulation (EEA / region / productType / cardType)

These PANs are designed to simulate card metadata (EEA / region / productType / cardType). Use them to validate your business rules, reporting, segmentation, or routing logic based on card attributes.

PANAttributes returnedDescription
4032 0389 8296 2700🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=DEBITThis PAN simulates an EEA consumer debit card in Europe.
4032 0343 8883 4767🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=CREDITThis PAN simulates an EEA consumer credit card in Europe.
4020 0280 0191 2012🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates an EEA consumer card in Europe with cardType=UNKNOWN.
4032 0337 9569 2248🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
4032 0368 1354 0364🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=CREDITThis PAN simulates an EEA corporate credit card in Europe.
4032 0387 5662 0096🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates an EEA corporate card in Europe with cardType=UNKNOWN.
4032 0358 5604 7592🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=DEBITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and DEBIT.
4032 0302 9068 3219🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=CREDITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and CREDIT.
4032 0377 5134 3001🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates an EEA card in Europe with productType=UNKNOWN and cardType=UNKNOWN.
4032 0307 5488 6225🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in USA/CANADA.
4032 0310 2547 6341🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in USA/CANADA.
4032 0341 4311 3978🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates a non-EEA consumer card in USA/CANADA with cardType=UNKNOWN.
4032 0309 5816 7398🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in USA/CANADA.
4032 0375 4480 7536🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=CREDITThis PAN simulates a non-EEA corporate credit card in USA/CANADA.
4032 0366 9148 7225🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates a non-EEA corporate card in USA/CANADA with cardType=UNKNOWN.
4032 0325 8917 3860🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=DEBITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and DEBIT.
4032 0388 0897 9557🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=CREDITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and CREDIT.
4032 0374 2147 1240🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and cardType=UNKNOWN.

Mastercard Card numbers

1) 3DS scenarios

PANScenarioDescription
5333 2591 5564 3223✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
5306 8899 4283 3340🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
5187 4346 4359 3002🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
5328 7203 8458 2224⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

2) Card attributes simulation (EEA / region / productType / cardType)

PANAttributes returnedDescription
5517 4500 0000 0168🧭 EEA=false ; region=US ; productType=CONSUMER ; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in the US.
5223 8599 0000 0174🧭 EEA=false ; region=US ; productType=CORPORATE ; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in the US.
5325 0900 0000 0115🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5325 0900 0000 0008🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5486 7467 7300 0005🧭 EEA=false ; region=EUROPE ; productType=CONSUMER ; cardType=DEBIT; Country=RUSThis PAN simulates a non-EEA consumer debit card with Country=RUS.
5588 1000 0000 0007🧭 EEA=false ; region=CEMEA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in CEMEA.
5122 9400 0000 0009🧭 EEA=false ; region=LATIN_AMERICA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in LATIN_AMERICA.

Amex Card numbers

1) 3DS scenarios

PANScenarioDescription
3415 0209 8634 895✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
3486 3826 7931 507🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
3456 9539 9207 589⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

2) Card attributes simulation (EEA / region / productType)

PANAttributes returnedDescription
3415 0209 8634 895🧭 EEA=false ; region=EUROPE ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in Europe.
3486 3826 7931 507🧭 EEA=false ; region=EUROPE ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in Europe.
3718 4294 2351 004🧭 EEA=false ; region=EUROPE ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in Europe with productType=UNKNOWN.
3712 5311 3391 201🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in ASIA_PACIFIC.
3423 1631 7472 410🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in ASIA_PACIFIC.
3710 9829 7279 338🧭 EEA=false ; region=ASIA_PACIFIC ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in ASIA_PACIFIC with productType=UNKNOWN.

CB Card numbers

These PANs allow you to test how the card is classified under the CB scheme (CB vs co-badged CB_VISA / CB_MASTERCARD) in your integration and reporting.

PANScenarioDescription
4020 0235 6597 5380✅🛡️ 3DS success (transStatus = Y) – scheme: CBThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB scheme.
4020 0254 4041 8403✅🛡️ 3DS success (transStatus = Y) – scheme: CB_VISAThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB_VISA scheme.
5232 1035 2372 2651✅🛡️ 3DS success (transStatus = Y) – scheme: CB_MASTERCARDThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB_MASTERCARD scheme.

Troubleshooting (what to check)

If you don’t get the expected outcome, start by checking:

  • Bank refusals: verify the returned bank refusal code/message in your transaction response or webhook (e.g., 51, 41, 59, 5).
  • 3DS scenarios: verify the returned transStatus. If C, a challenge flow must be completed; if N, the 3DS authentication is refused and the payment is declined; if D, the expected handling depends on your decoupled implementation.
  • Card attributes: verify the returned card metadata (EEA / region / productType / cardType) in the payment method or transaction details.

Developers

Articles

  • How to use the swagger
  • Authentication 3DS 2.2
  • Attachment
  • Balance Histories
  • BankAccount
  • Card token
  • CARD Transaction
  • Charge
  • ClearedOperation
  • CpayUser
  • Credit
  • Customer
  • Deposit
  • Deposits
  • Event
  • Exchange
  • Identity
  • Info
  • Installment Payment
  • MerchantInfo
  • MID
  • Movement
  • Origin
  • PIS
  • Payment Request
  • Payout
  • Point Of Sale
  • Refund
  • PendingOperation
  • Regularisation
  • RIB
  • SCT Transaction
  • SDD Transaction
  • Scenario
  • SourceType
  • Subscription
  • Transfer
  • TransferReversal
  • Wallet
  • Blacklist
  • WhiteList
  • Onboarding
  • Object status
  • Webhook notifications
  • Resources by type

How to use the swagger

You’ll find below instruction to use our swagger properly

1 – This is where you can choose the server you’ll call for your tests. For now, only RCT (Test Api) is available.
2 – In order to do your tests, you’ll need to authenticate with your credentials. You can use here your RCT (test) Api login and password. You can also use our test login : Doctest:4I9HJRTd
Don’t use your Production login for the tests, you’ll get a 401 error.


3 – This is where you will be able to see the parameters for each endpoint, and do your tests.

4 – Try it out. Use this if you want to be able to test the endpoint. Make sure you’re authenticated before doing so.
5 – This is where you’ll be able to use the test values of your choosing. By default, most values are already filled, but use yours for better results.
6 – Click here once values are filled to call our Api and do your tests.
7 – This is where you’ll see the results once you called our Api. You’ll also find here by default responses example for this endpoint.

Authentication 3DS 2.2

See more about 3DS 2.2

jQuery(document).ready( function($) { window.live_6ab3046e02762 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_3D-Secure 2.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046e02762", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046e02762.load(); });

Attachment

jQuery(document).ready( function($) { window.live_6ab3046e8ee5e = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Attachment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046e8ee5e", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046e8ee5e.load(); });

Balance Histories

jQuery(document).ready( function($) { window.live_6ab3046eb45d9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Balance Histories.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046eb45d9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046eb45d9.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_6ab3046f04eb2 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Account.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f04eb2", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f04eb2.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_6ab3046f23505 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Card Token.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f23505", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f23505.load(); });

CARD Transaction

Transaction

See more about card transactions

jQuery(document).ready( function($) { window.live_6ab3046daa42e = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046daa42e", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046daa42e.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_6ab3046e037a7 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Card.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046e037a7", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046e037a7.load(); });

Credit

See more about Credit

jQuery(document).ready( function($) { window.live_6ab3046e7ac35 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Credit.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046e7ac35", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046e7ac35.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_6ab3046e9656d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Dispute.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046e9656d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046e9656d.load(); });

Charge

jQuery(document).ready( function($) { window.live_6ab3046f4ab26 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Charge.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f4ab26", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f4ab26.load(); });

ClearedOperation

jQuery(document).ready( function($) { window.live_6ab3046f56669 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_ClearedOperation.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f56669", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f56669.load(); });

CpayUser

jQuery(document).ready( function($) { window.live_6ab3046f9bcb2 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_CpayUser.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9bcb2", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9bcb2.load(); });

Credit

jQuery(document).ready( function($) { window.live_6ab3046f9c1de = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Credit.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9c1de", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9c1de.load(); });

Customer

See more about Customer

jQuery(document).ready( function($) { window.live_6ab3046f9ca96 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Customer.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9ca96", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9ca96.load(); });

Deposit

jQuery(document).ready( function($) { window.live_6ab3046f9cf68 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Deposit.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9cf68", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9cf68.load(); });

Deposits

jQuery(document).ready( function($) { window.live_6ab3046f9d41d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Deposits.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9d41d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9d41d.load(); });

Event

jQuery(document).ready( function($) { window.live_6ab3046f9d8d5 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Event.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9d8d5", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9d8d5.load(); });

Exchange

jQuery(document).ready( function($) { window.live_6ab3046f9dd7a = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Exchange.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9dd7a", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9dd7a.load(); });

Identity

jQuery(document).ready( function($) { window.live_6ab3046f9e22c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Identity.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9e22c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9e22c.load(); });

Info

jQuery(document).ready( function($) { window.live_6ab3046f9e6cd = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Info.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9e6cd", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9e6cd.load(); });

Installment Payment

See more about Installment Payment

jQuery(document).ready( function($) { window.live_6ab3046f9ee66 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Installment Payment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9ee66", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9ee66.load(); });

MerchantInfo

jQuery(document).ready( function($) { window.live_6ab3046f9f336 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Merchant.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9f336", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9f336.load(); });

MID

jQuery(document).ready( function($) { window.live_6ab3046f9f842 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_MID.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9f842", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9f842.load(); });

Movement

jQuery(document).ready( function($) { window.live_6ab3046f9fd6b = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Movement.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9fd6b", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9fd6b.load(); });

Origin

See more about Payment Requests

jQuery(document).ready( function($) { window.live_6ab3046fa0769 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Origin.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa0769", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa0769.load(); });

PIS

See more about Payment Requests

jQuery(document).ready( function($) { window.live_6ab3046fa0f23 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_PIS.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa0f23", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa0f23.load(); });

Payment Request

See more about Payment Requests

jQuery(document).ready( function($) { window.live_6ab3046fa16d0 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Payment Request.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa16d0", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa16d0.load(); });
jQuery(document).ready( function($) { window.live_6ab3046fa16df = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_PaymentRequestHistory.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa16df", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa16df.load(); });

Payout

See more about Payout

jQuery(document).ready( function($) { window.live_6ab3046fa25da = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Payout.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa25da", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa25da.load(); });
jQuery(document).ready( function($) { window.live_6ab3046fa25ee = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Merchant Payout Setup.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa25ee", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa25ee.load(); });

Point Of Sale

jQuery(document).ready( function($) { window.live_6ab3046fa2b01 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Point Of Sale.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa2b01", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa2b01.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_6ab3046fa394c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Refund.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa394c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa394c.load(); });

PendingOperation

jQuery(document).ready( function($) { window.live_6ab3046fa3e89 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_PendingOperation.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa3e89", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa3e89.load(); });

Regularisation

jQuery(document).ready( function($) { window.live_6ab3046fa430d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Regularisation.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa430d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa430d.load(); });

RIB

jQuery(document).ready( function($) { window.live_6ab3046fa47e9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Rib.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa47e9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa47e9.load(); });

SCT Transaction

SCT Transaction

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_6ab3046ef062c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046ef062c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046ef062c.load(); });

SCT Transaction Reversal

See more about SCT Transaction Reversal

jQuery(document).ready( function($) { window.live_6ab3046f2459c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f2459c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f2459c.load(); });

SCT Transaction Refund

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_6ab3046f44638 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction Refund.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f44638", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f44638.load(); });

SCT transaction Refund Reversal

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_6ab3046f4db1b = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT transaction Refund Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f4db1b", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f4db1b.load(); });

Bank Reconciliation

See more about Bank Reconciliation

jQuery(document).ready( function($) { window.live_6ab3046f4eb2d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Reconciliation wireTransfer.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f4eb2d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f4eb2d.load(); });

Bank Reconciliation external

See more about Bank Reconciliation

jQuery(document).ready( function($) { window.live_6ab3046fa59db = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Reconciliation external.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa59db", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa59db.load(); });

SDD Transaction

Mandate

See more about Mandate

jQuery(document).ready( function($) { window.live_6ab3046fa65f7 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Mandate.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa65f7", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa65f7.load(); });

SDD Transaction

See more about SDD Transaction

jQuery(document).ready( function($) { window.live_6ab3046fa6e0c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa6e0c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa6e0c.load(); });

SDD Transaction Reversal

See more about SDD Transaction Reversal

jQuery(document).ready( function($) { window.live_6ab3046fa762c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa762c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa762c.load(); });

SDD Transaction Refund

jQuery(document).ready( function($) { window.live_6ab3046fa7a9d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Refund.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa7a9d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa7a9d.load(); });

SDD Transaction Refund Reversal

jQuery(document).ready( function($) { window.live_6ab3046fa7ef7 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Refund Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa7ef7", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa7ef7.load(); });

Scenario

jQuery(document).ready( function($) { window.live_6ab3046fa832c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Scenario.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa832c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa832c.load(); });

SourceType

jQuery(document).ready( function($) { window.live_6ab3046fa885d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SourceType.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa885d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa885d.load(); });

Subscription

Subscription Model

See more about Subscription Model

jQuery(document).ready( function($) { window.live_6ab3046fa9359 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Subscription Model.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa9359", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa9359.load(); });

Subscription

See more about Subscription

jQuery(document).ready( function($) { window.live_6ab3046fa9b63 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Subscription.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa9b63", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa9b63.load(); });

Invoice

See more about Invoice & invoiceItem

jQuery(document).ready( function($) { window.live_6ab3046faa31a = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Invoice.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046faa31a", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046faa31a.load(); });

InvoiceItem

See more about Invoice & invoiceItem

jQuery(document).ready( function($) { window.live_6ab3046faab1c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Invoice Item.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046faab1c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046faab1c.load(); });

Transfer

jQuery(document).ready( function($) { window.live_6ab3046faaf58 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Transfer.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046faaf58", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046faaf58.load(); });

TransferReversal

jQuery(document).ready( function($) { window.live_6ab3046fab358 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Transfer Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fab358", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fab358.load(); });

Wallet

jQuery(document).ready( function($) { window.live_6ab3046fab777 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Wallet.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fab777", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fab777.load(); });

Blacklist

jQuery(document).ready( function($) { window.live_6ab3046fabb58 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Blacklist.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fabb58", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fabb58.load(); });

WhiteList

jQuery(document).ready( function($) { window.live_6ab3046fabf09 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Whitelist.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fabf09", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fabf09.load(); });

Onboarding

Create Enrollement

jQuery(document).ready( function($) { window.live_6ab3046fac75c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Create enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fac75c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fac75c.load(); });

jQuery(document).ready( function($) { window.live_6ab3046fac76b = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_User.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fac76b", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fac76b.load(); });

Complete enrollment

jQuery(document).ready( function($) { window.live_6ab3046facc57 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Complete enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046facc57", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046facc57.load(); });

jQuery(document).ready( function($) { window.live_6ab3046facc66 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Complete additional enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046facc66", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046facc66.load(); });

jQuery(document).ready( function($) { window.live_6ab3046facc71 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046facc71", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046facc71.load(); });

Update enrollment

jQuery(document).ready( function($) { window.live_6ab3046fad152 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Update enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fad152", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fad152.load(); });

jQuery(document).ready( function($) { window.live_6ab3046fad160 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Rollback enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fad160", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fad160.load(); });

Search enrollement

jQuery(document).ready( function($) { window.live_6ab3046fad639 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Search enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fad639", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fad639.load(); });

Enrollment Details

jQuery(document).ready( function($) { window.live_6ab3046fad9ff = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Enrollment details.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fad9ff", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fad9ff.load(); });

E-money

jQuery(document).ready( function($) { window.live_6ab3046fade0c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Autocomplete.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fade0c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fade0c.load(); });

jQuery(document).ready( function($) { window.live_6ab3046fade1a = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Autoupdate.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fade1a", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fade1a.load(); });

Misc

jQuery(document).ready( function($) { window.live_6ab3046fae419 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Configuration.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fae419", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fae419.load(); });

Object status

MERCHANT-ENROLLMENT status

This page lists the possible values returned by the status field in the EnrollmentWorkflow object. These statuses indicate the current state of a merchant onboarding process initiated through CentralPay’s API or user portal.

📌 Status List

StatusDescription
API_CALLThe enrollment was initiated via API. The workflow has been created but no validation has occurred yet.
VALIDATIONThe onboarding request is currently under validation (e.g., verifying provided data and uploaded documents).
ON_GOINGThe process is ongoing. The merchant is expected to provide more information or complete additional steps.
OVERRIDECentralPay has overridden a previous decision and resumed processing the enrollment.
REFUSEDThe enrollment request has been refused. CentralPay may have detected a regulatory issue, risk, or missing eligibility requirement.
ACCEPTEDThe merchant enrollment is complete and validated. The merchant can now use their CentralPay account.

🔁 Status Flow Overview

✅ Standard Status Flow

API_CALL → VALIDATION → ON_GOING → ACCEPTED

This is the default progression for a successful enrollment:

  • API_CALL – The enrollment has been created via API. No validation has started yet.
  • VALIDATION – CentralPay is verifying the submitted information and documents.
  • ON_GOING – The merchant is expected to provide additional data or complete onboarding steps.
  • ACCEPTED – The enrollment has been approved. The merchant can now use their CentralPay account.

❌ Alternative Flow – Rejection

API_CALL → VALIDATION → REFUSED

or

API_CALL → VALIDATION → ON_GOING → REFUSED

The enrollment is rejected during the process, either early on or after attempted completion. Common reasons include:

  • Invalid or non-compliant documents
  • Ineligible merchant activity
  • Excessive financial or regulatory risk

🔁 Manual Override After Refusal

REFUSED → OVERRIDE → VALIDATION / ON_GOING

If new or corrected information is provided, a CentralPay operator may resume the process after an initial refusal.

The OVERRIDE status indicates that a manual decision has been made to re-open the enrollment flow.

💬 Notes

  • An Agent or DME may retrieve the enrollment status via API to track progress.
  • CentralPay sends webhooks to the configured endpoint when the enrollment status changes (e.g., ACCEPTED, REFUSED).
  • Once the enrollment is ACCEPTED, the merchant’s profile becomes active, and their account is ready for use.

TRANSFER status

This page lists and describes the status values associated with the Transfer object. These statuses reflect the progression of a fund transfer operation created via the /transfer endpoint in CentralPay’s API.

Status values

StatusDescription
CREATEDThe transfer has been successfully created and registered. It has not yet been executed.
SCHEDULEDThe transfer is scheduled for automatic execution at a defined date/time.
PENDINGThe transfer is being processed. Execution is in progress but not yet finalized.
CANCELEDThe transfer was canceled 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 → CANCELED

If the transfer is canceled 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 canceled 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.
CANCELEDThe reversal request was canceled 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 → CANCELED

🔍 Notes

  • A reversal can only be initiated if the original transfer is eligible.
  • Once DONE, the reversal is final and reflected in both wallets.
  • Status changes can be tracked via webhook notifications if configured.

PAYMENT REQUEST status

  • Payment request status:
    • ACTIVE
    • CLOSED
    • CANCELED
  • Payment status :
    • UNPAID
    • ACCEPTED
    • PARTIALLY_PAID
    • PAID

The following table explains every possible status combination and what they point out :

Payment request statusPayment status Explanation
ACTIVEUNPAIDPayment request created, waiting for the customer’s payment.
ACTIVEPARTIALLY_PAIDThe customer has paid part of the total sum of the payment request that will stay ACTIVE while waiting for the remaining payment(s).
ACTIVEACCEPTEDTemporary status that is exclusive for the SDD transactions, PIS transactions, pre-authorization and deferred payments. The customer has done the required action and the operation is waiting for the processing.
CLOSEDPAIDThe payment request has been fully paid.
CLOSEDPARTIALLY_PAIDThe payment request has been partially paid and the merchant has manually closed it. This can be performed from the API or the user portal if the merchant is satisfied with this partial payment of the customer and allows to stop any automatic reminders.
CANCELEDUNPAIDThe payment request was cancelled before the customer’s payment. This cancellation may be initiated by the merchant via API or via the User Portal (in the event of an error in the creation or cancellation of an order, for example), or carried out automatically if the link expires. This cancellation reason is visible from the User Portal.

TRANSACTION status

Status « Transaction »

StatusDescription
SUCCESSThe transaction is a « success » when an authorization request has been issued by the Bank and the bank return code is « 0 ».
FRAUDThe status indicates that the transaction encountered a « blacklisted » item. This can come from an IP, phone number, email or card number.
CAPTUREDA Success transaction must be « captured » within 7 calendar days in order to be charged to your Customer’s card.
Note: by default, a transaction is automatically « captured ».
FAILUREThe transaction is in « failure » when the authorization has not been issued by the Bank issuing the card.
In addition, you receive a rejection code issued by the bank of the card issuer (bank code < 100).
CANCELEDThis status reflects the cancellation of a « capture » request before it is cleared. It is possible to cancel a transaction between the « success » and « cleared » transaction status.
THREEDS_AUTH_FAILURE3DS authentication failed. The cardholder submitted an incorrect code or did not submit it in time.
CLEAREDA « Cleared » transaction indicates that a debit has been made on your customer’s card. At this point, you can no longer cancel the transaction, but you can refund it using the « refund » API object.
NOT_ACCEPTEDThe transaction was declined as it encountered an element of denial of an acceptance rule.

REFUND status

Statuts « Refund »

StatutDescription
CLEAREDProcessed refund.
UNCLEAREDRefund pending processing.
FAILURERefund in error.
CANCELEDRefund cancelled, either by you or by your customer via the customer portal.

CREDIT status

Status « Credit »

StatusDescription
CLEAREDCredit processed.
UNCLEAREDCredit pending processing
FAILURECredit in error.
CANCELEDCredit cancelled, either by you or by your Customer via the customer portal.

DISPUTES status

Status « Disputes »

StatutDescription
FRAUD_NOTICEDA preventive fraud alert sent by the issuer via the card scheme (e.g., Visa TC40). It is not a formal dispute nor a refund. Use it to anticipate controls and block similar attempts.
RETRIEVAL_NOTICEDA request for information is sent to you in order to obtain information on the nature of the operation carried out. At this point, it is not a proven dispute. Depending on your response to this request, your client can turn it into a dispute.
RETRIEVAL_CLOSENotification that the request for information is closed. The information provided has prevented the dispute.
CHARGEBACK_NOTICEDA transaction dispute is sent by your customer. The amount of this transaction will be charged to refund your customer. Non-refundable fees also apply for each dispute received.
Note : a Chargeback (dispute) is not necessarily preceded by a Retrieval (request for information).
CHARGEBACK_WONYou were successful, the dispute was rejected. The amount of the transaction is refunded to you.
CHARGEBACK_LOSTYour evidences are deemed insufficient, the challenge is upheld.
TRANSACTION_REFUNDEDThe amount of the disputed transaction was refunded to you following a CHARGEBACK_WON.

SUBSCRIPTION status

Status « Subscription »

StatusDescription
ACCEPTEDThe subscription is active and running (initial status when a subscription is successfully created).
PENDINGStatus defined by the configuration you have chosen in case of repeated payment failures.
REFUSEDStatus defined by the configuration you have chosen in case of repeated payment failures.
CANCELEDThe subscription has been canceled 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.
CANCELEDThe bank account is no longer usable (closed account, fraud, …).

PAYOUT status

StatusDescription
PAIDThe payout has been paid.
PENDINGPayout pending processing.
CANCELEDThe payout has been canceled (only in pending).
REVERSEDThe payout has been refused by the creditor bank, the amount will be credited again on the debtor wallet.

SCT TRANSACTION status

Status « SCT Transaction »

StatusDescription
PENDINGPending receipt of the SCT Transaction.
RECEIVEDSCT Transaction received.
CANCELEDSCT Transaction cancelled before receipt.
REFUNDEDSCT Transaction refunded.

Webhook notifications

The PAYMENT-ACCOUNT object

PAYMENT_ACCOUNT_STATUS_UPDATED
When a payment account is updated
{
    "blockConfigurationId": "e09287a2-xxxx-xxxx-xxxx-02e4d8a90f84",
    "blockReason": "ACCOUNT_DUPLICATE",
    "blockStatus": "IN_OUT",
    "creationDate": "2026-04-16T09:03:48.171329+02:00",
    "enrollmentUuid": "af5c4ccb-xxxx-xxxx-xxxx-3365ebad820c",
    "merchantUuid": "aa23c0d6-xxxx-xxxx-xxxx-0765feacc9f1"
}

The MERCHANT-ENROLLMENT object

Prochainement

The WALLETS object

WALLET_CREATED
When a wallet is created
{
    "activityStatus": "ACTIVE",
    "additionalData": [],
    "available": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "closedAccount": false,
    "creationDate": "2026-09-16T09:51:26.776625Z",
    "currency": "EUR",
    "customerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "defaultWallet": false,
    "hasDebt": false,
    "merchantPayoutSetupId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "owner": {
        "name": "Martin Durant",
        "uuid": "xxxx-xxxx-xxxx-xxxx-xxxx",
    },
    "ownerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "name": "PAYMENT ACCOUNT",
    "pending": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "personal": false,
    "realtimeBalance": {
        "availableBalance": 0,
        "clearedBalance": 0,
        "pendingBalance": 0,
        "pendingCreditSum": 0,
        "pendingDebitSum": 0
    },
    "reserve": 0,
    "type": "PS",
    "walletId": "e0b54b2f-badc-4aef-b402-902fec733bc2"
}
WALLET_UPDATED
When a wallet is updated
{
    "activityStatus": "ACTIVE",
    "additionalData": [],
    "available": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "closedAccount": false,
    "creationDate": "2026-09-16T09:51:26.776625Z",
    "currency": "EUR",
    "customerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "defaultWallet": false,
    "hasDebt": false,
    "merchantPayoutSetupId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "owner": {
        "name": "Martin Durant",
        "uuid": "xxxx-xxxx-xxxx-xxxx-xxxx",
    },
    "ownerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "name": "PAYMENT ACCOUNT",
    "pending": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "personal": false,
    "realtimeBalance": {
        "availableBalance": 0,
        "clearedBalance": 0,
        "pendingBalance": 0,
        "pendingCreditSum": 0,
        "pendingDebitSum": 0
    },
    "reserve": 0,
    "type": "PS",
    "walletId": "e0b54b2f-badc-4aef-b402-902fec733bc2"
}

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": []
}
BANKACCOUNT_REFUSED
When a Bank account is refused
{
    "name": "BANKACCOUNT REF API",
    "description": null,
    "ownerName": "BANKACCOUNT REFAPI",
    "ownerAddress": "142 RUE DE LA REFAPI",
    "ownerDescription": null,
    "ownerPostalCode": "37000",
    "ownerCity": "TOURS",
    "ownerCountry": "FRA",
    "iban": "FR7612548029980000000150086",
    "bic": "AXABFRPP",
    "currency": "EUR",
    "refusalComment": "The bank details do not match the name of the company, SC CONNECTING FIRST.",
    "refusalReason": "IBAN_INVALID",
    "status": "REFUSED",
    "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": []
}
BANKACCOUNT_CANCELED
When a Bank account is canceled
{
    "name": "BANKACCOUNT REF API",
    "description": null,
    "ownerName": "BANKACCOUNT REFAPI",
    "ownerAddress": "142 RUE DE LA REFAPI",
    "ownerDescription": null,
    "ownerPostalCode": "37000",
    "ownerCity": "TOURS",
    "ownerCountry": "FRA",
    "iban": "FR7612548029980000000150086",
    "bic": "AXABFRPP",
    "currency": "EUR",
    "status": "CANCELED",
    "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": []
  }
}
CREDIT_CLEARED
When a credit is cleared
{
  "eventId": "b51f11be-c535-49a4-8a70-6241afd75654",
  "type": "CREDIT_CLEARED",
  "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": "CLEARED",
    "transactionTransfers": []
  }
}
CREDIT_SETTLED
When a credit is cleared
{
  "eventId": "b51f11be-c535-49a4-8a70-6241afd75654",
  "type": "CREDIT_SETTLED",
  "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": "CLEARED",
    "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

REFUND_CLEARED
When a refund is cleared

REFUND_SETTLED
When a refund is settled

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_CLEARED
When a transaction is sent to the clearing and will be debited
{
  "eventId": "ecd3fead-ccb1-44e4-b41b-5806b78dc5a5",
  "type": "TRANSACTION_CLEARED",
  "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_SETTLED
When a transaction has been sent to the clearing and has been credit to the merchant
{
  "eventId": "ecd3fead-ccb1-44e4-b41b-5806b78dc5a5",
  "type": "TRANSACTION_SETTLED",
  "creationDate": "2024-01-05T14:43:21.513924+01:00",
  "object": {
    "additionalData": {},
    "amount": 3600000,
    "amountCaptured": 3600000,
    "amountRefunded": 0,
    "archivingReference": "5MS7NOWFGWSR",
    "arn": "123456",
    "authorizationCode": "000000",
    "authorizationMovementId": "0ee6bd7e-3e74-454d-a62b-120db043714d",
    "authorizationStatus": "SUCCESS",
    "bankCode": "0",
    "bankMessage": "Simulation : Transaction Approved",
    "browserAcceptLanguage": "en_US",
    "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36",
    "captureDate": "2024-01-05T14:43:21.355125+01:00",
    "captureStatus": "CAPTURED",
    "card": {
      "additionalData": {},
      "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2",
      "cardType": "DEBIT",
      "cardholderEmail": "test@gmail.com",
      "cardholderName": "MARIE ANNE",
      "check": true,
      "commercialBrand": "MASTERCARD",
      "country": "FRA",
      "creationDate": "2024-01-05T12:52:41.054394+01:00",
      "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22",
      "europeanEconomicArea": true,
      "expirationMonth": 9,
      "expirationYear": 2035,
      "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f",
      "first6": "532509",
      "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5",
      "last4": "0008",
      "productType": "CORPORATE",
      "region": "EUROPE"
    },
    "cardPresent": {},
    "commission": 0,
    "contractId": "a674d481-4805-4a66-915a-67956efca36f",
    "country": "FRA",
    "creationDate": "2024-01-05T14:43:19.909652+01:00",
    "currency": "EUR",
    "customAcceptanceData": {},
    "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22",
    "endUserIp": "245.100.1.15",
    "endUserLanguage": "fre",
    "fee": 0,
    "merchantCategoryCode": "1711",
    "movementId": "899287b0-a0a5-413c-8be8-bc3d794ba96a",
    "order": {
      "cardholderEmail": "GDU-Solon40@gmail.com",
      "country": "FRA"
    },
    "partialAuthorization": false,
    "partialAuthorized": false,
    "payoutAmount": 3600000,
    "payoutCurrency": "EUR",
    "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247",
    "receiptEmail": "GDU-Clemens7@yahoo.com",
    "refunded": false,
    "refunds": [],
    "residualAmount": 0,
    "source": "EC",
    "threeDSecure": false,
    "totalAmount": 3600000,
    "transactionId": "aa42bd28-5a34-47e4-87b0-3d25375be798",
    "transactionStatus": "SUCCESS",
    "transactiontransfers": [],
    "withCvv": true
  },
  "requestId": "3d82de99-2346-4eef-a30b-68e7efe5acd1"
}

TRANSACTION_EXPIRED
When a transaction is expired
{
  "eventId": "9a93ea00-42cc-4555-ad29-24daa2ec5fbe",
  "type": "TRANSACTION_EXPIRED",
  "creationDate": "2024-02-01T00:30:07.148454+01:00",
  "object": {
    "transactionId": "87b40109-0de5-454d-acf4-dfa51f23d15b",
    "creationDate": "2024-01-30T14:20:47.062768+01:00",
    "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247",
    "contractId": "a674d481-4805-4a66-915a-67956efca36f",
    "merchantTransactionId": null,
    "archivingReference": "YB6J5BGOC4TF",
    "transactionStatus": "SUCCESS",
    "authorizationStatus": "SUCCESS",
    "bankCode": "0",
    "bankMessage": "Simulation : Transaction Approved",
    "authorizationCode": "000000",
    "riskScore": null,
    "source": "EC",
    "description": null,
    "currency": "EUR",
    "payoutCurrency": "EUR",
    "payoutAmount": null,
    "commission": null,
    "fee": 0,
    "amount": 36000,
    "partialAuthorization": false,
    "partialAuthorized": false,
    "partialAuthorizedAmount": null,
    "totalAmount": 36000,
    "card": {
      "cardId": "4970cff8-a3eb-4b7a-9f8e-6a4156c08cec",
      "creationDate": "2024-01-30T14:20:45.679621+01:00",
      "customerId": null,
      "cardTokenId": null,
      "infoId": null,
      "merchantCardId": null,
      "commercialBrand": "VISA",
      "first6": "403203",
      "last4": "3001",
      "expirationMonth": 12,
      "expirationYear": 2025,
      "country": "FRA",
      "cardholderName": null,
      "cardholderEmail": null,
      "description": null,
      "fingerprint": "a90fedc230c187acb2e4d6b8a3e3237044931beb",
      "cardType": "UNKNOWN",
      "region": "EUROPE",
      "productType": "UNKNOWN",
      "europeanEconomicArea": true,
      "check": false,
      "additionalData": {}
    },
    "cardMerchantToken": null,
    "captureStatus": "EXPIRED",
    "amountCaptured": 0,
    "refunded": true,
    "amountRefunded": 0,
    "refunds": [],
    "endUserIp": "8.8.8.8",
    "endUserLanguage": "fre",
    "browserUserAgent": null,
    "browserAcceptLanguage": null,
    "country": null,
    "receiptEmail": null,
    "transactiontransfers": [],
    "transferGroup": null,
    "residualAmount": null,
    "order": {
      "firstName": null,
      "lastName": null,
      "addressLine1": null,
      "addressLine2": null,
      "addressLine3": null,
      "addressLine4": null,
      "postalCode": null,
      "city": null,
      "country": null,
      "email": null,
      "phone": null,
      "cardCountry": "FRA",
      "cardholderName": null,
      "cardholderEmail": null
    },
    "dispute": null,
    "cardPresent": {
      "cardSequenceNumber": null,
      "cardEntryMode": null,
      "pinEntryCapability": null,
      "transactionSequenceCounter": null,
      "uniqueTerminalId": null,
      "cardholderSignatureImage": null,
      "gpsLatitude": null,
      "gpsLongitude": null,
      "cardholderPhoto": null,
      "cardAcceptorTerminalId": null,
      "offlinePinIndicator": null,
      "ucatTerminalIndicator": null,
      "iccData": null,
      "iccDataResponse": null
    },
    "clearingNumber": null,
    "merchantCategoryCode": "1711",
    "withCvv": true,
    "arn": "123456",
    "authorizationCancellationDate": null,
    "customerId": null,
    "captureDate": null,
    "clearingDate": null,
    "captureCancellationDate": null,
    "enrollmentId": null,
    "movementId": null,
    "authorizationMovementId": "258d16f5-3f5f-401d-8f5b-c9ff9d00f28d",
    "cancelMovementId": null,
    "paymentRequestBreakdownId": null,
    "paymentRequestId": null,
    "invoiceId": null,
    "installmentId": null,
    "customAcceptanceData": {},
    "additionalData": {
      "key1": "value1",
      "key2": "value2"
    },
    "3ds": false
  },
  "requestId": "fcf800bb-1748-4d23-9ce7-121c5f14a51b"
}

TRANSACTION_UPDATED
When a transaction is updated
{
  "eventId": "eaf9366e-cd66-4ab9-ad23-09ed2ec5972d",
  "type": "TRANSACTION_UPDATED",
  "creationDate": "2024-01-11T14:54:35.830032+01:00",
  "object": {
    "additionalData": {
      "key1": "value1",
      "key2": "value2"
    },
    "amount": 10,
    "amountCaptured": 10,
    "amountRefunded": 0,
    "archivingReference": "FLS2TYH3HJ5G",
    "arn": "123456",
    "authorizationCode": "000000",
    "authorizationMovementId": "02e0e9ec-77f6-4a75-9732-57a0d0844354",
    "authorizationStatus": "SUCCESS",
    "bankCode": "0",
    "bankMessage": "Simulation : Transaction Approved",
    "captureDate": "2024-01-11T14:53:18.688598+01:00",
    "captureStatus": "CAPTURED",
    "card": {
      "additionalData": {},
      "cardId": "180c71b5-9384-4ea5-9452-b190d4afc542",
      "cardType": "DEBIT",
      "check": false,
      "commercialBrand": "VISA",
      "country": "FRA",
      "creationDate": "2024-01-11T14:53:17.634328+01:00",
      "europeanEconomicArea": true,
      "expirationMonth": 1,
      "expirationYear": 2024,
      "fingerprint": "9e6b6fc8e48c4ee716efb06762e726c0108e5e8d",
      "first6": "400000",
      "last4": "0002",
      "productType": "UNKNOWN",
      "region": "EUROPE"
    },
    "cardPresent": {},
    "commission": 0,
    "contractId": "a674d481-4805-4a66-915a-67956efca36f",
    "creationDate": "2024-01-11T14:53:17.576925+01:00",
    "currency": "EUR",
    "customAcceptanceData": {},
    "endUserIp": "245.100.1.15",
    "fee": 0,
    "merchantCategoryCode": "1711",
    "movementId": "3dbd2c18-1110-496b-9cd2-1e7b7568fc00",
    "order": {
      "cardCountry": "FRA",
      "firstName": "MANDATORY",
      "lastName": "MANDATORY"
    },
    "partialAuthorization": false,
    "partialAuthorized": false,
    "payoutAmount": 10,
    "payoutCurrency": "EUR",
    "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247",
    "receiptEmail": "test@gmail.com",
    "refunded": false,
    "refunds": [],
    "residualAmount": 0,
    "source": "EC",
    "threeDSecure": false,
    "totalAmount": 10,
    "transactionId": "8d08a5b1-413e-46d8-8e8e-6da8c0d5025b",
    "transactionStatus": "SUCCESS",
    "transactiontransfers": [
      {
        "amount": 1,
        "destinationWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050",
        "escrowDate": "2024-01-13",
        "fee": 0
      }
    ],
    "withCvv": true
  },
  "requestId": "6b85d1b7-853a-420e-a500-62aac18840c1",
  "objectBeforeUpdate": {
    "additionalData": {
      "key1": "value1",
      "key2": "value2"
    },
    "amount": 10,
    "amountCaptured": 10,
    "amountRefunded": 0,
    "archivingReference": "FLS2TYH3HJ5G",
    "arn": "123456",
    "authorizationCode": "000000",
    "authorizationMovementId": "02e0e9ec-77f6-4a75-9732-57a0d0844354",
    "authorizationStatus": "SUCCESS",
    "bankCode": "0",
    "bankMessage": "Simulation : Transaction Approved",
    "captureDate": "2024-01-11T14:53:18.688598+01:00",
    "captureStatus": "CAPTURED",
    "card": {
      "additionalData": {},
      "cardId": "180c71b5-9384-4ea5-9452-b190d4afc542",
      "cardType": "DEBIT",
      "check": false,
      "commercialBrand": "VISA",
      "country": "FRA",
      "creationDate": "2024-01-11T14:53:17.634328+01:00",
      "europeanEconomicArea": true,
      "expirationMonth": 1,
      "expirationYear": 2024,
      "fingerprint": "9e6b6fc8e48c4ee716efb06762e726c0108e5e8d",
      "first6": "400000",
      "last4": "0002",
      "productType": "UNKNOWN",
      "region": "EUROPE"
    },
    "cardPresent": {},
    "commission": 0,
    "contractId": "a674d481-4805-4a66-915a-67956efca36f",
    "creationDate": "2024-01-11T14:53:17.576925+01:00",
    "currency": "EUR",
    "customAcceptanceData": {},
    "endUserIp": "245.100.1.15",
    "fee": 0,
    "merchantCategoryCode": "1711",
    "movementId": "3dbd2c18-1110-496b-9cd2-1e7b7568fc00",
    "order": {
      "cardCountry": "FRA",
      "firstName": "MANDATORY",
      "lastName": "MANDATORY"
    },
    "partialAuthorization": false,
    "partialAuthorized": false,
    "payoutAmount": 10,
    "payoutCurrency": "EUR",
    "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247",
    "refunded": false,
    "refunds": [],
    "residualAmount": 0,
    "source": "EC",
    "threeDSecure": false,
    "totalAmount": 10,
    "transactionId": "8d08a5b1-413e-46d8-8e8e-6da8c0d5025b",
    "transactionStatus": "SUCCESS",
    "transactiontransfers": [
      {
        "amount": 1,
        "destinationWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050",
        "escrowDate": "2024-01-13",
        "fee": 0
      }
    ],
    "withCvv": true
  }
}

TRANSACTION_DISPUTED
When a transaction is turned to a chargeback

{
  "eventId": "36e7853b-eecf-43d2-99ec-80aa5b26b46f",
  "type": "TRANSACTION_DISPUTED",
  "creationDate": "2024-01-05T15:16:28.316447+01:00",
  "object": {
    "additionalData": {},
    "amount": 36000,
    "amountCaptured": 36000,
    "amountRefunded": 0,
    "archivingReference": "AULQKEG8VFZV",
    "arn": "123456",
    "authorizationCode": "000000",
    "authorizationMovementId": "a7caf3b3-4d60-412e-9536-8b31e7fa2b99",
    "authorizationStatus": "SUCCESS",
    "bankCode": "0",
    "bankMessage": "Simulation : Transaction Approved",
    "browserAcceptLanguage": "en_US",
    "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36",
    "captureDate": "2024-01-04T15:04:14.560777+01:00",
    "captureStatus": "CLEARED",
    "card": {
      "additionalData": {},
      "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2",
      "cardType": "DEBIT",
      "cardholderEmail": "test@gmail.com",
      "cardholderName": "MARIE ANNE",
      "check": true,
      "commercialBrand": "MASTERCARD",
      "country": "FRA",
      "creationDate": "2024-01-05T12:52:41.054394+01:00",
      "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22",
      "europeanEconomicArea": true,
      "expirationMonth": 9,
      "expirationYear": 2035,
      "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f",
      "first6": "532509",
      "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5",
      "last4": "0008",
      "productType": "CORPORATE",
      "region": "EUROPE"
    },
    "cardPresent": {},
    "clearingDate": "2024-01-05",
    "clearingNumber": "008194",
    "commission": 0,
    "contractId": "a674d481-4805-4a66-915a-67956efca36f",
    "country": "FRA",
    "creationDate": "2024-01-05T15:04:13.275733+01:00",
    "currency": "EUR",
    "customAcceptanceData": {},
    "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22",
    "dispute": {
      "additionalData": {},
      "amount": 10,
      "creationDate": "2024-01-05T15:16:27.776882+01:00",
      "currency": "EUR",
      "disputeDate": "2021-03-18",
      "disputeId": "896304e9-b937-443a-ba59-3ccc99931b00",
      "fee": 0,
      "movementId": "09e2b390-a5a6-4926-a5ad-41c96bd38cea",
      "reason": "FRAUDULENT",
      "status": "CHARGEBACK_NOTICED",
      "transactionId": "8940d775-cb9c-46e4-ab5a-c5c3ea7c3116"
    },
    "endUserIp": "245.100.1.15",
    "endUserLanguage": "fre",
    "fee": 0,
    "merchantCategoryCode": "1711",
    "movementId": "15560735-1636-4a01-9a15-89eab54ef9e1",
    "order": {
      "cardholderEmail": "GDU-Dasia77@hotmail.com",
      "country": "FRA"
    },
    "partialAuthorization": false,
    "partialAuthorized": false,
    "payoutAmount": 36000,
    "payoutCurrency": "EUR",
    "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247",
    "receiptEmail": "GDU-Benton_Hamill8@gmail.com",
    "refunded": false,
    "refunds": [],
    "residualAmount": 0,
    "source": "EC",
    "threeDSecure": false,
    "totalAmount": 36000,
    "transactionId": "8940d775-cb9c-46e4-ab5a-c5c3ea7c3116",
    "transactionStatus": "SUCCESS",
    "transactiontransfers": [],
    "withCvv": false
  },
  "requestId": "29ae33a7-bcd3-405f-ab21-485729b980aa"
}

TRANSACTION_FAILED
When a transaction has been declined by the issuing bank
{
  "eventId": "0eeacc49-8957-4910-925f-d633505f23b0",
  "type": "TRANSACTION_FAILED",
  "creationDate": "2024-01-05T14:46:59.392077+01:00",
  "object": {
    "additionalData": {},
    "amount": 3600000,
    "amountCaptured": 0,
    "amountRefunded": 0,
    "archivingReference": "9GUGCIZEU0VN",
    "authorizationMovementId": "7ed9258a-ee75-4705-90f3-678973d2402e",
    "authorizationStatus": "FAILURE",
    "bankCode": "51",
    "bankMessage": "Simulation : Insufficient Funds",
    "browserAcceptLanguage": "en_US",
    "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36",
    "captureStatus": "UNCAPTURED",
    "card": {
      "additionalData": {},
      "cardId": "30e49b6e-ed07-4b43-8862-2abd2f181678",
      "cardType": "DEBIT",
      "cardholderEmail": "gduhamel@centralpay.eu",
      "check": true,
      "commercialBrand": "VISA",
      "country": "FRA",
      "creationDate": "2024-01-05T14:46:39.151564+01:00",
      "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22",
      "europeanEconomicArea": true,
      "expirationMonth": 9,
      "expirationYear": 2035,
      "fingerprint": "7032968c1a882c155b3d8014297daabaa7133680",
      "first6": "400000",
      "infoId": "90eaf823-e2e7-4757-845a-b966bbab03c6",
      "last4": "0077",
      "productType": "UNKNOWN",
      "region": "EUROPE"
    },
    "cardPresent": {},
    "contractId": "a674d481-4805-4a66-915a-67956efca36f",
    "country": "FRA",
    "creationDate": "2024-01-05T14:46:58.190985+01:00",
    "currency": "EUR",
    "customAcceptanceData": {},
    "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22",
    "endUserIp": "245.100.1.15",
    "endUserLanguage": "fre",
    "fee": 0,
    "merchantCategoryCode": "1711",
    "order": {
      "cardholderEmail": "GDU-Yvette5@hotmail.com",
      "country": "FRA"
    },
    "partialAuthorization": false,
    "partialAuthorized": false,
    "payoutCurrency": "EUR",
    "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247",
    "receiptEmail": "GDU-Buck_Gislason@hotmail.com",
    "refunded": false,
    "refunds": [],
    "source": "EC",
    "threeDSecure": false,
    "totalAmount": 3600000,
    "transactionId": "d530cdbe-b9fc-481b-b99d-8ce0db75deb4",
    "transactionStatus": "FAILURE",
    "transactiontransfers": [],
    "withCvv": true
  },
  "requestId": "c120a3c0-764a-4c7e-a705-4721784212c7"
}

TRANSACTION_FRAUDULENT
When a transaction is refused because it has meet a blacklist element (Email, IP, Card, …)

{
  "eventId": "d489a6be-9b6d-43fa-86e3-c5d26437aac3",
  "type": "TRANSACTION_FRAUDULENT",
  "creationDate": "2024-01-05T16:34:30.947564+01:00",
  "object": {
    "additionalData": {},
    "amount": 500,
    "amountCaptured": 0,
    "amountRefunded": 0,
    "authorizationStatus": "FRAUD",
    "bankMessage": "PAN in BLACKLIST [532509xxx0008]",
    "captureStatus": "UNCAPTURED",
    "card": {
      "additionalData": {},
      "cardId": "4680d102-96b0-4fba-b00c-3375ee610fc7",
      "cardType": "DEBIT",
      "cardholderEmail": "gduhamel@centralpay.eu",
      "check": true,
      "commercialBrand": "MASTERCARD",
      "country": "FRA",
      "creationDate": "2024-01-05T16:33:13.699153+01:00",
      "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9",
      "europeanEconomicArea": true,
      "expirationMonth": 9,
      "expirationYear": 2035,
      "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f",
      "first6": "532509",
      "infoId": "dabeaee8-1f45-438e-b9c7-37bbce92315e",
      "last4": "0008",
      "productType": "CORPORATE",
      "region": "EUROPE"
    },
    "cardPresent": {},
    "contractId": "a674d481-4805-4a66-915a-67956efca36f",
    "creationDate": "2024-01-05T16:34:30.385545+01:00",
    "currency": "EUR",
    "customAcceptanceData": {},
    "customerId": "33c36fb3-fec8-4930-9cb6-32e2b76d61c9",
    "endUserIp": "245.100.1.15",
    "merchantTransactionId": "MIP_001",
    "order": {
      "cardCountry": "FRA",
      "cardholderEmail": "gduhamel@centralpay.eu",
      "email": "gduhamel@centralpay.eu",
      "firstName": "CECELIA",
      "lastName": "EBERT"
    },
    "partialAuthorization": false,
    "payoutCurrency": "EUR",
    "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247",
    "receiptEmail": "gduhamel@centralpay.eu",
    "refunded": false,
    "refunds": [],
    "source": "EC",
    "threeDSecure": false,
    "totalAmount": 500,
    "transactionId": "f061fa00-8494-4eca-b9d1-f54d36125d7d",
    "transactionStatus": "FRAUD",
    "transactiontransfers": [],
    "withCvv": true
  },
  "requestId": "47c8329d-b686-4dc0-ad21-941e4ec2945d"
}

TRANSACTION_NOT_ACCEPTED
When a transaction is refused because entering an acceptance rule

TRANSACTION_REFUNDED
When a transaction has been refunded to the card holder
{
  "eventId": "21f8a3b1-1fab-4071-9f75-ef36d10a6572",
  "type": "TRANSACTION_REFUNDED",
  "creationDate": "2024-01-10T09:35:28.762354+01:00",
  "object": {
    "additionalData": {},
    "amount": 36000,
    "amountCaptured": 36000,
    "amountRefunded": 36000,
    "archivingReference": "YNADK4W3G2EK",
    "arn": "123456",
    "authorizationCode": "000000",
    "authorizationMovementId": "679d6b91-bba5-43fa-a444-b3aa7fb2ad2f",
    "authorizationStatus": "SUCCESS",
    "bankCode": "0",
    "bankMessage": "Simulation : Transaction Approved",
    "browserAcceptLanguage": "en_US",
    "browserUserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36",
    "captureDate": "2024-01-04T15:04:11.419479+01:00",
    "captureStatus": "CLEARED",
    "card": {
      "additionalData": {},
      "cardId": "9a5602f8-ef06-4c00-ab62-c77f8a374eb2",
      "cardType": "DEBIT",
      "cardholderEmail": "test@gmail.com",
      "cardholderName": "MARIE ANNE",
      "check": true,
      "commercialBrand": "MASTERCARD",
      "country": "FRA",
      "creationDate": "2024-01-05T12:52:41.054394+01:00",
      "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22",
      "europeanEconomicArea": true,
      "expirationMonth": 9,
      "expirationYear": 2035,
      "fingerprint": "d409203bdcc673d1c527258a16c87cdad8767e1f",
      "first6": "532509",
      "infoId": "fc8b5c60-6044-41a6-8074-ed9499c245a5",
      "last4": "0008",
      "productType": "CORPORATE",
      "region": "EUROPE"
    },
    "cardPresent": {},
    "clearingDate": "2024-01-05",
    "clearingNumber": "008194",
    "commission": 0,
    "contractId": "a674d481-4805-4a66-915a-67956efca36f",
    "country": "FRA",
    "creationDate": "2024-01-05T15:04:10.135397+01:00",
    "currency": "EUR",
    "customAcceptanceData": {},
    "customerId": "1646e7fa-8274-48c0-9883-022c2e33fb22",
    "endUserIp": "245.100.1.15",
    "endUserLanguage": "fre",
    "fee": 0,
    "merchantCategoryCode": "1711",
    "movementId": "656895c7-e7a2-4b7d-8920-0bb78ea45f3a",
    "order": {
      "cardholderEmail": "GDU-Martina_Ondricka@hotmail.com",
      "country": "FRA"
    },
    "partialAuthorization": false,
    "partialAuthorized": false,
    "payoutAmount": 36000,
    "payoutCurrency": "EUR",
    "pointOfSaleId": "7d99a970-cc26-4de8-aa5d-d9ebf4088247",
    "receiptEmail": "GDU-Justyn98@gmail.com",
    "refunded": true,
    "refunds": [
      {
        "additionalData": {},
        "amount": 36000,
        "commission": 0,
        "creationDate": "2024-01-10T09:35:28.448559+01:00",
        "currency": "EUR",
        "description": "GDU-testapi",
        "fee": 0,
        "movementId": "c42ea27a-6d74-4c4b-b170-e17762916c79",
        "payoutAmount": 36000,
        "payoutCurrency": "EUR",
        "refundId": "9bf06654-c023-4481-8e6a-138bb5f13777",
        "status": "UNCLEARED",
        "transactionId": "2a06bfae-51f5-4dd7-945b-47631c16cb9c"
      }
    ],
    "residualAmount": 0,
    "source": "EC",
    "threeDSecure": false,
    "totalAmount": 36000,
    "transactionId": "2a06bfae-51f5-4dd7-945b-47631c16cb9c",
    "transactionStatus": "SUCCESS",
    "transactiontransfers": [],
    "withCvv": false
  },
  "requestId": "794c20b2-4a0c-4d9d-a580-af5544c11120"
}

TRANSACTION_RISKY
When a transaction is refused because of its risk score exceed the limit

TRANSACTION_THREEDS_AUTH_FAILED
When a transaction is declined because the card holder failed to authenticate himself during the 3DS process

The TRANSFER REVERSAL object

TRANSFERREVERSAL_SUCCEEDED
When a transfer reversal succeeded
   {
  "eventId": "9bd04039-7b33-4553-af86-64a6e925eef9",
  "type": "TRANSFERREVERSAL_SUCCEEDED",
  "creationDate": "2024-01-16T11:11:40.720817+01:00",
  "object": {
    "additionalData": {},
    "amount": 140,
    "creationDate": "2024-01-16T11:11:40.611318+01:00",
    "currency": "EUR",
    "description": "Test",
    "fee": 0,
    "merchantTransferReversalId": "test",
    "movementId": "e34b6833-7b32-4fde-993a-b904f8f3aeae",
    "net": 140,
    "refundFee": true,
    "status": "TRANSFERRED",
    "transferId": "e3a45ca4-49a9-4681-bc06-be9ab6dd7d79",
    "transferReversalId": "bb47ad7b-4112-4ad5-abf3-489d5878d6fd"
  },
  "requestId": "7e593b04-58c3-4e0d-b3c6-ec2a6887164e"
}
    }

TRANSFERREVERSAL_UPDATED
When a transfer reversal is updated
   {
  "eventId": "8317512a-d7d2-4d6d-a61a-644afb7537fb",
  "type": "TRANSFERREVERSAL_UPDATED",
  "creationDate": "2024-01-16T11:18:00.682451+01:00",
  "object": {
    "additionalData": {},
    "amount": 140,
    "creationDate": "2024-01-16T11:11:40.611318+01:00",
    "currency": "EUR",
    "description": "Addeddata",
    "fee": 0,
    "merchantTransferReversalId": "test",
    "movementId": "e34b6833-7b32-4fde-993a-b904f8f3aeae",
    "net": 140,
    "refundFee": true,
    "status": "TRANSFERRED",
    "transferId": "e3a45ca4-49a9-4681-bc06-be9ab6dd7d79",
    "transferReversalId": "bb47ad7b-4112-4ad5-abf3-489d5878d6fd"
  },
  "requestId": "3509acf1-39c9-45e5-b1b6-d58ee6639b8d"
    }

The TRANSFER object

TRANSFER_SUCCEEDED
When a transfer succeeded
    {
{
  "eventId": "a1147178-8197-46d7-ba6d-433f71a1b7f5",
  "type": "TRANSFER_SUCCEEDED",
  "creationDate": "2024-01-08T14:33:25.439719+01:00",
  "object": {
    "additionalData": {},
    "amount": 140,
    "creationDate": "2024-01-08T14:33:25.050153+01:00",
    "currency": "EUR",
    "description": "Vente de XxX",
    "destinationWalletId": "ccf841d8-b066-4e96-adc7-fa6414cfe598",
    "emissionWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050",
    "exchangedAmount": 140,
    "exchangedFee": 0,
    "exchangedNet": 140,
    "fee": 0,
    "merchantTransferId": "IDENTIFIANT_MRI",
    "movementId": "20452a9f-6055-462c-8da5-f351cc0a1437",
    "net": 140,
    "rate": 1,
    "reversed": false,
    "status": "TRANSFERRED",
    "toCurrency": "GTH",
    "transferId": "c8d751cc-da30-4dbe-9e57-acf7731bb3f5",
    "transferReversals": []
  },
  "requestId": "6d21911b-40bb-4259-aef9-39c616d60aa4"
}
    }

TRANSFER_UPDATED
When a transfer is updated
    {
{
  "eventId": "356e4dff-4146-47d5-9db9-3226585cafc1",
  "type": "TRANSFER_UPDATED",
  "creationDate": "2024-01-08T14:38:40.555843+01:00",
  "object": {
    "additionalData": {
      "Key1": "val2"
    },
    "amount": 140,
    "creationDate": "2024-01-08T14:33:25.050153+01:00",
    "currency": "EUR",
    "description": "transfer1",
    "destinationWalletId": "ccf841d8-b066-4e96-adc7-fa6414cfe598",
    "emissionWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050",
    "exchangedAmount": 140,
    "exchangedFee": 0,
    "exchangedNet": 140,
    "fee": 0,
    "merchantTransferId": "TEST_002",
    "movementId": "20452a9f-6055-462c-8da5-f351cc0a1437",
    "net": 140,
    "rate": 1,
    "reversed": false,
    "status": "TRANSFERRED",
    "toCurrency": "GTH",
    "transferGroup": "TransferGroup_0002",
    "transferId": "c8d751cc-da30-4dbe-9e57-acf7731bb3f5",
    "transferReversals": []
  },
  "requestId": "e7b6b976-a0ae-45dc-a018-f6c651a7f559",
  "objectBeforeUpdate": {
    "additionalData": {},
    "amount": 140,
    "creationDate": "2024-01-08T14:33:25.050153+01:00",
    "currency": "EUR",
    "description": "Vente de XxX",
    "destinationWalletId": "ccf841d8-b066-4e96-adc7-fa6414cfe598",
    "emissionWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050",
    "exchangedAmount": 140,
    "exchangedFee": 0,
    "exchangedNet": 140,
    "fee": 0,
    "merchantTransferId": "IDENTIFIANT_MRI",
    "movementId": "20452a9f-6055-462c-8da5-f351cc0a1437",
    "net": 140,
    "rate": 1,
    "reversed": false,
    "status": "TRANSFERRED",
    "toCurrency": "GTH",
    "transferId": "c8d751cc-da30-4dbe-9e57-acf7731bb3f5",
    "transferReversals": []
  }
}
    }

TRANSFER_CANCELED
When a transfer is cancelled
    {
  "eventId": "d1a35d33-87b7-4672-8e49-495cd117f45b",
  "type": "TRANSFER_CANCELED",
  "creationDate": "2024-01-16T11:34:40.698751+01:00",
  "object": {
    "additionalData": {},
    "amount": 140,
    "cancelMovementId": "e66acfa2-60c4-4eec-8bfe-f1571318a667",
    "cancellationDate": "2024-01-16T11:34:40.691168+01:00",
    "creationDate": "2024-01-16T11:34:05.280812+01:00",
    "currency": "EUR",
    "description": "Vente de XxX",
    "destinationWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050",
    "emissionWalletId": "a00f7a69-b8c3-44b1-a8b2-aa508128b050",
    "escrowDate": "2035-12-23",
    "exchangedAmount": 140,
    "exchangedFee": 0,
    "exchangedNet": 140,
    "fee": 0,
    "merchantTransferId": "IDENTIFIANT_GDU",
    "movementId": "98c79326-53e5-4b71-8ef6-4b1344c428a4",
    "net": 140,
    "rate": 1,
    "reversed": false,
    "status": "CANCEL",
    "toCurrency": "EUR",
    "transferId": "fd4aa0f5-69d5-4b79-b6df-c99dab33d9ee",
    "transferReversals": []
  },
  "requestId": "35b87d6e-41dd-4a5e-b1a2-5347b6fa1eba"
}

The WIRETRANSFER object (Deprecated)

WIRETRANSFER_CREATED
When a wire transfer is created

WIRETRANSFER_UPDATED
When a wire transfer is updated

WIRETRANSFER_RECEIVED
When a wire transfer is received

WIRETRANSFER_CANCELED
When a wire transfer is cancelled

Resources by type

Codes

HTTP Codes

Find below the list of HTTP return codes:

200OK
Note: The request was executed correctly
400BAD REQUEST
Note: Wrong parameter or rule
401UNAUTHORIZED
Note: Login / password are missing for HTTP authentication
402PAYMENT_REQUIRED
Note:  Authorization denied*
403FORBIDDEN
Note: Wrong authentication
404NOT FOUND
Note: Incorrect URL
500INTERNAL SERVER ERROR
Note: Server error

(*) Only possible for the creation of a transaction

Card authorization - Bank return codes

Issuer response codes returned to CentralPay after a card authorization request.

These values generally correspond to the ISO 8583 “Response code” (DE39) returned by card networks/issuers. Depending on the scheme, country, and routing, you may also receive network-specific or gateway-specific variants (for example alphanumeric or 3-digit codes).

Important: the same code can cover multiple issuer-side reasons. Unless explicitly stated, CentralPay passes these codes as received. For troubleshooting, combine the response code with your transaction context (amount, currency, 3DS result, merchant category, card brand, retries).

Most common response codes

CodeDescriptionRecommended action
00ApprovedProceed with capture / fulfillment.
02Contact card issuerAsk customer to contact their bank; retry only if customer confirms.
03Invalid acceptorCheck merchant/terminal configuration (MID/TID, acquirer routing).
04Pick up / retain cardDo not retry; follow your in-store procedure (if applicable).
05Do not honorGeneric decline: do not “loop” retries; ask customer to contact issuer or use another payment method.
07Honor with IDIf card-present: request ID verification; otherwise ask customer to contact issuer.
08Time-outRetry once after a short delay; if repeated, check connectivity/acquirer status.
10Unable to reverseEscalate to support with trace/reference; avoid repeated reversals.
11Partial approvalOnly relevant if your flow supports partial approvals (often prepaid); otherwise request another method.
12Invalid transactionCheck request consistency (type, lifecycle, capture/void rules); if persistent, escalate with logs.
13Invalid amountValidate amount format/currency decimals; check min/max constraints.
14Invalid card numberCustomer should re-enter card details; if repeated, use another card.
15Unknown issuerUse another card/payment method; escalate if routing issue suspected.
19Try again laterRetry once later; if repeated, ask customer to contact issuer.
30Format errorCheck field formats (PAN/expiry/CVV, currency, recurring flags); escalate if needed.
33Card expiredCustomer must use another card.
38PIN attempts exceededCardholder must contact issuer / reset PIN; do not retry.
39Transaction not allowedLikely product/merchant restriction; ask customer to contact issuer or use another method.
41Lost cardDo not retry; request another payment method.
43Stolen cardDo not retry; request another payment method.
51Insufficient fundsAsk customer to use another method or wait for funds; avoid repeated immediate retries.
54Expired cardCustomer must use another card.
55Incorrect PINCard-present only: customer must retry carefully or contact issuer after repeated failures.
57Transaction not permitted to cardholderIssuer restriction; ask customer to contact issuer or use another method.
58Transaction prohibited at terminalCheck merchant/terminal capabilities & configuration; may be MCC/terminal restriction.
59Suspected fraudDo not retry “blindly”; ask customer to contact issuer or use a different method; review fraud rules if frequent.
61Exceeds withdrawal/amount limitReduce amount or ask customer to contact issuer.
62Restricted cardIssuer restriction; customer should contact issuer.
65Frequency limit exceededWait and retry later; avoid repeated attempts in short timeframes.
68Response received too lateRetry once; check acquirer/network status if repeated.
75PIN attempts exceededSame as 38: cardholder must contact issuer.
82Invalid CVVCustomer should re-enter CVV; if repeated, use another card.
91Issuer/switch unavailableRetry later; if widespread, treat as incident (issuer/network outage).
94Duplicate requestAvoid immediate retries with same identifiers; ensure idempotency / unique reference.
95Contact acquirerEscalate to support/acquirer with transaction reference.
96System malfunctionRetry later; if repeated, escalate with traces/logs.

All response codes (exhaustive)

The following codes may be returned depending on the network, country, routing, or integration. This section is exhaustive compared to the previous version of this page, and includes both standard and non-standard variants.

CodeDescriptionRecommended action
00Transaction approved or successfully processedProceed with capture / fulfillment.
02Contact card issuerAsk the customer to contact their issuer; retry only if issuer confirms.
03Invalid acceptorCheck merchant/terminal configuration (MID/TID), acquirer routing, and credentials.
04Keep cardDo not retry; follow in-store procedure if applicable; request another payment method.
05Do not honorGeneric decline: avoid retry loops; ask customer to contact issuer or use another method.
06Transaction invalid for terminalCheck terminal capability / transaction type compatibility; verify integration parameters.
07Honor with IDIf card-present: request ID verification; otherwise ask customer to contact issuer.
08Time-OutRetry once after a short delay; if repeated, check network/acquirer connectivity.
09No originalFor reversals/adjustments: ensure you reference an existing original transaction; escalate if needed.
10Unable to reverseDo not repeat reversals blindly; escalate to support with transaction references.
11Partial approvalHandle partial approval if supported (often prepaid); otherwise request another method.
12Invalid transactionCheck transaction type/lifecycle (auth/capture/void/refund), parameters; escalate with logs if persistent.
13Invalid amountValidate amount format, currency decimals, and min/max constraints; retry after correction.
14Invalid cardholder numberCustomer should re-enter card details; if repeated, use another card.
15Unknown card issuerTry another card/payment method; if widespread, suspect routing/config issue and escalate.
17Invalid capture date (terminal business date)Check terminal business date / batch settings; retry after correction if applicable.
19Repeat transaction laterRetry once later; avoid multiple attempts in a short window; ask customer to contact issuer if repeated.
20No From AccountNot typical for purchase flows; verify transaction type and account fields; escalate if unexpected.
21No To AccountNot typical for purchase flows; verify transaction type and account fields; escalate if unexpected.
22Account not verifiedAsk customer to contact issuer; consider another payment method.
23Account not savedRetry later if applicable; otherwise use another method; escalate if recurring.
24No Credit AccountAsk customer to contact issuer; use another method.
25Unable to locate record in fileFor adjustments/reversals: verify original reference; escalate with trace/reference.
26Record duplicatedCheck idempotency and uniqueness of references; do not retry with same identifiers.
27‘Edit’ error in file update fieldCheck field formats and constraints; escalate with payload/logs.
28File access deniedConfiguration/permission issue: escalate to support/acquirer with context.
29File update not possibleEscalate with trace/reference; avoid repeating the same update operation.
30Format errorCheck request formatting (amount/currency, PAN/expiry, flags, message structure); escalate with logs.
31Identifier of acquiring organization unknownCheck acquirer routing and merchant configuration; escalate to support/acquirer.
32Transaction partially completedCheck final status via retrieval; avoid blind retry; escalate if inconsistent.
33Card validity date exceededCustomer must use another card.
34Implausible card dataCustomer should re-enter details; verify card data collection; use another card if repeated.
38Number of PIN attempts exceededDo not retry; customer must contact issuer / reset PIN.
39Transaction not allowedCheck transaction type and merchant capability; ask customer to contact issuer or use another method.
41Lost cardDo not retry; request another payment method.
42Special PickupDo not retry; request another method; in-store: follow procedure if applicable.
43Stolen cardDo not retry; request another payment method.
44Stolen cardDo not retry; request another payment method.
51Insufficient funds or overdraftAsk customer to use another method or wait for funds; avoid repeated immediate retries.
54Card expiredCustomer must use another card.
55Incorrect PINCard-present: retry carefully; if repeated, customer contacts issuer.
56Card not on fileVerify card details; customer should contact issuer or use another card.
57Transaction not authorized to this cardholderIssuer restriction; ask customer to contact issuer or use another method.
58Transaction prohibited at terminalCheck merchant/terminal capabilities and MCC/terminal restrictions; adjust configuration.
59Suspected fraudAvoid retry loops; customer contacts issuer or uses another method; review risk rules if frequent.
60The card acceptor must contact the buyerAsk customer to contact issuer / confirm details; avoid repeated attempts.
61Withdrawal amount over limitReduce amount or ask customer to contact issuer.
62Card use restrictedCustomer contacts issuer; use another method.
63MAC Key ErrorCryptographic/config issue: escalate to support/acquirer with trace and timestamps.
65Frequency limit exceededWait and retry later; avoid multiple attempts in short timeframe.
66Acquirer limit reachedEscalate to acquirer/support; retry only after confirmation.
67Card withheldDo not retry; request another method; in-store: follow procedure if applicable.
68Response not received or received too lateRetry once; if repeated, check acquirer/network status and escalate.
75Number of PIN attempts exceededSame as 38: do not retry; customer must contact issuer.
76Invalid AccountAsk customer to contact issuer; use another card/method.
77Issuer not participating in serviceUse another card or method; escalate if routing/regional issue suspected.
78Function not availableRemove/disable unsupported feature; verify transaction type and integration flags.
79Key validation errorCryptographic/config issue: escalate to support/acquirer with trace.
80Approved for purchase amount onlyIf you requested cash-back/extra: retry without it; otherwise proceed as approved.
81Unable to verify PINCard-present: retry; if repeated, customer contacts issuer or use another method.
82Invalid CVVRe-enter CVV; if repeated, use another card.
83Not refusedTreat as non-decline / ambiguous: verify final status via retrieval; escalate if inconsistent.
84Invalid transaction lifecycleCheck auth/capture/void/refund ordering and timing; fix integration logic.
85No key to useCryptographic/config issue: escalate to support/acquirer.
86KME synchronization errorCryptographic sync issue: escalate with logs, trace, timestamps.
87PIN errorCard-present: retry; if repeated, customer contacts issuer.
88MAC synchronization errorCryptographic sync issue: escalate with logs, trace, timestamps.
89Security violationStop retries; escalate to support/acquirer; review fraud/security configuration.
90Temporary system shutdownRetry later; if persistent, treat as incident and escalate.
91Card transmitter inaccessibleRetry later; if widespread, treat as issuer/network outage.
92Card issuer unknownUse another card; if repeated across cards, suspect routing/config and escalate.
93Transacation cannot be finalizedRetry later once; if persistent, escalate with trace/logs.
94Duplicate requestEnsure idempotency / unique references; do not resend the exact same request.
95Contact acquirerEscalate to support/acquirer with transaction reference and timestamps.
96System malfunctionRetry later; if repeated, escalate with traces/logs.
97No Funds TransferNot typical for purchase flows; verify transaction type; escalate if unexpected.
98Duplicate ReversalDo not repeat reversal; verify original reversal status; ensure idempotency.
99Duplicate TransactionCheck idempotency and client retries; ensure unique transaction identifiers.
N3Cash Service Not AvailableNot applicable to purchase flows; ignore unless supporting cash services.
N4Cash Back Request Exceeds Issuer LimitReduce cash-back amount or remove cash-back.
N7Declined for CVV2 failureRe-enter CVV; if repeated, use another card.
R0Stop Payment OrderDo not retry; customer must contact issuer.
R1Revocation of Authorisation OrderDo not retry; customer must contact issuer.
R3Revocation of all Authorisations OrderDo not retry; customer must contact issuer.
A0Withdrawal in contact modeNot applicable to e-commerce purchase flows; verify transaction type; remove cash/withdrawal feature if not supported.
A1VADS fallbackRouting/fallback case: verify gateway/acquirer configuration; escalate if frequent or unexpected.
000ApprovedProceed with capture / fulfillment.
001Approve with IDIf supported: apply ID verification; otherwise treat as approved.
002Partial approval (prepaid cards only)Handle partial approval if supported; otherwise request another method.
100RejectGeneric decline: avoid retry loops; ask customer to contact issuer or use another method.
101Card expired / invalid expiry dateCustomer must use another card.
106PIN attempts exceededDo not retry; customer must contact issuer.
107Please call issuerCustomer must contact issuer; retry only after confirmation.
109Invalid merchantCheck merchant configuration and routing; escalate to support/acquirer.
110Invalid amountValidate amount format/limits; retry after correction.
111Invalid account / Invalid MICR (traveler’s check)Ask customer to contact issuer; use another card/method.
115Requested function not supportedDisable unsupported feature/flag; verify transaction type.
117Invalid PINCard-present: retry carefully; if repeated, customer contacts issuer.
119Cardholder not registered / not authorizedCustomer must contact issuer; use another method.
122Invalid card security code (alias CID, 4DBC, 4CSC)Re-enter security code; if repeated, use another card.
125Invalid effective dateCheck date fields / terminal business date; escalate if applicable.
181Format errorCheck request formatting and fields; escalate with logs if persistent.
183Invalid currency codeVerify ISO currency code and acquirer configuration; correct and retry.
187Refuse – New card issuedCustomer must use another card; advise contacting issuer.
189Refuse – Merchant cancelled or closed / SECheck merchant status/configuration; escalate to support/acquirer.
200Refuse – Pick up cardDo not retry; request another method; in-store: follow procedure if applicable.
900Accepted – ATC synchronizationProceed but monitor; if repeated, escalate (potential chip/crypto sync issue).
909System malfunction (cryptographic error)Escalate to support/acquirer with trace, timestamps, and logs.
912Issuer not availableRetry later; if widespread, treat as issuer outage / incident.

Card Disputes - Bank Return codes

CB Scheme

CBDescriptionGIE DISPUTE
12Unauthorized TransactionTRANSACTION_NOT_AUTHORIZED
13Merchant Forced TransactionINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
14Unauthorized TransactionTRANSACTION_NOT_AUTHORIZED
15Guarantee by Card, by Day and by SIRETTRANSACTION_NOT_AUTHORIZED
16PIN Not VerifiedTRANSACTION_NOT_AUTHORIZED
17Invalid SIRETTRANSACTION_NOT_AUTHORIZED
18Certificate Not VerifiableTRANSACTION_NOT_AUTHORIZED
21Expired CardTRANSACTION_NOT_AUTHORIZED
22Late PresentmentINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
23Missing ImprintINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
25Exceeds Transaction Amount LimitINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
27Credit Not ProcessedTRANSACTION_NOT_AUTHORIZED
28Credit Processed as DebitTRANSACTION_NOT_AUTHORIZED
40Cancelled CardINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
41Documentation Not Provided or IllegibleINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
42Duplicate ProcessingDUPLICATE
43No Such Card NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
44Disputed AmountFRAUDULENT
45Disputed TransactionFRAUDULENT
46Merchant Bankruptcy or Judicial ReorganizationINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
61Merchant Suspended or TerminatedTRANSACTION_NOT_AUTHORIZED
62Transaction Not PermittedTRANSACTION_NOT_AUTHORIZED

Mastercard Scheme

MASTERCARDDescriptionGIE DISPUTE
4801Requested Transaction Data Not ReceivedTRANSACTION_NOT_AUTHORIZED
4802Cardholder Does Not Recognize TransactionTRANSACTION_NOT_AUTHORIZED
4807Cardholder Disputes a CreditFRAUDULENT
4808Authorization-Related ChargebackTRANSACTION_NOT_AUTHORIZED
4809Transaction Not AuthorizedFRAUDULENT
4810Fraud — Card-Not-Present EnvironmentFRAUDULENT
4522Goods or Services Not as Described / Not ReceivedOTHER
4811Credit Not ProcessedTRANSACTION_NOT_AUTHORIZED
4812Fraud — Card-Present EnvironmentTRANSACTION_NOT_AUTHORIZED
4831Goods or Services Not ReceivedINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4834Duplicate ProcessingDUPLICATE
4835Transaction Processing ErrorTRANSACTION_NOT_AUTHORIZED
4837No Cardholder Authorization (Lost/Stolen Card)FRAUDULENT
4840Fraudulent Processing of TransactionsFRAUDULENT
4841Cancelled Recurring TransactionTRANSACTION_NOT_AUTHORIZED
4842Counterfeit CardTRANSACTION_NOT_AUTHORIZED
4843Transaction Not Valid / Authorization ReversalTRANSACTION_NOT_AUTHORIZED
4846Non-Compliance With Authorization RequirementsINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4847Invalid Recurring TransactionINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4849Duplicate ProcessingDUPLICATE
4850ATM Cash Disbursement Not AuthorizedTRANSACTION_NOT_AUTHORIZED
4851Cardholder Disputes Transaction (Offline)TRANSACTION_NOT_AUTHORIZED
4853Cardholder Disputes Transaction Not as DescribedPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4854Exceeds Floor LimitPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4855Non-Receipt of Merchandise / ServicesPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4857Cardholder Disputes Transaction — Services Not ProvidedTRANSACTION_NOT_AUTHORIZED
4859Services Not Provided / Merchandise Not ReceivedTRANSACTION_NOT_AUTHORIZED
4860Transaction Processing ErrorTRANSACTION_NOT_AUTHORIZED
4862Cardholder Disputes Transaction — Invalid AuthorizationTRANSACTION_NOT_AUTHORIZED
4863Credit Not Processed / Cash Not DispensedFRAUDULENT
4870Chip Liability Shift — Counterfeit FraudFRAUDULENT
4871Chip Liability Shift — Lost/Stolen FraudFRAUDULENT
4880Late PresentmentTRANSACTION_NOT_AUTHORIZED
4890Currency Conversion DisputeTRANSACTION_NOT_AUTHORIZED
4900Defective/Not as Described MerchandiseOTHER
4901Credit Not ProcessedOTHER
4902Merchandise Not AcceptedOTHER
4903Incorrect Merchandise DeliveredOTHER
4905Services Not ProvidedOTHER
4908Cash Not DispensedOTHER

Visa Scheme

VISADescriptionGIE DISPUTE
10Fraud — Card-Absent EnvironmentFRAUDULENT
11Fraud — Card-Present EnvironmentTRANSACTION_NOT_AUTHORIZED
12Incorrect Transaction Amount or Account NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
13Fraudulent Transaction — No AuthorizationFRAUDULENT
30Services Not Provided or Merchandise Not ReceivedPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
41Credit Not ProcessedOTHER
53Not as Described or Defective MerchandiseOTHER
57Fraudulent Transaction — No Cardholder AuthorizationFRAUDULENT
62Counterfeit TransactionFRAUDULENT
70Processing ErrorOTHER
71Declined AuthorizationOTHER
72Cancelled TransactionOTHER
73Duplicate ProcessingOTHER
74Credit Not ProcessedOTHER
75Transaction Not RecognizedOTHER
76Incorrect Transaction Amount or Account NumberOTHER
77Non-Receipt of MerchandiseINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
78Fraudulent Transaction — No Cardholder AuthorizationOTHER
80Incorrect Transaction Amount or Account NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
81Fraudulent Transaction — Lost CardFRAUDULENT
82Fraudulent Transaction — Stolen CardDUPLICATE
83Fraudulent Transaction — Card-Absent EnvironmentFRAUDULENT
85Duplicate ProcessingOTHER
86Non-Compliance With AuthorizationDUPLICATE
93Late PresentmentFRAUDULENT
1001Fraud — Card-Absent Environment (E-Commerce)FRAUDULENT
1002Fraudulent Transaction — E-CommerceFRAUDULENT
1003Services Not Provided or Merchandise Not ReceivedFRAUDULENT
1004Fraudulent Transaction — No Cardholder AuthorizationFRAUDULENT
1005Not as Described or Defective MerchandiseFRAUDULENT
1101Processing Error — AuthorizationOTHER
1102Incorrect Transaction AmountOTHER
1103Exceeds Authorized AmountOTHER
1201Services Not Provided or Merchandise Not ReceivedOTHER
1202Not as Described Merchandise / ServiceOTHER
1203Recurring Transaction Not RecognizedOTHER
1204Defective MerchandiseINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
1205Services Not ProvidedINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
1206Non-Receipt of MerchandiseDUPLICATE
1207Duplicate ProcessingOTHER
1301Fraudulent Transaction — Card-Present EnvironmentPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
1302Fraudulent Transaction — No Cardholder AuthorizationOTHER
1303Fraudulent Transaction — Card-Absent EnvironmentOTHER
1304Duplicate ProcessingOTHER
1305Services Not Provided or Merchandise Not ReceivedOTHER
1306Credit Not ProcessedOTHER
1307Recurring Transaction Not RecognizedOTHER
1308Transaction Processing ErrorOTHER

Currency codes

List of currency codes:

AED
UAE Dirham
Currency code: 784
AFN
Afghani
Currency code: 971
ALL
Lek
Currency code: 008
AMD
Armenian Dram
Currency code: 051
ANG
Netherlands Antillean Guilder
Currency code: 532
AOA
Kwanza
Currency code: 973
ARS
Argentine Peso
Currency code: 032
AUD
Australian Dollar
Currency code: 036
AWG
Aruban Florin
Currency code: 533
AZN
Azerbaijanian Manat
Currency code: 944
BAM
Convertible Mark
Currency code: 977
BBD
Barbados Dollar
Currency code: 052
BDT
Taka
Currency code: 050
BGN
Bulgarian Lev
Currency code: 975
BHD
Bahraini Dinar
Currency code: 048
BIF
Burundi Franc
Currency code: 108
BMD
Bermudian Dollar
Currency code: 060
BND
Brunei Dollar
Currency code: 096
BOB
Boliviano
Currency code: 068
BOV
Mvdol
Currency code: 984
BRL
Brazilian Real
Currency code: 986
BSD
Bahamian Dollar
Currency code: 044
BTN
Ngultrum
Currency code: 064
BWP
Pula
Currency code: 072
BYR
Belarussian Ruble
Currency code: 974
BZD
Belize Dollar
Currency code: 084
CAD
Canadian Dollar
Currency code: 124
CDF
Congolese Franc
Currency code: 976
CHE
WIR Euro
Currency code: 947
CHF
Swiss Franc
Currency code: 756
CHW
WIR Franc
Currency code: 948
CLF
Unidad de Fomento
Currency code: 990
CLP
Chilean Peso
Currency code: 152
CNY
Yuan Renminbi
Currency code: 156
COP
Colombian Peso
Currency code: 170
COU
Unidad de Valor Real
Currency code: 970
CRC
Costa Rican Colon
Currency code: 188
CUC
Peso Convertible
Currency code: 931
CUP
Cuban Peso
Currency code: 192
CVE
Cabo Verde Escudo
Currency code: 132
CZK
Czech Koruna
Currency code: 203
DJF
Djibouti Franc
Currency code: 262
DKK
Danish Krone
Currency code: 208
DOP
Dominican Peso
Currency code: 214
DZD
Algerian Dinar
Currency code: 012
EGP
Egyptian Pound
Currency code: 818
ERN
Nakfa
Currency code: 232
ETB
Ethiopian Birr
Currency code: 230
EUR
Euro
Currency code: 978
FJD
Fiji Dollar
Currency code: 242
FKP
Falkland Islands Pound
Currency code: 238
GBP
Pound Sterling
Currency code: 826
GEL
Lari
Currency code: 981
GHS
Ghana Cedi
Currency code: 936
GIP
Gibraltar Pound
Currency code: 292
GMD
Dalasi
Currency code: 270
GNF
Guinea Franc
Currency code: 324
GTQ
Quetzal
Currency code: 320
GYD
Guyana Dollar
Currency code: 328
HKD
Hong Kong Dollar
Currency code: 344
HNL
Lempira
Currency code: 340
HRK
Kuna
Currency code: 191
HTG
Gourde
Currency code: 332
HUF
Forint
Currency code: 348
IDR
Rupiah
Currency code: 360
ILS
New Israeli Sheqel
Currency code: 376
INR
Indian Rupee
Currency code: 356
IQD
Iraqi Dinar
Currency code: 368
IRR
Iranian Rial
Currency code: 364
ISK
Iceland Krona
Currency code: 352
JMD
Jamaican Dollar
Currency code: 388
JOD
Jordanian Dinar
Currency code: 400
JPY
Yen
Currency code: 392
KES
Kenyan Shilling
Currency code: 404
KGS
Som
Currency code: 417
KHR
Riel
Currency code: 116
KMF
Comoro Franc
Currency code: 174
KPW
North Korean Won
Currency code: 408
KRW
Won
Currency code: 410
KWD
Kuwaiti Dinar
Currency code: 414
KYD
Cayman Islands Dollar
Currency code: 136
KZT
Tenge
Currency code: 398
LAK
Kip
Currency code: 418
LBP
Lebanese Pound
Currency code: 422
LKR
Sri Lanka Rupee
Currency code: 144
LRD
Liberian Dollar
Currency code: 430
LSL
Loti
Currency code: 426
LYD
Libyan Dinar
Currency code: 434
MAD
Moroccan Dirham
Currency code: 504
MDL
Moldovan Leu
Currency code: 498
MGA
Malagasy Ariary
Currency code: 969
MKD
Denar
Currency code: 807
MMK
Kyat
Currency code: 104
MNT
Tugrik
Currency code: 496
MOP
Pataca
Currency code: 446
MRO
Ouguiya
Currency code: 478
MUR
Mauritius Rupee
Currency code: 480
MVR
Rufiyaa
Currency code: 462
MWK
Kwacha
Currency code: 454
MXN
Mexican Peso
Currency code: 484
MXV
Mexican Unidad de Inversion (UDI)
Currency code: 979
MYR
Malaysian Ringgit
Currency code: 458
MZN
Mozambique Metical
Currency code: 943
NAD
Namibia Dollar
Currency code: 516
NGN
Naira
Currency code: 566
NIO
Cordoba Oro
Currency code: 558
NOK
Norwegian Krone
Currency code: 578
NPR
Nepalese Rupee
Currency code: 524
NZD
New Zealand Dollar
Currency code: 554
OMR
Rial Omani
Currency code: 512
PAB
Balboa
Currency code: 590
PEN
Nuevo Sol
Currency code: 604
PGK
Kina
Currency code: 598
PHP
Philippine Peso
Currency code: 608
PKR
Pakistan Rupee
Currency code: 586
PLN
Zloty
Currency code: 985
PYG
Guarani
Currency code: 600
QAR
Qatari Rial
Currency code: 634
RON
Romanian Leu
Currency code: 946
RSD
Serbian Dinar
Currency code: 941
RUB
Russian Ruble
Currency code: 643
RWF
Rwanda Franc
Currency code: 646
SAR
Saudi Riyal
Currency code: 682
SBD
Solomon Islands Dollar
Currency code: 090
SCR
Seychelles Rupee
Currency code: 690
SDG
Sudanese Pound
Currency code: 938
SEK
Swedish Krona
Currency code: 752
SGD
Singapore Dollar
Currency code: 702
SHP
Saint Helena Pound
Currency code: 654
SLL
Leone
Currency code: 694
SOS
Somali Shilling
Currency code: 706
SRD
Surinam Dollar
Currency code: 968
SSP
South Sudanese Pound
Currency code: 728
STD
Dobra
Currency code: 678
SVC
El Salvador Colon
Currency code: 222
SYP
Syrian Pound
Currency code: 760
SZL
Lilangeni
Currency code: 748
THB
Baht
Currency code: 764
TJS
Somoni
Currency code: 972
TMT
Turkmenistan New Manat
Currency code: 934
TND
Tunisian Dinar
Currency code: 788
TOP
Pa’anga
Currency code: 776
TRY
Turkish Lira
Currency code: 949
TTD
Trinidad and Tobago Dollar
Currency code: 780
TWD
New Taiwan Dollar
Currency code: 901
TZS
Tanzanian Shilling
Currency code: 834
UAH
Hryvnia
Currency code: 980
UGX
Uganda Shilling
Currency code: 800
USD
US Dollar
Currency code: 840
USN
US Dollar (Next day)
Currency code: 997
UYI
Uruguay Peso en Unidades Indexadas (URUIURUI)
Currency code: 940
UYU
Peso Uruguayo
Currency code: 858
UZS
Uzbekistan Sum
Currency code: 860
VEF
Bolivar
Currency code: 937
VND
Dong
Currency code: 704
VUV
Vatu
Currency code: 548
WST
Tala
Currency code: 882
XAG
Silver
Currency code: 961
XAU
Gold
Currency code: 959
XBA
Bond Markets Unit European Composite Unit (EURCO)
Currency code: 955
XBB
Bond Markets Unit European Monetary Unit (E.M.U.-6)
Currency code: 956
XBC
Bond Markets Unit European Unit of Account 9 (E.U.A.-9)
Currency code: 957
XBD
Bond Markets Unit European Unit of Account 17 (E.U.A.-17)
Currency code: 958
XCD
East Caribbean Dollar
Currency code: 951
XDR
SDR (Special Drawing Right)
Currency code: 960
XOF
CFA Franc BCEAO
Currency code: 952
XPD
Palladium
Currency code: 964
XPF
CFP Franc
Currency code: 953
XPT
Platinum
Currency code: 962
XSU
Sucre
Currency code: 994
XTS
Codes specifically reserved for testing purposes
Currency code: 963
XUA
ADB Unit of Account
Currency code: 965
XXX
The codes assigned for transactions where no currency is involved
Currency code: 999
YER
Yemeni Rial
Currency code: 886
ZAR
Rand
Currency code: 710
ZMW
Zambian Kwacha
Currency code: 967
ZWL
Zimbabwe Dollar
Currency code: 932

Description of the certification « ISO 4217:2008 » is available at this url:

  • http://www.iso.org/iso/home/standards/currency_codes.htm

SDD return codes

Return CodeDescription
AB05Timeout Creditor Agent
AB06Timeout Instructed Agent
AB07Offline Agent
AB08Offline Creditor Agent
AB09Error Creditor Agent
AB10Error Instructed Agent
AC01Incorrect Account Number
AC03Invalid Creditor Account Number
AC04Account Closed
AC06Account blocked, reason not specified
AC13Wrong Debtor account
AG01Forbidden on this type of account
AG02Operation/Transaction code incorrect, invalid file format
AG09Payment Not Received
AG10Agent Suspended
AG11Creditor Agent Suspended
AGNTIncorrect Agent
AM02Not Allowed Amount
AM04Insufficient Funds
AM05Duplicate payment
AM09Wrong Amount
AM23Amount Exceeds Settlement Limit
ARDTAlready a returned transaction
BE04Account address invalid
BE05Creditor Identifier incorrect
CUSTCustomer decision
CURRIncorrect Currency
CUTACancellation Upon Unable to Apply
CNORCreditor Bank is not Registered
DNORDebtor Bank is not Registered
DUPLDuplicate Payment
ED05Settlement Failed
ERINERI Option Not Supported
FF01Invalid File Format
FOCRPositive answer to the recall or RfRO
FRADFraudulent originated credit transfer
LEGLLegal Decision
MD01No valid mandate
MD02Mandate data missing or invalid
MD06Refund Request By End Customer
MD07Beneficiary Deceased
MS02By order of the beneficiary
MS03Reason not specified
NOASNo Answer From Customer
NOORNo Original Transaction Received
RC01Invalid BIC
RC07Invalid Creditor BIC Identifier
RR01Missing Debtor Account Or Identification
RR02Missing Debtors Name Or Address
RR03Missing Creditors Name Or Address
RR04Regulatory Reason
SL01Specific service offered by debtor Bank
TECHTechnical problems resulting in erroneous SCT’s
TM01Invalid Cut Off Time
UPAYUndue Payment

Country codes

List of country codes:

004
Afghanistan
Alpha2 code: AF
Alpha3 code: AFG
008
Albania
Alpha2 code: AL
Alpha3 code: ALB
010
Antarctica
Alpha2 code: AQ
Alpha3 code: ATA
012
Algeria
Alpha2 code: DZ
Alpha3 code: DZA
016
American Samoa
Alpha2 code: AS
Alpha3 code: ASM
020
Andorra
Alpha2 code: AD
Alpha3 code: AND
024
Angola
Alpha2 code: AO
Alpha3 code: AGO
028
Antigua and Barbuda
Alpha2 code: AG
Alpha3 code: ATG
031
Azerbaijan
Alpha2 code: AZ
Alpha3 code: AZE
032
Argentina
Alpha2 code: AR
Alpha3 code: ARG
036
Australia
Alpha2 code: AU
Alpha3 code: AUS
040
Austria
Alpha2 code: AT
Alpha3 code: AUT
044
Bahamas (the)
Alpha2 code: BS
Alpha3 code: BHS
048
Bahrain
Alpha2 code: BH
Alpha3 code: BHR
050
Bangladesh
Alpha2 code: BD
Alpha3 code: BGD
051
Armenia
Alpha2 code: AM
Alpha3 code: ARM
052
Barbados
Alpha2 code: BB
Alpha3 code: BRB
056
Belgium
Alpha2 code: BE
Alpha3 code: BEL
060
Bermuda
Alpha2 code: BM
Alpha3 code: BMU
064
Bhutan
Alpha2 code: BT
Alpha3 code: BTN
068
Bolivia, Plurinational State of
Alpha2 code: BO
Alpha3 code: BOL
070
Bosnia and Herzegovina
Alpha2 code: BA
Alpha3 code: BIH
072
Botswana
Alpha2 code: BW
Alpha3 code: BWA
074
Bouvet Island
Alpha2 code: BV
Alpha3 code: BVT
076
Brazil
Alpha2 code: BR
Alpha3 code: BRA
084
Belize
Alpha2 code: BZ
Alpha3 code: BLZ
086
British Indian Ocean Territory (the)
Alpha2 code: IO
Alpha3 code: IOT
090
Solomon Islands (the)
Alpha2 code: SB
Alpha3 code: SLB
092
Virgin Islands (British)
Alpha2 code: VG
Alpha3 code: VGB
096
Brunei Darussalam
Alpha2 code: BN
Alpha3 code: BRN
100
Bulgaria
Alpha2 code: BG
Alpha3 code: BGR
104
Myanmar
Alpha2 code: MM
Alpha3 code: MMR
108
Burundi
Alpha2 code: BI
Alpha3 code: BDI
112
Belarus
Alpha2 code: BY
Alpha3 code: BLR
116
Cambodia
Alpha2 code: KH
Alpha3 code: KHM
120
Cameroon
Alpha2 code: CM
Alpha3 code: CMR
124
Canada
Alpha2 code: CA
Alpha3 code: CAN
132
Cape Verde
Alpha2 code: CV
Alpha3 code: CPV
136
Cayman Islands (the)
Alpha2 code: KY
Alpha3 code: CYM
140
Central African Republic (the)
Alpha2 code: CF
Alpha3 code: CAF
144
Sri Lanka
Alpha2 code: LK
Alpha3 code: LKA
148
Chad
Alpha2 code: TD
Alpha3 code: TCD
152
Chile
Alpha2 code: CL
Alpha3 code: CHL
156
China
Alpha2 code: CN
Alpha3 code: CHN
158
Taiwan (Province of China)
Alpha2 code: TW
Alpha3 code: TWN
162
Christmas Island
Alpha2 code: CX
Alpha3 code: CXR
166
Cocos (Keeling) Islands (the)
Alpha2 code: CC
Alpha3 code: CCK
170
Colombia
Alpha2 code: CO
Alpha3 code: COL
174
Comoros
Alpha2 code: KM
Alpha3 code: COM
175
Mayotte
Alpha2 code: YT
Alpha3 code: MYT
178
Congo
Alpha2 code: CG
Alpha3 code: COG
180
Congo (the Democratic Republic of the)
Alpha2 code: CD
Alpha3 code: COD
184
Cook Islands (the)
Alpha2 code: CK
Alpha3 code: COK
188
Costa Rica
Alpha2 code: CR
Alpha3 code: CRI
191
Croatia
Alpha2 code: HR
Alpha3 code: HRV
192
Cuba
Alpha2 code: CU
Alpha3 code: CUB
196
Cyprus
Alpha2 code: CY
Alpha3 code: CYP
203
Czech Republic (the)
Alpha2 code: CZ
Alpha3 code: CZE
204
Benin
Alpha2 code: BJ
Alpha3 code: BEN
208
Denmark
Alpha2 code: DK
Alpha3 code: DNK
212
Dominica
Alpha2 code: DM
Alpha3 code: DMA
214
Dominican Republic (the)
Alpha2 code: DO
Alpha3 code: DOM
218
Ecuador
Alpha2 code: EC
Alpha3 code: ECU
222
El Salvador
Alpha2 code: SV
Alpha3 code: SLV
226
Equatorial Guinea
Alpha2 code: GQ
Alpha3 code: GNQ
231
Ethiopia
Alpha2 code: ET
Alpha3 code: ETH
232
Eritrea
Alpha2 code: ER
Alpha3 code: ERI
233
Estonia
Alpha2 code: EE
Alpha3 code: EST
234
Faroe Islands (the)
Alpha2 code: FO
Alpha3 code: FRO
238
Falkland Islands (the) [Malvinas]
Alpha2 code: FK
Alpha3 code: FLK
239
South Georgia and the South Sandwich Islands
Alpha2 code: GS
Alpha3 code: SGS
242
Fiji
Alpha2 code: FJ
Alpha3 code: FJI
246
Finland
Alpha2 code: FI
Alpha3 code: FIN
248
Ã…land Islands
Alpha2 code: AX
Alpha3 code: ALA
250
France
Alpha2 code: FR
Alpha3 code: FRA
254
French Guiana
Alpha2 code: GF
Alpha3 code: GUF
258
French Polynesia
Alpha2 code: PF
Alpha3 code: PYF
260
French Southern Territories (the)
Alpha2 code: TF
Alpha3 code: ATF
262
Djibouti
Alpha2 code: DJ
Alpha3 code: DJI
266
Gabon
Alpha2 code: GA
Alpha3 code: GAB
268
Georgia
Alpha2 code: GE
Alpha3 code: GEO
270
Gambia (The)
Alpha2 code: GM
Alpha3 code: GMB
275
Palestine, State of
Alpha2 code: PS
Alpha3 code: PSE
276
Germany
Alpha2 code: DE
Alpha3 code: DEU
288
Ghana
Alpha2 code: GH
Alpha3 code: GHA
292
Gibraltar
Alpha2 code: GI
Alpha3 code: GIB
296
Kiribati
Alpha2 code: KI
Alpha3 code: KIR
300
Greece
Alpha2 code: GR
Alpha3 code: GRC
304
Greenland
Alpha2 code: GL
Alpha3 code: GRL
308
Grenada
Alpha2 code: GD
Alpha3 code: GRD
312
Guadeloupe
Alpha2 code: GP
Alpha3 code: GLP
316
Guam
Alpha2 code: GU
Alpha3 code: GUM
320
Guatemala
Alpha2 code: GT
Alpha3 code: GTM
324
Guinea
Alpha2 code: GN
Alpha3 code: GIN
328
Guyana
Alpha2 code: GY
Alpha3 code: GUY
332
Haiti
Alpha2 code: HT
Alpha3 code: HTI
334
Heard Island and McDonald Islands
Alpha2 code: HM
Alpha3 code: HMD
336
Holy See (the) [Vatican City State]
Alpha2 code: VA
Alpha3 code: VAT
340
Honduras
Alpha2 code: HN
Alpha3 code: HND
344
Hong Kong
Alpha2 code: HK
Alpha3 code: HKG
348
Hungary
Alpha2 code: HU
Alpha3 code: HUN
352
Iceland
Alpha2 code: IS
Alpha3 code: ISL
356
India
Alpha2 code: IN
Alpha3 code: IND
360
Indonesia
Alpha2 code: ID
Alpha3 code: IDN
364
Iran (the Islamic Republic of)
Alpha2 code: IR
Alpha3 code: IRN
368
Iraq
Alpha2 code: IQ
Alpha3 code: IRQ
372
Ireland
Alpha2 code: IE
Alpha3 code: IRL
376
Israel
Alpha2 code: IL
Alpha3 code: ISR
380
Italy
Alpha2 code: IT
Alpha3 code: ITA
384
Ivory coast
Alpha2 code: CI
Alpha3 code: CIV
388
Jamaica
Alpha2 code: JM
Alpha3 code: JAM
392
Japan
Alpha2 code: JP
Alpha3 code: JPN
398
Kazakhstan
Alpha2 code: KZ
Alpha3 code: KAZ
400
Jordan
Alpha2 code: JO
Alpha3 code: JOR
404
Kenya
Alpha2 code: KE
Alpha3 code: KEN
408
Korea (the Democratic People’s Republic of)
Alpha2 code: KP
Alpha3 code: PRK
410
Korea (the Republic of)
Alpha2 code: KR
Alpha3 code: KOR
414
Kuwait
Alpha2 code: KW
Alpha3 code: KWT
417
Kyrgyzstan
Alpha2 code: KG
Alpha3 code: KGZ
418
Lao People’s Democratic Republic (the)
Alpha2 code: LA
Alpha3 code: LAO
422
Lebanon
Alpha2 code: LB
Alpha3 code: LBN
426
Lesotho
Alpha2 code: LS
Alpha3 code: LSO
428
Latvia
Alpha2 code: LV
Alpha3 code: LVA
430
Liberia
Alpha2 code: LR
Alpha3 code: LBR
434
Libya
Alpha2 code: LY
Alpha3 code: LBY
438
Liechtenstein
Alpha2 code: LI
Alpha3 code: LIE
440
Lithuania
Alpha2 code: LT
Alpha3 code: LTU
442
Luxembourg
Alpha2 code: LU
Alpha3 code: LUX
446
Macao
Alpha2 code: MO
Alpha3 code: MAC
450
Madagascar
Alpha2 code: MG
Alpha3 code: MDG
454
Malawi
Alpha2 code: MW
Alpha3 code: MWI
458
Malaysia
Alpha2 code: MY
Alpha3 code: MYS
462
Maldives
Alpha2 code: MV
Alpha3 code: MDV
466
Mali
Alpha2 code: ML
Alpha3 code: MLI
470
Malta
Alpha2 code: MT
Alpha3 code: MLT
474
Martinique
Alpha2 code: MQ
Alpha3 code: MTQ
478
Mauritania
Alpha2 code: MR
Alpha3 code: MRT
480
Mauritius
Alpha2 code: MU
Alpha3 code: MUS
484
Mexico
Alpha2 code: MX
Alpha3 code: MEX
492
Monaco
Alpha2 code: MC
Alpha3 code: MCO
496
Mongolia
Alpha2 code: MN
Alpha3 code: MNG
498
Moldova (the Republic of)
Alpha2 code: MD
Alpha3 code: MDA
499
Montenegro
Alpha2 code: ME
Alpha3 code: MNE
500
Montserrat
Alpha2 code: MS
Alpha3 code: MSR
504
Morocco
Alpha2 code: MA
Alpha3 code: MAR
508
Mozambique
Alpha2 code: MZ
Alpha3 code: MOZ
512
Oman
Alpha2 code: OM
Alpha3 code: OMN
516
Namibia
Alpha2 code: NA
Alpha3 code: NAM
520
Nauru
Alpha2 code: NR
Alpha3 code: NRU
524
Nepal
Alpha2 code: NP
Alpha3 code: NPL
528
Netherlands (the)
Alpha2 code: NL
Alpha3 code: NLD
531
Curacao
Alpha2 code: CW
Alpha3 code: CUW
533
Aruba
Alpha2 code: AW
Alpha3 code: ABW
534
Sint Maarten (Dutch part)
Alpha2 code: SX
Alpha3 code: SXM
535
Bonaire, Sint Eustatius and Saba
Alpha2 code: BQ
Alpha3 code: BES
540
New Caledonia
Alpha2 code: NC
Alpha3 code: NCL
548
Vanuatu
Alpha2 code: VU
Alpha3 code: VUT
554
New Zealand
Alpha2 code: NZ
Alpha3 code: NZL
558
Nicaragua
Alpha2 code: NI
Alpha3 code: NIC
562
Niger (the)
Alpha2 code: NE
Alpha3 code: NER
566
Nigeria
Alpha2 code: NG
Alpha3 code: NGA
570
Niue
Alpha2 code: NU
Alpha3 code: NIU
574
Norfolk Island
Alpha2 code: NF
Alpha3 code: NFK
578
Norway
Alpha2 code: NO
Alpha3 code: NOR
580
Northern Mariana Islands (the)
Alpha2 code: MP
Alpha3 code: MNP
581
United States Minor Outlying Islands (the)
Alpha2 code: UM
Alpha3 code: UMI
583
Micronesia (the Federated States of)
Alpha2 code: FM
Alpha3 code: FSM
584
Marshall Islands (the)
Alpha2 code: MH
Alpha3 code: MHL
585
Palau
Alpha2 code: PW
Alpha3 code: PLW
586
Pakistan
Alpha2 code: PK
Alpha3 code: PAK
591
Panama
Alpha2 code: PA
Alpha3 code: PAN
598
Papua New Guinea
Alpha2 code: PG
Alpha3 code: PNG
600
Paraguay
Alpha2 code: PY
Alpha3 code: PRY
604
Peru
Alpha2 code: PE
Alpha3 code: PER
608
Philippines (the)
Alpha2 code: PH
Alpha3 code: PHL
612
Pitcairn
Alpha2 code: PN
Alpha3 code: PCN
616
Poland
Alpha2 code: PL
Alpha3 code: POL
620
Portugal
Alpha2 code: PT
Alpha3 code: PRT
624
Guinea-Bissau
Alpha2 code: GW
Alpha3 code: GNB
626
Timor-Leste
Alpha2 code: TL
Alpha3 code: TLS
630
Puerto Rico
Alpha2 code: PR
Alpha3 code: PRI
634
Qatar
Alpha2 code: QA
Alpha3 code: QAT
638
Réunion
Alpha2 code: RE
Alpha3 code: REU
642
Romania
Alpha2 code: RO
Alpha3 code: ROU
643
Russian Federation (the)
Alpha2 code: RU
Alpha3 code: RUS
646
Rwanda
Alpha2 code: RW
Alpha3 code: RWA
652
Saint Barthélemy
Alpha2 code: BL
Alpha3 code: BLM
654
Saint Helena, Ascension and Tristan da Cunha
Alpha2 code: SH
Alpha3 code: SHN
659
Saint Kitts and Nevis
Alpha2 code: KN
Alpha3 code: KNA
660
Anguilla
Alpha2 code: AI
Alpha3 code: AIA
662
Saint Lucia
Alpha2 code: LC
Alpha3 code: LCA
663
Saint Martin (French part)
Alpha2 code: MF
Alpha3 code: MAF
666
Saint Pierre and Miquelon
Alpha2 code: PM
Alpha3 code: SPM
670
Saint Vincent and the Grenadines
Alpha2 code: VC
Alpha3 code: VCT
674
San Marino
Alpha2 code: SM
Alpha3 code: SMR
678
Sao Tome and Principe
Alpha2 code: ST
Alpha3 code: STP
682
Saudi Arabia
Alpha2 code: SA
Alpha3 code: SAU
686
Senegal
Alpha2 code: SN
Alpha3 code: SEN
688
Serbia
Alpha2 code: RS
Alpha3 code: SRB
690
Seychelles
Alpha2 code: SC
Alpha3 code: SYC
694
Sierra Leone
Alpha2 code: SL
Alpha3 code: SLE
702
Singapore
Alpha2 code: SG
Alpha3 code: SGP
703
Slovakia
Alpha2 code: SK
Alpha3 code: SVK
704
Viet Nam
Alpha2 code: VN
Alpha3 code: VNM
705
Slovenia
Alpha2 code: SI
Alpha3 code: SVN
706
Somalia
Alpha2 code: SO
Alpha3 code: SOM
710
South Africa
Alpha2 code: ZA
Alpha3 code: ZAF
716
Zimbabwe
Alpha2 code: ZW
Alpha3 code: ZWE
724
Spain
Alpha2 code: ES
Alpha3 code: ESP
728
South Sudan
Alpha2 code: SS
Alpha3 code: SSD
729
Sudan (the)
Alpha2 code: SD
Alpha3 code: SDN
732
Western Sahara
Alpha2 code: EH
Alpha3 code: ESH
740
Suriname
Alpha2 code: SR
Alpha3 code: SUR
744
Svalbard and Jan Mayen
Alpha2 code: SJ
Alpha3 code: SJM
748
Swaziland
Alpha2 code: SZ
Alpha3 code: SWZ
752
Sweden
Alpha2 code: SE
Alpha3 code: SWE
756
Switzerland
Alpha2 code: CH
Alpha3 code: CHE
760
Syrian Arab Republic (the)
Alpha2 code: SY
Alpha3 code: SYR
762
Tajikistan
Alpha2 code: TJ
Alpha3 code: TJK
764
Thailand
Alpha2 code: TH
Alpha3 code: THA
768
Togo
Alpha2 code: TG
Alpha3 code: TGO
772
Tokelau
Alpha2 code: TK
Alpha3 code: TKL
776
Tonga
Alpha2 code: TO
Alpha3 code: TON
780
Trinidad and Tobago
Alpha2 code: TT
Alpha3 code: TTO
784
United Arab Emirates (the)
Alpha2 code: AE
Alpha3 code: ARE
788
Tunisia
Alpha2 code: TN
Alpha3 code: TUN
792
Turkey
Alpha2 code: TR
Alpha3 code: TUR
795
Turkmenistan
Alpha2 code: TM
Alpha3 code: TKM
796
Turks and Caicos Islands (the)
Alpha2 code: TC
Alpha3 code: TCA
798
Tuvalu
Alpha2 code: TV
Alpha3 code: TUV
800
Uganda
Alpha2 code: UG
Alpha3 code: UGA
804
Ukraine
Alpha2 code: UA
Alpha3 code: UKR
807
Macedonia (the former Yugoslav Republic of)
Alpha2 code: MK
Alpha3 code: MKD
818
Egypt
Alpha2 code: EG
Alpha3 code: EGY
826
United Kingdom (the)
Alpha2 code: GB
Alpha3 code: GBR
831
Guernsey
Alpha2 code: GG
Alpha3 code: GGY
832
Jersey
Alpha2 code: JE
Alpha3 code: JEY
833
Isle of Man
Alpha2 code: IM
Alpha3 code: IMN
834
Tanzania, United Republic of
Alpha2 code: TZ
Alpha3 code: TZA
840
United States (the)
Alpha2 code: US
Alpha3 code: USA
850
Virgin Islands (U.S.)
Alpha2 code: VI
Alpha3 code: VIR
854
Burkina Faso
Alpha2 code: BF
Alpha3 code: BFA
858
Uruguay
Alpha2 code: UY
Alpha3 code: URY
860
Uzbekistan
Alpha2 code: UZ
Alpha3 code: UZB
862
Venezuela, Bolivarian Republic of
Alpha2 code: VE
Alpha3 code: VEN
876
Wallis and Futuna
Alpha2 code: WF
Alpha3 code: WLF
882
Samoa
Alpha2 code: WS
Alpha3 code: WSM
887
Yemen
Alpha2 code: YE
Alpha3 code: YEM
894
Zambia  
Alpha2 code: ZM
Alpha3 code: ZMB

Transfer purpose codes

ACCT : AccountManagement
ADCS : AdvisoryDonationCopyrightServices
ADMG : AdministrativeManagement
ADVA : AdvancePayment
AEMP : ActiveEmploymentPolicy
AGRT : AgriculturalTransfer
AIRB : Air
ALLW : Allowance
ALMY : AlimonyPayment
AMEX : Amex
ANNI : Annuity
ANTS : AnesthesiaServices
AREN : AccountsReceivablesEntry
AUCO : AuthenticatedCollections
B112 : TrailerFeePayment
BBSC : BabyBonusScheme
BCDM : BearerChequeDomestic
BCFG : BearerChequeForeign
BECH : ChildBenefit
BENE : UnemploymentDisabilityBenefit
BEXP : BusinessExpenses
BFWD : BondForward
BKDF : BankLoanDelayedDrawFunding
BKFE : BankLoanFees
BKFM : BankLoanFundingMemo
BKIP : BankLoanAccruedInterestPayment
BKPP : BankLoanPrincipalPaydown
BLDM : BuildingMaintenance
BNET : BondForwardNetting
BOCE : BackOfficeConversionEntry
BOND : Bonds
BONU : BonusPayment.
BR12 : TrailerFeeRebate
BUSB : Bus
CABD : CorporateActions-Bonds
CAEQ : CorporateActions-Equities
CAFI : CustodianManagementFeeInhouse
CASH : CashManagementTransfer
CBCR : CreditCard
CBFF : CapitalBuilding
CBFR : CapitalBuildingRetirement
CBLK : CardBulkClearing
CBTV : CableTVBill
CCHD : CashCompensationHelplessnessDisability
CCIR : CrossCurrencyIRS
CCPC : CCPClearedInitialMargin
CCPM : CCPClearedVariationMargin
CCRD : CreditCardPayment
CCSM : CCPClearedInitialMarginSegregatedCash
CDBL : CreditCardBill
CDCB : CardPaymentWithCashBack
CDCD : CashDisbursementCashSettlement
CDCS : CashDisbursementWithSurcharging
CDDP : CardDeferredPayment
CDEP : CreditDefaultEventPayment
CDOC : OriginalCredit
CDQC : QuasiCash
CFDI : CapitalFallingDueInhouse
CFEE : CancellationFee
CGDD : CardGeneratedDirectDebit
CHAR : CharityPayment
CLPR : CarLoanPrincipalRepayment
CMDT : CommodityTransfer
COLL : CollectionPayment
COMC : CommercialPayment
COMM : Commission
COMP : CompensationPayment
COMT : ConsumerThirdPartyConsolidatedPayment
CORT : TradeSettlementPayment
COST : Costs
CPEN : CashPenalties
CPKC : CarparkCharges
CPYR : Copyright
CRDS : CreditDefaultSwap
CRPR : CrossProduct
CRSP : CreditSupport
CRTL : CreditLine
CSDB : CashDisbursementCashManagement
CSLP : CompanySocialLoanPaymentToBank
CVCF : ConvalescentCareFacility
DBCR : DebitCard
DBTC : DebitCollectionPayment
DCRD : DebitCardPayment
DEBT : ChargesBorneByDebtor
DEPD : DependentSupportPayment
DEPT : Deposit
DERI : Derivatives
DICL : Diners
DIVD : Dividend
DMEQ : DurableMedicaleEquipment
DNTS : DentalServices
DSMT : PrintedOrderDisbursement
DVPM : DeliverAgainstPayment
ECPG : GuaranteedEPayment
ECPR : EPaymentReturn
ECPU : NonGuaranteedEPayment
EDUC : Education
EFTC : LowValueCredit
EFTD : LowValueDebit
ELEC : ElectricityBill
ENRG : Energies
EPAY : Epayment
EQPT : EquityOption
EQTS : Equities
EQUS : EquitySwap
ESTX : EstateTax
ETUP : EPurseTopUp
EXPT : ExoticOption
EXTD : ExchangeTradedDerivatives
FACT : FactorUpdateRelatedPayment
FAND : FinancialAidInCaseOfNaturalDisaster
FCOL : FeeCollection
FCPM : LatePaymentOfFeesAndCharges
FEES : PaymentOfFees
FERB : Ferry
FIXI : FixedIncome
FLCR : FleetCard
FNET : FuturesNettingPayment
FORW : ForwardForeignExchange
FREX : ForeignExchange
FUTR : Futures
FWBC : ForwardBrokerOwnedCashCollateral
FWCC : ForwardClientOwnedCashCollateral
FWLV : ForeignWorkerLevy
FWSB : ForwardBrokerOwnedCashCollateralSegregated
FWSC : ForwardClientOwnedSegregatedCashCollateral
FXNT : ForeignExchangeRelatedNetting
GAFA : GovernmentFamilyAllowance
GAHO : GovernmentHousingAllowance
GAMB : GamblingOrWageringPayment
GASB : GasBill
GDDS : PurchaseSaleOfGoods
GDSV : PurchaseSaleOfGoodsAndServices
GFRP : GuaranteeFundRightsPayment
GIFT : Gift
GOVI : GovernmentInsurance
GOVT : GovernmentPayment
GSCB : PurchaseSaleOfGoodsAndServicesWithCashBack
GSTX : GoodsServicesTax
GVEA : AustrianGovernmentEmployeesCategoryA
GVEB : AustrianGovernmentEmployeesCategoryB
GVEC : AustrianGovernmentEmployeesCategoryC
GVED : AustrianGovernmentEmployeesCategoryD
GWLT : GovermentWarLegislationTransfer
HEDG : Hedging
HLRP : PropertyLoanRepayment
HLST : PropertyLoanSettlement
HLTC : HomeHealthCare
HLTI : HealthInsurance
HREC : HousingRelatedContribution
HSPC : HospitalCare
HSTX : HousingTax
ICCP : IrrevocableCreditCardPayment
ICRF : IntermediateCareFacility
IDCP : IrrevocableDebitCardPayment
IHRP : InstalmentHirePurchaseAgreement
INPC : InsurancePremiumCar
INPR : InsurancePremiumRefund
INSC : PaymentOfInsuranceClaim
INSM : Installment
INSU : InsurancePremium
INTC : IntraCompanyPayment
INTE : Interest
INTP : IntraPartyPayment
INTX : IncomeTax
INVS : InvestmentAndSecurities
IPAY : InstantPayments
IPCA : InstantPaymentsCancellation
IPDO : InstantPaymentsForDonations
IPEA : InstantPaymentsInECommerceWithoutAddressData
IPEC : InstantPaymentsInECommerceWithAddressData
IPEW : InstantPaymentsInECommerce
IPPS : InstantPaymentsAtPOS
IPRT : InstantPaymentsReturn
IPU2 : InstantPaymentsUnattendedVendingMachineWith2FA
IPUW : InstantPaymentsUnattendedVendingMachineWithout2FA
IVPT : InvoicePayment
LBIN : LendingBuyInNetting
LBRI : LaborInsurance
LCOL : LendingCashCollateralFreeMovement
LFEE : LendingFees
LICF : LicenseFee
LIFI : LifeInsurance
LIMA : LiquidityManagement
LMEQ : LendingEquityMarkedToMarketCashCollateral
LMFI : LendingFixedIncomeMarkedToMarketCashCollateral
LMRK : LendingUnspecifiedTypeOfMarkedToMarketCashCollateral
LOAN : Loan
LOAR : LoanRepayment
LOTT : LotteryPayment
LREB : LendingRebatePayments
LREV : LendingRevenuePayments
LSFL : LendingClaimPayment
LTCF : LongTermCareFacility
MAFC : MedicalAidFundContribution
MARF : MedicalAidRefund
MARG : DailyMarginOnListedDerivatives
MBSB : MBSBrokerOwnedCashCollateral
MBSC : MBSClientOwnedCashCollateral
MCDM : MultiCurrenyChequeDomestic
MCFG : MultiCurrenyChequeForeign
MDCS : MedicalServices
MGCC : FuturesInitialMargin
MGSC : FuturesInitialMarginClientOwnedSegregatedCashCollateral
MOMA : MoneyMarket
MP2B : MobileP2BPayment
MP2P : MobileP2PPayment
MSVC : MultipleServiceTypes
MTUP : MobileTopUp
NETT : Netting
NITX : NetIncomeTax
NOWS : NotOtherwiseSpecified
NWCH : NetworkCharge
NWCM : NetworkCommunication
OCCC : ClientOwnedOCCPledgedCollateral
OCDM : OrderChequeDomestic
OCFG : OrderChequeForeign
OFEE : OpeningFee
OPBC : OTCOptionBrokerOwnedCashCollateral
OPCC : OTCOptionClientOwnedCashCollateral
OPSB : OTCOptionBrokerOwnedSegregatedCashCollateral
OPSC : OTCOptionClientOwnedCashSegregatedCashCollateral
OPTN : FXOption
OTCD : OTCDerivatives
OTHR : Other
OTLC : OtherTelecomRelatedBill
PADD : PreauthorizedDebit
PAYR : Payroll
PCOM : PropertyCompletionPayment
PDEP : PropertyDeposit
PEFC : PensionFundContribution
PENO : PaymentBasedOnEnforcementOrder
PENS : PensionPayment
PHON : TelephoneBill
PLDS : PropertyLoanDisbursement
PLRF : PropertyLoanRefinancing
POPE : PointOfPurchaseEntry
PPTI : PropertyInsurance
PRCP : PricePayment
PRME : PreciousMetal
PTSP : PaymentTerms
PTXP : PropertyTax
RAPI : RapidPaymentInstruction
RCKE : RepresentedCheckEntry
RCPT : ReceiptPayment
RDTX : RoadTax
REBT : Rebate
REFU : Refund
RELG : RentalLeaseGeneral
RENT : Rent
REOD : AccountOverdraftRepayment
REPO : RepurchaseAgreement
RETL : RetailPayment
RHBS : RehabilitationSupport
RIMB : ReimbursementOfAPreviousErroneousTransaction
RINP : RecurringInstallmentPayment
RLWY : Railway
ROYA : Royalties
RPBC : BilateralRepoBrokerOwnedCollateral
RPCC : RepoClientOwnedCollateral
RPNT : BilateralRepoInternetNetting
RPSB : BilateralRepoBrokerOwnedSegregatedCashCollateral
RPSC : BilateralRepoClientOwnedSegregatedCashCollateral
RRBN : RoundRobin
RRCT : ReimbursementReceivedCreditTransfer
RRTP : RelatedRequestToPay
RVPM : ReceiveAgainstPayment
RVPO : ReverseRepurchaseAgreement
SALA : SalaryPayment
SASW : ATM
SAVG : Savings
SBSC : SecuritiesBuySellSellBuyBack
SCIE : SingleCurrencyIRSExotic
SCIR : SingleCurrencyIRS
SCRP : SecuritiesCrossProducts
SCVE : PurchaseSaleOfServices
SECU : Securities
SEPI : SecuritiesPurchaseInhouse
SERV : ServiceCharges
SHBC : BrokerOwnedCollateralShortSale
SHCC : ClientOwnedCollateralShortSale
SHSL : ShortSell
SLEB : SecuritiesLendingAndBorrowing
SLOA : SecuredLoan
SLPI : PaymentSlipInstruction
SPLT : SplitPayments
SPSP : SalaryPensionSumPayment
SSBE : SocialSecurityBenefit
STDY : Study
SUBS : Subscription
SUPP : SupplierPayment
SWBC : SwapBrokerOwnedCashCollateral
SWCC : SwapClientOwnedCashCollateral
SWFP : SwapContractFinalPayment
SWPP : SwapContractPartialPayment
SWPT : Swaption
SWRS : SwapContractResetPayment
SWSB : SwapsBrokerOwnedSegregatedCashCollateral
SWSC : SwapsClientOwnedSegregatedCashCollateral
SWUF : SwapContractUpfrontPayment
TAXR : TaxRefund
TAXS : TaxPayment
TBAN : TBAPairOffNetting
TBAS : ToBeAnnounced
TBBC : TBABrokerOwnedCashCollateral
TBCC : TBAClientOwnedCashCollateral
TBIL : TelecommunicationsBill
TCSC : TownCouncilServiceCharges
TELI : TelephoneInitiatedTransaction
TLRF : NonUSMutualFundTrailerFeePayment
TLRR : NonUSMutualFundTrailerFeeRebatePayment
TMPG : TMPGClaimPayment
TPRI : TriPartyRepoInterest
TPRP : TriPartyRepoNetting
TRAD : Commercial
TRCP : TreasuryCrossProduct
TREA : TreasuryPayment
TRFD : TrustFund
TRNC : TruncatedPaymentSlip
TRPT : RoadPricing
TRVC : TravellerCheque
UBIL : Utilities
UNIT : UnitTrustPurchase
VATX : ValueAddedTaxPayment
VIEW : VisionCare
WEBI : InternetInitiatedTransaction
WHLD : WithHolding
WTER : WaterBill

SDD purpose codes

The categoryPurposeCode(1) and purposeCode(2) used in the SDDTransaction.

SALA(1) (2)Salary Payment
TREA(1) (2)Treasury Payment
ADVA(2)Advance Payment
AGRT(2)Agricultural Transfer
ALMY(2)Alimony Payment
BECH(2)Child Benefit
BENE(2)Unemployment Disability Benefit
BONU(2)Bonus Payment
CASH(1) (2)Cash Management Transfer
CBFF(2)Capital Building
CHAR(2)Charity Payment
COLL(2)Collection Payment
CMDT(2)Commodity Transfer
COMC(2)Commercial Payment
COMM(2)Commission
COST(2)Costs
CPYR(2)Copyright
DIVI(1) (2)Dividend
FREX(2)Foreign Exchange
GDDS(2)Purchase Sale Of Goods
GOVT(1) (2)Gouvernment Payment
IHRP(2)Instalment Hire Purchase Agreement
INTC(1) (2)Intra Company Payment
INSU(2)Insurance Premium
INTE(1) (2)Interest
LIFC(2)Licence Fee
LOAN(1) (2)Loan
LOAR(2)Loan Repayment
NETT(2)Netting
PAYR(2)Payment Roll
PENS(1) (2)Pension
REFU (2)Refund
RENT(2)Rent
ROYA(2)Royalties
SCVE(2)Purchase Sale Of Services
SECU(1) (2)Securities
SSBE(1) (2)Social Security Benefit
SUBS(2)Subscription
TAXS(1) (2)Tax Payment
COMT(2)Consumer Third Party Consolidated Payment
DBTC(2)Debit Collection Payment
SUPP(1) (2)Supplier Payment
HEDG(1) (2)Hedging
MSVC(2)Multiple Service Types
NOWS(2)Not Otherwise Specified
CARD(2)Card Payment
CDBL(2)Credit Card Bill
FERB(2)Ferry
AIRB(2)Air
BUSB(2)Bus
RLWY(2)Railway
CVCF(2)Convalescent Care Facility
DNTS(2)Dental Services
ANTS(2)Anesthesia Services
HLTC(2)Home Health Care
HSPC(2)Hospital Care
ICRF(2)Intermediate Care Facility
LTCF(2)Long Term Care Facility
MDCS(2)Medical Services
VIEW(2)Vision Care
DMEQ(2)Durable Medicale Equipment
CBTV(2)Cable TV Bill
ELEC(2)Electricity Bill
GASB(2)Gas Bill
PHON(2)Telephone Bill
OTLC(2)Other Telecom Related Bill
WTER(2)Water Bill
STDY(2)Study
PRCP(2)Price Payment
INSM(2)Installment
RINP(2)Recurring Installment Payment
OFEE(2)Opening Fee
CFEE(2)Cancellation Fee
GOVI(2)Government Insurance
INPC(2)Insurance Premium Car
LBRI(2)Labor Insurance
LIFI(2)Life Insurance
PPTI(2)Property Insurance
HLTI(2)Health Insurance
CLPR(2)Car Loan Principal Repayment
ESTX(2)Estate Tax
HLRP(2)Housing Loan Repayment
CSLP(2)Company Social Loan Payment To Bank
HSTX(2)Housing Tax
INTX(2)Income Tax
NITX(2)Net Income Tax
NWCH(2)Network Charge
NWCM(2)Network Communication
BEXP(2)Business Expenses
TRFD(2)Trust Fund
RCPT(2)Receipt
PTSP(2)Payment Terms
OTHR(2)Other
WHLD(1)(2)With Holding
CORT(1)Trade Settlement Payment
VATX(1)Value Added Tax Payment
TRAD(1)Trade

Error codes

ErrorDetails ATTRIBUTES
errorCodeCode indicating the type of problem identified.
errorComponentCode indicating the 3-D Secure component that identified the error.
errorDescriptionText describing the problem identified.
errorDetailAdditional detail regarding the problem identified.
ErrorCode possible values
101MESSAGE_RECEIVED_INVALID
102MESSAGE_VERSION_NUMBER_NOT_SUPPORTED
103SENT_MESSAGES_LIMIT_EXCEEDED
201REQUIRED_ELEMENT_MISSING
202CRITICAL_MESSAGE_EXTENSION_NOT_RECOGNIZED
203FORMAT_ON_ONE_OR_MORE_ELEMENTS_INVALID_ACCORDING_SPECS
204DUPLICATE_DATA_ELEMENT
301TRANSACTION_ID_NOT_RECOGNIZED
302DATA_DECRYPTION_FAILURE
303ACCESS_DENIED_INVALID_ENDPOINT
304ISO_CODE_NOT_VALID
305TRANSACTION_DATA_NOT_VALID
306MCC_NOT_VALID_FOR_PAYMENT_SYSTEM
307SERIAL_NUMBER_NOT_VALID
402TRANSACTION_TIMED_OUT
403TRANSIENT_SYSTEM_FAILURE
404PERMANENT_SYSTEM_FAILURE
405SYSTEM_CONNECTION_FAILURE
911DATA_FIELDS_RELEVANCE_CHECK_FAILURE
912DUPLICATED_TRANSACTION_ID
ErrorComponent possible values
« C »THREE_DS_SDK
« S »THREE_DS_SERVER
« D »DIRECTORY_SERVER
« A »ACCESS_CONTROL_SERVER

Test values

Test IBAN values

Find below the list of HTTP return codes:

DE75512108001245126199SOGEDEFFXXX
FR7630004000031234567890143BNPAFRPPXXX
AT483200000012345864RLNWATWWXXX
BE71096123456769GKCCBEBB
AL35202111090000000001234567SGSBALTX
EE471000001020145685EEUHEE2X
ES7921000813610123456789CAIXESBBXXX

Test cards Values

This page provides a list of test card PANs you can use to validate your CentralPay integration. Each PAN below triggers a predictable scenario (bank refusal, 3DS authentication outcome, or card attributes such as EEA / region / product type).

Note: 3DS outcome values (transStatus such as Y, C, D, I, N…) are described in the dedicated 3DS 2.2 BRW documentation.

Card details to use: for all test PANs on this page, the expiry date and CVC values are free. The only requirement is that the expiry date must be later than today’s date. The CVC must be 3 digits (for example: 123).

Legend: ✅ Success · ❌ Bank refusal · ⛔ 3DS refused · 🛡️ 3DS · 🔒 3DS Challenge · 🔁 3DS Decoupled · ℹ️ 3DS Info · 🧭 Attributes

Quick test cards (most common scenarios)

PANScenarioWhat you should observe
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)Authorization succeeds with a successful 3DS authentication.
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)Challenge flow expected (you must complete the challenge step to proceed).
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowDecoupled authentication scenario (handling depends on your 3DS implementation).
4556 1041 6038 2032⛔🛡️ 3DS authentication refused (transStatus = N)The API responds with HTTP 200, but the 3DS authentication is refused (transStatus = N) and the payment is declined.
4000 0000 0000 0077❌ Bank refusal – Insufficient funds (51)Authorization is refused with bank return code 51 (Insufficient funds).
4000 0000 0000 0085❌ Bank refusal – Do not honor (5)Authorization is refused with bank return code 5 (Do not honor / refused).

Bank refusal PANs: these PANs are refused at the bank authorization stage regardless of the authentication flow.

Visa Card numbers

1) Bank refusals (regardless of the authentication flow)

PANScenarioDescription
4000 0000 0000 0051❌ Card lost (41)This PAN simulates a bank refusal with return code 41 (Card lost), regardless of the authentication flow.
4000 0000 0000 0069❌ Fraud suspicion (59)This PAN simulates a bank refusal with return code 59 (Fraud suspicion), regardless of the authentication flow.
4000 0000 0000 0077❌ Insufficient funds (51)This PAN simulates a bank refusal with return code 51 (Insufficient funds), regardless of the authentication flow.
4000 0000 0000 0085❌ Do not honor / refused (5)This PAN simulates a bank refusal with return code 5 (Do not honor / refused), regardless of the authentication flow.

2) 3DS scenarios

These PANs are designed to reproduce specific 3DS outcomes (transStatus). If transStatus = C, a challenge flow is expected and must be completed. If transStatus = N, the 3DS authentication is refused and the payment is declined.

PANScenarioDescription
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
4024 0071 7987 2394🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
4234 6319 8242 8908ℹ️🛡️ 3DS information only (transStatus = I)This PAN simulates a 3DS authentication with transStatus = I (Information only), to validate how you handle an informational 3DS outcome.
4234 6319 8242 8916🔁🛡️ 3DS decoupled (transStatus = D) – application flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using an application flow.
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using a browser flow.
4556 1041 6038 2032⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

3) Card attributes simulation (EEA / region / productType / cardType)

These PANs are designed to simulate card metadata (EEA / region / productType / cardType). Use them to validate your business rules, reporting, segmentation, or routing logic based on card attributes.

PANAttributes returnedDescription
4032 0389 8296 2700🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=DEBITThis PAN simulates an EEA consumer debit card in Europe.
4032 0343 8883 4767🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=CREDITThis PAN simulates an EEA consumer credit card in Europe.
4020 0280 0191 2012🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates an EEA consumer card in Europe with cardType=UNKNOWN.
4032 0337 9569 2248🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
4032 0368 1354 0364🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=CREDITThis PAN simulates an EEA corporate credit card in Europe.
4032 0387 5662 0096🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates an EEA corporate card in Europe with cardType=UNKNOWN.
4032 0358 5604 7592🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=DEBITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and DEBIT.
4032 0302 9068 3219🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=CREDITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and CREDIT.
4032 0377 5134 3001🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates an EEA card in Europe with productType=UNKNOWN and cardType=UNKNOWN.
4032 0307 5488 6225🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in USA/CANADA.
4032 0310 2547 6341🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in USA/CANADA.
4032 0341 4311 3978🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates a non-EEA consumer card in USA/CANADA with cardType=UNKNOWN.
4032 0309 5816 7398🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in USA/CANADA.
4032 0375 4480 7536🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=CREDITThis PAN simulates a non-EEA corporate credit card in USA/CANADA.
4032 0366 9148 7225🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates a non-EEA corporate card in USA/CANADA with cardType=UNKNOWN.
4032 0325 8917 3860🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=DEBITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and DEBIT.
4032 0388 0897 9557🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=CREDITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and CREDIT.
4032 0374 2147 1240🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and cardType=UNKNOWN.

Mastercard Card numbers

1) 3DS scenarios

PANScenarioDescription
5333 2591 5564 3223✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
5306 8899 4283 3340🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
5187 4346 4359 3002🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
5328 7203 8458 2224⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

2) Card attributes simulation (EEA / region / productType / cardType)

PANAttributes returnedDescription
5517 4500 0000 0168🧭 EEA=false ; region=US ; productType=CONSUMER ; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in the US.
5223 8599 0000 0174🧭 EEA=false ; region=US ; productType=CORPORATE ; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in the US.
5325 0900 0000 0115🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5325 0900 0000 0008🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5486 7467 7300 0005🧭 EEA=false ; region=EUROPE ; productType=CONSUMER ; cardType=DEBIT; Country=RUSThis PAN simulates a non-EEA consumer debit card with Country=RUS.
5588 1000 0000 0007🧭 EEA=false ; region=CEMEA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in CEMEA.
5122 9400 0000 0009🧭 EEA=false ; region=LATIN_AMERICA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in LATIN_AMERICA.

Amex Card numbers

1) 3DS scenarios

PANScenarioDescription
3415 0209 8634 895✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
3486 3826 7931 507🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
3456 9539 9207 589⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

2) Card attributes simulation (EEA / region / productType)

PANAttributes returnedDescription
3415 0209 8634 895🧭 EEA=false ; region=EUROPE ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in Europe.
3486 3826 7931 507🧭 EEA=false ; region=EUROPE ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in Europe.
3718 4294 2351 004🧭 EEA=false ; region=EUROPE ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in Europe with productType=UNKNOWN.
3712 5311 3391 201🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in ASIA_PACIFIC.
3423 1631 7472 410🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in ASIA_PACIFIC.
3710 9829 7279 338🧭 EEA=false ; region=ASIA_PACIFIC ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in ASIA_PACIFIC with productType=UNKNOWN.

CB Card numbers

These PANs allow you to test how the card is classified under the CB scheme (CB vs co-badged CB_VISA / CB_MASTERCARD) in your integration and reporting.

PANScenarioDescription
4020 0235 6597 5380✅🛡️ 3DS success (transStatus = Y) – scheme: CBThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB scheme.
4020 0254 4041 8403✅🛡️ 3DS success (transStatus = Y) – scheme: CB_VISAThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB_VISA scheme.
5232 1035 2372 2651✅🛡️ 3DS success (transStatus = Y) – scheme: CB_MASTERCARDThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB_MASTERCARD scheme.

Troubleshooting (what to check)

If you don’t get the expected outcome, start by checking:

  • Bank refusals: verify the returned bank refusal code/message in your transaction response or webhook (e.g., 51, 41, 59, 5).
  • 3DS scenarios: verify the returned transStatus. If C, a challenge flow must be completed; if N, the 3DS authentication is refused and the payment is declined; if D, the expected handling depends on your decoupled implementation.
  • Card attributes: verify the returned card metadata (EEA / region / productType / cardType) in the payment method or transaction details.

Gestion des marchands

Articles

  • Informations générales
  • Demande d'enrôlementmerchant-enrollment
  • Compléter un enrôlementmerchant-enrollment
  • Validation d'un enrôlement
  • Compte de Monnaie Électronique limitécustomer / wallets
  • Déplafonner un compte de Monnaie Électroniquemerchant-enrollment
  • Retours, statuts et webhooks

Informations générales

Cette section explique le fonctionnement de la création de comptes CentralPay, qu’il s’agisse de comptes de paiement ou de comptes de monnaie électronique, ainsi que les méthodes disponibles pour initier un enrôlement utilisateur via nos outils (portail ou API), en fonction du modèle de partenariat.

1. Types de comptes

CentralPay permet l’ouverture de deux types de comptes réglementés :

Type de compteDescriptionExemples d’usage
Compte de paiementCompte de paiement au sens de l’article L314-1 du Code monétaire et financier.Encaissement par carte, virement ou SEPA.
Compte de monnaie électroniqueCompte prépayé en euros émis par CentralPay, selon les règles des Établissements de Monnaie Électronique.Wallets, marketplaces C2C, cashback, titres.

L’attribution du type de compte dépend du modèle économique du marchand et de son éventuelle gestion par un mandataire (DME ou Agent).

2. Fonctionnement global de l’enrôlement

L’ouverture d’un compte passe systématiquement par une procédure d’enrôlement incluant :

  1. La création d’une demande d’enrôlement : initiation d’un dossier contenant les premières informations (email, nom, prénom)
  2. La complétion de l’enrôlement : soumission par l’utilisateur des informations réglementaires et des justificatifs (KYC/KYB)
  3. La validation de l’enrôlement : analyse par CentralPay, pouvant aboutir à une ouverture de compte, une demande complémentaire ou un refus

3. Deux interfaces possibles

InterfaceDescriptionPublic concerné
Portail d’enrôlement CentralPayInterface hébergée par CentralPay, accessible via lien personnalisé.Tous types d’utilisateurs
API d’enrôlementInterface technique permettant à un mandataire d’initier ou compléter des enrôlements via API.Mandataires autorisés selon leur statut

4. Conformité et réglementation

Afin de respecter le cadre réglementaire applicable aux Prestataires de Services de Paiement, la répartition des rôles est strictement encadrée :

  • CentralPay initie seul la contractualisation avec l’utilisateur
  • Le partenaire technique ne peut pas inciter, conseiller ni initier une ouverture de compte
  • Le partenaire technique n’intervient pas dans la collecte de justificatifs
  • Seuls les partenaires enregistrés comme MOBSP, ou les mandataires Agent ou DME peuvent intervenir dans les étapes d’enrôlement élargies
Modèle partenairePeut initier une demande d’enrôlementPeut compléter un enrôlement (API)Peut transmettre des justificatifs KYC
Partenaire TechniqueOui*❌ Non❌ Non
Mandataire DMEOui, via API ou portail✅ Oui✅ Oui
Mandataire AgentOui, via API ou portail✅ Oui✅ Oui (KYC Niveau 1 ou plus si mandat)
ℹ️ Le partenaire technique peut créer une demande d'enrôlement contenant uniquement les données de contact (email, nom, prénom, raison sociale), sans envoyer lui-même de lien d'enrôlement. CentralPay reste seul décideur de la suite du processus.

Demande d'enrôlement

1. Méthodes de création d’une demande d’enrôlement

1.1. Depuis le portail Marchand CentralPay

Un utilisateur connecté au portail CentralPay peut initier une demande d’enrôlement depuis le menu : Plateforme > Enrôlements > Créer

Recette Portail Marchand – Onboarding
Production Portail Marchand – Onboarding

Il peut alors renseigner manuellement les champs décrits plus bas (dans le détail de l’appel API). Une fois la demande enregistrée, un lien de redirection vers le portail d’onboarding est généré automatiquement et peut être :

  • Envoyé automatiquement par e-mail via le Mailer CentralPay (sélectionner OUI dans le champ « Envoyer des emails à l’adresse ci-dessus »)
  • Ou copié manuellement pour un envoi par un autre canal (chat, SMS, etc.)

1.2. Depuis l’API : POST /merchant-enrollments

L’enrôlement peut aussi être initié automatiquement via l’API, en appelant : POST /merchant-enrollments

L’appel permet de générer un identifiant d’enrôlement (UUID) et d’initier un parcours d’onboarding complet, qui pourra être poursuivi :

  • Soit via le portail Marchand
  • Soit entièrement via les endpoints API (voir partie « Compléter un enrôlement par API »)
Si aucun lien direct (enrollment_url) n’est retourné par l'API, par défaut, la plateforme CentralPay envoie un e-mail à l'adresse définie dans profile[email][value].
Pour désactiver cet envoi : "sendClaimEmail": false

Si vous désactivez l'envoi, vous pouvez transmettre manuellement l'URL d’accès à l'interface onboarding en reconstituant :
- En RCT : https://test-onboarding.centralpay.net/token/profile/[UUID]
- En PROD : https://onboarding.centralpay.net/token/profile/[UUID]

Note : [UUID] est l’identifiant retourné dans la réponse à POST /merchant-enrollments.

2. Créer une demande d’enrôlement depuis l’API (Merchant Enrollment)

🇫🇷 Enrôlement simplifié via SIREN (France uniquement)
CentralPay permet de pré-remplir automatiquement certaines informations pour les sociétés françaises disposant d’un numéro SIREN :
1. Appeler l'endpoint : POST /api/legal-entity/siren
2. Fournir le champ : { "siren": "123456789" }
3. Si les informations sont valides, un UUID est retourné. Il doit être utilisé comme identityBadge dans la création d’enrôlement pour déclencher le parcours simplifié.

2.1. Champs requis

ChampTypeObligatoireDescription
profile[firstname][value]string (255)✅ OuiPrénom du titulaire. Validation : caractères alphabétiques et tirets (-). Depuis la version 1.15.0
profile[lastname][value]string (255)✅ OuiNom du titulaire. Validation : caractères alphabétiques et tirets (-). Depuis la version 1.15.0
profile[email][value]string (255)✅ OuiAdresse email de contact. Depuis la version 1.15.0
profile[phone][value]string✅ OuiNuméro de téléphone international. Depuis la version 1.15.0
languagestring✅ OuiLangue préférée du marchand. Note : utilisez GET /api/locale pour les valeurs disponibles.
accountTypeenum✅ OuiType de profil marchand à créer. Note : utilisez GET /api/merchant-enrollment/account-type.
activitySectorUUID (36)✅ OuiSecteur d’activité du marchand. Note : utilisez GET /api/nauth/enrollment-claim/activity-sector.
activityAgeUUID (36)✅ Oui, si type = LEGAL_ENTITY ou INDIVIDUAL_WITH_STATUSAncienneté de l’activité. Note : utilisez GET /api/nauth/enrollment-claim/activity-age.
feeScheduleUUID (36)✅ OuiGrille tarifaire à appliquer. Note : obtenez les identifiants via POST /api/merchant-enrollment/fee-schedule.
identityBadgeUUID✅ Oui, si enrôlement via SIRENIdentifiant SIREN (activant le parcours simplifié).
contractUUID✅ Oui, si accountType = STANDARDContrat à appliquer. Note : utilisez GET /api/merchant-enrollment/contract.

2.2. Champs avancés (optionnels)

Personnalisation du parcours

ChampValeur par défautDescription
workflowModeSEQUENTIALMode de déroulement du parcours (seul le mode SEQUENTIAL est désormais disponible).
Note : valeurs valides : SEQUENTIAL
type—Type juridique : INDIVIDUAL, INDIVIDUAL_WITH_STATUS, LEGAL_ENTITY.
Note : conditionne la structure du parcours.
subType—Sous-type recommandé selon type.
Note :
Pour INDIVIDUAL_WITH_STATUS : SOLE_TRADER, MERCHANT, ARTISAN
Pour LEGAL_ENTITY : ASSOCIATION, PUBLIC, COMMERCIAL, EIG, CIVIL
turnoverIsFixedfalseSi true, verrouille la déclaration de chiffre d’affaires.
Note : facultatif

Paramètres de communication

ChampValeur par défautDescription
sendClaimEmailtrueEnvoie l’e-mail d’enrôlement avec le lien portail.
allowedEmailCommunicationtrueSi false, désactive tous les envois d’e-mails pendant le parcours d’onboarding.
sendProfileCreationEmailfalseEnvoie un email à l’utilisateur une fois le profil complété.
sendAccountCreationEmailtrueEnvoie un email une fois le profil Marchand CentralPay activé.

Données personnelles

Tous les champs ci-dessous sont facultatifs mais permettent de pré-renseigner la constitution du profil utilisateur du futur titulaire du compte.

ChampTypeDescription
profile[nationality][country]string (3)Nationalité (format ISO 3166-1 alpha-3).
profile[birthday][value]dateDate de naissance.
Validation : ≥ 18 ans, ≤ 110 ans
profile[place_of_birth][value]stringLieu de naissance.
profile[country_of_birth][country]string (3)Pays de naissance (ISO 3166-1 alpha-3).
birthdayConfirmation[value]dateRequis uniquement si le marchand est affilié à un agent.
Format : YYYY-MM-DD

Adresse (optionnelle)

Ces champs peuvent être fournis pour pré-remplir l’adresse du titulaire.

ChampTypeDescription
profile[address][nameLine1]string(255)Ligne 1 de l’adresse.
Contraintes : ^[a-zA-Z0-9\\p{L} ´'\\-]{1,255}$
profile[address][locality]string(255)Ville.
profile[address][postalCode]string(20)Code postal.
profile[address][country]string(3)Pays (ISO 3166-1 alpha-3).

Autres options

ChampTypeDescription
contractUUID (36)Contrat à appliquer.
Obligatoire si accountType = STANDARD.
Note : GET /api/merchant-enrollment/contract
cguUUID (36)CGU à appliquer.
Note : POST /api/merchant-enrollment/cgu
Depuis version 1.18.0
customReferencestring (100)Référence personnalisée (usage interne).
payoutProfileUUID (36)Profil de versement à associer.
Note : POST /api/merchant-enrollment/payout-profile
administrativeContactstring (255)Contact administratif référent.
Depuis version 1.18.0
technicalContactstring (255)Contact technique.
Depuis version 1.18.0
financialContactstring (255)Contact financier.
Depuis version 1.18.0
addSecurityReferenceboolAffiche une référence de sécurité lors de la validation du contrat.
Uniquement valable pour : STANDARD, PARTNER, RESELLER.
Défaut : false
hookUUIDIdentifiant de webhook à notifier.
Note : voir onglet Full API reference pour obtenir les valeurs possibles.

Compléter un enrôlement

Une fois la demande d’enrôlement créée, le titulaire du futur compte peut finaliser son parcours de deux manières : via le portail CentralPay ou par intégration complète à l’API.

1. Option 1 – Compléter l’enrôlement via le portail CentralPay

Le lien d’accès à l’onboarding (généré ou reconstruit lors de la création d’enrôlement) permet au futur titulaire de compte de renseigner ses informations et d’uploader les documents demandés depuis l’interface CentralPay, de manière autonome.

  • Vous êtes notifié automatiquement à chaque étape de l’enrôlement ou uniquement à sa finalisation (selon votre paramétrage webhook)
  • Une fois le parcours complété par l’utilisateur, les données sont transmises aux équipes conformité de CentralPay pour validation
  • Dans certains cas, des documents complémentaires pourront être requis par les analystes CentralPay

2. Option 2 – Compléter l’enrôlement par API

Il est également possible de piloter l’ensemble du parcours d’enrôlement via API, étape par étape.

Le processus suit 4 grandes phases :

  1. Compléter le profil
  2. Déterminer le workflow
  3. Compléter le workflow
  4. Finaliser l’enrôlement

2.1. Compléter le profil

Statut du profil

Un profil commence toujours avec un statut workflow.status = « ON_GOING ». Pour être considéré comme complété, ce statut doit devenir ACCEPTED.

⚠️ En mode SEQUENTIAL, ce statut peut revenir à ON_GOING lors du déblocage de questions supplémentaires. Il convient de le recontrôler à chaque étape.

Obtenir la première activité à compléter

  • Récupérer l’activityUuid via : GET /api/nauth/merchant-enrollment/{enrollmentId}
  • Parcourir : profile.workflow.activities[0].uuid
  • Puis interroger : GET /api/nauth/profile/{activityUuid}/activity

Soumettre les données

Envoyer les données attendues via un formulaire : POST /api/nauth/profile/{activityUuid}/activity
Content-Type : multipart/form-data

Exemple de champs attendus (activité « Identity Informations ») :

ChampTypeContraintes
firstname[value]string255 caractères
lastname[value]string255 caractères
mail[value]stringEmail valide
phone[value]stringNuméro international (min. 10 caractères)
birthday[value]stringDate au format YYYY-MM-DD, entre 18 et 110 ans
place_of_birth[value]string—
country_of_birth[country]stringISO 3166-1 alpha-3

Autres types d’activité possibles :

  • Domiciliations : informations d’adresse
  • Pièce d’identité : type (IDENTITY_CARD, PASSPORT) + documents (2 fichiers pour carte, 1 pour passeport)

Répétez ce processus tant que le statut d’une activité reste « TODO ».

2.2. Déterminer le workflow

Cette étape débloque la suite du parcours (collecte de documents, justificatifs, etc.).

  • POST /api/merchant-enrollment/{enrollmentUuid}/activity/{uuid}

Payload attendu :

ChampTypeObligatoireNotes
typeEnum✅ OuiINDIVIDUAL, INDIVIDUAL_WITH_STATUS, LEGAL_ENTITY
bankAccountInEEACountrybool✅ Oui—
turnoverUUID (36)✅ OuiPOST /api/nauth/enrollment-claim/turnover
companyNamestring(255)Oui, si LEGAL_ENTITY—
activityAgeUUID (36)Oui, si LEGAL_ENTITY ou INDIVIDUAL_WITH_STATUSGET /api/nauth/enrollment-claim/activity-age
subTypeENUMRecommandéDépend du type (voir détails ci-dessous)
isCompanyboolOui, si LEGAL_ENTITY—

Si vous avez utilisé un identityBadge (enrôlement via SIREN), cette étape est automatiquement sautée : le workflow est déjà déterminé.

2.3. Compléter le workflow

Chaque étape du workflow suit la même logique que celle du profil.

Types de step possibles :

  • FORM : champs à renseigner via key[value]
  • API_CALL : traitement externe
  • VALIDATION : action manuelle par les équipes CentralPay
  • ENDED : étape finalisée
Exemple : pour le champ company_legal_status, il faut envoyer company_legal_status[value].

Les endpoints utilisés sont :

  • POST /api/merchant-enrollment/{merchantUuid}/activity/{uuid}
  • POST /api/merchant-enrollment/{uuid}/complete

Validation d'un enrôlement

Une fois toutes les étapes du profil et du workflow complétées (que ce soit via le portail d’onboarding CentralPay ou par API), l’enrôlement entre en phase de vérification par les équipes conformité de CentralPay.

1. Vérification par le service conformité

Les analystes procèdent à une analyse complète des informations et documents collectés au cours du parcours. Cette étape peut mener à l’une des décisions suivantes :

1.1 Validation de l’enrôlement

Si les éléments fournis sont complets, lisibles et conformes aux obligations réglementaires, l’enrôlement est validé. CentralPay procède alors automatiquement à la création :

  • Du profil Marchand CentralPay (Merchant)
  • Du compte de paiement (Wallet)
  • Du profil utilisateur légal du profil Marchand CentralPay (BO User)
ℹ️ Ces entités sont accessibles immédiatement depuis vos outils de supervision (portail ou API).

1.2. Demande de compléments

Si certaines pièces sont manquantes, floues, expirées ou incohérentes, une demande de documents complémentaires peut être émise par le service conformité.

Cette demande est :

  • Soit transmise par email directement au futur titulaire du compte
  • Soit affichée dans le portail d’onboarding CentralPay, si la demande le permet
ℹ️ L’utilisateur pourra compléter les pièces demandées pour relancer la vérification.

1.3. Refus de l’enrôlement

Dans certains cas (documents non valides, identité invalide, incohérences non résolues, risque trop élevé), l’ouverture du compte peut être refusée.

Aucune entité CentralPay (BO User, Wallet, Merchant) n’est alors créée.

2. Notifications via webhook

Quel que soit le scénario de sortie (validation, complément ou refus), vous êtes notifié en temps réel via les webhooks configurés.

Cela vous permet de :

  • Suivre les enrôlements au fil de l’eau
  • Adapter votre UX si l’enrôlement est refusé ou en attente
  • Déclencher des actions internes (création CRM, attribution, etc.)

Compte de Monnaie Électronique limité

CentralPay permet la création de comptes de monnaie électronique (Wallets) pour stocker et utiliser des valeurs numériques. Deux parcours complémentaires sont proposés :

  1. Création rapide d’un Wallet sans KYC (compte limité) : accessible immédiatement avec des plafonds réglementaires
  2. Déplafonnement du Wallet via enrôlement KYC (compte vérifié) : levée des limites après vérification des documents

Ce fonctionnement est adapté aux parcours progressifs : un utilisateur peut créer un compte limité pour un premier usage, puis être invité à compléter son profil pour accéder à l’ensemble des fonctionnalités.

1. Création d’un compte de Monnaie Électronique limité

CentralPay permet la création de comptes de monnaie électronique utilisables immédiatement, sans collecte de documents, dans un cadre réglementaire strict. Les comptes de monnaie électronique limités sont réservés aux individuels (personnes physiques). Les personnes morales ne peuvent pas disposer de ce type de compte.

1.1. Limites réglementaires

  • Solde maximal : 150 €
  • Encaissement glissant : 150 € sur 30 jours

Ce seuil s’appuie sur les dispositions de l’article R561-16 du Code monétaire et financier concernant les comptes de monnaie électronique non vérifiés.

ℹ️ Ce type de compte peut ensuite être déplafonné par enrôlement KYC (voir plus bas).

1.2. Étape 1 – Créer un Customer

Le Wallet doit être rattaché à un objet Customer représentant l’utilisateur final (voir Profils Clients)

1.3. Étape 2 – Créer un Wallet

  • POST /wallets

Champs obligatoires

ChampTypeDescriptionNote
customerIdUUIDIdentifiant du CustomerRequis sauf si merchantId est fourni
currencystring (3)Devise du Wallet (ex. "EUR")ISO 4217 – format 3 lettres

Champs optionnels

ChampTypeDescription
referencestringRéférence métier
activationDatedateDate d’activation
expirationDatedateDate d’expiration
additionalDataobjectDonnées personnalisées (JSON)

1.4. Étapes complémentaires – Gérer un Wallet limité

Une fois un Wallet créé, CentralPay vous permet de :

  • le modifier (ex. : ajouter une date d’expiration, une référence, un Merchant)
  • le consulter en détail
  • lister les Wallets existants pour un Customer ou Merchant

2. Modifier un Wallet

  • POST /wallets/{walletId}

Ce service permet de mettre à jour certains attributs du Wallet sans le recréer.

Champs obligatoires

ChampTypeDescriptionNote
walletIdUUIDIdentifiant du Wallet à mettre à jourRequis dans l’URL et/ou le corps de requête

Champs optionnels

ChampTypeDescriptionNote
referencestringRéférence personnalisée du Wallet—
expirationDatedateDate d’expiration du WalletYYYY-MM-DD
activationDatedateDate d’activation du WalletYYYY-MM-DD
additionalDataobjectDonnées métier structurées (clé/valeur JSON)—
merchantIdUUIDPour rattacher un Wallet à un Merchant spécifiqueFacultatif – à ne pas confondre avec customerId

3. Consulter un Wallet

  • GET /wallets/{walletId}

Ce service permet de récupérer les informations détaillées d’un Wallet existant.

Paramètres requis

ChampTypeDescriptionNote
walletIdUUID (36)Identifiant du WalletLe Wallet doit appartenir au Merchant connecté ou à l’un de ses sous-marchands

Description des champs

ChampTypeDescriptionNote
currencystringDevise du WalletISO 4217 (ex. EUR)
available[].amountintSolde disponible en centimesEx. : 10500 = 105,00 €
pending[].amountintSolde en attente (transactions en cours)—
referencestringRéférence du WalletFacultatif
additionalDataobjectDonnées personnaliséesJSON libre

4. Lister les Wallets d’un Customer

  • GET /wallets

Permet d’obtenir la liste des Wallets créés pour un même Customer.

Paramètres requis

ChampTypeDescription
customerIdUUIDIdentifiant du Customer
currencystringDevise (ex. "EUR")

Paramètres optionnels

ChampTypeDescriptionNote
afterstringNe retourner que les Wallets créés après cette dateFormat ISO 8601
beforestringNe retourner que les Wallets créés avant cette dateFormat ISO 8601
limitstringNombre d’éléments par pageDéfaut : 10
pagestringIndex de la pageDéfaut : 1

5. Schéma de création d’un compte de ME limité

Déplafonner un compte de Monnaie Électronique

Un Wallet peut être converti en compte vérifié (limites levées) via un enrôlement complet, déclenché par l’API.

1. Étape 1 – Créer un enrôlement

  • POST /merchant-enrollments

Vous devez inclure le walletId du Wallet limité existant.

Champs obligatoires

ChampTypeDescriptionNote
walletIdUUIDLien avec le Wallet ME à déplafonnerUUID valide
profile[firstname][value]string (255)PrénomAlpha + -
profile[lastname][value]string (255)NomAlpha + -
profile[email][value]string (255)Email de contact—
profile[phone][value]string (15)Téléphone international—
profile[birthday][value]date (YYYY-MM-DD)Date de naissanceEntre 18 et 110 ans
profile[place_of_birth][value]string (255)Lieu de naissance—
profile[country_of_birth][country]string (3)Pays de naissanceISO 3166-1 alpha-3
languagestring (3)"fr" ou "en"—
accountTypestring"BASIC"—
typestring"INDIVIDUAL"—
activitySectorUUID (36)Secteur d’activitéGET /api/nauth/enrollment-claim/activity-sector
feeScheduleUUID (36)Grille tarifairePOST /api/merchant-enrollment/fee-schedule
turnoverUUID (36)CA annuel attenduPOST /api/nauth/enrollment-claim/turnover
workflowDefinitionUUIDModèle de workflowfournie par CentralPay
profileWorkflowDefinitionUUIDModèle de profilfournie par CentralPay
workflowModestring"SEQUENTIAL"Requis
allowedEmailCommunicationbooleanConsentement à recevoir des emailstrue ou false

Champs facultatifs

ChampTypeDescription
sendClaimEmailbooleanEnvoi de l’e-mail d’enrôlement (défaut : true)
sendProfileCreationEmailbooleanEmail après profil complété
sendAccountCreationEmailbooleanEmail à l’ouverture du compte vérifié
customReferencestringRéférence interne
technicalContact, administrativeContact, financialContactstring(255)Contacts métiers
addSecurityReferencebooleanAffiche une référence sécurité (pour STANDARD, PARTNER, RESELLER)
hookUUIDHook technique
birthdayConfirmation[value]dateSi affilié à un agent

2. Étape 2 – Compléter un enrôlement KYC (via autocomplete)

Pour accélérer le processus d’enrôlement, vous pouvez compléter d’un seul coup toutes les données attendues en appelant :

  • POST /merchant-enrollment/{uuid}/autocomplete

Adresse de résidence

ChampTypeObligatoireDescriptionNote
address[nameLine1]string✅ OuiNuméro et nom de rue—
address[locality]string✅ OuiVille de résidence—
address[postalCode]string✅ OuiCode postal—
address[country]string✅ OuiPays de résidenceISO 3166-1 alpha-3

Document d’identité

ChampTypeObligatoireDescriptionNote
identityDocument[type]string✅ OuiType de documentIDENTITY_CARD, PASSPORT, RESIDENCE_PERMIT, VISA, IDENTITY_DOCUMENT_RECEIPT
identityDocument[documents][0]fichier✅ OuiRecto ou scan principalJPG, JPEG ou PNG
identityDocument[documents][1]fichier✅ Oui, si IDENTITY_CARDVerso ou page complémentaireJPG, JPEG ou PNG
identityDocument[issuingCountry]string✅ OuiPays émetteurISO 3166-1 alpha-3
identityDocument[expiryDate]string❌ NonDate d’expirationFormat YYYY-MM-DD
identityDocument[checkId]string❌ NonID de contrôle (Onfido)—
identityDocument[documentNumber]string❌ NonNuméro du document—
identityDocument[mrzLine1]string❌ NonLigne MRZ 1—
identityDocument[mrzLine2]string❌ NonLigne MRZ 2—

Cas particuliers

ChampObligatoireConditionDescription
identityDocument[proofOfIdentityDocument]✅ Ouisi type = IDENTITY_DOCUMENT_RECEIPTJustificatif visuel du récépissé
identityDocument[proofOfIdentityDocuments][*]✅ OuiidemPlusieurs fichiers si applicable
identityDocument[proofOfIdentityDocumentExpiryDate]✅ Ouisi fichier proofOfIdentityDocument fourniFormat YYYY-MM-DD

Données bancaires (facultatif mais recommandé)

ChampTypeObligatoireDescriptionNote
iban[value]string❌ NonIBAN à vérifierFormat IBAN valide
bic[value]string❌ NonCode BIC/SWIFT—
ibanDocument[document]fichier❌ NonJustificatif bancaire (RIB, relevé)JPG, JPEG ou PNG

Données KYC complémentaires (riskData)

Tous les champs suivants sont requis sauf mention contraire.

ChampTypeObligatoireDescriptionNote
riskData[isPep]bool✅ OuiPersonne politiquement exposée ?défaut : false
riskData[isInSanctionList]bool✅ OuiAppartient à une liste de sanctions ?défaut : false
riskData[residentAlpha3Code]string✅ OuiPays de résidenceISO 3166-1 alpha-3
riskData[isHighRiskResident]bool✅ OuiPays de résidence à risque ?—
riskData[nationalityAlpha3Code]string✅ OuiNationalitéISO 3166-1 alpha-3
riskData[isHighRiskNationality]bool✅ OuiNationalité à risque ?—
riskData[isHighRiskMCCActivitySector]bool✅ OuiSecteur MCC à risque ?—
riskData[MCCActivitySector]int✅ OuiCode MCC (NAF ou secteur)—
riskData[monthlyLimit]int✅ OuiLimite mensuelle déclarée (en centimes)Ex. 150000 = 1500,00 €
riskData[monthlyLimitCurrencyAlphabeticCode]string✅ OuiDevise (ex. EUR)ISO 4217
riskData[isCrossBorderPayment]bool❌ NonPaiements transfrontaliers ?Défaut : true
riskData[declaredMonthlyRevenue]int❌ NonRevenus déclarés (en centimes)—
riskData[verifiedMonthlyRevenue]int✅ Oui, si full KYCRevenus vérifiés—

Documents complémentaires (si requis)

ChampTypeObligatoireDescriptionNote
proofOfAddressDocument[documents][0]fichier✅ Oui, si profil à risqueJustificatif de domicileJPG, JPEG ou PNG
incomeDocument[document]fichier✅ Oui, si full KYC requisJustificatif de revenus (1 doc)JPG, JPEG ou PNG
incomeDocument[documents][*]fichier✅ Oui, si full KYC requisPlusieurs fichiers possiblesJPG, JPEG ou PNG

Autres documents (si nécessaires à la levée de limite)

ChampTypeDescriptionNotes
additionalDocuments[X]['type']stringType du document transmisEx. : UBO_DECLARATION, PROOF_OF_VAT_REGISTRATION, LICENSING_AGREEMENT, etc.
additionalDocuments[X]['documents'][X]fichierFichier transmisFormat : JPG, JPEG, PNG
ℹ️ La liste complète des types de document acceptés est documentée dans l'Open API.

Données libres (obligatoire même vide)

ChampTypeObligatoireDescription
metaDataJSON object✅ OuiMétadonnées libres, au format {"key": "value"} (peut être vide)

3. Étape 3 – Corriger un enrôlement rejeté (autoupdate)

Lorsque le service conformité refuse un ou plusieurs documents (ex. : carte d’identité floue, pièce expirée), vous pouvez soumettre uniquement les éléments refusés via une requête d’auto-mise à jour.

  • POST /merchant-enrollment/{uuid}/autoupdate

Correction de document d’identité

ChampTypeObligatoireDescriptionNote
identityDocument[type]string✅ OuiType de document à corrigerIDENTITY_CARD, PASSPORT, RESIDENCE_PERMIT, VISA, IDENTITY_DOCUMENT_RECEIPT
identityDocument[documents][0]fichier✅ OuiRecto du document (ou fichier unique)JPG, JPEG ou PNG
identityDocument[documents][1]fichier✅ Oui, si type = IDENTITY_CARDVerso de la CNIJPG, JPEG ou PNG
identityDocument[issuingCountry]string✅ Oui, si document transmisPays émetteurISO 3166-1 alpha-3

Document d’identité complémentaire (si requis)

ChampTypeObligatoireDescription
complementaryIdentityDocument[documents][0]fichier✅ Oui, si exigéScan ou photo supplémentaire
complementaryIdentityDocument[expiryDate]string✅ OuiDate d’expiration (YYYY-MM-DD)
complementaryIdentityDocument[documentNumber]string✅ OuiNuméro du document
complementaryIdentityDocument[mrzLine1]string✅ OuiMRZ ligne 1
complementaryIdentityDocument[mrzLine2]string✅ OuiMRZ ligne 2
complementaryIdentityDocument[issuingCountry]string✅ OuiPays émetteur (ISO alpha-3)

Documents de revenus

ChampTypeObligatoireDescription
incomeDocument[document]fichier✅ Oui, si requisFichier unique JPG/JPEG/PNG
incomeDocument[documents][*]fichier✅ Oui, si multiples attendusPlusieurs documents par index ([0], [1], etc.)

Compléments d’information personnelle

ChampTypeObligatoireDescription
profile[firstname][value]string❌ NonPrénom
profile[lastname][value]string❌ NonNom
profile[birthday][value]string❌ NonDate de naissance
profile[place_of_birth][value]string❌ NonLieu de naissance
profile[country_of_birth][country]string❌ NonPays de naissance (ISO 3166-1 alpha-3)

Correction d’adresse (si refusée)

ChampTypeObligatoireDescription
profile[address][nameLine1]string❌ NonAdresse – ligne 1
profile[address][postalCode]string❌ NonCode postal
profile[address][country]string❌ NonPays (ISO alpha-3)
profile[address][locality]string❌ NonVille

Mise à jour des données KYC (riskData)

Tous les champs suivants sont requis sauf mention contraire. Ils doivent être renvoyés à l’identique ou mis à jour si modifiés dans le cadre de la correction.

ChampTypeObligatoireDescriptionNote
riskData[isPep]boolean✅ OuiPEP ?défaut : false
riskData[isInSanctionList]boolean✅ OuiSur une liste de sanctions ?défaut : false
riskData[residentAlpha3Code]string✅ OuiPays de résidenceISO alpha-3
riskData[isHighRiskResident]boolean✅ OuiPays de résidence à risque ?—
riskData[nationalityAlpha3Code]string✅ OuiNationalitéISO alpha-3
riskData[isHighRiskNationality]boolean✅ OuiNationalité à risque ?—
riskData[isHighRiskMCCActivitySector]boolean✅ OuiSecteur à risque ?—
riskData[MCCActivitySector]int✅ OuiCode MCC métier—
riskData[monthlyLimit]int✅ OuiLimite mensuelle (en centimes)[0 ; 190000]
riskData[monthlyLimitCurrencyAlphabeticCode]string✅ OuiDevise (ex. EUR)ISO 4217
riskData[isCrossBorderPayment]boolean❌ NonPaiements transfrontaliersdéfaut : true
riskData[declaredMonthlyRevenue]int❌ NonRevenus déclarés—
riskData[verifiedMonthlyRevenue]int✅ Oui, si full KYCRevenus vérifiés (centimes)

Documents additionnels (optionnels ou exigés)

ChampTypeObligatoireDescription
additionalDocuments[X]['type']string✅ Oui, si documents attendusType du justificatif
additionalDocuments[X]['documents'][X]fichier✅ OuiFichiers associés (JPG, JPEG, PNG)

Autres champs

ChampTypeObligatoireDescription
fullKycboolean❌ NonPermet d’imposer un KYC complet ou simplifié (true / false)

4. Étape 4 – Suivre le statut d’un enrôlement

Une fois un enrôlement créé et complété, vous pouvez à tout moment interroger son statut pour :

  • Vérifier l’état d’avancement (ON_GOING, ACCEPTED, REFUSED)
  • Suivre les étapes en attente dans le workflow
  • Extraire les données de profil déjà soumises

Récupérer un enrôlement

GET /merchant-enrollment/{enrolmentId}

Paramètres requis

ChampTypeObligatoireDescriptionNote
enrolmentIdUUID (36)✅ OuiIdentifiant de l’enrôlement retourné lors de la création (POST /merchant-enrollments)Format UUID standard
ℹ️ L’enrôlement doit appartenir à l’espace autorisé par vos identifiants API (marchand ou sous-marchand).

Champs principaux de la réponse

ChampTypeDescription
uuidUUIDIdentifiant unique de l’enrôlement
workflow.statusstringStatut du processus (ON_GOING, ACCEPTED, REFUSED)
workflow_modestring"SEQUENTIAL" ou "CONTINUAL"
workflow.activities[]tableauListe des activités (étapes) encore à compléter
profile[...]objetDonnées de profil déjà soumises, avec leur statut
conformity_statusstringÉtat de conformité global (ON_GOING, REVIEW, APPROVED, etc.)
created_atdatetimeDate de création de l’enrôlement
activity_sector.namestringSecteur déclaré dans l’enrôlement

À surveiller

  • Tant qu’une activité a un state = TODO, l’enrôlement est incomplet
  • Lorsqu’aucune activité n’est en attente et que le workflow.status = ACCEPTED, l’utilisateur est validé
  • En cas de workflow.status = REFUSED, aucun Wallet vérifié ne sera généré

5. Schéma de validation KYC d’un compte de ME

Retours, statuts et webhooks

1. Codes de retour liés à la création de profil marchand

La création d’un profil marchand via l’API d’enrôlement déclenche un processus automatisé permettant à CentralPay de collecter et valider les informations nécessaires à l’ouverture du profil.

En cas d’échec, une réponse d’erreur HTTP est retournée immédiatement à l’appel API, précisant le champ en erreur et la nature du rejet (donnée manquante, incohérente ou invalide).

⚠️ Il n'existe pas de table de codes de retour centralisée pour ces erreurs, car elles sont liées aux validations dynamiques effectuées par champ. L'erreur retournée est toujours structurée dans le corps de réponse et permet de corriger précisément le point bloquant.

2. Statuts liés aux enrôlements

Consultez les Statuts Merchant Enrollment ➝

3. Webhooks liés aux enrôlements

Consultez les Webhooks d’Onboarding ➝

Merchant management

Articles

  • General information
  • Enrollment requestmerchant-enrollment
  • Complete an enrollmentmerchant-enrollment
  • Enrollment validation
  • Limited Electronic Money Accountcustomer / wallets
  • Remove the limit on an Electronic Money Accountmerchant-enrollment
  • Responses, articles of association, and webhooks

General information

This section explains how to create CentralPay accounts, whether payment accounts or e-money accounts, as well as the methods available for initiating user onboarding through our tools (portal or API), depending on the partnership model.

1. Types of accounts

CentralPay allows users to open two types of regulated accounts:

Account typeDescriptionSamples of use
Payment accountPayment account as defined in article L314-1 of the Monetary and Financial Code.Payment by credit card, bank transfer, or SEPA.
E-money accountA prepaid account in euros issued by CentralPay, in accordance with the regulations governing electronic money institutions.Wallets, marketplaces C2C, cashback, titles.

The assignment of an account type depends on the merchant’s business model and whether the account is managed by an agent (DME or Agent).

2. General enrollment process

Opening an account always involves a registration process that includes:

  1. Creating an enrollment request: starting a file containing basic information (email, last name, first name)
  2. Completion of the registration process: submission by the user of required information and supporting documents (KYC/KYB)
  3. Enrollment validation: review by CentralPay, which may result in account opening, a request for additional information, or a rejection

3. Two possible interfaces

InterfaceDescriptionTarget audience
CentralPay enrollment portalInterface hosted by CentralPay, accessible via a personalized link.All types of users
Enrollment APIA technical interface that allows an intermediary to initiate or complete enrollments via API.Authorized intermediary by status

4. Compliance and regulation

In order to comply with the regulatory framework applicable to Payment Service Providers (PSP), the division of roles is strictly regulated:

  • CentralPay is the only party that initiates the contract process with the user
  • The technical partner may not encourage, advise, or initiate the opening of an account
  • The technical partner does not participate in the collection of supporting documents
  • Only partners registered as MOBSPs, or Agent or EMD representatives, may participate in the expanded enrollment steps
Partner modelCan initiate an enrollment requestCan complete an enrollment (API)Can submit KYC documentation
Technical PartnerYes*❌ No❌ No
EMD IntermediaryYes, via API or portal✅ Yes✅ Yes
PSP IntermediaryYes, via API or portal✅ Yes✅ Yes (Level 1 KYC or higher if mandate)
ℹ️ The technical partner can create an enrollment request containing only contact information (email, last name, first name, company name), without sending an enrollment link themselves. CentralPay retains sole discretion over the rest of the process.

Enrollment request

1. Methods for creating an enrollment request

1.1. From the CentralPay Merchant Portal

A user logged into the CentralPay portal can initiate an enrollment request from the menu: Plateform > Enrollments > Create

Recette Merchent Portal – Onboarding
Production Merchent Portal – Onboarding

They can then manually fill in the fields described below (in the API call details). Once the request is saved, a redirect link to the onboarding portal is automatically generated and can be:

  • Sent automatically via email through the CentralPay Mailer (select “YES” in the “Send emails to the address above” field)
  • Or copied manually to be sent via another channel (chat, text message, etc.)

1.2. From the API: POST /merchant-enrollments

Enrollment can also be initiated automatically via the API by calling: POST /merchant-enrollments

This call generates an enrollment ID (UUID) and initiates a complete onboarding process, which can be continued:

  • Either via the Merchant Portal
  • Either entirely via API endpoints (see the “Complete an Enrollment via API” section)
If no direct link (enrollment_url) is returned by the API, by default, the CentralPay platform sends an email to the address specified in profile[email][value].
To disable this email: "sendClaimEmail": false

If you disable this email, you can manually provide the URL to access the onboarding interface by constructing it as follows:
- In Sandbox: https://test-onboarding.centralpay.net/token/profile/[UUID]
- En LIVE: https://onboarding.centralpay.net/token/profile/[UUID]

Note: [UUID] is the identifier returned in the response to POST /merchant-enrollments.

2. Create an enrollment request via the API (Merchant Enrollment)

🇫🇷 Simplified enrollment via SIREN (France only)
CentralPay automatically pre-fills certain information for French companies with a SIREN number:
1. Call the endpoint: POST /api/legal-entity/siren
2. Provide the following: { "siren": "123456789" }
3. If the information is valid, a UUID is returned. It must be used as identityBadge in the registration creation process to trigger the simplified workflow.

2.1. Required fields

FieldTypeRequiredDescription
profile[firstname][value]string (255)✅ YesAccount holder’s first name. Validation: alphabetic characters and hyphens (-). Since version 1.15.0
profile[lastname][value]string (255)✅ YesAccount holder’s last name. Validation: alphabetic characters and hyphens (-). Since version 1.15.0
profile[email][value]string (255)✅ YesContact email address. Since version 1.15.0
profile[phone][value]string✅ YesInternational phone number. Since version 1.15.0
languagestring✅ YesMerchant’s preferred language. Note: Use GET /api/locale for the available values.
accountTypeenum✅ YesType of merchant profile to create. Note: Use GET /api/merchant-enrollment/account-type.
activitySectorUUID (36)✅ YesMerchant’s industry sector. Note: Use GET /api/nauth/enrollment-claim/activity-sector.
activityAgeUUID (36)✅ Yes, if type = LEGAL_ENTITY ou INDIVIDUAL_WITH_STATUSLength of time in business. Note: Use GET /api/nauth/enrollment-claim/activity-age.
feeScheduleUUID (36)✅ YesPricing schedule to be applied. Note: Obtain the login credentials via POST /api/merchant-enrollment/fee-schedule.
identityBadgeUUID✅ Yes, if enrolled via SIRENSIREN ID (which activates the simplified process).
contractUUID✅ Yes, if accountType = STANDARDContract to be applied. Note: Use GET /api/merchant-enrollment/contract.

2.2. Advanced fields (optional)

Customizing the experience

FieldDefault valueDescription
workflowModeSEQUENTIALCourse mode (only mode SEQUENTIAL is now available).
Note: Valid values: SEQUENTIAL
type—Legal type: INDIVIDUAL, INDIVIDUAL_WITH_STATUS, LEGAL_ENTITY.
Note: Determines the structure of the process.
subType—Recommended subtype according to type.
Note:
For INDIVIDUAL_WITH_STATUS : SOLE_TRADER, MERCHANT, ARTISAN
For LEGAL_ENTITY : ASSOCIATION, PUBLIC, COMMERCIAL, EIG, CIVIL
turnoverIsFixedfalseIf true, locks the revenue report.
Note: optional

Communication settings

FieldDefault valueDescription
sendClaimEmailtrueSend the registration email with the portal link.
allowedEmailCommunicationtrueIf false, disable all email sends during the onboarding process.
sendProfileCreationEmailfalseSend an email to the user once the profile is completed.
sendAccountCreationEmailtrueSend an email once the CentralPay Merchant profile has been activated.

Personal data

All of the fields below are optional, but they allow you to pre-fill the user profile for the future account holder.

FieldTypeDescription
profile[nationality][country]string (3)Nationality (ISO 3166-1 alpha-3 format).
profile[birthday][value]dateDate of birth.
Validation: ≥ 18 years old, ≤ 110 years old
profile[place_of_birth][value]stringBirthplace.
profile[country_of_birth][country]string (3)Country of birth (ISO 3166-1 alpha-3).
birthdayConfirmation[value]dateRequired only if the merchant is affiliated with an agent.
Format: YYYY-MM-DD

Address (optional)

These fields can be filled in to pre-fill the account owner’s address.

FieldTypeDescription
profile[address][nameLine1]string(255)Line 1 of the address.
Constraints: ^[a-zA-Z0-9\\p{L} ´'\\-]{1,255}$
profile[address][locality]string(255)City.
profile[address][postalCode]string(20)Postal code.
profile[address][country]string(3)Country (ISO 3166-1 alpha-3).

Other options

FieldTypeDescription
contractUUID (36)Contract to be applied.
Required if accountType = STANDARD.
Note: GET /api/merchant-enrollment/contract
cguUUID (36)Terms of Service apply.
Note: POST /api/merchant-enrollment/cgu
Since version 1.18.0
customReferencestring (100)Custom reference (for internal use).
payoutProfileUUID (36)Payment profile to be linked.
Note: POST /api/merchant-enrollment/payout-profile
administrativeContactstring (255)Primary administrative reference.
Since version 1.18.0
technicalContactstring (255)Technical contact.
Since version 1.18.0
financialContactstring (255)Financial contact.
Since version 1.18.0
addSecurityReferenceboolDisplays a security reference when the contract is approved.
Valid only for: STANDARD, PARTNER, RESELLER.
Default: false
hookUUIDWebhook ID to be notified.
Note: See the “Full API Reference” tab for possible values.

Complete an enrollment

Once the enrollment request has been created, the future account owner can complete the process in one of two ways: via the CentralPay portal or via full API integration.

1. Option 1 – Complete the enrollment via the CentralPay Portal

The onboarding link (generated or recreated when the enrollment is created) allows the future account owner to enter their information and upload the required documents through the CentralPay interface on their own.

  • You will be notified automatically at each step of the enrollment process or only upon its completion (depending on your webhook settings)
  • Once the user has completed the process, the data is sent to CentralPay’s compliance teams for validation
  • In some cases, CentralPay analysts may request additional documents

2. Option 2 – Complete the enrollment via API

It is also possible to control the entire enrollment process via API, step by step.

The process consists of four main phases:

  1. Complete the profile
  2. Determine the workflow
  3. Complete the workflow
  4. Complete the enrollment

2.1. Complete the profile

Profile status

A profile always starts with the status workflow.status = “ON_GOING”. To be considered complete, this status must change to ACCEPTED.

⚠️ In SEQUENTIAL mode, this status may revert to ON_GOING when additional questions are unlocked. It should be checked again at each step. 

Get the first activity to complete

  • Retrieve activityUuid via : GET /api/nauth/merchant-enrollment/{enrollmentId}
  • Browse: profile.workflow.activities[0].uuid
  • Then ask: GET /api/nauth/profile/{activityUuid}/activity

Submit the data

Send the expected data via a form: POST /api/nauth/profile/{activityUuid}/activity
Content-Type : multipart/form-data

Example of expected fields (the “Identity Information” activity):

FieldTypeConstraints
firstname[value]string255 characters
lastname[value]string255 characters
mail[value]stringValid email address
phone[value]stringInternational number (at least 10 characters)
birthday[value]stringDate in the format YYYY-MM-DD, between 18 and 110 years old
place_of_birth[value]string—
country_of_birth[country]stringISO 3166-1 alpha-3

Autres types d’activité possibles :

  • Registered addresses: address information
  • Identity document: type (IDENTITY_CARD, PASSPORT) + documents (2 files for an ID card, 1 for a passport)

Repeat this process as long as an activity’s status remains “TODO.”

2.2. Determine the workflow

This step unlocks the next part of the process (collecting documents, supporting evidence, etc.).

  • POST /api/merchant-enrollment/{enrollmentUuid}/activity/{uuid}

Expected payload:

FieldTypeRequiredNotes
typeEnum✅ YesINDIVIDUAL, INDIVIDUAL_WITH_STATUS, LEGAL_ENTITY
bankAccountInEEACountrybool✅ Yes—
turnoverUUID (36)✅ YesPOST /api/nauth/enrollment-claim/turnover
companyNamestring(255)Yes, if LEGAL_ENTITY—
activityAgeUUID (36)Yes, if LEGAL_ENTITY or INDIVIDUAL_WITH_STATUSGET /api/nauth/enrollment-claim/activity-age
subTypeENUMRecommendedDepends on type (see details below)
isCompanyboolYes, if LEGAL_ENTITY—

If you used a identityBadge (enrollment via SIREN), this step is automatically skipped: the workflow has already been determined.

2.3. Complete the workflow

Each step in the workflow follows the same logic as the profile.

Possible types of step:

  • FORM : fields to be filled in via key[value]
  • API_CALL : external treatment
  • VALIDATION : manual action by the CentralPay teams
  • ENDED : step completed
Example: for the field company_legal_status, you must send company_legal_status[value].

The endpoints used are:

  • POST /api/merchant-enrollment/{merchantUuid}/activity/{uuid}
  • POST /api/merchant-enrollment/{uuid}/complete

Enrollment validation

Once all profile and workflow steps have been completed (whether via the CentralPay onboarding portal or via API), the enrollment enters the verification phase, which is handled by CentralPay’s compliance teams.

1. Review by the compliance department

Analysts conduct a comprehensive analysis of the information and documents collected throughout the process. This step may lead to one of the following decisions:

1.1 Enrollment validation

If the information provided is complete, legible, and in compliance with regulatory requirements, the enrollment is approved. CentralPay then automatically creates:

  • Of the CentralPay Merchant Profile (Merchant)
  • Of the payment account (Wallet)
  • Of the legal user profile for the CentralPay Merchant Profile (BO User).
ℹ️ These entities are immediately accessible from your monitoring tools (portal or API).

1.2. Additional information requested

If certain documents are missing, unclear, expired, or inconsistent, the compliance department may request additional documentation.

This request is:

  • Either sent by email directly to the future account owner
  • Either displayed in the CentralPay onboarding portal, if the request allows it
ℹ️ The user can submit the requested documents to restart the verification process.

1.3. Refusal of enrollment

In certain cases (invalid documents, invalid identity, unresolved inconsistencies, or excessive risk), the account opening request may be denied.

No CentralPay entity (BO User, Wallet, Merchant) is created at that point.

2. Notifications via webhook

Regardless of the outcome (approval, request for additional information, or rejection), you will be notified in real time via the configured webhooks.

This allows you to:

  • Track enrollments in real time
  • Adjust your UX if enrollment is denied or pending
  • Trigger internal actions (CRM creation, assignment, etc.)

Limited Electronic Money Account

CentralPay allows users to create electronic money accounts (Wallets) to store and use digital assets. Two complementary options are available:

  1. Quickly create a wallet without KYC (limited account): available immediately with regulatory limits
  2. Removing the Wallet limit via KYC enrollment (verified account): limits are lifted after document verification.

This approach is well-suited to progressive onboarding: a user can create a limited account for their first use, and then be invited to complete their profile to access all features.

1. Creating a limited Electronic Money Account

CentralPay allows users to create electronic money accounts that can be used immediately, without the collection of documents, within a strict regulatory framework. Limited electronic money accounts are reserved for individuals (natural persons). Legal entities are not eligible for this type of account.

1.1. Regulatory limits

  • Maximum balance: €150
  • Rolling cash flow: €150 over 30 days

This threshold is based on the provisions of Article R561-16 of the Monetary and Financial Code concerning unaudited electronic money accounts.

ℹ️ This type of account can then have its limit removed through KYC enrollment (see below).

1.2. Step 1 – Create a Customer

The Wallet must be linked to an object Customer representing the final user (see Customer Profiles)

1.3. Step 2 – Create a Wallet

  • POST /wallets

Required fields

FieldTypeDescriptionNote
customerIdUUIDID of the CustomerRequired unless merchantId is provided
currencystring (3)Wallet currency (e.g., "EUR")ISO 4217 – 3-letter code

Optional fields

FieldTypeDescription
referencestringBusiness reference
activationDatedateActivation date
expirationDatedateExpiration date
additionalDataobjectCustom data (JSON)

1.4. Additional steps – Managing a limited wallet

Once you’ve created a Wallet, CentralPay allows you:

  • edit it (e.g., add an expiration date, a reference, or a merchant)
  • view it in detail
  • List the existing wallets for a Customer or Merchant

2. Edit a Wallet

  • POST /wallets/{walletId}

This service allows you to update certain attributes of the Wallet without recreating it.

Required fields

FieldTypeDescriptionNote
walletIdUUIDWallet ID to be updatedRequired in the URL and/or the request body

Optional fields

FieldTypeDescriptionNote
referencestringCustom Wallet reference—
expirationDatedateWallet expiration dateYYYY-MM-DD
activationDatedateActivation Wallet dateYYYY-MM-DD
additionalDataobjectStructured business data (JSON key/value pairs)—
merchantIdUUIDTo link a Wallet to a specific MerchantOptional – not to be confused with customerId

3. View a Wallet

  • GET /wallets/{walletId}

This service allows you to retrieve detailed information about an existing wallet.

Required settings

FieldTypeDescriptionNote
walletIdUUID (36)Wallet IDThe Wallet must belong to the connected Merchant or one of its sub-merchants

Field descriptions

FieldTypeDescriptionNote
currencystringWallet currencyISO 4217 (e.g., EUR)
available[].amountintAvailable balance in centsEx.: 10500 = €105.00
pending[].amountintPending balance (transactions in progress)—
referencestringWallet referenceOptional
additionalDataobjectCustom dataOpen JSON

4. List a Customer’s Wallets

  • GET /wallets

Allow to retrieve the list of wallets created for a given Customer.

Required settings

FieldTypeDescription
customerIdUUIDCustomer ID
currencystringCurrency (e.g., "EUR")

Optional settings

FieldTypeDescriptionNote
afterstringPlease return only those wallets created after this dateISO 8601 format
beforestringPlease return only those Wallets created before that dateISO 8601 format
limitstringNumber of items per pageDefault: 10
pagestringPage indexDefault: 1

5. Steps for creating a limited EM account

Remove the limit on an Electronic Money Account

A Wallet can be converted into a verified account (with limits removed) via a full onboarding process triggered by the API.

1. Step 1 – Create an enrollment

  • POST /merchant-enrollments

You must include the walletId from the existing limited wallet.

Required fields

FieldTypeDescriptionNote
walletIdUUIDLink to the EM Wallet to remove the limitValid UUID
profile[firstname][value]string (255)First nameAlpha + -
profile[lastname][value]string (255)NameAlpha + -
profile[email][value]string (255)Contact email—
profile[phone][value]string (15)International phone—
profile[birthday][value]date (YYYY-MM-DD)Date of birthBetween 18 and 110 years old
profile[place_of_birth][value]string (255)Birthplace—
profile[country_of_birth][country]string (3)Country of birthISO 3166-1 alpha-3
languagestring (3)"fr" or "en"—
accountTypestring"BASIC"—
typestring"INDIVIDUAL"—
activitySectorUUID (36)Activity sectorGET /api/nauth/enrollment-claim/activity-sector
feeScheduleUUID (36)Price gridPOST /api/merchant-enrollment/fee-schedule
turnoverUUID (36)Expected annual revenuePOST /api/nauth/enrollment-claim/turnover
workflowDefinitionUUIDWorkflow templateprovided by CentralPay
profileWorkflowDefinitionUUIDProfile templateprovided by CentralPay
workflowModestring"SEQUENTIAL"Required
allowedEmailCommunicationbooleanConsentement à recevoir des emailstrue or false

Optional fields

FieldTypeDescription
sendClaimEmailbooleanSending the enrollment email (default: true)
sendProfileCreationEmailbooleanEmail after profile completion
sendAccountCreationEmailbooleanEmail upon opening a verified account
customReferencestringInternal reference
technicalContact, administrativeContact, financialContactstring(255)Business contacts
addSecurityReferencebooleanDisplays a safety reference (for STANDARD, PARTNER, RESELLER)
hookUUIDTechnical hook
birthdayConfirmation[value]dateIf affiliated with an agent

2. Step 2 – Complete a KYC enrollment (via autocomplete)

To speed up the enrollment process, you can fill out all the required information at once by calling:

  • POST /merchant-enrollment/{uuid}/autocomplete

Residential address

FieldTypeRequiredDescriptionNote
address[nameLine1]string✅ YesStreet number and name—
address[locality]string✅ YesCity of residence—
address[postalCode]string✅ YesPostal code—
address[country]string✅ YesCountry of residenceISO 3166-1 alpha-3

Identification document

FieldTypeRequiredDescriptionNote
identityDocument[type]string✅ YesDocument typeIDENTITY_CARD, PASSPORT, RESIDENCE_PERMIT, VISA, IDENTITY_DOCUMENT_RECEIPT
identityDocument[documents][0]file✅ YesFront side or main scanJPG, JPEG or PNG
identityDocument[documents][1]file✅ Yes, if IDENTITY_CARDBack side or additional pageJPG, JPEG or PNG
identityDocument[issuingCountry]string✅ YesIssuing countryISO 3166-1 alpha-3
identityDocument[expiryDate]string❌ NoExpiration dateFormat YYYY-MM-DD
identityDocument[checkId]string❌ NoControl ID (Onfido)—
identityDocument[documentNumber]string❌ NoDocument number—
identityDocument[mrzLine1]string❌ NoMRZ 1 Line—
identityDocument[mrzLine2]string❌ NoMRZ 2 Line—

Special cases

FieldRequiredConditionDescription
identityDocument[proofOfIdentityDocument]✅ Yesif type = IDENTITY_DOCUMENT_RECEIPTVisual proof of receipt
identityDocument[proofOfIdentityDocuments][*]✅ YeslikewiseMultiple files, if applicable
identityDocument[proofOfIdentityDocumentExpiryDate]✅ Yesif file proofOfIdentityDocument providedFormat YYYY-MM-DD

Banking information (optional but recommended)

FieldTypeRequiredDescriptionNote
iban[value]string❌ NoIBAN to be verifiedValid IBAN format
bic[value]string❌ NoBIC/SWIFT code—
ibanDocument[document]file❌ NoProof of bank information (bank account details, statement)JPG, JPEG or PNG

Additional KYC data (riskData)

All of the following fields are required unless otherwise noted.

FieldTypeRequiredDescriptionNote
riskData[isPep]bool✅ YesPolitically exposed person?default: false
riskData[isInSanctionList]bool✅ YesIs it on a sanctions list?default: false
riskData[residentAlpha3Code]string✅ YesCountry of residenceISO 3166-1 alpha-3
riskData[isHighRiskResident]bool✅ YesCountry of residence at risk?—
riskData[nationalityAlpha3Code]string✅ YesNationalityISO 3166-1 alpha-3
riskData[isHighRiskNationality]bool✅ YesNationality at risk?—
riskData[isHighRiskMCCActivitySector]bool✅ YesIs the MCC sector at risk?—
riskData[MCCActivitySector]int✅ YesMCC code (NAF or sector)—
riskData[monthlyLimit]int✅ YesReported monthly limit (in centimes)E.g., 150000 = €1,500.00
riskData[monthlyLimitCurrencyAlphabeticCode]string✅ YesCurrency (e.g., EUR)ISO 4217
riskData[isCrossBorderPayment]bool❌ NoCross-border payments?Default: true
riskData[declaredMonthlyRevenue]int❌ NoReported income (in centimes)—
riskData[verifiedMonthlyRevenue]int✅ Yes, if full KYCVerified incomes—

Additional documents (if required)

FieldTypeRequiredDescriptionNote
proofOfAddressDocument[documents][0]file✅ Yes, if the profile is at riskProof of addressJPG, JPEG or PNG
incomeDocument[document]file✅ Yes, if full KYC is requiredProof of income (1 document)JPG, JPEG or PNG
incomeDocument[documents][*]file✅ Yes, if full KYC is requiredMultiple files allowedJPG, JPEG or PNG

Other documents (if necessary to lift the limit)

FieldTypeDescriptionNotes
additionalDocuments[X]['type']stringType of document submittedEx: UBO_DECLARATION, PROOF_OF_VAT_REGISTRATION, LICENSING_AGREEMENT, etc.
additionalDocuments[X]['documents'][X]fileFiles submittedFile format: JPG, JPEG, PNG
ℹ️ The complete list of accepted document types is documented in the Open API.

Open data (required, even if empty)

FieldTypeRequiredDescription
metaDataJSON object✅ YesOpen metadata, in {"key": "value"} format (may be empty)

3. Step 3 – Correcting a failed enrollment (autoupdate)

If the compliance department rejects one or more documents (e.g., a blurry ID card, an expired document), you can submit only the rejected items via a self-update request.

  • POST /merchant-enrollment/{uuid}/autoupdate

Correction of an identification document

FieldTypeRequiredDescriptionNote
identityDocument[type]string✅ YesType of document to be correctedIDENTITY_CARD, PASSPORT, RESIDENCE_PERMIT, VISA, IDENTITY_DOCUMENT_RECEIPT
identityDocument[documents][0]file✅ YesFront side of the document (or single file)JPG, JPEG or PNG
identityDocument[documents][1]file✅ Yes, if type = IDENTITY_CARDBack side of the NICJPG, JPEG or PNG
identityDocument[issuingCountry]string✅ Yes, if the document is submittedIssuing countryISO 3166-1 alpha-3

Additional identification document (if required)

FieldTypeRequiredDescription
complementaryIdentityDocument[documents][0]file✅ Yes, if requiredAdditional scan or photo
complementaryIdentityDocument[expiryDate]string✅ YesExpiration date (YYYY-MM-DD)
complementaryIdentityDocument[documentNumber]string✅ YesDocument number
complementaryIdentityDocument[mrzLine1]string✅ YesMRZ Line 1
complementaryIdentityDocument[mrzLine2]string✅ YesMRZ Line 2
complementaryIdentityDocument[issuingCountry]string✅ YesIssuing country (ISO alpha-3)

Income documents

FieldTypeRequiredDescription
incomeDocument[document]file✅ Yes, if requiredSingle JPG/JPEG/PNG file
incomeDocument[documents][*]file✅ Yes, if multiple are expectedMultiple documents by index ([0], [1], etc.)

Additional personal information

FieldTypeRequiredDescription
profile[firstname][value]string❌ NoFirst name
profile[lastname][value]string❌ NoName
profile[birthday][value]string❌ NoDate of birth
profile[place_of_birth][value]string❌ NoBirthplace
profile[country_of_birth][country]string❌ NoCountry of birth (ISO 3166-1 alpha-3)

Address correction (if rejected)

FieldTypeRequiredDescription
profile[address][nameLine1]string❌ NoAddress – line 1
profile[address][postalCode]string❌ NoPostal code
profile[address][country]string❌ NoCountry (ISO alpha-3)
profile[address][locality]string❌ NoCity

Updating KYC data (riskData)

All of the following fields are required unless otherwise noted. They must be returned exactly as they are or updated if changed as part of the correction.

FieldTypeRequiredDescriptionNote
riskData[isPep]boolean✅ YesPEP?default: false
riskData[isInSanctionList]boolean✅ YesOn a sanctions list?default: false
riskData[residentAlpha3Code]string✅ YesCountry of residenceISO alpha-3
riskData[isHighRiskResident]boolean✅ YesCountry of residence at risk?—
riskData[nationalityAlpha3Code]string✅ YesNationalityISO alpha-3
riskData[isHighRiskNationality]boolean✅ YesNationality at risk?—
riskData[isHighRiskMCCActivitySector]boolean✅ YesHigh-risk area?—
riskData[MCCActivitySector]int✅ YesMCC business code—
riskData[monthlyLimit]int✅ YesMonthly limit (in centimes)[0 ; 190000]
riskData[monthlyLimitCurrencyAlphabeticCode]string✅ YesCurrency (e.g., EUR)ISO 4217
riskData[isCrossBorderPayment]boolean❌ NoCross-border paymentsdefault: true
riskData[declaredMonthlyRevenue]int❌ NoReported incomes—
riskData[verifiedMonthlyRevenue]int✅ Yes, if full KYCVerified incomes (centimes)

Additional documents (optional or required)

FieldTypeRequiredDescription
additionalDocuments[X]['type']string✅ Yes, if the documents are expectedType of proof
additionalDocuments[X]['documents'][X]file✅ YesRelated files (JPG, JPEG, PNG)

Other fields

FieldTypeRequiredDescription
fullKycboolean❌ NoAllows you to require full or simplified KYC (true / false)

4. Step 4 – Track the status of an enrollment

Once an enrollment has been created and completed, you can check its status at any time to:

  • Check the status (ON_GOING, ACCEPTED, REFUSED)
  • Track pending steps in the workflow
  • Extract previously submitted profile data

Retrieve an enrollment

GET /merchant-enrollment/{enrolmentId}

Required settings

FieldTypeRequiredDescriptionNote
enrolmentIdUUID (36)✅ YesEnrollment ID returned upon creation (POST /merchant-enrollments)Standard UUID format
ℹ️ The enrollment must belong to the scope authorized by your API credentials (merchant or sub-merchant).

Main fields in the response

FieldTypeDescription
uuidUUIDUnique enrollment ID
workflow.statusstringProcess status (ON_GOING, ACCEPTED, REFUSED)
workflow_modestring"SEQUENTIAL" or "CONTINUAL"
workflow.activities[]tableList of activities (steps) still to be completed
profile[...]objectProfile data that has already been submitted, with their status
conformity_statusstringOverall compliance status (ON_GOING, REVIEW, APPROVED, etc.)
created_atdatetimeEnrollment creation date
activity_sector.namestringSector reported on the enrollment form

Keep an eye on

  • As long as an activity has a state = TODO, enrollment is incomplete
  • When there are no pending activities and workflow.status = ACCEPTED, the user is approved
  • In case of workflow.status = REFUSED, no verified wallet will be generated

5. KYC verification process for a ME account

Responses, articles of association, and webhooks

1. Return codes related to creating a merchant profile

Creating a merchant profile via the enrollment API triggers an automated process that allows CentralPay to collect and validate the information needed to open the profile.

If the request fails, an HTTP error response is immediately returned to the API call, specifying the field that caused the error and the nature of the rejection (missing, inconsistent, or invalid data).

⚠️ There is no centralized table of return codes for these errors, because they are linked to the dynamic validations performed on a per-field basis. The error returned is always structured within the response body and allows you to precisely correct the issue causing the blockage. 

2. Articles of association related to enrollments

View the Merchant Enrollment Terms and Conditions ➝

3. Webhooks related to enrollments

View the Onboarding Webhooks ➝

Bank Reconciliation external

See more about Bank Reconciliation

jQuery(document).ready( function($) { window.live_6ab3046f61bc6 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Reconciliation external.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f61bc6", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f61bc6.load(); });

Bank Reconciliation external

See more about Bank Reconciliation

jQuery(document).ready( function($) { window.live_6ab3046fa59db = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Reconciliation external.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa59db", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa59db.load(); });

Test IBAN values

Find below the list of HTTP return codes:

DE75512108001245126199SOGEDEFFXXX
FR7630004000031234567890143BNPAFRPPXXX
AT483200000012345864RLNWATWWXXX
BE71096123456769GKCCBEBB
AL35202111090000000001234567SGSBALTX
EE471000001020145685EEUHEE2X
ES7921000813610123456789CAIXESBBXXX

Test IBAN values

Find below the list of HTTP return codes:

DE75512108001245126199SOGEDEFFXXX
FR7630004000031234567890143BNPAFRPPXXX
AT483200000012345864RLNWATWWXXX
BE71096123456769GKCCBEBB
AL35202111090000000001234567SGSBALTX
EE471000001020145685EEUHEE2X
ES7921000813610123456789CAIXESBBXXX

Gestion des devises

Dans le cadre d’une activité internationale, vos clients peuvent disposer d’une carte adossée à un compte bancaire en devises non Euros.

Quelle que soit votre intégration, ces clients pourront vous régler en Euros grâce au système de conversion automatique des réseaux carte (Visa, Mastercard, American Express). Vos clients porteront l’ensemble des coûts de conversion des devises, et vous recevrez des Euros sur votre compte de paiement CentralPay.

Dans certains cas, CentralPay peut vous permettre d’encaisser des transactions par carte bancaire dans différentes devises : Euros (EUR), Dollars (USD), Francs Suisses (CHF) et Livres (GBP). Contactez CentralPay si la gestion de transaction en devises est un enjeu pour votre activité.

Notez que dans ce cas, les coûts d’acquisition en devises (hors EUROS) sont soumis à des frais complémentaires et seront déduits du montant de vos transactions.

ℹ️ Les versements sortants (payout) par virement SEPA ne peuvent être réalisés que sur les valeurs disponibles en EUROS. Les valeurs hors EUROS sont reversées par virement SWIFT ayant des frais supérieurs. Il est cependant possible de programmer les versements SWIFT afin qu'il ne soit réalisés qu'à partir d'un certain seuil, afin de mieux maitriser ses coûts de versement.

Currency management

In the context of international business, your customers may have a card linked to a bank account in a non-Euro currency.

Regardless of your integration, these customers will be able to pay you in Euros thanks to the automatic conversion system of the card networks (Visa, Mastercard, American Express). Your customers will bear all currency conversion costs, and you will receive Euros in your CentralPay payment account.

In certain cases, CentralPay can allow you to process credit card transactions in different currencies: Euros (EUR), Dollars (USD), Swiss Francs (CHF), and Pounds (GBP). Contact CentralPay if multi-currency transaction management is a requirement for your business.

Note that in this case, acquisition costs in foreign currencies (non-EURO) are subject to additional fees and will be deducted from your transaction amounts.

ℹ️ Outgoing payments (payout) via SEPA transfer can only be made from available balances in EUROS. Non-EURO balances are paid out via SWIFT transfer, which incurs higher fees. However, it is possible to schedule SWIFT payouts so that they are only executed once a certain threshold is reached, in order to better control transfer costs.  

Tarifs

Articles

  • Offres commerciales
  • Frais d'interchange et réseaux cartes
  • Forfaits d'accompagnement

Offres commerciales

CentralPay propose une tarification juste et transparente, adaptée à votre volume d’encaissement et à votre activité. Les tarifs sont dégressifs : plus votre volume augmente, plus les frais unitaires diminuent.

Les frais sont calculés sur la base des volumes de transactions réalisées le mois précédent.

Deux solutions, selon votre besoin

Smart Collection

Accédez gratuitement à la solution d’encaissement : pas d’abonnement, vous payez uniquement des frais à l’utilisation.

Easy Wallet

Accédez à des services complémentaires (notamment la gestion de comptes / wallets) avec un forfait mensuel en plus des frais à l’utilisation.

Aucun surcoût lié aux réseaux cartes

Toutes les offres CentralPay intègrent les frais d’interchange et de réseaux cartes facturés par les banques : vous n’avez donc aucun surcoût à prévoir.

👉 Pour obtenir une estimation selon votre volume et contacter notre équipe commerciale :

Voir les tarifs publics CentralPay

Frais d'interchange et réseaux cartes

L’interchange correspond à la valeur chargée par l’établissement émetteur d’une carte de paiement (la banque de votre client) à l’établissement acquéreur (la banque du marchand).

Les frais de réseaux carte (ou « Card Scheme Fees ») correspondent aux frais pris par les réseaux carte (Visa, Mastercard, CB) pour faire fonctionner le service.

Des termes ont été définis pour désigner l’assemblage de ces frais :

  • Interchange+
    Les frais d’Interchange + les frais des réseaux cartes (card scheme fees)
  • Interchange++
    Les frais d’Interchange + les frais des réseaux cartes (card scheme fees) + les frais de service de l’établissement (CentralPay)

Toutes les offres commerciales de CentralPay intègrent les frais d’Interchange+ ainsi que nos propres frais de service, vous n’avez donc aucun frais bancaire supplémentaire à prévoir pour réaliser vos transactions. Sauf mention contraire, des frais minimum de perception de 0,15 € sont prélevés sur l’IC++.

1. Frais d’interchange et réseaux carte (Vente à distance, E-commerce)

Cartes émises dans l’Espace Economique Européen (EEE)

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitEEECB0,200%0,025%0,225%
Cartes personnellesDébitEEEVISA0,200%0,231%0,431%
Cartes personnellesDébitEEEMastercard0,200%0,219%0,419%
Cartes personnellesCréditEEECB0,300%0,025%0,325%
Cartes personnellesCréditEEEVISA0,300%0,231%0,531%
Cartes personnellesCréditEEEMastercard0,300%0,219%0,519%
Cartes professionnellesToutesEEECB0,900%0,025%0,925%
Cartes professionnellesToutesEEEVISA1,450%0,070%1,520%
Cartes professionnellesToutesEEEMastercard1,450%0,171%1,621%
Cartes personnellesToutesEEEAMEX0,000%1,600%1,600%
Cartes professionnellesToutesEEEAMEX0,000%1,600%1,600%

Cartes internationales, émises hors de l’Espace Economique Européen

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitInternationaleVISA1,150%1,343%2,493%
Cartes personnellesDébitInternationaleMastercard1,150%1,343%2,493%
Cartes personnellesCréditInternationaleVISA1,500%1,499%2,999%
Cartes personnellesCréditInternationaleMastercard1,500%0,951%2,451%
Cartes professionnellesToutesInternationaleVISA2,000%0,700%2,700%
Cartes professionnellesToutesInternationaleMastercard2,000%0,951%2,951%
Cartes personnellesToutesInternationaleAMEX0,000%2,400%2,400%
Cartes professionnellesToutesInternationaleAMEX0,000%2,400%2,400%

2. Frais d’interchange et réseaux carte (paiement de proximité)

Cartes émises dans l’Espace Economique Européen (EEE)

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitEEECB0,200%0,025%0,225%
Cartes personnellesDébitEEEVISA0,200%0,231%0,431%
Cartes personnellesDébitEEEMastercard0,200%0,219%0,419%
Cartes personnellesCréditEEECB0,300%0,025%0,325%
Cartes personnellesCréditEEEVISA0,300%0,231%0,531%
Cartes personnellesCréditEEEMastercard0,300%0,219%0,519%
Cartes professionnellesToutesEEECB0,900%0,025%0,925%
Cartes professionnellesToutesEEEVISA1,450%0,070%1,520%
Cartes professionnellesToutesEEEMastercard1,450%0,171%1,621%
Cartes personnellesToutesEEEAMEX0,000%1,600%1,600%
Cartes professionnellesToutesEEEAMEX0,000%1,600%1,600%

Cartes internationales, émises hors de l’Espace Economique Européen

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitInternationaleVISA1,150%1,343%2,493%
Cartes personnellesDébitInternationaleMastercard1,150%1,343%2,493%
Cartes personnellesCréditInternationaleVISA1,500%1,499%2,999%
Cartes personnellesCréditInternationaleMastercard1,500%0,951%2,451%
Cartes professionnellesToutesInternationaleVISA2,000%0,700%2,700%
Cartes professionnellesToutesInternationaleMastercard2,000%0,951%2,951%
Cartes personnellesToutesInternationaleAMEX0,000%2,400%2,400%
Cartes professionnellesToutesInternationaleAMEX0,000%2,400%2,400%

Forfaits d'accompagnement

Les forfaits d’accompagnement permettent une mise en service rapide, guidée par nos équipes support intégration (SI) et service client (SC). Les heures d’accompagnement vous permettent de déléguer certains paramétrages de votre compte et de solliciter des échanges visio : avec le SI pour les sujets techniques, avec le SC pour ceux d’ordre administratif / fonctionnels.

1. Accompagnement à l’intégration Smart Collection

Accompagnement à l’intégration, au choixFrais (HT)
En autonomie
2 heures d’accompagnement équipe Service Client
Inclus
(offres Starter, Medium et Major Company)
Accompagnement standard
Analyse technique du projet par équipe Service Intégration
2 heures d’accompagnement équipe Service Intégration
2 heures d’accompagnement équipe Service Client
490 €
Accompagnement avancé
Analyse technique et suivi par Responsable Service Intégration dédié
3 heures d’accompagnement par Responsable Service Intégration dédié
3 heures d’accompagnement par Responsable Service Client dédié
1 990 €

2. Accompagnement à l’intégration Smart Collection et Easy Wallet

Accompagnement à l’intégration, au choixFrais (HT)
En autonomie
3 heures d’accompagnement équipe Service Client
Inclus
(offres Medium et Major Partner)
Accompagnement standard
Analyse technique du projet par équipe Service Intégration
5 heures d’accompagnement équipe Service Intégration
5 heures d’accompagnement équipe Service Client
990 €
Accompagnement avancé
Analyse technique et suivi par Responsable Service Intégration dédié
10 heures d’accompagnement par Responsable Service Intégration dédié
10 heures d’accompagnement par Responsable Service Client dédié
2 990 €

3. Forfaits d’accompagnement horaire par le service client

Accompagnement horaire au choix, utilisable pour déléguer des paramétrages de comptes, des interventions avec tests, des analyses spécifiques…Frais (HT)
Forfait d’accompagnement 2 h
2 heures d’accompagnement équipe Service Client, consommables par périodes de 30 minutes.
250 €
Forfait d’accompagnement 5 h
5 heures d’accompagnement équipe Service Client, consommables par périodes de 30 minutes.
490 €
Forfait d’accompagnement 10 h
10 heures d’accompagnement équipe Service Client, consommables par périodes de 30 minutes.
890 €

Rates

Articles

  • Sales Offers
  • Interchange Fees and Card Schemes
  • Support Packages

Sales Offers

CentralPay offers fair and transparent pricing tailored to your transaction volume and business. Rates are on a sliding scale: the higher your transaction volume, the lower the per-transaction fees.

Fees are calculated based on the volume of transactions made in the previous month.

Two options, depending on your needs

Smart Collection

Get free access to the payment processing solution: no subscription—you only pay per transaction.

Easy Wallet

Access additional services (including account/wallet management) with a monthly subscription plan in addition to pay-as-you-go fees.

No additional costs associated with card networks

All CentralPay plans include the interchange and Card Scheme Fees charged by banks, so you won’t incur any additional costs.

👉 To get a quote based on your volume and contact our sales team:

View CentralPay’s public rates

Interchange Fees and Card Schemes

The interchange fee is the amount charged by the issuer of a payment card (your customer’s bank) to the acquirer (the Merchant’s bank).

Card Scheme Fees are the fees charged by card networks (Visa, Mastercard, CB) to operate the service.

Terms have been defined to describe the combination of these costs:

  • Interchange+
    Interchange fees + Card Scheme Fees
  • Interchange++
    Interchange fees + Card Scheme Fees + merchant service fees (CentralPay)

All of CentralPay’s commercial offerings include Interchange+ fees as well as our own service fees, so you won’t incur any additional bank fees when processing your transactions. Unless otherwise specified, a minimum processing fee of €0.15 is deducted from the IC++.

1. Interchange Fees and Card Scheme Fees (Distance Selling, E-commerce)

Cards issued in the European Economic Area (EEA)

Data updated on January 29, 2026
Type of account ownerCard typeMap RegionMap NetworkInterchange FeesCard Scheme FeesInterchange+ (total)
Personal CardsFlow RateEEECB0,200%0,025%0,225%
Personal CardsFlow RateEEEVISA0,200%0,231%0,431%
Personal CardsFlow RateEEEMastercard0,200%0,219%0,419%
Personal CardsCreditEEECB0,300%0,025%0,325%
Personal CardsCreditEEEVISA0,300%0,231%0,531%
Personal CardsCreditEEEMastercard0,300%0,219%0,519%
Business CardsAllEEECB0,900%0,025%0,925%
Business CardsAllEEEVISA1,450%0,070%1,520%
Business CardsAllEEEMastercard1,450%0,171%1,621%
Personal CardsAllEEEAMEX0,000%1,600%1,600%
Business CardsAllEEEAMEX0,000%1,600%1,600%

International cards issued outside the European Economic Area

Data updated on January 29, 2026
Type of account ownerCard typeMap RegionMap NetworkInterchange FeesCard Scheme FeesInterchange+ (total)
Personal CardsFlow RateInternationalVISA1,150%1,343%2,493%
Personal CardsFlow RateInternationalMastercard1,150%1,343%2,493%
Personal CardsCreditInternationalVISA1,500%1,499%2,999%
Personal CardsCreditInternationalMastercard1,500%0,951%2,451%
Business CardsAllInternationalVISA2,000%0,700%2,700%
Business CardsAllInternationalMastercard2,000%0,951%2,951%
Personal CardsAllInternationalAMEX0,000%2,400%2,400%
Business CardsAllInternationalAMEX0,000%2,400%2,400%

2. Interchange fees and Card Scheme Fees (contactless payments)

Cards issued in the European Economic Area (EEA)

Data updated on January 29, 2026
Type of account ownerCard typeMap RegionMap NetworkInterchange FeesCard Scheme FeesInterchange+ (total)
Personal CardsFlow RateEEECB0,200%0,025%0,225%
Personal CardsFlow RateEEEVISA0,200%0,231%0,431%
Personal CardsFlow RateEEEMastercard0,200%0,219%0,419%
Personal CardsCreditEEECB0,300%0,025%0,325%
Personal CardsCreditEEEVISA0,300%0,231%0,531%
Personal CardsCreditEEEMastercard0,300%0,219%0,519%
Business CardsAllEEECB0,900%0,025%0,925%
Business CardsAllEEEVISA1,450%0,070%1,520%
Business CardsAllEEEMastercard1,450%0,171%1,621%
Personal CardsAllEEEAMEX0,000%1,600%1,600%
Business CardsAllEEEAMEX0,000%1,600%1,600%

International cards issued outside the European Economic Area

Data updated on January 29, 2026
Type of account ownerCard typeMap RegionMap NetworkInterchange FeesCard Scheme FeesInterchange+ (total)
Personal CardsFlow RateInternationalVISA1,150%1,343%2,493%
Personal CardsFlow RateInternationalMastercard1,150%1,343%2,493%
Personal CardsCreditInternationalVISA1,500%1,499%2,999%
Personal CardsCreditInternationalMastercard1,500%0,951%2,451%
Business CardsAllInternationalVISA2,000%0,700%2,700%
Business CardsAllInternationalMastercard2,000%0,951%2,951%
Personal CardsAllInternationalAMEX0,000%2,400%2,400%
Business CardsAllInternationalAMEX0,000%2,400%2,400%

Support Packages

Support packages enable rapid setup, guided by our Integration Support (IS) and Customer Service (CS) teams. The support hours allow you to delegate certain account configuration tasks and request video calls: with the IS team for technical issues, and with the CS team for administrative or functional matters.

1. Smart Collection Integration Support

Support for integration, as neededFees (excluding tax)
Self-guided
, 2 hours of support from the Customer Service team
Includes
(Starter, Medium, and Major Company plans)
Standard Support
Technical analysis of the project by the Integration Services team
2 hours of support from the Integration Services team
2 hours of support from the Customer Service team
490 €
Advanced Support
Technical analysis and monitoring by a dedicated Integration Service Manager
3 hours of support from a dedicated Integration Service Manager
3 hours of support from a dedicated Customer Service Manager
€1,990

2. Support for Smart Collection and Easy Wallet integration

Support for integration, as neededFees (excluding tax)
Self-guided
: 3 hours of support from the Customer Service team
Includes
(Medium and Major Partner plans)
Standard Support:
Technical analysis of the project by the Integration Services team:
5 hours of support from the Integration Services team:
5 hours of support from the Customer Service team
990 €
Advanced Support
Technical Analysis and Monitoring by a Dedicated Integration Service Manager
10 hours of support from a Dedicated Integration Service Manager
10 hours of support from a Dedicated Customer Service Manager
€2,990

3. Hourly support packages offered by customer service

Customizable hourly support, which can be used to delegate account configuration, troubleshooting with testing, specific analyses, and more…Fees (excluding tax)
2-hour support package
2 hours of support from the Customer Service team, consumables in 30-minute periods.
250 €
5-hour support package
5 hours of support from the Customer Service team, consumables in 30-minute periods.
490 €
10-hour support package
10 hours of support from the Customer Service team, consumables in 30-minute periods.
€890

CpayUser

jQuery(document).ready( function($) { window.live_6ab3046f58a01 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_CpayUser.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f58a01", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f58a01.load(); });

CpayUser

jQuery(document).ready( function($) { window.live_6ab3046f9bcb2 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_CpayUser.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9bcb2", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9bcb2.load(); });

Documentation

Articles

  • Guide de démarrage rapide >
  • Marchand, comptes et canaux de vente
  • Automatisations, connexions et exports
  • Liens de paiement
  • Transaction par carte
  • Transaction par virement
  • Transaction prélèvement SEPA
  • Paiements récurrents
  • Authentification 3DS 2.2
  • Gestion des marchands
  • Transferts de paiements
  • Plugin CMS
  • Bonnes pratiques

Guide de démarrage rapide >

1. Entrée en relation

Pour commencer, découvrez nos offres et choisissez la méthode d’entrée en relation la plus adaptée à votre projet :

Consultez nos offres tarifaires
Présentez votre projet à notre équipe commerciale
Choisissez le modèle d’entrée en relation adapté à votre activité
Découvrez les étapes d’entrée en relation

2. Création de votre profil marchand de test

CentralPay met à votre disposition un environnement de test (RCT) pour développer et valider votre intégration :

  • Profil de test « Marchand standard«  : Pour tester uniquement la solution d’encaissement Smart Collection, demandez un profil marchand de test via notre formulaire
  • Profil de test « Marchand partenaire ou mandataire » : Pour tester l’encaissement (Smart Collection) et les transferts de paiements (Easy Wallet), contactez notre service client. Nous créerons et paramétrerons votre profil marchand de test en conséquence

3. Choix de votre méthode d’intégration

Choisissez la méthode d’intégration qui correspond à vos besoins :

  • Intégration Smart : Utilisez les demandes de paiement et la page de paiement CentralPay pour encaisser vos transactions. Les parcours clients sont préconfigurés, pour un déploiement rapide
  • Intégration Custom : Intégrez directement les services API pour les transactions par carte, par virement SEPA (SCT) et/ou par prélèvement SEPA (SDD). Cette approche vous permet de maîtriser entièrement l’expérience client, mais requiert un développement plus avancé

4. Paramétrage de votre profil marchand

Votre profil Marchand CentralPay peut être configuré de manière autonome ou avec l’accompagnement de notre équipe support.

ℹ️ Les paramétrages réalisés sur votre profil marchand de test (RCT) ne sont pas automatiquement répliqués en production (PROD). Veillez à les reconfigurer une fois votre profil de production activé.

Paramétrages principaux :

Accès d’authentification API
Déclaration des domaines autorisés (si intégration Custom)
Comptes de paiement et comptes bancaires de sortie
Utilisateurs du portail
Points de vente
Webhooks
Identifiant de Créancier SEPA (ICS)

Paramétrages secondaires :

Emails de contact du profil marchand
Règles d’acceptation
Versements sortants
Libellé de relevé bancaire
Notifications automatiques
Page de paiement Smart Form
Modèles de demandes de paiement
Tentatives auto. pour les échecs de prélèvement carte
Tentatives auto. pour les échecs de prélèvement SEPA

5. Simuler des paiements

Avant la mise en production, effectuez des simulations de paiement client dans votre profil de test (RCT) pour vérifier l’intégration :

  • Carte : Utilisez nos cartes de test pour simuler différents statuts de transaction
  • Virement SEPA (SCT) : Créez une ou plusieurs transactions SCT puis demandez à notre support de simuler leur traitement
  • Prélèvement SEPA (SDD) : Utilisez un IBAN/BIC de test fourni dans notre documentation

6. Mise en production

Une fois vos tests validés en environnement de recette (RCT), préparez le passage en production (PRD).

ℹ️ Rappel : Aucun paramétrage n'est automatiquement copié de la RCT vers la PROD.
  • Récupérer les credentials API pour l’environnement PROD
  • Vérifier l’URL API de production
  • Récupérer la merchantPublicKey pour générer des cardToken
  • Informer CentralPay de toute mise en production ou évolution majeure
  • Déclarer l’URL de votre site dans la configuration de votre point de vente
  • Vérifier l’accès à la page support depuis le Portail Marchand

Si nécessaire, vous pouvez effectuer une à deux transactions réelles à 1 € pour vérifier le bon fonctionnement du paiement en production.

Marchand, comptes et canaux de vente

Profil Marchand

Le Profil Marchand représente techniquement et opérationnellement un Marchand dans la plateforme CentralPay.

Il est le support de :
• Ses comptes : de paiement ou de monnaie électronique ;
• Son administration : accès API, profils utilisateurs, services de paiement disponibles ;
• Sa configuration technique : webhooks, notifications, points de vente, règles d’acceptation, comptes bancaires ;
• Son dossier réglementaire : KYC/KYB, LCB-FT, scoring de risque, contractualisation, grille tarifaire…

Le Profil Marchand correspond à l’objet API Merchant et est créé automatiquement après validation de son inscription (via l’objet API Merchant-Enrollment).

1. Types de profils selon le modèle contractuel

Chaque type de Marchand est associé à un modèle contractuel précis.

Standard Type : STANDARD

Le Marchand standard est une entreprise ou un professionnel qui encaisse des paiements pour son propre compte. Il dispose d’un ou plusieurs comptes de paiement, et peut accéder aux services CentralPay via API ou via un partenaire.

👉 En savoir plus sur le modèle Marchand

Partenaire Intégrateur Type : INTEGRATOR

Le Partenaire Intégrateur accompagne plusieurs Marchands standards dans leur intégration technique avec CentralPay. Chaque Marchand standard dispose de son propre point de vente et d’un contrat individuel. L’Intégrateur utilise les accès API fournis par chaque Marchand, dans le cadre d’une relation contractuelle.

  • Peut disposer d’un compte de paiement et d’un compte de commission pour ses propres besoins
  • Un point de vente distinct est créé pour chaque Marchand accompagné
  • Peut réaliser des appels API et actions techniques via les accès délégués par le Marchand (suivi d’Instructions Techniques, paramétrage, RUN), sans accès aux soldes ni pouvoir d’initier/modifier/exécuter une opération de paiement en son nom propre
  • CentralPay facture chaque Marchand directement

👉 En savoir plus sur le modèle Partenaire Intégrateur

Partenaire Intégrateur MOBSP Type : INTEGRATOR + MOBSP

Le Partenaire Intégrateur MOBSP est un Intégrateur disposant d’un mandat réglementaire. Il peut initier une demande d’entrée en relation pour le compte d’un Marchand standard, et l’accompagner techniquement via l’API d’onboarding. Comme tout Intégrateur, il agit uniquement via les accès API fournis par le Marchand.

  • Mêmes droits et fonctionnement qu’un Intégrateur
  • Peut initier une demande d’enrôlement complète via API
  • Peut accompagner le marchand durant l’enrôlement

👉 En savoir plus sur le modèle Partenaire Intégrateur MOBSP

Partenaire Technique Type : TECHNIQUE

Le Partenaire Technique développe une solution mutualisée (ex. marketplace, plateforme SaaS) et opère depuis un ou plusieurs points de vente ouverts à son nom, auxquels des Marchands standards peuvent être rattachés. Il utilise ses propres accès API pour transmettre des données commerciales et suivre les opérations rattachées à ces points de vente, sans jamais disposer d’un pouvoir d’exécution sur les opérations de paiement.

  • Un ou plusieurs points de vente peuvent être utilisés pour regrouper les activités des marchands (ex. marketplace, plateforme SaaS)
  • Accès API CentralPay propre au Partenaire Technique
  • CentralPay facture le Partenaire Technique
  • Ne peut pas initier l’enrôlement au nom et pour le compte des marchands (sauf cadre MOBSP applicable)

👉 En savoir plus sur le modèle Partenaire Technique

Partenaire Technique MOBSP Type : TECHNIQUE + MOBSP

Le Partenaire Technique MOBSP est mandaté pour initier une demande d’entrée en relation au nom de ses utilisateurs. Il peut transmettre les informations nécessaires via l’API d’onboarding, mais n’intervient pas dans l’exécution des opérations de paiement.

  • Mêmes droits et fonctionnement qu’un Partenaire Technique
  • Peut initier une demande d’enrôlement complète via API
  • Peut accompagner le marchand durant l’enrôlement

👉 En savoir plus sur le modèle Partenaire Technique MOBSP

Mandataire DME Type : DME

Le Mandataire DME (Distributeur de Monnaie Électronique) transmet des instructions de chargement, de transfert ou de remboursement en monnaie électronique pour le compte de Participants. Il agit dans le cadre du modèle monnaie électronique (devises CUSTOM) et peut percevoir une commission sur les opérations, sans fournir de services de paiement régulés (ex. virement SEPA, prélèvement, carte).

👉 En savoir plus sur le modèle Mandataire DME

Mandataire Agent Type : AGENT

Le Mandataire Agent est un Agent de Prestataire de Services de Paiement (Agent PSP) enregistré auprès de l’ACPR. Il agit au nom et pour le compte de CentralPay dans un périmètre strictement défini contractuellement. Selon le modèle retenu (Agent simple / Agent collecteur / Agent délégataire), il peut notamment accompagner l’enrôlement, réaliser certaines diligences KYC/KYB de niveau 1, et/ou intervenir dans la collecte, la ventilation et la mise à disposition des fonds via les mécanismes prévus par CentralPay. CentralPay demeure responsable des services de paiement fournis et des contrôles réglementaires.

👉 En savoir plus sur le modèle Mandataire Agent

Participant Type : BASIC

Les Participants sont des personnes physiques ou morales clientes d’un Marchand Mandataire de CentralPay (Agent ou DME). Ils disposent d’un ou plusieurs comptes de paiement ou de monnaie électronique pour recevoir des fonds émis par le Mandataire, et peuvent accéder au portail Marchand pour consulter leurs opérations et gérer leurs versements sortants.

Ils agissent pour vendre des produits ou services, pour une activité LMNP, ou pour des besoins non commerciaux (crowdfunding, wallet personnel, projets collectifs…).

Les participants ouvrent des comptes chez CentralPay. L’entrée en relation peut être initiée et/ou accompagnée par le Marchand Mandataire, mais les services régulés restent fournis par CentralPay. Le cadre d’utilisation des comptes est défini par les documents CentralPay applicables (et, le cas échéant, par les CGU du Mandataire pour les conditions commerciales et les services qu’il fournit).

2. Paramétrage des emails de contact

Vous pouvez personnaliser les adresses email de contact associées à votre profil marchand pour que les notifications, relances ou échanges contractuels soient bien adressés aux bons interlocuteurs.

  • Email contact : référent principal du profil marchand
  • Email administratif : en charge des sujets juridiques ou contractuels
  • Email technique : en charge de l’intégration ou des incidents
  • Email financier : en charge de la facturation ou des flux bancaires
ℹ️ Par défaut, ces adresses sont initialisées avec l’email du titulaire du profil marchand. Elles peuvent être modifiées à tout moment depuis le Portail Marchand.

Accès à la configuration des emails de contact :

Recette Portail Marchand
Production Portail Marchand

Profils clients

Les profils clients (Customer) unifient et sécurisent toutes vos données client pour en faciliter la gestion. Ils interagissent avec les autres services de CentralPay et permettent notamment de :

  • Centraliser leur historique de paiement (tous canaux de vente et moyens de paiement confondus)
  • Digitaliser et stocker de manière sécurisée leurs supports de paiement (cartes, mandats SEPA, IBAN virtuels)
  • Suivre facilement leurs paiements récurrents (abonnements, paiements fractionnés) ou règlements en attente (demandes de paiement)

Dans certains cas, ils peuvent également être associés à un compte de monnaie électronique permettant au client de recevoir et d’utiliser des fonds au sein du réseau du partenaire distributeur de cette monnaie électronique.

Un Customer est obligatoirement identifié soit par son email, soit par son numéro de téléphone.

Il est également possible de déclarer d’autres informations le concernant comme son nom, son prénom, sa langue, sa référence personnalisée, son moyen de paiement par défaut…

1. Utilisation

La création d’un Customer est obligatoire pour la réalisation :

  • D’abonnements ou de paiements fractionnés par carte
  • De paiements en 1 clic par carte
  • De paiements par prélèvement SEPA
  • De paiements par virement SEPA avec IBAN Virtuel dédié à celui-ci
  • De création d’un compte de monnaie électronique anonyme

2. Interfaces

Vous pouvez consulter l’ensemble des Customers de votre compte depuis votre Portail Marchand Compte Customers

Vos Customers disposent également d’un portail client leur permettant d’administrer les paiements réalisés avec votre entreprise :

Recette Portail Marchand – Customers
Production Portail Marchand – Customers

3. Création d’un Customer

Il existe deux méthodes pour créer un Customer :

  • Créer un Customer depuis le service API dédié, permettant ensuite de créer une Card, de gérer un IBAN Virtuel pour ce Customer, d’initier une transaction, une demande de paiement…
  • Créer un Customer via une demande de paiement

CentralPay assure l’unicité des Customers : si vous initiez une demande de paiement avec création d’un Customer alors que son email ou son numéro de téléphone est déjà connu dans votre compte, CentralPay ne créera pas de nouveau Customer et associera la transaction au profil existant.

Points de vente

Les points de vente (Point of Sales ou POS) sont la représentation de vos différents sites web, boutiques, ou équipes de vente. Ils permettent de segmenter les opérations de vos comptes CentralPay à des fins :

  • Techniques : Vous pouvez réaliser des paramétrages différents par point de vente (notifications clients, notifications internes, nom expéditeur des emails de confirmation, logo affiché dans la page de paiement…)
  • Administratives : Vous pouvez limiter les droits de consultation ou de modification de vos profils utilisateurs à certains points de ventes
  • Comptables : Vous pouvez filtrer les opérations par point de vente dans votre portail Marchand ou dans vos exports de données

Lors de la création de votre profil Marchand CentralPay, un premier point de vente est créé automatiquement. Vous pouvez ensuite vous rendre sur votre portail Marchand pour paramétrer ce dernier, ou en créer de nouveaux :

Recette Portail Marchand – Points de vente
Production Portail Marchand – Points de vente

1. Paramétrages

Les points de vente comprennent un certain nombre de paramétrages obligatoires :

  • Paramètres généraux
    • Nom : Nom du point de vente (visible par vos clients)
    • URL du site : S’il s’agit d’un site e-commerce, renseignez l’URL de ce dernier. Sinon, renseigner l’URL de votre site vitrine.
    • Pays du point de vente

  • Configuration
    • Type technique : Sélectionnez « Vente à distance »
    • Utilisateurs API : Sélectionnez les utilisateurs API ayant un droit d’accès à ce point de vente
    • Contrats : Sélectionnez le contrat VAD carte qui a été paramétré pour votre profil marchand (en règle générale, vous n’aurez qu’un seul contrat à disposition)
    • Contrat par défaut : Sélectionnez le contrat VAD carte qui sera utilisé par défaut (en règle générale, vous n’aurez qu’un seul contrat à disposition)
    • Viban prioritaire : Si vous souhaitez que les IBAN Virtuels affichés dans les demandes de paiement soient ceux des Customers, alors sélectionnez « Client ». Si vous préférez afficher des IBAN Virtuels dédiés à chaque demande de paiement, alors sélectionnez « SCT ». Si besoin d’informations complémentaires, consultez notre rubrique sur les IBAN Virtuel

D’autres paramétrages ne sont pas obligatoires, mais sont importants pour votre parcours de vente :

  • Paramètres généraux
    • Logo : Chargez le logo de votre entreprise ou celui dédié à votre point de vente. Il apparaitra dans la page de paiement générée par les demandes de paiement
    • ID point de vente du marchand : Renseignez une référence personnalisée vous permettant d’identifier plus simplement le point de vente dans vos systèmes d’information

  • Emails de confirmation
    • Cocher « Activer l’email de confirmation de paiement » : En cochant cette case, vous activez l’envoi d’un email à vos clients lorsqu’ils réalisent un paiement par carte. Il s’agit d’un email standardisé non modifiable contenant un récapitulatif du paiement (raison sociale de votre profil marchand, nom de votre point de vente, date du paiement, identifiant de la transaction CentralPay, référence marchand de la transaction, description marchand de la transaction, code d’autorisation du paiement, marque de la carte, 6 premiers et 4 derniers chiffres de la carte, montant de la transaction, état de la transaction). La langue et le pied de page de l’email peuvent être paramétrés depuis le Portail Marchand Configuration Email confirmation paiement
    • Email de l’expéditeur : Si vous avez coché la case « Activer l’email de confirmation de paiement », vous pouvez personnaliser l’adresse expéditeur en utilisant l’une de vos adresses email (par exemple : no-reply@mondomaine.com). Attention, veillez à nous demander de vous communiquer nos clés SPF et DKIM afin que vous puissiez autoriser CentralPay à envoyer des emails depuis votre domaine
    • Nom de l’expéditeur : Si vous avez coché la case « Activer l’email de confirmation de paiement », vous pouvez personnaliser le nom de l’expéditeur (par exemple : MonEntreprise)
    • Coche « Recevoir une copie de la confirmation de paiement » : En cochant cette case, vous activez l’envoi d’une copie de l’email adressé à vos clients lorsqu’ils réalisent un paiement par carte. Cela peut vous permettre d’être informé facilement par email lorsqu’un client réalise un paiement
    • Email du destinataire : si vous avez coché la case « Recevoir une copie de la confirmation de paiement », vous devez renseigner l’adresse email du destinataire de cette copie

Enfin, d’autres paramètres secondaires sont disponibles :

  • OTP
    • Email de l’expéditeur OTP email : Email affiché en tant qu’expéditeur des emails de One Time Password (connexion à l’espace Administration du Portail Marchand…)
    • Nom de l’expéditeur OTP email : Nom affiché en tant qu’expéditeur des emails de One Time Password (connexion à l’espace Administration du Portail Marchand…)
    • Numéro de téléphone ou nom de l’expéditeur OTP SMS : Nom ou numéro de téléphone affiché en tant qu’expéditeur des SMS de One Time Password (validation de mandat SEPA…)

  • Paramètres de communication : Ces paramètres sont appliqués aux emails ou SMS transmettant le lien vers le formulaire de paiement d’une demande de paiement (paymentRequest). Ils s’appliquent uniquement lorsque aucun scenario n’a été configuré sur la demande paiement.
    • Expéditeur SMS : Nom du correspondant affiché sur le SMS
    • Expéditeur email : Email du correspondant affiché sur l’email
    • Nom de l’expéditeur email : Nom du correspondant affiché sur l’email
    • Adresse de réponse email : Email utilisé pour les réponses des emails envoyés (applicable prochainement)
    • Pied de page de l’email : Pied de page des emails (applicable prochainement)

Comptes de paiement

Les comptes de paiement sont utilisés pour réaliser des opérations de paiement (collecte de paiements en devises ISO, versement des fonds vers un compte bancaire…). Ils permettent de stocker des fonds dans une devise ISO (EUR, USD, CHF, GBP…) et possèdent un IBAN/BIC qui lui est propre.

Un compte de paiement est, sauf exception, associé à un compte bancaire ayant le même titulaire, permettant à CentralPay de réaliser des versements automatiques par virement SEPA.

Si vous disposez de plusieurs comptes bancaires sur lesquels vos fonds doivent être reversés, vous pouvez demander à votre contact CentralPay de créer le même nombre de comptes de paiement dans votre profil Marchand CentralPay. Ainsi, chaque compte de paiement sera lié à un compte bancaire différent et adressera des versements SEPA en conséquence.

Il est également possible de créer plusieurs comptes de paiement à des fins de segmentation des fonds (avec un compte dédié aux opérations de commission ou de frais par exemple).

Vous pouvez consulter le détail de vos comptes de paiements depuis ces accès :

Recette Portail Marchand – Comptes de paiement
Production Portail Marchand – Comptes de paiement

1. Utilisation

Les comptes de paiement sont systématiquement utilisés pour les opérations de paiement de notre plateforme, à l’exception des opérations de monnaie électronique.

2. Création de comptes de paiement

Si vous êtes marchand CentralPay, vous pouvez adresser une demande par email aux équipes CentralPay pour la création de plusieurs comptes de paiement à votre nom. Cela afin de segmenter vos opérations ou d’ouvrir un compte dans une devise différente.

Si vous êtes Partenaire MOBSP ou mandataire AGENT de CentralPay, vous pouvez créer des comptes pour vos marchands en utilisant le service de demande d’enrôlement.

Comptes de ME

ℹ️ Uniquement réservé aux Mandataires DME et à leurs sous-marchands.

Les comptes de ME (Monnaie Électronique) sont utilisés pour stocker et échanger des fonds dans une devise CUSTOM (devise dédiée à un mandataire DME). Un mandataire DME peut demander la création de comptes de ME pour les sous-marchands de son réseau puis réaliser des transferts de fonds en ME entre ces comptes.

Le titulaire d’un compte de ME ne peut recevoir des paiements et utiliser sa monnaie électronique que par l’intermédiaire du mandataire DME. Il peut cependant demander le remboursement de sa monnaie électronique à tout moment et recevra ses fonds en devise ISO : soit sur son compte bancaire par virement SEPA, soit sur sa carte bancaire, selon les paramétrages de son compte.

Vous pouvez consulter le détail de vos comptes de ME depuis ces accès :

Recette Portail Marchand – Comptes de monnaie électronique
Production Portail Marchand – Comptes de monnaie électronique

1. Utilisation

Les comptes de ME sont principalement utilisés pour permettre à des personnes physiques de recevoir et d’échanger facilement des fonds dans les contextes suivants :

  • Marketplaces C2C de produits ou de services
  • Stockage et utilisation de valeurs-cadeaux au sein d’un réseau de commerçants indépendants

2. Spécificités

Le CMF (Code Monétaire et Financier) présente des conditions spécifiques pour la monnaie électronique. Ainsi, il existe deux types de comptes de ME chez CentralPay :

  • Compte de ME anonyme : Ce compte peut être ouvert sans vérification d’identité du titulaire, à condition qu’il soit adressé à une personne physique et soit limité à 150 € de solde ou d’encaissement sur 30 jours. Ce type de compte est particulièrement utile dans le cadre d’une utilisation ponctuelle du compte par son titulaire, ou tout simplement pour simplifier l’entrée en relation avec le mandataire DME
  • Compte de ME vérifié : Un compte anonyme peut être ensuite vérifié par les équipes conformité de CentralPay (procédure KYC) pour augmenter les limites qui lui étaient imposées, il devient ainsi « vérifié »

3. Création de comptes de ME

Si vous êtes mandataire DME de CentralPay, vous pouvez demander la création de comptes de ME pour vos sous-marchands.

Automatisations, connexions et exports

Notifications email/sms

Les notifications peuvent être adressées en fonction des évènements liés à certains objets API :

  • Demande de paiement (paymentRequest)
  • Contestation carte (dispute)
  • Paiement X fois (installment)
  • Transaction carte (transaction)
  • Versement sortant (payout)
  • Remboursement carte (refund)
  • Abonnement (subscription)
  • Crédit carte (credit)
  • Transaction SDD (sddTransaction)
  • Transaction SDD inversée (sddTransactionReversal)
  • Mandat (mandate)

1. Types de scénarios de notification

Notifiez vos clients et alertez vos collaborateurs automatiquement lorsque certains évènements ont lieu sur votre profil Marchand CentralPay : encaissement d’un virement, contestation client, échec de règlement…

Vous maitrisez le contenu de chaque notification depuis des templates personnalisés et définissez un mode d’envoi par email, par sms ou par Json. Vous automatisez ainsi le pointage de vos encaissements, les notifications clients, ou encore la mise à jour de votre système d’information.

2. Paramétrage des modèles de notification

2.1. Paramétrage des modèles (templates)

Pour commencer le paramétrage de vos notifications, vous devez créer vos modèles de communication (email, sms ou hook) en renseignant les éléments demandés. Par exemple l’objet du mail, le nom et email de l’émetteur, le corps du texte…

Vous pouvez intégrer des éléments dynamiques (tags) dans le corps du texte en tapant le caractère « # », qui fera apparaitre la liste des tags disponible pour le type de scénario de notification sélectionné.

Attention, si vous utilisez les notifications emails, veillez à nous demander de vous communiquer nos clés SPF et DKIM afin que vous puissiez autoriser CentralPay à envoyer des emails depuis votre domaine.

Concernant les SMS, veillez à calculer le nombre de caractères : vous serez facturés d’un SMS par 160 caractères (espaces inclus).

Accès paramétrage de templates emails :

Recette Portail Marchand
Production Portail Marchand

Accès paramétrage de templates SMS :

Recette Portail Marchand
Production Portail Marchand

Accès paramétrage de templates hooks :

Recette Portail Marchand
Production Portail Marchand

2.2. Paramétrage du header et footer pour templates emails

En cas de création d’un template email, un « header » et un « footer » devront être créés. Vous pouvez par exemple intégrer votre logo en header, et vos conditions de contact ou mentions légales en footer.

Accès paramétrage de l’en-tête d’email (header) :

Recette Portail Marchand
Production Portail Marchand

Accès paramétrage du pied de page d’email (footer) :

Recette Portail Marchand
Production Portail Marchand

3. Paramétrage des scénarios de notification

Pour spécifier à la plateforme les conditions d’envoi et destinataires de vos notifications, vous devez créer un scénario intégrant une ou plusieurs règles d’envoi.

Après avoir choisi le type de scénario souhaité, vous pouvez créer une règle d’envoi. Cette règle est scindée en deux parties : le « QUAND » va permettre de définir l’évènement déclencheur de la notification tandis que le « ALORS » va permettre de choisir les actions qui seront effectuées lorsque l’évènement se produira.

Accès paramétrage de scenarios de notification :

Recette Portail Marchand
Production Portail Marchand

3.1. Dans la partie « QUAND » :

  • Tapez « # » pour visualiser l’ensemble des attributs disponible pour votre scénario
  • Utilisez des opérateurs logiques pour constituer votre règle :
    • Pour les chaînes de caractères (doivent être entourés de guillemets «  ») :
      • = (égal)
      • != (différent de)
      • in (dans ce qui va suivre)
      • not in (pas dans ce qui va suivre)
    • Pour les nombres (attention les montants doivent être renseignés en centimes) :
      • = (égal)
      • != (différent de)
      • < (plus petit que)
      • <= (plus petit ou égal à)
      • in (dans ce qui va suivre)
      • not in (pas dans ce qui va suivre)
    • Pour les boolean (affirmations en vrai ou faux) :
      • = (égal à)
      • != (différent de)
  • Vous pouvez utiliser des conditions pour compléter votre règle :
    • AND (pour ajouter une autre condition d’activation)
    • OR (pour ajouter une autre possibilité d’activation)

Il est possible de donner des priorités en mettant des parenthèses autour des conditions. Si vous utilisez les conditionnels AND et OR dans la même règle, il est nécessaire de prioriser. Si vous utilisez plusieurs fois AND ou plusieurs fois OR, il sera également nécessaire de prioriser chaque partie.

Exemples de règles :

#end_user_country in ('FRA', 'BE')

#authorisation_status = 'FAILURE' or (#transaction_amount > 100000 and #context = 'TRANSACTION_RISKY' )

#transaction_amount > 100000 and ( #authorisation_status = 'FAILURE' or #context = 'TRANSACTION_RISKY' )

((#transaction_amount > 100000 and #context = 'TRANSACTION_RISKY') or ( #authorisation_status = 'FAILURE' and #transaction_amount < 100000 )) and (#card_product_type = 'Consumer')

Avant de pouvoir enregistrer une règle, il est obligatoire de d’abord tester sa règle avec le bouton « tester ». Cela va permettre de vérifier que votre règle est grammaticalement correcte. Attention, cela ne garantit pas que votre règle correspond à ce que vous souhaitiez faire.

3.2. Dans la partie « ALORS » :

Le « ALORS » va permettre de choisir le destinataire et le template utilisé pour la notification. Vous n’avez accès qu’aux templates qui correspondent au type de template requis (SMS, Email, Hook) et qui correspond au type de scénario choisi (transaction carte, demande de paiement, remboursement…).

Services anti-fraude

1. Organisation des services anti-fraude

Les services anti-fraude sont segmentés en 4 outils :

  • Liste blanche (whitelist)
    Le but de la « whitelist » est de rendre sélective l’application d’une règle d’acceptation des transactions. Elle devient inopérante pour des clients identifiés, VIP ou reconnus de confiance qui sont intégrés à une « whitelist ». Les « whitelists » portent sur les données spécifiques d’un client, comme le numéro de sa Carte Bancaire ou son adresse IP. Cette fonctionnalité permet d’être moins restrictif sur des populations d’utilisateurs
  • Liste noire (blacklist)
    Le service de « blacklist » permet de refuser les paiements. Tout comme pour les « whitelists », les « blacklists » portent sur les données propres au porteur de carte (Carte, IP, tel, email)
  • Règles d’acceptation des transactions
    Cet outil permet de construire les règles spécifiques définissant les conditions d’acceptation d’un paiement
  • Scoring anti-fraude
    Le service de scoring permet de détecter les transactions potentiellement frauduleuses en se basant sur l’analyse croisée de plusieurs données liées aux paiements

Les phases de traitement des transactions sont toujours exécutées dans cet ordre.

Dans le cas où les données d’entrée remplissent toutes les conditions des « whitelist » définies, le service de « blacklist » ne sera pas exécutée et la transaction sera opérée normalement.

Dans le cas où les données d’entrée remplissent une des conditions des « blacklist » définies et ne figurent pas dans le service de « whitelist », la transaction sera refusée et le service « règle d’acceptation » ne sera pas exécutée. Chaque service est exécuté de façon descendante vis-à-vis de la hiérarchie des acteurs CentralPay, ce qui signifie qu’une plateforme peut appliquer les paramètres de ses services anti-fraude à ses marchands, mais que l’inverse n’est pas possible.

2. Outil de scoring de fraude

CentralPay s’appuie sur un service de détection de fraude reposant sur des algorithmes de machine learning.

Ce moteur prédictif est constitué depuis un large échantillon de données fourni par CentralPay au format JSON et issues des données transaction, refund, dispute.

Ce service s’appuie sur une classification comportementale liée au secteur d’activité du marchand.

Le moteur retourne une action et un score. L’action invite le service de paiement à accepter ou refuser la transaction.

Le score classifie le niveau de risque en fournissant un pourcentage de probabilité de fraude. Ce score est ensuite interprété dans le moteur de règle.

Le score permet au marchand et à l’algorithme d’interagir ensemble pour s’améliorer.

Les scores sont classifiés ainsi :

  • De 0 à 19 = risque faible
    Transaction acceptée
    Pas d’action
  • De 20 à 59 = risque moyen
    Transaction acceptée
    Action : Envoi événement avec détail du score pour revue manuelle et apprentissage
  • +60 = risque élevé
    Transaction refusée
    Action : Envoi événement avec détail du score pour revue manuelle et apprentissage

Ce service d’analyse d’exposition à la fraude analyse le contexte d’exposition au risque de fraude de chaque transaction. Ce service retourne un score qui permet de traiter automatiquement la réponse attendue dans le moteur de règle.

Le score repose sur l’analyse croisée des données suivantes :

  • Indice de risque IP
  • Détection de Proxy
  • Détection réseau TOR
  • Vérification de l’adresse IP
  • Confidence factors
  • Email checks
  • Address & phone checks
  • Adresse d’expédition à haut risque
  • Géolocalisation des adresses IP
  • Identification des équipements utilisés
  • Adresse e-mail
  • Type de navigateur
  • Discordances de pays
  • Distance de l’adresse d’expédition
  • Distance de l’adresse de facturation
  • Domaine e-mail
  • Heure
  • Montant de la commande
  • Pays
  • Numéro de téléphone
  • Titulaire IP
  • Titulaire de l’e-mail
  • Vérification adresse CB

3. Listes blanches et listes noires

3.1. Liste blanche (Whitelist)

Le but de la « whitelist » est de rendre sélective l’application d’une règle d’acceptation. Cette règle devient inopérante pour des clients identifiés, VIP ou reconnus de confiance qui sont intégrés à une « whitelist ».

Le service anti-fraude passe ainsi à l’étape suivante.

Les « whitelists » portent sur les données spécifiques d’un client, comme le numéro de sa Carte Bancaire ou son adresse IP. Cette fonctionnalité permet d’être moins restrictif sur une population d’utilisateurs.

3.2. Liste noire (Blacklist)

L’étape de la « blacklist » permet de refuser les paiements.

Tout comme pour les « whitelists », les « blacklists » portent sur les données propres au porteur de carte :

  • Pays
  • Régions géographiques
  • Numéros de carte
  • Numéros de téléphone
  • E-mail
  • Adresses IP
  • IBAN

4. Règles d’acceptation des transactions

Le moteur de règles d’acceptation est une brique applicative puissante et modulaire qui permet d’adapter le comportement lié au traitement à réaliser sur chaque transaction comme :

  • Accepter
  • Refuser
  • Alerter

Ce service permet ainsi de définir des actions à réaliser sur chaque transaction depuis une large liste d’attributs disponibles : score de fraude, localisation du porteur, montant des ventes cumulées sur 7 ou 30 jours, client VIP whitelist, paramètre spécifique adressé par le marchand…

Une règle d’acceptation est une condition logique. Elle permet : d’autoriser, de restreindre, et/ou d’interdire des transactions.
Une règle se compose de 4 éléments : l’action, les attributs, les opérateurs, les valeurs.

La syntaxe d’une règle est la suivante : « Action » « if » « Attribut » « Opérateur de comparaison » « Valeur de comparaison »

Exemple :

REFUSE if card_country != 'FRA'

La règle présentée dans cet exemple permet de refuser automatiquement les paiements lorsque le pays de la carte n’est pas la France.
La syntaxe de la grammaire choisie par la plateforme pour son moteur d’acceptation est très semblable à la syntaxe SQL (utilisée pour dialoguer avec les bases de données).

4.1. Les actions disponibles

  • ALLOW
    Autorise le paiement
  • REFUSE
    Refuse le paiement
  • ALERT
    Adresse une notification « webhook » de la transaction associée

4.2. Les attributs disponibles

En tapant « # », les attributs disponibles sont affichés.

Dans une règle, un attribut est toujours suivi d’un Opérateur de comparaison.

Liste des attributs :

AttributDescriptionType de valeursExemple
#always Aucune 
#transactions[_état][_entité] [_temporalité]Quota du nombre de transactions [état] [entité] [temporalité]Entiers
#transactions_amount[_état] [_entité][_temporalité]Quota du montant des transactions [état] [entité] [temporalité]Entiers
#amountMontant de la transaction en centimesEntier#amount > 100
#card_countryPays d’émission de la carteChaîne de caractères 
ISO 3166-1 alpha-3
#card_country IN (‘FRA’, ‘USA’, ‘BEL’, ‘DEU’)
#card_establishmentEtablissement de la carte  
#card_productType de carte‘gold’, ‘platinium’ 
#card_product_typeType de carte (perso ou corp.)CONSUMER CORPORATE#card_product_type = ‘CONSUMER’
#card_regionRégion d’émission de la carte‘ASIA_PACIFIC »EUROPE »LATIN_AMERICA »MIDDLE_EAST_AND_AFRICA »USA_AND_CANADA »ANTARCTIQUE »UNKNOWN’#card_region NOT IN (‘ASIA_PACIFIC’, ‘LATIN_AMERICA’)
#commercial_brandMarque de la carteVISA MASTERCARD AMEX OTHER#commercial_brand != ‘VISA’
#currencyDevise de la transactionChaîne de caractères 
ISO 4217
#currency = ‘EUR’
#ip_countryPays de l’adresse IPChaîne de caractères 
ISO 3166-1 alpha-3
#ip_country IN (‘FRA’, ‘USA’, ‘BEL’, ‘DEU’)
#ip_regionRégion de l’adresse IP‘ASIA_PACIFIC »EUROPE »LATIN_AMERICA »MIDDLE_EAST_AND_AFRICA »USA_AND_CANADA »ANTARCTIQUE »UNKNOWN’#card_region NOT IN (‘ASIA_PACIFIC’, ‘LATIN_AMERICA’)
#is_anonymous_ipEst une IP anonymeTRUE | FALSE#is_anonymous_ip = TRUE
#is_three_d_secureEst une transaction 3D-SecureTRUE | FALSE#is_three_d_secure = TRUE
#payout_amountMontant de versementEntier#payout_amount > 100
#payout_currencyDevise de versementChaîne de caractères 
ISO 4217
#payout_currency = ‘EUR’
#risk_scoreScore d’antifraudeDouble#risk_score > 2,34
#custom_acceptance_data[‘key’] = ‘value’champs customisékey : Regex [a-zA-Z0-9_-]value: Regex [a-zA-Z0-9_-]#custom_acceptance_data[‘product_category’] = ‘high’

Dans le cas du custom_acceptance_data[‘key’] = ‘value’, afin qu’il soit pris en compte il est nécessaire que l’exact même champs soit reporté dans la requête de l’objet visé.

Les opérateurs logiques et parenthésage :

Opérateurs logiques AND et OR

La syntaxe utilisée pour définir les règles permet de créer plusieurs conditions au sein de la même règle. Les conditions resteront définies de la même manière, à la seule différence qu’un mot clé sera placé entre les conditions.

Les mots clés sont and et or. Ils permettent de définir comment le moteur de règle va interpréter la succession de ces règles. Le « AND » correspond à l’inclusion et le « OR » à l’exclusion.

Exemple :

ALLOW if #amount < 1000 and #card_country = 'FRA'

L’exemple précédent autorise les paiements dont le montant est inférieur à 10 ET dont la carte est française. Si l’une ou l’autre des conditions définies n’est pas remplie, l’action ne sera pas exécutée.

Exemple :

ALLOW if #amount < 1000 or #card_country = 'FRA'

L’exemple précédent autorise les paiements dont le montant est inférieur à 10 OU dont la carte est française. Si l’une ou l’autre des conditions définies est remplie, l’action sera exécutée.

Parenthèses

L’utilisation des parenthèses dans la définition d’une règle multi-conditions permet de définir des blocs de conditions et les priorités entre ces blocs. Le principe est le même que celui des priorités pour les opérateurs mathématiques.

Exemple :

ALLOW if #amount < 1000 and (#card_country = 'FRA' or #currency = 'EUR')

Dans l’exemple précédent, le moteur de règle va d’abord interpréter le bloc (#card_country = ‘FRA’ or #currency = ‘EUR’). C’est à dire que le paiement sera autorisé si (la carte est française ou que la devise est l’euro), ET que le montant est inférieur à 10.

Ordre d’exécution des règles

Les règles sont exécutées dans un ordre à définir. Cet ordre est important car dès qu’une transaction répond aux critères d’une règle, les règles suivantes ne seront pas traitées.

Les règles sont exécutées dans l’ordre d’affichage de la liste de l’interface.
Un indicateur de position est affiché dans chaque liste. Pour changer la position d’une règle, il suffit de la faire glisser à la position souhaitée.

Exemples de règles :

ALLOW if #amount < 1000 and #transactions_amount_daily < 10000

Cet exemple autorise les transactions dont le montant est inférieur à 10 si la somme des montants des transactions de la journée est inférieur à 100.

REFUSE if #risk_score > 3 or (#ip_regions = 'ASIA_PACIFIC' and #card_region = 'ASIA_ PACIFIC')

Cette règle bloque les paiements si le score de risque dépasse 3 ou que l’IP utilisée ainsi que la région d’émission de la carte correspondent à la zone ‘ASIA_PACIFIC’.

THREE_D_SECURE if #card_country NOT IN ('FRA', 'USA', 'GBR') 

Cette règle demande une transaction 3D Secure si le pays de la carte n’est pas la France, les Etats-Unis, ou la Grande Bretagne.

ALLOW (#amount < 10000 and #transactions_amount_daily < 100000) or (#currency IN ('EUR', 'USD') and #transactions_amount_monthly < 1000000)

Cet exemple précédent AUTORISE les paiements SI le montant est INFÉRIEUR à 100 ET que la somme des montants des transactions du jour est INFÉRIEUR à 1000 OU que la devise est € ou $ ET que la somme des montants des transactions du mois est INFÉRIEURE à 10 000.

Les opérateurs logiques « AND » et « OR » ne sont syntaxiquement correct qu’en minuscule.

4.3. Les opérateurs de comparaison disponibles

  • = (égal)
  • != (différent de)
  • < (plus petit que)
  • <= (plus petit ou égal à)
  • in (dans ce qui va suivre)
  • not in (pas dans ce qui va suivre)

Les opérateurs de comparaison = , != , > , < , >= et <= doivent être suivis d’une valeur.

Les opérateurs IN et NOT IN sont suivis d’une liste de valeurs de comparaison.
Une liste de valeurs est entourée par des parenthèses et les valeurs à l’intérieur de la liste sont séparées par des virgules.

Exemple :

REFUSE if #currency NOT IN ('EUR', 'USD', 'GBP', 'CHF')

L’exemple présenté ci-dessus permet de refuser tous les paiements dont la devise n’est pas l’Euro, le Dollar US, la Livre Sterling ou le Franc Suisse.

Cette syntaxe évite d’écrire plusieurs règles ou plusieurs conditions dans la même règle.

4.4. Les valeurs disponibles :

En fonction du type de valeur, la syntaxe permettant de définir la valeur ne sera pas la même :

  • Entiers (valeur numérique sans décimale) : Syntaxe classique (ex : 100)
  • Doubles (valeur numérique avec décimales) : La valeur est définie avec un point comme séparateur de décimale (ex : 12.32)
  • Chaîne de caractères : La valeur est définie entre ‘quotes’ simples (ex : ‘FRA’)
  • Booléens : La valeur est true ou false (ex : false)
ℹ️ Les valeurs de "montants" doivent être renseignées en centimes (ex : pour 10 € on renseignera une valeur de 1000).

4.5. Les opérateurs logiques :

Les opérateurs disponibles sont AND et OR. Ils permettent de définir comment le moteur de règle va interpréter la succession de ces règles. Le « AND » permet une inclusion tandis que le « OR » une exclusion.

Exemple :

REFUSE if #amount < 1000 and #card_country != 'FRA'

L’exemple présenté ci-dessus permet de refuser les paiements dont le montant est inférieur à 10 € ET dont la carte n’est pas française. Si l’une ou l’autre des conditions définies n’est pas remplie, l’action ne sera pas exécutée.

Versement sortant

Les versements sortants sont des virements émis depuis votre compte de paiement CentralPay vers le compte bancaire associé.

Ils peuvent être réalisés manuellement depuis le Portail Marchand ou via l’API Payment, ou encore être automatisés selon la fréquence définie dans vos paramètres de reversement.

Depuis le Portail Marchand, seuls les profils utilisateurs titulaires du compte (dit « Legal ») peuvent paramétrer et exécuter les versements.

1. Modes de versement

1.1. Versement automatique

Le titulaire du compte peut définir la périodicité du versement automatique selon trois options :

  • Quotidienne
  • Hebdomadaire : choix du jour de la semaine (ex. chaque mardi)
  • Mensuelle : choix du jour du mois (ex. le 5 du mois)

Le service de versement automatique exécute chaque virement à 01h00 du jour sélectionné, à partir des fonds disponibles (AVAILABLE) sur le compte de paiement.

Cas d’un versement hebdomadaire programmé le mardi :
CentralPay exécutera la création du virement le mardi matin avec les fonds disponibles sur le compte de paiement jusqu’à 01h00.
ℹ️ En cas de versement quotidien, l’intégralité des fonds disponibles est virée chaque jour vers votre compte bancaire. 
Le solde de votre compte CentralPay est donc nul en début de journée.
Si vous devez effectuer des remboursements clients, ceux-ci pourront être réalisés à partir du début d’après-midi (vers 14h), une fois les fonds des transactions du jour crédités par les banques émettrices.
Une évolution permettra prochainement de différer les versements automatiques d’un ou plusieurs jours afin de conserver des fonds disponibles tout en maintenant une lecture comptable cohérente. Contactez le support si vous êtes concernés.

Lettrage des versements automatiques

Chaque versement automatique est associé à la liste détaillée des opérations incluses dans le virement. Cette fonction permet un rapprochement automatique entre les opérations encaissées et le versement correspondant.

Le détail des opérations d’un versement est accessible depuis le Portail Marchand Administration Mon compte Versements en sélectionnant le versement souhaité.

Le premier versement automatique ne contient pas encore de détail, car il initialise le système de lettrage. Les versements suivants incluent la liste complète des opérations concernées.

1.2. Versement manuel (via Portail Marchand ou API)

Un versement peut être exécuté manuellement depuis le Portail Marchand ou via l’API Payment. Le montant du versement peut être librement défini, dans la limite des fonds disponibles sur le compte.

Les ordres de versement effectués avant 05h00 sont exécutés immédiatement. Ceux créés après 05h00 sont exécutés le lendemain à 05h00.

2. Identification des opérations liées à chaque versement

Le lettrage des versements est une fonctionnalité du Portail Marchand qui associe chaque versement automatique à la liste détaillée des opérations incluses dans ce versement.

Périmètre : le lettrage s’applique exclusivement aux versements automatiques. Les versements manuels ne disposent pas de cette association automatique.

Contenu du détail : liste des opérations correspondant au versement, incluant les montants, dates de valeur et références nécessaires au rapprochement comptable.

2.1. Accéder au détail d’un versement automatique

Depuis le Portail Marchand Administration Mon compte Versements :

  • Sélectionnez le versement concerné dans la liste.
  • Ouvrez le détail du versement pour afficher les opérations associées.
  • Utilisez le bouton Exporter pour télécharger les données si nécessaire.

Ou, depuis le Portail Marchand Compte Mes opérations :

  • Filtrez par Type = Versement sortant ou par Date de valeur.
  • Dans la colonne Actions du versement, cliquez sur la flèche, puis sur Voir les opérations du versement.
ℹ️ Le premier versement automatique ne comporte pas de détail : il sert d’initialisation du lettrage.
Les versements automatiques suivants incluent la liste complète des opérations associées.

2. Disponibilité des fonds

Les versements comprennent uniquement les fonds disponibles (AVAILABLE) sur le compte de paiement. Les fonds issus d’une transaction par carte bancaire deviennent disponibles à J+2.

Exemple :
Une transaction carte réalisée le lundi apparaît en « Pending » le lundi, devient « Available » le mardi soir, le versement automatique est exécuté le mercredi à 01h00, et le virement SEPA est crédité sur le compte bancaire le jeudi.
Schéma de disponibilité des fonds
ℹ️ Le paramètre EscrowDate peut influer sur la date de disponibilité des fonds d’une transaction (cas spécifique aux partenaires / mandataires).

3. Création d’un versement manuel

3.1. Depuis le Portail Marchand

Seuls les utilisateurs titulaires du compte (« Legal ») ou disposant d’un rôle administrateur (« Natural Admin ») peuvent créer un versement manuel depuis le Portail Marchand.

Depuis le Portail Marchand Administration Mon compte Versements :

  • Cliquez sur Transferts externes.
  • Sélectionnez le compte d’émission.
  • Indiquez le montant du versement et l’IBAN destinataire.
  • Cliquez sur Confirmer le transfert.

Une fois validé, le versement est exécuté selon les délais mentionnés ci-dessus.

Recette Portail Marchand – Versements sortants
Production Portail Marchand – Versements sortants

3.2. Depuis l’API

La création d’un versement manuel peut également être réalisée via l’API Payment. Pour les détails techniques, consultez la documentation développeur : Développeurs Versement sortant .

4. Versements en devises via le réseau SWIFT

Les virements internationaux sont exécutés via le réseau SWIFT, contrairement aux virements SEPA utilisés dans la zone européenne. Ce service permet d’émettre des versements en euros ou dans d’autres devises vers des comptes situés hors zone SEPA.

Si le compte bénéficiaire n’est pas accessible via SEPA ou s’il s’agit d’un compte en devise, les versements peuvent être réalisés via SWIFT. Ce service est activé sur demande auprès de votre interlocuteur CentralPay.

ℹ️ Les virements SWIFT présentent des frais supérieurs aux virements SEPA. Il est possible de paramétrer un seuil de fonds disponibles avant déclenchement automatique des versements.

5. Retours, statuts et webhooks

Pour suivre le cycle de vie des versements et automatiser leur traitement :

  • Consulter la documentation des statuts de versement ➝
  • Consulter la documentation des webhooks de versement ➝

Import de fichiers

Service d’import de fichiers CentralPay

Le Service d’import de fichiers vous permet de piloter des opérations CentralPay en masse, en déposant de simples fichiers CSV plutôt qu’en appelant l’API ligne à ligne.

À ce jour, deux types de fichiers sont pris en charge :

  • Fichiers Customer : pour créer vos profils clients (customers) dans CentralPay, avec en option un compte bancaire (BankAccount) et/ou un mandat de prélèvement SEPA (SDD).
  • Fichiers Operation : pour déclencher des prélèvements SEPA (SDD) sur vos profils clients et/ou des virements SEPA sortants (SCT) vers les comptes bancaires de vos profils clients.

Pour chaque fichier déposé, CentralPay vous renvoie des fichiers de compte-rendu vous indiquant, ligne par ligne, ce qui a été accepté, refusé ou rejeté.

1. À qui s’adresse ce service ?

Ce service est conçu pour les marchands qui traitent des volumes d’opérations et préfèrent un échange par fichiers à une intégration API en temps réel : encaissements récurrents par prélèvement, versements sortants groupés, constitution ou migration d’un référentiel clients/mandats SEPA, etc.

L’échange s’effectue de façon asynchrone : vous déposez vos fichiers, CentralPay les traite, puis met à votre disposition les comptes-rendus.

2. Prérequis

2.1 Prérequis communs

  • Un compte marchand CentralPay actif avec accès au Portail Marchand.
  • Votre identifiant marchand (UUID) CentralPay. Les 8 premiers caractères de cet UUID servent à nommer vos fichiers (voir section 5.1 Règles communes à tous les fichiers).
  • La mise en place d’un canal d’échange sécurisé (SFTP, voir section 4. Mise en place du SFTP) sauf si un autre canal a été convenu avec votre interlocuteur CentralPay.
  • Une phase de recette avec l’équipe intégration CentralPay avant la mise en production.

2.2 Prérequis pour les opérations de virements SEPA sortants (CREDIT / SCT)

  • Le service de virement SEPA sortant doit être activé sur votre profil marchand.

2.3 Prérequis pour les opérations prélèvements SEPA (DEBIT / SDD)

Les prélèvements imposent des prérequis supplémentaires, à valider avant tout premier dépôt :

  • Votre ICS (Identifiant Créancier SEPA) doit être déclaré dans votre profil marchand CentralPay (démarche réalisée avec votre interlocuteur CentralPay).
  • Le service de prélèvement SEPA doit être activé sur votre profil marchand (démarche réalisée avec votre interlocuteur CentralPay).
  • Validation de la Conformité du mode de gestion des mandats. Dans ce parcours d’intégration, CentralPay ne recueille pas la signature du mandat : vous transmettez vous-même, dans le fichier Customer, la référence du mandat (MANDATE_RUM) et sa date de signature (MANDATE_SIGN_DATE). En conséquence :
    • Votre interlocuteur CentralPay doit valider en amont le principe de gestion des mandats par ce biais, qu’il s’agisse d’une migration de mandats existants ou de mandats nouvellement collectés par vos soins.
    • Vous restez responsable de la collecte, de la validité juridique et de la conservation des mandats signés, ainsi que de l’information préalable de vos clients (préavis, RUM, ICS).
Sans ces prérequis, les fichiers comportant des prélèvements ne pourront pas être traités, que ce soit en environnement de RCT ou de PROD.

3. Comment fonctionne le cycle de traitement ?

  1. Dépôt. Vous déposez vos fichiers CSV (Customer et/ou Operation) sur le SFTP, dans le dossier de dépôt.
  2. Contrôle technique (ACK). CentralPay vérifie chaque ligne (format, champs obligatoires, cohérence) et vous renvoie un fichier .ACK : chaque ligne y est marquée ACCEPTED ou REFUSED, avec le motif d’erreur le cas échéant.
  3. Traitement bancaire. Les lignes techniquement valides sont transmises aux circuits bancaires SEPA.
  4. Compte-rendu de règlement (SET). Pour les opérations, CentralPay produit des fichiers .SET indiquant l’avancement du règlement (ACCEPTED / PENDING / REFUSED) une fois les retours bancaires disponibles.
  5. Rejets post-règlement (RET). En cas de rejet SEPA survenant après le règlement (par exemple une contestation client), CentralPay produit un fichier .RET reprenant le motif et le montant retournés.
Les fichiers Customer ne génèrent pas de compte-rendu bancaire (.SET / .RET) : seul un .ACK est renvoyé.

4. Mise en place du SFTP

Le SFTP est le canal d’échange recommandé. Il garantit un dépôt et une récupération sécurisés, et permet à CentralPay de récupérer et traiter automatiquement vos fichiers.

4.1 Modèle d’échange

Le SFTP est hébergé par le marchand.

CentralPay se connecte à votre SFTP, récupère les fichiers dans un dossier de sortie et y dépose les comptes-rendus dans un dossier d’entrée.

4.2 Convention de dossiers

L’échange repose sur deux répertoires :

RépertoireSensContenu
Dossier de dépôt (nommé /OUT)Marchand → CentralPayVos fichiers Customer et Operation à traiter
Dossier de retour (nommé /IN)CentralPay → MarchandLes comptes-rendus .ACK, .SET, .RET

4.3 Étapes de mise en place

  1. Demander l’activation auprès de votre interlocuteur CentralPay.
  2. Échanger les accès : authentification par clé SSH.
    • Il convient de créer deux espaces : un SFTP dédié à la recette et un dédié à la production
    • Les informations du SFTP (hote + login) devront nous être fournies par email
    • Afin que nous puissions nous connecter à votre SFTP, une clé publique Centralpay (par environnement) vous sera communiquée
    • Par ailleurs, il est recommandé de mettre en liste blanche (whitelist) les adresses IP de CentralPay (celles-ci vous seront communiquées lors de votre intégration).
  3. Utilisation de l’arborescence définie précédemment (dossiers de dépôt /OUT et de retour /IN).
  4. Tester en recette avec un fichier d’exemple, valider la bonne réception des .ACK, puis basculer en production.

5. Préparer vos fichiers

5.1 Règles communes à tous les fichiers

  • Format : CSV. La ligne d’en-tête (header) est obligatoire dans tous les fichiers, en entrée comme en sortie.
  • Nommage :
    • Fichier client : <8 premiers caractères de votre UUID marchand en minucules>_CUST_<référence libre>.csv
    • Fichier opérations : <8 premiers caractères de votre UUID marchand en minucules>_OPER_<référence libre>.csv
    • La référence libre est à votre main (souvent un horodatage). Le nom complet ne doit pas dépasser 100 caractères.
    • Exemples : c494f877_CUST_20241025110500.csv · c494f877_OPER_20241025110500.csv
  • Montants : exprimés en unité mineure (centimes d’euro) et toujours positifs. Le sens (débit/crédit) est porté par la colonne OPERATION_TYPE, pas par le signe du montant.
  • Légende des colonnes dans les tableaux ci-dessous :
    • Obligatoire : la ligne est refusée si la valeur est absente.
    • Facultatif : peut être laissé vide.
    • Conditionnel : requis uniquement dans le cas décrit.

5.2 Fichier Customer

Ce fichier crée vos profils clients. Selon votre besoin, il peut créer en une seule ligne : le profil client seul, le client + un compte bancaire, ou le client + un compte bancaire + un mandat SDD.

ColonneFormatStatutDescription
MERCHANT_IDUUIDObligatoireVotre identifiant marchand CentralPay
MERCHANT_CUSTOMER_IDString(100)FacultatifVotre référence client interne (doit être unique). Fortement recommandé pour réconcilier vos opérations
DESCRIPTIONString(256)FacultatifChamp libre à votre usage
TYPEINDIVIDUAL / LEGAL_ENTITYObligatoirePersonne physique ou morale
SOCIAL_REASONString(35)ConditionnelRequis si TYPE = LEGAL_ENTITY (raison sociale)
FIRST_NAMEString(35)ObligatoirePrénom (du représentant légal si LEGAL_ENTITY)
LAST_NAMEString(35)ObligatoireNom (du représentant légal si LEGAL_ENTITY)
EMAILString(255)Facultatif
PHONEString(25)FacultatifFormat international +<indicatif><numéro>
ADDRESS_LINE_1String(255)Obligatoire
ADDRESS_LINE_2/3/4String(255)FacultatifCompléments d’adresse
POSTAL_CODEString(15)ObligatoireCaractères autorisés : lettres, chiffres, espace, tiret
CITYString(35)Obligatoire
COUNTRYCode ISO 3166 alpha-3ObligatoireEx. FRA
IBANString(34)ConditionnelRequis pour créer un compte bancaire (donc pour tout virement sortant ou prélèvement futur). Validé selon ISO 13616
BICString(11)ConditionnelRequis avec l’IBAN
MANDATE_RUMString(35)ConditionnelRequis pour créer un mandat SDD. Référence unique de mandat (RUM) du mandat déjà signé côté marchand
MANDATE_SIGN_DATEDate YYYY-MM-DDConditionnelRequis pour créer un mandat SDD. Date de signature du mandat
Logique « avec ou sans »

➜ Client seul : renseignez l'identité et l'adresse, laissez IBAN/BIC et les colonnes mandat vides.

➜ Client + compte bancaire (nécessaire pour un virement sortant futur) : ajoutez IBAN + BIC.

➜ Client + mandat SDD (nécessaire pour un prélèvement SEPA futur) : ajoutez IBAN + BIC + MANDATE_RUM + MANDATE_SIGN_DATE.

Exemple de fichier Customer

Télécharger l’exemple de fichier .csv « Customer »

Trois clients : un particulier (INDIVIDUAL, sans raison sociale) et deux personnes morales (LEGAL_ENTITY), chacun avec son propre compte bancaire et son mandat SDD.

À retenir sur cet exemple :

  • Le téléphone est au format international (+33..., sans le 0 initial).
  • Pour le client INDIVIDUAL, le champ SOCIAL_REASON est laissé vide (deux ; consécutifs) ; il est renseigné uniquement pour les LEGAL_ENTITY.
  • Chaque client a son propre IBAN/BIC et sa propre MANDATE_RUM. Les IBAN/BIC ci-dessus sont des coordonnées de test fournies pour la recette : remplacez-les par les coordonnées réelles de vos clients en production.

En retour, le fichier .ACK vous renverra pour chaque ligne acceptée un CUSTOMER_ID (UUID). Conservez ces identifiants : ce sont eux que vous réutiliserez dans vos fichiers Operation.

Colonnes ajoutées par CentralPay dans le fichier .ACK de retour :

ColonneDescription
STATUSACCEPTED ou REFUSED (pas de PENDING pour les fichiers customer)
ERROR_CODEValorisé si REFUSED (ex. INVALID_PARAMETERS)
ERROR_MESSAGEDétail technique (en anglais)
CUSTOMER_IDUUID du client créé, valorisé si ACCEPTED (à conserver pour vos opérations futures)

5.3 Fichier Operation

Ce fichier déclenche des opérations sur des profils clients déjà existants dans CentralPay.

ColonneFormatStatutDescription
MERCHANT_IDUUIDObligatoireVotre identifiant marchand CentralPay
POINT_OF_SALE_IDUUIDFacultatifPoint de vente concerné. Si vide, le point de vente par défaut est utilisé
MERCHANT_TRANSACTION_IDString(35)FacultatifVotre référence d’opération (unique chez vous)
DESCRIPTIONString(140)FacultatifDescription à votre usage
END_TO_END_IDString(35)FacultatifRéférence SEPA end-to-end visible par le client final.
À défaut, reprend MERCHANT_TRANSACTION_ID
REMITTANCE_INFOString(140)FacultatifLibellé SEPA (unstructured remittance information) visible par le client final. À défaut, reprend DESCRIPTION
CUSTOMER_IDUUIDConditionnelIdentifiant CentralPay du client. CUSTOMER_ID ou MERCHANT_CUSTOMER_ID doit être renseigné
MERCHANT_CUSTOMER_IDString(100)ConditionnelVotre référence client interne (alternative au CUSTOMER_ID généré par CentralPay)
MANDATE_RUMString(35)FacultatifPour cibler un mandat précis si le client en possède plusieurs (si OPERATION_TYPE = DEBIT)
AMOUNTEntierObligatoireMontant en centimes d’euro, valeur positive uniquement
CURRENCYCode ISOObligatoireEUR (devise euros obligatoire pour virements et prélèvements SEPA)
OPERATION_TYPEDEBIT / CREDITObligatoireDEBIT = prélèvement SEPA (SDD)
CREDIT = virement SEPA sortant (payout)
EXPECTED_SETTLEMENT_DATEDate YYYY-MM-DDFacultatifDate de règlement souhaitée. Par défaut : J+1 ouvré
Choisir le bon OPERATION_TYPE

➜ DEBIT (prélèvement) : Si vous souhaitez débiter le compte bancaire de votre client via un prélèvement SEPA. Nécessite que le profil client dispose d'un mandat SDD valide.

➜ CREDIT (virement) : Si vous souhaitez créditer le compte bancaire de votre client via un virement SEPA sortant. Nécessite que le client dispose d'un compte bancaire déclaré (IBAN/BIC).

Exemple de fichier Operation

Télécharger l’exemple de fichier .csv « Operation »

Cinq opérations sur les clients créés à l’étape précédente, référencés par leur CUSTOMER_ID (les UUID renvoyés dans le .ACK du fichier Customer) : trois prélèvements (DEBIT) et deux virements (CREDIT).

À retenir sur cet exemple :

  • Le client est désigné par son CUSTOMER_ID (UUID stable et unique). Il peut sinon être désigné par votre MERCHANT_CUSTOMER_ID mais vous devez vous assurer de son unicité et de son bon formatage.
  • MERCHANT_TRANSACTION_ID et END_TO_END_ID sont uniques pour chaque opération.
  • Les montants sont en centimes (4990 = 49,90 €) et toujours positifs ; c’est OPERATION_TYPE qui donne le sens (débit ou crédit).
  • REMITTANCE_INFO porte un libellé explicite, visible du client final sur son relevé. Privilégiez des caractères simples (norme SEPA : pas d’accents ni de caractères spéciaux).

Colonnes ajoutées par CentralPay dans les fichiers de retour :

Dans le .ACK (contrôle technique) :

ColonneDescription
STATUSACCEPTED, PENDING ou REFUSED
ERROR_CODEValorisé si REFUSED
ERROR_MESSAGEDétail technique
OPERATION_IDUUID de l’opération, valorisé si ACCEPTED (clé de suivi dans les fichiers suivants)

Dans le .SET (compte-rendu de règlement) :

ColonneDescription
STATUSACCEPTED, PENDING ou REFUSED
ERROR_CODEValorisé si REFUSED (ex. FRAUD_ALERT)
ERROR_MESSAGEDétail bancaire du refus
SETTLEMENT_DATEDate de valeur si ACCEPTED
OPERATION_IDUUID de l’opération

Dans le .RET (rejet post-règlement) :

ColonneDescription
REASON_CODECode de rejet SEPA (ex. AC04 = compte clos)
REASON_MESSAGEDétail textuel du rejet
RETURN_AMOUNTMontant retourné (positif)
RETURN_DATEDate du rejet
OPERATION_IDUUID de l’opération d’origine

6. Comprendre les fichiers de retour

6.1 Nommage des fichiers de retour

Les fichiers de retour reprennent le nom de votre fichier d’origine, suivi du type de compte-rendu, d’une empreinte de traitement et d’un horodatage :

<nom du fichier d'origine au format csv>.<ACK|SET|RET>-<hash>-<timestamp>.csv
  • <hash> : empreinte du fichier traité (permet de relier le retour au traitement).
  • <timestamp> : horodatage du traitement.

Exemple :

C494F877_OPER_20241025110500.csv.ACK-098f6bcd4621d373cade4e832627b4f6-20241025112500.csv

6.2 Les trois niveaux de compte-rendu

FichierQuandCe qu’il vous dit
.ACKImmédiatement après réceptionValidité technique ligne à ligne. Toutes les lignes sont retournées, y compris celles refusées
.SETUne fois les retours bancaires disponibles (opérations uniquement)Avancement du règlement. Seules les lignes ACCEPTED au niveau .ACK y figurent
.RETEn cas de rejet après règlement (opérations uniquement)Rejets SEPA postérieurs (ex. contestation client)
Délais indicatifs de règlement (jours ouvrés) : virement (SCT) 1 à 2 jours ; prélèvement SEPA (SDD) 3 à 5 jours. Un rejet post-règlement (.RET) peut survenir jusqu'à 8 semaines après l'opération en cas de contestation.

6.3 Bonnes pratiques de réconciliation

  • OPERATION_ID est la clé de correspondance entre les fichiers .ACK, .SET et .RET d’une même opération. Conservez-le.
  • CUSTOMER_ID (renvoyé dans le .ACK customer) est l’identifiant à réutiliser dans vos fichiers Operation.
  • Renseignez systématiquement vos propres références (MERCHANT_CUSTOMER_ID, MERCHANT_TRANSACTION_ID) pour faciliter le rapprochement de votre côté.

7. Erreurs fréquentes

7.1 Refus techniques (fichier .ACK)

CodeSignificationAction
MISSING_COLUMNSColonne(s) attendue(s) absente(s)Vérifier l’en-tête et la structure du CSV
INVALID_PARAMETERSValeur de champ invalideCorriger la donnée fautive (format, longueur, énumération)
BAD_ROWLigne mal forméeVérifier le séparateur et le nombre de colonnes de la ligne
COMPUTATION_EXCEPTIONErreur de traitement interneContacter le support CentralPay

(Liste non exhaustive. Les messages sont retournés ligne par ligne et peuvent concatener plusieurs erreurs.)

7.2 Anomalies de rapprochement client

MessageSignificationAction
No customer fetch errorLe client lié à l’opération est introuvableVérifier la cohérence du CUSTOMER_ID / MERCHANT_CUSTOMER_ID. Au besoin, déposer un fichier Customer pour les clients manquants
Too much customer found for merchantPlusieurs clients partagent le même MERCHANT_CUSTOMER_IDGarantir l’unicité de votre référence client ; nous contacter pour arbitrer (fusion / mise à jour)
Unexpected service responseErreur interne CentralPayContacter le support CentralPay

8. Points d’attention

  • La ligne d’en-tête est obligatoire dans chaque fichier.
  • Les montants sont en centimes et toujours positifs.
  • Une opération peut apparaître dans plusieurs .SET successifs si son statut évolue (PENDING → ACCEPTED/REFUSED).
  • Conservez le mapping OPERATION_ID / CUSTOMER_ID entre vos systèmes et CentralPay.
  • Toute première mise en place fait l’objet d’une recette avec l’équipe intégration avant production.

9. Démarrer

  1. Vérifiez vos prérequis, en particulier la chaîne ICS + service SDD + validation Conformité si vous prévoyez des prélèvements.
  2. Demandez l’ouverture du canal SFTP auprès de votre interlocuteur CentralPay.
  3. Préparez un fichier d’exemple et validez-le en recette.
  4. Passez en production.

Pour toute question sur la mise en place, contactez votre interlocuteur CentralPay ou le support.

Exports comptables

Vous pouvez réaliser plusieurs exports de votre compte aux formats CSV, EXCEL, ou JSON depuis votre Portail Marchand. Pour cela, paramétrez votre recherche avec les filtres disponibles sur la page de l’export souhaité, cliquez sur « Rechercher » puis « Exporter ». En quelques secondes, vous recevrez le fichier par email et pourrez le télécharger à tout moment depuis votre Portail Marchand Fichiers d’export .

1. Export comptable des opérations du compte

Cet export reprend l’ensemble des mouvements financiers débiteurs et créditeurs qui ont été réalisés sur votre compte : autorisations cartes, transactions cartes, transactions SDD, transactions SCT, transfers, payout, frais CentralPay, etc.

Vous disposerez du détail de chaque opération afin que vous puissiez le rapprocher facilement à vos factures ou vos dossiers.

L’export contient les données suivantes :

DénominationSignification
wallet_ididentifiant du compte
wallet_namenom du compte
owner_namenom de la société
value_datedate de valeur de l’opération
operation_idréférence Centralpay de l’opération
operation_datetimedate d’opération
source_typetype d’opération
source_idréférence permettant de lier plusieurs opérations
naturenature de l’opération
debit_amountmontant des opérations de type « débit »
credit_amountmontant des opérations de type « crédit »
currencydevise de l’opération
custom_referenceréférence personnalisée de l’opération
custom_labelnom personnalisé de l’opération
third_party_ididentifiant du destinataire de l’opération
third_party_labelnom du destinataire de l’opération
third_party_countrypays du destinataire de l’opération
payout_numbernuméro du payout

Accès :

Recette Portail Marchand – Opérations
Production Portail Marchand – Opérations

2. Télécharger le rapport financier mensuel

Chaque début de mois, en plus de la facture, un relevé de compte est généré, puis mis à disposition dans l’espace sécurisé de votre compte ( Mes comptes Relevés de compte ). Il présente les montants totaux de crédit et de débit réalisés, incluant un détail « dont fonds » et « dont frais » afin de distinguer la nature.

Nous vous proposons deux types de relevés : détaillé ou synthétique. 
- Le relevé détaillé fait apparaitre l'ensemble des opérations de la période sélectionnée.
⚠️ Si vous possédez un grand nombre d'opérations, il est possible que celles-ci n'apparaissent pas sur le relevé. Dans ce cas, nous vous conseillons de réaliser un export au format CSV, Excel ou JSON.
- Le relevé synthétique regroupe vos opérations par jour et par type d'opération, pour la période sélectionnée.
Pour bien comprendre votre relevé de compte détaillé :

A) Le total du montant des débits sur votre compte pour la période donnée :
– dont fonds : ensemble des débits de nature « fond » (versements sortants, etc.)
– dont frais : ensemble des débits de nature « frais » (frais CentralPay, etc.)

B) Le total du montant des crédits sur votre compte pour la période donnée :
– dont fonds : ensemble des encaissements sur votre compte (= chiffre d’affaires).
– dont frais : ensemble des opérations pour compenser des opérations ou ajuster des frais (remboursement de frais, etc.).

C) Solde de clôture du mois précédent le relevé.

D) Solde de clôture du mois du relevé téléchargé.

Accès :

Recette Portail Marchand – Documents
Production Portail Marchand – Documents

Exports de données

Vous pouvez réaliser plusieurs exports de votre compte aux formats CSV, EXCEL, ou JSON depuis votre portail Marchand. Pour cela, paramétrez votre recherche avec les filtres disponibles sur la page de l’export souhaité, cliquez sur « Rechercher » puis « Exporter ». En quelques secondes, vous recevrez le fichier par email et pourrez le télécharger à tout moment depuis votre Portail Marchand Compte Exports

1. Export des transactions cartes

Cet export vous permet d’obtenir le détail des transactions cartes que vous avez réalisées au cours d’une période donnée.
Cet export simplifie la lecture de vos transactions carte en agrégeant les opérations d’autorisations et de débit, et présente des données complémentaires spécifiques aux transactions cartes.

L’export contient les données suivantes :

DénominationSignification
transaction_creation_datedate de création
transaction_ididentifiant de transaction
transaction_amountmontant
transaction_currencydevise
transaction_payout_amountvaleur de devise de règlement
transaction_payout_currencydevise de règlement
transaction_commision_amountfrais sur la transaction
transaction_commision_currencydevise des frais
transaction_fee_amountfrais fixes par transaction
transaction_3ds3DS (0=non, 1=oui)
transaction_descriptiondescription définie par le marchand
transaction_sourceEC Ecommerce, DP Deposit, MO Mail order
transaction_bank_coderetour autorisation banque
transaction_statusstatut de la transaction
transaction_authorization_statusstatut de l’autorisation
transaction_authorization_codecode d’autorisation
transaction_capture_statusstatut de la capture
transaction_capture_datedate de la capture
transaction_capture_amountmontant de la capture
merchant_transaction_ididentifiant de transaction marchand
point_of_sale_ididentifiant du point de vente
point_of_sale_namenom du point de vente
merchant_ididentifiant marchand
merchant_namenom du marchand
dispute_amountmontant de la contestation
dispute_currencydevise de la contestation
dispute_datedate de la contestation
refund_amountmontant du remboursement
refund_currencydevise du remboursement
refund_datedate du remboursement
card_ididentifiant de la carte de paiement
card_first66 premiers chiffres de la carte
card_last44 derniers chiffres de la carte
card_cardholder_namenom du porteur
card_cardholder_emailemail du porteur
card_typetype de carte (crédit/débit/prepaid)
card_productnom du produit carte (Infinite, Gold…)
card_product_typecarte consumer ou corporate
card_commercial_brandréseau carte (VISA/Mastercard/CB)
card_regioncontinent d’origine de la carte
card_countrypays d’origine de la carte
card_establishment_namenom de l’établissement qui fournit la carte
customer_ididentifiant client
end_user_ipIP de l’utilisateur
end_user_languagelangue de l’utilisateur
browser_user_agentnavigateur de l’utilisateur
receipt_emailmail de réception de l’utilisateur
clearing_numbernuméro de clearing
merchant_category_codeactivité du marchand

Accès :

Recette Portail Marchand – Transactions
Production Portail Marchand – Transactions

2. Export des remboursements cartes

Cet export vous permet d’obtenir le détail des remboursements cartes que vous avez réalisées au cours d’une période donnée.

Accès :

Recette Portail Marchand – Remboursements cartes
Production Portail Marchand – Remboursements cartes

3. Export des contestations de transactions cartes

Cet export vous permet d’obtenir le détail des contestations de transactions cartes (disputes/chargebacks) que vous avez reçues au cours d’une période donnée.

Accès :

Recette Portail Marchand – Contestations cartes
Production Portail Marchand – Contestations cartes

4. Export des abonnements (cartes et SDD)

Cet export vous permet d’obtenir le détail des abonnements cartes et SDD que vous avez réalisés au cours d’une période donnée.

Accès :

Recette Portail Marchand – Abonnements
Production Portail Marchand – Abonnements

Webhooks

Les webhooks permettent d’adresser des notifications HTTP sur les URL de votre choix en fonction des évènements (events) qui surviennent sur votre profil Marchand CentralPay. Ces évènements correspondent à la création, au changement de donnée ou au changement de statut d’un objet des API CentralPay.

Le service permet ainsi d’avertir en temps réel votre système d’information, dès qu’un évènement intervient sur votre profil Marchand CentralPay. Par exemple, une transaction réussie ou échouée, la création d’un nouvel abonnement (subscription), un nouveau client (customer), la réception d’un impayé… 

Les webhooks sont classés en deux catégories :

  • Liés aux Points de Vente « POS »
  • Liés aux « Comptes »

Le serveur distant doit confirmer la bonne réception de la requête en retournant un code 2XX. Dans le cas contraire, une nouvelle requête sera adressée toutes les 5 min pendant 2h.

Pour s’assurer de la bonne réception des hooks, nous vous conseillons d’utiliser le service Webhook Site. Entrez l’URL donnée par le site et l’adresse mail, et effectuez vos tests. Une fois que vous êtes satisfait des réponses hooks, vous pouvez remplacer l’adresse mail et l’URL par les vôtres et effectuez un nouveau test.

Consultez la liste des webhooks dans la rubrique : Développeurs Webhook notifications

Liens de paiement

Informations générales

1. Les deux modes d’intégration de Smart Collection

La solution Smart Collection permet d’encaisser des paiements depuis divers moyens de paiement.

Vous pouvez au choix :

  • Créer et intégrer vos propres parcours de paiement (intégration CUSTOM), en consommant les services API de chaque moyen de paiement :
    • Transaction par carte ➝
    • Transaction par virement ➝
    • Transaction par prélèvement SEPA ➝

  • Utiliser nos parcours de demande de paiement sécurisés (intégration SMART), grâce à notre service dédié :
    • Demandes de paiement (PaymentRequest) ➝
    • Le paramètre EscrowDate peut influer sur la date de disponibilité des fonds d’une transaction (concerne uniquement les partenaires AGENT)
ℹ️ Si vous choisissez l'intégration SMART, certaines fonctionnalités spécifiques comme les R-transactions, la gestion des libellés bancaires, la gestion des IBAN Virtuels… sont présentées dans la documentation dans les rubriques CUSTOM dédiées à chaque moyen de paiement.

2. À propos de l’intégration SMART

La demande de paiement permet de générer un lien de paiement menant à une page de paiement hébergée par CentralPay. Votre client peut ainsi vous régler selon les conditions de règlement que vous avez déterminé (moyens et modes de paiement autorisés, délais de règlement, etc.). Les transactions ainsi créées sont automatiquement liées à la demande de paiement et permettent d’actualiser son statut (non payé, partiellement payé, payé, etc.).

La demande de paiement doit être alimenté des conditions de règlement de votre panier ou de votre facture :

  • Montant à régler
  • Moyens de paiement acceptés (carte, virement, prélèvement, initiation de paiement)
  • Modes de paiement acceptés (unitaire, par abonnement, paiement fractionné…)
  • Référence de commande
  • Description de commande
  • Coordonnés clients
  • Délais de règlement autorisé
  • Délais d’expiration du lien
  • …

Le lien de paiement peut être adressé à vos clients depuis :

  • Vos tunnels de vente ou interfaces web
  • Vos outils de communications (email, sms, courriers via QR code…)
  • Le service de notifications email / sms de CentralPay

La page de paiement permet ensuite au client de réaliser sa ou ses transactions :

  • Visualisation des informations de la demande de paiement
  • Sélection du moyen ou mode de paiement
  • Renseignement des données clients
  • Renseignement des coordonnées de paiement

Demandes de paiement

La demande de paiement (PaymentRequest) est le service vous permettant de générer des liens de paiement. Vous pouvez créer des demandes de paiement par API ou via le Portail Marchand. La demande de paiement peut également être couplé au service de notification de CentralPay, vous permettant d’adresser facilement un lien de paiement par email ou sms à vos clients et de programmer des relances automatisées.

1. Création par API

1.1. Créer une PaymentRequest

Vous trouverez ci-dessous les moyens de paiement disponibles et les valeurs API correspondantes dans le service PaymentRequest :

Moyen ou mode de paiement souhaitéValeurs API à renseigner
Paiements unitaires
Transaction par cartepaymentMethod[]=TRANSACTION
Caution carte (réservé aux activités de locations)paymentMethod[]=TRANSACTION
transaction[source]=DP
Vérification/Empreinte 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 Paiement par banque (virement standard)paymentMethod[]=SCT_TRANSACTION_PIS
Transaction par Paiement par banque (virement instantané par défaut, sinon standard)paymentMethod[]=SCT_TRANSACTION_PIS_IP
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 entrer en conflit et votre PaymentRequest pourra retourner une erreur. Par exemple, vous ne pouvez pas autoriser une TRANSACTION et une SUBSCRIPTION, cependant vous pouvez autoriser une TRANSACTION et un INSTALLMENT.

Voici les informations principales concernant d’autres valeurs à renseigner lors de la création d’une PaymentRequest :

DésignationDéfinition
amountMontant de la demande de paiement en centimes
merchantPaymentRequestIdRéférence personnalisée (votre numéro de commande ou facture par exemple) que vous pourrez utiliser pour rapprocher le paiement. Cette valeur sera visible par votre client dans la page de paiement
descriptionDescription personnalisée (nom du produit ou du service vendu). Cette valeur sera visible par votre client dans la page de paiement
additionalData[*]Donnée clé-valeur libre, vous permettant de transiter une ou plusieurs données (références de factures, numéro client etc…). N’est pas visible par votre client dans la page de paiement
createCustomerCréation TRUE / FALSE d’un compte Customer (permet notamment l’enregistrement du moyen de paiement client : carte, mandat SEPA, et création d’un IBAN virtuel dédié au Customer)
breakdown[customerId]Sélection d’un Customer déjà existant
ℹ️ Pour les transactions par virement SEPA, vous pouvez définir si vous souhaitez afficher l'IBAN Virtuel dédié au Customer ou générer un IBAN Virtuel à usage unique (SCT) depuis les paramètres de vos Points de Vente.

1.2. Envoyer une PaymentRequest par email / sms

Lors de sa création, vous pouvez demander à CentralPay d’adresser la demande de paiement à votre client. Il existe deux méthodes d’envoi :

  • Via le mailer par défaut des PaymentRequest : CentralPay adresse la demande de paiement depuis un modèle d’email/sms standardisé et depuis l’email expéditeur renseigné dans votre point de vente (ou à défaut l’email expéditeur de CentralPay « no-reply@centralpay.eu »).
    • Pour cela vous devez [prochainement]

  • Via le service de notification email/sms de CentralPay : CentralPay adresse la demande de paiement selon le scénario et les modèles de communication que vous avez paramétrés. Ce service permet notamment l’automatisation de relances clients, basés sur les paramètres de la demande de paiement (délais de paiement, avancement du paiement…).
    • Pour cela vous devez [prochainement]

1.3. Fonctions spécifiques

Envoyer une demande de paiement à montant libre (multi-moyens de paiements)

Il est possible d’autoriser la modification du montant à régler (avec pour maximum le montant initial), afin que vos payeurs puissent régler la somme due depuis plusieurs moyens de paiements ou à des moments différents.

Exemple :

Cas d'une demande de paiement de 500 € :

• Réglement de 250 € en virement, puis 250 € en carte
• Ou 300 € avec une première carte, puis 200 € avec une autre
• Ou réglemenet de 350 € avec une carte, puis revenir plus tard pour régler les 150 € restants avec cette même carte

Pour ce faire, vous devez [prochainement]

Envoyer une demande de paiement à plusieurs destinataires

Il est possible d’adresser une demande de paiement à plusieurs destinataires avec un montant différent à régler pour chacun d’entre eux. Ainsi :

  • Chaque participant reçoit une notification e-mail ou SMS détaillant l’objet du service à régler
  • Les montants sont fixés par l’initiateur ou laissé libre à chaque participant qui règle le montant souhaité
  • Les dates paramétrées à la demande (création, expiration…) permettent de générer des notifications vers chaque participant

Pour ce faire vous devez [prochainement]

2. Création depuis le Portail Marchand

2.1. Création et types de demandes de paiement

Vous pouvez créer une demande de paiement depuis le Portail Marchand Demandes de paiement Liens de paiement Créer .

Les demandes de paiement créées depuis le Portail Marchand sont obligatoirement adressées à vos clients par CentralPay. En fonction de vos besoins, vous devrez choisir l’un des types de demandes suivant :

  • Demande instantanée : Une demande simple, envoyée depuis les expéditeurs et les templates emails / sms standards de CentralPay
  • Demande programmée : Une demande avancée, utilisant les modèles de communication, scénarios et règles d’envoi/de relance que vous aurez préalablement paramétrés depuis le service de notifications email/sms de CentralPay. Une demande programmée adressée sans avoir sélectionné de scénario de notification sera automatiquement requalifiée en demande instantanée

Une fois créée, vous pouvez accéder à la page de paiement en cliquant sur le détail de la demande de paiement Formulaire de paiement . Ainsi, vous pourrez retransmettre à votre client l’URL de la page en cas d’erreur d’envoi.

Accès :

Recette Portail Marchand – Demandes de paiement
Production Portail Marchand – Demandes de paiement

2.2. Les profils de demandes de paiement

Afin de faciliter la création de demandes de paiement, vous avez la possibilité de créer des profils prédéfinis intégrant les principaux paramétrages de la demande :

  • Point de vente
  • Devise
  • Langue
  • Moyens de paiement autorisés
  • Limite de paiement (délais de paiement contractuel)
  • Expiration du lien (délais avant expiration du lien)
  • Scénarios de notification
  • Reroutage de l’email de confirmation de paiement
  • Règles d’affichage (paramètres de la page de paiement)
  • Création de Customer
  • Pièces jointes

Vous pouvez ensuite utiliser ce profil lors de la création de vos demandes de paiement programmées via le Portail Marchand, ou via import de fichiers plats.

2.3. Création de demandes de paiements par import de fichiers plats

Depuis le Portail Marchand Demandes de paiement Liens de paiement Importer , vous pouvez déposer un fichier d’importation de demandes de paiement. Cette utilisation peut être recommandée pour les entreprises souhaitant adresser en fin de mois et relancer automatiquement une liste de créanciers.

Télécharger le modèle :

  • Au format CSV➝
  • Au format JSON ➝

Quelques informations importantes :

DésginationDéfinition
profil_uuid*UUID du profil de demande de paiement
merchant_payment_request_idRéférence personnalisée (votre numéro de commande ou facture par exemple) que vous pourrez utiliser pour rapprocher le paiement. Cette valeur sera visible par le payeur dans la page de paiement.
descriptionDescription personnalisée (nom du produit ou du service vendu). Cette valeur sera visible par votre client dans la page de paiement.
total_amount*Montant de la demande de paiement. À renseigner en doubles décimales avec un séparateur « . » (ex : 500.00 pour 500€).
last_nameNom de famille
first_namePrénom
email*Email du destinataire
phoneTéléphone du destinataire au format international (ex : 33612345678).
create_customerCréation d’un profil client « Customer » : renseigner « O » pour OUI ou « N » pour NON
link_expiration_dateDate d’expiration de la demande de paiement (date à laquelle le client ne pourra plus vous régler)
deadlineDate limite de paiement (date à laquelle votre client doit vous avoir réglé, et à partir de laquelle il est en retard de paiement).
receipt_emailEmail sur lequel vous souhaitez rerouter l’email de confirmation de paiement
language*Langue de la communication et de la page de paiement (FRE pour français, ENG pour anglais…)
Les champs avec un * sont obligatoires.

Page de paiement (SmartForm)

La page de paiement (aussi appelée SmartForm) est une page hébergée et sécurisée par CentralPay destinée à la collecte des données clients et de leurs coordonnées de paiement. Générée via le service de demande de paiement, elle permet à vos clients de visualiser les détails de cette demande (montant, référence de commande…) et de sélectionner un moyen de paiement autorisé avant de passer à l’étape de règlement.

1. Paramétrage de la page

Vous pouvez créer un ou plusieurs modèles de page afin de personnaliser votre parcours de paiement. Ci-dessous la liste des éléments paramétrables sur la page :

DésignationDéfinition
NomNom du modèle de page
Template par défautCoche permettant de définir si ce modèle doit s’appliquer par défaut (les demandes de paiement créées sans modèle utiliseront ce dernier)
Forcer la création du CustomerCoche permettant de forcer systématiquement la création d’un Customer à la création de la demande de paiement. Le paramètre de création du Customer renseigné sur les demandes de paiements sera ignoré. Note : CentralPay ne créera pas de nouveau Customer si son email ou son numéro de téléphone sont déjà utilisés par un autre Customer, et affectera la demande à ce dernier
URL de redirectionURL de redirection après paiement. URL fixe, vous pouvez cependant choisir d’alimenter dynamiquement cette valeur par API pour chaque PaymentRequest si tel est votre besoin
Délais de redirectionDélais de redirection vers l’URL de redirection après paiement. Champ vide : pas de redirection, 0 : redirection immédiate, autre valeur : nombre de secondes avant la redirection
URL d'annulationURL de redirection en cas d’annulation avant paiement. URL fixe, vous pouvez cependant choisir d’alimenter dynamiquement cette valeur par API pour chaque PaymentRequest si tel est votre besoin
Couleur du texteCouleur du texte de la page de paiement
Couleur des boutonsCouleur des boutons de la page de paiement
Champs supplémentairesChamps supplémentaires qu’il est possible d’ajouter aux parcours de paiement par carte (CB) ou par virement. Utilisé pour collecter des données clients complémentaires si nécessaire (adresse, nom, prénom…)

Accès :

Recette Portail Marchand – Paramétrage formulaire
Production Portail Marchand – Paramétrage formulaire

2. Personnalisation du logo affiché sur le SmartForm

Le logo affiché sur le SmartForm est celui que vous aurez renseigné dans les paramètres du point de vente utilisé pour votre demande de paiement. Par défaut, le logo de CentralPay est affiché.

Retours, statuts et hooks

1. Statuts liés aux demandes de paiement

Consultez les Statuts Payment Request ➝

2. Webhooks liés aux demandes de paiement

Les demandes de paiement permettant indirectement la création de transactions cartes, SCT et SDD mais aussi d’autres objets comme les Customer, Subscription ou Installment, selon les cas d’usages, il peut être utile de suivre les webhooks associés.

Consultez les Webhooks PaymentRequest ➝

Consultez les Webhooks Transaction ➝

Consultez les Webhooks SCT Transaction ➝

Consultez les Webhooks SDD Transaction ➝

Consultez les Webhooks Customer ➝

Consultez les Webhooks Subscription ➝

Consultez les Webhooks Installment ➝

Transaction par carte

Informations générales

1. Fonctionnement

Une transaction carte comprend une succession d’actions :

1.1. Authentification 3DS 2.0

Elle permet de s’assurer que la personne réalisant la transaction est bien le titulaire de la carte. La banque du client analyse les nombreux facteurs liés au paiement adressés par CentralPay (adresse IP, localisation, appareil utilisé, etc.) et les compare aux données habituelles de son client :

  • Si les données ne concordent pas ou que le montant de la transaction est important, elle requière une identification manuelle via un code adressé par SMS ou via son application bancaire (« authentification forte » ou « SCA »)
  • Sinon, elle autorise directement le paiement (« Frictionless »)

1.2. Autorisation bancaire

Demande effectuée par CentralPay à la banque du payeur permettant de vérifier la validité et la provision de sa carte. Les fonds « autorisés » sont bloqués jusqu’à la réalisation de la capture des fonds. Si aucune capture n’est réalisée sous un délai de 7 jours, les fonds « autorisés » sont libérés et le marchand devra renouveler son autorisation.

Pour les activités éligibles (location, hôtellerie, etc.), le service de « pré-autorisation » donne la possibilité au marchand d’étendre le délai d’autorisation jusqu’à 30 jours.

1.3. Capture

La capture permet d’initier le débit de la carte sur la base d’une autorisation ou d’une pré-autorisation. Un marchand peut réaliser une capture complète ou partielle du montant autorisé.

2. Types et réseaux de cartes acceptés

Les cartes de paiement sont émises par les banques ou les établissements de paiement agréés, elles peuvent être badgées par un ou plusieurs réseaux de carte (aussi nommés « Card Scheme »).

Les réseaux acceptés par CentralPay sont :

  • Carte Bancaire
  • VISA
  • MasterCard
  • American Express

En France, la majorité des cartes émises sont co-badgées CB et VISA ou CB et Mastercard. Dans ce cas, le client doit avoir la possibilité de choisir le réseau qu’il souhaite utiliser.

Les cartes peuvent être de débit ou de débit différé / crédit (en France la majorité des cartes sont de débit), et peuvent être des cartes de particulier (dit « Consumer ») ou des cartes de professionnels (dit « Corporate »).

À noter que ces paramètres impactent le coût de la transaction pour le marchand (interchange bancaire et frais de réseaux carte).

Formulaire de paiement CUSTOM

Le service API Transaction permet d’effectuer une autorisation suivie d’une capture des fonds sur la carte bancaire de votre client. Tous les modes de paiement par carte (paiement simple, récurrents, MoTo, etc.) sont gérés via ce service.

Lorsqu’un client souhaite effectuer un premier paiement, ses données de carte doivent être collectées pour générer un cardTokenId, grâce au service de tokenisation « token.js » de CentralPay. Ce token temporaire permet ensuite de créer une ressource Card, identifiée par un cardId, pouvant être enregistrée dans un objet Customer. Ce rattachement est indispensable pour permettre des paiements ultérieurs sans redemander la carte (paiement en 1 clic, récurrents, etc.).

ℹ️ Avec un formulaire de paiement personnalisé (CUSTOM FORM), l'intégration de l'authentification 3DS 2.2 est obligatoire avant d'exécuter une transaction.

Schéma du flux de paiement avec cardTokenId :

ℹ️ Si vous disposez d'une certification PCI-DSS de niveau 1 et que vous gérez les données de carte, vous pouvez directement créer un objet /card en envoyant les données (PAN, date d'expiration, CVC) à l'API, sans passer par token.js.

1. Prérequis

1.1. Déclarer vos domaines

Avant d’utiliser le token.js, vous devez déclarer les domaines hébergeant vos formulaires Custom dans votre Portail Marchand. Allez dans Administration Mon profil marchand Technique Modifier , puis complétez le champ Hosts Custom Forms autorisés.

Accès :

Recette Portail Marchand – Administration
Production Portail Marchand – Administration

1.2. Sécuriser votre formulaire

Assurez-vous que vos pages de paiement utilisent le protocole HTTPS avec TLS 1.2 ou supérieur.

1.3. Conformité PCI-DSS

L’utilisation de token.js implique que vous gérez vous-même l’affichage du formulaire et le déclenchement du token. Cette méthode impose de respecter les exigences PCI DSS SAQ A-EP.

Téléchargez le formulaire A-EP ➝

2. Intégration du formulaire de paiement

2.1. Créer un formulaire de paiement HTML

Contrairement au Smart Form hébergé par CentralPay, le Custom Form est créé par vos soins, via votre propre code HTML. Vous devez implémenter les champs suivants :

  • Numéro de carte : 16 chiffres pour CB/Visa/Mastercard, 15 pour American Express
  • Date d’expiration : format MM/AAAA
  • CVC : 3 chiffres (CB/Visa/Mastercard), 4 chiffres (Amex)

Vous pouvez consulter nos exemples de formulaires Custom Form :

  • Consultez l’exemple de formulaire Custom Form sans 3DS 2.2 ➝
  • Consultez l’exemple de formulaire Custom Form avec 3DS 2.2 ➝

2.2. Intégration du script token.js

Ajoutez dans votre page le script token.js pour générer un cardTokenId :

<script src="https://js.centralpay.net/js/token.js"></script>

Ajoutez ensuite votre clé publique marchand (MerchantPublicKey) dans un tag distinct :

<script type="text/javascript">
  window.Centralpay ? Centralpay.card.setMerchantPublicKey('VOTRE_CLE_PUBLIQUE') : alert('Error loading html form');
</script>

Vous pouvez voir où retrouver votre MerchantPublicKey depuis la page Authentification de nos API.

Intégration dans une application mobile

Si vous utilisez une WebView dans votre application, vous pouvez intégrer soit un formulaire personnalisé avec token.js, soit un formulaire hébergé via le service PaymentRequest. Ces options vous permettent d’externaliser la collecte des données carte tout en offrant une expérience utilisateur fluide.

Dans une application mobile native, le script token.js n’est pas compatible. Vous devez alors collecter les données de carte via les champs de l’application, puis appeler directement l’API cardToken en utilisant votre merchantPublicKey.

L’appel à l’API cardToken doit inclure un en-tête HTTP Origin correspondant à une URL déclarée dans votre profil Marchand CentralPay (voir 2.1 Prérequis).

Pour vos tests, vous pouvez utiliser l’Origin suivant : https://example.centralpay.net

ℹ️ Pour les applications mobiles natives, les données de carte sont transmises directement depuis le device de l’utilisateur vers CentralPay, sans passer par les serveurs du marchand. Cependant, ce type d’intégration nécessite de veiller à respecter les exigences de sécurité et de conformité PCI-DSS applicables à la collecte et la transmission de données de carte dans un environnement natif.

2.3. Créer un Customer et rattacher une carte

ℹ️ Le cardTokenId est un token à usage unique, dont le CVC est temporaire (10 minutes en production, 5 minutes en RCT). Passé ce délai, le token expire automatiquement (status=EXPIRED) et ne peut plus être utilisé, ce qui entraînera l’erreur suivante : "cardTokenId": "Card token already used". 

Que vous utilisiez la carte immédiatement (paiement simple) ou que vous souhaitiez la réutiliser plus tard (paiement en 1 clic, récurrent, etc.), il est recommandé de commencer par créer un objet Customer, puis d’enregistrer une Card à l’aide du cardTokenId. L’authentification 3DS 2.2 pouvant parfois allonger le délai de traitement, cette séquence permet d’éviter l’expiration du CVC associé au cardToken.

  1. Créez un objet customer via l’endpoint POST /customer ou récupérez le customerId s’il est déjà connu
  2. Créez une card en utilisant POST /card en spécifiant le cardTokenId émis par le token.js et le customerId

Une fois la card rattachée à un customer, le CVC devient permanent et les transactions futures peuvent être initiées sans limite de temps.

Si vous n'utilisez pas le token.js (certification PCI-DSS requise), vous pouvez directement créer une card sans passer par le cardToken en fournissant le PAN + expiration + CVC + customerId

3. Authentification 3DS 2.2

Avant d’initier une transaction par carte, vous devez vérifier l’identité du porteur via une authentification 3DS 2.2. Cette étape est obligatoire pour les transactions carte unitaire comme pour les transactions carte récurrente.

ℹ️ Exception : Les transactions de type MoTo (Mail Order / Telephone Order) ne sont pas soumises à l’authentification 3DS. Vous pouvez créer la transaction directement après la création de la carte.

Authentification 3DS 2.0

Le protocole 3D Secure 2.0 permet de s’assurer que la personne réalisant la transaction est bien le titulaire de la carte. La banque du client analyse les nombreux facteurs liés au paiement adressés par CentralPay (adresse IP, localisation, appareil utilisé…) et les compare aux données habituelles de son client :

  • Si les données ne sont pas concordantes ou que le montant de la transaction est important, elle requière une identification manuelle via un code adressé par SMS ou via son application bancaire (« authentification forte » ou « SCA »)
  • Sinon, elle autorise directement le paiement (« Frictionless »)

1. Caractéristiques

Il existe deux types de 3DS, selon si vous souhaitez initier une transaction classique (pour laquelle le porteur est présent) ou si vous exécutez une échéance de paiement récurrent (pour laquelle le porteur n’est pas présent) :

1.1. Le 3DS 2 « BRW » ou « Browser Authentication » (porteur participant – 1ère transaction)

Il représente la majorité des intégrations de 3DS 2. Il requiert l’authentification du client afin de vérifier qu’il est bien le porteur légitime de la carte au moment de la transaction. Il déclenche si nécessaire un challenge qui vérifie l’identité du porteur de carte (SCA).

👉 Découvrez comment intégrer le 3DS 2.0 BRW ➝

1.2. Le 3DS2 « 3RI Authentification » (porteur non participant – échéances de paiements récurrents)

Le 3DS Requestor Initiated (3RI) Authentications, ou Authentification Initialisée par le marchand, est utilisée lorsque le porteur n’est pas présent ou non participant.

Le 3RI offre la possibilité de générer les authentifications 3DS nécessaires sans que le client ne soit impliqué. Cela permet d’utiliser une authentification générée précédemment avec un client. Elle est utilisée dans les contextes suivants de paiements récurrents : Paiement fractionné, Abonnement, Refund, etc.

👉 Découvrez comment intégrer le 3DS 2.0 3RI ➝

Transaction carte

Selon les besoins de votre activité, CentralPay propose divers modes de transactions unitaires via son service API Transaction.

Attention, vous devez au préalable gérer la collecte des données carte de votre client en créant un formulaire de paiement Custom Form et intégrer l’authentification 3DS 2.0.

Les principes de base d’une transaction carte sont décrits dans la rubrique informations générales.

1. Autorisation et capture instantanée

Pour réaliser un paiement simple par carte (autorisation puis capture instantanée) :

  • Réaliser une Transaction en renseignant le paramètre « source » avec la valeur « EC »

2. Autorisation et capture différée

Ce mode de transaction peut être utile si vous souhaitez bloquer les fonds de votre client avant de le débiter définitivement, le temps de la validation de votre commande par exemple. Ainsi, vous pouvez annuler l’opération sans être soumis aux frais de transaction ou de remboursement.

Pour réaliser un paiement par carte avec capture différée (autorisation puis capture différée), vous devez :

  • Réaliser une autorisation en renseignant le paramètre « capture » de la Transaction avec la valeur « false ». Les fonds seront ainsi bloqués sur la carte du client
  • Puis débiter le montant souhaité en initiant une capture sur le transactionId reçu en précisant le montant souhaité (« amount »)

Vous avez 7 jours calendaires suivant l’autorisation pour réaliser la capture, à défaut les fonds du client seront libérés.

3. Pré-autorisation et capture différée

Le service de pré-autorisation et capture différée (ou caution / PLBS) permet d’effectuer une pré-autorisation d’un certain montant, que vous pourrez ensuite capturer partiellement ou pleinement sous 30 jours. Durant cette période, les fonds vous sont garantis, ils sont donc bloqués sur la carte et ne peuvent être utilisés par votre client.

Ce service n’est accessible qu’à certaines activités autorisées (locations de véhicules ou de matériels, hôtellerie…).

Pour réaliser une pré-autorisation et capture différée, vous devez :

  • Réaliser une pré-autorisation en renseignant le paramètre « source » de la Transaction avec la valeur « DP ». Les fonds seront ainsi bloqués sur la carte du client
  • Puis débiter le montant souhaité en initiant une capture sur le « transactionId » reçu en précisant le montant souhaité (« amount »)

Vous avez 30 jours calendaires suivant l’autorisation pour réaliser la capture, à défaut les fonds du client seront libérés.

4. Vérification carte (empreinte sécurisée)

Le service d’empreinte & vérification carte permet d’effectuer une autorisation à 0€ avec authentification du porteur (3DS 2.0). Ainsi, vous disposerez des informations concernant la carte de votre client (carte de débit, de crédit, prépayée…), et vous vous assurerez qu’elle n’est pas frauduleuse (carte non volée, porteur identifié…). Ce service est généralement utilisé pour enregistrer une carte avec 3DS en vue d’un abonnement avec une date de démarrage différée.

Pour réaliser une prise d’empreinte et une vérification carte (autorisation à 0€ sans capture), vous devez :

  • Réaliser une Transaction en renseignant le paramètre « source » avec la valeur « RI »
  • Nous vous recommandons également de créer un « customer » lors de la transaction, afin d’associer le « cardId » ainsi généré et de vous permettre un éventuel débit ultérieur de cette carte

5. Débit carte seul (MO/TO)

Le service de paiement MOTO (Mail Order / Telephone Order) permet d’effectuer une autorisation puis une capture d’une carte, sans la présence de son porteur. Il est généralement utilisé par les hôtels pour le débit de services ou de consommations additionnelles en fin de séjour.

Attention, ce service n’est accessible qu’à certaines activités autorisées (hôtellerie…), et apporte des résultats de conversion de moins en moins performants depuis la directive DSP2, car elle ne permet pas l’authentification du porteur de carte.

Pour réaliser un paiement MOTO, vous devez :

  • Réaliser une Transaction en renseignant le paramètre « source » avec la valeur « MO » (Mail Order) ou « TO » (Telephone Order)

6. Paiement par carte en 1 clic

Le paiement par carte en 1 clic consiste à enregistrer les données cartes de votre client, afin qu’il puisse régler sa commande sans avoir à les ressaisir. La ou les cartes du client sont stockées de manière sécurisée dans le Customer CentralPay. Il est dans ce cadre nécessaire de permettre à votre client de sélectionner la carte qu’il souhaite utiliser ou d’ajouter une nouvelle carte.

Pour réaliser un paiement par carte en 1 clic, vous devez :

  • Sélectionner l’option « One-click » dans la configuration du point de vente
  • Vous assurez que vos Customer ont une carte liée à leur profil

Transaction carte récurrente

Selon les besoins de votre activité, CentralPay propose plusieurs modes de transactions récurrentes :

  • Abonnement depuis un modèle d’abonnement
    CentralPay gère le prélèvement des échéances selon un modèle d’abonnement que vous avez défini en amont.
  • Abonnement piloté par API
    Vous pilotez le prélèvement de chaque échéance vous-même par API (authentification BRW initiale, puis 3RI), sans recourir au service d’abonnement automatisé par CentralPay
  • 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.2.

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.2 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 piloté par API

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.2 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.2 BRW

Ensuite, le service de paiement fractionné (Installment) vous permettra d’initier facilement un paiement fractionné en se basant sur les éléments renseignés dans votre requête.

Transaction carte via wallet

1. Apple Pay (Smart Form)

Apple Pay est intégré nativement au parcours de paiement carte du SmartForm (PaymentRequest > paymentMethod[]=TRANSACTION) dès que l’appareil de votre client est compatible.

Aucune action n’est requise de votre part. Le service est entièrement opéré par CentralPay (détection de l’appareil, gestion des certificats et des tokens Apple, sécurité PCI-DSS). Aucune donnée de carte n’est exposée côté marchand (périmètre PCI-DSS SAQ-A).

2. Apple Pay (Custom Form)

2.1. Prérequis

1. Créer un compte Apple Developer :

  • Inscrivez-vous au programme Apple Developer
  • Créez vos identifiants de marchand Apple Pay (Merchant ID)
  • Générez votre certificat de traitement Apple Pay via le portail Apple
  • Déclarez votre domaine (Apple Pay Merchant Domain)

2. Intégration côté device :

  • Implémentez Apple Pay côté frontend via Apple Pay JS (pour les sites web) ou PassKit (pour les apps iOS)
  • Collectez le token Apple Pay (ApplePayToken) après validation du paiement par l’utilisateur (Face ID, Touch ID…)
🔐 Certificats requis pour une intégration Apple Pay (https://developer.apple.com/help/account/certificates/create-a-certificate-signing-request)

Pour traiter des paiements Apple Pay dans le cadre d’une intégration directe, le marchand doit disposer des éléments suivants :
• un certificat Merchant ID Identity ;
• un certificat Merchant Payment Processing G2.

Le marchand doit veiller à conserver l’ensemble des clés privées utilisées lors de la génération des CSR associées à ces certificats.

1. Merchant ID Identity
La génération d’un CSR basé sur une clé EC (256 bits) est requise.
Cette CSR sera générée par Centralpay

2. Merchant Payment Processing Certificate

Étapes principales :
• Demander le CSR généré par Centralpay
• Soumettre le CSR depuis le compte développeur Apple afin d’obtenir le Merchant Payment Processing Certificate.
• Installer le certificat sur le même poste macOS ayant servi à la génération de la CSR afin qu’il soit associé à la clé privée.
• Exporter l’identité complète au format .p12 (certificat + clé privée).

⚠️ Si l’option d’export au format .p12 n’est pas disponible, cela indique qu’une étape du processus n’a pas été correctement réalisée (clé privée manquante ou non associée).

Le fichier .p12 constitue un conteneur sécurisé permettant l’exploitation ultérieure de la clé privée associée au certificat, conformément au flux Apple Pay.

Notes importantes :
• Toute perte de la clé privée nécessite la recréation complète du certificat depuis le portail Apple Developer.
• La documentation Apple Pay peut prêter à confusion : l’utilisation d’OpenSSL ne concerne que le certificat Merchant ID Identity, et ne s’applique pas au Merchant Payment Processing Certificate.

2.2. Via token Apple Pay déchiffré

CentralPay permet le traitement des paiements par carte effectués via Apple Pay, dans le cadre d’une intégration Custom (hors Smart Form).

ℹ️ CentralPay ne prend actuellement en charge que les tokens Apple Pay déchiffrés. Cette méthode implique une responsabilité PCI-DSS importante de votre part (formulaire SAQ-D). Renseignez-vous et assurez-vous d'être en conformité avant de développer ce mode d'intégration.

Étape 1 : Déchiffrement du token Apple Pay (Backend)

Le déchiffrement du token Apple Pay doit être effectué sur votre backend, à l’aide de :

  • Votre certificat de traitement Apple Pay
  • Votre clé privée
  • La documentation Apple : Payment Token Format

Le résultat contiendra :

{
  "applicationPrimaryAccountNumber": "5454********2664",
  "applicationExpirationDate": "YYMMDD",
  "paymentData": {
    "cryptogram": "base64-cryptogram",
    "eciIndicator": "05"
  }
}

Étape 2 : Création du cardToken CentralPay (Backend)

Utilisez l’endpoint POST /cardToken de l’API CentralPay

ChampDescription
card[number]PAN de la carte extrait du token Apple Pay
card[expirationMonth]Mois d’expiration de la carte (format MM)
card[expirationYear]Année d’expiration de la carte (format YYYY)
onlinePaymentCryptogramCryptogramme issu du token Apple Pay (CAVV)
eciIndicatorIndice d’authentification issu du token Apple Pay (eci)
applePayTransactionIdID de la transaction Apple Pay
amountMontant en centimes (ex : 2500 = 25,00 €)
currencyCode alpha ISO (ex : EUR, USD, etc.)
merchantPublicKeyClé publique fournie par CentralPay
ℹ️ Où trouver la merchantPublicKey ?
Connectez-vous à votre portail CentralPay Back Office Administration Technique Merchant Public Key

Exemple :

card[number]=5454696696312664
card[expirationMonth]=12
card[expirationYear]=2031
onlinePaymentCryptogram=MGnp3S1LBgJxAANgdNCRAoABFIA=
applePayTransactionId=3d2b17abed2696ca...
amount=2500
currency=EUR
merchantPublicKey=abcdef123456...

Le cardToken généré contient toutes les données nécessaires à l’authentification Apple Pay.

Étape 3 : Création de la transaction CentralPay (Backend)

Utilisez l’endpoint POST /transaction de l’API CentralPay

Champs requis :

cardToken=...
amount=2500
currency=EUR
pointOfSaleId=...
endUserIp=...
merchantTransactionId=...

Le cardToken encapsule déjà le contexte Apple Pay et les données d’authentification.

Étape 4 : Testing avant mise en production

L’environnement de test CentralPay permet de valider l’ensemble de votre intégration Apple Pay sans déclencher de véritables paiements. Il est fortement recommandé d’utiliser cet environnement pour toutes les phases de développement, de debug et de validation côté frontend comme backend.

Portail de test
API de test
Cartes de test

Différences entre environnement de test et de production :

  • Les URLs des API sont différentes : Elles utilisent le préfixe test-
    • Test : https://test-api.centralpay.net/v2/rest/transaction
    • Production : https://api.centralpay.net/v2/rest/transaction
  • Les identifiants API (login + secret) sont propres à l’environnement de test. Ils ne sont pas interchangeables avec ceux de production
  • La clé publique CentralPay (merchantPublicKey) est également spécifique à l’environnement

2.3. Via token ApplePay chiffré (hybride)

ℹ️ Si cette méthode d’intégration vous intéresse, veuillez contacter le support CentralPay afin de connaître les livrables associés et les modalités d’accès.

2.3.1. Paramétrage du compte Apple

– Se connecter sur « https://developer.apple.com/« , créer un compte et valider le compte ‘developer’ à 99$)

– Aller sur https://developer.apple.com/account/resources/identifiers/list

– Dans « App IDs », choisir « Merchant IDs » :

Puis cliquer sur le « + » pour ajouter un « Identifier » :

Choisir « Merchant IDs » : 

Renseigner le nom de l’identifier et cliquez sur « Register » : 

Aller à https://developer.apple.com/account/resources, puis cliquer sur Identifiers 

Sur Identifier, sélectionner un Merchant IDs en utilisant le filtre en haut à droite

Sous « Apple Pay Payment Processing Certificate », cliquer sur « Create Certificate« .

Indiquez que ce « Merchant ID » ne sera PAS (No) utilisé uniquement pour la Chine.

A ce moment là cliquez sur « Choose File » afin d’envoyer le fichier CSR qui vous a été envoyé par CentralPay(uniquement CentralPay)

Vous pouvez télécharger le fichier généré.
Il reste à créer le certificat « Apple Pay Merchant Identity Certificate » 
Pour cela aller à https://developer.apple.com/account/resources, puis cliquer sur Identifiers et enfin cliquer sur l’Identifier que vous voulez éditer.
Une fois ouvert, cliquez sur « Create Certificate ».

Ajoutez votre certificat : 

Ajouter le domaine associé

Indiquez le nom de domaine en question : 

Téléchargez le fichier indiqué par Apple

Déployez le fichier indiqué par Apple sur un serveur du nom de domaine en question accessible à Apple, puis cliquez sur « Verify » :

Vous pourrez alors télécharger le certificat nécessaire.

2.3.2. Paiement via Applepay

Génération du certificat et clé dans le même fichier : 

openssl pkcs12 -in certificat.p12 -out certificat.pem -clcerts

Création d’un ApplePayToken avec Apple Pay JS API (Démo à https://applepaydemo.apple.com/apple-pay-js-api)

Frontend : 

<script crossorigin
src="https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js">
</script>
<style>
apple-pay-button {
--apple-pay-button-width: 250px;
--apple-pay-button-height: 100px;
--apple-pay-button-border-radius: 99px;
--apple-pay-button-padding: 0px 0px;
--apple-pay-button-box-sizing: border-box;
}
</style>
<apple-pay-button id="btn-card" buttonstyle="white-outline" type="plain" locale="fr-FR"></apple-pay-button>
<br />
<div data-info="gateway-link" class="text-small text-gray-light font-weight-normal ml-1">
<img src="https://docs.centralpay.com/wp-content/uploads/2024/10/paysecure_reassurance_1-fond_blanc.png" alt="CentralPay" style="max-width:200px"></a>
</div>
var request = {
countryCode: 'FR',
currencyCode: 'EUR',
supportedNetworks: ['visa', 'masterCard', 'amex'],
merchantCapabilities: ['supports3DS'],
total: { label: 'Your Merchant Name', amount: '10.00' },
}
var applepayversion = 3;
var session = new ApplePaySession(applepayversion, request);

session.onvalidatemerchant = event => {
// Call your own server to request a new merchant session.
console.log("event.validationURL :"+event.validationURL);

fetch('/applepay-session')
.then(res => res.json()) // Parse the response as JSON.
.then(merchantSession => {
session.completeMerchantValidation(merchantSession);
})
.catch(err => {
console.error("Error fetching merchant session : ", err);
});
};

session.onpaymentauthorized = (event) => {

var token = event.payment.token;
fetch(`https://api.centralpay.net/transaction`, {
method: "post",
body: JSON.stringify(
{
applePayToken: token,
endUserIp: "127.0.0.1",
currency: "EUR",
amount: 1000,
source="EC",
browserUserAgent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36",
merchantTransactionId="1234567890123456789"
}),
})
.then((response) => {
if (response.ok) {
return response.json();
}
appleSession.completePayment(ApplePaySession.STATUS_FAILURE);
})
.then((responseJson) => {
// Do something with the response
appleSession.completePayment(ApplePaySession.STATUS_SUCCESS);
})
.catch((error) => {
appleSession.completePayment(ApplePaySession.STATUS_FAILURE);
});
};

session.begin();

Backend : 

$router->map('GET', '/applepay-session', function (ServerRequestInterface $request) use ($twig) : ResponseInterface {

$APPLE_URL = "https://apple-pay-gateway.apple.com/paymentservices/paymentSession";

$curl = new Curl();
$curl->setHeader('Content-Type', 'application/json');
$curl->setOpt($ch, CURLOPT_SSLCERT, getcwd() . 'certificat.pem');
$curl->setOpt($ch, CURLOPT_SSLCERTPASSWD, "thesslpassword");
$curl->setOpt(CURLOPT_POSTFIELDS, '{
merchantIdentifier: "merchant.net.centralpay.test-form",
displayName: "MyStore",
initiative: "web",
initiativeContext: "merchant.net.centralpay.test-form"
}'
);
$curl->setOpt(CURLOPT_CUSTOMREQUEST, "POST");
$curl->setOpt(CURLOPT_URL, $APPLE_URL);
$curl->exec();
...
return new Laminas\Diactoros\Response\JsonResponse($curl->getResponse());
...
});

Création de CardToken avec votre token Apple pay chiffré. (Frontend)

Lors de votre appel API, en plus des champs obligatoires, il faudra utiliser le champ « applePayToken«  au format JSON comprenant votre token Apple Pay qui incluent les éléments paymentData, paymentMethod et transactionIdentifier.
Vous pourrez ensuite effectuer une transaction à l’aide de votre cardToken normalement.

Utilisez l’endpoint POST /cardToken de l’API CentralPay
Champs requis :

curl --location 'https://test-api.centralpay.net/cardToken' \
--header 'Origin: https://example.centralpay.net' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'merchantPublicKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--data-urlencode 'endUserIp=xxxx.xxxx.xxxx.xxxx'
--data-urlencode 'applePayToken=xxxxxxxxxxxxxxxxxxxxxx'

Création de la transaction : (Backend)

Utilisez l’endpoint POST /transaction de l’API CentralPay
Champs requis :

curl --location 'https://api.centralpay.net/transaction' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: ••••••' \
--data-urlencode 'customerId=870005ca-xxxx-xxxx-xxxx-140fa71d6e01' \
--data-urlencode 'cardTokenId=xxxxxxxxxxxxxxxxxxxxxxxx'
--data-urlencode 'currency=EUR' \
--data-urlencode 'amount=1000' \
--data-urlencode 'endUserIp=xxxx.xxxx.xxxx.xxxx' \
--data-urlencode 'endUserLanguage=fre' \
--data-urlencode 'source=EC' \
--data-urlencode 'browserUserAgent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36' \
--data-urlencode 'browserAcceptLanguage=en_US' \
--data-urlencode 'email=xxxxx@example.com' \
--data-urlencode 'country=FRA' \
--data-urlencode 'merchantTransactionId=1234567890123456789'

Le cardToken encapsule déjà le contexte Apple Pay et les données d’authentification.

Création de Transaction avec votre token Apple pay chiffré. (Backend)

Lors de votre appel API, en plus des champs obligatoires, il faudra utiliser le champ « applePayToken » au format JSON comprenant votre token Apple Pay qui inclus les éléments paymentData, paymentMethod et transactionIdentifier.

Puis utilisez l’endpoint POST /transaction de l’API CentralPay

Champs requis :

curl --location 'https://api.centralpay.net/transaction' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: ••••••' \
--data-urlencode 'customerId=870005ca-xxxx-xxxx-xxxx-140fa71d6e01' \
--data-urlencode 'currency=EUR' \
--data-urlencode 'amount=1000' \
--data-urlencode 'endUserIp=xxxx.xxxx.xxxx.xxxx' \
--data-urlencode 'endUserLanguage=fre' \
--data-urlencode 'source=EC' \
--data-urlencode 'browserUserAgent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36' \
--data-urlencode 'browserAcceptLanguage=en_US' \
--data-urlencode 'email=xxxxx@example.com' \
--data-urlencode 'country=FRA' \
--data-urlencode 'merchantTransactionId=1234567890123456789'
--data-urlencode 'applePayToken=xxxxxxxxxxxxxxxxxxxxxxxx'

3. Google Pay (Smart Form)

Google Pay est nativement au parcours de paiement carte du SmartForm (PaymentRequest > paymentMethod[]=TRANSACTION), dès que l’appareil ou le navigateur de votre client est compatible.

Aucune action ne sera nécessaire de votre part. Le service sera entièrement opéré par CentralPay (détection de compatibilité Google Pay, gestion des certificats et des tokens, sécurité PCI-DSS). Aucune donnée de carte ne transite côté marchand, le flux relève du périmètre PCI-DSS SAQ-A.

4. Google Pay (Custom Form)

CentralPay permet l’intégration de Google Pay via le mode PAYMENT_GATEWAY, tel qu’imposé par Google Pay dans un contexte PSP multi-marchands, sans nécessiter de déchiffrement du token côté serveur.

Prérequis

1. Créer un compte Google Pay Business :

  • Accédez au Google Pay Business Console
  • Créez un Merchant Profile ou connectez-en un existant.
  • Renseignez vos coordonnées de société et d’activité.

2. Enregistrer votre domaine :

  • Dans la console Google Pay, allez dans l’onglet « Domains »
  • Ajoutez votre domaine de production et de test (ex : example.com)
  • Google vous demandera d’y héberger un fichier de vérification pour valider votre propriété
⚠️ Google Pay fournit un merchantId spécifique au domaine validé.
Ce merchantId est obligatoire pour toute Payment Request Google Pay.
L’utilisation d’un merchantId non associé au domaine entraîne une erreur Google Pay (Error 11).

3. Réaliser votre intégration frontend Google Pay :

  • Implémentez Google Pay côté frontend via Google Pay JS (pour les sites web) ou Google Pay API Android (pour les applications mobiles)
  • Collectez le token Google Pay (tokenizationData.token) après validation du paiement par l’utilisateur (code PIN, empreinte digitale, reconnaissance faciale…).
ℹ️ Google propose un tutoriel officiel pour cette intégration : Google Pay API | Google for Developers

4. Récupérez vos identifiants CentralPay :

  • MerchantPublicKey : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Merchant Public Key
  • Login API : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Identifiant API et copiez l’identifiant
  • Pass API : Connectez-vous à votre portail CentralPay Back Office → Administration → Technique → Cliquez sur votre Identifiant API → Modifier → Générer , copiez votre pass API et mettez à jour

Étape 1: Configuration de Google Pay côté frontend

ℹ️ Le bouton Google Pay est fourni par le SDK officiel Google Pay.
L’initiation du paiement et la génération du token sont entièrement contrôlées par Google Pay (hosted button).

1. Définir la version de l’API :

const baseRequest = {
  apiVersion: 2,
  apiVersionMinor: 0
};

2. Utiliser CentralPay comme passerelle de paiement :

Configurez la tokenisation comme suit :

const tokenizationSpecification = {
  type: 'PAYMENT_GATEWAY',
  parameters: {
    gateway: 'centralpay',
    gatewayMerchantId: 'YOUR_GATEWAY_MERCHANT_ID'
  }
};

Remplacez YOUR_GATEWAY_MERCHANT_ID par votre MerchantPublicKey fourni par CentralPay.

3.Définir les types de cartes acceptées :

const allowedCardNetworks = ["AMEX", "MASTERCARD", "VISA"];

4. Définir le type de moyen de paiement :

Il existe deux type différents : PAN_ONLY et CRYPTOGRAM_3DS

⚠️​CentralPay n’autorise pas l’utilisation du type PAN_ONLY car il requiert de respecter des normes de sécurité spécifiques. Seul le type CRYPTOGRAM_3DS est autorisé.

const allowedCardAuthMethods = ["CRYPTOGRAM_3DS"];

5. Environnement de test ou production :

// Environnement de test
const paymentsClient = new google.payments.api.PaymentsClient({ environment: 'TEST' });

// Environnement de production
const paymentsClient = new google.payments.api.PaymentsClient({ environment: 'PRODUCTION' });

Étape 2 : Récupération du token Google Pay

Lorsqu’un utilisateur final valide un paiement via Google Pay, l’API retourne un token au format JSON dans :

paymentData.paymentMethodData.tokenizationData.token

Ce champ contient une chaîne JSON représentant un objet du type :

{
  "signature": "MEYCIQDn...",
  "protocolVersion": "ECv2",
  "intermediateSigningKey": {
    "signedKey": "{...}",
    "signatures": ["MEUCID..."]
  },
  "signedMessage": "{...}"
}

Ce bloc devra être transmis tel quel à l’API CentralPay lors de la création du cardToken dans le champ googlePayToken.

Étape 3 : Envoi du token à CentralPay (création du cardToken)

Faites un appel à l’endpoint POST /cardToken de CentralPay avec les paramètres suivants :

Paramètres requis :

ChampDescription
amountMontant en centimes (ex : 2500 pour 25,00 €)
currencyCode ISO alpha (ex : EUR, USD, etc.)
googlePayTokenLe JSON complet retourné par Google Pay (tokenizationData.token)
merchantPublicKeyClé publique CentralPay disponible dans le backoffice

Exemple de requête (format x-www-form-urlencoded) :

amount=2500
currency=EUR
merchantPublicKey=abcdef123456...
googlePayToken={"signature":"MEYCIQDn...","protocolVersion":"ECv2",...}

Ne déchiffrez pas le token vous-même : CentralPay s’occupe de sa validation côté serveur.

Étape 4 : Création de la transaction

Une fois que le cardToken est obtenu, vous pouvez déclencher une transaction de manière standard via l’endpoint POST /transaction.

Exemple de paramètres :

cardToken=...
amount=2500
currency=EUR
pointOfSaleId=...
endUserIp=...
merchantTransactionId=...

Le cardToken contient déjà toutes les informations d’authentification : pas besoin d’ajouter de cryptogramme ou de champ CVV.

Étape 5 : Testing avant mise en production

L’environnement de test CentralPay permet de valider l’ensemble de votre intégration Google Pay sans déclencher de véritables paiements. Il est fortement recommandé d’utiliser cet environnement pour toutes les phases de développement, de debug et de validation côté frontend comme backend.

Portail de test
API de test
Cartes de test

Différences entre environnement de test et de production :

  • Les URLs des API sont différentes : elles utilisent le préfixe test-
    • Test : https://test-api.centralpay.net/v2/rest/transaction
    • Production : https://api.centralpay.net/v2/rest/transaction
  • Les identifiants API (login + secret) sont propres à l’environnement de test
    Ils ne sont pas interchangeables avec ceux de production
  • La clé publique CentralPay (merchantPublicKey) est également spécifique à l’environnement

R-transaction carte

1. Remboursement – refund

Vous pouvez rembourser une Transaction si celle-ci est CLEARED via le service Refund ou depuis le détail de la Transaction dans le Portail Marchand. Vous pouvez initier un remboursement total ou partiel en renseignant un montant.

Votre client recevra les fonds sur sa carte sous 3 à 5 jours ouvrés après l’opération. Votre compte de paiement est lui débité immédiatement, il doit donc être solvable pour pouvoir réaliser l’opération.

Vous ne pouvez pas annuler un remboursement une fois celui-ci réalisé.

⚠️ Si la carte sur laquelle vous tentez d'effectuer le remboursement est expirée ou que le compte a été clôturé, CentralPay ne pourra réaliser de remboursement. Dans ce cas, nous vous invitons à vous rapprocher de votre client pour lui demander un RIB à jour et procéder à un virement SEPA depuis votre banque.

2. Crédit – credit

Vous pouvez créditer la carte d’un client sans transaction initiale depuis le service Credit. Pour cela, il existe plusieurs solutions :

  • Tokeniser une carte via le service cardToken pour ensuite la renseigner dans le service Credit
  • Créer ou rechercher un Customer disposant d’une carte valide, puis renseigner son « customerId » ainsi que son « cardId » dans le service Credit
ℹ️ Ce service n'est disponible que pour des activités spécifiques, contactez CentralPay pour en savoir plus.

3. Contestation – Dispute

Lorsqu’un porteur de carte conteste ou signale une transaction auprès de sa banque, le réseau (Visa, Mastercard, Carte Bancaire, etc.) peut notifier CentralPay afin d’initier une opération de contestation (Dispute).
Cette opération permet de suivre l’état du litige et d’agir selon le type de signal reçu : alerte de fraude, demande d’information, ou chargeback.

Chaque contestation est représentée dans le backoffice CentralPay par une opération distincte (Dispute), liée à la transaction d’origine. Les notifications sont également disponibles via le webhook DISPUTE_CREATED.

Pour tout paiement par carte, un client peut contester une transaction auprès de sa banque dans les délais suivants :

  • 120 jours à compter de la transaction pour les réseaux Visa et Mastercard ;
  • 13 mois à compter de la date d’opération pour le réseau français Carte Bancaire.
ℹ️ En France, la contestation est en principe réservée aux cas de fraude (carte volée, usurpée, utilisation abusive).
Dans d’autres pays européens, elle peut également être utilisée dans le cadre d’un litige commercial (produit non livré, service non conforme, etc.).

1. Alerte de fraude FRAUD_NOTICED

Ce statut correspond à une notification préventive de fraude transmise par le réseau (ex. : fichier TC40 pour Visa).
Il est déclenché lorsque la banque émettrice signale qu’un porteur affirme ne pas être à l’origine de la transaction (carte volée, copiée ou usurpée).

➡️ Aucun remboursement n’est initié à ce stade.
➡️ Ce signal vous permet d’anticiper un chargeback potentiel et de renforcer vos contrôles antifraude.

Bonnes pratiques :

  • Identifier la transaction concernée (montant, pays, carte, date).
  • Vérifier les transactions similaires (même carte, même compte, même IP).
  • Mettre la carte ou le compte en liste noire pour éviter de nouvelles tentatives.
  • Conserver les preuves d’authenticité (logs, preuves de livraison, consentement).
  • Ne pas contacter directement le porteur (le signal vient de sa banque).

2. Demande d’information RETRIEVAL_NOTICED

Ce statut correspond à une demande documentaire émise par la banque du porteur.
Il intervient lorsqu’un client ne reconnaît pas une transaction, sans parler de fraude.

La banque émettrice demande alors à CentralPay de solliciter le marchand pour fournir des éléments de preuve (facture, reçu, preuve de livraison, etc.).

➡️ Une réponse est attendue sous 7 jours.
➡️ Si les éléments sont acceptés, la contestation est clôturée (RETRIEVAL_CLOSE).
➡️ Si aucune réponse n’est transmise, la banque du porteur peut déclencher un chargeback.

3. Contestation officielle CHARGEBACK_NOTICED

Le chargeback correspond à une demande de remboursement formelle initiée par la banque émettrice.
Il peut résulter :

  • d’une fraude confirmée (suite à un FRAUD_NOTICED) ;
  • d’un litige non résolu (suite à un RETRIEVAL_NOTICED) ;
  • ou d’un autre motif reconnu par les réseaux (produit non reçu, montant incorrect, service non conforme, etc.).

Lorsqu’un chargeback est émis :

  • Le montant de la transaction est débité de votre compte de paiement afin de rembourser le porteur.
  • Des frais non remboursables s’appliquent pour chaque contestation reçue, même en cas d’issue favorable.
  • Vous disposez d’un délai de 20 jours calendaires pour répondre à la contestation en fournissant les éléments justificatifs :
    • Preuve de livraison ou d’exécution du service,
    • Preuve du consentement du porteur (obligatoire pour les transactions non 3-D Secure),
    • Autres pièces démontrant la légitimité du paiement.

À défaut de réponse dans le délai imparti, la contestation sera automatiquement perdue.

Une fois votre réponse transmise, la banque émettrice analyse les éléments fournis :

StatutDescription
CHARGEBACK_WONLes preuves ont été jugées suffisantes. Le montant de la transaction vous est recrédité.
CHARGEBACK_LOSTLa contestation est maintenue. Le remboursement au porteur devient définitif.

Email de confirmation

Quand une transaction par carte a été réalisée avec succès, CentralPay peut adresser un email de confirmation de paiement à votre client. Pour cela, vous devez l’activer en renseignant les paramétrages de l’email de confirmation dans votre Point de Vente.

Cet email est adressé par défaut à l’email du Customer associé à la transaction, mais vous pouvez renseigner la valeur receiptEmail de la transaction si vous souhaitez l’adresser à un autre.

Paramétrage

L’email de confirmation possède une mise en forme standardisée affichant les différentes informations de paiement, vous pouvez cependant configurer plusieurs paramètres depuis le Portail Marchand.

  1. Adresse email de l’expéditeur : Paramètrage depuis le point de vente
  2. Nom de l’expéditeur : Paramètrage depuis le point de vente
  3. Votre logo : Paramètrage depuis le point de vente
  4. Nom du point de vente : Paramètrage depuis le point de vente
  5. Texte de pied de page : Paramétrage depuis l’entrrée Configuration Email confirmation paiement Créer
  6. Langue d’affichage : Renseigner la valeur « endUserLanguage » dans la requête de Transaction (anglais par défaut)

Libellé relevé bancaire

Le libellé de relevé bancaire correspond à la description qui sera affichée sur le relevé de compte bancaire de vos clients pour chacune de vos transactions par carte.

Lorsqu’un profil Marchand CentralPay est créé, un libellé de relevé bancaire est défini automatiquement en utilisant le nom de votre premier Point de Vente : CPAY*NomDuPointDeVente

Vous pouvez demander à CentralPay de modifier votre libellé, cependant il doit permettre à vos clients de vous identifier clairement ou d’accéder à votre site de réclamation.

Gestion des devises

Dans le cadre d’une activité internationale, vos clients peuvent disposer d’une carte adossée à un compte bancaire en devises non Euros.

Quelle que soit votre intégration, ces clients pourront vous régler en Euros grâce au système de conversion automatique des réseaux carte (Visa, Mastercard, American Express). Vos clients porteront l’ensemble des coûts de conversion des devises, et vous recevrez des Euros sur votre compte de paiement CentralPay.

Dans certains cas, CentralPay peut vous permettre d’encaisser des transactions par carte bancaire dans différentes devises : Euros (EUR), Dollars (USD), Francs Suisses (CHF) et Livres (GBP). Contactez CentralPay si la gestion de transaction en devises est un enjeu pour votre activité.

Notez que dans ce cas, les coûts d’acquisition en devises (hors EUROS) sont soumis à des frais complémentaires et seront déduits du montant de vos transactions.

ℹ️ Les versements sortants (payout) par virement SEPA ne peuvent être réalisés que sur les valeurs disponibles en EUROS. Les valeurs hors EUROS sont reversées par virement SWIFT ayant des frais supérieurs. Il est cependant possible de programmer les versements SWIFT afin qu'il ne soit réalisés qu'à partir d'un certain seuil, afin de mieux maitriser ses coûts de versement.

Gestion des cartes virtuelles (VCC)

1. Fonctionnement

Les grands OTA que sont Booking.com, Expedia.com, hotels.com ou Agoda.com peuvent collecter les règlements lors de la réservation. Dans ce cas, ils fournissent aux hôteliers, non pas les données de la carte du client, mais une alias, qui est une carte virtuelle ou VCC.

Une carte virtuelle ou VCC est généralement émise pour un usage encadré afin de limiter les risques de compromission. Une carte virtuelle représente en quelque sorte l’alias d’une carte existante qui ne pourra être utilisé qu’à partir d’une certaine date et depuis un MCC défini. En l’occurrence, dans le secteur du tourisme, il est nécessaire d’avoir un contrat avec le MCC 7011 (HOTELS) pour pouvoir la débiter.

Ainsi, dans le cas où le numéro de carte tombait entre les mains d’une personne mal intentionnée, elle ne pourrait pas déclencher de débit sur la carte source. Étant donné la nature spéciale des cartes issues par ces OTA, il est en général impossible de réaliser des demandes d’autorisation, de pré-autorisation ou de vérification au moment de la commande.

Si la carte n’est débitable que le jour de la réservation par un MCC 7011 par exemple, l’émetteur, en général MASTERCARD B2B PRODUCT, renverra un code d’erreur pour transaction invalide (12).

➡️ Cartes virtuelles Booking.com
Booking.com utilise des cartes virtuelles sur certaines destinations. En fonction du paramétrage réalisé sur le site de l’hôtel, une réservation pourra être réalisée avec ou sans prise d’empreinte carte. Si l’hôtelier a choisi de demander un moyen de paiement, alors Booking.com génèrera une carte virtuelle et l’adressera à l’hôtelier ou à son prestataire technique. Suite à la crise du Covid 19, Booking.com n'autorise plus les débits de ses VCC qu'un jour après le checkin du client.

En savoir plus sur le fonctionnement des cartes virtuelles de Booking.com ➝
➡️ Cartes virtuelles Expedia.com
Chez Expedia, il est possible de laisser le visiteur choisir entre la possibilité de payer à l’hôtel (Hotel Collect) ou de payer directement lorsqu’il réalise la réservation (Expedia Collect). Cette option est appelée Expedia Traveler Preference (ETP). Si un client utilise la méthode Expedia Collect, une carte virtuelle sera alors générée.

En savoir plus sur le fonctionnement des cartes virtuelles d'expedia.com ➝

2. Gestion des cartes virtuelles avec CentralPay

La meilleure méthode pour stocker une VCC et de pouvoir l’utiliser une fois disponible est de créer un « Customer » et de lui associer la carte concernée.

Deux options sont ouvertes :

  • Soit la carte est débitable au moment de la création et une demande de vérification est réalisable à la création du Customer 
  • Soit la carte n’est pas utilisable à la création du customer et la carte doit être créé sans vérification. Cela ne signifie pas qu’elle ne pourra pas être utilisée à terme. Cela veut simplement dire qu’elle ne doit être débitée qu’à une certaine date. En général, les OTA auront préalablement vérifié les données de la carte pour s’assurer qu’elle était débitable

Ainsi, créer un Customer dans l’API CentralPay permet de tokeniser la carte virtuelle, sécuriser son stockage et de faciliter son utilisation lorsque les conditions d’acceptation initiales auront été réunies.

Retours, statuts et hooks

1. Codes de retour banque liés aux transactions carte

Lorsqu’une transaction carte (Transaction) est initiée, une demande d’autorisation est soumise à la banque émettrice de la carte. Cette dernière répond avec un code, permettant d’interpréter l’acceptation, le refus et la cause du refus de l’autorisation.

La banque du titulaire de la carte (appelée également « banque émettrice ») exprime son refus en fonction de choix qui lui sont propres et totalement indépendants de CentralPay. CentralPay n’est en possession d’aucune information complémentaire si une carte est refusée et n’a aucun moyen d’en obtenir.

Les principaux codes de retour banque :

CodeDescription
A1 – Repli VADSDSP2 et Soft decline
La banque refuse la transaction, car elle ne possède pas d’authentification forte (3DS 2.0).
Il est nécessaire de repasser cette transaction en 3DS afin de ne plus avoir ce code.
57, 3 et 5Refus générique de la banque
La banque refuse sans donner de statut particulier.
Cela peut être un code CVV erroné ou une autre décision que nous ne connaissons pas.
Ce statut ne permet pas d’affirmer que la banque n’acceptera pas l’autorisation après d’autres tentatives.
4, 7, 14, 15, 31, 33, 34, 41, 43, 54, 55, 56, 59, 63, 76Suspicion de fraude ou vol de la carte
La banque émettrice estime que son client n’est plus en possession de la carte et qu’il s’agit d’une usurpation.
51, 61Provisions insuffisantes / plafond atteint
La carte a dépassé le montant du plafond autorisé ou ne dispose pas des fonds suffisants.
La carte peut de nouveau être acceptée ultérieurement, les plafonds étant calculés sur 7 jours glissant, une transaction peut tout à fait être retentée le lendemain.
12Transaction invalide
La banque refuse sans donner de statut particulier. Cela peut être :
– Simplement une transaction invalide
– Un code 75 de la part de la banque émettrice (le code PIN de la carte a été trop de fois incorrect).
– Un CVV erroné (fournit par l’ACS lors d’une authentification 3DS)
– Ou une autre décision que nous ne connaissons pas.

Consultez la liste complète des codes de retour banque ➝

2. Statuts liés aux transactions carte

Consultez les Statuts Transaction ➝

Consultez les Statuts Refund ➝

Consultez les Statuts Credit ➝

Consultez les Statuts Disputes ➝

Consultez les Statuts Subscription ➝

Consultez les Statuts Installement ➝

3. Webhooks liés aux transactions carte

Consultez les Webhooks Transaction ➝

Consultez les Webhooks Card ➝

Consultez les Webhooks Refund ➝

Consultez les Webhooks Credit ➝

Consultez les Webhooks Customer ➝

Consultez les Webhooks Dispute ➝

Consultez les Webhooks Subscription ➝

Consultez les Statuts Installement ➝

Transaction par virement

Informations générales

1. Fonctionnement

Le virement bancaire est le moyen de paiement le plus répandu pour les règlements d’entreprises. Il consiste en un transfert direct des fonds d’un compte (bancaire ou de paiement) à un autre, sans utiliser de support additionnel comme une carte par exemple.

La personne physique ou morale qui demande l’émission du virement est dénommée le donneur d’ordre (ou l’émetteur), celle qui reçoit l’argent le bénéficiaire. Contrairement à un paiement par carte ou par prélèvement SEPA, seul l’émetteur lui-même peut initier un virement. Il se rend ainsi sur l’espace personnel de sa banque, déclare les coordonnées bancaires du bénéficiaire (IBAN + BIC + Nom de titulaire), puis renseigne un montant et une référence de virement.

Quelques informations importantes :

  • Le délai de réception d’un virement classique chez CentralPay est de 4 à 24 heures ouvrées (contre 24 à 48 heures ouvrées chez la majorité des banques traditionnelles). Il sera également possible de recevoir des virements instantanés (réception <5 secondes) à partir d’octobre 2024
  • Le virement ne présente pas de risque financier majeur pour le marchand bénéficiaire, car l’émetteur s’authentifie fortement auprès de sa banque et ne peut donc pas contester cette opération
  • Les banques émettrices accordent un plafond de règlement par virement nettement plus élevé que celui appliqué aux opérations de prélèvement SEPA ou de règlement par carte
  • Selon les fonctionnalités proposées par sa banque, l’émetteur peut programmer un virement récurrent ou à date différée

2. Types de réseaux acceptés

Il existe deux types de virements bancaires :

  • Les virements SEPA (ou SEPA Credit Transfer) : Utilisés pour les opérations en EUROS réalisées entre deux pays membres de la zone SEPA (= 27 pays de l’Union européenne + Royaume-Uni, Monaco, Andorre, Vatican, Suisse, Liechtenstein, Norvège, Islande et Saint-Marin)
  • Les virements internationaux : Utilisés pour les opérations internationales en EUROS ou en devises, via le réseau SWIFT

Les frais applicables aux réseaux SEPA sont très largement favorables (à peine quelques dizaines de centimes contre plusieurs dizaines d’euros pour SWIFT). SWIFT permet cependant plusieurs options liées au règlement de ses frais : à la charge de l’émetteur, du bénéficiaire ou partagés.

CentralPay est atteignable par toutes les banques de l’Espace Économique Européen utilisant les réseaux SEPA (via STEP2 pour les SCT/SDD, ainsi que TIPS et RT1 pour les « Instant SCT »). Seuls les virements de réseaux internationaux ou en devises hors EUROS ne sont pas recevables pour le moment (via réseau SWIFT par exemple).

IBAN Virtuels

Le paiement par virement bancaire impose une responsabilité au client émetteur : celle de renseigner les coordonnées bancaires (IBAN + BIC + Nom du titulaire), le montant du règlement mais aussi la référence de virement.

Une absence ou un mauvais formatage de la référence (causé par le client ou par le système de sa banque) contraint le bénéficiaire d’analyser manuellement le virement reçu pour le rapprocher à la bonne facture et au bon poste client.

CentralPay vous permet de présenter un IBAN virtuel différent à chacun de vos clients (Customer) ou dans chacune de vos factures (PaymentRequest). Ainsi lors de la réception d’un virement, CentralPay identifie automatiquement l’émetteur et peut rapprocher la facture pour vous, selon l’IBAN virtuel utilisé par votre client, même en cas d’erreur de référence.

Un IBAN Virtuel est en tous points identique à un IBAN classique, ce qui rend le processus entièrement transparent pour vos clients.

Ce service vous permettra notamment :

  • D’être informé instantanément quand un client vous a réglé par virement
  • D’automatiser vos alertes internes et vos relances clients (via le service de notifications)
  • D’automatiser le rapprochement de vos paiements dans vos solutions comptables ou de facturations (ERP…)
  • Pour les plateformes et marketplaces : d’identifier facilement le marchand bénéficiaire et de lui transférer les fonds

Vous pourrez créer des IBAN Virtuels CentralPay depuis différents services de la plateforme :

  • Depuis le service Customer
  • Depuis le service SCT Transaction
  • Depuis le service PaymentRequest
ℹ️ Chaque compte de paiement ou de monnaie électronique dispose nativement d'un IBAN Virtuel dédié

1. Consulter l’IBAN Virtuel de ses comptes

Vous pouvez retrouver l’IBAN Virtuel de vos comptes depuis le Portail Marchand Administration Comptes IBAN/BIC :

Il est également possible d’interroger l’API CentralPay avec le endpoint /bankAccount

Accès :

Recette Portail Marchand – Comptes
Production Portail Marchand – Comptes

2. Créer un IBAN Virtuel dédié à un Customer

Vous pouvez créer un IBAN Virtuel dédié à un client lors de la création d’un nouveau Customer, ou via l’update d’un Customer existant.

Pour cela, vous devez renseigner le champ « walletIdForIban » avec l’UUID du compte de paiement sur lequel vous souhaitez recevoir les fonds.

Vous pouvez retrouver ce dernier depuis le Portail Marchand Administration Comptes UUID :

Accès :

Recette Portail Marchand – Comptes
Production Portail Marchand – Comptes

En retour, vous recevrez dans le champ bankAccounts les valeurs « iban » et « bic » constituant l’IBAN Virtuel de votre Customer.

ℹ️ Le BIC des IBAN émis par CentralPay est CEAYFR22

3. Création d’un IBAN Virtuel dédié à une SCT Transaction

Comme pour un Customer, vous pouvez créer un IBAN Virtuel dédié à une transaction par virement lors de la création d’une SCT Transaction.

ℹ️ Pour rappel, une SCT Transaction est créée automatiquement par CentralPay lorsque vous recevez un virement sur votre IBAN Virtuel principal ou celui d'un Customer. Il est cependant possible de créer une SCT Transaction en amont afin de lui affecter un IBAN Virtuel dédié et une référence personnalisée par exemple.

Pour cela, vous devez renseigner le champ « ibanWalletId » avec l’UUID du compte de paiement sur lequel vous souhaitez recevoir les fonds.

Vous pouvez retrouver ce dernier depuis le Portail Marchand Administration Comptes UUID :

Accès :

Recette Portail Marchand – Comptes
Production Portail Marchand – Comptes

En retour, vous recevrez dans le champ bankAccounts les valeurs « iban » et « bic » constituant l’IBAN Virtuel de votre SCT Transaction.

ℹ️ Un IBAN Virtuel dédié à une SCT Transaction n'est plus fonctionnel une fois que sa SCT Transaction a été entièrement réglée. Il est cependant possible de recevoir plusieurs virements d'un montant inférieur sur un même IBAN pour compléter le montant de la SCT Transaction.

À noter que si un virement reçu dépasse le montant de la SCT Transaction, il sera tout de même accepté. Vous devrez réaliser un remboursement partiel pour reverser le trop perçu à votre client.

4. Utilisation des IBAN Virtuels depuis les demandes de paiement

Il est possible d’utiliser des IBAN Virtuels Customer ou SCT Transaction depuis le service de demande de paiement, si vous acceptez le moyen de paiement « SCT Transaction ».

Vous pouvez sélectionner le type d’IBAN Virtuel que vous souhaitez afficher dans vos demandes de paiement depuis le champ « Viban prioritaire » des paramétrages de votre point de vente. Si vous sélectionnez :

  • SCT : La demande de paiement créera systématiquement un IBAN Virtuel dédié à la SCT Transaction
  • Client : La demande de paiement utilisera l’IBAN Virtuel du Customer s’il en dispose déjà d’un, sinon elle en créera un automatiquement
ℹ️ Dans le cas d'une demande de paiement avec vIBAN à la SCT Transaction uniquement : Si vous annulez la demande de paiement, le vIBAN associé ne sera plus atteignable. Ainsi, chaque virement reçu sur ce vIBAN sera automatiquement renvoyé à son émetteur.

Transaction par virement

1. Fonctionnement

Une SCT Transaction représente un virement bancaire reçu sur un de vos IBAN Virtuel CentralPay.

Elle peut être créée de trois manières différentes :

  • Automatiquement
    Si vous adressez un IBAN Virtuel dédié à l’un de vos clients ou l’un de vos comptes de paiement, CentralPay créera la SCT Transaction automatiquement lors de la réception du virement. Vous pourrez ensuite rapprocher cette SCT Transaction à votre commande/facture en récupérant la valeur du champ « description » (correspondant à la référence renseignée par votre client dans son espace bancaire)
  • Depuis le service SCT Transaction
    Si vous souhaitez automatiser le rapprochement du virement à la transaction, vous pouvez :
    • Créer une SCT Transaction avec un IBAN Virtuel dédié : ce qui permettra un rapprochement sûr à 100% à votre transaction. Attention, dans ce cas vos clients devront déclarer un nouveau bénéficiaire dans leur espace bancaire à chaque virement qu’ils vous adresseront
    • Créer une SCT Transaction en utilisant un IBAN Virtuel Customer et récupérer la référence courte générée par CentralPay pour cette transaction : ce qui permettra de rapprocher systématiquement le virement au profil client correspondant, et potentiellement jusqu’à la transaction si votre client a bien renseigné la référence dans son virement
  • Depuis le service de demande de paiement
    Si vous souhaitez déléguer à CentralPay l’affichage des informations de règlement à vos clients (montant, IBAN, BIC, référence…), vous pouvez créer une Demande de paiement autorisant les paiements par SCT Transaction. Cette option permet également de gérer facilement les virements multiples ou les règlements clients depuis plusieurs moyens de paiement

2. Créer une SCT transaction

Créer une SCT Transaction :

  • Renseignez un montant en centimes (amount), et une devise (currency)
  • Si vous souhaitez créer un IBAN Virtuel dédié à la SCT Transaction, renseignez le champ « ibanWalletId » avec l’UUID de votre compte de paiement sur lequel vous souhaitez recevoir les fonds. Vous pouvez retrouver ce dernier depuis le  Portail Marchand Administration Comptes UUID
  • Si vous souhaitez utiliser un IBAN Virtuel existant (dédié à un Customer ou à un compte de paiement), renseignez le champ « iban » avec l’IBAN souhaité
    • Vous pourrez ensuite récupérer la valeur « sepaReference » générée par CentralPay et la transmettre à votre client pour laisser CentralPay rapprocher le virement à votre transaction
    • Ou renseigner la valeur « merchantSctTransactionId » avec votre propre référence personnalisée pour rapprocher vous-même le virement via nos exports d’opérations

Pay by Bank - Initiation de paiement (PIS)

1. Fonctionnement

Le service d’initiation de paiement (PIS – Payment Initiation Service) permet à vos clients de réaliser un virement bancaire directement depuis leur environnement bancaire, sans avoir à saisir manuellement les coordonnées du bénéficiaire. Cette fonctionnalité repose sur le protocole Open Banking, en conformité avec la DSP2.

Chez CentralPay, ce service est proposé sous l’intitulé Pay by Bank et est actuellement accessible uniquement via le formulaire de paiement hébergé (SmartForm), dans le cadre de l’utilisation du service PaymentRequest.

ℹ️ Le service est uniquement disponible via le Smart Form (PaymentRequest). Il n’est pas encore possible d’utiliser ce mode de paiement en tant que moyen unique, il est toujours présenté en complément du service de paiement par virement traditionnel. L’expérience de paiement dépend des interfaces de la banque du client payeur.

2. Activation du service

L’initiation de paiement n’est pas activée par défaut. Pour en bénéficier, il est nécessaire d’en faire la demande auprès des équipes support de CentralPay.

3. Utilisation via PaymentRequest

Pour permettre à vos clients d’initier un virement directement depuis le formulaire de paiement, vous devez :

  1. Créer une PaymentRequest selon les modalités habituelles.
  2. Inclure le moyen de paiement suivant dans la propriété payment_methods :
    • PIS Standard « payment_methods » : [« SCT_TRANSACTION_PIS »]
    • PIS IP « payment_methods » : [« SCT_TRANSACTION_PIS_IP »]

Lorsque ce moyen de paiement est présent, le Smart Form proposera à l’utilisateur un choix entre :

  • Le virement bancaire classique (affichage des coordonnées bancaires à recopier)
  • L’initiation de paiement via son environnement bancaire (Pay by Bank)
ℹ️ Il n’est pas possible à ce stade de forcer l’utilisation exclusive de l’initiation de paiement. Le formulaire affichera toujours l’alternative avec les coordonnées bancaires classiques.

4. Parcours utilisateur

  1. L’utilisateur sélectionne « Pay by Bank » dans le formulaire
  2. Il choisit sa banque dans la liste proposée
  3. Il est redirigé vers l’environnement de sa banque pour valider l’opération de virement
  4. Une fois le paiement initié, il est redirigé vers votre page de retour

5. Suivi et statuts

Une fois la PaymentRequest créée, le statut du virement est disponible via l’API comme pour tout autre paiement :

  • Le champ payment_method sera valorisé à SCT_TRANSACTION
  • Le champ status indiquera la progression de l’initiation de paiement (par exemple PENDING, SUCCEEDED, FAILED)
ℹ️ Comme pour les virements classiques, la finalisation du paiement dépend de l’exécution effective du virement par la banque du client. Le client peut choisir entre réaliser un virement standard (à J+1) ou un virement immédiat.

6. Liste des banques disponibles par pays

ℹ️ En environnement de recette, une banque nommée "Connecteur de test" est affichée pour vous permettre de tester le parcours de bout en bout. Attention : le montant maximum autorisé sur ce connecteur de test est de 20 €.

Banques françaises :

InstitutionStandardInstantané
Allianz Banque✅ Disponible🚫 Non disponible
Arkéa Banking Services✅ Disponible🚫 Non disponible
Arkéa Banque Entreprises et Institutionnels✅ Disponible✅ Disponible
Arkéa Banque Privée✅ Disponible✅ Disponible
AXA Banque✅ Disponible✅ Disponible
Banque BCP✅ Disponible✅ Disponible
Banque Chalus✅ Disponible✅ Disponible
Banque de Savoie✅ Disponible✅ Disponible
Banque des Territoires✅ Disponible🚫 Non disponible
Banque Européenne Crédit Mutuel✅ Disponible✅ Disponible
Banque Populaire✅ Disponible✅ Disponible
Banque Transatlantique✅ Disponible✅ Disponible
BBVA (Non activé)🚫 Non disponible🚫 Non disponible
BforBank✅ Disponible🚫 Non disponible
BNP Paribas✅ Disponible✅ Disponible
BNP Paribas Entreprises✅ Disponible🚫 Non disponible
BNP Paribas Nouvelle-Calédonie (Non activé)🚫 Non disponible🚫 Non disponible
BoursoBank✅ Disponible✅ Disponible
BRED✅ Disponible✅ Disponible
BTP Banque✅ Disponible✅ Disponible
Caisse d’Épargne Particuliers✅ Disponible✅ Disponible
Caisse d’Épargne Professionnels✅ Disponible✅ Disponible
CCMDirect (Non activé)🚫 Non disponible🚫 Non disponible
CIC✅ Disponible✅ Disponible
CIC Banque Privée✅ Disponible✅ Disponible
Crédit Agricole✅ Disponible✅ Disponible
Crédit Coopératif✅ Disponible✅ Disponible
Crédit Maritime✅ Disponible✅ Disponible
Crédit Mutuel✅ Disponible✅ Disponible
Crédit Mutuel de Bretagne✅ Disponible✅ Disponible
Crédit Mutuel du Sud Ouest✅ Disponible✅ Disponible
Fortuneo✅ Disponible✅ Disponible
Hello bank!✅ Disponible✅ Disponible
ING Wholesale Banking✅ Disponible🚫 Non disponible
La Banque Postale✅ Disponible✅ Disponible
LCL✅ Disponible✅ Disponible
Louvre Banque Privée✅ Disponible✅ Disponible
Manager.one✅ Disponible🚫 Non disponible
Memo Bank✅ Disponible✅ Disponible
Monabanq✅ Disponible✅ Disponible
N26✅ Disponible✅ Disponible
Nef Pro✅ Disponible🚫 Non disponible
Neuflize OBC (Non activé)🚫 Non disponible🚫 Non disponible
Palatine✅ Disponible✅ Disponible
Qonto✅ Disponible🚫 Non disponible
Revolut✅ Disponible🚫 Non disponible
Société Générale✅ Disponible✅ Disponible

Rapprochement à une demande de paiement

CentralPay met à disposition un service nommé bankReconciliation permettant de lier une ou plusieurs SCT Transaction à une demande de paiement (PaymentRequest) si vous n’utilisez pas les IBAN Virtuel dédié aux SCT Transaction.

1. En cas d’erreur de référence par votre client

Lorsque vous utilisez les demandes de paiement avec IBAN Virtuels dédiés à un Customer et que votre client ne renseigne pas correctement la « sepaReference » lors de l’émission de son virement ; CentralPay n’est pas en mesure de rapprocher automatiquement le virement à la demande de paiement.

Vous pouvez donc utiliser le service bankReconciliation pour affecter la SCT Transaction reçue à la demande de paiement créée initialement :

  • amount = montant du virement en centimes
  • wireTransferID = ID de la SCT TRANSACTION (accessible dans le hook de la SCT TRANSACTION)
  • paymentRequestBreakdownId = ID du breakdown de la PaymentRequest (accessible dans le hook de la PaymentRequest)

2. Si vous utilisez votre propre référence de commande

Si vous souhaitez organiser vos créances clients dans CentralPay grâce au service de Demandes de paiement sans utiliser la page de paiement Smart Form, voici la démarche à suivre :

  • Pour chaque client : Créer un Customer avec vIBAN, récupérer le vIBAN et l’afficher dans votre tunnel de vente avec votre référence de commande
  • Créer en parallèle une paymentRequest contenant cette même référence de commande (dans le champ « merchantPaymentRequestId ») et le montant de commande
  • Dès réception d’un virement client, vous identifiez la commande liée grâce au champ « description » de la SCT Transaction
  • Vous recherchez ensuite une PaymentRequest avec la même référence dans « merchantPaymentRequestId »
    • Si une PaymentRequest présente la même référence, vous l’associez avec le service « bankReconciliation »
    • Si aucune PaymentRequest ne présente la même référence mais que le virement a été reçu sur un vIBAN Customer n’ayant qu’une seule PaymentRequest en attente ou d’un montant identique, vous pouvez faire en sorte de les rapprocher avec une bankReconciliation
    • Si aucune PaymentRequest ne présente la même référence et que le Customer présente plusieurs PaymentRequest en attente de règlement ou d’un montant différent, levez une alerte dans votre système pour faire rapprocher le virement manuellement par votre service financier (qui l’associera manuellement à la bonne PaymentRequest via une bankReconciliation)
  • Les virements non liés à une PaymentRequest seront ainsi facilement identifiables
  • De même que les PaymentRequest non payées ou partiellement payées

R-transaction SCT

Vous pouvez rembourser une SCT Transaction si celle-ci est RECEIVED via le service Refund ou depuis le détail de la SCT Transaction dans le Portail Marchand. Vous pouvez initier un remboursement total ou partiel en renseignant un montant.

Votre client recevra les fonds sur son compte bancaire sous 24 à 48 heures ouvrés après l’opération. Votre compte de paiement est lui débité immédiatement, il doit donc être solvable pour pouvoir réaliser l’opération.

Vous ne pouvez pas annuler un remboursement une fois celui-ci réalisé.

Virements internationaux

Les virements bancaires internationaux sont gérés via le réseau SWIFT (contrairement au réseau SEPA pour les virements européens). Ces virements peuvent être émis depuis un très grand nombre de pays en EUROS ou dans d’autres devises.

Il sera prochainement possible d’accepter des virements internationaux via le service SCT Transaction. Veuillez contacter CentralPay si ce service est un enjeu pour le développement de votre activité.

Retours, statuts et webhooks

1. Retours liés aux SCT Transactions

Il n’existe pas de code retours pour les SCT Transactions.

2. Statuts liés aux SCT Transactions

Consultez les Statuts Transaction ➝

Consultez les Statuts Refunds ➝

3. Webhooks liés aux SCT Transactions

Consultez les Webhooks SCT Transaction ➝

Consultez les Webhooks Refunds ➝

Consultez les Webhooks Customer ➝

Transaction prélèvement SEPA

Informations générales

Le prélèvement SEPA (SEPA Direct Debit ou « SDD » en anglais) permet à un créancier (marchand) de prélever un montant dû directement sur le compte de son débiteur (client). Il est principalement destiné aux règlements récurrents (abonnements ou paiements en plusieurs fois) mais peut-être dans certains cas utilisé pour des règlements ponctuels (par exemple pour le règlement de factures entre professionnels).

Étant émis à l’initiative du créancier, il requiert la collecte préalable d’une autorisation de son débiteur. Le marchand édite ainsi un « Mandat SEPA » précisant les conditions de prélèvement et les coordonnées bancaires des deux parties que son débiteur devra signer.

1. Les deux types de prélèvement SEPA

Il existe deux types de prélèvements SEPA :

  • Le prélèvement SEPA « CORE » : le plus répandu, il permet aux créanciers de débiter des comptes de particuliers comme de personnes morales. Le mandat SEPA est édité et signé entre les deux parties sans contraintes particulières. Le débiteur est cependant protégé et peut contester un prélèvement CORE sans motifs auprès de sa banque sous 8 semaines
  • Le prélèvement SEPA « B2B » : réservé aux prélèvements entre entreprises. Le mandat SEPA est édité, signé puis doit être transmis par le débiteur à sa banque. Le parcours de contractualisation requiert ainsi une action forte du débiteur et la validation de sa banque. Cependant, les prélèvements initiés depuis ce type de mandats ne sont pas contestables.
    CentralPay ne propose pas ce service de prélèvement SEPA type « B2B »

2. Risques de rejet et de contestation

Le prélèvement SEPA étant un moyen de paiement dont les transactions sont initiées sans authentification forte du client, les risques de rejets et de contestations sont à prendre en considération.

👉 Consultez la rubrique « R-Transaction SDD » pour en savoir plus sur les rejets et contestations SDD

3. Informations importantes

  • Le prélèvement SEPA est utilisable sur la vaste majorité des comptes bancaires « courants » des pays de la zone SEPA et certains de l’Espace Économique Européen hors SEPA. Cela dépend de la connectivité aux réseaux SEPA des banques des débiteurs. Les comptes spéciaux type « comptes épargnes » ne sont pas atteignables
  • Les opérations SEPA sont traitées en devise EUROS (€) uniquement
  • Les opérations SEPA sont traitées lors des jours ouvrés uniquement (hors weekend et jours fériés). Ainsi, le délai de réception des fonds varie entre 2 à 5 jours à compter de la date d’initiation de l’opération
  • Le débiteur doit être informé par le créancier des prélèvements à venir, au moins 14 jours avant la date, soit par l’envoi d’un échéancier, d’une notification ou d’une facture
  • La durée de validité d’un mandat SEPA est de 36 mois après la dernière transaction opérée sur ce mandat
  • Dans le cadre d’un prélèvement SEPA sur le compte bancaire d’une entreprise (personne morale), le créancier doit veiller à ce que le mandat SEPA soit adressé et signé par le dirigeant ou un responsable habilité (gérant, service comptabilité…)
  • Le prélèvement SEPA est particulièrement adapté aux transactions récurrentes d’un montant situé entre 20 et 200 EUR pour les débiteurs particuliers, et entre 20 et 2 000 EUR pour les débiteurs personnes morales

Identifiant de Créancier SEPA

L’Identifiant Créancier SEPA (ICS) est un numéro de référence unique qui identifie chaque émetteur de prélèvement. En France, il est composé de 13 caractères alphanumériques, dont les 2 premiers représentent le code pays ISO (FR pour la France).

Disposer d’un ICS est un prérequis obligatoire pour réaliser des prélèvements. Le créancier doit faire la demande d’attribution de l’ICS auprès de sa banque. Le créancier conserve ensuite son ICS, même s’il change de banque.

Communiquez votre ICS à CentralPay lors de votre entrée en relation afin que nos équipes puissent le déclarer dans votre compte.

Déclaration du compte bancaire

Pour réaliser une transaction par prélèvement SEPA, il faut d’abord créer le profil de votre client (le débiteur) et déclarer ses coordonnées bancaires sur la plateforme CentralPay.

1. Créer un profil client « Customer »

  • Collecter les informations de votre client (email, nom, prénom…)
  • Créer un profil client Customer
  • Récupérer la propriété customerId dans le retour de création du Customer

2. Créer un compte bancaire « bankAccount »

  • Collecter les coordonnées bancaires de votre client (IBAN, BIC, nom du titulaire du compte…)
  • Créer un compte bancaire bankAccount en renseignant le customerId de votre client
  • Récupérer le bankAccountId et le identityId dans le retour de création du bankAccount

Création du mandat SEPA

Après avoir déclaré le compte bancaire bankAccount du client et rattaché son profil client « Customer », vous pouvez créer un mandat SEPA « mandate » et collecter la signature électronique de votre client via un code (OTP) envoyé par SMS.

Prérequis : vous devez récupérer le creditorBankAccountId de votre profil Marchand CentralPay correspondant à votre ICS. Vous pouvez le retrouver depuis votre Portail Marchand en utilisant un profil avec des droits Admin : Administration Mon profil marchand Comptes bancaires

Identifiez la ligne présentant votre ICS dans la colonne « IBAN » puis copiez l’UUID associé.

1. Création et signature d’un nouveau mandat SEPA

1.1. Créez un mandat SEPA :

  • Créez un « Mandate »
    • Renseignez votre « creditorBankAccountId »
    • Renseignez le « CustomerId » de votre client
    • Renseignez votre Référence Unique de Mandat (RUM)
    • Indiquez le type de mandat que vous souhaitez créer dans la propriété « paymentType »
    • Renseignez le numéro de téléphone de votre client dans la propriété « debtorPhone »
    • Renseignez l’email de votre client dans la propriété « debtorEmail »
    • Indiquez le compte bancaire de votre client en renseignant son « bankAccountId » dans la propriété « debtorBankAccountId »

  • Une fois le mandat SEPA créé :
    • Un « mandateId » sera généré
    • Le statut du mandat sera en PENDING
    • Un code à 6 chiffres (OTP) sera envoyé à votre client par SMS (durée de vie 15 min). Vous pouvez renouveler l’envoi de l’OTP.

1.2. Signez un mandat SEPA :

  • Signez le « Mandate »
    • Collectez le code à 6 chiffres auprès de votre client, et renseignez-le dans la propriété « otp »
    • Renseignez le « mandateId » généré lors de la création du mandat
    • Renseignez l’IP de votre client dans la propriété « endUserIp »
    • Le statut du mandat passera ainsi en « ACTIVE » et le mandat SEPA au format PDF sera envoyé au client par email

1.3. Schéma de déclaration du compte bancaire et création mandat

2. Déclaration d’un mandat existant (migration)

Dans le cadre d’une migration de mandats déjà créé auprès d’un autre prestataire de paiement, il est possible de désactiver la fonction de signature par OTP sms et d’envoi du mandat SEPA par email. Si c’est votre cas, contactez nos équipes afin d’obtenir plus de détails concernant cette procédure.

Prérequis :

  • Les mandats doivent avoir été créés avec votre Identifiant de Créancier SEPA (ICS)
  • Les mandats doivent avoir été créés avec votre entité juridique actuelle
  • Les mandats doivent avoir été dûment signés et acceptés par vos débiteurs
  • Les mandats doivent être encore actifs (<36 mois depuis la dernière transaction)

3. Modification d’un mandat SEPA existant

3.1. Modifications possibles sans nécessité de nouveau mandat

Certaines données peuvent être mises à jour sans exiger la signature d’un nouveau mandat SEPA, sous réserve d’informer correctement le débiteur :

  • Changement de nom du créancier (modification de la structure juridique prélevant)
  • Changement de l’Identifiant Créancier SEPA (ICS)
  • Changement de la Référence Unique de Mandat (RUM)
  • Changement de compte / IBAN du débiteur au sein d’une même banque
  • Changement de compte / IBAN du débiteur suite à un changement de banque

Endpoints associés :

  • Modifier un IBAN débiteur
    POST /bankAccount/{bankAccountId}
    Permet de mettre à jour l’IBAN d’un compte bancaire débiteur lié à un mandat SEPA existant.
  • Modifier une RUM
    Cette opération n’est pas possible via les API CentralPay. Une modification de la RUM nécessite la création d’un nouveau mandat (migration).
  • Modifier le nom du créancier
    En cas de changement de la structure juridique réalisant les prélèvements, un nouveau Profil Marchand CentralPay (Merchant) doit être créé. Les mandats existants devront alors être redéclarés sous ce nouveau profil via un processus de migration.

3.2. Modifications nécessitant un nouveau mandat

Les modifications suivantes imposent la création d’un nouveau mandat SEPA, car elles impliquent une nouvelle autorisation du débiteur :

  • Changement de nom du débiteur
  • Changement de la date de signature du mandat
  • Changement de type de mandat : passage de SDD Core à SDD B2B
    NB : Ce cas d’usage n’est pas disponible dans les services CentralPay
  • Changement de la fréquence de prélèvement : passage de ponctuel à récurrent

3.3. Communication des modifications

Les notifications de modifications doivent obligatoirement être transmises :

  • Par le créancier au débiteur, pour toute modification initiée par le créancier (ICS, RUM, IBAN, etc.)
  • Par le débiteur au créancier, avec présentation d’un justificatif (ex : RIB ou pièce d’identité) pour les changements d’IBAN ou de données personnelles

Transaction par prélèvement

Une fois les étapes de création et de signature de mandat réalisées, vous pouvez créer une transaction en prélèvement SEPA (Transaction SDD). Chaque transaction SDD sera liée au mandat correspondant.

Pour créer des transactions SDD, vous avez plusieurs possibilités :

  1. Créer des transactions SDD individuelles : pour réaliser une ou plusieurs transactions SDD par API en complète autonomie
  2. Créer des transactions SDD via les modèles d’abonnement « Subscription » : pour réaliser X transactions selon une fréquence définie par un modèle d’abonnement (exemple : 50 € par mois pendant 12 mois).
  3. Créer des transactions SDD via le service de paiement fractionné « Installment » : pour fractionner une créance client en plusieurs transactions (exemple : 1000 € à régler en 3 fois avec un acompte de 500 €).

1. Transactions SDD individuelles

1.1. Créez une « SDDTransaction »

  • Renseignez l’identifiant du mandat SEPA « mandateId »
  • Renseignez le montant de la transaction en centimes « amount »
  • Renseignez la devise EUR dans la propriété « currency »
  • Renseignez votre identifiant unique de transaction dans la propriété « endToEndIdentification »
  • Renseignez la description de la transaction dans la propriété « remittanceInformation » (cette donnée apparaitra sur le relevé de compte de vos clients)
  • Renseignez l’IP de votre client dans « endUserIp »
  • Renseignez l’identifiant de votre point de vente CentralPay dans « pointOfSaleId »
  • Renseignez la date souhaitée de la transaction dans « requestedCollectionDate »

Vous pouvez ensuite répéter l’opération à chaque échéance de prélèvement de votre client.

1.2. [Optionnel] Demander au client une validation par SMS

  • Pour plus de sécurité, vous pouvez configurer un OTP pour la validation de chaque SDDTransaction : un OTP sera alors généré à la création et envoyé à votre client par SMS. Un sddTransactionId sera également généré à la création
  • Par défaut, la validation des SDDTransaction est automatique
  • Cette étape est nécessaire que si vous avez configuré une validation OTP pour la SDDTransaction
  • Récupérer auprès de votre client son code secret
  • Nous le transmettre, ainsi que le sddTransactionId
  • Par cette action, la SDDTransaction sera considéré comme validé et sera donc effectuée

2. Transactions SDD depuis les modèles d’abonnement « subscription »

2.1. Création

Vous devez d’abord créer un Customer contenant au moins un Mandate.

Ensuite, le service d’abonnement (Subscription) vous permettra d’initier facilement un paiement par abonnement en se basant sur un modèle d’abonnement créé en amont depuis l’API CentralPay ou le Portail Marchand.

2.2. Cas d’intégration spécifiques

  • Si le premier paiement de l’abonnement doit être d’un montant supérieur aux échéances suivantes (ex: frais d’inscription), vous pouvez d’abord initier une SDD Transaction seule, puis renseigner une date de démarrage (startingDate) dans l’objet Subscription
  • Si vous souhaitez simplement faire démarrer un abonnement à une date précise (ex : date d’entrée en vigueur de votre contrat), vous pouvez renseigner une date de démarrage (startingDate) dans l’objet Subscription

3. Transactions SDD en paiement fractionné « Installment »

3.1. Création

Vous devez d’abord créer un Customer contenant au moins un Mandate.

Ensuite, le service de paiement fractionné (Installment) vous permettra d’initier facilement un paiement fractionné en se basant sur les éléments renseignés dans votre requête.

R-transaction SDD

1. Remboursement de prélèvement SEPA

Vous pouvez rembourser une SDD Transaction si celle-ci est CLEARED via le service Refund ou depuis le détail de la SDD Transaction dans le Portail Marchand. Vous pouvez initier un remboursement total ou partiel en renseignant un montant.

Votre client recevra les fonds sur son compte bancaire sous 24 à 48 heures ouvrés après l’opération. Votre compte de paiement est lui débité immédiatement, il doit donc être solvable pour pouvoir réaliser l’opération.

Vous ne pouvez pas annuler un remboursement une fois celui-ci réalisé.

2. Rejet et contestations de prélèvement SEPA

Les rejets et contestations de prélèvements SEPA sont émis par les banques de vos clients. Ils sont représentés dans votre compte de paiement CentralPay par les opérations « SDD Transaction Reversal ».

Un rejet de prélèvement SEPA est émis par la banque avant la mise à disposition des fonds au créancier (sous 2 à 5 jours). Voici les principaux motifs de rejet des prélèvements SEPA Core :

  • Provisions insuffisantes : le compte bancaire du débiteur ne dispose pas de fonds suffisants pour réaliser l’opération
  • Compte clôturé : le compte bancaire du débiteur a été fermé
  • Coordonnées bancaires incorrectes : l’IBAN ou BIC utilisé est incorrect, ou le compte n’est pas en devise EUROS

Une contestation de prélèvement SEPA peut être émise par le débiteur jusqu’à 13 mois après l’opération. C’est le principal facteur de risque financier de ce moyen de paiement. Voici les principaux motifs de contestation des prélèvements SEPA Core :

  • Contestation de l’opération (sous 8 semaines max) : le mandat SEPA est valide, mais le client conteste l’opération auprès de sa banque pour quelconque motif. L’opération est entièrement remboursée et des frais de contestation sont applicables au créancier. Le délai est de 70 jours pour les banques hors de l’Union européenne ou de l’Espace Économique Européen
  • Contestation pour absence de mandat (sous 13 mois max) : le mandat SEPA n’est pas valide (absence de mandat, mauvais signataire…), le client conteste les opérations réalisées. Les opérations sont entièrement remboursées et des frais de contestation sont applicables au créancier

Pour en savoir plus, consultez la liste complète des codes de rejets et contestation de prélèvement SEPA.

Retours, statuts et webhooks

1. Retours liés aux prélèvements SEPA

Lorsqu’une transaction SDD (prélèvement SEPA) est rejetée, la banque de votre client adresse un code de rejet permettant d’en identifier la cause. Il faut principalement différencier les rejets (à l’initiative de la banque, ils sont reçus rapidement) des contestations (à l’initiative du client, elles peuvent être reçues plusieurs semaines ou mois après la transaction) :

Contestations
MD06 Opération contestée par le débiteur (peut être reçu jusqu’à 8 semaines après la transaction)
MD01 Contestation pour absence de mandat (peut être reçu jusqu’à 13 mois après la transaction)
SL01 ICS marchand blacklisté par le client via sa banque
MS02Raison non communiquée (peut inclure des contestations ou des rejets)
Rejets
AM04 Provisions insuffisantes
Tout autre codeRejets techniques divers (compte clôturé, bloqué, IBAN non atteignable…)

👉 Consultez la liste complète des codes de rejet SDD ➝

2. Statuts liés aux prélèvements SEPA

Consultez les Statuts des SDD Transaction ➝

Consultez les Statuts des Mandates ➝

Consultez les Statuts des bankAccount ➝ (à venir)

Consultez les Statuts des Subscription ➝

Consultez les Statuts des Installment ➝

3. Webhooks liés aux prélèvements SEPA

Consultez les Webhooks des SDD Transaction ➝

Consultez les Webhooks des Mandates ➝

Consultez les Webhooks des bankAccount ➝

Consultez les Webhooks des Customer ➝

Consultez les Webhooks des Subscription ➝

Consultez les Webhooks des Installment ➝

Paiements récurrents

Abonnement

Le service d’abonnement vous permet se réaliser automatiquement des transactions récurrentes sur vos profils clients en se basant sur un modèle d’abonnement défini en amont depuis l’API CentralPay ou le Portail Marchand. Il est ensuite possible d’ajouter des échéances ou de modifier leur montant à la volée depuis les services Invoice & Invoice Item.

Ce service permet de générer soit des transactions carte, soit des transactions SDD (prélèvement SEPA).

Définitions utiles pour cette section :

– SubscriptionModel : 
modèle d’abonnement (définissant le montant et la fréquence d’abonnement)

– Subscription : 
abonnement appliqué à un client

– Invoice : 
facture, option à utiliser si vous devez modifier la valeur à l’intérieur d’un plan d’abonnement

– InvoiceItem : 
ligne ou article inclus dans la facture. Une facture a potentiellement plusieurs lignes ou éléments
ℹ️ Le service "Subscription" n'est pas le seul moyen de réaliser des transactions récurrentes. 
Consultez la page Transaction carte récurrente ou la page Transaction par prélèvement pour prendre connaissance du détail par moyen de paiement.

1. Créer un modèle d’abonnement (subscriptionModel)

Accès :

Recette Portail Marchand – Modèles d’abonnements
Production Portail Marchand – Modèles d’abonnements

Le subcriptionModel vous permet de pouvoir créer différents types d’abonnements en fonction de vos services proposés. Par exemple, si vous avez à votre disposition deux types d’offre d’abonnement, le premier en utilisant les caractéristiques de base de votre service et l’autre en utilisant les fonctionnalités avancées, vous allez devoir créer deux modèles :

  • Un pour l’offre d’abonnement « basique »
  • Un pour l’offre d’abonnement « avancé »

Chaque « SubscriptionModel » possède un ID unique. Vous fournirez cet identifiant dans vos requêtes API lorsque vous souhaiterez appliquer un abonnement à un client sur la base de ce modèle.

Vous pouvez utiliser les attributs suivants :

  • amount : montant à renseigner en centimes
  • intervalUnit : DAY / WEEK / MONTH / YEAR (jour / semaine / mois / année)
  • intervalCount : nombre de « intervalUnit » entre deux échéances (ex : si intervalUnit = DAY et intervalCount = 10, alors il y aura une transaction tous les 10 jours)
  • iterationCount : nombre d’échéances (attention la première transaction n’est pas comptabilisée dans ce paramètre, elle s’ajoute donc à ce nombre)

Exemple :

  • amount = 3000
  • intervalUnit = DAY
  • intervalCount = 3
  • iterationCount = 3

Ainsi votre modèle d’abonnement sera configuré pour facturer à votre client 30,00 EUR tous les 3 jours pendant 4 échéances (pour un total d’un abonnement de 12 Jours).

2. Créer un abonnement (subscription)

Pour créer un abonnement, vous devez d’abord créer un Customer contenant au moins :

  • Une Card (si vous souhaitez opérer des transactions carte)
  • Ou un Mandate (si vous souhaitez opérer des transactions par prélèvement SEPA)

Vous pouvez ensuite créer une Subscription :

  • Selon le moyen de paiement souhaité :
    • pour des transactions carte : renseignez l’identifiant du profil client « customerId »
    • pour des transactions par prélèvement SEPA : renseignez l’identifiant du mandat SEPA « mandateId » et renseignez la date souhaitée de la transaction dans « requestedCollectionDate »
    • pour des transactions entre comptes CentralPay : renseignez l’identifiant du compte émetteur « walletId »
  • Renseignez l’identifiant du modèle d’abonnement « subscriptionModelId »
  • Renseignez l’IP de votre client dans « endUserIp »
  • Renseignez l’identifiant de votre point de vente CentralPay dans « pointOfSaleId »

Notez qu’à la création d’un abonnement, votre client reçoit automatiquement un email contenant le détail de ses échéances. Cet email contient également un lien vers notre Portail client qui lui permet de visualiser le statut de ses paiements récurrent, de changer sa carte bancaire ou son mandat SEPA et de résilier un abonnement si besoin est.

ℹ️ Un client pouvant à tout moment résilier son abonnement depuis le portail client mis à sa disposition. Veillez à vous inscrire aux webhooks d'annulation d'abonnement. Si votre abonnement comprend une période d'engagement, il est préférable d'utiliser la méthode d'abonnement par transactions successives, ou demander à CentralPay de ne pas diffuser le lien vers le portail client.

3. Automatisation des nouvelles tentatives en cas d’échec

En cas d’échec de prélèvement d’une échéance, CentralPay réalise de nouvelles tentatives de prélèvement selon les paramètres définis dans le Portail Marchand.

Accès :

Recette Portail Marchand – Paramétrages d’abonnements
Production Portail Marchand – Paramétrages d’abonnements

Comportement des champs :

  • Heure de transaction : heure à laquelle les échéances de prélèvement seront réalisées par CentralPay
    • Sélection d’une valeur de 4 à 23
  • 1er échec de paiement de facture : comportement en cas d’un premier échec de prélèvement
    • Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la transaction initiale
    • Stop = le système appliquera directement l’action finale, sans prendre en compte les actions suivantes.
  • 2nd échec de paiement de facture : comportement en cas d’un deuxième échec de prélèvement
    • Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative
    • Stop = le système appliquera directement l’action finale, sans prendre en compte les actions suivantes.
  • 3eme échec de paiement de facture : comportement en cas d’un troisième échec de prélèvement
    • Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative
    • Stop = le système appliquera directement l’action finale, sans prendre en compte les actions suivantes.
  • Action finale : comportement si les actions précédentes ont échoué
    • CANCELED = Annulation de l’abonnement (modification du statut de l’abonnement en CANCELED)
    • FAILURE = Échec de l’abonnement (modification du statut de l’abonnement en FAILURE)
    • UNPAID = Abonnement impayé (modification du statut de l’abonnement en FAILURE + envoi de hook SUBSCRIPTION_UNPAID)

4. Fonctions d’annulation des abonnements

Il existe deux fonctions d’annulation d’abonnement depuis l’API, le Portail Marchand ou le Portail Client :

  • Annuler : l’abonnement est annulé immédiatement
  • Annuler en fin de période : l’abonnement sera annulé à la fin de l’échéance en cours (afin de laisser l’abonné bénéficier de votre service durant sa dernière période payée). Par API, vous devrez renseigner le champ « atPeriodEnd ».
    • Note : Durant ce laps de temps, vous pouvez réactiver l’abonnement avec le service « reactivate » des Subscription.
ℹ️ Les abonnements dont l'ensemble des échéances ont été réalisées passent automatiquement en statut CANCELED.

5. Modifier le montant d’une échéance d’abonnement

CentralPay crée un invoice pour chaque échéance d’un abonnement (Subscription), selon le modèle d’abonnement associé (subscriptionModel).

Vous pouvez procéder à des actions manuelles à n’importe quel moment pour modifier les échéances (invoice) d’un abonnement (subscription). Vous trouverez ci-dessous une liste d’actions possibles :

  • Modifier le montant d’une échéance : Le service invoiceItem vous permet de modifier le montant d’une échéance (invoice) en renseignant un montant positif ou négatif qui s’additionnera au montant initial de l’échéance. L’invoiceItem sera pris en compte lors de la prochaine échéance de l’abonnement, qu’elle soit créée manuellement ou automatiquement. Vous avez également la possibilité de spécifier une échéance donnée dans votre requête en renseignant un invoiceId.
  • Créer une échéance supplémentaire : les échéances (invoice) dites « périodiques » sont créées automatiquement selon votre subscriptionModel. Vous avez la possibilité de créer d’autres échéances ponctuelles sur votre abonnement en créant une invoice.
  • Supprimer un invoiceItem non traité : s’il n’est pas encore lié à une facture
  • Fermer une échéance à venir : si vous souhaitez que CentralPay ne réalise pas le prélèvement d’une échéance (et/ou ses nouvelles tentatives automatiques), vous pouvez fermer cette dernière depuis le service « close » de l’invoice. Au besoin vous pourrez rouvrir cette échéance via le service « reopen » de l’invoice, si elle n’a pas été payée ou qu’il reste des nouvelles tentatives programmées.
  • Forcer le paiement d’une échéance : les transactions sont effectuées automatiquement par le service d’abonnement, vous pouvez cependant initier la transaction en avance ou réaliser une nouvelle tentative manuellement avec le service « pay » de l’invoice. Ces paiements « manuels » ne sont pas comptabilisés par le système de nouvelles tentatives automatisées. Cette action peut être effectuée sur une facture fermée.

6. Schéma complet de création d’un abonnement

Fractionné

Le paiement fractionné permet de découper le règlement d’une facture en plusieurs échéances. CentralPay prélève ensuite la carte du client selon un échéancier défini lors de la première transaction. Il peut être utilisé pour proposer un étalement de règlement à votre client ou pour automatiser un règlement type « acompte/solde ».

Contrairement aux abonnements, un client ne peut pas résilier un paiement fractionné depuis le portail client.

CentralPay vous aide à recouvrer les échéances dues par vos clients avec un système de nouvelles tentatives automatisées en cas d’échec de prélèvement. Cependant, CentralPay ne garantie pas les sommes dues à l’aide d’un crédit ou d’un système de financement de créances.

ℹ️ Le service "Installment" n'est pas le seul moyen de réaliser des transactions récurrentes. 
Consultez la page Transaction carte récurrente ou la page Transaction par prélèvement pour prendre connaissance du détail par moyen de paiement.

1. Créer un paiement fractionné

Vous devez d’abord créer un Customer contenant au moins :

  • Une Card (si vous souhaitez opérer des transactions carte)
  • Ou un Mandate (si vous souhaitez opérer des transactions par prélèvement SEPA)

Ensuite, le service Installment vous permettra de créer facilement un paiement fractionné en se basant sur les éléments renseignés dans votre requête.

Vous pouvez ensuite créer un Installment:

  • Selon le moyen de paiement souhaité :
    • pour des transactions carte : renseignez l’identifiant du profil client « customerId »
    • pour des transactions par prélèvement SEPA : renseignez l’identifiant du mandat SEPA « mandateId » et renseignez la date souhaitée de la transaction dans « requestedCollectionDate »
  • Renseignez le montant en centimes « amount »
  • Renseignez la devise en format ISO « currency »
  • Renseignez l’IP de votre client dans « endUserIp »
  • Renseignez les paramètres de fractionnement « iterationCount », « intervalCount » et « intervalUnit »

Avec ce service, il est également possible :

  • d’imputer des frais supplémentaires à votre client (feeAmount) : pour la mise à disposition de cet étalement des paiements
  • de définir un montant d’acompte qui sera déduit du montant total (depositAmount). Cet acompte peut également être défini à une date spécifique (depositStartingDate)
  • de définir une date de démarrage du paiement fractionné (startingDate) : si l’on souhaite par exemple que l’acompte soit réglé tout de suite, et que les premières échéances soient prélevées à partir d’une certaine date

Notez qu’à la création d’un paiement fractionné, votre client reçoit automatiquement un email contenant le détail de ses échéances. Cet email contient également un lien vers notre Portail client qui lui permet de visualiser le statut de ses paiements récurrent et de changer sa carte bancaire ou son mandat SEPA si besoin est.

2. Exemple de paiement fractionné

Vous souhaitez facturer à votre client 1 000 € divisés en 3 mois à partir du 05/07/2024, avec un acompte de 200 € le 28/06/2024 et ajouter un frais supplémentaire de 10 € :

  • amount =100000
  • depositAmount = 20000
  • feeAmount = 1000
  • currency = EUR
  • intervalUnit = MONTH
  • intervalCount = 1
  • iterationCount = 3
  • depositStartingDate = 2024-06-28
  • startingDate = 2024-07-05

Le plan de fractionnement sera le suivant :

  • 28/06/2024 = 200,00 € (acompte)
  • 05/07/2024 = 276,68 € (premier fractionnement + ajustement arrondis + frais supplémentaires)
  • 05/08/2024 = 276,66 € (deuxième fractionnement)
  • 05/09/2024 = 276,66 € (troisième fractionnement)
ℹ️ Les arrondis sont appliqués au premier paiement (hors acompte).

3. Automatisation des nouvelles tentatives en cas d’échec

En cas d’échec de prélèvement d’une échéance, CentralPay réalise de nouvelles tentatives de prélèvement selon les paramètres définis dans le Portail Marchand :

Accès :

Recette Portail Marchand – Paramétrages Paiements Fractionnés
Production Portail Marchand – Paramétrages Paiements Fractionnés

Comportement des champs :

  • Heure de transaction : heure à laquelle les échéances de prélèvement seront réalisées par CentralPay
    • Sélection d’une valeur de 4 à 23
  • 1er échec de paiement : comportement en cas d’un premier échec de prélèvement
    • Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la transaction initiale
    • Stop = le système ne réalisera pas de nouvelle tentative de prélèvement
  • 2nd échec de paiement : comportement en cas d’un deuxième échec de prélèvement
    • Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative
    • Stop = le système ne réalisera pas de deuxième nouvelle tentative de prélèvement
  • 3eme échec de paiement : comportement en cas d’un troisième échec de prélèvement
    • Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative
    • Stop = le système ne réalisera pas de troisième nouvelle tentative de prélèvement.
  • 4eme échec de paiement : comportement en cas d’un quatrième échec de prélèvement
    • Réessayer dans 1, 3, 5 ou 7 jours = nouvelle tentative de prélèvement à J+X après la précédente tentative
    • Stop = le système ne réalisera pas de quatrième nouvelle tentative de prélèvement

Authentification 3DS 2.2

Transaction initiée par le porteur (CIT – BRW)

Le flux BRW (Browser) s’applique aux transactions initiées par le client (CIT — Customer-Initiated Transaction) : le titulaire de la carte est présent et valide lui-même le paiement. Cette CIT authentifiée sert aussi de socle aux transactions MIT futures.

👉 Pour une transaction initiée par le marchand sans le porteur (facturation récurrente, montant variable, usage-based, frais ponctuels), consultez la documentation du flux 3RI.

❌ Attention au choix du flux : utiliser le BRW pour une transaction initiée par le marchand (MIT) entraîne une non-conformité, une friction inutile et une réduction importante du taux de conversion.

1. Les grandes étapes du flux BRW

Le flux BRW enchaîne cinq étapes côté API, dont deux conditionnelles : versioning (la carte est-elle authentifiable ?) → 3DS Method (si nécessaire) → authentification → challenge (si la banque l’exige) → résultat, avant de réaliser la transaction.

Schéma du flux 3DS 2.2 BRW
ℹ️ Tout le processus doit se dérouler sur une seule et même page web, sans redirection vers une page bancaire, grâce à une solution d'iframe. C'est une contrainte du process bancaire.

Pour accélérer votre intégration du flux BRW, vous pouvez partir d’une application d’exemple complète (PHP / Twig) qui rejoue toute la séquence décrite sur cette page : formulaire de paiement CUSTOM, versioning, 3DS Method en iframe, authentication, gestion du challenge, results puis transaction, le tout sur une seule et même page, conformément à la contrainte bancaire.

👉 Télécharger le code d’exemple  ·  Voir la démo en ligne

Avant de lancer le code d'exemple, renseignez vos identifiants dans le fichier .env (API_USER, API_PASSWORD, POS_UUID) et faites pointer HOST_CENTRALPAY_API_CORE vers l'environnement de test https://test-api.centralpay.net/v2/rest/.

2. Versioning

Le versioning est la première étape : il interroge le réseau de la carte pour savoir si elle peut être authentifiée en 3DS 2.2, et récupère les éléments techniques nécessaires à la suite. Concrètement, vous adressez à l’API CentralPay le PAN de la carte (Primary Account Number, le numéro à 16 chiffres).

Exemple (curl) :

curl --location --request POST 'https://test-api.centralpay.net/v2/rest/3ds2/versioning' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA==' \
--data-urlencode 'acctNumber=4000001000000067'

Comprendre la réponse. Une carte est dite « enrôlée » lorsque la banque qui l’a émise participe au protocole 3DS 2.2 pour cette carte. C’est la banque émettrice qui en décide : ni vous ni CentralPay ne pouvez enrôler une carte. Le versioning sert justement à savoir si c’est le cas.

  • Carte non enrôlée → le versioning retourne une erreur 404 : l’authentification 3DS 2.2 est impossible pour cette carte. Prévoyez un repli (basculement en 3DS1 si supporté, ou refus du paiement selon votre politique de risque).
  • Carte enrôlée → vous recevez un identifiant d’opération, le threeDSServerTransID (généré par CentralPay et conservé jusqu’au résultat final), ainsi que, le cas échéant, les données nécessaires au « 3DS Method » (une URL + une donnée encodée en base64).

Pour une carte enrôlée, deux réponses sont possibles :

Version 1 (la plus fréquente) — un 3DS Method est attendu :

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "threeDSMethodURL": "https://test-3dss-demo.centralpay.net/acs/3ds-method",
    "threeDSMethodDataForm": {
        "threeDSMethodData": "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly90ZXN0LTNkc3MuY2VudHJhbHBheS5uZXQvM2RzLzNkcy1tZXRob2Qtbm90aWZpY2F0aW9uLyIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiOWNjNmIzM2MtZGQzNS00ZmJkLTgxY2QtZmQ5Y2YwYWVlZDljIn0="
    },
    "errorDetails": null
}

Les champs threeDSMethodURL et threeDSMethodData sont renseignés : passez à l’étape 3. 3DS Method.

Version 2 — pas de 3DS Method :

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "threeDSMethodURL": null,
    "threeDSMethodDataForm": null,
    "errorDetails": null
}

Seul threeDSServerTransID est renseigné (les champs 3DS Method sont vides) : passez directement à l’étape 4. Authentification.

3. 3DS Method

À quoi ça sert ? Le 3DS Method permet à la banque du porteur — via son ACS (Access Control Server, le serveur de la banque émettrice qui authentifie le porteur) — de collecter discrètement des informations techniques sur le navigateur du client, avant l’authentification. Ces informations enrichissent son analyse de risque et augmentent les chances d’une authentification frictionless (sans challenge pour le porteur).

Quand l’exécuter ? Uniquement si le versioning a renvoyé une valeur pour threeDSMethodURL et threeDSMethodData (cas « Version 1 » ci-dessus). Sinon, passez directement à l’authentification.

Comment ? Chargez l’threeDSMethodURL dans une iframe invisible (masquée à l’écran : cet échange est purement technique et ne doit rien afficher au porteur) et postez-y le champ threeDSMethodData. C’est le navigateur du porteur qui effectue cet appel vers la banque, en arrière-plan.

4. Authentification (BRW)

L’appel est adressé à l’URL 3ds2/authentication de l’API CentralPay. Cette requête transmet les données contextuelles liées au porteur et à son navigateur, qui permettent à la banque de décider si une authentification active (challenge) est nécessaire.

Exemple (curl) :

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'
💡 deviceChannel=02 indique le canal navigateur, propre au flux BRW. Les paramètres browser* (caractéristiques du navigateur du porteur) sont donc obligatoires ici.
Pour augmenter le taux d'authentification Frictionless, enrichissez cette requête avec les données contextuelles du porteur → voir Optimiser le taux de Frictionless

Champs à préciser selon l’objet de la CIT. Le champ threeDSRequestorAuthenticationInd est obligatoire : il indique la nature de l’authentification. Une CIT BRW peut servir soit à authentifier un paiement (messageCategory=01, PA), soit à authentifier une carte ou son porteur sans débit (messageCategory=02, NPA) — par exemple pour enregistrer une carte, la mettre à jour ou en vérifier le porteur. Les deux champs se renseignent de façon cohérente :

threeDSRequestorAuthenticationIndObjet de la CITmessageCategoryChamps requis en plus
01 — PaymentPaiement unitaire (ponctuel)01 (PA)—
02 — RecurringPaiement récurrent (abonnement)01 (PA)recurringExpiry, recurringFrequency
03 — InstalmentPaiement échelonné (en plusieurs fois)01 (PA)recurringExpiry, recurringFrequency, purchaseInstalData
04 — Add cardEnregistrement / empreinte d’une carte pour usage futur, sans débit02 (NPA)—
05 — Maintain cardMise à jour des informations d’une carte déjà enregistrée (ex. renouvellement)02 (NPA)—
06 — Cardholder verificationVérification du porteur dans le cadre de l’ID&V d’un token EMV02 (NPA)—
  • recurringExpiry → date après laquelle plus aucune autorisation ne sera effectuée (format YYYYMMDD).
  • recurringFrequency → nombre minimum de jours entre deux autorisations (1 à 999).
  • purchaseInstalData → nombre maximum d’autorisations (échéances) prévues pour le paiement échelonné (1 à 999).
ℹ️ Les cas 04, 05 et 06 sont des authentifications hors paiement : aucun montant ni champ de récurrence n'est requis. Elles ne préparent pas forcément une MIT — ce sont souvent une fin en soi (enregistrer, vérifier ou maintenir une carte). La carte ainsi authentifiée pourra ensuite servir à des transactions CIT (porteur présent) comme MIT (3RI).

La réponse contient un statut d’authentification (transStatus) qui détermine la suite à donner :

❌ Pas d’autorisation — ne pas effectuer la transaction

Statut (transStatus)Signification
NNon authentifié / compte non vérifié. Transaction refusée.
UAuthentification / vérification impossible (problème technique ou autre).
RAuthentification / vérification rejetée. L’émetteur demande de ne pas tenter d’autorisation.
IInformation seulement. Reconnaissance de la préférence du demandeur pour le challenge 3DS.

✅ Autorisation sans challenge

Statut (transStatus)Signification
YAuthentification réussie.
ATentative effectuée. Non authentifié / vérifié, mais une preuve de tentative est fournie.

🔐 Autorisation après challenge

Statut (transStatus)Signification
CChallenge requis : le porteur doit s’authentifier activement (voir étape 5), via les messages CReq/CRes (Challenge Request / Response).
DChallenge requis. Authentification découplée confirmée.

Exemples de réponses :

C — Challenge requis :

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "transStatus": "C",
    "acsTransID": "375d90ad-3873-498b-9133-380cbbc8d99d",
    "acsURL": "https://test-3dss-demo.centralpay.net/acs/challenge",
    "acsChallengeMandated": "Y",
    "base64EncodedChallengeRequest": "eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImU2MDFlYjQ0LTU2N2MtNDM4Ny05MmZjLWU2ZjIzMjJiODIyYiIsImFjc1RyYW5zSUQiOiI3ZTQzZDI4ZC00M2RkLTRmM2MtYTcwOS00YjZkZDVlZjc5Y2QiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIn0=",
    "contractId": "71602dd0-2790-4743-877b-e72530d7576d"
}

Y — Authentification réussie (challenge non nécessaire) :

{
    "threeDSServerTransID": "7d994177-32d8-43f7-87a4-3a3cd734cbfe",
    "transStatus": "Y",
    "acsTransID": "375d90ad-3873-498b-9133-380cbbc8d99d",
    "authenticationValue": "MTIzNDU2Nzg5MDA5ODc2NTQzMjEa",
    "eci": "02",
    "contractId": "71602dd0-2790-4743-877b-e72530d7576d"
}

Les champs requis pour la transaction sont présents : threeDSServerTransID, transStatus, authenticationValue (le cavv — Cardholder Authentication Verification Value, le cryptogramme qui prouve l’authentification) et eci (Electronic Commerce Indicator, qui indique le niveau d’authentification obtenu et conditionne le transfert de responsabilité en cas de fraude). Le xid n’est pas fourni : c’est une référence libre destinée aux marchands.

N — Transaction refusée :

{
    "threeDSServerTransID": "6396b832-3e5b-4143-bde6-f5r1c1e47da0",
    "transStatus": "N",
    "eci": "00",
    "contractId": "258128f3-5db9-4235-918a-f1d786f67c29"
}

5. Challenge

Le challenge est l’étape où le porteur s’authentifie activement auprès de sa banque (code à usage unique reçu par SMS, validation dans l’application bancaire, biométrie…). Il n’a lieu que si l’authentification a renvoyé transStatus = C.

  • Une iframe doit soumettre un formulaire à l’acsURL retournée à l’étape 4.
  • Le seul paramètre envoyé est creq, dont la valeur est le base64EncodedChallengeRequest issu de l’authentification.
  • À la fin du challenge, l’URL que vous avez fournie (notificationURL) est appelée par la banque.

En environnement de test, le challenge s’affiche sous forme d’un OTP (One-Time Password, code à usage unique) ; en production, c’est la fenêtre de l’ACS de la banque qui s’affiche :

Fenêtre de challenge OTP en environnement de test

OTP de test :

  • 1234 → Y (simule un challenge réussi – Authentification réussie)
  • 4444 → A (simule un challenge réussi – Non authentifié / vérifié, mais une preuve de tentative est fournie.)
  • 1111 → N (simule un challenge échoué – Non authentifié / compte non vérifié)
  • 2222 → R (simule un challenge échoué – Authentification / vérification rejetée)
  • 3333 → U (simule un challenge échoué – Authentification / vérification impossible (problème technique ou autre)

6. Réponse du challenge

À l’issue du challenge, le résultat est transmis dans le paramètre cres, encodé en base64. Décodez-le pour lire le statut. Exemple en PHP :

$retour = json_decode(base64_decode($_POST['cres']), true);
  • Si le statut est Y ou A, le challenge est validé et le paiement est autorisé : appelez GET /results (étape 7) pour récupérer les données 3DS nécessaires à la transaction.
  • Toute autre valeur signifie que le challenge a échoué : le paiement est refusé.

7. Résultat

Cette étape récupère les données 3DS définitives à reporter dans la transaction. Adressez le threeDSServerTransID de l’authentification.

ℹ️ Si l'authentification a directement retourné transStatus = Y (sans challenge), les données 3DS y figurent déjà : cette étape n'est pas nécessaire.

Appel :

curl --location -g --request GET 'https://test-api.centralpay.net/v2/rest/3ds2/results/{{threeDSServerTransID}}' \
--header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA=='

Réponse :

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "transStatus": "Y",
    "acsTransID": "375d90ad-3873-498b-9133-380cbbc8d99d",
    "authenticationValue": "JAmi21makAifmwqo2120cjq1AAA=",
    "eci": "01"
}
🔁 Préparer les MIT futures (3RI). Si cette CIT doit servir de référence à des paiements ultérieurs initiés par le marchand, conservez l'acsTransID de la séquence d'authentification : il sera requis comme threeDSReqPriorRef côté 3RI.

8. Transaction

Données à renseigner pour valider une transaction authentifiée en 3DS 2.2 :

  • 3ds[threeDSServerTransID] = threeDSServerTransID
  • 3ds[status] = transStatus
  • 3ds[cavv] = authenticationValue
  • 3ds[eci] = eci (obligatoire si disponible)
  • 3ds[xid] = paramètre custom, référence libre destinée aux marchands

Exemple (curl) :

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'

Étape suivante : pour les transactions ultérieures initiées par le marchand (MIT), voir 3DS 2.2 – 3RI.

Transaction initiée par le marchand (MIT – 3RI)

Le flux 3RI (3DS Requestor Initiated) s’applique aux transactions initiées par le marchand (MIT — Merchant-Initiated Transaction) : le marchand déclenche le débit sans intervention du porteur, dans le cadre d’un mandat préexistant, sur la base d’une transaction CIT authentifiée antérieurement.

Il couvre l’ensemble des cas MIT : facturations récurrentes, montants variables, modèles usage-based, frais ponctuels, débits différés (no-show, pénalités), pas seulement les abonnements à montant fixe.

👉 Si le porteur est présent et valide lui-même le paiement, utilisez le flux BRW. Pour le cadre contractuel, les exemptions d’authentification (SCA) et la durée de validité d’une CIT, consultez la page Bonnes pratiques — Merchant Initiated Transaction (MIT).

1. Prérequis : une transaction CIT déjà authentifiée

Le porteur étant absent, le 3RI ne ré-authentifie personne : il réutilise la preuve d’authentification produite lors d’une transaction CIT (porteur présent) réalisée précédemment via le flux BRW.

Lors de cette CIT, le serveur de la banque émettrice qui a authentifié le porteur — l’ACS (Access Control Server) — a généré un identifiant unique pour cette authentification : l’acsTransID. C’est ce acsTransID que vous rattacherez à chacune de vos MIT, pour prouver à la banque que la carte a bien été authentifiée une première fois avec le consentement du porteur.

⚠️ Conservez l'acsTransID de la CIT. Sans CIT authentifiée préalable — et donc sans acsTransID — une transaction 3RI ne peut pas aboutir. Si vous n'en avez pas, réalisez d'abord une CIT en BRW pour authentifier et tokeniser la carte.

2. Authentification (3RI)

L’appel est adressé à l’URL 3ds2/authentication de l’API CentralPay, comme pour le flux BRW, mais avec deux différences clés :

  • Le canal est différent. deviceChannel=03 indique une transaction initiée par le marchand (3RI), sans navigateur du porteur. Les paramètres browser* du flux BRW sont donc inutiles ici.
  • On référence la CIT. L’acsTransID conservé à l’étape 1 est placé dans le champ threeDSReqPriorRef, qui désigne « l’authentification précédente à laquelle se rattache cette transaction ».

Identification de la carte. Le porteur étant absent, on ne saisit pas de carte en séance : on référence la carte déjà stockée sur le client (Customer) en transmettant customerId + cardId.

💡 N'envoyez qu'une seule source de carte. Combiner deux sources (par ex. cardId + un token, ou un PAN + un token) déclenche l'erreur « There is no unique source of card » (voir la FAQ).

Exemple (curl) :

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=01' \
--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=1' \
--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=375d90ad-3873-498b-9133-380cbbc8d99d' \
--data-urlencode 'threeDSRequestorDecReqInd=N' \
--data-urlencode 'threeDSRequestorAuthenticationInd=02' \
--data-urlencode 'threeRIInd=01'

2.1. Explication des principaux paramètres

ParamètreDescription
deviceChannel03 → 3DS Requestor Initiated (transaction initiée par le marchand, sans navigateur du porteur)
messageCategory01 → PA (Payment Authentication) = Authentification rattachée à un paiement (ex. transaction récurrente)
02 → NPA (Non-Payment Authentication) = authentification hors paiement (ex. enregistrement ou vérification d’une carte sans débit).
threeDSReqPriorRefdoit contenir l’acsTransID de la transaction CIT (BRW) précédente (voir étape 1)
purchaseAmountmontant de l’achat courant
purchaseCurrencymonnaie au format ISO
purchaseExponentunité mineure de la monnaie courante
purchaseDatedate de l’achat
recurringExpirydate après laquelle plus aucune autorisation ne pourra être effectuée
recurringFrequencynombre de jours minimum entre deux autorisations
acctTypetype de compte (03 = debit)
chAccAgeIndancienneté du compte du titulaire auprès du demandeur 3DS :
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
chAccChangedate de dernière modification du compte du titulaire (format YYYYMMDD)
chAccDatedate d’ouverture du compte du titulaire (format YYYYMMDD)
nbPurchaseAccountnombre d’achats effectués avec ce compte au cours des six derniers mois
paymentAccAgedate d’inscription du compte de paiement sur le compte du titulaire
paymentAccIndancienneté de l’inscription du compte de paiement :
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
threeDSReqPriorAuthMethodMéthode d’authentification de la CIT initiale :
01 → si frictionless
02 → si le porteur a relevé un challenge
03 → AVS
04 → autre
threeDSReqPriorAuthTimestampdate et heure (UTC) de l’authentification précédente (format YYYYMMDDHHMM)
threeDSRequestorDecReqIndN → ne pas utiliser l’authentification découplée
threeDSRequestorAuthenticationInd02 → transaction récurrente
threeRIIndType de transaction 3RI :
01 → transaction récurrente
02 → transaction échelonnée
03 → ajout de carte
04 → maintenance
05 → vérification de compte
06 → expédition fractionnée/différée
07 → rechargement
08 → vente par correspondance
09 → vente par téléphone
10 → vérification statut whitelist
11 → autre paiement

Exemple de réponse :

{
    "threeDSServerTransID": "67dc456c-6c7a-987f-92cf-f68752525d0c",
    "transStatus": "Y",
    "eci": "02",
    "contractId": "fb8736a5-8741-19b6-9d38-ec135888e0bf"
}

Ici, threeDSServerTransID est l’identifiant de l’opération généré par CentralPay (à reporter dans la transaction), et eci (Electronic Commerce Indicator) indique le niveau d’authentification obtenu, qui conditionne le transfert de responsabilité en cas de fraude.

2.2. Statuts retournés (transStatus) et conduite à tenir

L’objectif est d’obtenir une authentification sans friction (frictionless), c’est-à-dire un transStatus = Y. Tentez systématiquement le 3RI, puis agissez selon le transStatus retourné.

ℹ️ Le support du 3RI dépend du scheme de la carte et de la version 3DS de la banque émettrice : il n'est jamais garanti à l'avance. D'où la conduite « best effort » ci-dessous — vous tentez le 3RI, et vous ne vous appuyez sur son résultat que s'il est positif.

✅ Authentification réussie — exploitez le résultat (transfert de responsabilité)

Statut (transStatus)Signification
YAuthentification réussie.
ATentative effectuée. Non authentifié / vérifié, mais une preuve de tentative est fournie.

→ Réalisez la transaction en transmettant les données 3DS issues du 3RI (voir étape 3). Le transfert de responsabilité vers l’émetteur s’applique.

⚠️ 3RI non abouti — réalisez la transaction sans authentification (« best effort »)

Statut (transStatus)Signification
NNon authentifié / compte non vérifié.
UAuthentification / vérification impossible (problème technique ou autre).
IInformation seulement.
C / DChallenge demandé (impossible en MIT car porteur absent — voir note ci-dessous).

→ Vous pouvez réaliser la transaction classique sans les données 3RI : le Customer (customerId + cardId) assure le chaînage automatique à la CIT initiale. Attention : dans ce cas, le transfert de responsabilité ne s’applique pas (risque de contestation accru) et le risque de refus de l’autorisation est plus élevé.

⚠️ Challenge en MIT (C / D). Un challenge suppose la présence du porteur, par définition absent en MIT. Deux cas : si le porteur peut revenir (ex. abonnement avec espace client), rejouez une CIT en BRW pour réauthentifier la carte ; sinon, traitez-le comme un 3RI non abouti et réalisez la transaction sans authentification (best effort). Voir Bonnes pratiques — MIT.

❌ Refus explicite — ne pas tenter la transaction

Statut (transStatus)Signification
RAuthentification rejetée : l’émetteur demande de ne pas tenter l’autorisation.

→ N’effectuez pas la transaction, même sans 3RI.

3. Transaction

Une fois l’authentification 3RI réussie (Y ou A), renseignez les données 3DS suivantes dans l’appel transaction :

  • 3ds[threeDSServerTransID] = threeDSServerTransID généré par l’authentification 3RI (pas celui d’une transaction précédente)
  • 3ds[status] = transStatus
  • 3ds[eci] = eci (obligatoire si disponible)
  • 3ds[xid] = paramètre custom, référence libre destinée aux marchands
⚠️ N'envoyez pas 3ds[cavv] en 3RI. Le cavv (Cardholder Authentication Verification Value, le cryptogramme qui prouve l'authentification) est propre au flux BRW ; il est absent de la réponse 3RI et ne doit pas être transmis ici.

Exemple (curl) :

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'
ℹ️ Cas « best effort » (3RI non abouti). Si le 3RI n'a pas abouti (transStatus autre que Y/A, et hors R), réalisez la même transaction sans l'objet 3ds[...] : le Customer (customerId + cardId) suffit à chaîner l'opération à la CIT initiale. Le transfert de responsabilité ne s'applique alors pas.

À lire aussi : Bonnes pratiques — Merchant Initiated Transaction (MIT) pour le cadre contractuel, le mandat et les exemptions d’authentification (SCA).

Optimiser le taux de Frictionless

Qu’est-ce que le frictionless ?

Une authentification est dite frictionless lorsque la banque du porteur valide l’opération sans aucune interaction de sa part (pas de challenge : ni code à usage unique, ni validation dans l’application bancaire). La banque authentifie « en silence », sur la base des données reçues et de sa propre analyse de risque (Risk-Based Authentication).

Son intérêt est double :

  • Meilleure conversion : aucune étape supplémentaire pour le porteur, donc moins d’abandons.
  • Responsabilité transférée : comme pour une authentification avec challenge réussie, un frictionless réussi (transStatus = Y) reporte la responsabilité en cas de fraude vers la banque émettrice. C’est ce qui le distingue d’un paiement sans 3DS.
ℹ️ La décision finale appartient toujours à la banque émettrice. Aucun levier ne garantit le frictionless : l'émetteur peut imposer un challenge quelle que soit votre intégration. Les pistes ci-dessous maximisent les chances de frictionless, elles ne le forcent pas.

Levier 1 — Enrichir les données d’authentification

C’est le levier le plus important. Plus la requête d’authentification (3ds2/authentication) contient de données contextuelles fiables sur le porteur, mieux la banque évalue le risque et plus elle accorde un frictionless. À l’inverse, une requête minimale (montant + données navigateur seulement) prive la banque des éléments qui lui permettraient de se passer du challenge.

Tous les champs ci-dessous sont acceptés par l’API aussi bien en BRW qu’en 3RI, et sont marqués Recommended ou Conditional (à envoyer dès que l’information est disponible) :

Coordonnées du porteur

ChampRôle
emailadresse e-mail du porteur (conditionnel : à envoyer sauf restriction locale)
homePhone / mobilePhone / workPhonenuméros de téléphone du porteur (indicatif [cc] + numéro [subscriber])
deliveryEmailAddresse-mail de livraison (pour une livraison électronique)

Adresse de facturation et de livraison

ChampRôle
billAddrLine1/2/3, billAddrCity, billAddrPostCode, billAddrState, billAddrCountryadresse de facturation
shipAddrLine1/2/3, shipAddrCity, shipAddrPostCode, shipAddrState, shipAddrCountryadresse de livraison
shipAddressUsageIndancienneté d’utilisation de l’adresse de livraison

Historique du compte client

ChampRôle
chAccAgeInd, chAccDate, chAccChangeancienneté et dernière modification du compte du porteur chez le marchand
paymentAccAge, paymentAccIndancienneté de l’enregistrement du moyen de paiement
nbPurchaseAccountnombre d’achats sur les six derniers mois
provisionAttemptsDaynombre de tentatives d’ajout de carte sur 24 h
preOrderDate, preOrderPurchaseIndinformations de pré-commande, le cas échéant
💡 La consigne pratique : transmettez tout ce dont vous disposez de fiable. Une donnée incohérente (adresse erronée) est contre-productive ; une donnée fiable absente est une occasion manquée de frictionless.

Levier 2 — Exécuter le 3DS Method

Lorsque le versioning le propose, exécutez systématiquement le 3DS Method : il permet à la banque de collecter en arrière-plan l’empreinte technique du navigateur du porteur, ce qui nourrit directement son analyse de risque. Le sauter revient à priver la banque d’informations qui favorisent le frictionless. Voir la procédure sur la page BRW.

Levier 3 — Exprimer une préférence et signaler les exemptions

Le champ threeDSRequestorChallengeInd (optionnel, flux BRW) permet d’indiquer à la banque votre préférence en matière de challenge, et de signaler qu’une exemption s’applique :

ValeurSignification
01Pas de préférence
02Pas de challenge souhaité
03Challenge souhaité (préférence du marchand)
04Challenge souhaité (obligation)
05Pas de challenge — analyse de risque transactionnelle (TRA) déjà réalisée
06Pas de challenge — partage de données uniquement
07Pas de challenge — authentification forte (SCA) déjà réalisée
08Pas de challenge — exemption « bénéficiaire de confiance » (whitelist)
09Pas de challenge — invitation au whitelisting si un challenge est requis
⚠️ Les valeurs 05, 07 et 08 déclarent qu'une exemption s'applique. Ne les utilisez que si l'exemption correspondante s'applique réellement à votre configuration : déclarer à tort une exemption engage votre responsabilité et peut entraîner un soft decline (voir FAQ). En cas de doute, conservez 01 ou 02.

Le champ whiteListStatus permet par ailleurs de communiquer le statut « bénéficiaire de confiance » du marchand (Y = marchand whitelisté par le porteur, N, E, P, R, U). Lorsqu’un porteur ajoute votre enseigne à sa liste de confiance auprès de sa banque, ses paiements suivants passent plus facilement en frictionless.

Levier 4 — Bien implémenter les transactions initiées par le marchand (MIT)

Une fois une transaction CIT initiale authentifiée, les transactions ultérieures initiées par le marchand (MIT) s’effectuent via le flux 3RI et sortent du champ de l’authentification forte. C’est l’un des moyens les plus directs de supprimer la friction sur les paiements récurrents, échelonnés ou ultérieurs : authentifier une fois (CIT), réutiliser ensuite (MIT).

Ce qui reste hors de votre contrôle

Même avec des données complètes et une exemption demandée, l’émetteur peut décider d’un challenge (step-up). Si vous tentez une autorisation sans authentification (via exemption) et que l’émetteur la refuse, vous recevez un soft decline : il faut alors rejouer l’opération avec authentification. Voir l’entrée correspondante dans la FAQ.

FAQ – 3DS 2.2

Choix du flux

Dois-je utiliser le flux BRW ou le flux 3RI ?

Le critère est qui initie la transaction et si le porteur est présent, pas le rang de la transaction :

  • BRW → transaction initiée par le client (CIT), porteur présent qui valide lui-même le paiement. À utiliser pour la première authentification d’une carte comme pour tout paiement où le client agit en séance.
  • 3RI → transaction initiée par le marchand (MIT), porteur absent, sur la base d’une CIT authentifiée antérieure (référencée via threeDSReqPriorRef).

Voir la vue d’ensemble de la section et la page MIT.

Puis-je utiliser le flux BRW pour mes transactions récurrentes / initiées par le marchand ?

Non. Le BRW suppose un navigateur et un porteur présents. L’employer pour des MIT entraîne friction inutile, soft declines et non-conformité DSP2. Pour ces transactions, utilisez le 3RI, qui s’appuie sur l’acsTransID de la CIT initiale. Une MIT peut toutefois être exceptionnellement requalifiée en CIT par l’émetteur ; dans ce cas, rejouez une CIT (BRW) avec le porteur.

Environnement de test

Existe-t-il des cartes de test pour des transactions 3DS2 en environnement RCT ?

👉 Consultez la liste des cartes de test de l’environnement RCT.

Erreurs et statuts d’authentification 3DS

Mon versioning retourne une erreur 404 « Card account number not found in card ranges from Directory Server ». Que faire ?

La carte utilisée n’est pas enrôlée 3DS 2.2 : la transaction ne peut pas se faire en 3DS 2.2. Nous conseillons de prévoir un basculement vers un paiement en 3DS1 pour ce type de carte.

La requête Result retourne transStatus = U. Comment l’interpréter ?

La valeur U signifie que l’authentification / vérification n’a pas pu se faire (problème technique ou autre).

  • Côté SmartForm : lors du challenge, seules les valeurs Y et A valident le challenge et permettent de continuer le paiement. Les autres valeurs font échouer le challenge et le paiement.
  • Côté CustomForm : le comportement peut différer. Vous pouvez utiliser la valeur U pour retenter un challenge ; en cas de nouvel échec, basculer en 3DS1, ou considérer le paiement comme refusé. Ces différents traitements sont possibles.
SmartForm vs CustomForm : le SmartForm est la page de paiement hébergée par 

Après soumission du formulaire à l’acsURL, le client revient sans CRES mais avec un paramètre ERROR (base64) et un THREEDSSESSIONDATA vide. Que faire ?

Vérifiez que tout votre process 3DS2 se déroule sur une seule et même page via la solution d’iframe. Si le processus est conforme, 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, grâce à la solution d’iframe.

Erreur 303 « acquirerBIN, acquirerMerchantID not recognized » lors de l’authentification. Que faire ?

Il s’agit soit d’un contrat qui n’est pas 3DS2, soit d’un autre problème. Dans ce dernier cas, contactez le support technique en fournissant le numéro de contrat monétique (si connu) et les autres informations utiles.

Erreur 203 « Validation of 3DS Requestor Authentication data failed […] » pour le champ merchant.merchantName. Que signifie-t-elle ?

L’erreur 203 signale un caractère invalide dans le paramètre merchant.merchantName.

Erreur « There is no unique source of card » dans la clé card data. Que signifie-t-elle ?

Cette erreur, commune à toute la plateforme, survient lorsque vous envoyez les informations de carte deux fois : par exemple un cardToken et un cardId, ou un PAN et un cardToken. N’envoyez qu’une seule source de carte.

Illustration de l'erreur de source de carte
Exemple complémentaire

Autorisation bancaire

L’API transaction retourne « Soft Decline » alors que threeDSServerTransID est bien celui retourné par le CRES. Que faire ?

Le soft decline (code A1) est renvoyé par la banque lorsque le 3DS n’est pas présent dans la transaction. Vérifiez qu’aucun champ 3ds[...] n’est manquant — voir les données à transmettre sur la page BRW, étape Transaction.

Codes retour banque 5 et 12 (hors 3DS)

Ces codes proviennent de l’autorisation bancaire et ne sont pas spécifiques au 3DS.

  • Code 5 : la banque refuse sans donner de statut particulier (CVV erroné ou autre décision que nous ne connaissons pas). Ce statut ne permet pas d’affirmer que la banque refusera l’autorisation après d’autres tentatives.
  • Code 12 : la banque refuse sans donner de statut particulier. Causes possibles : transaction invalide ; CAVV erroné ou invalide (le CAVV est le cryptogramme d’authentification fourni par l’ACS lors du 3DS, à ne pas confondre avec le CVV) ; ou autre décision que nous ne connaissons pas.

Gestion des marchands

Informations générales

Cette section explique le fonctionnement de la création de comptes CentralPay, qu’il s’agisse de comptes de paiement ou de comptes de monnaie électronique, ainsi que les méthodes disponibles pour initier un enrôlement utilisateur via nos outils (portail ou API), en fonction du modèle de partenariat.

1. Types de comptes

CentralPay permet l’ouverture de deux types de comptes réglementés :

Type de compteDescriptionExemples d’usage
Compte de paiementCompte de paiement au sens de l’article L314-1 du Code monétaire et financier.Encaissement par carte, virement ou SEPA.
Compte de monnaie électroniqueCompte prépayé en euros émis par CentralPay, selon les règles des Établissements de Monnaie Électronique.Wallets, marketplaces C2C, cashback, titres.

L’attribution du type de compte dépend du modèle économique du marchand et de son éventuelle gestion par un mandataire (DME ou Agent).

2. Fonctionnement global de l’enrôlement

L’ouverture d’un compte passe systématiquement par une procédure d’enrôlement incluant :

  1. La création d’une demande d’enrôlement : initiation d’un dossier contenant les premières informations (email, nom, prénom)
  2. La complétion de l’enrôlement : soumission par l’utilisateur des informations réglementaires et des justificatifs (KYC/KYB)
  3. La validation de l’enrôlement : analyse par CentralPay, pouvant aboutir à une ouverture de compte, une demande complémentaire ou un refus

3. Deux interfaces possibles

InterfaceDescriptionPublic concerné
Portail d’enrôlement CentralPayInterface hébergée par CentralPay, accessible via lien personnalisé.Tous types d’utilisateurs
API d’enrôlementInterface technique permettant à un mandataire d’initier ou compléter des enrôlements via API.Mandataires autorisés selon leur statut

4. Conformité et réglementation

Afin de respecter le cadre réglementaire applicable aux Prestataires de Services de Paiement, la répartition des rôles est strictement encadrée :

  • CentralPay initie seul la contractualisation avec l’utilisateur
  • Le partenaire technique ne peut pas inciter, conseiller ni initier une ouverture de compte
  • Le partenaire technique n’intervient pas dans la collecte de justificatifs
  • Seuls les partenaires enregistrés comme MOBSP, ou les mandataires Agent ou DME peuvent intervenir dans les étapes d’enrôlement élargies
Modèle partenairePeut initier une demande d’enrôlementPeut compléter un enrôlement (API)Peut transmettre des justificatifs KYC
Partenaire TechniqueOui*❌ Non❌ Non
Mandataire DMEOui, via API ou portail✅ Oui✅ Oui
Mandataire AgentOui, via API ou portail✅ Oui✅ Oui (KYC Niveau 1 ou plus si mandat)
ℹ️ Le partenaire technique peut créer une demande d'enrôlement contenant uniquement les données de contact (email, nom, prénom, raison sociale), sans envoyer lui-même de lien d'enrôlement. CentralPay reste seul décideur de la suite du processus.

Demande d'enrôlement

1. Méthodes de création d’une demande d’enrôlement

1.1. Depuis le portail Marchand CentralPay

Un utilisateur connecté au portail CentralPay peut initier une demande d’enrôlement depuis le menu : Plateforme > Enrôlements > Créer

Recette Portail Marchand – Onboarding
Production Portail Marchand – Onboarding

Il peut alors renseigner manuellement les champs décrits plus bas (dans le détail de l’appel API). Une fois la demande enregistrée, un lien de redirection vers le portail d’onboarding est généré automatiquement et peut être :

  • Envoyé automatiquement par e-mail via le Mailer CentralPay (sélectionner OUI dans le champ « Envoyer des emails à l’adresse ci-dessus »)
  • Ou copié manuellement pour un envoi par un autre canal (chat, SMS, etc.)

1.2. Depuis l’API : POST /merchant-enrollments

L’enrôlement peut aussi être initié automatiquement via l’API, en appelant : POST /merchant-enrollments

L’appel permet de générer un identifiant d’enrôlement (UUID) et d’initier un parcours d’onboarding complet, qui pourra être poursuivi :

  • Soit via le portail Marchand
  • Soit entièrement via les endpoints API (voir partie « Compléter un enrôlement par API »)
Si aucun lien direct (enrollment_url) n’est retourné par l'API, par défaut, la plateforme CentralPay envoie un e-mail à l'adresse définie dans profile[email][value].
Pour désactiver cet envoi : "sendClaimEmail": false

Si vous désactivez l'envoi, vous pouvez transmettre manuellement l'URL d’accès à l'interface onboarding en reconstituant :
- En RCT : https://test-onboarding.centralpay.net/token/profile/[UUID]
- En PROD : https://onboarding.centralpay.net/token/profile/[UUID]

Note : [UUID] est l’identifiant retourné dans la réponse à POST /merchant-enrollments.

2. Créer une demande d’enrôlement depuis l’API (Merchant Enrollment)

🇫🇷 Enrôlement simplifié via SIREN (France uniquement)
CentralPay permet de pré-remplir automatiquement certaines informations pour les sociétés françaises disposant d’un numéro SIREN :
1. Appeler l'endpoint : POST /api/legal-entity/siren
2. Fournir le champ : { "siren": "123456789" }
3. Si les informations sont valides, un UUID est retourné. Il doit être utilisé comme identityBadge dans la création d’enrôlement pour déclencher le parcours simplifié.

2.1. Champs requis

ChampTypeObligatoireDescription
profile[firstname][value]string (255)✅ OuiPrénom du titulaire. Validation : caractères alphabétiques et tirets (-). Depuis la version 1.15.0
profile[lastname][value]string (255)✅ OuiNom du titulaire. Validation : caractères alphabétiques et tirets (-). Depuis la version 1.15.0
profile[email][value]string (255)✅ OuiAdresse email de contact. Depuis la version 1.15.0
profile[phone][value]string✅ OuiNuméro de téléphone international. Depuis la version 1.15.0
languagestring✅ OuiLangue préférée du marchand. Note : utilisez GET /api/locale pour les valeurs disponibles.
accountTypeenum✅ OuiType de profil marchand à créer. Note : utilisez GET /api/merchant-enrollment/account-type.
activitySectorUUID (36)✅ OuiSecteur d’activité du marchand. Note : utilisez GET /api/nauth/enrollment-claim/activity-sector.
activityAgeUUID (36)✅ Oui, si type = LEGAL_ENTITY ou INDIVIDUAL_WITH_STATUSAncienneté de l’activité. Note : utilisez GET /api/nauth/enrollment-claim/activity-age.
feeScheduleUUID (36)✅ OuiGrille tarifaire à appliquer. Note : obtenez les identifiants via POST /api/merchant-enrollment/fee-schedule.
identityBadgeUUID✅ Oui, si enrôlement via SIRENIdentifiant SIREN (activant le parcours simplifié).
contractUUID✅ Oui, si accountType = STANDARDContrat à appliquer. Note : utilisez GET /api/merchant-enrollment/contract.

2.2. Champs avancés (optionnels)

Personnalisation du parcours

ChampValeur par défautDescription
workflowModeSEQUENTIALMode de déroulement du parcours (seul le mode SEQUENTIAL est désormais disponible).
Note : valeurs valides : SEQUENTIAL
type—Type juridique : INDIVIDUAL, INDIVIDUAL_WITH_STATUS, LEGAL_ENTITY.
Note : conditionne la structure du parcours.
subType—Sous-type recommandé selon type.
Note :
Pour INDIVIDUAL_WITH_STATUS : SOLE_TRADER, MERCHANT, ARTISAN
Pour LEGAL_ENTITY : ASSOCIATION, PUBLIC, COMMERCIAL, EIG, CIVIL
turnoverIsFixedfalseSi true, verrouille la déclaration de chiffre d’affaires.
Note : facultatif

Paramètres de communication

ChampValeur par défautDescription
sendClaimEmailtrueEnvoie l’e-mail d’enrôlement avec le lien portail.
allowedEmailCommunicationtrueSi false, désactive tous les envois d’e-mails pendant le parcours d’onboarding.
sendProfileCreationEmailfalseEnvoie un email à l’utilisateur une fois le profil complété.
sendAccountCreationEmailtrueEnvoie un email une fois le profil Marchand CentralPay activé.

Données personnelles

Tous les champs ci-dessous sont facultatifs mais permettent de pré-renseigner la constitution du profil utilisateur du futur titulaire du compte.

ChampTypeDescription
profile[nationality][country]string (3)Nationalité (format ISO 3166-1 alpha-3).
profile[birthday][value]dateDate de naissance.
Validation : ≥ 18 ans, ≤ 110 ans
profile[place_of_birth][value]stringLieu de naissance.
profile[country_of_birth][country]string (3)Pays de naissance (ISO 3166-1 alpha-3).
birthdayConfirmation[value]dateRequis uniquement si le marchand est affilié à un agent.
Format : YYYY-MM-DD

Adresse (optionnelle)

Ces champs peuvent être fournis pour pré-remplir l’adresse du titulaire.

ChampTypeDescription
profile[address][nameLine1]string(255)Ligne 1 de l’adresse.
Contraintes : ^[a-zA-Z0-9\\p{L} ´'\\-]{1,255}$
profile[address][locality]string(255)Ville.
profile[address][postalCode]string(20)Code postal.
profile[address][country]string(3)Pays (ISO 3166-1 alpha-3).

Autres options

ChampTypeDescription
contractUUID (36)Contrat à appliquer.
Obligatoire si accountType = STANDARD.
Note : GET /api/merchant-enrollment/contract
cguUUID (36)CGU à appliquer.
Note : POST /api/merchant-enrollment/cgu
Depuis version 1.18.0
customReferencestring (100)Référence personnalisée (usage interne).
payoutProfileUUID (36)Profil de versement à associer.
Note : POST /api/merchant-enrollment/payout-profile
administrativeContactstring (255)Contact administratif référent.
Depuis version 1.18.0
technicalContactstring (255)Contact technique.
Depuis version 1.18.0
financialContactstring (255)Contact financier.
Depuis version 1.18.0
addSecurityReferenceboolAffiche une référence de sécurité lors de la validation du contrat.
Uniquement valable pour : STANDARD, PARTNER, RESELLER.
Défaut : false
hookUUIDIdentifiant de webhook à notifier.
Note : voir onglet Full API reference pour obtenir les valeurs possibles.

Compléter un enrôlement

Une fois la demande d’enrôlement créée, le titulaire du futur compte peut finaliser son parcours de deux manières : via le portail CentralPay ou par intégration complète à l’API.

1. Option 1 – Compléter l’enrôlement via le portail CentralPay

Le lien d’accès à l’onboarding (généré ou reconstruit lors de la création d’enrôlement) permet au futur titulaire de compte de renseigner ses informations et d’uploader les documents demandés depuis l’interface CentralPay, de manière autonome.

  • Vous êtes notifié automatiquement à chaque étape de l’enrôlement ou uniquement à sa finalisation (selon votre paramétrage webhook)
  • Une fois le parcours complété par l’utilisateur, les données sont transmises aux équipes conformité de CentralPay pour validation
  • Dans certains cas, des documents complémentaires pourront être requis par les analystes CentralPay

2. Option 2 – Compléter l’enrôlement par API

Il est également possible de piloter l’ensemble du parcours d’enrôlement via API, étape par étape.

Le processus suit 4 grandes phases :

  1. Compléter le profil
  2. Déterminer le workflow
  3. Compléter le workflow
  4. Finaliser l’enrôlement

2.1. Compléter le profil

Statut du profil

Un profil commence toujours avec un statut workflow.status = « ON_GOING ». Pour être considéré comme complété, ce statut doit devenir ACCEPTED.

⚠️ En mode SEQUENTIAL, ce statut peut revenir à ON_GOING lors du déblocage de questions supplémentaires. Il convient de le recontrôler à chaque étape.

Obtenir la première activité à compléter

  • Récupérer l’activityUuid via : GET /api/nauth/merchant-enrollment/{enrollmentId}
  • Parcourir : profile.workflow.activities[0].uuid
  • Puis interroger : GET /api/nauth/profile/{activityUuid}/activity

Soumettre les données

Envoyer les données attendues via un formulaire : POST /api/nauth/profile/{activityUuid}/activity
Content-Type : multipart/form-data

Exemple de champs attendus (activité « Identity Informations ») :

ChampTypeContraintes
firstname[value]string255 caractères
lastname[value]string255 caractères
mail[value]stringEmail valide
phone[value]stringNuméro international (min. 10 caractères)
birthday[value]stringDate au format YYYY-MM-DD, entre 18 et 110 ans
place_of_birth[value]string—
country_of_birth[country]stringISO 3166-1 alpha-3

Autres types d’activité possibles :

  • Domiciliations : informations d’adresse
  • Pièce d’identité : type (IDENTITY_CARD, PASSPORT) + documents (2 fichiers pour carte, 1 pour passeport)

Répétez ce processus tant que le statut d’une activité reste « TODO ».

2.2. Déterminer le workflow

Cette étape débloque la suite du parcours (collecte de documents, justificatifs, etc.).

  • POST /api/merchant-enrollment/{enrollmentUuid}/activity/{uuid}

Payload attendu :

ChampTypeObligatoireNotes
typeEnum✅ OuiINDIVIDUAL, INDIVIDUAL_WITH_STATUS, LEGAL_ENTITY
bankAccountInEEACountrybool✅ Oui—
turnoverUUID (36)✅ OuiPOST /api/nauth/enrollment-claim/turnover
companyNamestring(255)Oui, si LEGAL_ENTITY—
activityAgeUUID (36)Oui, si LEGAL_ENTITY ou INDIVIDUAL_WITH_STATUSGET /api/nauth/enrollment-claim/activity-age
subTypeENUMRecommandéDépend du type (voir détails ci-dessous)
isCompanyboolOui, si LEGAL_ENTITY—

Si vous avez utilisé un identityBadge (enrôlement via SIREN), cette étape est automatiquement sautée : le workflow est déjà déterminé.

2.3. Compléter le workflow

Chaque étape du workflow suit la même logique que celle du profil.

Types de step possibles :

  • FORM : champs à renseigner via key[value]
  • API_CALL : traitement externe
  • VALIDATION : action manuelle par les équipes CentralPay
  • ENDED : étape finalisée
Exemple : pour le champ company_legal_status, il faut envoyer company_legal_status[value].

Les endpoints utilisés sont :

  • POST /api/merchant-enrollment/{merchantUuid}/activity/{uuid}
  • POST /api/merchant-enrollment/{uuid}/complete

Validation d'un enrôlement

Une fois toutes les étapes du profil et du workflow complétées (que ce soit via le portail d’onboarding CentralPay ou par API), l’enrôlement entre en phase de vérification par les équipes conformité de CentralPay.

1. Vérification par le service conformité

Les analystes procèdent à une analyse complète des informations et documents collectés au cours du parcours. Cette étape peut mener à l’une des décisions suivantes :

1.1 Validation de l’enrôlement

Si les éléments fournis sont complets, lisibles et conformes aux obligations réglementaires, l’enrôlement est validé. CentralPay procède alors automatiquement à la création :

  • Du profil Marchand CentralPay (Merchant)
  • Du compte de paiement (Wallet)
  • Du profil utilisateur légal du profil Marchand CentralPay (BO User)
ℹ️ Ces entités sont accessibles immédiatement depuis vos outils de supervision (portail ou API).

1.2. Demande de compléments

Si certaines pièces sont manquantes, floues, expirées ou incohérentes, une demande de documents complémentaires peut être émise par le service conformité.

Cette demande est :

  • Soit transmise par email directement au futur titulaire du compte
  • Soit affichée dans le portail d’onboarding CentralPay, si la demande le permet
ℹ️ L’utilisateur pourra compléter les pièces demandées pour relancer la vérification.

1.3. Refus de l’enrôlement

Dans certains cas (documents non valides, identité invalide, incohérences non résolues, risque trop élevé), l’ouverture du compte peut être refusée.

Aucune entité CentralPay (BO User, Wallet, Merchant) n’est alors créée.

2. Notifications via webhook

Quel que soit le scénario de sortie (validation, complément ou refus), vous êtes notifié en temps réel via les webhooks configurés.

Cela vous permet de :

  • Suivre les enrôlements au fil de l’eau
  • Adapter votre UX si l’enrôlement est refusé ou en attente
  • Déclencher des actions internes (création CRM, attribution, etc.)

Compte de Monnaie Électronique limité

CentralPay permet la création de comptes de monnaie électronique (Wallets) pour stocker et utiliser des valeurs numériques. Deux parcours complémentaires sont proposés :

  1. Création rapide d’un Wallet sans KYC (compte limité) : accessible immédiatement avec des plafonds réglementaires
  2. Déplafonnement du Wallet via enrôlement KYC (compte vérifié) : levée des limites après vérification des documents

Ce fonctionnement est adapté aux parcours progressifs : un utilisateur peut créer un compte limité pour un premier usage, puis être invité à compléter son profil pour accéder à l’ensemble des fonctionnalités.

1. Création d’un compte de Monnaie Électronique limité

CentralPay permet la création de comptes de monnaie électronique utilisables immédiatement, sans collecte de documents, dans un cadre réglementaire strict. Les comptes de monnaie électronique limités sont réservés aux individuels (personnes physiques). Les personnes morales ne peuvent pas disposer de ce type de compte.

1.1. Limites réglementaires

  • Solde maximal : 150 €
  • Encaissement glissant : 150 € sur 30 jours

Ce seuil s’appuie sur les dispositions de l’article R561-16 du Code monétaire et financier concernant les comptes de monnaie électronique non vérifiés.

ℹ️ Ce type de compte peut ensuite être déplafonné par enrôlement KYC (voir plus bas).

1.2. Étape 1 – Créer un Customer

Le Wallet doit être rattaché à un objet Customer représentant l’utilisateur final (voir Profils Clients)

1.3. Étape 2 – Créer un Wallet

  • POST /wallets

Champs obligatoires

ChampTypeDescriptionNote
customerIdUUIDIdentifiant du CustomerRequis sauf si merchantId est fourni
currencystring (3)Devise du Wallet (ex. "EUR")ISO 4217 – format 3 lettres

Champs optionnels

ChampTypeDescription
referencestringRéférence métier
activationDatedateDate d’activation
expirationDatedateDate d’expiration
additionalDataobjectDonnées personnalisées (JSON)

1.4. Étapes complémentaires – Gérer un Wallet limité

Une fois un Wallet créé, CentralPay vous permet de :

  • le modifier (ex. : ajouter une date d’expiration, une référence, un Merchant)
  • le consulter en détail
  • lister les Wallets existants pour un Customer ou Merchant

2. Modifier un Wallet

  • POST /wallets/{walletId}

Ce service permet de mettre à jour certains attributs du Wallet sans le recréer.

Champs obligatoires

ChampTypeDescriptionNote
walletIdUUIDIdentifiant du Wallet à mettre à jourRequis dans l’URL et/ou le corps de requête

Champs optionnels

ChampTypeDescriptionNote
referencestringRéférence personnalisée du Wallet—
expirationDatedateDate d’expiration du WalletYYYY-MM-DD
activationDatedateDate d’activation du WalletYYYY-MM-DD
additionalDataobjectDonnées métier structurées (clé/valeur JSON)—
merchantIdUUIDPour rattacher un Wallet à un Merchant spécifiqueFacultatif – à ne pas confondre avec customerId

3. Consulter un Wallet

  • GET /wallets/{walletId}

Ce service permet de récupérer les informations détaillées d’un Wallet existant.

Paramètres requis

ChampTypeDescriptionNote
walletIdUUID (36)Identifiant du WalletLe Wallet doit appartenir au Merchant connecté ou à l’un de ses sous-marchands

Description des champs

ChampTypeDescriptionNote
currencystringDevise du WalletISO 4217 (ex. EUR)
available[].amountintSolde disponible en centimesEx. : 10500 = 105,00 €
pending[].amountintSolde en attente (transactions en cours)—
referencestringRéférence du WalletFacultatif
additionalDataobjectDonnées personnaliséesJSON libre

4. Lister les Wallets d’un Customer

  • GET /wallets

Permet d’obtenir la liste des Wallets créés pour un même Customer.

Paramètres requis

ChampTypeDescription
customerIdUUIDIdentifiant du Customer
currencystringDevise (ex. "EUR")

Paramètres optionnels

ChampTypeDescriptionNote
afterstringNe retourner que les Wallets créés après cette dateFormat ISO 8601
beforestringNe retourner que les Wallets créés avant cette dateFormat ISO 8601
limitstringNombre d’éléments par pageDéfaut : 10
pagestringIndex de la pageDéfaut : 1

5. Schéma de création d’un compte de ME limité

Déplafonner un compte de Monnaie Électronique

Un Wallet peut être converti en compte vérifié (limites levées) via un enrôlement complet, déclenché par l’API.

1. Étape 1 – Créer un enrôlement

  • POST /merchant-enrollments

Vous devez inclure le walletId du Wallet limité existant.

Champs obligatoires

ChampTypeDescriptionNote
walletIdUUIDLien avec le Wallet ME à déplafonnerUUID valide
profile[firstname][value]string (255)PrénomAlpha + -
profile[lastname][value]string (255)NomAlpha + -
profile[email][value]string (255)Email de contact—
profile[phone][value]string (15)Téléphone international—
profile[birthday][value]date (YYYY-MM-DD)Date de naissanceEntre 18 et 110 ans
profile[place_of_birth][value]string (255)Lieu de naissance—
profile[country_of_birth][country]string (3)Pays de naissanceISO 3166-1 alpha-3
languagestring (3)"fr" ou "en"—
accountTypestring"BASIC"—
typestring"INDIVIDUAL"—
activitySectorUUID (36)Secteur d’activitéGET /api/nauth/enrollment-claim/activity-sector
feeScheduleUUID (36)Grille tarifairePOST /api/merchant-enrollment/fee-schedule
turnoverUUID (36)CA annuel attenduPOST /api/nauth/enrollment-claim/turnover
workflowDefinitionUUIDModèle de workflowfournie par CentralPay
profileWorkflowDefinitionUUIDModèle de profilfournie par CentralPay
workflowModestring"SEQUENTIAL"Requis
allowedEmailCommunicationbooleanConsentement à recevoir des emailstrue ou false

Champs facultatifs

ChampTypeDescription
sendClaimEmailbooleanEnvoi de l’e-mail d’enrôlement (défaut : true)
sendProfileCreationEmailbooleanEmail après profil complété
sendAccountCreationEmailbooleanEmail à l’ouverture du compte vérifié
customReferencestringRéférence interne
technicalContact, administrativeContact, financialContactstring(255)Contacts métiers
addSecurityReferencebooleanAffiche une référence sécurité (pour STANDARD, PARTNER, RESELLER)
hookUUIDHook technique
birthdayConfirmation[value]dateSi affilié à un agent

2. Étape 2 – Compléter un enrôlement KYC (via autocomplete)

Pour accélérer le processus d’enrôlement, vous pouvez compléter d’un seul coup toutes les données attendues en appelant :

  • POST /merchant-enrollment/{uuid}/autocomplete

Adresse de résidence

ChampTypeObligatoireDescriptionNote
address[nameLine1]string✅ OuiNuméro et nom de rue—
address[locality]string✅ OuiVille de résidence—
address[postalCode]string✅ OuiCode postal—
address[country]string✅ OuiPays de résidenceISO 3166-1 alpha-3

Document d’identité

ChampTypeObligatoireDescriptionNote
identityDocument[type]string✅ OuiType de documentIDENTITY_CARD, PASSPORT, RESIDENCE_PERMIT, VISA, IDENTITY_DOCUMENT_RECEIPT
identityDocument[documents][0]fichier✅ OuiRecto ou scan principalJPG, JPEG ou PNG
identityDocument[documents][1]fichier✅ Oui, si IDENTITY_CARDVerso ou page complémentaireJPG, JPEG ou PNG
identityDocument[issuingCountry]string✅ OuiPays émetteurISO 3166-1 alpha-3
identityDocument[expiryDate]string❌ NonDate d’expirationFormat YYYY-MM-DD
identityDocument[checkId]string❌ NonID de contrôle (Onfido)—
identityDocument[documentNumber]string❌ NonNuméro du document—
identityDocument[mrzLine1]string❌ NonLigne MRZ 1—
identityDocument[mrzLine2]string❌ NonLigne MRZ 2—

Cas particuliers

ChampObligatoireConditionDescription
identityDocument[proofOfIdentityDocument]✅ Ouisi type = IDENTITY_DOCUMENT_RECEIPTJustificatif visuel du récépissé
identityDocument[proofOfIdentityDocuments][*]✅ OuiidemPlusieurs fichiers si applicable
identityDocument[proofOfIdentityDocumentExpiryDate]✅ Ouisi fichier proofOfIdentityDocument fourniFormat YYYY-MM-DD

Données bancaires (facultatif mais recommandé)

ChampTypeObligatoireDescriptionNote
iban[value]string❌ NonIBAN à vérifierFormat IBAN valide
bic[value]string❌ NonCode BIC/SWIFT—
ibanDocument[document]fichier❌ NonJustificatif bancaire (RIB, relevé)JPG, JPEG ou PNG

Données KYC complémentaires (riskData)

Tous les champs suivants sont requis sauf mention contraire.

ChampTypeObligatoireDescriptionNote
riskData[isPep]bool✅ OuiPersonne politiquement exposée ?défaut : false
riskData[isInSanctionList]bool✅ OuiAppartient à une liste de sanctions ?défaut : false
riskData[residentAlpha3Code]string✅ OuiPays de résidenceISO 3166-1 alpha-3
riskData[isHighRiskResident]bool✅ OuiPays de résidence à risque ?—
riskData[nationalityAlpha3Code]string✅ OuiNationalitéISO 3166-1 alpha-3
riskData[isHighRiskNationality]bool✅ OuiNationalité à risque ?—
riskData[isHighRiskMCCActivitySector]bool✅ OuiSecteur MCC à risque ?—
riskData[MCCActivitySector]int✅ OuiCode MCC (NAF ou secteur)—
riskData[monthlyLimit]int✅ OuiLimite mensuelle déclarée (en centimes)Ex. 150000 = 1500,00 €
riskData[monthlyLimitCurrencyAlphabeticCode]string✅ OuiDevise (ex. EUR)ISO 4217
riskData[isCrossBorderPayment]bool❌ NonPaiements transfrontaliers ?Défaut : true
riskData[declaredMonthlyRevenue]int❌ NonRevenus déclarés (en centimes)—
riskData[verifiedMonthlyRevenue]int✅ Oui, si full KYCRevenus vérifiés—

Documents complémentaires (si requis)

ChampTypeObligatoireDescriptionNote
proofOfAddressDocument[documents][0]fichier✅ Oui, si profil à risqueJustificatif de domicileJPG, JPEG ou PNG
incomeDocument[document]fichier✅ Oui, si full KYC requisJustificatif de revenus (1 doc)JPG, JPEG ou PNG
incomeDocument[documents][*]fichier✅ Oui, si full KYC requisPlusieurs fichiers possiblesJPG, JPEG ou PNG

Autres documents (si nécessaires à la levée de limite)

ChampTypeDescriptionNotes
additionalDocuments[X]['type']stringType du document transmisEx. : UBO_DECLARATION, PROOF_OF_VAT_REGISTRATION, LICENSING_AGREEMENT, etc.
additionalDocuments[X]['documents'][X]fichierFichier transmisFormat : JPG, JPEG, PNG
ℹ️ La liste complète des types de document acceptés est documentée dans l'Open API.

Données libres (obligatoire même vide)

ChampTypeObligatoireDescription
metaDataJSON object✅ OuiMétadonnées libres, au format {"key": "value"} (peut être vide)

3. Étape 3 – Corriger un enrôlement rejeté (autoupdate)

Lorsque le service conformité refuse un ou plusieurs documents (ex. : carte d’identité floue, pièce expirée), vous pouvez soumettre uniquement les éléments refusés via une requête d’auto-mise à jour.

  • POST /merchant-enrollment/{uuid}/autoupdate

Correction de document d’identité

ChampTypeObligatoireDescriptionNote
identityDocument[type]string✅ OuiType de document à corrigerIDENTITY_CARD, PASSPORT, RESIDENCE_PERMIT, VISA, IDENTITY_DOCUMENT_RECEIPT
identityDocument[documents][0]fichier✅ OuiRecto du document (ou fichier unique)JPG, JPEG ou PNG
identityDocument[documents][1]fichier✅ Oui, si type = IDENTITY_CARDVerso de la CNIJPG, JPEG ou PNG
identityDocument[issuingCountry]string✅ Oui, si document transmisPays émetteurISO 3166-1 alpha-3

Document d’identité complémentaire (si requis)

ChampTypeObligatoireDescription
complementaryIdentityDocument[documents][0]fichier✅ Oui, si exigéScan ou photo supplémentaire
complementaryIdentityDocument[expiryDate]string✅ OuiDate d’expiration (YYYY-MM-DD)
complementaryIdentityDocument[documentNumber]string✅ OuiNuméro du document
complementaryIdentityDocument[mrzLine1]string✅ OuiMRZ ligne 1
complementaryIdentityDocument[mrzLine2]string✅ OuiMRZ ligne 2
complementaryIdentityDocument[issuingCountry]string✅ OuiPays émetteur (ISO alpha-3)

Documents de revenus

ChampTypeObligatoireDescription
incomeDocument[document]fichier✅ Oui, si requisFichier unique JPG/JPEG/PNG
incomeDocument[documents][*]fichier✅ Oui, si multiples attendusPlusieurs documents par index ([0], [1], etc.)

Compléments d’information personnelle

ChampTypeObligatoireDescription
profile[firstname][value]string❌ NonPrénom
profile[lastname][value]string❌ NonNom
profile[birthday][value]string❌ NonDate de naissance
profile[place_of_birth][value]string❌ NonLieu de naissance
profile[country_of_birth][country]string❌ NonPays de naissance (ISO 3166-1 alpha-3)

Correction d’adresse (si refusée)

ChampTypeObligatoireDescription
profile[address][nameLine1]string❌ NonAdresse – ligne 1
profile[address][postalCode]string❌ NonCode postal
profile[address][country]string❌ NonPays (ISO alpha-3)
profile[address][locality]string❌ NonVille

Mise à jour des données KYC (riskData)

Tous les champs suivants sont requis sauf mention contraire. Ils doivent être renvoyés à l’identique ou mis à jour si modifiés dans le cadre de la correction.

ChampTypeObligatoireDescriptionNote
riskData[isPep]boolean✅ OuiPEP ?défaut : false
riskData[isInSanctionList]boolean✅ OuiSur une liste de sanctions ?défaut : false
riskData[residentAlpha3Code]string✅ OuiPays de résidenceISO alpha-3
riskData[isHighRiskResident]boolean✅ OuiPays de résidence à risque ?—
riskData[nationalityAlpha3Code]string✅ OuiNationalitéISO alpha-3
riskData[isHighRiskNationality]boolean✅ OuiNationalité à risque ?—
riskData[isHighRiskMCCActivitySector]boolean✅ OuiSecteur à risque ?—
riskData[MCCActivitySector]int✅ OuiCode MCC métier—
riskData[monthlyLimit]int✅ OuiLimite mensuelle (en centimes)[0 ; 190000]
riskData[monthlyLimitCurrencyAlphabeticCode]string✅ OuiDevise (ex. EUR)ISO 4217
riskData[isCrossBorderPayment]boolean❌ NonPaiements transfrontaliersdéfaut : true
riskData[declaredMonthlyRevenue]int❌ NonRevenus déclarés—
riskData[verifiedMonthlyRevenue]int✅ Oui, si full KYCRevenus vérifiés (centimes)

Documents additionnels (optionnels ou exigés)

ChampTypeObligatoireDescription
additionalDocuments[X]['type']string✅ Oui, si documents attendusType du justificatif
additionalDocuments[X]['documents'][X]fichier✅ OuiFichiers associés (JPG, JPEG, PNG)

Autres champs

ChampTypeObligatoireDescription
fullKycboolean❌ NonPermet d’imposer un KYC complet ou simplifié (true / false)

4. Étape 4 – Suivre le statut d’un enrôlement

Une fois un enrôlement créé et complété, vous pouvez à tout moment interroger son statut pour :

  • Vérifier l’état d’avancement (ON_GOING, ACCEPTED, REFUSED)
  • Suivre les étapes en attente dans le workflow
  • Extraire les données de profil déjà soumises

Récupérer un enrôlement

GET /merchant-enrollment/{enrolmentId}

Paramètres requis

ChampTypeObligatoireDescriptionNote
enrolmentIdUUID (36)✅ OuiIdentifiant de l’enrôlement retourné lors de la création (POST /merchant-enrollments)Format UUID standard
ℹ️ L’enrôlement doit appartenir à l’espace autorisé par vos identifiants API (marchand ou sous-marchand).

Champs principaux de la réponse

ChampTypeDescription
uuidUUIDIdentifiant unique de l’enrôlement
workflow.statusstringStatut du processus (ON_GOING, ACCEPTED, REFUSED)
workflow_modestring"SEQUENTIAL" ou "CONTINUAL"
workflow.activities[]tableauListe des activités (étapes) encore à compléter
profile[...]objetDonnées de profil déjà soumises, avec leur statut
conformity_statusstringÉtat de conformité global (ON_GOING, REVIEW, APPROVED, etc.)
created_atdatetimeDate de création de l’enrôlement
activity_sector.namestringSecteur déclaré dans l’enrôlement

À surveiller

  • Tant qu’une activité a un state = TODO, l’enrôlement est incomplet
  • Lorsqu’aucune activité n’est en attente et que le workflow.status = ACCEPTED, l’utilisateur est validé
  • En cas de workflow.status = REFUSED, aucun Wallet vérifié ne sera généré

5. Schéma de validation KYC d’un compte de ME

Retours, statuts et webhooks

1. Codes de retour liés à la création de profil marchand

La création d’un profil marchand via l’API d’enrôlement déclenche un processus automatisé permettant à CentralPay de collecter et valider les informations nécessaires à l’ouverture du profil.

En cas d’échec, une réponse d’erreur HTTP est retournée immédiatement à l’appel API, précisant le champ en erreur et la nature du rejet (donnée manquante, incohérente ou invalide).

⚠️ Il n'existe pas de table de codes de retour centralisée pour ces erreurs, car elles sont liées aux validations dynamiques effectuées par champ. L'erreur retournée est toujours structurée dans le corps de réponse et permet de corriger précisément le point bloquant.

2. Statuts liés aux enrôlements

Consultez les Statuts Merchant Enrollment ➝

3. Webhooks liés aux enrôlements

Consultez les Webhooks d’Onboarding ➝

Transferts de paiements

Informations générales

La solution Easy Wallet permet aux plateformes d’encaisser des paiements et de les transférer à des tiers tout en respectant la réglementation européenne.

Pour ce faire, le module comprend deux principaux services :

  • L’inscription, permettant la création de comptes de paiement et de monnaie électronique pour les marchands d’une plateforme
  • Le transfert, permettant le transfert des transactions vers ces comptes de paiement et de monnaie électronique

Selon le modèle de contractualisation CentralPay, les possibilités d’inscription et de transferts sont différentes.

1. Les types de transferts

Selon le modèle de partenariat établi avec CentralPay, le transfert des paiements est réalisé différemment :

  • Partenaires MOBSP : Vous devez utiliser le service de transfert via transaction
  • Agents PSP : Vous pouvez utiliser le service de transfert libre ou transfert via transaction
  • Distributeurs de ME : Vous devez utiliser le service de transfert via transaction pour la phase d’encaissement en devise. Ensuite, vous pouvez utiliser le service de transfert libre uniquement pour mouvementer la monnaie électronique entre les comptes de vos marchands participants

Pour connaitre votre modèle de partenariat, veuillez vous rapprocher de votre contact CentralPay.

Transfert indépendant

1. Créer un transfert (Create a Transfer)

La fonction Create a Transfer permet aux marchands mandataires (Agents ou DME) de transférer des fonds entre deux comptes de leurs marchands participants. Ce transfert peut être initié :

  • Par un Agent lorsque les comptes sont des comptes de paiement
  • Par un DME lorsque les comptes sont des comptes de monnaie électronique

1.1. Cas d’usage

Ce mécanisme permet par exemple :

  • À un Agent d’orchestrer des débits et des crédits de fonds entre lui et ses marchands participants, ou vers des comptes destinataires définis
  • À un DME d’opérer des transferts de monnaie électronique entre ses marchands participants (par exemple dans le cadre d’une place de marché C2C)

CentralPay reste en charge de l’exécution effective des opérations, dans le cadre de la relation contractuelle avec les marchands participants.

1.2. Paramètres requis

ChampTypeObligatoireDescription
destinationWalletIdUUID✅ OuiIdentifiant du compte Centralpay destinataire (appartenant à un marchand participant).
amountInteger (en cents)✅ OuiMontant du transfert. Doit être strictement supérieur à 0.
sourceIdUUID✅ Oui, si sourceType est renseignéIdentifiant de la source de fonds (ex. : transaction, virement, crédit, SDD).
sourceTypeEnum✅ Oui, si sourceId est renseignéSource du transfert : TRANSACTION, SCT_TRANSACTION, CREDIT, SDD.

1.3. Paramètres optionnels

ChampTypeDescription
emissionWalletIdUUIDCompte émetteur si différent du compte principal du marchand mandataire.
currencyCode ISODevise du transfert (si différente de celle du compte).
feeIntegerMontant de la commission prélevée par le marchand mandataire, déduite du montant. Par défaut : 0.
escrowDateDate ISODate à partir de laquelle le transfert devient effectif. Peut être utilisée pour définir une période de blocage temporaire.
merchantTransferIdStringRéférence métier du marchand mandataire (max 100 caractères).
transferGroupStringGroupe de rattachement pour regrouper plusieurs transferts.
descriptionStringDescription libre (max 256 caractères).
additionalDataKey/ValueDonnées complémentaires sous forme de paires clé/valeur (max 256 caractères par valeur).
metaDataJSONMétadonnées complémentaires structurées.
purposeCode / purposeMessageEnum / StringFinalité du transfert, selon une nomenclature standard. Voir la liste des codes.

1.4. Règles de validation

  • Le destinationWalletId doit correspondre à un compte valide d’un marchand participant du mandataire
  • Le sourceId ne peut être utilisé que si l’objet lié est dans un statut accepté (CAPTURE, CLEARED, etc.)
  • Le montant autorisé dépend du solde disponible ou des fonds liés à la source (transaction, virement, etc.)

2. Fonctions complémentaires liées aux transferts

Les marchands mandataires disposent de plusieurs fonctions de gestion post-création d’un transfert, leur permettant d’ajuster, consulter ou annuler une opération, sous conditions.

2.1. Modifier un transfert (Update a Transfer)

Cette fonction permet de modifier certains paramètres d’un transfert existant, à condition qu’il ne soit pas encore exécuté (statut PENDING).

Paramètres disponibles :

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert à modifier.
merchantTransferIdString❌ NonRéférence marchand mandataire.
escrowDateDate ISO❌ NonNouvelle date d’exécution différée.
transferGroupString❌ NonRegroupement de transferts.
descriptionString❌ NonDescription libre (max 256 caractères).
additionalDataKey/Value❌ NonDonnées complémentaires.
metaDataJSON❌ NonMétadonnées structurées.

La modification de la date d’escrow est notamment utile dans les flux conditionnés (ex : marketplace, délais de rétractation…).

2.2. Annuler un transfert (Cancel a Transfer)

Un transfert peut être annulé tant qu’il n’a pas encore été exécuté (statut PENDING). Cette annulation est irréversible : l’opération apparaîtra comme CANCEL dans les historiques du compte.

Paramètres :

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert à annuler.

⚠️ Une fois que les fonds sont disponibles (statut TRANSFERRED), cette fonction n’est plus accessible. Il faudra alors utiliser un TransferReversal.

2.3. Consulter un transfert (Retrieve a Transfer)

Permet d’obtenir l’ensemble des détails d’un transfert via son identifiant CentralPay.

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert.

2.4. Rechercher plusieurs transferts (List Transfers)

Permet de rechercher une liste de transferts selon plusieurs critères. Tous les paramètres sont optionnels.

ParamètreTypeDescription
merchantTransferIdString (100)Référence marchand mandataire.
destinationWalletIdUUIDCompte destinataire.
transferGroupStringGroupe de transferts.
statusEnumPENDING, TRANSFERRED, CANCEL.
after / beforeDate ISOFiltrer par date de création.
limitIntegerNombre de résultats par page.
pageIntegerIndex de la page de résultats.

3. Retourner un transfert exécuté (Transfer Reversal)

Une fois un transfert exécuté (statut TRANSFERRED), il ne peut plus être annulé via la fonction Cancel. Il est alors nécessaire de passer par une opération dédiée appelée TransferReversal. Elle ne supprime pas le transfert d’origine : celui-ci reste visible, historisé et traçable.

Cette fonction est accessible uniquement aux marchands mandataires (Agent pour les comptes de paiement, DME pour les comptes de monnaie électronique), et doit respecter les règles de disponibilité des fonds.

3.1. Conditions d’utilisation

Le transfert initial doit :

  • Être dans le statut TRANSFERRED
  • Avoir des fonds disponibles dans le compte destinataire
  • Ne pas avoir déjà été remboursé dans sa totalité via des opérations de reversal

Le montant retourné doit être :

  • Inférieur ou égal au solde disponible du compte destinataire
  • Inférieur ou égal à la somme initialement transférée
  • Diminué des éventuels reversals déjà effectués sur le transfert concerné

3.2. Créer un TransferReversal

Permet de retourner un montant vers le compte émetteur d’origine.

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert d’origine.
amountInteger✅ OuiMontant à rembourser (en centimes).
merchantTransferReversalIdString❌ NonRéférence marchand mandataire pour le suivi.
refundFeeBoolean❌ NonIndique si les frais du transfert initial sont remboursés (par défaut : true).
feeInteger❌ NonMontant des frais associés au reversal.
descriptionString❌ NonTexte libre explicatif (max. 256 caractères).
escrowDateDate ISO❌ NonDate d’exécution différée si applicable.
additionalDataKey/Value❌ NonPaires clé/valeur pour les besoins métier.

⚠️ Si le champ refundFee est défini à false, le montant des frais initiaux reste acquis et n’est pas restitué au compte source.

Règles importantes :

  • L’opération est visible dans les mouvements du compte (débit du compte destinataire, crédit du compte d’origine)
  • Plusieurs reversals peuvent être effectués sur un même transfert, dans la limite du montant total initial
  • Si les fonds ne sont pas disponibles, l’appel est rejeté avec une erreur explicite (insuffisance de solde ou montant trop élevé)

4. Fonctions complémentaires (TransferReversal)

Ces fonctions permettent de gérer et consulter les opérations de retour de transfert exécuté (TransferReversal), une fois créées.

4.1. Modifier un TransferReversal (Update)

Permet de modifier certaines informations sur un TransferReversal déjà créé.

ChampTypeObligatoireDescription
transferReversalIdUUID✅ OuiIdentifiant du TransferReversal à modifier
merchantTransferReversalIdString❌ NonRéférence marchand mandataire pour le suivi
descriptionString❌ NonTexte explicatif libre (256 caractères max)
escrowDateDate (ISO)❌ NonNouvelle date différée d’exécution, si applicable
additionalDataKey/Value❌ NonPaires clé/valeur pour usage métier spécifique

Cette fonction est accessible uniquement au niveau PARTNER ou supérieur.

4.2. Consulter un TransferReversal (Retrieve)

Permet de consulter les détails d’un TransferReversal à partir de son identifiant.

ChampTypeObligatoireDescription
transferReversalIdUUID✅ OuiIdentifiant du TransferReversal à consulter

L’objet retourné contient l’intégralité des informations métier, y compris : montant, date, statut, compte concerné, et historique de l’opération.

4.3. Rechercher des TransferReversals (List)

Permet d’interroger l’historique des TransferReversal selon plusieurs critères.

ParamètreTypeObligatoireDescription
merchantTransferReversalIdString❌ NonRéférence marchand mandataire
afterDate ISO❌ NonRetourne les éléments créés après cette date
beforeDate ISO❌ NonRetourne les éléments créés avant cette date
limitInteger❌ NonNombre d’éléments à retourner (par défaut : 10)
pageInteger❌ NonIndex de la page à retourner (par défaut : 1)

Cette fonction permet un suivi complet des opérations de reversal liées à une activité donnée, y compris les cas de multiples retours partiels.

Transfert via Transaction ou PaymentRequest

Contrairement aux transferts indépendants, réservés aux Agents (pour les comptes de paiement) et aux Distributeurs de Monnaie Électronique (DME) (pour les comptes de monnaie électronique), les transferts via transaction sont accessibles à l’ensemble des modèles de partenariat, y compris aux Partenaires Techniques non régulés.

Dans ce cadre, le partenaire transmet à CentralPay, au moment de la création d’une transaction (par carte, virement ou prélèvement), des données commerciales contextualisées (ex. : montant du panier, commission, identifiants des wallets destinataires…)

ℹ️ L’appel API ne crée pas directement le mouvement financier : CentralPay instruit le transfert de manière autonome, après validation effective de la transaction (capture d’une opération carte, réception d’un virement, ou exécution d’un prélèvement SEPA).

Le modèle de transfert conditionné permet de réaliser un mouvement de fonds à l’issue d’une transaction : carte, virement (SCT), ou prélèvement (SDD). Dans ce cas, le transfert est directement paramétré lors de la création de la transaction, via un champ dédié transfer[].

Cette méthode ne passe pas par l’endpoint /transfer, mais s’appuie sur les endpoints spécifiques des transactions concernées :

  • /transaction pour les paiements par carte : Voir comment créer une transaction CARD ➝
  • /sctTransaction pour les virements reçus : Voir comment créer une transaction SCT ➝
  • /sddTransaction pour les prélèvements SEPA : Voir comment créer une transaction SDD ➝
  • /paymentRequest pour les demandes de paiement : Voir comment créer une demande de paiement ➝

Ce mode de fonctionnement garantit que les fonds sont uniquement transférés si la transaction est réussie. Le transfert devient alors une étape automatisée et synchronisée.

1. Conditions d’utilisation

  • Le transfert est créé en même temps que la transaction (pas d’appel distinct)
  • Il n’est exécuté qu’en cas de succès de la transaction source
  • Il respecte les contraintes de la source (statut, solde disponible, date…)
  • Il peut être instantané ou différé via le champ escrowDate

2. Paramétrer un transfert dans une transaction

Dans les quatre cas de figure, la logique est identique : un tableau transfer[] est renseigné dans le corps de la requête lors de l’appel POST de création de la transaction.

Les champs acceptés dans transfer[] sont les suivants :

ChampTypeObligatoireDescription
destinationWalletIdUUID✅ OuiCompte CentralPay bénéficiaire. Doit appartenir à un marchand participant autorisé.
amountInteger✅ OuiMontant du transfert en centimes.
currencyString❌ NonDevise du transfert (si différente de la devise de la transaction).
merchantTransferIdString❌ NonRéférence partenaire.
feeInteger❌ NonFrais applicables (prélevés sur le montant brut).
escrowDateDate ISO❌ NonDate différée d’exécution (si applicable).
transferGroupString❌ NonIdentifiant de groupe pour les suivis agrégés.
descriptionString❌ NonLibellé du transfert visible sur les relevés.
additionalDataKV pairs❌ NonDonnées métier structurées (clé/valeur).

⚠️ Les règles de disponibilité des fonds (notamment après délai de capture ou de validation) doivent être respectées. Si la transaction est annulée ou échoue, aucun transfert n’est déclenché.

Versement sortant pour tiers

Le versement sortant pour un tiers permet de transférer des fonds depuis un compte de paiement ou monnaie électronique CentralPay vers le compte bancaire d’un marchand participant, en tant que mandataire CentralPay (Agent ou DME). Les partenaires (technique ou intégrateur) n’ont pas accès à cette fonction.

1. Objectif et périmètre

Ce service permet de :

  • Déclencher des versements manuels ou automatisés pour des marchands participants
  • Cibler un compte bancaire autorisé par le marchand participant
  • Utiliser un compte CentralPay comme source des fonds

Le partenaire régulé reste à l’initiative technique du versement, mais les fonds sont toujours détenus et transférés par CentralPay, qui conserve la responsabilité de l’exécution.

2. Méthodes disponibles

2.1. L’API CentralPay

Endpoint : /payout/byThirdParty
➡️ Voir détails ci-dessous.

2.2. Le Portail Marchand CentralPay

Accessible pour les comptes disposant des droits adéquats (Agent ou DME).

  1. Accéder à Comptes liés
  2. Sélectionner le marchand concerné
  3. Accéder à l’onglet Comptes bancaires
  4. Choisir le compte cible et déclencher le payout

3. Endpoint API : /payout/byThirdParty

Ce service permet d’envoyer une instruction à CentralPay pour reverser une somme définie vers un compte bancaire rattaché à un marchand participant.

3.1. Limites d’usage

  • 1 versement / jour / marchand participant / devise
  • Compte bancaire cible validé par le marchand participant
  • Versement uniquement sur fonds disponibles

3.2. Paramètres API (BODY)

ParamètreTypeRequisDescription
currencyISO 4217✅ OuiDevise du versement (doit correspondre au compte bancaire).
destinationBankAccountIdUUID✅ OuiCompte bancaire bénéficiaire (lié au marchand participant).
walletIdUUID❌ NonWallet source des fonds.
amountInteger (en cents)❌ NonMontant à reverser. Si vide : solde maximum.
merchantPayoutIdString❌ NonID de référence interne.
descriptionString❌ NonTexte libre, visible dans le reporting.
payoutReferenceString (max 35)❌ NonRéférence bancaire (visible sur l’opération bancaire).
additionalDataMap❌ NonDonnées complémentaires (ex. : ID commande, segment, etc.).
transitionWalletUUID❌ Non(cas avancé) wallet transitoire.
customerIdUUID❌ NonIdentifiant client si cible non marchande.

4. Suivi des versements

4.1. Récupérer un payout

Endpoint : /payout/byThirdParty/retrieve
Paramètre : payoutId (UUID)

4.2. Lister les payouts

Endpoint : /payout/byThirdParty/list
Paramètre : walletId (UUID)

4.3. Statuts possibles :

StatutSignification
PENDINGVersement en cours de traitement
PAIDVersement exécuté avec succès
CANCELVersement annulé manuellement

5. Contraintes réglementaires

  • Seuls les Agents et Distributeurs de Monnaie Électronique (DME) déclarés à l’ACPR via CentralPay peuvent initier ces versements
  • Les partenaires doivent garantir que les données envoyées sont conformes à leur cadre contractuel et réglementaire
  • CentralPay se réserve le droit de refuser un versement ou d’exiger des documents justificatifs en cas de doute sur l’opération

Retours, statuts et webhooks

1. Codes de retour liés aux transferts

Les transferts réalisés via l’API CentralPay (objet Transfer ou Transfer Reversal) sont des opérations internes entre deux porteurs de comptes CentralPay (ex : marchands, clients, partenaires). Ces opérations sont exécutées de manière synchrone ou quasi-immédiate.

Contrairement aux transactions cartes ou virements bancaires, il n’y a pas de codes de retour bancaire associés à ces transferts internes. En cas d’échec, l’API retourne une erreur HTTP décrivant la cause du rejet (ex : solde insuffisant, compte inactif, devise incompatible…).

Ces erreurs ne sont pas des statuts métier, mais des contrôles d’entrée empêchant la création du transfert. Une fois le transfert accepté, il suit un cycle de vie propre.

2. Statuts liés aux transferts

Consultez les Statuts Transfer ➝

Consultez les Statuts Transfer Reversal ➝

Consultez les Statuts Payout (valables également pour PayoutByThirdParty) ➝

3. Webhooks liés aux transferts

Consultez les Webhooks Transfer ➝

Consultez les Webhooks Transfer Reversal ➝

Consultez les Webhooks Payout (valables également pour PayoutByThirdParty) ➝

Plugin CMS

WooCommerce

Ce guide vous accompagne dans l’installation, la configuration et l’utilisation du plugin CentralPay pour WooCommerce (WordPress).

ℹ️ La plateforme CentralPay prend en charge différents moyens (carte, virement et prélèvement SEPA, initiation de paiement) et modes de paiement (paiement en une fois, abonnement, en plusieurs fois, etc.). Ce plugin permet uniquement l'encaissement de transactions cartes unitaires. 

Vous souhaitez demander une évolution du plugin, rendez-vous sur https://support.centralpay.com : Support & Paramétrage > Suggérer une nouvelle fonctionnalité.

1. Téléchargement du plugin

  • Pour WooCommerce ➝ Télécharger l’archive ZIP du plugin CentralPay

⚠️ Veillez à ne pas la décompresser manuellement.

2. Installation sur WordPress

  1. Connectez-vous à votre interface d’administration WordPress
  2. Allez dans Extensions > Ajouter
  3. Cliquez sur Téléverser une extension
  4. Sélectionnez le fichier centralpay221.zip et cliquez sur Installer maintenant
  5. Une fois l’installation terminée, cliquez sur Activer l’extension

3. Configuration du module

  1. Allez dans WooCommerce > Réglages > Paiements
  2. Cliquez sur CentralPay pour accéder à la configuration
  3. Renseignez les champs suivants puis cliquez sur Enregistrer les modifications :
ChampDescriptionAccès à la donnée
Identifiant marchandIl s’agit de votre Merchant Public Key. Ne pas confondre avec le Merchant UUID.Portail Marchand CentralPay > Administration > Technique > Copier « Merchant Public Key »
Login APIIdentifiant de votre utilisateur API CentralPayPortail Marchand CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »
Mot de passe APIMot de passe de votre utilisateur API CentralPayPortail Marchand CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Modifier > Générer un mot de passe > Copier le mot de passe > cliquer sur « Mettre à jour »
ID du point de venteIdentifiant unique de votre point de vente (UUID)Portail Marchand CentralPay > Configuration > Points de ventes > Copiez l’ID du point de vente concerné
Mode test / productionActivez le mode test si vous souhaitez utiliser l’environnement sandbox (les logins et identifiants doivent être ceux de votre profil marchand CentralPay de test)./
URL de redirectionRedirige vos clients vers une page personnalisée après paiement sur notre formulaire.Renseignez l’URL de votre page de confirmation de paiement.

4. Statut de commande

Le plugin WooCommerce de CentralPay intègre automatiquement une URL de retour (return_url) dans le lien du formulaire de paiement. Cette URL permet de rediriger le client vers la page de confirmation de commande (/checkout/order-received/) et d’actualiser le statut de la commande en fonction du résultat du paiement.

Si le client final ferme la fenêtre de paiement avant d’être redirigé, la mise à jour de la commande peut ne pas se déclencher correctement côté WooCommerce.

Pour garantir la mise à jour fiable du statut de commande, nous recommandons de mettre en place un Hook (callback serveur à serveur) dans votre Backoffice CentralPay.

Étapes de configuration :

  1. Accédez à :
    Production : https://backoffice.centralpay.net/admin/hook/
    Test : https://test-backoffice.centralpay.net/admin/hook/
  2. Créez un Hook avec les paramètres suivants :
    • Événement : Point de Vente > TRANSACTION_SUCCEDEED
    • Affecté au Point de Vente : sélectionnez votre Point de Vente WooCommerce
    • URL : https://votre-site-woocommerce.com/?wc-api=cpay_validation
      (Remplacez par l’URL de votre site WooCommerce.)
  3. Sauvegardez le Hook

Le paramètre /?wc-api=cpay_validation est nécessaire pour que le plugin WooCommerce de CentralPay reconnaisse la notification et déclenche la mise à jour du statut de la commande.

Cette configuration doit être réalisée à la fois dans votre environnement de test et sur votre profil marchand de production.

5. Personnalisation du logo

Vous pouvez également personnaliser l’interface de paiement en ajoutant le logo de votre site via le Backoffice :

  1. Accédez à : https://backoffice.centralpay.net/admin/point_of_sale/
  2. Dans le détail de votre Point de Vente, cliquez sur Modifier
  3. Importez votre logo dans la section Logo

Ce logo sera affiché directement dans le formulaire de paiement pour une expérience utilisateur plus cohérente.

6. Mode test

  • Activez le mode test dans la configuration (attention, vous devez disposer d’un profil marchand CentralPay de test et renseigner les identifiants de ce profil de test)
  • Utilisez les cartes de test fournies par CentralPay pour simuler des paiements
  • Vérifiez le bon fonctionnement :
    • Du formulaire de paiement
    • Des redirections
    • Des statuts de commande

7. Suivi des paiements

  • Retrouvez tous vos paiements dans WooCommerce > Commandes
  • Le plugin CentralPay met à jour automatiquement les statuts des commandes
  • En cas de besoin, un journal des événements est disponible dans le fichier error.log du plugin

8. Langues disponibles

Le plugin est disponible en :

  • 🇫🇷 Français
  • 🇬🇧 Anglais

Vous pouvez modifier ou ajouter vos propres traductions via les fichiers .po présents dans le dossier /languages, ou en utilisant un plugin comme Loco Translate.

9. Désinstallation

Pour désinstaller le plugin :

  • Désactivez-le via le menu des extensions
  • Cliquez sur Supprimer
  • Le script de désinstallation supprimera les paramètres du plugin

10. Support

Pour toute question ou assistance, contactez notre support technique depuis https://support.centralpay.com.
Merci d’indiquer votre identifiant marchand, l’URL de votre site et le plus de détails possible sur votre besoin.

PrestaShop

CentralPay propose un module d’encaissement par carte bancaire pour les boutiques Prestashop. Deux versions du module sont disponibles selon la version de votre CMS :

  • Pour Prestashop 1.6 ➝ Télécharger le module 1.6
  • Pour Prestashop 1.7 ➝ Télécharger le module 1.7

1. Installation du module

Prestashop v1.6

  1. Connectez-vous au back-office Prestashop
  2. Menu Modules > Modules
  3. Cliquez sur « Ajouter un nouveau module »
  4. Chargez l’archive .zip puis cliquez sur « Installer »

Prestashop v1.7

  1. Connectez-vous à l’administration de Prestashop
  2. Menu Modules > Modules Manager > Upload a module
  3. Déposez l’archive .zip ou cliquez pour la charger
  4. Terminez l’installation en suivant l’assistant

2. Configuration du module

Après installation, accédez à la page de configuration du module : Modules Modules installés CentralPay Configurer

Les champs suivants sont requis :

ChampDescriptionOù trouver cette information ?
Merchant Public KeyClé publique d’authentification APIPortail Marchand CentralPay > Administration > Technique > Copier « Merchant Public Key »
Login APIIdentifiant de votre utilisateur API CentralPayPortail Marchand CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »
Secret Key (passeword API)Clé secrète API (à ne jamais diffuser)Portail Marchand CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Modifier > Générer un mot de passe > Copier le mot de passe > cliquer sur « Mettre à jour »
ID du point de venteIdentifiant unique de votre point de vente (UUID)Portail Marchand CentralPay > Configuration > Points de ventes > Copiez l’ID du point de vente concerné
EndpointURL de l’API CentralPayEn environnement de test : https://test-api.centralpay.net/
En production : https://api.centralpay.net/
DeviseDevise des paiements acceptésÀ configurer selon la boutique (EUR recommandé)
Mode de paiementMode d’intégration technique du paiementLaisser la valeur par défaut « Direct Post »
Affichage du formulaireAffichage du formulaire sur page dédiée ou dans la page panierChoisir l’affichage souhaité (conseillé : page dédiée pour la sécurité)
Statut de commande après paiement réussiStatut que prendra la commande après une validation du paiement« Paiement accepté » (ou tout autre statut configuré dans Prestashop)

⚠️ Veillez à bien copier-coller la Merchant Public Key sans espaces ni caractères parasites.

3. Fonctionnement

Lorsqu’un client choisit CentralPay comme moyen de paiement :

  1. Il est redirigé vers une page sécurisée (hébergée ou intégrée)
  2. Il saisit ses informations de carte bancaire
  3. Le paiement est autorisé par la banque (3D Secure inclus)
  4. La commande est validée dans Prestashop avec le statut défini
  5. Un webhook notifie automatiquement CentralPay et Prestashop de l’issue du paiement

4. Mode test / production

  • En mode test, vous pouvez utiliser les cartes de test disponibles dans la documentation développeur
  • En mode production, seuls les marchands activés (KYC validé) peuvent encaisser

Le switch de mode s’effectue en modifiant l’Endpoint dans la configuration du module.

5. Support

Pour toute question :

  • Contactez le support CentralPay via le Portail Marchand > Aide & Support
  • Ou directement via support.centralpay.com

Magento

1. Téléchargement du module

  • Pour Magento ➝ Télécharger le plugin (v1.0)
ℹ️ Ce module est compatible avec Magento 1.7+

2. Installation du plugin

2.1 Décompresser l’archive

Décompressez le fichier .zip téléchargé. Vous obtiendrez les dossiers suivants :

  • app/
  • js/
  • skin/
  • centralpay.sql (fichier SQL à exécuter)

2.2. Copier les fichiers

Copiez l’ensemble des dossiers (app, js, skin) à la racine de votre instance Magento. Ils viendront automatiquement s’intégrer dans l’arborescence existante.

2.3. Exécuter le script SQL

Exécutez le fichier centralpay.sql sur la base de données de votre site Magento.

⚠️ Utilisez phpMyAdmin ou tout autre outil de gestion de base pour importer ce fichier.
⚠️ Pensez à sauvegarder votre base avant exécution.

3. Configuration du module

Une fois le module installé, connectez-vous à votre interface d’administration Magento pour renseigner les paramètres CentralPay.

3.1. Accéder à la configuration

Dans le menu d’administration Magento, rendez-vous dans : Stores Configuration Sales Payment Methods CentralPay

3.2. Paramètres à renseigner

Champ dans MagentoDescriptionObligatoireAccès à la donnée
Activer CentralPayActive le module dans l’environnement Magento.✅ OuiMagento
TitreNom du moyen de paiement visible côté client.✅ OuiMagento
Identifiant Marchand (merchantLogin)Identifiant d’API fourni par CentralPay.✅ OuiPortail Marchand CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »
Mot de passe API (merchantPassword)Mot de passe API associé à l’identifiant.✅ OuiPortail Marchand CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Modifier > Générer un mot de passe > Copier le mot de passe > cliquer sur « Mettre à jour »
Clé publique Marchand (merchantPublicKey)Clé de chiffrement utilisée pour sécuriser les données de carte.✅ OuiPortail Marchand CentralPay > Administration > Technique > Copier « Merchant Public Key »
ID du point de venteIdentifiant unique de votre point de vente (UUID)❌ NonPortail Marchand CentralPay > Configuration > Points de ventes > Copiez l’ID du point de vente concerné
URL de retour (returnUrl)Permet de rediriger le client vers Magento après paiement. Peut être laissé vide pour utiliser la redirection automatique.❌ NonMagento
Mode Test (sandbox)Permet d’utiliser l’environnement de test CentralPay.❌ NonMagento
Commande en attenteStatut Magento utilisé si le paiement est en cours ou en attente (ex. : 3DS).❌ NonMagento
Commande validéeStatut Magento utilisé si le paiement est accepté.❌ NonMagento

4. Mode test et environnement de recette

Le module propose une option de sandbox activable dans l’administration Magento.

ℹ️ Utilisez l’environnement sandbox CentralPay pour simuler des paiements avant passage en production.

N’oubliez pas d’utiliser les identifiants API de test (login, password, clé publique) fournis par CentralPay.

5. Expérience client

  1. Le client ajoute ses articles au panier et passe à la caisse
  2. Au moment du paiement, il choisit CentralPay comme méthode de paiement
  3. Il est redirigé vers l’interface de paiement CentralPay sécurisée
  4. Une fois le paiement effectué (ou refusé), il est redirigé vers votre site Magento
  5. Le statut de la commande est mis à jour automatiquement

6. Suivi des paiements

  • Depuis Magento : vous pouvez consulter le statut des commandes et des paiements dans le back-office standard
  • Depuis CentralPay : toutes les opérations sont également visibles dans votre interface CentralPay (transactions, remboursements, rejets, etc.)

7. Support technique

Pour toute question :

  • Consultez la documentation technique CentralPay : docs.centralpay.com
  • Contactez notre support : support.centralpay.com

Assistance disponible en français et en anglais.

Bonnes pratiques

Déclaration TVA par pays

CentralPay n’identifie pas le pays TVA des acheteurs : cette responsabilité incombe au marchand. Pour justifier correctement vos déclarations, collectez le pays de l’acheteur, conservez vos preuves, et transmettez‑les à CentralPay afin qu’elles figurent dans vos exports et historiques de transaction.

Public cible : marchands B2C vendant des biens ou services dans plusieurs pays de l’Union européenne.

1) Principe général

La TVA applicable dépend du pays de résidence de l’acheteur (consommateur final), non du pays du marchand ni du moyen de paiement utilisé.

Le marchand doit donc déterminer, conserver et déclarer le pays de son client afin d’appliquer la bonne TVA. CentralPay n’a ni la légitimité réglementaire ni la fiabilité technique pour déterminer ce pays à sa place.

En clair : vous êtes responsable de collecter et de stocker les informations nécessaires à la détermination du pays TVA.

2) Pourquoi CentralPay ne peut pas déterminer le pays du client

Les indices techniques accessibles à un PSP (carte, IP, etc.) ne permettent pas une identification fiable du pays de l’acheteur :

  • Pays BIN (carte) : peu fiable pour la TVA. Les cartes de banques en ligne sont souvent émises dans un autre pays que celui du détenteur.
  • Pays IP : faussé en cas d’utilisation de VPN, proxy, mobile ou cloud.
  • Payeur ≠ Acheteur : la personne qui paie n’est pas forcément celle soumise à la TVA (ex. carte d’un proche ou d’un employeur).

C’est pourquoi CentralPay ne réalise aucune analyse pour identifier le pays du client. Seul le marchand détient l’information fiscale valide.

3) Ce que vous devez faire en tant que marchand

3.1 Collecter le pays de l’acheteur

  • Intégrez la sélection du pays de facturation dans votre tunnel de commande.
  • Transmettez ces informations à CentralPay via l’API au moment de la transaction.

3.2 Transmettre le pays à CentralPay

Type de donnéeChamp à renseignerDescription
Pays de l’acheteur (obligatoire)Customer > countryCode ISO 3166‑1 alpha‑2 du pays du client.
⚠️ Si vous n’alimentez pas Customer.country, CentralPay ne peut pas afficher ni exporter le pays de vos acheteurs. Vos exports ne permettront donc pas de justifier vos déclarations TVA.

4) Ce que CentralPay fournit dans les exports

CentralPay met à disposition des exports comportant :

ColonneSourceUsage
Customer > countryValeur transmise par le marchand via Customer > countryPreuve déclarative du marchand, à utiliser pour la TVA.
Transaction > end_user_ipIP de l’acheteurIndice technique non probant.
Transaction > card_countryPays de la carte utilisée par l’acheteurIndice technique non probant.
sctTransaction > ibanIBAN de l’acheteur par virement bancaire (contenant le code pays)Indice technique non probant.
bankAccount > ibanIBAN de l’acheteur par prélèvement SEPA (contenant le code pays)Indice technique non probant.

Des exports personnalisés peuvent être mis en place si vous souhaitez inclure d’autres champs ou formats (SFTP, e‑mail…).

5) Bonnes pratiques de conformité TVA

  1. Toujours collecter le pays de facturation côté front (champ obligatoire ou déduit du profil client).
  2. Croiser au moins deux preuves non contradictoires pour chaque commande.
  3. Gérer les divergences : si les indices diffèrent (ex. IP ≠ carte), demandez un justificatif avant de facturer.
  4. Enregistrer les preuves pendant au moins 10 ans (durée légale pour les services numériques UE).
  5. Vous enregistrer à l’OSS/IOSS si vous vendez à des consommateurs dans plusieurs pays de l’UE.
  6. Relier facture, transaction et preuves pour chaque vente.

6) Exemples de cas

SituationDonnées collectéesAction recommandée
Adresse = FR, BIN = FRDeux preuves concordantesFacturez avec TVA FR
Adresse = FR, BIN = DE, IP = DEDivergenceDemandez un justificatif avant facturation
Aucun pays collectéDonnée manquanteNon‑conformité potentielle – corriger votre parcours

7) FAQ

CentralPay peut‑il déterminer le pays à ma place ?
Non. Nous exposons des indices (pays BIN, etc.), mais la décision et la preuve fiscale relèvent de vous.

Puis‑je me baser uniquement sur le BIN ?
Non, le BIN n’est pas une preuve fiable. Utilisez toujours le pays de facturation comme référence principale.

Comment vérifier que mes exports sont complets ?
Vérifiez la présence de buyer_country_declared dans vos fichiers. Si le champ est vide, votre front n’a pas transmis le pays.

Merchant Initiated Transaction (MIT)

Introduction

Une Merchant-Initiated Transaction (MIT) est un paiement initié sans interaction du titulaire de la carte, réalisé dans le cadre d’un contrat préexistant entre le marchand et son client. Ce modèle s’applique aux facturations récurrentes, variables ou usage-based.

Dans le cadre DSP2, une MIT peut être exemptée d’authentification SCA, à condition que :

  1. Le marchand dispose d’un mandat contractuel valide,
  2. Une transaction initiale CIT authentifiée (3DS) ait été réalisée.

Les MIT reposent donc sur une authentification antérieure réussie associée à un Customer et à un cardToken.

Documentation 3DS 2.2 (général)

1. CIT et MIT : quelle différence ?

Customer-Initiated Transaction (CIT)

Une transaction CIT est initiée par le titulaire de la carte. Elle implique généralement une authentification 3DS.

Rôles de la CIT initiale dans un flux MIT :

  • authentifier la carte et le porteur,
  • valider la création d’un Customer,
  • permettre la génération d’un cardToken,
  • servir de référence aux MIT futures.

Merchant-Initiated Transaction (MIT)

Une MIT est déclenchée par le marchand sans intervention du porteur, conformément au mandat conclu avec le client.

Cas d’usage :

  • facturation mensuelle à montant variable,
  • frais ponctuels supplémentaires,
  • utilisation de type usage-based.

2. Conditions nécessaires pour effectuer des MIT

Deux conditions doivent être réunies :

2.1. Exécution d’une CIT initiale authentifiée (3DS)

Cette CIT doit être :

  • authentifiée via 3DS,
  • capturée,
  • associée à un Customer et à un cardToken.

2.2. Existence d’un mandat commercial valide

Le mandat doit couvrir :

  • la nature des services,
  • le montant futur (fixe ou variable),
  • les conditions et fréquences de facturation,
  • l’accord explicite du client sur les paiements ultérieurs.
Documentation Formulaire de paiement CustomForm

3. Montant de la CIT initiale

Il est parfaitement conforme de réaliser une CIT initiale avec un montant symbolique (par exemple 1 € ou 0,01 €) pour :

  • authentifier la carte,
  • valider le contrat commercial,
  • générer un token utilisable pour des MIT ultérieures.

La CIT initiale n’a pas à couvrir le montant réel des MIT futures.

Remarque : Les transactions à 0€ type “vérification / empreinte carte authentifiée” fonctionnent pour certains schémas mais n’est pas universellement supporté par les banques partenaires, d’où la recommandation d’utiliser une transaction CIT authentifiée.
Également, bien que la CIT symbolique soit techniquement acceptable, l’émetteur peut — en fonction de son profil de risque, du schéma ou de l’ancienneté — décider de déclencher un challenge 3DS lors d’une MIT ultérieure."

4. Durée de validité d’une CIT pour générer des MIT

Il n’existe pas de limite imposée par CentralPay.
La durée de validité dépend exclusivement :

4.1. De l’ACS émetteur (banque du porteur)

Les pratiques observées dans le secteur :

  • conservation de la preuve d’authentification : ≈ 13 mois,
  • pour certains émetteurs : jusqu’à 36 mois.

Après expiration de la preuve 3DS, les MIT peuvent faire l’objet :

  • de soft declines,
  • de demandes d’authentification,
  • de rejets « SCA required ».

4.2. Du recours au 3DS 2.2 – 3RI

Dans certains cas, le marchand peut renouveler une authentification côté émetteur via 3RI, afin de prolonger la durée de validité du mandat.

Disponibilité schémas :

  • CB : support opérationnel,
  • Mastercard : support opérationnel,
  • Visa : support en cours d’évolution, non fiable à date.
Documentation 3DS 2.2 – 3RI

5. Une MIT peut-elle nécessiter une authentification 3DS ?

Oui. Une MIT peut être exceptionnellement requalifiée en CIT par l’émetteur (ACS), notamment dans les cas suivants :

  • ancienneté élevée de la CIT initiale,
  • suspicion de fraude,
  • règles RBA de l’émetteur,
  • montants atypiques ou plus élevés que prévu.

Réduire le risque de demande 3DS

  • utiliser 3RI lorsque supporté,
  • conserver un cadre contractuel clair,
  • refaire une CIT en cas d’échecs répétés.
Pour en savoir plus FAQ 3DS 2.2

6. Transactions MIT ou service d’abonnement de CentralPay : comment choisir ?

Il n’est pas obligatoire de passer par le module Subscription pour effectuer des MIT.

6.1. Utiliser le service d’abonnement si :

  • les montants sont fixes,
  • la fréquence est récurrente,
  • la logique est celle d’un abonnement.

6.2. Utiliser les transactions MIT si :

  • les montants sont variables (usage-based model),
  • les facturations sont ponctuelles,
  • les débits doivent être initiés par le marchand.
Documentation Transaction carte récurrente

7. Implémentation API : effectuer une transaction MIT

7.1. CIT initiale

Lors de la transaction CIT :

  • création d’un customer,
  • génération d’un cardTokenId,
  • authentification 3DS.

7.2. Transaction MIT

Chaque transaction MIT doit inclure :

  • customerId,
  • cardTokenId (ou cardId),
  • indication du contexte MIT dans les paramètres de transaction,
  • les métadonnées utiles pour rattacher la MIT à la CIT initiale.
Documentation Transaction carte récurrente > Abonnement depuis des transactions successives

8. Bonnes pratiques pour fiabiliser un flux MIT

8.1. Techniques

  • déclencher les MIT peu après la facturation,
  • regrouper les paiements lorsque pertinent,
  • utiliser 3RI pour rafraîchir l’authentification,
  • conserver un cardToken stable.

8.2. Gestion des refus

  • en cas de code indiquant « SCA required »,
    proposer au client une nouvelle CIT (paiement manuel),
    recréer un mandat MIT.

8.3. Contractuelles

  • conserver la preuve du mandat : CGV, logs d’acceptation, contrat, page d’information client.

9. FAQ MIT

Une CIT de 1 € suffit-elle pour un mandat MIT ?

Oui, si elle est authentifiée 3DS.

Combien de temps une CIT permet-elle de générer des MIT ?

Cela dépend de l’ACS : généralement 13 à 36 mois.

Une MIT peut-elle déclencher 3DS ?

Oui, si l’ACS l’exige (RBA, ancienneté de la CIT, montants atypiques).

Dois-je utiliser Subscription pour des montants variables ?

Non, le service subscription est généralement adapté à des modèles d’abonnements fixes. Réaliser une transaction CIT initiale + des transactions MIT ad-hoc est le modèle recommandé.

Que faire si le client change de carte ?

Une nouvelle CIT est nécessaire pour générer un nouveau token.

Verification of Payee (VoP)

À compter du 9 octobre 2025, la réglementation européenne impose aux banques de mettre en place la Verification of Payee (VoP) pour tous les virements SEPA (règlement IPR 2024/886, art. 5c).

L’objectif est de protéger les consommateurs contre les fraudes à l’IBAN.

1. Fonctionnement

Lorsqu’un virement est initié, la banque du payeur doit vérifier que le nom du bénéficiaire saisi correspond à celui associé à l’IBAN. Le résultat de cette vérification est affiché au payeur :

  • MATCH : correspondance exacte
  • CLOSE MATCH : correspondance partielle (ex. faute de frappe, abréviation, particule)
  • NO MATCH : aucune correspondance
  • CHECK NOT POSSIBLE : vérification impossible
⚠️ Le payeur reste libre de poursuivre ou non le virement.
Cependant, un NO MATCH ou un CLOSE MATCH augmentent fortement le risque d’abandon de la transaction.

2. Impacts pour les marchands

Afin d’éviter les rejets ou abandons de virements, il est essentiel de vérifier la cohérence du nom affiché à vos clients avec la raison sociale enregistrée sur votre compte CentralPay.

Cas fréquents :

  • Nom commercial / enseigne / marque → Si vous êtes connus sous un autre nom que votre raison sociale, transmettez-nous ces dénominations. Nous pourrons les déclarer manuellement afin d’améliorer le taux de correspondance.
  • vIBAN CentralPay → Vérifiez que vos interfaces et supports affichent bien la raison sociale du titulaire CentralPay associé à l’IBAN.
  • SmartForm (PaymentRequest) → Aucune action nécessaire : CentralPay affiche automatiquement le titulaire du compte.
  • Devis, factures, communications externes → Assurez-vous que la raison sociale présentée est identique à celle du compte bancaire communiqué à vos clients.
À retenir : 
- Vérifiez que votre raison sociale est correctement enregistrée et communiquée.
- Transmettez à CentralPay vos noms commerciaux ou marques si vous souhaitez les faire reconnaître.
- Harmonisez vos documents (factures, devis, emails) avec le nom officiel de votre compte bancaire.
- Informez vos clients :
* Lorsqu’ils effectuent un virement, le nom du bénéficiaire saisi doit correspondre strictement à votre raison sociale.
* En cas d’alerte de type Close match ou No match dans leur application bancaire, invitez-les à vérifier le nom renseigné.

FAQ - Verification Of Payee

À compter du 9 octobre 2025, la Vérification du bénéficiaire (VoP – Verification of Payee) deviendra obligatoire pour tous les virements SEPA, qu’ils soient classiques ou instantanés. Ce dispositif, gratuit pour les utilisateurs, vise à renforcer la sécurité des paiements en réduisant à la fois :

  • les fraudes au virement (notamment les fraudes au faux RIB),
  • les erreurs de saisie d’IBAN ou de nom du bénéficiaire.

Concrètement, avant l’exécution d’un virement, l’établissement du payeur doit interroger l’établissement du bénéficiaire pour vérifier la concordance entre l’IBAN et le nom du titulaire du compte. En cas de discordance, une alerte est affichée au payeur, qui conserve la liberté de poursuivre ou non l’opération.

Enjeux du dispositif

  • Protection des utilisateurs : limiter les virements mal orientés ou frauduleux.
  • Sécurité du système de paiement SEPA : accompagner le déploiement du virement instantané en Europe.
  • Confiance des entreprises et des particuliers : améliorer la transparence et la fiabilité des paiements.
  • Harmonisation européenne : instaurer une norme commune pour tous les PSP (banques, établissements de paiement et de monnaie électronique).

Base légale

  • Règlement (UE) 2021/1230 sur les virements instantanés en euros et la modification du règlement (UE) n° 260/2012 (SEPA), qui introduit l’obligation de VoP.
  • Règlement (UE) 2015/847 sur les informations accompagnant les transferts de fonds, qui impose la transmission exacte des informations sur le payeur et le bénéficiaire.
  • Code monétaire et financier :
    • Articles L.133-6 et L.133-7 relatifs à l’autorisation des opérations de paiement et à l’exactitude des informations,
    • Articles L.561-5 et suivants relatifs aux obligations de vigilance en matière de LCB-FT.
  • Doctrine de l’ACPR, qui dans plusieurs décisions a sanctionné l’insuffisance de dispositifs de vérification et de correspondance entre l’identité du client et son compte

Foire aux questions (FAQ)

1. Qu’est-ce que la VoP ?

La Vérification de l’Ordre de Paiement (VoP) est un service réglementaire instauré au niveau européen.
Elle permet de comparer automatiquement le nom du bénéficiaire d’un virement avec l’IBAN renseigné par le payeur, avant l’exécution du virement.
Objectif : renforcer la sécurité des paiements et réduire les fraudes (notamment fraude au faux RIB).

2. Qui est concerné ?

  • Les payeurs : particuliers ou entreprises qui initient un virement.
  • Les bénéficiaires : toute personne physique ou morale recevant des virements (vous, en tant que client CentralPay).
  • Les prestataires de services de paiement (PSP) : banques, établissements de paiement ou de monnaie électronique, qui doivent intégrer la VoP dans leurs systèmes.

3. Comment fonctionne la VoP concrètement ?

Lorsqu’un virement est initié :

  1. Le payeur saisit l’IBAN et le nom du bénéficiaire.
  2. Sa banque interroge le PSP du bénéficiaire (via un canal sécurisé) pour vérifier la concordance entre l’IBAN et le nom enregistré dans la base du bénéficiaire.
  3. La réponse est renvoyée au PSP du payeur et affichée au payeur.

4. Quels résultats peuvent apparaître ?

Trois cas sont possibles :

  • Correspondance exacte : l’IBAN et le nom concordent → le virement peut être initié sans alerte.
  • Correspondance partielle : l’IBAN correspond mais le nom est différent (fautes de frappe, abréviation, orthographe différente). Le payeur reçoit un avertissement et peut :
    • corriger le nom,
    • ou confirmer qu’il s’agit bien du bénéficiaire attendu.
  • Absence de correspondance : l’IBAN et le nom ne correspondent pas → le payeur reçoit une alerte forte. Il peut annuler ou décider de poursuivre en acceptant le risque.

Est-ce que la VoP bloque un virement ?

Non. La VoP ne bloque pas l’exécution d’un virement. Elle fournit une information supplémentaire au payeur qui reste libre de valider ou non l’opération.
Toutefois, certaines banques peuvent paramétrer des règles internes de blocage en cas de discordance totale.

Quels échanges ont lieu entre banques et PSP ?

  • Le PSP du bénéficiaire (ex. CentralPay) conserve dans sa base le nom exact du titulaire du compte.
  • Lors d’une requête VoP, il répond par un code standardisé indiquant : correspondance, correspondance partielle ou absence de correspondance.
  • Ces échanges sont sécurisés, tracés et limités aux seules données nécessaires, conformément au Règlement (UE) 2015/847 sur l’accompagnement des virements.
  • Aucune autre donnée personnelle (adresse, documents KYC, etc.) n’est transmise.

Quels sont les avantages de la VoP ?

  • Pour le payeur : réduction des risques de fraude au virement, détection des erreurs de saisie.
  • Pour le bénéficiaire : limitation des retards de paiement liés aux erreurs, sécurisation de l’image vis-à-vis de ses clients.
  • Pour le système financier : meilleure prévention des fraudes et conformité avec les standards européens.

Que dois-je faire en tant que bénéficiaire CentralPay ?

  • Communiquer à vos clients l’IBAN correct et le nom exact enregistré auprès de CentralPay (raison sociale complète, sans abréviation).
  • Vérifier que vos factures, contrats et supports incluent toujours les mêmes coordonnées bancaires.
  • En cas de changement de dénomination sociale ou d’utilisation d’un nom commercial, informer rapidement vos clients et CentralPay pour mettre à jour les données.

Que se passe-t-il en cas de non-concordance fréquente ?

Si vos clients rencontrent souvent des alertes VoP lors de virements, cela peut indiquer que vos coordonnées bancaires ne sont pas communiquées de façon homogène.

CentralPay peut vous accompagner pour réviser et harmoniser vos informations de paiement afin d’éviter les frictions.

Illustration du VoP par le CNMP

Documentation

Articles

  • Quick start guide >
  • Merchant, accounts and sales channels
  • Automations, integrations and exports
  • Payment Links
  • Card transaction
  • Bank Transfer Transaction
  • SEPA direct debit transaction
  • Recurring payments
  • 3DS 2.2 authentication
  • Merchant management
  • Payouts
  • CMS Plugin
  • Best practices

Quick start guide >

1. Establishing a relationship

To get started, explore our offerings and choose the best way to get in touch based on your project:

Check out our pricing plans
Present your project to our sales team
Choose the customer onboarding model that best suits your business
Learn about the steps to building a relationship

2. Creating your test merchant profile

CentralPay provides you with a test environment (RCT) to develop and validate your integration:

  • “Standard Merchant” test profile: To test only the Smart Collection payment solution, request a test merchant profile using our form
  • “Partner Merchant or Agent” test profile: To test payment collection (Smart Collection) and payment transfers (Easy Wallet), please contact our customer service team. We will create and configure your test merchant profile accordingly.

3. Choosing your integration method

Choose the integration method that best suits your needs:

  • Smart Integration: Use payment requests and the CentralPay payment page to process your transactions. Customer flows are preconfigured for rapid deployment
  • Custom Integration: Directly integrate API services for card transactions, SEPA credit transfers (SCT), and/or SEPA direct debits (SDD). This approach gives you full control over the customer experience, but requires more advanced development.

4. Setting up your merchant profile

You can set up your CentralPay merchant profile on your own or with assistance from our support team.

ℹ️ The settings configured in your test merchant profile (RCT) are not automatically replicated in production (PROD). Be sure to reconfigure them once your production profile is activated. 

Main settings:

API authentication access
Declaration of authorized domains (if using custom integration)
Payment accounts and outgoing bank accounts
Portal users
Retail locations
Webhooks
SEPA creditor identifier (ICS)

Secondary settings:

Merchant profile contact emails
Acceptance rules
Outgoing payments
Bank statement description
Automatic notifications
Smart form payment page
Payment request templates
Auto attempts. for failed card transactions
Auto attempts. for failed SEPA direct debit transactions

5. Simulate payments

Before going live, run customer payment simulations in your test profile (RCT) to verify the integration:

  • Card: Use our test cards to simulate different transaction statuses
  • SEPA Credit Transfer (SCT): Create one or more SCT transactions, then ask our support team to simulate their processing
  • SEPA Direct Debit (SDD): Use a test IBAN/BIC provided in our documentation

6. Deployment

Once your tests have been validated in the acceptance testing environment (RCT), prepare for the transition to production (PRD).

ℹ️ Reminder: No settings are automatically copied from the RCT to the PROD environment.
  • Retrieve the API credentials for the PROD environment
  • Verify the production API URL
  • Retrieve the merchantPublicKey to generate cardToken
  • Notify CentralPay of any production deployment or major change
  • Enter your website’s URL in your point-of-sale settings
  • Check access to the support page from the Merchant Portal

If necessary, you can make one or two live transactions for €1 to verify that the payment system is working properly in production.

Merchant, accounts and sales channels

Merchant Profile

The Merchant Profile represents a Merchant technically and operationally within the CentralPay platform.

It serves as the foundation for:
• Its accounts: payment or electronic money accounts;
• Its administration: API access, user profiles, available payment services;
• Its technical configuration: webhooks, notifications, points of sale, acceptance rules, bank accounts;
• Its regulatory file: KYC/KYB, AML-CFT, risk scoring, contracting, pricing schedule…

The Merchant Profile corresponds to the API object Merchant and is created automatically after validation of its registration (via the API object Merchant-Enrollment).

1. Profile Types by Contractual Model

Each Merchant type is associated with a specific contractual model.

Standard Type : STANDARD

The standard Merchant is a business or professional that collects payments for its own account. It has one or more payment accounts and can access CentralPay services via API or through a partner.

👉 Learn more about the Merchant model

Integration Partner Type : INTEGRATOR

The Integration Partner supports multiple standard Merchants in their technical integration with CentralPay. Each standard Merchant has its own point of sale and an individual contract. The Integrator uses the API access provided by each Merchant within the framework of a contractual relationship.

  • May have a payment account and a commission account for its own needs
  • A separate point of sale is created for each supported Merchant
  • May perform API calls and technical actions via access delegated by the Merchant (monitoring Technical Instructions, configuration, RUN), without access to balances or authority to initiate/modify/execute a payment operation in its own name
  • CentralPay invoices each Merchant directly

👉 Learn more about the Integrator Partner model

MOBSP Integration Partner Type : INTEGRATOR + MOBSP

The MOBSP Integration Partner is an Integrator with a regulatory mandate. It can initiate a relationship request on behalf of a standard Merchant and provide technical support via the onboarding API. Like any Integrator, it acts solely through the API access provided by the Merchant.

  • Same rights and operation as an Integrator
  • May initiate a complete enrollment request via API
  • May support the merchant during enrollment

👉 Learn more about the MOBSP Integrator Partner model

Technical Partner Type : TECHNIQUE

The Technical Partner develops a shared solution (e.g., marketplace, SaaS platform) and operates from one or more points of sale opened in its name, to which standard Merchants can be attached. It uses its own API access to transmit commercial data and monitor operations linked to these points of sale, without ever having execution authority over payment operations.

  • One or more points of sale may be used to consolidate merchant activities (e.g., marketplace, SaaS platform)
  • CentralPay API access specific to the Technical Partner
  • CentralPay invoices the Technical Partner
  • Cannot initiate enrollment on behalf of and for the account of merchants (unless MOBSP framework applies)

👉 Learn more about the Technical Partner model

MOBSP Technical Partner Type : TECHNIQUE + MOBSP

The MOBSP Technical Partner is authorized to initiate a relationship request on behalf of its users. It can transmit the necessary information via the onboarding API but does not intervene in the execution of payment operations.

  • Same rights and operation as a Technical Partner
  • May initiate a complete enrollment request via API
  • May support the merchant during enrollment

👉 Learn more about the MOBSP Technical Partner model

EMD Agent Type : DME

The EMD Agent (Electronic Money Distributor) transmits loading, transfer, or refund instructions in electronic money on behalf of Participants. It operates within the electronic money model (CUSTOM currencies) and may receive a commission on operations, without providing regulated payment services (e.g., SEPA transfer, direct debit, card).

👉 Learn more about the EMD Agent model

PSP Agent Type : AGENT

The PSP Agent is a Payment Service Provider (PSP) Agent registered with ACPR. It acts on behalf of and for the account of CentralPay within a strictly defined contractual scope. Depending on the model adopted (Simple Agent / Collecting Agent / Delegated Agent), it may support enrollment, perform certain level 1 KYC/KYB due diligence, and/or intervene in the collection, allocation, and provision of funds via mechanisms provided by CentralPay. CentralPay remains responsible for the payment services provided and regulatory controls.

👉 Learn more about the PSP Agent model

Participant Type : BASIC

The Participants are natural or legal persons who are clients of a CentralPay Intermediary Merchant (Agent or EMD). They have one or more payment accounts or electronic money accounts to receive funds issued by the Intermediary and can access the Merchant Portal to view their operations and manage their outgoing transfers.

They operate to sell products or services, for LMNP activity, or for non-commercial needs (crowdfunding, personal wallet, collective projects, etc.).

Participants open accounts with CentralPay. The relationship may be initiated and/or supported by the Intermediary Merchant, but regulated services remain provided by CentralPay. The framework for account usage is defined by the applicable CentralPay documents (and, where applicable, by the Intermediary’s Terms of Use for commercial conditions and the services it provides).

2. Contact Email Configuration

You can customize the contact email addresses associated with your merchant profile so that notifications, reminders, or contractual communications are properly addressed to the right contacts.

  • Contact email: primary contact for the merchant profile
  • Administrative email: responsible for legal or contractual matters
  • Technical email: responsible for integration or incidents
  • Financial email: responsible for billing or banking flows
ℹ️ By default, these addresses are initialized with the email of the merchant profile holder. They can be modified at any time from the Merchant Portal. 

Access to contact email configuration:

Recette Merchant Portal
Production Merchant Portal

Customer profiles

Customer profiles (Customer) unify and secure all your customer data for easier management. They interact with other CentralPay services and notably allow you to:

  • Centralize their payment history (across all sales channels and payment methods)
  • Digitize and securely store their payment methods (cards, SEPA mandates, virtual IBANs)
  • Easily track their recurring payments (subscriptions, split payments) or pending settlements (payment requests)

In certain cases, they can also be associated with an e-money account, allowing the customer to receive and use funds within the network of the e-money distributor partner.

A Customer must be identified by either their email address or their phone number.

It is also possible to declare other information concerning them, such as their last name, first name, language, personalized reference, default payment method, etc.

1. Usage

Creating a Customer is mandatory for performing:

  • Subscriptions or split payments by card
  • 1-click card payments
  • SEPA direct debit payments
  • SEPA transfer payments with a dedicated Virtual IBAN
  • Creating an anonymous e-money account

2. Interfaces

You can view all Customers on your account from your Merchant Portal Account Customers

Your Customers also have access to a customer portal allowing them to manage payments made to your company:

Recette Merchant Portal – Customers
Production Merchant Portal – Customers

3. Creating a Customer

There are two methods for creating a Customer:

  • Create a Customer via the dedicated API service, which then allows you to create a Card, manage a Virtual IBAN for this Customer, initiate a transaction, a payment request, etc.
  • Create a Customer via a payment request

CentralPay ensures Customer uniqueness: if you initiate a payment request with Customer creation while their email or phone number is already known in your account, CentralPay will not create a new Customer and will associate the transaction with the existing profile.

Retail locations

Points of sale (Point of Sales or POS) represent your various websites, stores, or sales teams. They allow you to segment the operations of your CentralPay accounts for the following purposes:

  • Technical: You can configure different settings per point of sale (customer notifications, internal notifications, sender name for confirmation emails, logo displayed on the payment page, etc.)
  • Administrative: You can restrict viewing or editing rights for your user profiles to specific points of sale
  • Accounting: You can filter operations by point of sale in your Merchant Portal or in your data exports

When your CentralPay Merchant profile is created, a first point of sale is automatically created. You can then access your Merchant Portal to configure it or create new ones:

Recette Merchant Portal – Points of Sale
Production Merchant Portal – Points of Sale

1. Settings

Points of sale include a number of mandatory settings:

  • General Settings
    • Name: Point of sale name (visible to your customers)
    • Site URL: If this is an e-commerce site, enter its URL. Otherwise, enter the URL of your corporate website.
    • Point of sale country

  • Configuration
    • Technical type: Select « Remote sale »
    • API users: Select the API users with access rights to this point of sale
    • Contracts: Select the card VAD contract that has been configured for your merchant profile (generally, you will only have one contract available)
    • Default contract: Select the card VAD contract that will be used by default (generally, you will only have one contract available)
    • Priority Viban: If you want the Virtual IBANs displayed in payment requests to be those of the Customers, then select « Customer. » If you prefer to display Virtual IBANs dedicated to each payment request, then select « SCT. » If you need additional information, consult our section on Virtual IBANs

Other settings are not mandatory but are important for your sales process:

  • General Settings
    • Logo: Upload your company logo or one dedicated to your point of sale. It will appear on the payment page generated by payment requests
    • Merchant point of sale ID: Enter a custom reference allowing you to identify the point of sale more easily in your information systems

  • Confirmation Emails
    • Check « Enable payment confirmation email »: By checking this box, you activate the sending of an email to your customers when they make a card payment. This is a standardized, non-modifiable email containing a payment summary (legal name of your merchant profile, name of your point of sale, payment date, CentralPay transaction identifier, merchant transaction reference, merchant transaction description, payment authorization code, card brand, first 6 and last 4 digits of the card, transaction amount, transaction status). The language and footer of the email can be configured from the Merchant Portal Configuration Payment confirmation email
    • Sender email: If you have checked the « Enable payment confirmation email » box, you can customize the sender address by using one of your email addresses (for example: no-reply@mydomain.com). Please ensure you ask us to provide you with our SPF and DKIM keys so that you can authorize CentralPay to send emails from your domain
    • Sender name: If you have checked the « Enable payment confirmation email » box, you can customize the sender name (for example: MyCompany)
    • Check « Receive a copy of the payment confirmation »: By checking this box, you activate the sending of a copy of the email sent to your customers when they make a card payment. This can allow you to be easily notified by email when a customer makes a payment
    • Recipient email: If you have checked the « Receive a copy of the payment confirmation » box, you must enter the email address of the recipient of this copy

Finally, other secondary settings are available:

  • OTP
    • OTP email sender email: Email displayed as the sender of One Time Password emails (login to the Merchant Portal Administration area, etc.)
    • OTP email sender name: Name displayed as the sender of One Time Password emails (login to the Merchant Portal Administration area, etc.)
    • OTP SMS sender phone number or name: Name or phone number displayed as the sender of One Time Password SMS messages (SEPA mandate validation, etc.)

  • Communication settings: These settings are applied to emails or SMS messages transmitting the link to the payment form of a payment request (paymentRequest). They apply only when no scenario has been configured on the payment request.
    • SMS sender: Correspondent name displayed on the SMS
    • Email sender: Correspondent email displayed on the email
    • Email sender name: Correspondent name displayed on the email
    • Email reply address: Email used for replies to sent emails (coming soon)
    • Email footer: Email footer (coming soon)

Payment accounts

Payment accounts are used to carry out payment transactions (collecting payments in ISO currencies, paying out funds to a bank account, etc.). They allow you to hold funds in an ISO currency (EUR, USD, CHF, GBP, etc.) and have their own IBAN/BIC.

With few exceptions, a Payment Account is linked to a bank account with the same account holder, enabling CentralPay to make automatic payouts via SEPA transfer.

If you have several bank accounts to which your funds must be paid out, you may ask your CentralPay contact to create the same number of Payment Accounts in your CentralPay Merchant profile. This way, each Payment Account will be linked to a different bank account and will send SEPA payouts accordingly.

It is also possible to create several payment accounts for fund segmentation purposes (with an account dedicated to commission or fee transactions, for example).

You can view the details of your payment accounts via the following access points:

Recette Merchant Portal – Payment Accounts
Production Merchant Portal – Payment Accounts

1. Usage

Payment accounts are systematically used for our platform’s payment transactions, except for electronic money transactions.

2. Creating payment accounts

If you are a CentralPay merchant, you may send an email request to the CentralPay teams to create several payment accounts in your name. This is to segment your transactions or to open an account in a different currency.

If you are a CentralPay MOBSP Partner or AGENT representative, you can create accounts for your merchants using the onboarding request service.

EM Accounts

ℹ️ Reserved exclusively for EMD Intermediaries and their sub-merchants.

EM (Electronic Money) accounts are used to store and exchange funds in a CUSTOM currency (a currency dedicated to an EMD Intermediary). An EMD Intermediary may request the creation of EM accounts for the sub-merchants in its network and then carry out EM fund transfers between these accounts.

The holder of an EM account may only receive payments and use their electronic money through the EMD Intermediary. However, they may request a refund of their electronic money at any time and will receive their funds in an ISO currency: either to their bank account via SEPA transfer, or to their bank card, depending on their account settings.

You can view the details of your EM accounts via the following access points:

Recette Merchant Portal – Electronic Money Accounts
Production Merchant Portal – Electronic Money Accounts

1. Usage

EM accounts are mainly used to enable individuals to easily receive and exchange funds in the following contexts:

  • C2C marketplaces for products or services
  • Storage and use of gift values within a network of independent merchants

2. Specifics

The CMF (Monetary and Financial Code) sets out specific conditions for electronic money. As such, there are two types of EM accounts at CentralPay:

  • Anonymous EM account: This account may be opened without verifying the holder’s identity, provided it is issued to an individual and is limited to a balance or collections of €150 over 30 days. This type of account is particularly useful for occasional use by its holder, or simply to simplify onboarding with the EMD Intermediary.
  • Verified EM account: An anonymous account may subsequently be verified by CentralPay’s compliance teams (KYC procedure) to increase the limits imposed on it; it then becomes « verified ».

3. Creating EM accounts

If you are a CentralPay EMD Intermediary, you can request the creation of EM accounts for your sub-merchants.

Automations, integrations and exports

Email/SMS notifications

Notifications can be sent based on events related to certain API objects:

  • Payment request (paymentRequest)
  • Chargeback (dispute)
  • Installment payment (installment)
  • Card Transaction (transaction)
  • Payout (payout)
  • Card Refund (refund)
  • Subscription (subscription)
  • Card credit (credit)
  • SDD Transaction (sddTransaction)
  • Reversed SDD Transaction (sddTransactionReversal)
  • Mandate (mandate)

1. Notification scenario types

Automatically notify your customers and alert your colleagues when certain events occur on your CentralPay Merchant profile: receipt of a transfer, customer dispute, payment failure, etc.

You control the content of each notification using custom templates and define a delivery method by email, by SMS, or by JSON. This automates the reconciliation of your collections, customer notifications, and even updates to your information system.

2. Configuring notification templates

2.1. Template configuration

To start configuring your notifications, you must create your communication templates (email, SMS, or hook) by filling in the requested elements, such as the email subject, the sender name and email address, the message body, etc.

You can insert dynamic elements (tags) into the message body by typing the « # » character, which will display the list of tags available for the selected notification scenario type.

Please note: if you use email notifications, please ask us to provide our SPF and DKIM keys so that you can authorize CentralPay to send emails from your domain.

For SMS, please calculate the number of characters: you will be billed for one SMS per 160 characters (including spaces).

Access to email template settings:

Recette Merchant Portal
Production Merchant Portal

Access to SMS template settings:

Recette Merchant Portal
Production Merchant Portal

Access to hook template settings:

Recette Merchant Portal
Production Merchant Portal

2.2. Configuring the header and footer for email templates

When creating an email template, a « header » and a « footer » must be created. For example, you can add your logo in the header and your contact details or legal notices in the footer.

Access to email header settings:

Recette Merchant Portal
Production Merchant Portal

Access to email footer settings:

Recette Merchant Portal
Production Merchant Portal

3. Configuring notification scenarios

To specify to the platform the sending conditions and recipients for your notifications, you must create a scenario that includes one or more sending rules.

After choosing the desired scenario type, you can create a sending rule. This rule is split into two parts: « WHEN » defines the event that triggers the notification, while « THEN » lets you choose the actions that will be performed when the event occurs.

Access to notification scenario settings:

Recette Merchant Portal
Production Merchant Portal

3.1. In the « WHEN » section:

  • Type « # » to view all attributes available for your scenario
  • Use logical operators to build your rule:
    • For strings (must be enclosed in quotation marks «  »):
      • = (equals)
      • != (not equal to)
      • in (in the following)
      • not in (not in the following)
    • For numbers (note: amounts must be entered in cents):
      • = (equals)
      • != (not equal to)
      • < (less than)
      • <= (less than or equal to)
      • in (in the following)
      • not in (not in the following)
    • For booleans (true/false statements):
      • = (equals)
      • != (not equal to)
  • You can use conditions to complete your rule:
    • AND (to add another activation condition)
    • OR (to add another activation possibility)

It is possible to set priorities by placing parentheses around conditions. If you use AND and OR in the same rule, you must set priorities. If you use AND multiple times or OR multiple times, you must also prioritize each part.

Rule examples:

#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')

Before you can save a rule, you must first test it using the « test » button. This verifies that your rule is grammatically correct. Please note: this does not guarantee that your rule matches what you intended to do.

3.2. In the « THEN » section:

« THEN » lets you choose the recipient and the template used for the notification. You only have access to templates that match the required template type (SMS, Email, Hook) and that match the selected scenario type (card transaction, payment request, refund, etc.).

Anti-fraud services

1. Organization of anti-fraud services

Anti-fraud services are segmented into 4 tools:

  • Whitelist
    The purpose of the « whitelist » is to make the application of a transaction acceptance rule selective. It becomes inoperative for identified customers, VIPs, or trusted customers who are included in a « whitelist ». « Whitelists » apply to customer-specific data, such as their bank card number or IP address. This feature makes it possible to be less restrictive for certain user populations.
  • Blacklist
    The « blacklist » service makes it possible to refuse payments. As with « whitelists », « blacklists » apply to data specific to the cardholder (card, IP, phone, email).
  • Transaction acceptance rules
    This tool makes it possible to build the specific rules that define the conditions for accepting a payment.
  • Anti-fraud scoring
    The scoring service detects potentially fraudulent transactions based on cross-analysis of multiple payment-related data points.

The transaction processing phases are always executed in this order.

If the input data meets all the conditions of the defined « whitelist », the « blacklist » service will not be executed and the transaction will be processed normally.

If the input data meets one of the conditions of the defined « blacklist » and is not included in the « whitelist » service, the transaction will be refused and the « acceptance rule » service will not be executed. Each service is executed top-down with respect to the CentralPay actor hierarchy, which means that a platform can apply its anti-fraud service settings to its merchants, but the reverse is not possible.

2. Fraud scoring tool

CentralPay relies on a fraud detection service based on machine learning algorithms.

This predictive engine is built from a large sample of data provided by CentralPay in JSON format and sourced from transaction, refund, dispute data.

This service relies on behavioral classification linked to the merchant’s business sector.

The engine returns an action and a score. The action instructs the payment service to accept or refuse the transaction.

The score classifies the risk level by providing a percentage probability of fraud. This score is then interpreted in the rules engine.

The score enables the merchant and the algorithm to interact together to improve.

Scores are classified as follows:

  • From 0 to 19 = low risk
    Transaction accepted
    No action
  • From 20 to 59 = medium risk
    Transaction accepted
    Action: Send an event with score details for manual review and learning
  • +60 = high risk
    Transaction refused
    Action: Send an event with score details for manual review and learning

This fraud exposure analysis service analyzes the fraud risk exposure context of each transaction. This service returns a score that makes it possible to automatically process the expected response in the rules engine.

The score is based on cross-analysis of the following data:

  • IP risk index
  • Proxy detection
  • TOR network detection
  • IP address verification
  • Confidence factors
  • Email checks
  • Address & phone checks
  • High-risk shipping address
  • IP address geolocation
  • Identification of the devices used
  • Email address
  • Browser type
  • Country mismatches
  • Shipping address distance
  • Billing address distance
  • Email domain
  • Time
  • Order amount
  • Country
  • Phone number
  • IP owner
  • Email owner
  • Card address verification

3. Whitelists and blacklists

3.1. Whitelist

The purpose of the « whitelist » is to make the application of an acceptance rule selective. This rule becomes inoperative for identified customers, VIPs, or trusted customers who are included in a « whitelist ».

The anti-fraud service then moves on to the next step.

« Whitelists » apply to customer-specific data, such as their bank card number or IP address. This feature makes it possible to be less restrictive for a user population.

3.2. Blacklist

The « blacklist » step makes it possible to refuse payments.

As with « whitelists », « blacklists » apply to data specific to the cardholder:

  • Country
  • Geographic regions
  • Card numbers
  • Phone numbers
  • Email
  • IP addresses
  • IBAN

4. Transaction acceptance rules

The acceptance rules engine is a powerful, modular application component that makes it possible to adapt the processing behavior to be applied to each transaction, such as:

  • Allow
  • Refuse
  • Alert

This service therefore makes it possible to define actions to be performed on each transaction from a wide list of available attributes: fraud score, cardholder location, total sales amount over 7 or 30 days, VIP whitelist customer, specific parameter provided by the merchant…

An acceptance rule is a logical condition. It makes it possible to authorize, restrict, and/or prohibit transactions.
A rule consists of 4 elements: the action, the attributes, the operators, the values.

The syntax of a rule is as follows: « Action » « if » « Attribute » « Comparison operator » « Comparison value »

Example:

REFUSE if card_country != 'FRA'

The rule shown in this example makes it possible to automatically refuse payments when the card country is not France.
The grammar syntax chosen by the platform for its acceptance engine is very similar to SQL syntax (used to interact with databases).

4.1. Available actions

  • ALLOW
    Allows the payment
  • REFUSE
    Refuses the payment
  • ALERT
    Sends a « webhook » notification for the associated transaction

4.2. Available attributes

By typing « # », the available attributes are displayed.

In a rule, an attribute is always followed by a comparison operator.

List of attributes:

AttributeDescriptionValue typeExample
#always None
#transactions[_état][_entité] [_temporalité]Transaction count quota [state] [entity] [time period]Integers
#transactions_amount[_état] [_entité][_temporalité]Transaction amount quota [state] [entity] [time period]Integers
#amountTransaction amount in centimesInteger#amount > 100
#card_countryCard issuing countryString
ISO 3166-1 alpha-3
#card_country IN (‘FRA’, ‘USA’, ‘BEL’, ‘DEU’)
#card_establishmentCard issuer
#card_productCard type‘gold’, ‘platinium’
#card_product_typeCard type (personal or corporate)CONSUMER CORPORATE#card_product_type = ‘CONSUMER’
#card_regionCard issuing region‘ASIA_PACIFIC »EUROPE »LATIN_AMERICA »MIDDLE_EAST_AND_AFRICA »USA_AND_CANADA »ANTARCTIQUE »UNKNOWN’#card_region NOT IN (‘ASIA_PACIFIC’, ‘LATIN_AMERICA’)
#commercial_brandCard brandVISA MASTERCARD AMEX OTHER#commercial_brand != ‘VISA’
#currencyTransaction currencyString
ISO 4217
#currency = ‘EUR’
#ip_countryIP address countryString
ISO 3166-1 alpha-3
#ip_country IN (‘FRA’, ‘USA’, ‘BEL’, ‘DEU’)
#ip_regionIP address region‘ASIA_PACIFIC »EUROPE »LATIN_AMERICA »MIDDLE_EAST_AND_AFRICA »USA_AND_CANADA »ANTARCTIQUE »UNKNOWN’#card_region NOT IN (‘ASIA_PACIFIC’, ‘LATIN_AMERICA’)
#is_anonymous_ipIs an anonymous IPTRUE | FALSE#is_anonymous_ip = TRUE
#is_three_d_secureIs a 3D-Secure transactionTRUE | FALSE#is_three_d_secure = TRUE
#payout_amountPayout amountInteger#payout_amount > 100
#payout_currencyPayout currencyString
ISO 4217
#payout_currency = ‘EUR’
#risk_scoreAnti-fraud scoreDouble#risk_score > 2,34
#custom_acceptance_data[‘key’] = ‘value’custom fieldkey : Regex [a-zA-Z0-9_-]value: Regex [a-zA-Z0-9_-]#custom_acceptance_data[‘product_category’] = ‘high’

In the case of custom_acceptance_data[‘key’] = ‘value’, for it to be taken into account, the exact same field must be included in the request for the targeted object.

Logical operators and parentheses:

Logical operators AND and OR

The syntax used to define rules makes it possible to create multiple conditions within the same rule. The conditions will remain defined in the same way, with the only difference being that a keyword will be placed between the conditions.

The keywords are and and or. They define how the rules engine will interpret the sequence of these rules. « AND » corresponds to inclusion and « OR » to exclusion.

Example:

ALLOW if #amount < 1000 and #card_country = 'FRA'

The previous example allows payments whose amount is less than 10 AND whose card is French. If one or the other of the defined conditions is not met, the action will not be executed.

Example:

ALLOW if #amount < 1000 or #card_country = 'FRA'

The previous example allows payments whose amount is less than 10 OR whose card is French. If one or the other of the defined conditions is met, the action will be executed.

Parentheses

Using parentheses when defining a multi-condition rule makes it possible to define condition blocks and the priorities between these blocks. The principle is the same as for priorities in mathematical operators.

Example:

ALLOW if #amount < 1000 and (#card_country = 'FRA' or #currency = 'EUR')

In the previous example, the rules engine will first interpret the block (#card_country = ‘FRA’ or #currency = ‘EUR’). That is, the payment will be allowed if (the card is French or the currency is the euro), AND the amount is less than 10.

Rule execution order

Rules are executed in an order to be defined. This order is important because as soon as a transaction meets the criteria of a rule, the following rules will not be processed.

Rules are executed in the display order of the list in the interface.
A position indicator is displayed in each list. To change a rule’s position, simply drag it to the desired position.

Rule examples:

ALLOW if #amount < 1000 and #transactions_amount_daily < 10000

This example allows transactions whose amount is less than 10 if the sum of the day’s transaction amounts is less than 100.

REFUSE if #risk_score > 3 or (#ip_regions = 'ASIA_PACIFIC' and #card_region = 'ASIA_ PACIFIC')

This rule blocks payments if the risk score exceeds 3 or if the IP used and the card issuing region correspond to the ‘ASIA_PACIFIC’ zone.

THREE_D_SECURE if #card_country NOT IN ('FRA', 'USA', 'GBR') 

This rule requires a 3D Secure transaction if the card country is not France, the United States, or Great Britain.

ALLOW (#amount < 10000 and #transactions_amount_daily < 100000) or (#currency IN ('EUR', 'USD') and #transactions_amount_monthly < 1000000)

This previous example ALLOWS payments IF the amount is LESS THAN 100 AND the sum of the day’s transaction amounts is LESS THAN 1000 OR the currency is € or $ AND the sum of the month’s transaction amounts is LESS THAN 10,000.

The logical operators « AND » and « OR » are only syntactically correct in lowercase.

4.3. Available comparison operators

  • = (equals)
  • != (not equal to)
  • < (less than)
  • <= (less than or equal to)
  • in (in the following)
  • not in (not in the following)

The comparison operators = , != , > , < , >= and <= must be followed by a value.

The IN and NOT IN operators are followed by a list of comparison values.
A list of values is enclosed in parentheses, and the values inside the list are separated by commas.

Example:

REFUSE if #currency NOT IN ('EUR', 'USD', 'GBP', 'CHF')

The example shown above makes it possible to refuse all payments whose currency is not the Euro, the US Dollar, the Pound Sterling, or the Swiss Franc.

This syntax avoids writing multiple rules or multiple conditions within the same rule.

4.4. Available values:

Depending on the value type, the syntax used to define the value will not be the same:

  • Integers (numeric value without decimals): Standard syntax (e.g., 100)
  • Doubles (numeric value with decimals): The value is defined with a dot as the decimal separator (e.g., 12.32)
  • String: The value is defined between single quotes (e.g., ‘FRA’)
  • Booleans: The value is true or false (e.g., false)
ℹ️ "Amount" values must be entered in centimes (e.g., for €10, enter 1000).

4.5. Logical operators:

The available operators are AND and OR. They define how the rules engine will interpret the sequence of these rules. « AND » enables inclusion, while « OR » enables exclusion.

Example:

REFUSE if #amount < 1000 and #card_country != 'FRA'

The example shown above makes it possible to refuse payments whose amount is less than €10 AND whose card is not French. If one or the other of the defined conditions is not met, the action will not be executed.

Outgoing payment

Outgoing payouts are transfers issued from your CentralPay payment account to the associated bank account.

They can be carried out manually from the Merchant Portal or via the Payment API, or automated according to the frequency defined in your payout settings.

From the Merchant Portal, only account-holder user profiles (known as « Legal ») can configure and execute payouts.

1. Payout methods

1.1. Automatic payout

The account holder can set the frequency of the automatic payout using three options:

  • Daily
  • Weekly: choose the day of the week (e.g., every Tuesday)
  • Monthly: choose the day of the month (e.g., the 5th of the month)

The automatic payout service executes each transfer at 01:00 on the selected day, based on the fonds disponibles (AVAILABLE) in the payment account.

Example of a weekly payout scheduled on Tuesday:
CentralPay will create the transfer on Tuesday morning using the funds available in the payment account up to 01:00.
ℹ️ In the case of a daily payout, all available funds are transferred each day to your bank account. 
Your CentralPay account balance is therefore zero at the start of the day.
If you need to issue customer refunds, they can be processed from early afternoon (around 2:00 PM), once the day’s transaction funds have been credited by the issuing banks.
An upcoming enhancement will allow automatic payouts to be deferred by one or more days in order to keep funds available while maintaining consistent accounting visibility. Contact Support if you are affected.

Matching for automatic payouts

Each automatic payout is linked to the detailed list of transactions included in the transfer. This feature enables automatic matching between collected transactions and the corresponding payout.

The transaction details for a payout can be accessed from Merchant Portal Administration My account Payouts by selecting the desired payout.

The first automatic payout does not yet include details, as it initializes the matching system. Subsequent payouts include the full list of the relevant transactions.

1.2. Manual payout (via Merchant Portal or API)

A payout can be executed manually from the Merchant Portal or via the Payment API. The payout amount can be set freely, up to the limit of the funds available in the account.

Payout orders placed before 05:00 are executed immediately. Those created after 05:00 are executed the next day at 05:00.

2. Identifying transactions linked to each payout

Payout matching is a Merchant Portal feature that links each automatic payout to the detailed list of transactions included in that payout.

Scope: matching applies exclusively to automatic payouts. Manual payouts do not have this automatic association.

Detail contents: list of transactions corresponding to the payout, including the amounts, value dates, and references required for accounting reconciliation.

2.1. Access the details of an automatic payout

From Merchant Portal Administration My account Payouts :

  • Select the relevant payout from the list.
  • Open the payout details to display the associated transactions.
  • Use the Export button to download the data if needed.

Or, from Merchant Portal Account My transactions :

  • Filter by Type = Outgoing payout or by Value date.
  • In the payout’s Actions column, click the arrow, then View payout transactions.
ℹ️ The first automatic payout does not include details: it is used to initialize matching.
Subsequent automatic payouts include the full list of associated transactions.

2. Funds availability

Payouts include only the fonds disponibles (AVAILABLE) in the payment account. Funds from a card transaction become available at D+2.

Example:
A card transaction made on Monday appears as "Pending" on Monday, becomes "Available" on Tuesday evening, the automatic payout is executed on Wednesday at 01:00, and the SEPA transfer is credited to the bank account on Thursday.
Funds availability diagram
ℹ️ The EscrowDate setting may affect the date on which a transaction’s funds become available (specific to partners/agents).

3. Creating a manual payout

3.1. From the Merchant Portal

Only account-holder users (« Legal ») or users with an administrator role (« Natural Admin ») can create a manual payout from the Merchant Portal.

From Merchant Portal Administration My account Payouts :

  • Click External transfers.
  • Select the sending account.
  • Enter the payout amount and the recipient IBAN.
  • Click Confirm transfer.

Once validated, the payout is executed according to the timeframes mentioned above.

Recette Merchant Portal – Outgoing payouts
Production Merchant Portal – Outgoing payouts

3.2. From the API

Creating a manual payout can also be done via the Payment API. For technical details, see the developer documentation: Developers Outgoing payout .

4. Foreign-currency payouts via the SWIFT network

International transfers are executed via the SWIFT network, unlike SEPA transfers used within the European area. This service allows payouts in euros or other currencies to accounts located outside the SEPA area.

If the beneficiary account is not reachable via SEPA, or if it is a foreign-currency account, payouts can be made via SWIFT. This service is enabled on request through your CentralPay contact.

ℹ️ SWIFT transfers incur higher fees than SEPA transfers. It is possible to configure a threshold of available funds before automatic payouts are triggered. 

5. Returns, statuses, and webhooks

To track the payout lifecycle and automate processing:

  • View the payout status documentation ➝
  • View the payout webhook documentation ➝

File Import

CentralPay File Import Service

The File Import Service allows you to manage CentralPay operations in bulk by uploading simple CSV files instead of calling the API line by line.

To date, two types of files are supported:

  • Customer files: to create your customer profiles (customers) in CentralPay, optionally with a bank account (BankAccount) and/or a SEPA direct debit mandate (SDD).
  • Operation files: to initiate SEPA direct debits (SDD) on your customer profiles and/or outgoing SEPA credit transfers (SCT) to your customer profiles’ bank accounts.

For each file uploaded, CentralPay sends you report files indicating, line by line, what was accepted, refused, or rejected.

1. Who is this service for?

This service is designed for Merchants who process large volumes of operations and prefer file exchange over real-time API integration: recurring direct debit collections, grouped outgoing payouts, creation or migration of a customer/SEPA mandate repository, etc.

The exchange occurs asynchronously: you upload your files, CentralPay processes them, then makes the reports available to you.

2. Prerequisites

2.1 Common Prerequisites

  • An active CentralPay merchant account with access to the Merchant Portal.
  • Your CentralPay merchant ID (UUID). The first 8 characters of this UUID are used to name your files (see section 5.1 Rules common to all files).
  • The setup of a secure exchange channel (SFTP, see section 4. SFTP Setup) unless another channel has been agreed upon with your CentralPay contact.
  • A testing phase with the CentralPay integration team before going live.

2.2 Prerequisites for outgoing SEPA credit transfer operations (CREDIT / SCT)

  • The outgoing SEPA credit transfer service must be activated on your merchant profile.

2.3 Prerequisites for SEPA direct debit operations (DEBIT / SDD)

Direct debits require additional prerequisites, to be validated before any first submission:

  • Your ICS (SEPA Creditor Identifier) must be declared in your CentralPay merchant profile (procedure carried out with your CentralPay contact).
  • The SEPA direct debit service must be activated on your merchant profile (procedure carried out with your CentralPay contact).
  • Validation of Mandate Management Mode Compliance. In this integration process, CentralPay does not collect the mandate signature: you transmit, in the Customer file, the mandate reference (MANDATE_RUM) and its signature date (MANDATE_SIGN_DATE). Consequently:
    • Your CentralPay contact must validate the principle upstream of mandate management via this method, whether it concerns the migration of existing mandates or newly collected mandates by you.
    • You remain responsible for the collection, legal validity, and retention of signed mandates, as well as for providing prior information to your customers (pre-notification, UMR, ICS).
Without these prerequisites, files containing direct debits cannot be processed, whether in the Sandbox or LIVE environment.

3. How does the processing cycle work?

  1. Upload. You upload your CSV files (Customer and/or Operation) to the SFTP, in the upload folder.
  2. Technical Control (ACK). CentralPay checks each line (format, mandatory fields, consistency) and sends you an .ACK file: each line is marked ACCEPTED or REFUSED, with the error reason if applicable.
  3. Bank processing. Technically valid lines are transmitted to the SEPA banking circuits.
  4. Settlement Report (SET). For operations, CentralPay produces .SET files indicating the settlement progress (ACCEPTED / PENDING / REFUSED) once bank feedback is available.
  5. Post-settlement Rejections (RET). In case of a SEPA rejection occurring after settlement (e.g., a customer dispute), CentralPay produces an .RET file detailing the reason and the returned amount.
Customer files do not generate a bank report (.SET / .RET): only an .ACK is returned.

4. SFTP Setup

SFTP is the recommended exchange channel. It ensures secure upload and retrieval, and allows CentralPay to automatically retrieve and process your files.

4.1 Exchange Model

The SFTP is hosted by the merchant.

CentralPay connects to your SFTP, retrieves files from an outgoing folder, and deposits reports into an incoming folder.

4.2 Folder Convention

The exchange relies on two directories:

DirectoryDirectionContent
Upload folder (named /OUT)Merchant → CentralPayYour Customer and Operation files to be processed
Return folder (named /IN)CentralPay → MerchantThe .ACK, .SET, reports .RET

4.3 Setup Steps

  1. Request activation from your CentralPay contact.
  2. Exchange access credentials: authentication via SSH key.
    • Two spaces should be created: one SFTP dedicated to testing and one dedicated to production.
    • The SFTP information (host + login) must be provided to us by email.
    • For us to connect to your SFTP, a CentralPay public key (per environment) will be communicated to you.
    • Furthermore, it is recommended to whitelist CentralPay’s IP addresses (these will be communicated to you during your integration).
  3. Use the directory structure defined previously (upload /OUT and return /IN folders).
  4. Test in the testing environment with an example file, validate the correct reception of .ACK, then switch to production.

5. Prepare your files

5.1 Rules common to all files

  • Format: CSV. The header row is mandatory in all files, both input and output.
  • Naming:
    • Customer file: <8 premiers caractères de votre UUID marchand en minucules>_CUST_<référence libre>.csv
    • Operations file: <8 premiers caractères de votre UUID marchand en minucules>_OPER_<référence libre>.csv
    • The free reference is at your discretion (often a timestamp). The full name must not exceed 100 characters.
    • Examples: c494f877_CUST_20241025110500.csv · c494f877_OPER_20241025110500.csv
  • Amounts: expressed in minor unit (euro cents) and always positive. The direction (debit/credit) is indicated by the OPERATION_TYPE column, not by the sign of the amount.
  • Column Legend in the tables below:
    • Mandatory: the line is rejected if the value is missing.
    • Optional: can be left blank.
    • Conditional: required only in the described case.

5.2 File Customer

This file creates your customer profiles. Depending on your needs, it can create in a single line: the customer profile alone, the customer + a bank account, or the customer + a bank account + an SDD mandate.

ColumnFormatStatusDescription
MERCHANT_IDUUIDMandatoryYour CentralPay merchant ID
MERCHANT_CUSTOMER_IDString(100)OptionalYour internal customer reference (must be unique). Highly recommended for reconciling your operations.
DESCRIPTIONString(256)OptionalFree field for your use
TYPEINDIVIDUAL / LEGAL_ENTITYMandatoryIndividual or legal entity
SOCIAL_REASONString(35)ConditionalRequired if TYPE = LEGAL_ENTITY (company name)
FIRST_NAMEString(35)MandatoryFirst name (of the legal representative if LEGAL_ENTITY)
LAST_NAMEString(35)MandatoryLast name (of the legal representative if LEGAL_ENTITY)
EMAILString(255)Optional
PHONEString(25)OptionalInternational format +<indicatif><numéro>
ADDRESS_LINE_1String(255)Mandatory
ADDRESS_LINE_2/3/4String(255)OptionalAddress supplements
POSTAL_CODEString(15)MandatoryAllowed characters: letters, numbers, space, hyphen
CITYString(35)Mandatory
COUNTRYISO 3166 alpha-3 codeMandatoryEx. FRA
IBANString(34)ConditionalRequired to create a bank account (thus for any future outgoing transfer or direct debit). Validated according to ISO 13616
BICString(11)ConditionalRequired with IBAN
MANDATE_RUMString(35)ConditionalRequired to create an SDD mandate. Unique Mandate Reference (UMR) of the mandate already signed on the merchant side
MANDATE_SIGN_DATEDate YYYY-MM-DDConditionalRequired to create an SDD mandate. Mandate signature date
"With or Without" Logic

➜ Customer only: fill in identity and address, leave IBAN/BIC and mandate columns blank.

➜ Customer + bank account (necessary for a future outgoing transfer): add IBAN + BIC.

➜ Customer + SDD mandate (necessary for a future SEPA direct debit): add IBAN + BIC + MANDATE_RUM + MANDATE_SIGN_DATE.

Example file Customer

Download the « Customer » .csv example file

Three customers: one individual (INDIVIDUAL, without company name) and two legal entities (LEGAL_ENTITY), each with their own bank account and SDD mandate.

Key takeaways from this example:

  • The phone number is in international format (+33..., without the initial 0).
  • For customer INDIVIDUAL, the SOCIAL_REASON field is left empty (two consecutive ;); it is only filled in for LEGAL_ENTITY.
  • Each customer has their own IBAN/BIC and their own MANDATE_RUM. The IBAN/BICs above are test credentials provided for the testing environment: replace them with your customers’ real credentials in production.

In return, the .ACK file will send you a CUSTOMER_ID (UUID) for each accepted line. Keep these identifiers: you will reuse them in your Operation files.

Columns added by CentralPay in the .ACK return file:

ColumnDescription
STATUSACCEPTED or REFUSED (no PENDING for customer files)
ERROR_CODEValued if REFUSED (e.g., INVALID_PARAMETERS)
ERROR_MESSAGETechnical detail (in English)
CUSTOMER_IDUUID of the created customer, valued if ACCEPTED (to be kept for your future operations)

5.3 File Operation

This file triggers operations on customer profiles already existing in CentralPay.

ColumnFormatStatusDescription
MERCHANT_IDUUIDMandatoryYour CentralPay merchant ID
POINT_OF_SALE_IDUUIDOptionalConcerned Point of Sale (POS). If empty, the default point of sale is used.
MERCHANT_TRANSACTION_IDString(35)OptionalYour operation reference (unique to you)
DESCRIPTIONString(140)OptionalDescription for your use
END_TO_END_IDString(35)OptionalSEPA end-to-end reference visible to the end customer.
Otherwise, it uses MERCHANT_TRANSACTION_ID
REMITTANCE_INFOString(140)OptionalSEPA label (unstructured remittance information) visible to the end customer. Otherwise, it uses DESCRIPTION
CUSTOMER_IDUUIDConditionalCentralPay customer identifier. CUSTOMER_ID or MERCHANT_CUSTOMER_ID must be provided
MERCHANT_CUSTOMER_IDString(100)ConditionalYour internal customer reference (alternative to the CUSTOMER_ID generated by CentralPay)
MANDATE_RUMString(35)OptionalTo target a specific mandate if the customer has several (if OPERATION_TYPE = DEBIT)
AMOUNTIntegerMandatoryAmount in centimes of euro; positive values only
CURRENCYISO CodeMandatoryEUR (mandatory euro currency for SEPA transfers and direct debits)
OPERATION_TYPEDEBIT / CREDITMandatoryDEBIT = SEPA direct debit (SDD)
CREDIT = outgoing SEPA credit transfer (payout)
EXPECTED_SETTLEMENT_DATEDate YYYY-MM-DDOptionalDesired settlement date. Default: J+1 business day
Choose the correct  OPERATION_TYPE

➜ DEBIT (direct debit): If you wish to debit your customer's bank account via a SEPA direct debit. Requires the customer profile to have a valid SDD mandate.

➜ CREDIT (transfer): If you wish to credit your customer's bank account via an outgoing SEPA credit transfer. Requires the customer to have a declared bank account (IBAN/BIC).

Example file Operation

Download the « Operation » .csv example file

Five operations on customers created in the previous step, referenced by their CUSTOMER_ID (the UUIDs returned in the .ACK of the Customer file): three direct debits (DEBIT) and two credit transfers (CREDIT).

Key takeaways from this example:

  • The customer is identified by their CUSTOMER_ID (stable and unique UUID). It can also be identified by your MERCHANT_CUSTOMER_ID but you must ensure its uniqueness and correct formatting.
  • MERCHANT_TRANSACTION_ID and END_TO_END_ID are unique for each operation.
  • Amounts are in centimes (4990 = 49.90 €) and are always positive; the sign ( OPERATION_TYPE ) indicates whether the transaction is a debit or a credit.
  • REMITTANCE_INFO carries an explicit label, visible to the end customer on their statement. Prioritize simple characters (SEPA standard: no accents or special characters).

Columns added by CentralPay in the return files:

In the .ACK (technical control):

ColumnDescription
STATUSACCEPTEDPENDING, or REFUSED
ERROR_CODEValued if REFUSED
ERROR_MESSAGETechnical detail
OPERATION_IDOperation UUID, valued if ACCEPTED (tracking key in subsequent files)

In the .SET (settlement report):

ColumnDescription
STATUSACCEPTEDPENDING, or REFUSED
ERROR_CODEValued if REFUSED (e.g., FRAUD_ALERT)
ERROR_MESSAGEBank refusal detail
SETTLEMENT_DATEValue date if ACCEPTED
OPERATION_IDOperation UUID

In the .RET (post-settlement rejection):

ColumnDescription
REASON_CODESEPA rejection code (e.g., AC04 = account closed)
REASON_MESSAGETextual detail of the rejection
RETURN_AMOUNTReturned amount (positive)
RETURN_DATERejection date
OPERATION_IDOriginal operation UUID

6. Understanding the return files

6.1 Naming of return files

Return files use the name of your original file, followed by the report type, a processing fingerprint, and a timestamp:

<nom du fichier d'origine au format csv>.<ACK|SET|RET>-<hash>-<timestamp>.csv
  • <hash> : fingerprint of the processed file (allows linking the return to the processing).
  • <timestamp> : processing timestamp.

Example:

C494F877_OPER_20241025110500.csv.ACK-098f6bcd4621d373cade4e832627b4f6-20241025112500.csv

6.2 The three levels of reporting

FileWhenWhat it tells you
.ACKImmediately upon receiptTechnical validity line by line. All lines are returned, including those refused.
.SETOnce bank feedback is available (operations only)Progress of settlement. Only lines ACCEPTED at the .ACK level are included.
.RETIn case of rejection after settlement (operations only)Subsequent SEPA rejections (e.g., customer dispute)
Indicative settlement times (business days): credit transfer (SCT) 1 to 2 days; SEPA direct debit (SDD) 3 to 5 days. A post-settlement rejection (.RET) can occur up to 8 weeks after the operation in case of dispute. 

6.3 Best practices for reconciliation

  • OPERATION_ID is the matching key between the .ACK, .SET, and .RET files of the same operation. Keep it.
  • CUSTOMER_ID (returned in the customer .ACK) is the identifier to reuse in your Operation files.
  • Systematically provide your own references (MERCHANT_CUSTOMER_ID, MERCHANT_TRANSACTION_ID) to facilitate reconciliation on your end.

7. Common errors

7.1 Technical refusals (.ACK file)

CodeMeaningAction
MISSING_COLUMNSExpected column(s) missingCheck the CSV header and structure
INVALID_PARAMETERSInvalid field valueCorrect the erroneous data (format, length, enumeration)
BAD_ROWMalformed lineCheck the separator and the number of columns in the line
COMPUTATION_EXCEPTIONInternal processing errorContact CentralPay support

(Non-exhaustive list. Messages are returned line by line and may concatenate multiple errors.)

7.2 Customer reconciliation anomalies

MessageMeaningAction
No customer fetch errorThe customer linked to the operation is not foundCheck the consistency of CUSTOMER_ID / MERCHANT_CUSTOMER_ID. If necessary, upload a Customer file for missing customers.
Too much customer found for merchantMultiple customers share the same MERCHANT_CUSTOMER_IDEnsure the uniqueness of your customer reference; contact us to arbitrate (merge / update).
Unexpected service responseCentralPay internal errorContact CentralPay support

8. Points of attention

  • The header row is mandatory in each file.
  • Amounts are in centimes and are always positive.
  • An operation may appear in several successive .SET if its status changes (PENDING → ACCEPTED/REFUSED).
  • Maintain the OPERATION_ID / CUSTOMER_ID mapping between your systems and CentralPay.
  • Any initial setup is subject to a testing phase with the integration team before production.

9. Getting Started

  1. Check your prerequisites, especially the ICS chain + SDD service + Compliance validation if you plan direct debits.
  2. Request SFTP channel activation from your CentralPay contact.
  3. Prepare an example file and validate it in the testing environment.
  4. Go live.

For any questions regarding setup, contact your CentralPay representative or support.

Accounting Exports

You can perform several exports of your account in CSV, EXCEL, or JSON formats from your Merchant Portal. To do this, configure your search using the available filters on the desired export page, click « Search » then « Export ». Within seconds, you will receive the file by email and can download it at any time from your Merchant Portal Export Files .

1. Accounting Export of Account Transactions

This export includes all debit and credit financial movements that have been made on your account: card authorizations, card transactions, SDD transactions, SCT transactions, transfers, payouts, CentralPay fees, etc.

You will have the details of each transaction so that you can easily reconcile it with your invoices or files.

The export contains the following data:

DesignationMeaning
wallet_idaccount identifier
wallet_nameaccount name
owner_namecompany name
value_datetransaction value date
operation_idCentralPay transaction reference
operation_datetimetransaction date
source_typetransaction type
source_idreference linking multiple transactions
naturetransaction nature
debit_amountamount of « debit » type transactions
credit_amountamount of « credit » type transactions
currencytransaction currency
custom_referencecustom transaction reference
custom_labelcustom transaction name
third_party_idtransaction recipient identifier
third_party_labeltransaction recipient name
third_party_countrytransaction recipient country
payout_numberpayout number

Access:

Recette Merchant Portal – Transactions
Production Merchant Portal – Transactions

2. Download the Monthly Financial Report

At the beginning of each month, in addition to the invoice, an account statement is generated and made available in the secure area of your account ( My Accounts Account Statements ). It presents the total credit and debit amounts made, including a breakdown « of which funds » and « of which fees » to distinguish the nature.

We offer two types of statements: detailed or summary.
- The detailed statement shows all transactions for the selected period.
⚠️ If you have a large number of transactions, they may not appear on the statement. In this case, we recommend performing an export in CSV, Excel, or JSON format.
- The summary statement groups your transactions by day and by transaction type, for the selected period.
To properly understand your detailed account statement:

A) The total amount of debits on your account for the given period:
– of which funds: all debits of « fund » nature (outgoing transfers, etc.)
– of which fees: all debits of « fee » nature (CentralPay fees, etc.)

B) The total amount of credits on your account for the given period:
– of which funds: all deposits to your account (= revenue).
– of which fees: all transactions to offset transactions or adjust fees (fee refunds, etc.).

C) Closing balance of the month preceding the statement.

D) Closing balance of the month of the downloaded statement.

Access:

Recette Merchant Portal – Documents
Production Merchant Portal – Documents

Data Exports

You can perform several exports of your account in CSV, EXCEL, or JSON formats from your Merchant Portal. To do this, configure your search using the filters available on the desired export page, click « Search » then « Export ». Within seconds, you will receive the file by email and can download it at any time from your Merchant Portal Account Exports

1. Card Transaction Export

This export allows you to obtain the details of card transactions you have processed over a given period.
This export simplifies the reading of your card transactions by aggregating authorization and debit operations, and presents additional data specific to card transactions.

The export contains the following data:

DesignationMeaning
transaction_creation_datecreation date
transaction_idtransaction ID
transaction_amountamount
transaction_currencycurrency
transaction_payout_amountsettlement currency value
transaction_payout_currencysettlement currency
transaction_commision_amounttransaction fees
transaction_commision_currencyfee currency
transaction_fee_amountfixed fees per transaction
transaction_3ds3DS (0=no, 1=yes)
transaction_descriptionmerchant-defined description
transaction_sourceEC E-commerce, DP Deposit, MO Mail order
transaction_bank_codebank authorization response
transaction_statustransaction status
transaction_authorization_statusauthorization status
transaction_authorization_codeauthorization code
transaction_capture_statuscapture status
transaction_capture_datecapture date
transaction_capture_amountcapture amount
merchant_transaction_idmerchant transaction ID
point_of_sale_idpoint of sale ID
point_of_sale_namepoint of sale name
merchant_idmerchant ID
merchant_namemerchant name
dispute_amountdispute amount
dispute_currencydispute currency
dispute_datedispute date
refund_amountrefund amount
refund_currencyrefund currency
refund_daterefund date
card_idpayment card ID
card_first6first 6 digits of card
card_last4last 4 digits of card
card_cardholder_namecardholder name
card_cardholder_emailcardholder email
card_typecard type (credit/debit/prepaid)
card_productcard product name (Infinite, Gold…)
card_product_typeconsumer or corporate card
card_commercial_brandcard network (VISA/Mastercard/CB)
card_regioncard origin continent
card_countrycard origin country
card_establishment_namename of card-issuing institution
customer_idcustomer ID
end_user_ipuser IP
end_user_languageuser language
browser_user_agentuser browser
receipt_emailuser reception email
clearing_numberclearing number
merchant_category_codemerchant activity

Access:

Recette Merchant Portal – Transactions
Production Merchant Portal – Transactions

2. Card Refund Export

This export allows you to obtain the details of card refunds you have processed over a given period.

Access:

Recette Merchant Portal – Card Refunds
Production Merchant Portal – Card Refunds

3. Card Transaction Disputes Export

This export allows you to obtain the details of card transaction disputes/chargebacks you have received over a given period.

Access:

Recette Merchant Portal – Chargebacks
Production Merchant Portal – Chargebacks

4. Subscriptions Export (Cards and SDD)

This export allows you to obtain the details of card and SDD subscriptions you have processed over a given period.

Access:

Recette Merchant Portal – Subscriptions
Production Merchant Portal – Subscriptions

Webhooks

Webhooks let you send HTTP notifications to the URLs of your choice based on events (events) that occur on your CentralPay Merchant profile. These events correspond to the creation, data change, or status change of a CentralPay API object.

The service therefore lets you notify your information system in real time as soon as an event occurs on your CentralPay Merchant profile. For example, a successful or failed transaction, the creation of a new subscription (subscription), a new Customer (customer), the receipt of an unpaid payment…

Webhooks are grouped into two categories:

  • Related to Points of Sale (« POS »)
  • Related to « Accounts »

The remote server must confirm successful receipt of the request by returning a 2XX code. Otherwise, a new request will be sent every 5 min for 2h.

To ensure hooks are received correctly, we recommend using the Webhook Site service. Enter the URL provided by the site and the email address, then run your tests. Once you are satisfied with the hook responses, you can replace the email address and the URL with your own and run a new test.

See the list of webhooks in: Developers Webhook notifications

Payment Links

General information

1. The two Smart Collection integration modes

The Smart Collection solution allows you to collect payments from various payment methods.

You can choose to:

  • Create and integrate your own payment flows (CUSTOM integration), by consuming the API services of each payment method:
    • Card transaction ➝
    • Transfer transaction ➝
    • SEPA direct debit transaction ➝

  • Use our secure payment request flows (SMART integration), via our dedicated service:
    • Payment requests (PaymentRequest) ➝
    • The EscrowDate parameter can affect the funds availability date of a transaction (applies to AGENT partners only)
ℹ️ If you choose SMART integration, specific features such as R-transactions, bank descriptor management, Virtual IBAN management, etc., are presented in the documentation under the CUSTOM sections dedicated to each payment method.

2. About SMART integration

The payment request allows you to generate a payment link leading to a payment page hosted by CentralPay. Your customer can thus pay you according to the payment terms you have determined (authorized payment methods and modes, payment deadlines, etc.). Transactions created in this way are automatically linked to the payment request and allow its status to be updated (unpaid, partially paid, paid, etc.).

The payment request must be populated with the payment terms of your cart or invoice:

  • Amount to be paid
  • Accepted payment methods (card, transfer, direct debit, payment initiation)
  • Accepted payment modes (one-off, subscription, installment payment…)
  • Order reference
  • Order description
  • Customer details
  • Authorized payment deadline
  • Link expiration time
  • …

The payment link can be sent to your customers from:

  • Your sales funnels or web interfaces
  • Your communication tools (email, SMS, mail via QR code…)
  • The CentralPay email / SMS notification service

The payment page then allows the customer to carry out their transaction(s):

  • Viewing payment request information
  • Selection of payment method or mode
  • Entering customer data
  • Entering payment details

Payment requests

The payment request (PaymentRequest) is the service that allows you to generate payment links. You can create payment requests via API or via the Merchant Portal. The payment request can also be paired with the CentralPay notification service, allowing you to easily send a payment link to your customers by email or SMS and schedule automated reminders.

1. API creation

1.1. Create a PaymentRequest

Below are the available payment methods and the corresponding API values in the PaymentRequest service:

Desired payment method or modeAPI values to provide
One-off payments
Card transactionpaymentMethod[]=TRANSACTION
Card deposit (reserved for rental businesses)paymentMethod[]=TRANSACTION
transaction[source]=DP
Card verification/imprint (0€ transaction)paymentMethod[]=TRANSACTION
transaction[source]=RI
Bank transfer transactionpaymentMethod[]=SCT_TRANSACTION
SEPA Direct Debit transactionpaymentMethod[]=SDD
sdd[remittanceInformation]
Pay by bank transaction (standard transfer)paymentMethod[]=SCT_TRANSACTION_PIS
Pay by bank transaction (instant transfer by default, otherwise standard)paymentMethod[]=SCT_TRANSACTION_PIS_IP
Recurring payments
Card subscriptionpaymentMethod[]=SUBSCRIPTION
subscriptionModel[subscriptionModelId]
SEPA Direct Debit subscriptionpaymentMethod[]=SUBSCRIPTION
subscription[source]=SDD
subscriptionModel[subscriptionModelId]
Card instalment paymentpaymentMethod[]=INSTALLMENT
intallment[intervalUnit]
installment[intervalCount]
installment [iterationCount]
SEPA Direct Debit instalment paymentpaymentMethod[]=INSTALLMENT
installment[source]=SDD
intallment[intervalUnit]
installment[intervalCount]
installment [iterationCount]

If you want to allow multiple payment methods or modes in your PaymentRequest, you must provide the paymentMethod object multiple times.

Example:

paymentMethod[]=TRANSACTION
paymentMethod[]=SCT_TRANSACTION

⚠️ Some combinations of payment methods or modes may conflict and your PaymentRequest may return an error. For example, you cannot allow a TRANSACTION and a SUBSCRIPTION; however, you can allow a TRANSACTION and an INSTALLMENT.

Here is the key information about other values to provide when creating a PaymentRequest:

LabelDefinition
amountAmount of the payment request in centimes
merchantPaymentRequestIdCustom reference (your order or invoice number, for example) that you can use to reconcile the payment. This value will be visible to your customer on the payment page
descriptionCustom description (name of the product or service sold). This value will be visible to your customer on the payment page
additionalData[*]Free key-value data, allowing you to pass through one or more data items (invoice references, customer number, etc.). Not visible to your customer on the payment page
createCustomerTRUE / FALSE creation of a Customer account (in particular, enables saving the customer payment method: card, SEPA mandate, and creating a virtual IBAN dedicated to the Customer)
breakdown[customerId]Select an existing Customer
ℹ️ For SEPA transfer transactions, you can define whether you want to display the Virtual IBAN dedicated to the Customer or generate a single-use Virtual IBAN (SCT) from the settings of your Points of Sale.

1.2. Send a PaymentRequest by email / SMS

When creating it, you can ask CentralPay to send the payment request to your customer. There are two sending methods:

  • Via the default PaymentRequest mailer: CentralPay sends the payment request using a standardised email/SMS template and from the sender email configured in your point of sale (or, failing that, CentralPay’s sender email « no-reply@centralpay.eu »).
    • To do this, you must [coming soon]

  • Via the CentralPay email/SMS notification service: CentralPay sends the payment request according to the scenario and communication templates you have configured. This service notably enables automated customer reminders, based on the payment request parameters (payment deadlines, payment progress, etc.).
    • To do this, you must [coming soon]

1.3. Specific features

Send an open-amount payment request (multi-payment methods)

It is possible to allow the amount to be paid to be modified (up to the initial amount), so that your payers can pay the amount due using multiple payment methods or at different times.

Example:

Example of a €500 payment request:

• Payment of €250 by transfer, then €250 by card
• Or €300 with a first card, then €200 with another
• Or payment of €350 with a card, then come back later to pay the remaining €150 with the same card

To do this, you must [coming soon]

Send a payment request to multiple recipients

It is possible to send a payment request to multiple recipients with a different amount to be paid by each of them. As follows:

  • Each participant receives an email or SMS notification detailing the item to be paid
  • Amounts are set by the initiator or left open for each participant, who pays the amount they wish
  • The dates configured on the request (creation, expiration, etc.) allow notifications to be generated for each participant

To do this, you must [coming soon]

2. Creation from the Merchant Portal

2.1. Creation and types of payment requests

You can create a payment request from Merchant Portal Payment requests Payment links Create .

Payment requests created from the Merchant Portal are necessarily sent to your customers by CentralPay. Depending on your needs, you must choose one of the following request types:

  • Instant request: A simple request, sent from CentralPay’s standard email/SMS senders and templates
  • Scheduled request: An advanced request, using the communication templates, scenarios, and sending/reminder rules that you have previously configured in the CentralPay email/SMS notification service. A scheduled request sent without selecting a notification scenario will automatically be reclassified as an instant request

Once created, you can access the payment page by clicking payment request details Payment form . This way, you can send your customer the page URL in case of a sending error.

Access:

Recette Merchant Portal – Payment requests
Production Merchant Portal – Payment requests

2.2. Payment request profiles

To make it easier to create payment requests, you can create predefined profiles that include the main request settings:

  • Point of Sale (POS)
  • Currency
  • Language
  • Allowed payment methods
  • Payment due date (contractual payment terms)
  • Link expiration (time before the link expires)
  • Notification scenarios
  • Rerouting of the payment confirmation email
  • Display rules (payment page settings)
  • Customer creation
  • Attachments

You can then use this profile when creating your scheduled payment requests via the Merchant Portal, or via flat-file import.

2.3. Create payment requests by flat-file import

From Merchant Portal Payment requests Payment links Import , you can upload a payment request import file. This use may be recommended for businesses that want to send, at the end of the month, and automatically follow up on a list of debtors.

Download the template:

  • CSV format➝
  • JSON format ➝

Some important information:

LabelDefinition
profil_uuid*UUID of the payment request profile
merchant_payment_request_idCustom reference (your order or invoice number, for example) that you can use to reconcile the payment. This value will be visible to the payer on the payment page.
descriptionCustom description (name of the product or service sold). This value will be visible to your customer on the payment page.
total_amount*Payment request amount. Provide as a double with a « . » separator (e.g., 500.00 for €500).
last_nameLast name
first_nameFirst name
email*Recipient email
phoneRecipient phone number in international format (e.g., 33612345678).
create_customerCreation of a « Customer » customer profile: enter « O » for YES or « N » for NO
link_expiration_datePayment request expiration date (date after which the customer can no longer pay you)
deadlinePayment due date (date by which your customer must have paid you, and after which they are late).
receipt_emailEmail address to which you want to reroute the payment confirmation email
language*Communication and payment page language (FRE for French, ENG for English…)
Fields marked with * are required.

Payment page (SmartForm)

The payment page (also called SmartForm) is a page hosted and secured by CentralPay for collecting customer data and payment details. Generated via the payment request service, it allows your customers to view the details of this request (amount, order reference, etc.) and select an authorized payment method before proceeding to the payment step.

1. Page configuration

You can create one or more page templates to customize your payment flow. Below is the list of configurable elements on the page:

LabelDefinition
NomPage template name
Template par défautCheckbox to define whether this template should be applied by default (payment requests created without a template will use this one)
Forcer la création du CustomerCheckbox to systematically force the creation of a Customer when creating the payment request. The Customer creation parameter specified on payment requests will be ignored. Note: CentralPay will not create a new Customer if their email or phone number is already used by another Customer, and will assign the request to that existing Customer
URL de redirectionRedirect URL after payment. Fixed URL; however, you can choose to populate this value dynamically via API for each PaymentRequest if needed
Délais de redirectionRedirect delay to the redirect URL after payment. Empty field: no redirect, 0: immediate redirect, other value: number of seconds before redirect
URL d'annulationRedirect URL in case of cancellation before payment. Fixed URL; however, you can choose to populate this value dynamically via API for each PaymentRequest if needed
Couleur du texteText color of the payment page
Couleur des boutonsButton color of the payment page
Champs supplémentairesAdditional fields that can be added to card (CB) or bank transfer payment flows. Used to collect additional customer data if necessary (address, last name, first name, etc.)

Access:

Recette Merchant Portal – Form configuration
Production Merchant Portal – Form configuration

2. Customizing the logo displayed on the SmartForm

The logo displayed on the SmartForm is the one you have specified in the point of sale settings used for your payment request. By default, the CentralPay logo is displayed.

Callbacks, statuses and hooks

1. Statuses related to payment requests

Consult the Payment Request Statuses ➝

2. Webhooks related to payment requests

As payment requests indirectly allow the creation of card, SCT and SDD transactions, but also other objects like Customer, Subscription or Installment depending on the use cases, it may be useful to track the associated webhooks.

Consult the PaymentRequest Webhooks ➝

Consult the Transaction Webhooks ➝

Consult the SCT Transaction Webhooks ➝

Consult the SDD Transaction Webhooks ➝

Consult the Customer Webhooks ➝

Consult the Subscription Webhooks ➝

Consult the Installment Webhooks ➝

Card transaction

General information

1. Operation

A card transaction comprises a sequence of actions:

1.1. 3DS 2.0 Authentication

This ensures that the person making the transaction is indeed the cardholder. The customer’s bank analyzes numerous payment-related factors provided by CentralPay (IP address, location, device used, etc.) and compares them to its customer’s usual data:

  • If the data does not match or the transaction amount is significant, it requires manual identification via a code sent by SMS or through its banking application (« strong authentication » or « SCA »)
  • Otherwise, it directly authorizes the payment (« Frictionless »)

1.2. Bank Authorization

A request made by CentralPay to the payer’s bank to verify the validity and funds availability of their card. The « authorized » funds are blocked until the funds are captured. If no capture is performed within 7 days, the « authorized » funds are released, and the merchant will need to renew their authorization.

For eligible activities (rental, hospitality, etc.), the « pre-authorization » service allows the merchant to extend the authorization period up to 30 days.

1.3. Capture

Capture initiates the debit of the card based on an authorization or pre-authorization. A merchant can perform a full or partial capture of the authorized amount.

2. Accepted Card Types and Networks

Payment cards are issued by banks or approved payment institutions; they can be branded by one or more card networks (also called « Card Scheme »).

The networks accepted by CentralPay are:

  • Debit Card
  • VISA
  • MasterCard
  • American Express

In France, the majority of cards issued are co-branded CB and VISA or CB and Mastercard. In this case, the customer must have the option to choose the network they wish to use.

Cards can be debit or deferred debit / credit (in France, the majority of cards are debit), and can be for individuals (referred to as « Consumer ») or for professionals (referred to as « Corporate »).

Note that these parameters impact the transaction cost for the merchant (interchange fees and card network fees).

CUSTOM payment form

The Transaction API service lets you perform an authorisation followed by a capture of funds on your customer’s bank card. All card payment methods (one-off payments, recurring payments, MoTo, etc.) are managed via this service.

When a customer wants to make a first payment, their card data must be collected to generate a cardTokenId, using CentralPay’s tokenisation service « token.js ». This temporary token can then be used to create a Card resource, identified by a cardId, which can be stored in a Customer object. This linking is required to enable subsequent payments without asking for the card again (1-click payments, recurring payments, etc.).

ℹ️ With a custom payment form (CUSTOM FORM), integrating 3DS 2.2 authentication is mandatory before executing a transaction.

Payment flow diagram with cardTokenId:

ℹ️ If you have PCI DSS Level 1 certification and you handle card data, you can create a /card object directly by sending the data (PAN, expiry date, CVC) to the API, without using token.js.

1. Prerequisites

1.1. Declare your domains

Before using token.js, you must declare the domains hosting your Custom forms in your Merchant Portal. Go to Administration My merchant profile Technical Edit , then complete the Allowed Custom Forms Hosts field.

Access:

Recette Merchant Portal – Administration
Production Merchant Portal – Administration

1.2. Secure your form

Ensure that your payment pages use the HTTPS protocol with TLS 1.2 or higher.

1.3. PCI DSS compliance

Using token.js means you manage the form display and the token trigger yourself. This method requires compliance with PCI DSS SAQ A-EP requirements.

Download the A-EP form ➝

2. Payment form integration

2.1. Create an HTML payment form

Unlike the Smart Form hosted by CentralPay, the Custom Form is created by you, using your own HTML code. You must implement the following fields:

  • Card number: 16 digits for CB/Visa/Mastercard, 15 for American Express
  • Expiry date: MM/YYYY format
  • CVC: 3 digits (CB/Visa/Mastercard), 4 digits (Amex)

You can view our Custom Form examples:

  • See the example of a Custom Form without 3DS 2.2 ➝
  • See the example of a Custom Form with 3DS 2.2 ➝

2.2. token.js script integration

Add the token.js script to your page to generate a cardTokenId:

<script src="https://js.centralpay.net/js/token.js"></script>

Then add your merchant public key (MerchantPublicKey) in a separate tag:

<script type="text/javascript">
  window.Centralpay ? Centralpay.card.setMerchantPublicKey('VOTRE_CLE_PUBLIQUE') : alert('Error loading html form');
</script>

You can see where to find your MerchantPublicKey on the API authentication page.

Integration in a mobile application

If you use a WebView in your application, you can integrate either a custom form with token.js or a hosted form via the PaymentRequest service. These options let you externalise card data collection while providing a smooth user experience.

In a native mobile application, the token.js script is not compatible. You must then collect card data via the application fields, then call the cardToken API directly using your merchantPublicKey.

The call to the cardToken API must include an HTTP Origin header matching a URL declared in your CentralPay Merchant profile (see 2.1 Prerequisites).

For your tests, you can use the following Origin: https://example.centralpay.net

ℹ️ For native mobile applications, card data is transmitted directly from the user’s device to CentralPay, without going through the merchant’s servers. However, this type of integration requires ensuring compliance with the security and PCI DSS requirements applicable to collecting and transmitting card data in a native environment. 

2.3. Create a Customer and link a card

ℹ️ The cardTokenId is a single-use token, for which the CVC is temporary (10 minutes in production, 5 minutes in RCT). After this time, the token automatically expires (status=EXPIRED) and can no longer be used, which will result in the following error: "cardTokenId": "Card token already used".   

Whether you use the card immediately (one-off payment) or want to reuse it later (1-click payment, recurring, etc.), it is recommended to start by creating a Customer object, then save a Card using the cardTokenId. As 3DS 2.2 authentication can sometimes increase processing time, this sequence helps prevent the CVC associated with the cardToken from expiring.

  1. Create a customer object via the POST /customer endpoint, or retrieve the customerId if it is already known
  2. Create a card using POST /card by specifying the cardTokenId issued by token.js and the customerId

Once the card is linked to a customer, the CVC becomes permanent and future transactions can be initiated with no time limit.

If you do not use token.js (PCI DSS certification required), you can create a card directly without using the cardToken by providing the PAN + expiry + CVC +  customerId

3. 3DS 2.2 authentication

Before initiating a card transaction, you must verify the cardholder’s identity via 3DS 2.2 authentication. This step is mandatory for one-off card transactions as well as for recurring card transactions.

ℹ️ Exception: MoTo (Mail Order / Telephone Order) transactions are not subject to 3DS authentication. You can create the transaction directly after creating the card. 

3DS 2.0 Authentication

The 3D Secure 2.0 protocol ensures that the person performing the transaction is indeed the cardholder. The customer’s bank analyzes numerous payment-related factors sent by CentralPay (IP address, location, device used, etc.) and compares them with the customer’s usual data:

  • If the data does not match or the transaction amount is significant, it requires manual identification via a code sent by SMS or via the banking application (« strong authentication » or « SCA »).
  • Otherwise, it directly authorizes the payment (« Frictionless »).

1. Characteristics

There are two types of 3DS, depending on whether you wish to initiate a classic transaction (where the cardholder is present) or if you are executing a recurring payment installment (where the cardholder is not present):

1.1. 3DS 2 « BRW » or « Browser Authentication » (participating cardholder – 1st transaction)

It represents the majority of 3DS 2 integrations. It requires customer authentication to verify that they are the legitimate cardholder at the time of the transaction. It triggers a challenge if necessary to verify the cardholder’s identity (SCA).

👉 Discover how to integrate 3DS 2.0 BRW ➝

1.2. 3DS2 « 3RI Authentication » (non-participating cardholder – recurring payment installments)

3DS Requestor Initiated (3RI) Authentication, or Merchant-Initiated Authentication, is used when the cardholder is not present or not participating.

3RI offers the possibility to generate the necessary 3DS authentications without customer involvement. This allows for the use of an authentication previously generated with a customer. It is used in the following recurring payment contexts: Split payment, Subscription, Refund, etc.

👉 Discover how to integrate 3DS 2.0 3RI ➝

Card Transaction

Depending on your business needs, CentralPay offers various unit transaction modes via its Transaction API service.

Please note, you must first manage the collection of your customer’s card data by creating a Custom Form payment form and integrating 3DS 2.0 authentication.

The basic principles of a card transaction are described in the general information section.

1. Authorization and instant capture

To perform a simple card payment (authorization then instant capture):

  • Create a Transaction by setting the « source » parameter to « EC »

2. Authorization and deferred capture

This transaction mode can be useful if you wish to block your customer’s funds before definitively debiting them, for example, during order validation. This allows you to cancel the operation without being subject to transaction or refund fees.

To perform a card payment with deferred capture (authorization then deferred capture), you must:

  • Perform an authorization by setting the « capture » parameter of the Transaction to « false ». Funds will thus be blocked on the customer’s card
  • Then debit the desired amount by initiating a capture on the received transactionId, specifying the desired amount (« amount »)

You have 7 calendar days following the authorization to perform the capture; otherwise, the customer’s funds will be released.

3. Pre-authorization and deferred capture

The pre-authorization and deferred capture service (or security deposit / PLBS) allows for a pre-authorization of a certain amount, which you can then capture partially or fully within 30 days. During this period, funds are guaranteed to you, as they are blocked on the card and cannot be used by your customer.

This service is only accessible to certain authorized activities (vehicle or equipment rentals, hospitality, etc.).

To perform a pre-authorization and deferred capture, you must:

  • Perform a pre-authorization by setting the « source » parameter of the Transaction to « DP ». Funds will thus be blocked on the customer’s card
  • Then debit the desired amount by initiating a capture on the received « transactionId », specifying the desired amount (« amount »)

You have 30 calendar days following the authorization to perform the capture; otherwise, the customer’s funds will be released.

4. Card verification (secure imprint)

The card imprint & verification service allows for a €0 authorization with cardholder authentication (3DS 2.0). This provides you with information regarding your customer’s card (debit, credit, prepaid, etc.) and ensures it is not fraudulent (card not stolen, cardholder identified, etc.). This service is generally used to register a card with 3DS for a subscription with a deferred start date.

To perform a card imprint and verification (€0 authorization without capture), you must:

  • Create a Transaction by setting the « source » parameter to « RI »
  • We also recommend creating a « customer » during the transaction to associate the generated « cardId » and allow for a potential subsequent debit of this card

5. Card debit only (MO/TO)

The MOTO (Mail Order / Telephone Order) payment service allows for an authorization followed by a capture of a card without the cardholder being present. It is generally used by hotels to debit additional services or consumption at the end of a stay.

Please note, this service is only accessible to certain authorized activities (hospitality, etc.) and has shown increasingly lower conversion results since the PSD2 directive, as it does not allow for cardholder authentication.

To perform a MOTO payment, you must:

  • Create a Transaction by setting the « source » parameter to « MO » (Mail Order) or « TO » (Telephone Order)

6. One-click card payment

One-click card payment consists of saving your customer’s card data so they can pay for their order without having to re-enter it. The customer’s card(s) are securely stored in the CentralPay Customer. In this context, it is necessary to allow your customer to select the card they wish to use or to add a new card.

To perform a one-click card payment, you must:

  • Select the « One-click » option in the point of sale configuration
  • Ensure that your Customers have a card linked to their profile

Recurring Card Transaction

Depending on your business needs, CentralPay offers several recurring transaction modes:

  • Subscription from a subscription template
    CentralPay manages the collection of instalments based on a subscription template that you defined in advance.
  • API-driven subscription
    You manage the collection of each instalment yourself via API (initial BRW authentication, then 3RI), without using CentralPay’s automated subscription service.
  • Installment payment
    CentralPay splits an amount due into several transactions and manages their collection, according to the payment terms you provided.

Please note: you must first manage the collection of your customer’s card data by creating a Custom Form payment form, create a Customer profile for this customer, and implement the 3DS 2.2 authentication principles.

The basic principles of a card transaction are described in the general information section.

For a recurring payment, your customer automatically receives an email containing the details of their instalments. This email also includes a link to our Customer Portal, which allows them to view the status of their recurring payments, change their bank card, and cancel a subscription if needed.

1. Subscription from a subscription template

1.1. Creation

You must first:

  • Create a Custom Form payment form
  • Create a Customer containing at least one Card
  • And perform a 3DS 2.2 BRW authentication

Then, the subscription service (Subscription) will allow you to easily initiate a subscription payment based on a subscription template created in advance via the CentralPay API or the Merchant Portal.

1.2. Specific integration cases

  • If the first subscription payment must be higher than the following instalments (e.g., registration fees), you can first initiate a Transaction following your 3DS BRW authentication, then set a start date (startingDate) in the Subscription object.
  • If you simply want to start a subscription on a specific date, you can first perform a verified card imprint following your 3DS BRW authentication, then set a start date (startingDate) in the Subscription object.

2. API-driven subscription

2.1. Creation

You must first:

  • Create a Custom Form payment form
  • Create a Customer containing at least one Card
  • Perform a 3DS 2.2 BRW authentication
  • Perform an initial Transaction

Then, you will be able to initiate the next Transactions yourself using 3DS 3RI authentication.

2.2. Important information

  • To ensure an optimal conversion rate, the amount of the first transaction must be greater than or equal to the amounts of subsequent transactions performed with 3DS 3RI authentication.
  • The CentralPay platform will not consider the generated transactions as « subscriptions »; therefore, the « Merchant Portal » and « Customer Portal » interfaces will display these operations in the same way as a succession of one-off transactions.
  • With this model, the retry automation system will not apply if the collection of one of your transactions fails.

3. Installment payment

3.1. Creation

You must first:

  • Create a Custom Form payment form
  • Create a Customer containing at least one Card
  • And perform a 3DS 2.2 BRW authentication

Then, the installment payment service (Installment) will allow you to easily initiate an installment payment based on the information provided in your request.

Card transaction via wallet

1. Apple Pay (Smart Form)

Apple Pay is natively integrated into the SmartForm card payment flow (PaymentRequest > paymentMethod[]=TRANSACTION) as long as your customer’s device is compatible.

No action is required on your part. The service is fully managed by CentralPay (device detection, management of Apple certificates and tokens, PCI-DSS security). No card data is exposed on the merchant side (PCI-DSS SAQ-A scope).

2. Apple Pay (Custom Form)

2.1. Requirements

1. Create an Apple Developer account:

  • Sign up for the Apple Developer Program
  • Create your Apple Pay merchant credentials (Merchant ID)
  • Generate your Apple Pay processing certificate through the Apple portal
  • Register your domain (Apple Pay Merchant Domain)

2. Device-side integration:

  • Implement Apple Pay on the front end using Apple Pay JS (for websites) or PassKit (for iOS apps)
  • Retrieve the Apple Pay token (ApplePayToken) after the user has confirmed the payment (Face ID, Touch ID, etc.)
🔐 Certificates required for Apple Pay integration 
(https://developer.apple.com/help/account/certificates/create-a-certificate-signing-request)

To process Apple Pay payments through a direct integration, the merchant must have the following:
• a Merchant ID Identity certificate;
• a Merchant Payment Processing G2 certificate.

The merchant must ensure that all private keys used to generate the CSRs associated with these certificates are retained.

1. Merchant ID Identity
A CSR based on an EC key (256 bits) must be generated.
This CSR will be generated by Centralpay

2. Merchant Payment Processing Certificate

Main steps:
• Request the CSR generated by Centralpay
• Submit the CSR through the Apple Developer Account to obtain the Merchant Payment Processing Certificate.
• Install the certificate on the same macOS computer used to generate the CSR so that it is associated with the private key.
• Export the complete identity in .p12 format (certificate + private key).

⚠️ If the option to export in .p12 format is not available, this indicates that a step in the process was not completed correctly (private key is missing or not associated).

The .p12 file is a secure container that allows the private key associated with the certificate to be used later, in accordance with the Apple Pay workflow.

Important notes:
• If you lose your private key, you must completely recreate the certificate through the Apple Developer portal.
• The Apple Pay documentation can be confusing: the use of OpenSSL applies only to the Merchant ID Identity certificate and does not apply to the Merchant Payment Processing Certificate.

2.2. Via a decrypted Apple Pay token

CentralPay enables the processing of card payments made via Apple Pay as part of a custom integration (excluding Smart Form).

ℹ️ CentralPay currently supports only decrypted Apple Pay tokens. This method entails significant PCI-DSS liability on your part (SAQ-D form). Please research this and ensure you are in compliance before developing this integration method.  

Step 1: Decrypting the Apple Pay token (Backend)

The Apple Pay token must be decrypted on your backend using:

  • Your Apple Pay treatment certificate
  • Your private key
  • Apple Documentation: Payment Token Format

The result will contain:

{
  "applicationPrimaryAccountNumber": "5454********2664",
  "applicationExpirationDate": "YYMMDD",
  "paymentData": {
    "cryptogram": "base64-cryptogram",
    "eciIndicator": "05"
  }
}

Step 2: Creating the CentralPay cardToken (Backend)

Use the /cardToken POST endpoint of the CentralPay API

FieldDescription
card[number]PAN of the card extracted from the Apple Pay token
card[expirationMonth]Card expiration month (MM format)
card[expirationYear]Card expiration year (YYYY format)
onlinePaymentCryptogramCryptogram derived from the Apple Pay token (CAVV)
eciIndicatorAuthentication Index Derived from the Apple Pay Token (ECI)
applePayTransactionIdApple Pay Transaction ID
amountAmount in cents (e.g., 2,500 = €25.00)
currencyISO alpha code (e.g., EUR, USD, etc.)
merchantPublicKeyPublic key provided by CentralPay
ℹ️ Where can I find the merchantPublicKey?
Log in to your CentralPay Back Office portal Administration Technical Merchant Public Key

Example:

card[number]=5454696696312664
card[expirationMonth]=12
card[expirationYear]=2031
onlinePaymentCryptogram=MGnp3S1LBgJxAANgdNCRAoABFIA=
applePayTransactionId=3d2b17abed2696ca...
amount=2500
currency=EUR
merchantPublicKey=abcdef123456...

The generated cardToken contains all the data needed for Apple Pay authentication.

Step 3: Creating the CentralPay Transaction (Backend)

Use the /transaction POST endpoint of the CentralPay API

Required fields:

cardToken=...
amount=2500
currency=EUR
pointOfSaleId=...
endUserIp=...
merchantTransactionId=...

The cardToken already encapsulates the Apple Pay context and authentication data.

Step 4: Testing before deployment

The CentralPay test environment allows you to validate your entire Apple Pay integration without triggering actual payments. We strongly recommend using this environment for all phases of development, debugging, and validation, both on the front end and the back end.

Test portal
Test API
Test cards

Differences between the test and production environments:

  • The API URLs are different: They use the “test-” prefix
    • Test: https://test-api.centralpay.net/v2/rest/transaction
    • Deployment: https://api.centralpay.net/v2/rest/transaction
  • The API credentials (login and secret) are specific to the test environment. They are not interchangeable with those used in production.
  • The CentralPay public key (merchantPublicKey) is also environment-specific

2.3. Via an encrypted Apple Pay token (hybrid)

ℹ️ If you are interested in this integration method, please contact CentralPay support to learn about the associated deliverables and access procedures.

2.3.1. Apple account settings

– Log in on « https://developer.apple.com/« , create an account, and verify your « developer » account for $99)

– Go to https://developer.apple.com/account/resources/identifiers/list

– Under « App IDs », select « Merchant IDs« :

Then click the « + » to add an « Identifier« :

Select « Merchant IDs« :

Enter your username and click »Register »:

Go to https://developer.apple.com/account/resources, then click Identifiers

On the “Identify” page, select a Merchant ID using the filter in the upper-right corner

Under « Apple Pay Payment Processing Certificate », click « Create Certificate« .

Please note that this « Merchant ID » will NOT be used exclusively for China.

At that point, click « Choose File » to upload the CSR file that was sent to you by CentralPay (CentralPay only).

You can download the generated file.
Next, you need to create the “Apple Pay Merchant Identity Certificate.”
To do this, go to https://developer.apple.com/account/resources, then click Identifiers and finally click the identifier you want to edit.
Once it’s open, click « Create Certificate ».

Upload your certificate:

Add the associated domain

Enter the domain name in question:

Download the file specified by Apple

Deploy the file specified by Apple to a server on the domain in question that is accessible to Apple, then click “Verify”:

You will then be able to download the required certificate.

2.3.2. Payment via Apple Pay

Generating the certificate and key in the same file:

openssl pkcs12 -in certificat.p12 -out certificat.pem -clcerts

Creating an ApplePayToken with the Apple Pay JS API (Demo at https://applepaydemo.apple.com/apple-pay-js-api)

Front end:

<script crossorigin
src="https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js">
</script>
<style>
apple-pay-button {
--apple-pay-button-width: 250px;
--apple-pay-button-height: 100px;
--apple-pay-button-border-radius: 99px;
--apple-pay-button-padding: 0px 0px;
--apple-pay-button-box-sizing: border-box;
}
</style>
<apple-pay-button id="btn-card" buttonstyle="white-outline" type="plain" locale="fr-FR"></apple-pay-button>
<br />
<div data-info="gateway-link" class="text-small text-gray-light font-weight-normal ml-1">
<img src="https://docs.centralpay.com/wp-content/uploads/2024/10/paysecure_reassurance_1-fond_blanc.png" alt="CentralPay" style="max-width:200px"></a>
</div>
var request = {
countryCode: 'FR',
currencyCode: 'EUR',
supportedNetworks: ['visa', 'masterCard', 'amex'],
merchantCapabilities: ['supports3DS'],
total: { label: 'Your Merchant Name', amount: '10.00' },
}
var applepayversion = 3;
var session = new ApplePaySession(applepayversion, request);

session.onvalidatemerchant = event => {
// Call your own server to request a new merchant session.
console.log("event.validationURL :"+event.validationURL);

fetch('/applepay-session')
.then(res => res.json()) // Parse the response as JSON.
.then(merchantSession => {
session.completeMerchantValidation(merchantSession);
})
.catch(err => {
console.error("Error fetching merchant session : ", err);
});
};

session.onpaymentauthorized = (event) => {

var token = event.payment.token;
fetch(`https://api.centralpay.net/transaction`, {
method: "post",
body: JSON.stringify(
{
applePayToken: token,
endUserIp: "127.0.0.1",
currency: "EUR",
amount: 1000,
source="EC",
browserUserAgent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36",
merchantTransactionId="1234567890123456789"
}),
})
.then((response) => {
if (response.ok) {
return response.json();
}
appleSession.completePayment(ApplePaySession.STATUS_FAILURE);
})
.then((responseJson) => {
// Do something with the response
appleSession.completePayment(ApplePaySession.STATUS_SUCCESS);
})
.catch((error) => {
appleSession.completePayment(ApplePaySession.STATUS_FAILURE);
});
};

session.begin();

Backend:

$router->map('GET', '/applepay-session', function (ServerRequestInterface $request) use ($twig) : ResponseInterface {

$APPLE_URL = "https://apple-pay-gateway.apple.com/paymentservices/paymentSession";

$curl = new Curl();
$curl->setHeader('Content-Type', 'application/json');
$curl->setOpt($ch, CURLOPT_SSLCERT, getcwd() . 'certificat.pem');
$curl->setOpt($ch, CURLOPT_SSLCERTPASSWD, "thesslpassword");
$curl->setOpt(CURLOPT_POSTFIELDS, '{
merchantIdentifier: "merchant.net.centralpay.test-form",
displayName: "MyStore",
initiative: "web",
initiativeContext: "merchant.net.centralpay.test-form"
}'
);
$curl->setOpt(CURLOPT_CUSTOMREQUEST, "POST");
$curl->setOpt(CURLOPT_URL, $APPLE_URL);
$curl->exec();
...
return new Laminas\Diactoros\Response\JsonResponse($curl->getResponse());
...
});

Creating a CardToken with your encrypted Apple Pay token. (Frontend)

When making your API call, in addition to the required fields, you must include the “applePayToken” field in JSON format, containing your Apple Pay token, which includes the elements paymentData,paymentMethod, and transactionIdentifier.
You can then complete a transaction using your cardToken as usual.

Use the CentralPay API’s POST /cardToken endpoint
Required fields:

curl --location 'https://test-api.centralpay.net/cardToken' \
--header 'Origin: https://example.centralpay.net' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'merchantPublicKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--data-urlencode 'endUserIp=xxxx.xxxx.xxxx.xxxx'
--data-urlencode 'applePayToken=xxxxxxxxxxxxxxxxxxxxxx'

Creating the transaction: (Backend)

Use the /transaction POST endpoint of the CentralPay API
Required fields:

curl --location 'https://api.centralpay.net/transaction' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: ••••••' \
--data-urlencode 'customerId=870005ca-xxxx-xxxx-xxxx-140fa71d6e01' \
--data-urlencode 'cardTokenId=xxxxxxxxxxxxxxxxxxxxxxxx'
--data-urlencode 'currency=EUR' \
--data-urlencode 'amount=1000' \
--data-urlencode 'endUserIp=xxxx.xxxx.xxxx.xxxx' \
--data-urlencode 'endUserLanguage=fre' \
--data-urlencode 'source=EC' \
--data-urlencode 'browserUserAgent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36' \
--data-urlencode 'browserAcceptLanguage=en_US' \
--data-urlencode 'email=xxxxx@example.com' \
--data-urlencode 'country=FRA' \
--data-urlencode 'merchantTransactionId=1234567890123456789'

The cardToken already encapsulates the Apple Pay context and authentication data.

Create a transaction using your encrypted Apple Pay token. (Backend)

When making your API call, in addition to the required fields, you must include the “applePayToken” field in JSON format, containing your Apple Pay token, which includes the elements paymentData, paymentMethod and transactionIdentifier.

Then use the /transaction POST endpoint of the CentralPay API

Required fields:

curl --location 'https://api.centralpay.net/transaction' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: ••••••' \
--data-urlencode 'customerId=870005ca-xxxx-xxxx-xxxx-140fa71d6e01' \
--data-urlencode 'currency=EUR' \
--data-urlencode 'amount=1000' \
--data-urlencode 'endUserIp=xxxx.xxxx.xxxx.xxxx' \
--data-urlencode 'endUserLanguage=fre' \
--data-urlencode 'source=EC' \
--data-urlencode 'browserUserAgent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36' \
--data-urlencode 'browserAcceptLanguage=en_US' \
--data-urlencode 'email=xxxxx@example.com' \
--data-urlencode 'country=FRA' \
--data-urlencode 'merchantTransactionId=1234567890123456789'
--data-urlencode 'applePayToken=xxxxxxxxxxxxxxxxxxxxxxxx'

3. Google Pay (Smart Form)

Google Pay is natively integrated into the SmartForm card payment flow (PaymentRequest > paymentMethod[]=TRANSACTION), provided your customer’s device or browser is compatible.

No action is required on your part. The service will be fully managed by CentralPay (Google Pay compatibility detection, certificate and token management, PCI-DSS security). No card data passes through the merchant’s system; the payment flow falls within the scope of PCI-DSS SAQ-A.

4. Google Pay (Custom Form)

CentralPay enables the integration of Google Pay via the PAYMENT_GATEWAY mode, as required by Google Pay in a multi-merchant PSP environment, without requiring server-side decryption of the token.

Requirements

1. Create a Google Pay Business account:

  • Access the Google Pay Business Console
  • Create a Merchant Profile or link an existing one.
  • Please enter your company and business information.

2. Register your domain:

  • In the Google Pay console, go to the “Domains” tab
  • Add your production and test domains (e.g., example.com)
  • Google will ask you to upload a verification file there to confirm your ownership
⚠️ Google Pay provides a domain-specific merchantId.
This merchantId is required for all Google Pay Payment Requests.
Using a merchantId that is not associated with the domain results in a Google Pay error (Error 11).

3. Implement your Google Pay front-end integration:

  • Implement Google Pay on the front end using Google Pay JS (for websites) or Google Pay Android API (for mobile apps)
  • Collect the Google Pay token (tokenizationData.token) after the user has authorized the payment (PIN, fingerprint, facial recognition, etc.).
ℹ️ Google offers an official tutorial for this integration: Google Pay API | Google for Developers

4. Retrieve your CentralPay login credentials:

  • MerchantPublicKey: Log in to your CentralPay Back Office portal → Administration → Technical → Merchant Public Key
  • API Login: Log in to your CentralPay Back Office portal → Administration → Technical → API ID and copy the ID
  • API Pass: Log in to your CentralPay Back Office portal → Administration → Technical → Click on your API ID → Edit → Generate, copy your API pass, and update it

Step 1: Configuring Google Pay on the front end

ℹ️ The Google Pay button is provided by the official Google Pay SDK.
Payment initiation and token generation are entirely controlled by Google Pay (hosted button).

1. Specify the API version:

const baseRequest = {
  apiVersion: 2,
  apiVersionMinor: 0
};

2. Use CentralPay as a payment gateway:

Configure tokenization as follows:

const tokenizationSpecification = {
  type: 'PAYMENT_GATEWAY',
  parameters: {
    gateway: 'centralpay',
    gatewayMerchantId: 'YOUR_GATEWAY_MERCHANT_ID'
  }
};

Replace YOUR_GATEWAY_MERCHANT_ID with your MerchantPublicKey provided by CentralPay.

3. Specify the types of cards accepted:

const allowedCardNetworks = ["AMEX", "MASTERCARD", "VISA"];

4. Select the payment method:

There are two different types: PAN_ONLY and CRYPTOGRAM_3DS

⚠️​CentralPay does not allow the use of the PAN_ONLY type because it requires compliance with specific security standards. Only the CRYPTOGRAM_3DS type is allowed.

const allowedCardAuthMethods = ["CRYPTOGRAM_3DS"];

5. Test or production environment:

// Environnement de test
const paymentsClient = new google.payments.api.PaymentsClient({ environment: 'TEST' });

// Environnement de production
const paymentsClient = new google.payments.api.PaymentsClient({ environment: 'PRODUCTION' });

Step 2: Retrieving the Google Pay token

When an end user authorizes a payment via Google Pay, the API returns a token in JSON format in:

paymentData.paymentMethodData.tokenizationData.token

This field contains a JSON string representing an object of the following type:

{
  "signature": "MEYCIQDn...",
  "protocolVersion": "ECv2",
  "intermediateSigningKey": {
    "signedKey": "{...}",
    "signatures": ["MEUCID..."]
  },
  "signedMessage": "{...}"
}

This block must be sent as-is to the CentralPay API when creating the cardToken in the googlePayToken field.

Step 3: Sending the token to CentralPay (creating the cardToken)

Make a POST request to CentralPay’s /cardToken endpoint with the following parameters:

Required parameters:

FieldDescription
amountAmount in centimes (e.g., 2,500 for €25.00)
currencyISO alpha code (e.g., EUR, USD, etc.)
googlePayTokenThe complete JSON returned by Google Pay (tokenizationData.token)
merchantPublicKeyCentralPay public key available in the back office

Example request (x-www-form-urlencoded format):

amount=2500
currency=EUR
merchantPublicKey=abcdef123456...
googlePayToken={"signature":"MEYCIQDn...","protocolVersion":"ECv2",...}

Do not decrypt the token yourself: CentralPay handles its validation on the server side.

Step 4: Creating the transaction

Once you have obtained the cardToken, you can initiate a transaction in the standard way via endpoint POST /transaction.

Example settings:

cardToken=...
amount=2500
currency=EUR
pointOfSaleId=...
endUserIp=...
merchantTransactionId=...

The cardToken already contains all the authentication information: there is no need to add a cryptogram or a CVV field.

Step 5: Testing before deployment

The CentralPay test environment allows you to validate your entire Google Pay integration without triggering actual payments. We strongly recommend using this environment for all phases of development, debugging, and validation, both on the front end and the back end.

Test portal
Test API
Test cards

Differences between the test and production environments:

  • The API URLs are different: they use the “test-” prefix
    • Test: https://test-api.centralpay.net/v2/rest/transaction
    • Deployment: https://api.centralpay.net/v2/rest/transaction
  • The API credentials (login + secret) are specific to the test environment.
    They are not interchangeable with those used in production.
  • The CentralPay public key (merchantPublicKey) is also environment-specific

Card Refund Transaction

1. Refund – refund

You can refund a Transaction if it is CLEARED via the Refund service or from the Transaction details in the Merchant Portal. You can initiate a full or partial refund by entering an amount.

Your customer will receive the funds on their card within 3 to 5 business days after the operation. Your payment account is debited immediately, so it must be solvent to perform the operation.

You cannot cancel a refund once it has been processed.

⚠️ If the card to which you are attempting to issue the refund has expired or the account has been closed, CentralPay will not be able to process the refund. In this case, we invite you to contact your customer to request up-to-date bank details and proceed with a SEPA transfer from your bank. 

2. Credit – credit

You can credit a customer’s card without an initial transaction from the Credit service. There are several ways to do this:

  • Tokenize a card via the cardToken service and then enter it into the Credit service
  • Create or search for a Customer with a valid card, then enter their « customerId » and « cardId » into the Credit service
ℹ️ This service is only available for specific activities; contact CentralPay for more information.

3. Chargeback – Dispute

When a cardholder disputes or reports a transaction to their bank, the network (Visa, Mastercard, Carte Bancaire, etc.) may notify CentralPay to initiate a dispute operation (Dispute).
This operation allows you to track the status of the dispute and act according to the type of signal received: fraud alert, information request, or chargeback.

Each dispute is represented in the CentralPay back office by a distinct operation (Dispute), linked to the original transaction. Notifications are also available via the webhook DISPUTE_CREATED.

For any card payment, a customer can dispute a transaction with their bank within the following timeframes:

  • 120 days from the transaction for Visa and Mastercard networks;
  • 13 months from the operation date for the French Carte Bancaire network.
ℹ️ In France, disputes are generally reserved for cases of fraud (stolen, usurped, or misused card).
In other European countries, they can also be used in the context of a commercial dispute (product not delivered, non-compliant service, etc.).

1. Fraud Alert FRAUD_NOTICED

This status corresponds to a preventive fraud notification transmitted by the network (e.g., TC40 file for Visa).
It is triggered when the issuing bank reports that a cardholder claims not to have originated the transaction (stolen, copied, or usurped card).

➡️ No refund is initiated at this stage.
➡️ This signal allows you to anticipate a potential chargeback and strengthen your anti-fraud controls.

Best practices:

  • Identify the transaction concerned (amount, country, card, date).
  • Check for similar transactions (same card, same account, same IP).
  • Blacklist the card or account to prevent new attempts.
  • Retain proof of authenticity (logs, proof of delivery, consent).
  • Do not contact the cardholder directly (the signal comes from their bank).

2. Information Request RETRIEVAL_NOTICED

This status corresponds to a documentary request issued by the cardholder’s bank.
It occurs when a customer does not recognize a transaction, without mentioning fraud.

The issuing bank then asks CentralPay to request the merchant to provide evidence (invoice, receipt, proof of delivery, etc.).

➡️ A response is expected within 7 days.
➡️ If the elements are accepted, the dispute is closed (RETRIEVAL_CLOSE).
➡️ If no response is submitted, the cardholder’s bank may trigger a chargeback.

3. Official Chargeback CHARGEBACK_NOTICED

A chargeback corresponds to a formal refund request initiated by the issuing bank.
It may result from:

  • confirmed fraud (following an FRAUD_NOTICED);
  • an unresolved dispute (following an RETRIEVAL_NOTICED);
  • or another reason recognized by the networks (product not received, incorrect amount, non-compliant service, etc.).

When a chargeback is issued:

  • The transaction amount is debited from your payment account to refund the cardholder.
  • Non-refundable fees apply for each dispute received, even if the outcome is favorable.
  • You have 20 calendar days to respond to the dispute by providing supporting documents:
    • Proof of delivery or service execution,
    • Proof of cardholder consent (mandatory for non-3D Secure transactions),
    • Other documents demonstrating the legitimacy of the payment.

Failure to respond within the allotted time will result in the dispute being automatically lost.

Once your response is submitted, the issuing bank analyzes the provided elements:

StatusDescription
CHARGEBACK_WONThe evidence was deemed sufficient. The transaction amount is re-credited to you.
CHARGEBACK_LOSTThe dispute is maintained. The refund to the cardholder becomes final.

Confirmation email

When a card transaction has been successfully completed, CentralPay can send a payment confirmation email to your customer. To do this, you must enable it by configuring the confirmation email settings in your Point of Sale.

This email is sent by default to the email address of the Customer associated with the transaction, but you can enter the receiptEmail value of the transaction if you wish to send it to a different address.

Configuration

The confirmation email has a standardized format displaying the various payment details; however, you can configure several parameters from the Merchant Portal.

  1. Sender email address: Configuration from the Point of Sale
  2. Sender name: Configuration from the Point of Sale
  3. Your logo: Configuration from the Point of Sale
  4. Point of Sale name: Configuration from the Point of Sale
  5. Footer text: Configuration from the Configuration Payment confirmation email Create entry
  6. Display language: Enter the « endUserLanguage » value in the Transaction request (English by default)

Bank statement descriptor

The bank statement descriptor is the description that will be displayed on your customers’ bank account statements for each of your card transactions.

When a CentralPay Merchant profile is created, a bank statement descriptor is defined automatically using the name of your first Point of Sale: CPAY*PointOfSaleName

You can request CentralPay to modify your descriptor; however, it must allow your customers to clearly identify you or access your complaint site.

Currency management

In the context of international business, your customers may have a card linked to a bank account in a non-Euro currency.

Regardless of your integration, these customers will be able to pay you in Euros thanks to the automatic conversion system of the card networks (Visa, Mastercard, American Express). Your customers will bear all currency conversion costs, and you will receive Euros in your CentralPay payment account.

In certain cases, CentralPay can allow you to process credit card transactions in different currencies: Euros (EUR), Dollars (USD), Swiss Francs (CHF), and Pounds (GBP). Contact CentralPay if multi-currency transaction management is a requirement for your business.

Note that in this case, acquisition costs in foreign currencies (non-EURO) are subject to additional fees and will be deducted from your transaction amounts.

ℹ️ Outgoing payments (payout) via SEPA transfer can only be made from available balances in EUROS. Non-EURO balances are paid out via SWIFT transfer, which incurs higher fees. However, it is possible to schedule SWIFT payouts so that they are only executed once a certain threshold is reached, in order to better control transfer costs.  

Virtual Card Management (VCC)

1. Operation

Major OTAs such as Booking.com, Expedia.com, hotels.com, and Agoda.com can collect payments at the time of booking. In such cases, they provide hoteliers not with the guest’s actual card information, but with an alias, a virtual card or VCC.

A virtual card, or VCC, is generally issued for restricted use in order to limit the risk of compromise. A virtual card is, in a sense, an alias for an existing card that can only be used starting on a specific date and from a defined MCC. In this case, in the tourism sector, a contract with MCC 7011 (HOTELS) is required in order to charge the card.

Thus, even if the card number fell into the hands of a malicious individual, that person would not be able to initiate a charge on the source card. Given the unique nature of the cards issued by these OTAs, it is generally impossible to perform authorization, pre-authorization, or verification requests at the time of the order.

If the card can only be charged on the day of the reservation, for example, by an MCC 7011, the issuer, typically MASTERCARD B2B PRODUCT, will return an error code for an invalid transaction (12).

➡️ Booking.com Virtual Cards
Booking.com uses virtual cards for certain destinations. Depending on the settings configured on the hotel’s website, a reservation may be made with or without a credit card authorization. If the hotelier has chosen to require a payment method, Booking.com will generate a virtual card and send it to the hotelier or their technical service provider. Following the COVID-19 crisis, Booking.com no longer authorizes charges to its virtual credit cards until one day after the guest checks in.

Learn more about how Booking.com virtual cards work ➝
➡️ Expedia.com Virtual Cards
At Expedia, visitors can choose between paying at the hotel (Hotel Collect) or paying directly when they make their reservation (Expedia Collect). This option is called Expedia Traveler Preference (ETP). If a customer uses the Expedia Collect method, a virtual card will be generated.

Learn more about how Expedia.com virtual cards work ➝

2. Managing Virtual Cards with CentralPay

The best way to store a VCC and be able to use it once it becomes available is to create a “Customer” and link the card to that customer.

There are two options available:

  • Either the card is chargeable at the time of creation, and a verification request can be made when the customer is created,
  • Either the card cannot be used when the customer is created, and the card must be added without verification. This does not mean that it cannot be used later on. It simply means that it should not be charged until a certain date. Generally, OTAs will have verified the card information beforehand to ensure that it is valid for charging.

Thus, creating a Customer in the CentralPay API allows you to tokenize the virtual card, secure its storage, and facilitate its use once the initial acceptance criteria have been met.

Callbacks, statuses and hooks

1. Bank Return Codes for Card Transactions

When a card transaction (Transaction) is initiated, an authorization request is submitted to the card-issuing bank. It responds with a code, allowing for the interpretation of the authorization’s acceptance, refusal, and the reason for refusal.

The cardholder’s bank (also called the « issuing bank ») expresses its refusal based on its own choices, which are entirely independent of CentralPay. CentralPay possesses no additional information if a card is declined and has no means of obtaining it.

Main bank return codes:

CodeDescription
A1 – VADS FallbackPSD2 and Soft decline
The bank declines the transaction because it does not have strong authentication (3DS 2.0).
It is necessary to re-process this transaction with 3DS to avoid this code.
57, 3 and 5Generic Bank Refusal
The bank declines without providing a specific status.
This could be an incorrect CVV code or another decision unknown to us.
This status does not confirm that the bank will not accept the authorization after further attempts.
4, 7, 14, 15, 31, 33, 34, 41, 43, 54, 55, 56, 59, 63, 76Suspicion of Fraud or Card Theft
The issuing bank believes its customer is no longer in possession of the card and that it is a case of identity theft.
51, 61Insufficient Funds / Limit Reached
The card has exceeded the authorized limit amount or does not have sufficient funds.
The card may be accepted again later, as limits are calculated on a 7-day rolling basis, so a transaction can certainly be retried the next day.
12Invalid Transaction
The bank declines without providing a specific status. This could be:
– Simply an invalid transaction
– A code 75 from the issuing bank (the card’s PIN code was entered incorrectly too many times).
– An incorrect CVV (provided by the ACS during 3DS authentication)
– Or another decision unknown to us.

Consult the complete list of bank return codes ➝

2. Card Transaction Statuses

Consult Transaction Statuses ➝

Consult Refund Statuses ➝

Consult Credit Statuses ➝

Consult Dispute Statuses ➝

Consult Subscription Statuses ➝

Consult Installment Statuses ➝

3. Webhooks for Card Transactions

Consult Transaction Webhooks ➝

Consult Card Webhooks ➝

Consult Refund Webhooks ➝

Consult Credit Webhooks ➝

Consult Customer Webhooks ➝

Consult Dispute Webhooks ➝

Consult Subscription Webhooks ➝

Consult Installment Statuses ➝

Bank Transfer Transaction

General information

1. Operation

Bank transfers are the most common method of payment for business transactions. They involve the direct transfer of funds from one account (bank or payment account) to another, without using any additional medium, such as a card.

The individual or legal entity requesting the transfer is called the payer (or sender), and the one receiving the money is the payee. Unlike a card payment or a SEPA direct debit, only the sender themselves can initiate a wire transfer. To do so, they log in to their bank’s online banking portal, enter the beneficiary’s bank details (IBAN + BIC + account holder’s name), and then specify an amount and a transfer reference.

Some important information:

  • The processing time for a standard transfer with CentralPay is 4 to 24 business hours (compared to 24 to 48 business hours at most traditional banks). Starting in October 2024, it will also be possible to receive instant transfers (processed in <5 seconds).
  • The transfer does not pose a significant financial risk to the receiving merchant, since the sender undergoes strong authentication with their bank and therefore cannot dispute the transaction
  • Issuing banks set a settlement limit for wire transfers that is significantly higher than the limit applied to SEPA direct debit transactions or card payments
  • Depending on the features offered by their bank, the sender can set up a recurring transfer or a deferred transfer

2. Accepted Network Types

There are two types of bank transfers:

  • SEPA transfers (or SEPA Credit Transfers): Used for transactions in euros between two member countries of the SEPA area (= 27 European Union countries + the United Kingdom, Monaco, Andorra, the Vatican, Switzerland, Liechtenstein, Norway, Iceland, and San Marino)
  • International wire transfers: Used for international transactions in euros or other currencies via the SWIFT network

The fees for SEPA networks are very favorable (just a few tenths of a cent, compared to several tens of euros for SWIFT). SWIFT, however, offers several options for paying these fees: they can be borne by the sender, the recipient, or shared between the two.

CentralPay is accessible to all banks in the European Economic Area that use the SEPA networks (via STEP2 for SCT/SDD, as well as TIPS and RT1 for “Instant SCT”). Only transfers made through international networks or in currencies other than the euro are not currently accepted (via the SWIFT network, for example).

Virtual IBANs

Payment by bank transfer requires the customer making the payment to provide the bank details (IBAN + BIC + account holder’s name), the payment amount, and the transfer reference.

If the reference number is missing or formatted incorrectly (whether due to the customer or the customer’s bank’s system), the payee must manually review the received transfer to match it to the correct invoice and customer account.

CentralPay allows you to provide a different virtual IBAN to each of your customers (Customer) or on each of your invoices (PaymentRequest). Thus, when a transfer is received, CentralPay automatically identifies the sender and can reconcile the invoice for you based on the virtual IBAN used by your customer, even if there is an error in the reference number.

A virtual IBAN is identical in every way to a standard IBAN, which makes the process completely transparent for your customers.

With this service, you will be able to:

  • To be notified instantly when a customer has paid you via bank transfer
  • Automate your internal alerts and customer follow-ups (via the notification service)
  • To automate the reconciliation of your payments in your accounting or billing solutions (ERP, etc.)
  • For platforms and marketplaces: to easily identify the merchant receiving the payment and transfer the funds to them

You can create CentralPay Virtual IBANs from various services on the platform:

  • From the Customer service department
  • From the SCT Transaction department
  • From the PaymentRequest department
ℹ️ Each payment or e-money account comes with its own dedicated virtual IBAN by default

1. Check the virtual IBAN for your accounts

You can find the virtual IBAN for your accounts in the Merchant Portal Administration Accounts IBAN/BIC:

It is also possible to query the CentralPay API using the /bankAccount endpoint

Access:

Recette Merchant Portal – Accounts
Production Merchant Portal – Accounts

2. Create a Virtual IBAN for a specific customer

You can create a virtual IBAN for a specific customer when creating a new Customer or when updating an existing customer.

To do this, you must enter the UUID of the payment account into the “walletIdForIban” field—the account into which you want to receive the funds.

You can find it under Merchant Portal Administration Accounts UUID:

Access:

Recette Merchant Portal – Accounts
Production Merchant Portal – Accounts

In return, you will receive the “iban” and “bic” values in field bankAccounts, which make up your Customer‘s virtual IBAN.

ℹ️ The BIC for IBANs issued by CentralPay is CEAYFR22

3. Creation of a Virtual IBAN Dedicated to an SCT Transaction

Just as with a customer, you can create a virtual IBAN specific to a bank transfer transaction when creating an SCT transaction.

ℹ️ As a reminder, CentralPay automatically creates an SCT transaction when you receive a transfer to your primary virtual IBAN or a customer’s virtual IBAN. However, you can create an SCT transaction in advance to assign it a dedicated virtual IBAN and a custom reference, for example. 

To do this, you must enter the UUID of the payment account into the “ibanWalletId” field, the account into which you want to receive the funds.

You can find it under Merchant Portal Administration Accounts UUID:

Access:

Recette Merchant Portal – Accounts
Production Merchant Portal – Accounts

In return, you will receive the “iban” and “bic” values in field bankAccounts, which make up the Virtual IBAN for your SCT Transaction.

ℹ️ A virtual IBAN assigned to an SCT transaction is no longer valid once the SCT transaction has been paid in full. However, it is possible to receive multiple smaller transfers to the same IBAN to make up the full amount of the SCT transaction. 

Please note that if a received transfer exceeds the amount of the SCT Transaction, it will still be accepted. You will need to issue a partial refund to return the overpayment to your customer.

4. Using Virtual IBANs in Payment Requests

You can use Customer Virtual IBANs or SCT Transactions through the payment request service if you accept the “SCT Transaction” payment method.

You can select the type of Virtual IBAN you want to display in your payment requests from the “Priority Viban” field in your point-of-sale settings. If you select:

  • SCT: The payment request will automatically generate a virtual IBAN specific to the SCT transaction
  • Client: The payment request will use the customer’s virtual IBAN if they already have one; otherwise, it will automatically generate one.
ℹ️ For payment requests using a vIBAN submitted exclusively via SCT Transaction: If you cancel the payment request, the associated vIBAN will no longer be accessible. As a result, any transfer received at that vIBAN will be automatically returned to the sender. 

Bank Transfer Transaction

1. Operation

An SCT Transaction is a bank transfer received at one of your CentralPay Virtual IBANs.

It can be created in three different ways:

  • Automatically
    If you provide a dedicated Virtual IBAN for one of your customers or one of your payment accounts, CentralPay will automatically create the SCT Transaction upon receipt of the transfer. You can then reconcile this SCT Transaction with your order/invoice by retrieving the value from the “description” field (which corresponds to the reference your customer entered in their online banking portal).
  • From the SCT Transaction service
    If you want to automate the reconciliation of the wire transfer with the transaction, you can:
    • Create an SCT transaction with a dedicated virtual IBAN: this will ensure 100% accurate reconciliation of your transaction. Please note that in this case, your customers will need to add a new payee in their online banking portal for each transfer they send to you.
    • Create an SCT transaction using a Virtual Customer IBAN and retrieve the short reference generated by CentralPay for this transaction: this will allow you to automatically reconcile the transfer with the corresponding customer profile, and potentially track it down to the specific transaction if your customer has correctly entered the reference in their transfer
  • From the Payment Request Service
    If you would like to have CentralPay display payment information to your customers (amount, IBAN, BIC, reference, etc.), you can create a Payment Request that authorizes payments via SCT Transaction. This option also makes it easy to manage multiple transfers or customer payments made through various payment methods

2. Create a transaction SCT

Create an SCT Transaction:

  • Enter an amount in cents (amount) and a currency (currency)
  • If you want to create a Virtual IBAN specifically for the SCT Transaction, enter the UUID of the payment account where you want to receive the funds in the “ibanWalletId” field. You can find this UUID in the Merchant Portal Administration Accounts UUID
  • If you want to use an existing Virtual IBAN (assigned to a customer or a payment account), enter the desired IBAN in the “iban” field
    • You can then retrieve the “sepaReference” value generated by CentralPay and provide it to your customer so that CentralPay can match the transfer to your transaction
    • Or enter your own custom reference in the “merchantSctTransactionId” field to reconcile the transfer yourself using our transaction exports

Pay by Bank - Payment Initiation (PIS)

1. Operation

The Payment Initiation Service (PIS) allows your customers to make a bank transfer directly from their online banking environment, without having to manually enter the recipient’s details. This feature is based on the Open Banking protocol and complies with PSD2.

At CentralPay, this service is offered under the name “Pay by Bank” and is currently available only through the hosted payment form (SmartForm) when using the PaymentRequest service.

ℹ️ This service is available only through the Smart Form (PaymentRequest). It is not yet possible to use this payment method as the sole option; it is always offered in addition to the traditional bank transfer payment service. The payment experience depends on the interfaces provided by the paying customer’s bank.  

2. Service activation

Payment initiation is not enabled by default. To use this feature, you must submit a request to the CentralPay support team.

3. Use via PaymentRequest

To allow your customers to initiate a transfer directly from the payment form, you must:

  1. Create a PaymentRequest following the usual procedure.
  2. Include the following payment method in the `payment_methods` property:
    • PIS Standard `“payment_methods”`: [“SCT_TRANSACTION_PIS”]
    • PIS IP `“payment_methods”`: [“SCT_TRANSACTION_PIS_IP”]

When this payment method is available, the Smart Form will offer the user a choice between:

  • Standard bank transfer (bank account information displayed for you to copy)
  • Initiating a payment through one’s banking system (Pay by Bank)
ℹ️ At this stage, it is not possible to require the exclusive use of the payment initiation feature. The form will always display the option to enter standard bank account information. 

4. User journey

  1. The user selects “Pay by Bank” on the form. The user selects “Pay by Bank” on the form.
  2. He selects his bank from the list provided
  3. He is redirected to his bank’s website to confirm the transfer
  4. Once the payment is initiated, the user is redirected to your return page

5. Monitoring and status reports

Once the PaymentRequest has been created, the status of the transfer is available via the API, just as with any other payment:

  • The payment_method field will be set to SCT_TRANSACTION
  • The “status” field will indicate the progress of the payment initiation (for example, PENDING, SUCCEEDED, FAILED)
ℹ️ As with traditional transfers, the completion of the payment depends on the customer’s bank actually processing the transfer. The customer can choose between a standard transfer (D+1) and an immediate transfer. 

6. List of available banks by country

ℹ️ In the staging environment, a bank named “Test Connector” is displayed to allow you to test the end-to-end flow. Please note: The maximum amount allowed on this test connector is €20. 

French banks:

InstitutionStandardSnapshot
Allianz Bank✅ Available🚫 Not available
Arkéa Banking Services✅ Available🚫 Not available
Arkéa Bank for Businesses and Institutions✅ Available✅ Available
Arkéa Private Bank✅ Available✅ Available
AXA Bank✅ Available✅ Available
BCP Bank✅ Available✅ Available
Chalus Bank✅ Available✅ Available
Bank of Savoy✅ Available✅ Available
Bank of Territoires✅ Available🚫 Not available
Crédit Mutuel European Bank✅ Available✅ Available
Banque Populaire✅ Available✅ Available
Transatlantic Bank✅ Available✅ Available
BBVA (Not activated)🚫 Not available🚫 Not available
BforBank✅ Available🚫 Not available
BNP Paribas✅ Available✅ Available
BNP Paribas Business✅ Available🚫 Not available
BNP Paribas New Caledonia (Not activated)🚫 Not available🚫 Not available
BoursoBank✅ Available✅ Available
BRED✅ Available✅ Available
BTP Bank✅ Available✅ Available
Caisse d’Épargne – Personal Banking✅ Available✅ Available
Caisse d’Épargne for Professionals✅ Available✅ Available
CCMDirect (Not activated)🚫 Not available🚫 Not available
CIC✅ Available✅ Available
CIC Private Bank✅ Available✅ Available
Crédit Agricole✅ Available✅ Available
Crédit Coopératif✅ Available✅ Available
Crédit Maritime✅ Available✅ Available
Crédit Mutuel✅ Available✅ Available
Crédit Mutuel of Bretagne✅ Available✅ Available
Crédit Mutuel of Southwest✅ Available✅ Available
Fortuneo✅ Available✅ Available
Hello bank!✅ Available✅ Available
ING Wholesale Banking✅ Available🚫 Not available
La Banque Postale✅ Available✅ Available
LCL✅ Available✅ Available
Louvre Private Bank✅ Available✅ Available
Manager.one✅ Available🚫 Not available
Memo Bank✅ Available✅ Available
Monabanq✅ Available✅ Available
N26✅ Available✅ Available
Nef Pro✅ Available🚫 Not available
Neuflize OBC (Non activé)🚫 Not available🚫 Not available
Palatine✅ Available✅ Available
Qonto✅ Available🚫 Not available
Revolut✅ Available🚫 Not available
Société Générale✅ Available✅ Available

Reconciliation of a payment request

CentralPay offers a service called bankReconciliation that allows you to link one or more SCT transactions to a payment request (PaymentRequest) if you are not using the virtual IBANs designated for SCT transactions.

1. In the event of a reference error on the part of your client

When you use payment requests with virtual IBANs assigned to a specific customer, and your customer does not enter the “sepaReference” correctly when making the transfer, CentralPay is unable to automatically match the transfer to the payment request.

You can therefore use the bankReconciliation service to map the received SCT Transaction to the payment request that was originally created:

  • amount = transfer amount in centimes
  • wireTransferID = SCT TRANSACTION ID (available in the SCT TRANSACTION hook)
  • paymentRequestBreakdownId = PaymentRequest breakdown ID (available in the PaymentRequest hook)

2. If you are using your own order reference

If you want to manage your accounts receivable in CentralPay using the Payment Requests service without using the Smart Form payment page, follow these steps:

  • For each customer: Create a Customer record with a vIBAN, retrieve the vIBAN, and display it in your sales funnel along with your order reference
  • At the same time, create a paymentRequest containing the same order ID (in the “merchantPaymentRequestId” field) and the order amount
  • As soon as you receive a customer transfer, you can identify the associated order using the “description” field in the SCT Transaction.
  • Vous recherchez ensuite une PaymentRequest avec la même référence dans « merchantPaymentRequestId »
    • If a PaymentRequest has the same reference, you associate it with the “bankReconciliation” service
    • If no PaymentRequest has the same reference number, but the transfer was received to a vIBAN Customer that has only one pending PaymentRequest or one with an identical amount, you can reconcile them using a bankReconciliation.
    • If no PaymentRequest has the same reference number and the Customer has multiple PaymentRequests pending settlement or for different amounts, trigger an alert in your system so that your finance department can manually reconcile the transfer (by manually linking it to the correct PaymentRequest via a bankReconciliation).
  • Transfers not associated with a PaymentRequest will thus be easily identifiable
  • As well as unpaid or partially paid PaymentRequests

SCT R-transaction

You can issue a refund for an SCT Transaction if it has been RECEIVED via the Refund service or from the SCT Transaction details in the Merchant Portal. You can initiate a full or partial refund by entering an amount.

Your customer will receive the funds in their bank account within 24 to 48 business hours after the transaction. Your payment account is debited immediately, so it must have sufficient funds to complete the transaction.

You cannot cancel a refund once it has been processed.

International wire transfers

International bank transfers are processed through the SWIFT network (unlike the SEPA network for European transfers). These transfers can be initiated from a wide range of countries in euros or other currencies.

It will soon be possible to accept international wire transfers through the SCT Transaction service. Please contact CentralPay if this service is important to the growth of your business.

Responses, statuses, and 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 ➝

SEPA direct debit transaction

General information

The SEPA Direct Debit (or “SDD”) allows a creditor (merchant) to collect an amount owed directly from the debtor’s (customer’s) account. It is primarily intended for recurring payments (subscriptions or installment payments) but may, in certain cases, be used for one-time payments (for example, to settle invoices between businesses).

Since it is issued at the creditor’s initiative, it requires prior authorization from the debtor. The merchant therefore prepares a “SEPA Direct Debit Mandate” specifying the terms of the direct debit and the bank details of both parties, which the debtor must sign.

1. The two types of SEPA direct debits

There are two types of SEPA direct debits:

  • The SEPA “CORE” direct debit: the most widely used type, it allows creditors to debit the accounts of both individuals and legal entities. The SEPA direct debit mandate is drawn up and signed by both parties without any specific restrictions. However, the debtor is protected and may dispute a CORE direct debit with their bank within 8 weeks without providing a reason.
  • The SEPA “B2B” direct debit: reserved for direct debits between businesses. The SEPA direct debit mandate is printed, signed, and then must be submitted by the debtor to their bank. The onboarding process thus requires significant action on the part of the debtor and validation by their bank. However, direct debits initiated using this type of mandate cannot be disputed.
    CentralPay does not offer this “B2B” SEPA direct debit service

2. Risks of rejections and contests

Since the SEPA Direct Debit is a payment method in which transactions are initiated without strong customer authentication, the risks of rejections and disputes must be taken into account.

👉 See the “R-Transaction SDD” section to learn more about SDD rejections and disputes

3. Important information

  • The SEPA Direct Debit can be used with the vast majority of “checking” accounts in SEPA countries and some in the European Economic Area outside the SEPA zone. This depends on the connectivity of the payees’ banks to the SEPA networks. Special accounts, such as “savings accounts,” are not accessible.
  • SEPA transactions are processed in euros (€) only
  • SEPA transactions are processed on business days only (excluding weekends and holidays). As a result, the time it takes for funds to be received ranges from 2 to 5 days from the date the transaction is initiated.
  • The creditor must notify the debtor of upcoming debits at least 14 days in advance, either by sending a payment schedule, a notice, or an invoice
  • A SEPA direct debit mandate is valid for 36 months after the last transaction processed under that mandate
  • In the case of a SEPA direct debit from a business’s (legal entity’s) bank account, the creditor must ensure that the SEPA direct debit mandate is addressed to and signed by the executive or an authorized representative (manager, accounting department, etc.).
  • The SEPA Direct Debit is particularly well-suited for recurring transactions ranging from 20 to 200 EUR for individual payers and from 20 to 2,000 EUR for corporate payers

SEPA Creditor ID

The SEPA Creditor Identifier (ICS) is a unique reference number that identifies each direct debit issuer. In France, it consists of 13 alphanumeric characters, the first two of which represent the ISO country code (FR for France).

Having an ICS is a mandatory requirement for making direct debits. The creditor must apply to their bank for an ICS. The creditor then retains their ICS, even if they switch banks.

Please provide your ICS to CentralPay when you first sign up so that our teams can enter it into your account.

Bank account statement

To process a SEPA direct debit transaction, you must first create your customer’s (the payer’s) profile and enter their bank account information on the CentralPay platform.

1. Create a “Customer” client profile

  • Collect your customer’s information (email, last name, first name, etc.)
  • Create a Customer client profile
  • Retrieve property customerId from the Customer creation response

2. Create a « bankAccount » bank account

  • Collect your customer’s bank account information (IBAN, BIC, account holder’s name, etc.)
  • Create a bankAccount by entering your client’s customerId
  • Retrieve bankAccountId and identityId from the creation response bankAccount

Creating a SEPA direct debit mandate

After registering the customer’s bank account bankAccount and linking it to their “Customer” profile, you can create a SEPA mandate “mandate” and collect your customer’s electronic signature using a one-time password (OTP) sent via text message.

Prerequisite: You must retrieve the creditorBankAccountId from your CentralPay Merchant Profile that corresponds to your ICS. You can find it in your Merchant Portal by using a profile with Admin privileges: Administration My Merchant Profile Bank accounts

Locate the row containing your ICS in the “IBAN” column, then copy the associated UUID.

1. Creating and signing a new SEPA mandate

1.1. Create a SEPA direct debit:

  • Create a « Mandate »
    • Enter your « creditorBankAccountId »
    • Enter your customer’s « CustomerId »
    • Enter your Unique Mandate Reference (RUM)
    • Specify the type of payment you want to create in the “paymentType” property
    • Enter your customer’s phone number in the “debtorPhone” property
    • Enter your customer’s email address in the “debtorEmail” property
    • Specify your customer’s bank account by entering their “bankAccountId” in the “debtorBankAccountId” property.

  • Once the SEPA direct debit has been set up:
    • Un « mandateId » sera généré
    • The mandate status will be PENDING
    • A 6-digit code (OTP) will be sent to your customer via text message (valid for 15 minutes). You can have the OTP resent.

1.2. Sign a SEPA direct debit authorization:

  • Sign the « Mandate »
    • Collect the 6-digit code from your customer and enter it in the “otp” property
    • Enter the “mandateId” generated when the mandate was created
    • Enter your client’s IP address in the “endUserIp” property
    • The mandate status will then change to “ACTIVE,” and the SEPA mandate in PDF format will be emailed to the customer.

1.3. Flowchart for bank account registration and power of attorney creation

2. Declaration of an existing mandate (migration)

When migrating payment orders that were previously created with another payment service provider, you can disable the SMS OTP signature feature and the option to send SEPA payment orders via email. If this applies to you, please contact our team for more details about this process.

Requirements:

  • Direct debits must have been set up using your SEPA Creditor Identifier (ICS)
  • Power of attorney documents must have been created using your current legal entity
  • The payment orders must have been duly signed and accepted by your debtors
  • Accounts must still be active (less than 36 months since the last transaction)

3. Modifying an existing SEPA mandate

3.1. Possible changes that do not require a new mandate

Certain information may be updated without requiring the signing of a new SEPA direct debit mandate, provided that the debtor is properly notified:

  • Change in the creditor’s name (change in the legal structure of the entity making the deduction)
  • Change to the SEPA Creditor Identifier (ICS)
  • Change to the Unique Mandate Reference (RUM)
  • Change of account or IBAN for the payer within the same bank
  • Change of account/IBAN of the payer following a change of bank

Related endpoints:

  • Edit a Debit Account IBAN
    POST /bankAccount/{bankAccountId}
    Allows you to update the IBAN of a debit account linked to an existing SEPA mandate.
  • Modifying a RUM
    This operation is not possible via the CentralPay APIs. Modifying a RUM requires creating a new mandate (migration).
  • Change the Creditor’s Name
    If there is a change in the legal structure responsible for processing direct debits, a new CentralPay Merchant Profile (Merchant) must be created. Existing mandates will then need to be re-registered under this new profile through a migration process.

3.2. Changes that require a new mandate

The following changes require the creation of a new SEPA direct debit mandate, as they involve a new authorization from the payer:

  • Change of the debtor’s name
  • Change in the date of signing the mandate
  • Change in mandate type: transition from SDD Core to SDD B2B
    Note: This use case is not available in CentralPay services
  • Change in the sampling frequency: from one-time to recurring

3.3. Notification of changes

Notifications of changes must be submitted:

  • From the creditor to the debtor, for any changes initiated by the creditor (ICS, RUM, IBAN, etc.)
  • By the debtor to the creditor, with submission of supporting documentation (e.g., bank account information or identification) for changes to the IBAN or personal information

Direct Debit transaction

Once you have completed the steps to create and sign a mandate, you can create a SEPA Direct Debit transaction (SDD transaction). Each SDD transaction will be linked to the corresponding mandate.

To create SDD transactions, you have several options:

  1. Create individual SDD transactions: to process one or more SDD transactions via API completely on your own
  2. Create SDD transactions using “Subscription” templates: to process X transactions at a frequency defined by a subscription template (for example, €50 per month for 12 months).
  3. Create SDD transactions using the “Installment” payment service: to split a customer receivable into multiple transactions (example: €1,000 to be paid in 3 installments with a down payment of €500).

1. Individual SDD transactions

1.1. Create an “SDDTransaction”

  • Enter the SEPA mandate ID “mandateId”
  • Enter the transaction amount in centimes “amount”
  • Enter “EUR” in the “currency” property
  • Enter your unique transaction ID in the “endToEndIdentification” property
  • Enter the transaction description in the “remittanceInformation” field (this information will appear on your customers’ account statements)
  • Enter your client’s IP address in “endUserIp”
  • Enter your CentralPay point-of-sale ID in the “pointOfSaleId” field
  • Enter the desired transaction date in “requestedCollectionDate”

You can then repeat this process for each of your customer’s recurring payment due dates.

1.2. [Optional] Ask the customer to confirm via text message

  • For added security, you can set up a one-time password (OTP) to validate each SDDTransaction: an OTP will then be generated upon creation and sent to your customer via text message. An sddTransactionId will also be generated upon creation.
  • By default, SDDTransactions are validated automatically
  • This step is required only if you have configured OTP validation for the SDDTransaction
  • Get your client’s secret code from them
  • Send it to us, along with the sddTransactionId
  • As a result of this action, the SDDTransaction will be considered validated and will therefore be processed

2. SDD transactions from “subscription” templates

2.1. Creation

First, you must create a Customer that contains at least one Mandate.

Then, the subscription service (Subscription) will allow you to easily initiate a subscription payment based on a subscription template created in advance via the CentralPay API or the Merchant Portal.

2.2. Specific integration cases

  • If the first subscription payment must be for a higher amount than subsequent payments (e.g., sign-up fee), you can first initiate a one-time SDD transaction, then enter a start date (startingDate) in the Subscription object.
  • If you simply want to start a subscription on a specific date (e.g., the effective date of your contract), you can enter a start date (startingDate) in the Subscription object

3. SDD transaction with “Installment” payment plan

3.1. Creation

First, you must create a Customer that contains at least one Mandate.

Then, the installment payment service (Installment) will allow you to easily initiate an installment payment based on the information provided in your request.

SDD R-Transaction

1. SEPA Direct Debit refund

You can refund an SDD transaction if it has been CLEARED using the Refund service or from the SDD transaction details in the Merchant Portal. You can initiate a full or partial refund by entering an amount.

Your customer will receive the funds in their bank account within 24 to 48 business hours after the transaction. Your payment account is debited immediately, so it must have sufficient funds to complete the transaction.

You cannot cancel a refund once it has been processed.

2. SEPA Direct Debit rejections and contests

SEPA direct debit rejections and contests are issued by your customers’ banks. They are reflected in your CentralPay payment account as “SDD Transaction Reversal” operations.

A SEPA direct debit rejection is issued by the bank before the funds are made available to the creditor (within 2 to 5 days). Here are the main reasons for rejecting SEPA Core direct debits:

  • Insufficient funds: The debtor’s bank account does not have sufficient funds to complete the operation.
  • Account closed: The debtor’s bank account has been closed
  • Incorrect bank account information: The IBAN or BIC provided is incorrect, or the account is not denominated in euros.

A debtor may contest a SEPA direct debit up to 13 months after the transaction. This is the primary source of financial risk associated with this payment method. Here are the main reasons for contesting SEPA Core direct debits:

  • Transaction contested (within a maximum of 8 weeks): The SEPA direct debit is valid, but the customer contests the transaction with their bank for any reason. The transaction is fully refunded, and a contestation fee applies to the creditor. The deadline is 70 days for banks outside the European Union or the European Economic Area.
  • Dispute due to lack of authorization (within 13 months max): The SEPA direct debit is invalid (lack of authorization, incorrect signatory, etc.), and the customer disputes the transactions. The transactions are fully refunded, and dispute fees apply to the creditor.

For more information, see the complete list of SEPA direct debit rejection and contested payment codes.

Responses, statuses, and webhooks

1. Refunds related to SEPA direct debits

When an SDD (SEPA Direct Debit) transaction is rejected, your customer’s bank sends a rejection code that identifies the cause. It is important to distinguish between rejections (initiated by the bank, which are received quickly) and contests (initiated by the customer, which may be received several weeks or months after the transaction):

Disputes
MD06 Transaction disputed by the debtor (may be received up to 8 weeks after the transaction)
MD01 Dispute due to lack of mandate (may be received up to 13 months after the transaction)
SL01 Merchant ICS blacklisted by the customer via their bank
MS02Reason not provided (may include disputes or rejections)
Rejections
AM04 Insufficient provisions
Any other codeVarious technical rejections (account closed, frozen, unreachable IBAN, etc.)

👉 View the complete list of SDD rejection codes ➝

2. Statuses related to SEPA direct debits

Consult SDD Transaction statuses ➝

Consult Mandates statuses ➝

Consult bankAccount statuses ➝ (coming soon)

Consult Subscription statuses ➝

Consult Installment statuses ➝

3. Webhooks related to SEPA direct debits

Consult SDD Transaction Webhooks ➝

Consult Mandates Webhooks ➝

Consult bankAccount Webhooks ➝

Consult Customer Webhooks ➝

Consult Subscription Webhooks ➝

Consult Installment Webhooks ➝

Recurring payments

Subscription

The subscription service allows you to automatically process recurring transactions on your customer profiles based on a subscription template defined in advance via the CentralPay API or the Merchant Portal. You can then add due dates or modify the amounts on the fly using the Invoice & Invoice Item services.

This service allows you to generate either card transactions or SDD (SEPA Direct Debit) transactions.

Useful definitions for this section:

– SubscriptionModel :
subscription template (specifying the subscription amount and frequency)

– Subscription :
subscription appplied to a customer

– Invoice :
invoice, use this option if you need to change the amount within a subscription plan

– InvoiceItem :
line item or item included in the invoice. An invoice may contain multiple line items or items
ℹ️ The "Subscription" service is not the only way to process recurring transaction.
Visit the Recurring card transactions page or the Direct debit transactions page for details by payment method.

1. Create a subscription template (subscriptionModel)

Access:

Recette Merchent Portal – Subscription templates
Production Merchent Portal – Subscription templates

The subcriptionModel allows you to create different types of subscriptions based on the services you offer. For example, if you have two types of subscription plans available—one that includes the basic features of your service and the other that includes advanced features, you will need to create two models:

  • One for the “basic” subscription plan
  • One for the “advanced” subscription plan

Each “SubscriptionModel” has a unique ID. You will provide this ID in your API requests when you want to apply a subscription to a customer based on that model.

You can use the following attributes:

  • amount : amount to be entered in centimes
  • intervalUnit : DAY / WEEK / MONTH / YEAR (day / week / month / year)
  • intervalCount : the number of « intervalUnit » units between two due dates (e.g., if intervalUnit = DAY and intervalCount = 10, then there will be a transaction every 10 days)
  • iterationCount: number of installments (note that the first transaction is not included in this parameter; it is therefore added to this number)

Example:

  • amount = 3000
  • intervalUnit = DAY
  • intervalCount = 3
  • iterationCount = 3

This means your subscription template will be set up to bill your customer 30.00 EUR every 3 days for 4 billing cycles (for a total subscription period of 12 days).

2. Create a subscription (subscription)

To create a subscription, you must first create a Customer that contains at least:

  • A Card (if you wish to make card transactions)
  • Or a Mandate (if you wish to make card transactions via SEPA direct debit)

You can then create a Subscription:

  • Depending on your preferred payment method:
    • for card transactions : enter the customer profile ID « customerId »
    • for transactions via SEPA direct debit : enter the mandate SEPA direct debit ID « mandateId » an enter the desired transaction date in “requestedCollectionDate”
    • for transactions between CentralPay accounts : enter the sender’s account ID “walletId”
  • Enter the subscription template ID « subscriptionModelId
  • Enter your client’s IP address in “endUserIp”
  • Enter your CentralPay point-of-sale ID in the “pointOfSaleId” field

Please note that when a subscription is created, your customer automatically receives an email containing the details of their payment schedule. This email also includes a link to our Customer Portal, where they can view the status of their recurring payments, update their credit card or SEPA direct debit information, and cancel a subscription if necessary.

ℹ️ Customers can cancel their subscription at any time through the customer portal provided to them. Be sure to subscribe to the subscription cancellation webhooks. If your subscription includes a minimum commitment period, it is best to use the recurring payment method or ask CentralPay not to share the link to the customer portal.  

Automating retries in case of failure

If a payment fails to be debited, CentralPay will make additional debit attempts based on the settings defined in the Merchant Portal.

Access:

Recette Merchent Portal – Subscription settings
Production Merchent Portal – Subscription settings

Field behavior:

  • Transaction time: the time at which the direct debit payments will be processed by CentralPay
    • Selection of a value between 4 and 23
  • First failed invoice payment: What to do in the event of a first failed direct debit
    • Try again in 1, 3, 5, or 7 days = a new attempt to process the transaction on day+X after the initial transaction
    • Stop = the system will immediately perform the final action, without considering the subsequent actions.
  • Second failed invoice payment: What to do in the event of a second failed direct debit
    • Try again in 1, 3, 5 or 7 days = a new attempt to process the transaction on day+X after the previous attempt.
    • Stop = the system will immediately perform the final action, without considering the subsequent actions.
  • Third failed invoice payment: What to do in the event of a third failed direct debit
    • Try again in 1, 3, 5 or 7 days = a new attempt to process the transaction on day+X after the previous attempt.
    • Stop = the system will immediately perform the final action, without considering the subsequent actions.
  • Final action: What to do if the previous actions failed.
    • CANCELED = Subscription cancelation (changing the subscription status to CANCELED)
    • FAILURE = Subscription failure (subscription status changed to FAILURE)
    • UNPAID = Unpaid subscription (subscription status changed to FAILURE + SUBSCRIPTION_UNPAID hook sent)

4. Subscription cancellation functions

There are two ways to cancel a subscription via the API, the Merchant Portal, or the Customer Portal:

  • Cancel: the subscription is canceled immediately
  • Cancel at the end of the billing period: The subscription will be canceled at the end of the current billing period (so that the subscriber can continue to use your service during their last paid period). When using the API, you must fill in the “atPeriodEnd” field.
    • Note: During this time, you can reactivate your subscription using the “reactivate” feature in Subscriptions.
ℹ️ Subscriptions for which all payments have been made automatically change to CANCELED status.

5. Change the amount of a subscription payment

CentralPay creates an invoice for each billing cycle of a subscription, based on the associated subscription model (subscriptionModel).

You can take manual actions at any time to modify the billing dates (invoices) for a subscription. Below is a list of possible actions:

  • Modify the amount of an invoice installment: The invoiceItem service allows you to modify the amount of an invoice installment by entering a positive or negative amount that will be added to the original installment amount. The invoiceItem will be applied to the next subscription installment, whether it is created manually or automatically. You can also specify a particular installment in your request by providing an invoiceId.
  • Create an additional payment due date: so-called “recurring” payment due dates (invoices) are created automatically based on your subscription model. You can create additional one-time payment due dates for your subscription by creating an invoice.
  • Delete an unprocessed invoiceItem: if it is not yet linked to an invoice
  • Close an upcoming payment due date: if you do not want CentralPay to process a payment (and/or its automatic retry attempts), you can close it using the “close” feature on the invoice. If necessary, you can reopen this payment due date using the “reopen” feature on the invoice if it has not been paid or if there are still scheduled retry attempts remaining.
  • Forcing a payment due: transactions are processed automatically by the subscription service; however, you can initiate the transaction in advance or retry it manually using the “pay” feature on the invoice. These “manual” payments are not tracked by the automated retry system. This action can be performed on a closed invoice.

6. Complete guide to creating a subscription

Installment

Installment payments allows you to split the payment of an invoice into several installments. CentralPay then charges the customer’s card according to a payment schedule defined during the first transaction. It can be used to offer your customer a payment plan or to automate a “down payment/balance” type of payment.

Unlike subscriptions, a customer cannot cancel an installment payment from the customer portal.

CentralPay helps you collect payments owed by your customers through a system of automated retries in the event of a failed direct debit. However, CentralPay does not guarantee the collection of these amounts through credit or a receivables financing system.

ℹ️ The "Installment" is not the only way to process recurring transactions.
Visit the Recurring card transactions page or the Direct debit transactions page for details by payment method.

1. Create an installment payment

First, you must create a Customer that contains at least:

  • A Card (if you wish to make card transactions)
  • Or a Mandate (if you wish to make card transactions via SEPA direct debit)

Next, the Installment service will allow you to easily set up an installment payment based on the information provided in your request.

Then you can create an Installment:

  • Depending on your preferred payment method:
    • for card transactions : enter the customer profile ID « customerId »
    • for transactions via SEPA direct debit: enter the SEPA direct debit mandate ID « mandateId » and enter the desired transaction date in « requestedCollectionDate »
  • Enter the amount in centimes « amounts »
  • Enter the currency in ISO “currency” format
  • Enter your client’s IP address in “endUserIp”
  • Enter the installment settings « iterationCount », « IntervalCount » and « intervalUnit »

With this service, you can also:

  • d’imputer des frais supplémentaires à votre client (feeAmount) : pour la mise à disposition de cet étalement des paiements
  • to specify a deposit amount that will be deducted from the total amount (depositAmount). This deposit can also be set for a specific date (depositStartingDate)
  • to set a start date for the installment plan (startingDate): for example, if you want the down payment to be paid immediately and the first installments to be debited starting on a certain date

Please note that when a installment payment is created, your customer automatically receives an email containing the details of their payment schedule. This email also includes a link to our Customer Portal, where they can view the status of their recurring payments and update their credit card or SEPA direct debit information if necessary.

2. Example of installment payment

You want to bill your customer €1,000, divided into 3 monthly payments starting on July 5, 2024, with a down payment of €200 on June 28, 2024, and add an additional fee of €10:

  • amount =100000
  • depositAmount = 20000
  • feeAmount = 1000
  • currency = EUR
  • intervalUnit = MONTH
  • intervalCount = 1
  • iterationCount = 3
  • depositStartingDate = 2024-06-28
  • startingDate = 2024-07-05

The split plan will be as follows:

  • June 28, 2024 = €200.00 (deposit)
  • July 05, 2024 = €276,68 (first installment + rounding adjustments + additional fees)
  • August 05, 2024 = €276,66 (second installment)
  • September 05, 2024 = €276,66 (third installment)
ℹ️ The rounding are applied to the first payment (excluding deposit).

3. Automating retries in case of failure

If a payment fails to be debited, CentralPay will make additional debit attempts based on the settings defined in the Merchant Portal:

Access:

Recette Merchent Portal – Installment Payment Settings
Production Merchent Portal – Installment Payment Settings

Field behavior:

  • Transaction time: the time at which the direct debit payments will be processed by CentralPay
    • Selection of a value between 4 and 23
  • First payment failure: What to do in the event of a first failed direct debit
    • Try again in 1, 3, 5, or 7 days = a new attempt to process the transaction on day+X after the initial transaction
    • Stop = the system will not another attempt to process the payment
  • Second payment failure: What to do in the event of a second failed direct debit
    • Try again in 1, 3, 5 or 7 days = a new attempt to process the transaction on day+X after the previous attempt.
    • Stop = the system will not make a second attempt to process the payment
  • Third payment failure: What to do in the event of a third failed direct debit
    • Try again in 1, 3, 5 or 7 days = a new attempt to process the transaction on day+X after the previous attempt.
    • Stop = the system will not make a third attempt to process the payment.
  • Fourth payment failure: What to do in the event of a fourth failed direct debit
    • Try again in 1, 3, 5 or 7 days = a new attempt to process the transaction on day+X after the previous attempt.
    • Stop = the system will not make a fourth attempt to process the payment

3DS 2.2 authentication

Transaction Initiated by the Holder (CIT – BRW)

The BRW (Browser) flow applies to Customer-Initiated Transactions (CIT): the cardholder is present and authorizes the payment personally. This authenticated CIT also serves as the foundation for future MIT transactions.

👉 For a transaction initiated by the merchant without the cardholder (recurring billing, variable amounts, usage-based charges, one-time fees), see the 3RI flow documentation.

❌ Be careful when choosing the payment flow: Using BRW for a merchant-initiated transaction (MIT) results in non-compliance, unnecessary friction, and a significant drop in the conversion rate.

1. The main steps in the BRW workflow

The BRW flow consists of five steps on the API side, two of which are conditional: versioning (is the card authenticatable?) → 3DS Method (if necessary) → authentication → challenge (if required by the bank) → result, before completing the transaction.

3DS 2.2 BRW flow diagram
ℹ️ The entire process must take place on a single web page, without being redirected to a bank page, using an iframe solution. This is a requirement of the banking process. 

To speed up your integration of the BRW flow, you can start with a complete sample application (PHP/Twig) that replicates the entire sequence described on this page: CUSTOM payment form, versioning, 3DS Method in an iframe, authentication, challenge handling, results, and then the transaction, all on a single page, in accordance with banking requirements.

👉 Download the sample code · View the online demo

Before running the sample code, enter your credentials in the file .env  (API_USER,  API_PASSWORD,  POS_UUID) and point it HOST_CENTRALPAY_API_CORE to the test environment https://test-api.centralpay.net/v2/rest/.

2. Versioning

The versioning is the first step: it queries the card network to determine whether the card can be authenticated using 3DS 2.2, and retrieves the technical information needed for the rest of the process. Specifically, you send the card’s PAN (Primary Account Number, the 16-digit number) to the CentralPay API.

Sample (curl) :

curl --location --request POST 'https://test-api.centralpay.net/v2/rest/3ds2/versioning' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA==' \
--data-urlencode 'acctNumber=4000001000000067'

Understanding the response. A card is said to be “enrolled” when the bank that issued it participates in the 3DS 2.2 protocol for that card. This is determined by the issuing bank: neither you nor CentralPay can enroll a card. Versioning is used precisely to determine whether this is the case.

  • Card not enrolled → versioning return a 404 error: the 3DS 2.2 authentification is impossible for this card. Plan for a fallback (switch to 3DS1 if supported, or decline the payment according to your risk policy).
  • Card enrolled → you receive a transaction ID, the threeDSServerTransID (generated by CentralPay and retained until the final result is available), as well as, if applicable, the data required for the “3DS Method” (a URL and data encoded in Base64).

For a rolled-up card, there are two possible answers:

Version 1 (the most common) — a 3DS Method is expected:

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "threeDSMethodURL": "https://test-3dss-demo.centralpay.net/acs/3ds-method",
    "threeDSMethodDataForm": {
        "threeDSMethodData": "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly90ZXN0LTNkc3MuY2VudHJhbHBheS5uZXQvM2RzLzNkcy1tZXRob2Qtbm90aWZpY2F0aW9uLyIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiOWNjNmIzM2MtZGQzNS00ZmJkLTgxY2QtZmQ5Y2YwYWVlZDljIn0="
    },
    "errorDetails": null
}

The threeDSMethodURL and threeDSMethodData field have been filled in: proceed to step 3. 3DS Method.

Version 2 — no 3DS Method:

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "threeDSMethodURL": null,
    "threeDSMethodDataForm": null,
    "errorDetails": null
}

Only threeDSServerTransID is filled in (the 3DS Method fields are empty): proceed directly to Step 4. Authentication.

3. 3DS Method

What is it used for? The 3DS Method allows the cardholder’s bank — via its ACS (Access Control Server, the issuing bank’s server that authenticates the cardholder) — to discreetly collect technical information about the customer’s browser, before authentication. This information enhances the bank’s risk analysis and increases the likelihood of frictionless authentication (without requiring the cardholder to complete a challenge).

When should this be executed? Only if versioning returned a value for threeDSMethodURL and threeDSMethodData (the “Version 1” case above). Otherwise, proceed directly to authentication.

How? Load the threeDSMethodURL into an invisible iframe (hidden from view: this exchange is purely technical and should not display anything to the user) and post the threeDSMethodData field there. The user’s browser makes this call to the bank in the background.

4. (BRW) Authentification

The request is sent to the CentralPay API URL 3ds2/authentication. This request transmits contextual data related to the cardholder and their browser, which allows the bank to determine whether active authentication (challenge) is required.

Sample (curl) :

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'
💡 deviceChannel=02 indicates the browser channel, specific to the BRW feed. The browser* (the cardholder's browser characteristics) are therefore required here.
To increase the frictionless authentication rate, enrich this request with contextual data about the cardholder → see Optimizing the Frictionless Rate

Fields to be specified based on the purpose of the CIT. Field threeDSRequestorAuthenticationInd is required: it specifies the type of authentication. A CIT BRW can be used to authenticate a payment (messageCategory=01, PA), or to authenticate a card or its holder without a charge (messageCategory=02, NPA) — for example, to register a card, update it, or verify the cardholder. Both fields must be filled out consistently:

threeDSRequestorAuthenticationIndPurpose of the CITmessageCategoryAdditional required fields
01 — PaymentPer-unit payment (one-time)01 (PA)—
02 — RecurringRecurring payment (subscription)01 (PA)recurringExpiry, recurringFrequency
03 — InstalmentInstallment payments (in several payments)01 (PA)recurringExpiry, recurringFrequency, purchaseInstalData
04 — Add cardRegistering/encoding a card for future use, with no charge02 (NPA)—
05 — Maintain cardUpdating the information for an already registered card (e.g., renewal)02 (NPA)—
06 — Cardholder verificationCardholder verification as part of the ID&V process for an EMV token02 (NPA)—
  • recurringExpiry → the date after which no further authorizations will be issued (format YYYYMMDD).
  • recurringFrequency → minimum number of days between two authorizations (1 to 999).
  • purchaseInstalData → maximum number of authorizations (due dates) specified for installment payments (1 to 999).
ℹ️ Cases 04, 05, and 06 are non-payment authentications: no amount or recurrence field is required. They do not necessarily lead to an MIT transaction — they are often an end in themselves (to register, verify, or maintain a card). The card authenticated in this way can then be used for both CIT (cardholder present) and MIT (3RI) transactions.  

The response contains an authentication status (transStatus) that determines the next steps:

❌ No authorization — do not complete the transaction

Status (transStatus)Meaning
NNon authenticated/unverified account. Transaction declined.
UAuthentication/verification failed (technical issue or other problem).
RAuthentication/verification declined. The sender requests that you do not attempt to obtain authorization.
IFor informational purposes only. Acknowledgment of the applicant’s preference for the 3DS Challenge.

✅ Authorization without challenge

Status (transStatus)Meaning
YAuthentication successful.
AAttempt made. Not authenticated/verified, but a proof of the attempt is provided.

🔐 Authorization after challenge

Status (transStatus)Meaning
CChallenge required: the owner must actively authenticate (see step 5) using CReq/CRes (Challenge Request/Response) messages.
DChallenge required. Decoupled authentication confirmed.

Sample of responses:

C — Challenge required:

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "transStatus": "C",
    "acsTransID": "375d90ad-3873-498b-9133-380cbbc8d99d",
    "acsURL": "https://test-3dss-demo.centralpay.net/acs/challenge",
    "acsChallengeMandated": "Y",
    "base64EncodedChallengeRequest": "eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImU2MDFlYjQ0LTU2N2MtNDM4Ny05MmZjLWU2ZjIzMjJiODIyYiIsImFjc1RyYW5zSUQiOiI3ZTQzZDI4ZC00M2RkLTRmM2MtYTcwOS00YjZkZDVlZjc5Y2QiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIn0=",
    "contractId": "71602dd0-2790-4743-877b-e72530d7576d"
}

Y — Authentication successful (no challenge required):

{
    "threeDSServerTransID": "7d994177-32d8-43f7-87a4-3a3cd734cbfe",
    "transStatus": "Y",
    "acsTransID": "375d90ad-3873-498b-9133-380cbbc8d99d",
    "authenticationValue": "MTIzNDU2Nzg5MDA5ODc2NTQzMjEa",
    "eci": "02",
    "contractId": "71602dd0-2790-4743-877b-e72530d7576d"
}

The required fields for the transaction are present: threeDSServerTransID, transStatus, authenticationValue (the CAVV — Cardholder Authentication Verification Value, the security code that verifies authentication) and eci (Electronic Commerce Indicator, which indicates the level of authentication achieved and determines the transfer of liability in the event of fraud). The xid is not provided: it is an optional reference intended for merchants.

N — Transaction declined:

{
    "threeDSServerTransID": "6396b832-3e5b-4143-bde6-f5r1c1e47da0",
    "transStatus": "N",
    "eci": "00",
    "contractId": "258128f3-5db9-4235-918a-f1d786f67c29"
}

5. Challenge

The challenge is the step in which the cardholder actively authenticates themselves with their bank (one-time code received via text message, validation in the banking app, biometrics, etc.). It occurs only if the authentication returned transStatus = C.

  • An iframe must submit a form to the acsURL page returned in step 4.
  • The only parameter sent is creq, whose value is the base64EncodedChallengeRequest obtained from authentication.
  • At the end of the challenge, the URL you provided (notificationURL) is called by the bank.

In a test environment, the challenge appears as an OTP (One-Time Password); in production, the bank’s ACS window appears:

OTP challenge window in a test environment

Test OTP:

  • 1234 → Y (simulates a successful challenge – Authentication successful)
  • 4444 → A (simulates a successful challenge – Not authenticated/verified, but a proof of the attempt is provided.)
  • 1111 → N (simulates a failed challenge – No authenticated/unverified account)
  • 2222 → R (simulates a failed challenge – Authentication/verification declined)
  • 3333 → U (simulates a failed challenge – Authentication/verification failed (technical issue or other problem)

6. Challenge response

Once the challenge is complete, the result is returned in the cres parameter, encoded in Base64. Decode it to read the status. Example in PHP:

$retour = json_decode(base64_decode($_POST['cres']), true);
  • If the status is Y or A, the challenge is validated and the payment is authorized: call GET /results (step 7) to retrieve the 3DS data required for the transaction.
  • Any other value means the challenge failed: the payment was declined.

7. Result

This step retrieves the final 3DS data to be included in the transaction. Send the threeDSServerTransID authentication request.

ℹ️ If the authentication returned transStatus = Y directly (without a challenge), the 3DS data is already included: this step is not necessary.

Call:

curl --location -g --request GET 'https://test-api.centralpay.net/v2/rest/3ds2/results/{{threeDSServerTransID}}' \
--header 'Authorization: Basic ZG9jdGVzdDo0STlISlJUZA=='

Response:

{
    "threeDSServerTransID": "7d031b8e-7fb7-4215-b866-eaacb395002f",
    "transStatus": "Y",
    "acsTransID": "375d90ad-3873-498b-9133-380cbbc8d99d",
    "authenticationValue": "JAmi21makAifmwqo2120cjq1AAA=",
    "eci": "01"
}
🔁 Prepare for future MITs (3RI). If this CIT is to serve as a reference for subsequent payments initiated by the merchant, retain the acsTransID from the authentication sequence: it will be required as threeDSReqPriorRef on the 3RI side.

8. Transaction

Information required to validate a transaction authenticated using 3DS 2.2:

  • 3ds[threeDSServerTransID] = threeDSServerTransID
  • 3ds[status] = transStatus
  • 3ds[cavv] = authenticationValue
  • 3ds[eci] = eci (required if available)
  • 3ds[xid] = custom parameter, free-form reference for merchants

Sample (curl) :

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'

Next step: For subsequent merchant-initiated transactions (MIT), see 3DS 2.2 – 3RI.

Merchant-initiated transaction (MIT – 3RI)

The 3RI (3DS Requestor Initiated) flow applies to merchant-initiated transactions (MIT): the merchant initiates the debit without the cardholder’s involvement, under a pre-existing authorization, based on a previously authenticated CIT transaction.

It covers all MIT scenarios: recurring billing, variable amounts, usage-based templates, one-time fees, and deferred debits (no-shows, penalties), not just fixed-rate subscriptions.

👉 If the cardholder is present and authorizes the payment themselves, use the BRW flow. For information on the contractual framework, Strong Customer Authentication (SCA) exemptions, and the validity period of a CIT, see the Best Practices — Merchant Initiated Transaction (MIT) page.

1. Prerequisite: a CIT transaction that has already been authenticated

Since the cardholder is absent, the 3RI does not re-authenticate anyone: it reuses the authentication proof generated during a previous CIT transaction (with the cardholder present) carried out via the BRW flow.

During this CIT, the issuing bank’s server that authenticated the cardholder — the ACS (Access Control Server) — generated a unique identifier for this authentication: theacsTransID. This is the acsTransID that you will associate with each of your MITs to prove to the bank that the card was indeed authenticated for the first time with the cardholder’s consent.

⚠️ Keep the acsTransID from the CIT. Without a previously authenticated CIT — and therefore without acsTransID — a 3RI transaction cannot be completed. If you don't have one, first perform a CIT in BRW to authenticate and tokenize the card. 

2. (3RI) Authentication

The request is sent to the CentralPay API URL 3ds2/authentication, just like for the BRW flow, but with two key differences:

  • The channel is different. deviceChannel=03 Indicates a transaction initiated by the merchant (3RI), without the cardholder using a browser. The browser* parameters in the BRW flow are therefore unnecessary here.
  • The CIT is referenced. The acsTransID value retained in step 1 is placed in the threeDSReqPriorRef field, which refers to “the previous authentication associated with this transaction.”

Card identification. Since the cardholder is not present, no card is scanned during the session: the card already stored for the customer (Customer) is referenced by transmitting customerId + cardId.

💡 Send only one card source. Combining two sources (e.g., cardId + a token, or a PAN + a token) triggers the error “There is no unique source of card” (see the FAQ). 

Sample (curl) :

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=01' \
--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=1' \
--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=375d90ad-3873-498b-9133-380cbbc8d99d' \
--data-urlencode 'threeDSRequestorDecReqInd=N' \
--data-urlencode 'threeDSRequestorAuthenticationInd=02' \
--data-urlencode 'threeRIInd=01'

2.1. Explanation of the main parameters

ParametersDescription
deviceChannel03 → 3DS Requestor Initiated (transaction initiated by the merchant, without the cardholder using a browser)
messageCategory01 → PA (Payment Authentication) = Authentication associated with a payment (e.g., recurring transaction)
02 → NPA (Non-Payment Authentication) = authentication that does not involve a payment (e.g., registration or card verification without a charge).
threeDSReqPriorRefmust contain the acsTransID from the previous CIT (BRW) transaction (see step 1)
purchaseAmountamount of the current purchase
purchaseCurrencycurrency in ISO format
purchaseExponentminor unit of the current currency
purchaseDatedate of purchase
recurringExpirythe date after which no further authorizations may be issued
recurringFrequencyminimum number of days between two authorizations
acctTypeaccount type (03 = debit)
chAccAgeIndlength of time the account holder has had an account with the 3DS requester:
01 → no account
02 → created during the transaction
03 → less than 30 days
04 → between 30 and 60 days
05 → more than 60 days
chAccChangedate of the last change to the account holder’s account (format YYYYMMDD)
chAccDateaccount holder’s account opening date (format YYYYMMDD)
nbPurchaseAccountnumber of purchases made with this account over the past six months
paymentAccAgedate the payment account was credited to the account holder’s account
paymentAccIndlenght of time the payment account has been registered:
01 → no account
02 → created during the transaction
03 → less than 30 days
04 → between 30 ans 60 days
05 → more than 60 days
threeDSReqPriorAuthMethodInitial CIT Authentication Method:
01 → if frictionless
02 → if the cardholder has completed a challenge
03 → AVS
04 → other
threeDSReqPriorAuthTimestampdate and time (UTC) of the previous authentication (format YYYYMMDDHHMM)
threeDSRequestorDecReqIndN → do not use decoupled authentication
threeDSRequestorAuthenticationInd02 → recurring transaction
threeRIIndType of 3RI transaction:
01 → recurring transaction
02 → installment transaction
03 → add a card
04 → maintenance
05 → account verification
06 → split/delayed shipment
07 → recharging
08 → mail-order sales
09 → telephone sales
10 check whitelist status
11 → other payment

Sample of response:

{
    "threeDSServerTransID": "67dc456c-6c7a-987f-92cf-f68752525d0c",
    "transStatus": "Y",
    "eci": "02",
    "contractId": "fb8736a5-8741-19b6-9d38-ec135888e0bf"
}

Here, threeDSServerTransID is the transaction ID generated by CentralPay (to be included in the transaction), and eci (Electronic Commerce Indicator) indicates the level of authentication achieved, which determines the transfer of liability in the event of fraud.

2.2. Returned statuses (transStatus) and recommended course of action

The goal is to achieve frictionless authentication, that is, a transStatus = Y. Always try the 3RI first, then proceed according to the transStatus returned.

ℹ️ Support for 3RI depends on the card's scheme and the issuing bank's 3DS version: it is never guaranteed in advance. Hence the “best effort” approach described below — you attempt 3RI, and you only rely on the result if it is positive. 

✅ Authentication successful — use the results (transfer of responsibility)

Status (transStatus)Meaning
YAuthentication successful.
AAttempt made. Not authenticated/verified, but a proof of the attempt is provided.

→ Complete the transaction by submitting the 3DS data from the 3RI (see Step 3). Liability shifts to the issuer.

⚠️ 3RI failed — complete the transaction without authentication (“best effort”)

Status (transStatus)Meaning
NNot authenticated/unverified account.
UAuthentication/verification failed (technical issue or other problem).
IFor informational purposes only.
C / DChallenge requested (not possible in MIT because the cardholder is absent — see note below).

→ You can perform the standard transaction without the 3RI data: the Customer (customerId + cardId) ensures automatic linking to the initial CIT. Please note: In this case, the transfer of responsibility does not apply (increased risk of dispute), and the risk of authorization denial is higher.

⚠️ MIT Challenge (C / D). A challenge requires the cardholder to be present, which, by definition, is not the case with MIT. There are two scenarios: if the cardholder can return (e.g., subscription with a customer portal), reprocess a CIT in BRW to re-authenticate the card; otherwise, treat it as an unsuccessful 3RI and complete the transaction without authentication (best effort). See Best Practices — MIT.  

❌ Explicit refusal — do not attempt the transaction

Status (transStatus)Meaning
RAuthentication declined: the sender requests that you do not attempt to obtain authorization.

→ Do not complete the transaction, even without a 3RI.

3. Transaction

Once 3RI authentication is successful (Y or A), enter the following 3DS data in the transaction call:

  • 3ds[threeDSServerTransID] = threeDSServerTransID generated by 3RI authentication (not the one from a previous transaction)
  • 3ds[status] = transStatus
  • 3ds[eci] = eci (required if available)
  • 3ds[xid] = custom parameter, free-form reference for merchants
⚠️ Do not send 3ds[cavv] in3RI. The cavv (Cardholder Authentication Verification Value, the cryptogram that verifies authentication) is specific to the BRW stream; it is not included in the 3RI response and should not be transmitted here.

Sample (curl) :

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'
ℹ️ « best effort » case (3RI not completed). If the 3RI is not completed (transStatus other than Y/A, and excluding R), perform the same transaction without the subject 3ds[...] : the Customer  (customerId  +  cardId) is sufficient to link the operation to the initial CIT. In that case, the transfer of liability does not apply. 

See also: Best Practices — Merchant-Initiated Transactions (MIT) for the contractual framework, mandate, and Strong Customer Authentication (SCA) exemptions.

Optimize the Frictionless Rate

What is “frictionless”?

Authentication is considered “frictionless” when the cardholder’s bank approves the transaction without any interaction on the cardholder’s part (no challenge: no one-time code and no confirmation in the banking app). The bank authenticates “silently,” based on the data received and its own risk analysis (Risk-Based Authentication).

It serves two purposes:

  • Better conversion: no extra steps for the carrier, so fewer dropouts.
  • Liability Shift: As with successful challenge-based authentication, a successful frictionless transaction (transStatus = Y) shifts liability for fraud to the card issuer. This is what distinguishes it from a payment without 3DS.
ℹ️ The final decision always rests with the issuer bank. No approach guarantees a frictionless experience: the issuer may require verification regardless of your integration. The strategies below maximize the chances of a frictionless experience; they do not guarantee it. 

Lever 1 — Enhance authentication data

This is the most important lever. The more reliable contextual data about the user that the authentication request (3ds2/authentication) contains, the better the bank can evaluate the risk and the more likely it is to provide frictionless access. Reverse, a minimal request (amount + browser data only) deprives the bank of the information it would need to bypass the challenge.

All of the fields below are accepted by the API in both BRW and 3RI formats and are marked as “Recommended” or “Conditional” (to be submitted as soon as the information is available):

Contact information for the cardholder

FieldRole
emailcardholder’s email address (conditional: to be sent unless restricted by local regulations)
homePhone / mobilePhone / workPhonecardholder’s phone numbers (area code [cc] + number [subscriber])
deliveryEmailAddressdelivery email (for electronic delivery)

Billing and shipping address

FieldRole
billAddrLine1/2/3, billAddrCity, billAddrPostCode, billAddrState, billAddrCountrybilling address
shipAddrLine1/2/3, shipAddrCity, shipAddrPostCode, shipAddrState, shipAddrCountryshipping address
shipAddressUsageIndlength of time the shipping address has been in use

Customer account history

FieldRole
chAccAgeInd, chAccDate, chAccChangethe account holder’s account age and the date of the last change made to the account with the merchant
paymentAccAge, paymentAccIndlength of time the payment method has been registered
nbPurchaseAccountnumber of purchases over the past six months
provisionAttemptsDayNumber of attempts to add a card in a 24-hour period
preOrderDate, preOrderPurchaseIndpre-order information, if applicable
💡 Practical tip: Share all the reliable information you have. Inconsistent data (such as an incorrect address) is counterproductive; missing reliable data is a missed opportunity for a frictionless experience. 

Lever 2 — Run the 3DS Method

Whenever versioning allows it, always run the 3DS Method: it enables the bank to collect the technical fingerprint of the cardholder’s browser in the background, which directly feeds into its risk analysis. Skipping this step deprives the bank of information that promotes a frictionless experience. See the procedure on the BRW page.

Lever 3 — Expressing a preference and reporting exemptions

The threeDSRequestorChallengeInd field (optional, BRW flow) allows you to indicate your challenge preference to the bank and to specify that an exemption applies:

ValueMeaning
01No preference
02No challenge desired
03Desired challenge (merchant’s preference)
04Desired challenge (required)
05No challenge — transactional risk analysis (TRA) already completed
06No challenge — data sharing only
07No challenge — strong customer authentication (SCA) already completed
08No challenge — “trusted beneficiary” exemption (whitelist)
09No challenge — invitation to whitelist if a challenge is required
⚠️ The values 05, 07 and 08 indicate that an exemption applies. Use them only if the corresponding exemption actually applies to your configuration: incorrectly declaring an exemption makes you liable and may result in a soft decline (see FAQ). If in doubt, use 01 or 02. 

The field whiteListStatus also allows you to indicate the merchant’s « trusted beneficiary » status (Y = merchant whitelisted by the cardholder, N, E, P, R, U). When a cardholder adds your merchant to their trusted list with their bank, their subsequent payments go through more smoothly and frictionless.

Lever 4 — Properly implement merchant-initiated transactions (MIT)

Once an initial CIT transaction has been authenticated, subsequent transactions initiated by the merchant (MIT) are processed via the 3RI flow and are no longer subject to strong authentication. This is one of the most direct ways to reduce friction in recurring, installment, or future payments: authenticate once (CIT), then reuse (MIT).

What’s beyond your control

Even with complete data and a requested exemption, the issuer may decide to issue a challenge (step-up). If you attempt an authorization without authentication (via exemption) and the issuer denies it, you will receive a soft decline: you must then retry the transaction with authentication. See the corresponding entry in the FAQ.

FAQ – 3DS 2.2

Selecting a flow

Should I use the BRW feed or the 3RI feed?

The criterion is who initiates the transaction and if the cardholder is present, not the order of the transaction:

  • BRW → customer-initiated transaction (CIT), where the cardholder is present and authorizes the payment personally. Use this for the initial authentication of a card as well as for any payment where the customer is present during the transaction.
  • 3RI → merchant-initiated transaction (MIT), with the cardholder absent, based on a previously authenticated CIT (referenced via threeDSReqPriorRef).

See the section overview and the MIT page.

Can I use the BRW feed for my recurring or Merchant-initiated transactions?

No. The BRW assumes that both a browser and a cardholder are present. Using it for MITs results in unnecessary friction, soft declines, and PSD2 non-compliance. For these transactions, use the 3RI, which relies on the acsTransID from the initial CIT. However, an MIT may, in exceptional cases, be reclassified as a CIT by the issuer; in this case, reprocess a CIT (BRW) with the cardholder.

Test environment

Are there any test cards for 3DS2 transactions in a Sandbox environment?

👉 View the list of test maps for the RCT environment.

3DS authentication errors and statuses

My versioning is returning a 404 error: « Card account number not found in card ranges from Directory Server. » What should I do?

The card being used is not enrolled in 3DS 2.2: the transaction cannot be processed using 3DS 2.2. We recommend switching to a 3DS1 payment for this type of card.

The Result query returns  » transStatus = U. » How should this be interpreted?

The value U means that authentication/verification could not be completed (due to a technical issue or other problem).

  • Regarding SmartForm: during the challenge, only the values Y and A pass the challenge and allow the payment to proceed. Any other values cause the challenge and the payment to fail.
  • Regarding CustomForm : the behavior may vary. You can use the value U to retry a challenge; if it fails again, switch to 3DS1, or treat the payment as declined. These different handling options are possible.
SmartForm vs. CustomForm : SmartForm is the payment page hosted by 

After submitting the form toacsURL, the customer returns without a CRES but with a  » ERROR  » (base64) parameter and an empty  » THREEDSSESSIONDATA. » What should be done?

Verify that your entire 3DS2 process takes place on a single page using the iframe solution. If the process is compliant, contact technical support with the necessary information.

ℹ️ As a reminder, all steps of the form are completed on a single page, without being redirected to a bank page or any other page, thanks to the iframe solution.

Error 303: « acquirerBIN, acquirerMerchantID not recognized » during authentication. What should I do?

This is either a contract that is not 3DS2 or another issue. In the second case, contact technical support and provide the electronic payment contract number (if known) and any other relevant information.

Error 203: “Validation of 3DS Requestor Authentication data failed […]” for the “ merchant.merchantName ” field. What does this mean?

Error 203 indicates an invalid character in parameter merchant.merchantName.

« There is no unique source of card » error in the key ` card data`. What does this mean?

This error, which is common across the entire platform, happens when you send card information twice: for example a cardToken and a cardId, or a PAN and a cardToken. Send only one set of card information.

Illustration of the card source error
Additional example

Bank Authorization

The transaction API returns « Soft Decline, » even though  » threeDSServerTransID  » is indeed the status returned by CRES. What should I do?

The bank returns a “soft decline” (code A1) when 3DS is not included in the transaction. Verify that no 3ds[...] fields are missing — see the data to be transmitted on the BRW page, under the “Transaction” step.

Bank return codes 5 and 12 (excluding 3DS)

These codes come from the bank authorization and are not specific to 3DS.

  • Code 5: The bank declines the transaction without providing a specific reason (incorrect CVV or another reason we are unaware of). This status does not indicate that the bank will decline authorization after further attempts.
  • Code 12: The bank declines the transaction without providing a specific status. Possible causes: invalid transaction; incorrect or invalid CAVV (the CAVV is the authentication code provided by the ACS during 3DS; not to be confused with the CVV); or another reason unknown to us.

Merchant management

General information

This section explains how to create CentralPay accounts, whether payment accounts or e-money accounts, as well as the methods available for initiating user onboarding through our tools (portal or API), depending on the partnership model.

1. Types of accounts

CentralPay allows users to open two types of regulated accounts:

Account typeDescriptionSamples of use
Payment accountPayment account as defined in article L314-1 of the Monetary and Financial Code.Payment by credit card, bank transfer, or SEPA.
E-money accountA prepaid account in euros issued by CentralPay, in accordance with the regulations governing electronic money institutions.Wallets, marketplaces C2C, cashback, titles.

The assignment of an account type depends on the merchant’s business model and whether the account is managed by an agent (DME or Agent).

2. General enrollment process

Opening an account always involves a registration process that includes:

  1. Creating an enrollment request: starting a file containing basic information (email, last name, first name)
  2. Completion of the registration process: submission by the user of required information and supporting documents (KYC/KYB)
  3. Enrollment validation: review by CentralPay, which may result in account opening, a request for additional information, or a rejection

3. Two possible interfaces

InterfaceDescriptionTarget audience
CentralPay enrollment portalInterface hosted by CentralPay, accessible via a personalized link.All types of users
Enrollment APIA technical interface that allows an intermediary to initiate or complete enrollments via API.Authorized intermediary by status

4. Compliance and regulation

In order to comply with the regulatory framework applicable to Payment Service Providers (PSP), the division of roles is strictly regulated:

  • CentralPay is the only party that initiates the contract process with the user
  • The technical partner may not encourage, advise, or initiate the opening of an account
  • The technical partner does not participate in the collection of supporting documents
  • Only partners registered as MOBSPs, or Agent or EMD representatives, may participate in the expanded enrollment steps
Partner modelCan initiate an enrollment requestCan complete an enrollment (API)Can submit KYC documentation
Technical PartnerYes*❌ No❌ No
EMD IntermediaryYes, via API or portal✅ Yes✅ Yes
PSP IntermediaryYes, via API or portal✅ Yes✅ Yes (Level 1 KYC or higher if mandate)
ℹ️ The technical partner can create an enrollment request containing only contact information (email, last name, first name, company name), without sending an enrollment link themselves. CentralPay retains sole discretion over the rest of the process.

Enrollment request

1. Methods for creating an enrollment request

1.1. From the CentralPay Merchant Portal

A user logged into the CentralPay portal can initiate an enrollment request from the menu: Plateform > Enrollments > Create

Recette Merchent Portal – Onboarding
Production Merchent Portal – Onboarding

They can then manually fill in the fields described below (in the API call details). Once the request is saved, a redirect link to the onboarding portal is automatically generated and can be:

  • Sent automatically via email through the CentralPay Mailer (select “YES” in the “Send emails to the address above” field)
  • Or copied manually to be sent via another channel (chat, text message, etc.)

1.2. From the API: POST /merchant-enrollments

Enrollment can also be initiated automatically via the API by calling: POST /merchant-enrollments

This call generates an enrollment ID (UUID) and initiates a complete onboarding process, which can be continued:

  • Either via the Merchant Portal
  • Either entirely via API endpoints (see the “Complete an Enrollment via API” section)
If no direct link (enrollment_url) is returned by the API, by default, the CentralPay platform sends an email to the address specified in profile[email][value].
To disable this email: "sendClaimEmail": false

If you disable this email, you can manually provide the URL to access the onboarding interface by constructing it as follows:
- In Sandbox: https://test-onboarding.centralpay.net/token/profile/[UUID]
- En LIVE: https://onboarding.centralpay.net/token/profile/[UUID]

Note: [UUID] is the identifier returned in the response to POST /merchant-enrollments.

2. Create an enrollment request via the API (Merchant Enrollment)

🇫🇷 Simplified enrollment via SIREN (France only)
CentralPay automatically pre-fills certain information for French companies with a SIREN number:
1. Call the endpoint: POST /api/legal-entity/siren
2. Provide the following: { "siren": "123456789" }
3. If the information is valid, a UUID is returned. It must be used as identityBadge in the registration creation process to trigger the simplified workflow.

2.1. Required fields

FieldTypeRequiredDescription
profile[firstname][value]string (255)✅ YesAccount holder’s first name. Validation: alphabetic characters and hyphens (-). Since version 1.15.0
profile[lastname][value]string (255)✅ YesAccount holder’s last name. Validation: alphabetic characters and hyphens (-). Since version 1.15.0
profile[email][value]string (255)✅ YesContact email address. Since version 1.15.0
profile[phone][value]string✅ YesInternational phone number. Since version 1.15.0
languagestring✅ YesMerchant’s preferred language. Note: Use GET /api/locale for the available values.
accountTypeenum✅ YesType of merchant profile to create. Note: Use GET /api/merchant-enrollment/account-type.
activitySectorUUID (36)✅ YesMerchant’s industry sector. Note: Use GET /api/nauth/enrollment-claim/activity-sector.
activityAgeUUID (36)✅ Yes, if type = LEGAL_ENTITY ou INDIVIDUAL_WITH_STATUSLength of time in business. Note: Use GET /api/nauth/enrollment-claim/activity-age.
feeScheduleUUID (36)✅ YesPricing schedule to be applied. Note: Obtain the login credentials via POST /api/merchant-enrollment/fee-schedule.
identityBadgeUUID✅ Yes, if enrolled via SIRENSIREN ID (which activates the simplified process).
contractUUID✅ Yes, if accountType = STANDARDContract to be applied. Note: Use GET /api/merchant-enrollment/contract.

2.2. Advanced fields (optional)

Customizing the experience

FieldDefault valueDescription
workflowModeSEQUENTIALCourse mode (only mode SEQUENTIAL is now available).
Note: Valid values: SEQUENTIAL
type—Legal type: INDIVIDUAL, INDIVIDUAL_WITH_STATUS, LEGAL_ENTITY.
Note: Determines the structure of the process.
subType—Recommended subtype according to type.
Note:
For INDIVIDUAL_WITH_STATUS : SOLE_TRADER, MERCHANT, ARTISAN
For LEGAL_ENTITY : ASSOCIATION, PUBLIC, COMMERCIAL, EIG, CIVIL
turnoverIsFixedfalseIf true, locks the revenue report.
Note: optional

Communication settings

FieldDefault valueDescription
sendClaimEmailtrueSend the registration email with the portal link.
allowedEmailCommunicationtrueIf false, disable all email sends during the onboarding process.
sendProfileCreationEmailfalseSend an email to the user once the profile is completed.
sendAccountCreationEmailtrueSend an email once the CentralPay Merchant profile has been activated.

Personal data

All of the fields below are optional, but they allow you to pre-fill the user profile for the future account holder.

FieldTypeDescription
profile[nationality][country]string (3)Nationality (ISO 3166-1 alpha-3 format).
profile[birthday][value]dateDate of birth.
Validation: ≥ 18 years old, ≤ 110 years old
profile[place_of_birth][value]stringBirthplace.
profile[country_of_birth][country]string (3)Country of birth (ISO 3166-1 alpha-3).
birthdayConfirmation[value]dateRequired only if the merchant is affiliated with an agent.
Format: YYYY-MM-DD

Address (optional)

These fields can be filled in to pre-fill the account owner’s address.

FieldTypeDescription
profile[address][nameLine1]string(255)Line 1 of the address.
Constraints: ^[a-zA-Z0-9\\p{L} ´'\\-]{1,255}$
profile[address][locality]string(255)City.
profile[address][postalCode]string(20)Postal code.
profile[address][country]string(3)Country (ISO 3166-1 alpha-3).

Other options

FieldTypeDescription
contractUUID (36)Contract to be applied.
Required if accountType = STANDARD.
Note: GET /api/merchant-enrollment/contract
cguUUID (36)Terms of Service apply.
Note: POST /api/merchant-enrollment/cgu
Since version 1.18.0
customReferencestring (100)Custom reference (for internal use).
payoutProfileUUID (36)Payment profile to be linked.
Note: POST /api/merchant-enrollment/payout-profile
administrativeContactstring (255)Primary administrative reference.
Since version 1.18.0
technicalContactstring (255)Technical contact.
Since version 1.18.0
financialContactstring (255)Financial contact.
Since version 1.18.0
addSecurityReferenceboolDisplays a security reference when the contract is approved.
Valid only for: STANDARD, PARTNER, RESELLER.
Default: false
hookUUIDWebhook ID to be notified.
Note: See the “Full API Reference” tab for possible values.

Complete an enrollment

Once the enrollment request has been created, the future account owner can complete the process in one of two ways: via the CentralPay portal or via full API integration.

1. Option 1 – Complete the enrollment via the CentralPay Portal

The onboarding link (generated or recreated when the enrollment is created) allows the future account owner to enter their information and upload the required documents through the CentralPay interface on their own.

  • You will be notified automatically at each step of the enrollment process or only upon its completion (depending on your webhook settings)
  • Once the user has completed the process, the data is sent to CentralPay’s compliance teams for validation
  • In some cases, CentralPay analysts may request additional documents

2. Option 2 – Complete the enrollment via API

It is also possible to control the entire enrollment process via API, step by step.

The process consists of four main phases:

  1. Complete the profile
  2. Determine the workflow
  3. Complete the workflow
  4. Complete the enrollment

2.1. Complete the profile

Profile status

A profile always starts with the status workflow.status = “ON_GOING”. To be considered complete, this status must change to ACCEPTED.

⚠️ In SEQUENTIAL mode, this status may revert to ON_GOING when additional questions are unlocked. It should be checked again at each step. 

Get the first activity to complete

  • Retrieve activityUuid via : GET /api/nauth/merchant-enrollment/{enrollmentId}
  • Browse: profile.workflow.activities[0].uuid
  • Then ask: GET /api/nauth/profile/{activityUuid}/activity

Submit the data

Send the expected data via a form: POST /api/nauth/profile/{activityUuid}/activity
Content-Type : multipart/form-data

Example of expected fields (the “Identity Information” activity):

FieldTypeConstraints
firstname[value]string255 characters
lastname[value]string255 characters
mail[value]stringValid email address
phone[value]stringInternational number (at least 10 characters)
birthday[value]stringDate in the format YYYY-MM-DD, between 18 and 110 years old
place_of_birth[value]string—
country_of_birth[country]stringISO 3166-1 alpha-3

Autres types d’activité possibles :

  • Registered addresses: address information
  • Identity document: type (IDENTITY_CARD, PASSPORT) + documents (2 files for an ID card, 1 for a passport)

Repeat this process as long as an activity’s status remains “TODO.”

2.2. Determine the workflow

This step unlocks the next part of the process (collecting documents, supporting evidence, etc.).

  • POST /api/merchant-enrollment/{enrollmentUuid}/activity/{uuid}

Expected payload:

FieldTypeRequiredNotes
typeEnum✅ YesINDIVIDUAL, INDIVIDUAL_WITH_STATUS, LEGAL_ENTITY
bankAccountInEEACountrybool✅ Yes—
turnoverUUID (36)✅ YesPOST /api/nauth/enrollment-claim/turnover
companyNamestring(255)Yes, if LEGAL_ENTITY—
activityAgeUUID (36)Yes, if LEGAL_ENTITY or INDIVIDUAL_WITH_STATUSGET /api/nauth/enrollment-claim/activity-age
subTypeENUMRecommendedDepends on type (see details below)
isCompanyboolYes, if LEGAL_ENTITY—

If you used a identityBadge (enrollment via SIREN), this step is automatically skipped: the workflow has already been determined.

2.3. Complete the workflow

Each step in the workflow follows the same logic as the profile.

Possible types of step:

  • FORM : fields to be filled in via key[value]
  • API_CALL : external treatment
  • VALIDATION : manual action by the CentralPay teams
  • ENDED : step completed
Example: for the field company_legal_status, you must send company_legal_status[value].

The endpoints used are:

  • POST /api/merchant-enrollment/{merchantUuid}/activity/{uuid}
  • POST /api/merchant-enrollment/{uuid}/complete

Enrollment validation

Once all profile and workflow steps have been completed (whether via the CentralPay onboarding portal or via API), the enrollment enters the verification phase, which is handled by CentralPay’s compliance teams.

1. Review by the compliance department

Analysts conduct a comprehensive analysis of the information and documents collected throughout the process. This step may lead to one of the following decisions:

1.1 Enrollment validation

If the information provided is complete, legible, and in compliance with regulatory requirements, the enrollment is approved. CentralPay then automatically creates:

  • Of the CentralPay Merchant Profile (Merchant)
  • Of the payment account (Wallet)
  • Of the legal user profile for the CentralPay Merchant Profile (BO User).
ℹ️ These entities are immediately accessible from your monitoring tools (portal or API).

1.2. Additional information requested

If certain documents are missing, unclear, expired, or inconsistent, the compliance department may request additional documentation.

This request is:

  • Either sent by email directly to the future account owner
  • Either displayed in the CentralPay onboarding portal, if the request allows it
ℹ️ The user can submit the requested documents to restart the verification process.

1.3. Refusal of enrollment

In certain cases (invalid documents, invalid identity, unresolved inconsistencies, or excessive risk), the account opening request may be denied.

No CentralPay entity (BO User, Wallet, Merchant) is created at that point.

2. Notifications via webhook

Regardless of the outcome (approval, request for additional information, or rejection), you will be notified in real time via the configured webhooks.

This allows you to:

  • Track enrollments in real time
  • Adjust your UX if enrollment is denied or pending
  • Trigger internal actions (CRM creation, assignment, etc.)

Limited Electronic Money Account

CentralPay allows users to create electronic money accounts (Wallets) to store and use digital assets. Two complementary options are available:

  1. Quickly create a wallet without KYC (limited account): available immediately with regulatory limits
  2. Removing the Wallet limit via KYC enrollment (verified account): limits are lifted after document verification.

This approach is well-suited to progressive onboarding: a user can create a limited account for their first use, and then be invited to complete their profile to access all features.

1. Creating a limited Electronic Money Account

CentralPay allows users to create electronic money accounts that can be used immediately, without the collection of documents, within a strict regulatory framework. Limited electronic money accounts are reserved for individuals (natural persons). Legal entities are not eligible for this type of account.

1.1. Regulatory limits

  • Maximum balance: €150
  • Rolling cash flow: €150 over 30 days

This threshold is based on the provisions of Article R561-16 of the Monetary and Financial Code concerning unaudited electronic money accounts.

ℹ️ This type of account can then have its limit removed through KYC enrollment (see below).

1.2. Step 1 – Create a Customer

The Wallet must be linked to an object Customer representing the final user (see Customer Profiles)

1.3. Step 2 – Create a Wallet

  • POST /wallets

Required fields

FieldTypeDescriptionNote
customerIdUUIDID of the CustomerRequired unless merchantId is provided
currencystring (3)Wallet currency (e.g., "EUR")ISO 4217 – 3-letter code

Optional fields

FieldTypeDescription
referencestringBusiness reference
activationDatedateActivation date
expirationDatedateExpiration date
additionalDataobjectCustom data (JSON)

1.4. Additional steps – Managing a limited wallet

Once you’ve created a Wallet, CentralPay allows you:

  • edit it (e.g., add an expiration date, a reference, or a merchant)
  • view it in detail
  • List the existing wallets for a Customer or Merchant

2. Edit a Wallet

  • POST /wallets/{walletId}

This service allows you to update certain attributes of the Wallet without recreating it.

Required fields

FieldTypeDescriptionNote
walletIdUUIDWallet ID to be updatedRequired in the URL and/or the request body

Optional fields

FieldTypeDescriptionNote
referencestringCustom Wallet reference—
expirationDatedateWallet expiration dateYYYY-MM-DD
activationDatedateActivation Wallet dateYYYY-MM-DD
additionalDataobjectStructured business data (JSON key/value pairs)—
merchantIdUUIDTo link a Wallet to a specific MerchantOptional – not to be confused with customerId

3. View a Wallet

  • GET /wallets/{walletId}

This service allows you to retrieve detailed information about an existing wallet.

Required settings

FieldTypeDescriptionNote
walletIdUUID (36)Wallet IDThe Wallet must belong to the connected Merchant or one of its sub-merchants

Field descriptions

FieldTypeDescriptionNote
currencystringWallet currencyISO 4217 (e.g., EUR)
available[].amountintAvailable balance in centsEx.: 10500 = €105.00
pending[].amountintPending balance (transactions in progress)—
referencestringWallet referenceOptional
additionalDataobjectCustom dataOpen JSON

4. List a Customer’s Wallets

  • GET /wallets

Allow to retrieve the list of wallets created for a given Customer.

Required settings

FieldTypeDescription
customerIdUUIDCustomer ID
currencystringCurrency (e.g., "EUR")

Optional settings

FieldTypeDescriptionNote
afterstringPlease return only those wallets created after this dateISO 8601 format
beforestringPlease return only those Wallets created before that dateISO 8601 format
limitstringNumber of items per pageDefault: 10
pagestringPage indexDefault: 1

5. Steps for creating a limited EM account

Remove the limit on an Electronic Money Account

A Wallet can be converted into a verified account (with limits removed) via a full onboarding process triggered by the API.

1. Step 1 – Create an enrollment

  • POST /merchant-enrollments

You must include the walletId from the existing limited wallet.

Required fields

FieldTypeDescriptionNote
walletIdUUIDLink to the EM Wallet to remove the limitValid UUID
profile[firstname][value]string (255)First nameAlpha + -
profile[lastname][value]string (255)NameAlpha + -
profile[email][value]string (255)Contact email—
profile[phone][value]string (15)International phone—
profile[birthday][value]date (YYYY-MM-DD)Date of birthBetween 18 and 110 years old
profile[place_of_birth][value]string (255)Birthplace—
profile[country_of_birth][country]string (3)Country of birthISO 3166-1 alpha-3
languagestring (3)"fr" or "en"—
accountTypestring"BASIC"—
typestring"INDIVIDUAL"—
activitySectorUUID (36)Activity sectorGET /api/nauth/enrollment-claim/activity-sector
feeScheduleUUID (36)Price gridPOST /api/merchant-enrollment/fee-schedule
turnoverUUID (36)Expected annual revenuePOST /api/nauth/enrollment-claim/turnover
workflowDefinitionUUIDWorkflow templateprovided by CentralPay
profileWorkflowDefinitionUUIDProfile templateprovided by CentralPay
workflowModestring"SEQUENTIAL"Required
allowedEmailCommunicationbooleanConsentement à recevoir des emailstrue or false

Optional fields

FieldTypeDescription
sendClaimEmailbooleanSending the enrollment email (default: true)
sendProfileCreationEmailbooleanEmail after profile completion
sendAccountCreationEmailbooleanEmail upon opening a verified account
customReferencestringInternal reference
technicalContact, administrativeContact, financialContactstring(255)Business contacts
addSecurityReferencebooleanDisplays a safety reference (for STANDARD, PARTNER, RESELLER)
hookUUIDTechnical hook
birthdayConfirmation[value]dateIf affiliated with an agent

2. Step 2 – Complete a KYC enrollment (via autocomplete)

To speed up the enrollment process, you can fill out all the required information at once by calling:

  • POST /merchant-enrollment/{uuid}/autocomplete

Residential address

FieldTypeRequiredDescriptionNote
address[nameLine1]string✅ YesStreet number and name—
address[locality]string✅ YesCity of residence—
address[postalCode]string✅ YesPostal code—
address[country]string✅ YesCountry of residenceISO 3166-1 alpha-3

Identification document

FieldTypeRequiredDescriptionNote
identityDocument[type]string✅ YesDocument typeIDENTITY_CARD, PASSPORT, RESIDENCE_PERMIT, VISA, IDENTITY_DOCUMENT_RECEIPT
identityDocument[documents][0]file✅ YesFront side or main scanJPG, JPEG or PNG
identityDocument[documents][1]file✅ Yes, if IDENTITY_CARDBack side or additional pageJPG, JPEG or PNG
identityDocument[issuingCountry]string✅ YesIssuing countryISO 3166-1 alpha-3
identityDocument[expiryDate]string❌ NoExpiration dateFormat YYYY-MM-DD
identityDocument[checkId]string❌ NoControl ID (Onfido)—
identityDocument[documentNumber]string❌ NoDocument number—
identityDocument[mrzLine1]string❌ NoMRZ 1 Line—
identityDocument[mrzLine2]string❌ NoMRZ 2 Line—

Special cases

FieldRequiredConditionDescription
identityDocument[proofOfIdentityDocument]✅ Yesif type = IDENTITY_DOCUMENT_RECEIPTVisual proof of receipt
identityDocument[proofOfIdentityDocuments][*]✅ YeslikewiseMultiple files, if applicable
identityDocument[proofOfIdentityDocumentExpiryDate]✅ Yesif file proofOfIdentityDocument providedFormat YYYY-MM-DD

Banking information (optional but recommended)

FieldTypeRequiredDescriptionNote
iban[value]string❌ NoIBAN to be verifiedValid IBAN format
bic[value]string❌ NoBIC/SWIFT code—
ibanDocument[document]file❌ NoProof of bank information (bank account details, statement)JPG, JPEG or PNG

Additional KYC data (riskData)

All of the following fields are required unless otherwise noted.

FieldTypeRequiredDescriptionNote
riskData[isPep]bool✅ YesPolitically exposed person?default: false
riskData[isInSanctionList]bool✅ YesIs it on a sanctions list?default: false
riskData[residentAlpha3Code]string✅ YesCountry of residenceISO 3166-1 alpha-3
riskData[isHighRiskResident]bool✅ YesCountry of residence at risk?—
riskData[nationalityAlpha3Code]string✅ YesNationalityISO 3166-1 alpha-3
riskData[isHighRiskNationality]bool✅ YesNationality at risk?—
riskData[isHighRiskMCCActivitySector]bool✅ YesIs the MCC sector at risk?—
riskData[MCCActivitySector]int✅ YesMCC code (NAF or sector)—
riskData[monthlyLimit]int✅ YesReported monthly limit (in centimes)E.g., 150000 = €1,500.00
riskData[monthlyLimitCurrencyAlphabeticCode]string✅ YesCurrency (e.g., EUR)ISO 4217
riskData[isCrossBorderPayment]bool❌ NoCross-border payments?Default: true
riskData[declaredMonthlyRevenue]int❌ NoReported income (in centimes)—
riskData[verifiedMonthlyRevenue]int✅ Yes, if full KYCVerified incomes—

Additional documents (if required)

FieldTypeRequiredDescriptionNote
proofOfAddressDocument[documents][0]file✅ Yes, if the profile is at riskProof of addressJPG, JPEG or PNG
incomeDocument[document]file✅ Yes, if full KYC is requiredProof of income (1 document)JPG, JPEG or PNG
incomeDocument[documents][*]file✅ Yes, if full KYC is requiredMultiple files allowedJPG, JPEG or PNG

Other documents (if necessary to lift the limit)

FieldTypeDescriptionNotes
additionalDocuments[X]['type']stringType of document submittedEx: UBO_DECLARATION, PROOF_OF_VAT_REGISTRATION, LICENSING_AGREEMENT, etc.
additionalDocuments[X]['documents'][X]fileFiles submittedFile format: JPG, JPEG, PNG
ℹ️ The complete list of accepted document types is documented in the Open API.

Open data (required, even if empty)

FieldTypeRequiredDescription
metaDataJSON object✅ YesOpen metadata, in {"key": "value"} format (may be empty)

3. Step 3 – Correcting a failed enrollment (autoupdate)

If the compliance department rejects one or more documents (e.g., a blurry ID card, an expired document), you can submit only the rejected items via a self-update request.

  • POST /merchant-enrollment/{uuid}/autoupdate

Correction of an identification document

FieldTypeRequiredDescriptionNote
identityDocument[type]string✅ YesType of document to be correctedIDENTITY_CARD, PASSPORT, RESIDENCE_PERMIT, VISA, IDENTITY_DOCUMENT_RECEIPT
identityDocument[documents][0]file✅ YesFront side of the document (or single file)JPG, JPEG or PNG
identityDocument[documents][1]file✅ Yes, if type = IDENTITY_CARDBack side of the NICJPG, JPEG or PNG
identityDocument[issuingCountry]string✅ Yes, if the document is submittedIssuing countryISO 3166-1 alpha-3

Additional identification document (if required)

FieldTypeRequiredDescription
complementaryIdentityDocument[documents][0]file✅ Yes, if requiredAdditional scan or photo
complementaryIdentityDocument[expiryDate]string✅ YesExpiration date (YYYY-MM-DD)
complementaryIdentityDocument[documentNumber]string✅ YesDocument number
complementaryIdentityDocument[mrzLine1]string✅ YesMRZ Line 1
complementaryIdentityDocument[mrzLine2]string✅ YesMRZ Line 2
complementaryIdentityDocument[issuingCountry]string✅ YesIssuing country (ISO alpha-3)

Income documents

FieldTypeRequiredDescription
incomeDocument[document]file✅ Yes, if requiredSingle JPG/JPEG/PNG file
incomeDocument[documents][*]file✅ Yes, if multiple are expectedMultiple documents by index ([0], [1], etc.)

Additional personal information

FieldTypeRequiredDescription
profile[firstname][value]string❌ NoFirst name
profile[lastname][value]string❌ NoName
profile[birthday][value]string❌ NoDate of birth
profile[place_of_birth][value]string❌ NoBirthplace
profile[country_of_birth][country]string❌ NoCountry of birth (ISO 3166-1 alpha-3)

Address correction (if rejected)

FieldTypeRequiredDescription
profile[address][nameLine1]string❌ NoAddress – line 1
profile[address][postalCode]string❌ NoPostal code
profile[address][country]string❌ NoCountry (ISO alpha-3)
profile[address][locality]string❌ NoCity

Updating KYC data (riskData)

All of the following fields are required unless otherwise noted. They must be returned exactly as they are or updated if changed as part of the correction.

FieldTypeRequiredDescriptionNote
riskData[isPep]boolean✅ YesPEP?default: false
riskData[isInSanctionList]boolean✅ YesOn a sanctions list?default: false
riskData[residentAlpha3Code]string✅ YesCountry of residenceISO alpha-3
riskData[isHighRiskResident]boolean✅ YesCountry of residence at risk?—
riskData[nationalityAlpha3Code]string✅ YesNationalityISO alpha-3
riskData[isHighRiskNationality]boolean✅ YesNationality at risk?—
riskData[isHighRiskMCCActivitySector]boolean✅ YesHigh-risk area?—
riskData[MCCActivitySector]int✅ YesMCC business code—
riskData[monthlyLimit]int✅ YesMonthly limit (in centimes)[0 ; 190000]
riskData[monthlyLimitCurrencyAlphabeticCode]string✅ YesCurrency (e.g., EUR)ISO 4217
riskData[isCrossBorderPayment]boolean❌ NoCross-border paymentsdefault: true
riskData[declaredMonthlyRevenue]int❌ NoReported incomes—
riskData[verifiedMonthlyRevenue]int✅ Yes, if full KYCVerified incomes (centimes)

Additional documents (optional or required)

FieldTypeRequiredDescription
additionalDocuments[X]['type']string✅ Yes, if the documents are expectedType of proof
additionalDocuments[X]['documents'][X]file✅ YesRelated files (JPG, JPEG, PNG)

Other fields

FieldTypeRequiredDescription
fullKycboolean❌ NoAllows you to require full or simplified KYC (true / false)

4. Step 4 – Track the status of an enrollment

Once an enrollment has been created and completed, you can check its status at any time to:

  • Check the status (ON_GOING, ACCEPTED, REFUSED)
  • Track pending steps in the workflow
  • Extract previously submitted profile data

Retrieve an enrollment

GET /merchant-enrollment/{enrolmentId}

Required settings

FieldTypeRequiredDescriptionNote
enrolmentIdUUID (36)✅ YesEnrollment ID returned upon creation (POST /merchant-enrollments)Standard UUID format
ℹ️ The enrollment must belong to the scope authorized by your API credentials (merchant or sub-merchant).

Main fields in the response

FieldTypeDescription
uuidUUIDUnique enrollment ID
workflow.statusstringProcess status (ON_GOING, ACCEPTED, REFUSED)
workflow_modestring"SEQUENTIAL" or "CONTINUAL"
workflow.activities[]tableList of activities (steps) still to be completed
profile[...]objectProfile data that has already been submitted, with their status
conformity_statusstringOverall compliance status (ON_GOING, REVIEW, APPROVED, etc.)
created_atdatetimeEnrollment creation date
activity_sector.namestringSector reported on the enrollment form

Keep an eye on

  • As long as an activity has a state = TODO, enrollment is incomplete
  • When there are no pending activities and workflow.status = ACCEPTED, the user is approved
  • In case of workflow.status = REFUSED, no verified wallet will be generated

5. KYC verification process for a ME account

Responses, articles of association, and webhooks

1. Return codes related to creating a merchant profile

Creating a merchant profile via the enrollment API triggers an automated process that allows CentralPay to collect and validate the information needed to open the profile.

If the request fails, an HTTP error response is immediately returned to the API call, specifying the field that caused the error and the nature of the rejection (missing, inconsistent, or invalid data).

⚠️ There is no centralized table of return codes for these errors, because they are linked to the dynamic validations performed on a per-field basis. The error returned is always structured within the response body and allows you to precisely correct the issue causing the blockage. 

2. Articles of association related to enrollments

View the Merchant Enrollment Terms and Conditions ➝

3. Webhooks related to enrollments

View the Onboarding Webhooks ➝

Payouts

General information

The Easy Wallet solution enables platforms to process payments and transfer them to third parties in compliance with European regulations.

To achieve this, the module includes two main services:

  • The registration, which enables the creation of payment and electronic money accounts for merchants on a platform
  • The transfer, which enables transactions to be transferred to these payment and electronic money accounts

According to the CentralPay contract model, the options for registration and transfers vary.

1. Types of transfers

According to the partnership model established with CentralPay, payouts are processed differently:

  • MOBSP Partners: You must use the transfer service via transaction
  • PSP Agents: You can use the free transfer service or transfer via transaction
  • EM Distributors: You must use the transfer service via transaction for the foreign currency collection phase. Then, you may use the free transfer service only to transfer electronic money between the accounts of your participating merchants.

To find out what type of partnership you have, please contact your CentralPay representative.

Independent transfer

1. Create a Transfer

The Create a Transfer function allows merchant agents (Agents or DME) to transfer funds between two accounts held by their participating merchants. This transfer can be initiated:

  • By an agent when the accounts are payment accounts
  • By an EMD when the accounts are electronic money accounts

1.1. Use cases

For example, this mechanism allows for:

  • An Agent to orchestrate debits and credits of funds between itself and its participating merchants, or to specified recipient accounts
  • An EMD to conduct electronic money transfers between its participating merchants (for example, as part of a C2C marketplace)

CentralPay remains responsible for the actual execution of transactions within the framework of its contractual relationship with participating merchants.

1.2. Required settings

FieldTypeRequiredDescription
destinationWalletIdUUID✅ YesRecipient’s Centralpay account ID (belonging to a participating merchant).
amountInteger (in cents)✅ YesTransfer amount. Must be strictly greater than 0.
sourceIdUUID✅ Yes, if sourceType is specifiedFunds source identifier (e.g., transaction, transfer, credit, SDD).
sourceTypeEnum✅ Yes, if  » sourceId  » is specifiedTransfer source: TRANSACTION, SCT_TRANSACTION, CREDIT, SDD.

1.3. Optional settings

FieldTypeDescription
emissionWalletIdUUIDIssuer’s account, if different from the principal account of the intermediary merchant.
currencyISO CodeCurrency of the transfer (if different from the account currency).
feeIntegerAmount of the commission charged by the Intermediary Merchant, deducted from the total. Default: 0.
escrowDateISO DateThe date on which the transfer takes effect. Can be used to define a temporary hold period.
merchantTransferIdThongIntermediary Merchant business reference (max 100 characters).
transferGroupThongA group to combine multiple transfers.
descriptionThongFree-form description (max 256 characters).
additionalDataKey/ValueAdditional data in the form of key/value pairs (maximum of 256 characters per value).
metaDataJSONAdditional structured metadata.
purposeCode / purposeMessageEnum / StringPurpose of the transfer, according to a standard classification system. See the list of codes.

1.4. Validation Rules

  • The destinationWalletId must correspond to a valid account of a Participant Merchant of the Intermediary
  • The  » sourceId  » can only be used if the linked object has an accepted status (CAPTURE, CLEARED, etc.).
  • The authorized amount depends on the available balance or the funds associated with the source (transaction, bank transfer, etc.)

2. Additional functions related to transfers

Intermediary merchants have access to several post-transfer management features that allow them to adjust, view, or cancel a transaction, subject to certain conditions.

2.1. Update a Transfer

This function allows you to modify certain settings of an existing transfer, provided that it has not yet been executed (status: PENDING).

Available settings:

FieldTypeRequiredDescription
transferIdUUID✅ YesID of the transfer to be modified.
merchantTransferIdThong❌ NoIntermediary Merchant reference.
escrowDateISO Date❌ NoNew execution date postponed.
transferGroupThong❌ NoBatch processing of transfers.
descriptionThong❌ NoFree-form description (max 256 characters).
additionalDataKey/Value❌ NoAdditional information.
metaDataJSON❌ NoStructured metadata.

Changing the escrow date is particularly useful in conditional payment flows (e.g., marketplace transactions, withdrawal periods, etc.).

2.2. Cancel a Transfer

A transfer can be canceled as long as it has not yet been processed (status: PENDING). This cancellation is irreversible: the transaction will appear as CANCEL in the account history.

Settings:

FieldTypeRequiredDescription
transferIdUUID✅ YesID of the transfer to be canceled.

⚠️ Once the funds are available (status: TRANSFERRED), this feature is no longer available. You will then need to use a TransferReversal.

2.3. View a Transfer (Retrieve a Transfer)

Allows you to retrieve all the details of a transfer using its CentralPay ID.

FieldTypeRequiredDescription
transferIdUUID✅ YesTransfer ID.

2.4. Search for Multiple Transfers (List Transfers)

Allows you to search for a list of transfers based on various criteria. All parameters are optional.

ParametersTypeDescription
merchantTransferIdThong (100)Intermediary Merchant reference.
destinationWalletIdUUIDRecipient’s account.
transferGroupThongTransfer group.
statusEnumPENDING, TRANSFERRED, CANCEL.
after / beforeISO DateFilter by creation date.
limitIntegerNumber of results per page.
pageIntegerResults Page Index.

3. Reverse a Completed Transfer (Transfer Reversal)

Once a transfer has been executed (status: TRANSFERRED), it can no longer be canceled using the Cancel function. In this case, you must use a dedicated operation called  » TransferReversal. » This operation does not delete the original transfer; it remains visible, recorded in the history, and traceable.

This feature is available only to Intermediary Merchants (Payment Account Agents and EMDs for Electronic Money Accounts) and must comply with the rules regarding the availability of funds.

3.1. Terms of Use

The initial transfer must:

  • Have the status  » TRANSFERRED« 
  • Have funds available in the recipient’s account
  • Not having already been fully refunded through reversal transactions

The amount refunded must be:

  • Less than or equal to the available balance in the recipient’s account
  • Less than or equal to the amount originally transferred
  • Less any reversals already made on the transfer in question

3.2. Create a TransferReversal

Allows you to return an amount to the original issuing account.

FieldTypeRequiredDescription
transferIdUUID✅ YesOriginal transfer ID.
amountInteger✅ YesAmount to be refunded (in centimes).
merchantTransferReversalIdThong❌ NoIntermediary Merchant reference number for tracking.
refundFeeBoolean❌ NoIndicates whether the initial transfer fees are refunded (default: true).
feeInteger❌ NoAmount of fees associated with the reversal.
descriptionThong❌ NoFree-form explanatory text (max. 256 characters).
escrowDateISO Date❌ NoDeferred execution date, if applicable.
additionalDataKey/Value❌ NoKey-value pairs for business requirements.

⚠️ If the  » refundFee  » field is set to false, the initial fee amount is retained and is not returned to the source account.

Important Rules:

  • The transaction appears in the account activity (debit to the recipient’s account, credit to the originating account)
  • Multiple reversals can be made on a single transfer, up to the initial total amount
  • If funds are not available, the request is rejected with an explicit error message (insufficient balance or amount too high).

4. Additional Functions (TransferReversal)

These functions allow you to manage and view completed transfer return transactions (TransferReversal) once they have been created.

4.1. Edit a TransferReversal (Update)

Allows you to edit certain information about an already created TransferReversal.

FieldTypeRequiredDescription
transferReversalIdUUID✅ YesTransferReversal ID to be modified
merchantTransferReversalIdThong❌ NoIntermediary Merchant reference for tracking
descriptionThong❌ NoFree-form description (256 characters max)
escrowDateDate (ISO)❌ NoNew deferred execution date, if applicable
additionalDataKey/Value❌ NoKey-value pairs for specific business purposes

This feature is available only to users with PARTNER status or higher.

4.2. View a TransferReversal (Retrieve)

Allows you to view the details of a TransferReversal using its ID.

FieldTypeRequiredDescription
transferReversalIdUUID✅ YesTransferReversal ID to view

The returned object contains all business information, including: amount, date, status, relevant account, and transaction history.

4.3. Search for Transfer Reversals (List)

Allows you to search the history of  » TransferReversal  » based on various criteria.

ParametersTypeRequiredDescription
merchantTransferReversalIdThong❌ NoIntermediary Merchant Reference
afterISO Date❌ NoReturns the elements created after this date
beforeISO Date❌ NoReturns the elements created before that date
limitInteger❌ NoNumber of items to return (default: 10)
pageInteger❌ NoIndex of the page to return (default: 1)

This feature provides comprehensive tracking of reversal transactions related to a specific activity, including cases involving multiple partial returns.

Transfer via Transaction or PaymentRequest

Unlike independent transfers, which are reserved for Agents (for Payment Accounts) and Electronic Money Distributors (EMD) (for Electronic Money Accounts), transfers via transactions are available to all partnership models, including unregulated Technical Partners.

In this context, when a transaction is created (via card, bank transfer, or direct debit), the partner sends CentralPay contextualized transaction data (e.g., cart total, commission, recipient wallet IDs, etc.).

ℹ️ The API call does not directly initiate the financial transaction: CentralPay processes the transfer independently after the transaction has been successfully validated (Card Transaction, receipt of a Bank transfer, or execution of a SEPA Direct Debit).

The conditional transfer model allows you to initiate a funds transfer upon completion of a transaction: card payment, bank transfer (SCT), or direct debit (SDD). In this case, the transfer is configured directly when the transaction is created, using a dedicated field transfer[].

This method does not use the /transfer endpoint, but instead relies on the specific endpoints for the relevant transactions:

  • /transaction For card payments: See how to create a Card Transaction ➝
  • /sctTransaction For incoming bank transfers: See how to create an SCT Transaction ➝
  • /sddTransaction For SEPA Direct Debits: See how to create an SDD Transaction ➝
  • /paymentRequest For payment requests: See how to create a payment request ➝

This process ensures that funds are transferred only if the transaction is successful. The transfer then becomes an automated and synchronized step.

1. Terms of Use

  • The transfer is created at the same time as the transaction (no separate call)
  • It is executed only if the source transaction is successful.
  • It adheres to the source’s constraints (status, available balance, date, etc.)
  • It can be done immediately or at a later time using the field escrowDate

2. Set up a transfer within a transaction

In all four scenarios, the logic is the same: an ` transfer[] ` array is included in the request body during the POST call to create the transaction.

The following fields are accepted at transfer[]:

FieldTypeRequiredDescription
destinationWalletIdUUID✅ YesCentralPay Beneficiary account. Must belong to an authorized Participant Merchant.
amountInteger✅ YesTransfer amount in centimes.
currencyThong❌ NoTransfer currency (if different from the transaction currency).
merchantTransferIdThong❌ NoPartner Reference.
feeInteger❌ NoApplicable fees (deducted from the gross amount).
escrowDateISO Date❌ NoDeferred execution date (if applicable).
transferGroupThong❌ NoGroup ID for aggregated tracking.
descriptionThong❌ NoTransfer description visible on statements.
additionalDataKV pairs❌ NoStructured business data (key/value).

⚠️ The rules regarding fund availability (particularly after the capture or validation period) must be followed. If the transaction is canceled or fails, no transfer is initiated.

Payout to a Third Party

An outgoing payout to a third party allows funds to be transferred from a CentralPay Payment Account or Electronic Money Account to the Bank Account of a Participant Merchant acting as a CentralPay Intermediary (Agent or EMD). Partners (technical or integration partners) do not have access to this feature.

1. Purpose and Scope

This service allows you to:

  • Initiate manual or automated payouts for Participant Merchants
  • Target a Bank Account authorized by the Participant Merchant
  • Use a CentralPay account as a source of funds

The regulated partner retains technical control over the payout, but the funds are always held and transferred by CentralPay, which remains responsible for executing the transaction.

2. Available Methods

2.1. The CentralPay API

Endpoint: /payout/byThirdParty
➡️ See details below.

2.2. The CentralPay Merchant Portal

Available to accounts with the appropriate permissions (Agent or EMD).

  1. Go to Linked Accounts
  2. Select the relevant Merchant
  3. Go to the Bank Accounts tab
  4. Select the destination account and initiate the payout

3. API endpoint: /payout/byThirdParty

This service allows you to send an instruction to CentralPay to perform a payout for a specified amount to a Bank Account linked to a Participant Merchant.

3.1. Limits on Use

  • 1 payout per day per Participant Merchant / currency
  • Target Bank Account validated by the Participating Merchant
  • Payouts may only be made from available funds

3.2. API Parameters (BODY)

ParametersTypeRequiredDescription
currencyISO 4217✅ YesCurrency of the payout (must match the Bank Account).
destinationBankAccountIdUUID✅ YesBeneficiary Bank Account (linked to the Participant Merchant).
walletIdUUID❌ NoWallet where the funds come from.
amountInteger (in cents)❌ NoAmount to be paid out. If blank: maximum balance.
merchantPayoutIdThong❌ NoInternal reference ID.
descriptionThong❌ NoFree-form text, visible in the report.
payoutReferenceString (max 35)❌ NoBank reference number (shown on the bank statement).
additionalDataMap❌ NoAdditional data (e.g., order ID, segment, etc.).
transitionWalletUUID❌ No(advanced case) temporary wallet.
customerIdUUID❌ NoCustomer ID if the target is non-commercial.

4. Tracking Payouts

4.1. Claim a payout

Endpoint: /payout/byThirdParty/retrieve
Parameter: payoutId (UUID)

4.2. List the payouts

Endpoint: /payout/byThirdParty/list
Parameter: walletId (UUID)

4.3. Possible articles of association:

StatusMeaning
PENDINGPayout is being processed
PAIDPayout successfully processed
CANCELPayout Canceled Manually

5. Regulatory Constraints

  • Only Electronic money Agents and Distributors (EMDs) registered with the ACPR through CentralPay may initiate these payouts
  • Partners must ensure that the data they submit complies with their contractual and regulatory framework
  • CentralPay reserves the right to refuse a payout or to request supporting documents if there is any doubt about the transaction

Responses, statuses, and webhooks

1. Return Codes Related to Transfers

Transfers made via the CentralPay API (subject: Transfer or Transfer Reversal) are internal transactions between two CentralPay account holders (e.g., merchants, customers, partners). These transactions are executed synchronously or nearly instantly.

Unlike Card Transactions or Bank transfers, there are no bank return codes associated with these internal transfers. If a transfer fails, the API returns an HTTP error describing the reason for the Rejection (e.g., insufficient funds, inactive account, incompatible currency, etc.).

These errors are not business statuses, but rather input validations that prevent the transfer from being created. Once the transfer is accepted, it follows its own lifecycle.

2. Articles of association related to transfers

View the Transfer Articles of association ➝

View the Transfer Reversal Articles of association ➝

View the Payout Articles of Association (also applicable to PayoutByThirdParty) ➝

3. Webhooks Related to Transfers

Check out Transfer Webhooks ➝

View the Transfer Reversal Webhooks ➝

View the Payout Webhooks (also applicable to PayoutByThirdParty) ➝

CMS Plugin

WooCommerce

This guide will walk you through the installation, configuration, and use of the CentralPay plugin for WooCommerce (WordPress).

ℹ️ The CentralPay platform supports various payment methods (credit/debit cards, Bank transfers, SEPA Direct Debits, and Payment Initiation Service (PIS)) and payment options (one-time payments, subscriptions, installment plans, etc.). This plugin only allowsfor the processing of one-time credit/debit card transactions.   

If you'd like to request a change to the plugin, please visit https://support.centralpay.com: Support & Settings > Suggest a new feature.

1. Download the plugin

  • For WooCommerce ➝ Download the CentralPay plugin ZIP archive

⚠️ Be sure not to unzip it manually.

2. Installation on WordPress

  1. Log in to your WordPress admin dashboard
  2. Go to Extensions > Add
  3. Click  » Upload an Extension« 
  4. Select the file  » centralpay220.zip  » and click  » Install Now« 
  5. Once the installation is complete, click  » Enable Extension« 

3. Module Configuration

  1. Go to WooCommerce > Settings > Payments
  2. Click on CentralPay to access the settings
  3. Fill in the following fields, then click  » Save Changes « :
FieldDescriptionAccess to Data
Merchant IDThis is your Merchant Public Key. Do not confuse it with the Merchant UUID. CentralPay Merchant Portal > Administration > Technical Support > Copy « Merchant Public Key »
API LoginYour CentralPay API user IDCentralPay Merchant Portal > Administration > Technical Support > Click on your « API ID » > Copy the « login »
API PasswordYour CentralPay API user passwordCentralPay Merchant Portal > Administration > Technique > Click on your « API ID » > Edit > Generate a password > Copy the password > Click « Update »
POS IDUnique identifier for your Point of Sale (POS) (UUID)CentralPay Merchant Portal > Configuration > Points of Sale > Copy the ID of the relevant Point of Sale (POS)
Test / Production ModeEnable test mode if you want to use the sandbox environment (the login and password must be those for your CentralPay test Merchant Profile)./
Redirect URLRedirects your customers to a custom page after they complete payment through our form.Enter the URL of your payment confirmation page.

4. Order Status

The CentralPay WooCommerce plugin automatically includes a redirect URL (return_url) in the payment form link. This URL redirects the customer to the order confirmation page (/checkout/order-received/) and updates the order status based on the payment result.

If the end customer closes the payment window before being redirected, the order update may not trigger correctly on the WooCommerce side.

To ensure that order status is updated reliably, we recommend setting up a hook (server-to-server callback) in your CentralPay Backoffice.

Setup steps:

  1. Go to:
    Production: https://backoffice.centralpay.net/admin/hook/
    Testing: https://test-backoffice.centralpay.net/admin/hook/
  2. Create a hook with the following parameters:
    • Event: Point of Sale (POS) > TRANSACTION_SUCCEDEED
    • Assigned to a Point of Sale (POS): Select your WooCommerce POS store
    • URL: https://votre-site-woocommerce.com/?wc-api=cpay_validation
      (Replace with the URL of your WooCommerce site.)
  3. Save the Hook

The ` /?wc-api=cpay_validation ` parameter is required for the CentralPay WooCommerce plugin to recognize the notification and trigger the order status update.

This configuration must be set up both in your Test environment and on your production Merchant Profile.

5. Logo Customization

You can also customize the payment interface by adding your website’s logo through the Backoffice:

  1. Go to: https://backoffice.centralpay.net/admin/point_of_sale/
  2. In your Point of Sale details, click Edit
  3. Upload your logo in the  » Logo » section

This logo will be displayed directly in the payment form to provide a more consistent user experience.

6. Test Mode

  • Enable test mode in the settings (please note: you must have a CentralPay test Merchant Profile and enter the credentials for that test Merchant Profile)
  • Use the test cards provided by CentralPay to simulate payments
  • Check that it is working properly:
    • From the payment form
    • Redirects
    • Order Statuses

7. Payment Tracking

  • View all your payments in WooCommerce > Orders
  • The CentralPay plugin automatically updates order statuses
  • If needed, an event log is available in the plugin’s ` error.log ` file

8. Available Languages

The plugin is available in:

  • 🇫🇷 French
  • 🇬🇧 English

You can edit or add your own translations using the ` .po ` files located in the ` /languages` folder, or by using a plugin such as Loco Translate.

9. Uninstallation

To uninstall the plugin:

  • Disable it through the Extensions menu
  • Click  » Delete« 
  • The uninstall script will delete the plugin’s settings

10. Support

If you have any questions or need assistance, please contact our technical support team at https://support.centralpay.com.
Please include your Merchant ID, your website URL, and as many details as possible about your request.

PrestaShop

CentralPay offers a credit card payment module for Prestashop stores. Two versions of the module are available, depending on your CMS version:

  • For Prestashop 1.6 ➝ Download the 1.6 module
  • For Prestashop 1.7 ➝ Download the 1.7 module

1. Installing the module

Prestashop v1.6

  1. Log in to the Prestashop back office
  2. Modules Menu > Modules
  3. Click « Add a New Module »
  4. Download the archive .zip and then click « Install »

Prestashop v1.7

  1. Log in to the Prestashop admin panel
  2. Menu Modules > Modules Manager > Upload a module
  3. Upload the archive  » .zip  » or click to download it
  4. Complete the installation by following the wizard’s instructions

2. Module Configuration

After installation, go to the module’s configuration page: Modules Installed Modules CentralPay Configure

The following fields are required:

FieldDescriptionWhere can I find this information?
Merchant Public KeyAPI Authentication Public KeyCentralPay Merchant Portal > Administration > Technical Support > Copy the “Merchant Public Key”
API LoginYour CentralPay API user IDCentralPay Merchant Portal > Administration > Technical Support > Click on your “API ID” > Copy the “login”
Secret Key (API password)API Secret Key (Never Share)CentralPay Merchant Portal > Administration > Technique > Click on your « API ID » > Edit > Generate a password > Copy the password > Click « Update »
POS IDUnique identifier for your Point of Sale (POS) (UUID)CentralPay Merchant Portal > Configuration > Points of Sale > Copy the ID of the relevant Point of Sale (POS)
EndpointCentralPay API URLIn the test environment: https://test-api.centralpay.net/
In production: https://api.centralpay.net/
CurrencyCurrency of accepted paymentsConfigure according to the store (EUR recommended)
Payment MethodTechnical Payment Integration MethodLeave the default value as « Direct Post »
Displaying the FormDisplay the form on a dedicated page or on the shopping cart pageSelect the desired view (recommended: dedicated security page)
Order Status After Successful PaymentStatus the order will have after payment is confirmed« Payment Accepted » (or any other status configured in PrestaShop)

⚠️ Be sure to copy and paste the Merchant Public Key exactly as it appears, without any spaces or extraneous characters.

3. How It Works

When a customer selects CentralPay as a payment method:

  1. They are redirected to a secure page (hosted or integrated)
  2. He enters his credit card information
  3. The payment has been authorized by the bank (including 3D Secure)
  4. The order is confirmed in PrestaShop with the status set to
  5. A webhook automatically notifies CentralPay and PrestaShop of the payment outcome

4. Test / Production Mode

  • In test mode, you can use the test cards provided in the developer documentation
  • In production mode, only activated merchants (with validated KYC) can receive payments

To switch modes, changethe endpoint in the module’s configuration.

5. Support

If you have any questions:

  • Contact CentralPay support through the Merchant Portal at > Help & Support
  • Or directly at support.centralpay.com

Magento

1. Download the module

  • For Magento ➝ Download the plugin (v1.0)
ℹ️ This module is compatible with Magento 1.7 and later

2. Installing the plugin

2.1 Extract the archive

Unzip the downloaded .zip file. You will get the following folders:

  • app/
  • js/
  • skin/
  • centralpay.sql (SQL file to run)

2.2. Copy the files

Copy all the folders (app, js, skin) to the root of your Magento installation. They will automatically be integrated into the existing directory structure.

2.3. Run the SQL script

Run the file ` centralpay.sql ` on your Magento site’s database.

⚠️ Use phpMyAdmin or any other database management tool to import this file.
⚠️ Be sure to back up your database before running the script.

3. Module Configuration

Once the module is installed, log in to your Magento admin interface to enter the CentralPay settings.

3.1. Go to Settings

In the Magento admin menu, go to: Stores Configuration Sales Payment Methods CentralPay

3.2. Fields to Fill In

Field in MagentoDescriptionRequiredAccess to Data
Enable CentralPayEnables the module in the Magento environment.✅ YesMagento
TitleName of the payment method as displayed to the customer.✅ YesMagento
Merchant ID (merchantLogin)API ID provided by CentralPay.✅ YesCentralPay Merchant Portal > Administration > Technical Support > Click on your “API ID” > Copy the “login”
API Password (merchantPassword)API password associated with the ID.✅ YesCentralPay Merchant Portal > Administration > Technique > Click on your « API ID » > Edit > Generate a password > Copy the password > Click « Update »
Merchant Public Key (merchantPublicKey)Encryption key used to secure card data.✅ YesCentralPay Merchant Portal > Administration > Technical Support > Copy the “Merchant Public Key”
POS IDUnique identifier for your Point of Sale (POS) (UUID)❌ NoCentralPay Merchant Portal > Configuration > Points of Sale > Copy the ID of the relevant Point of Sale (POS)
Return URL (returnUrl)Allows you to redirect the customer to Magento after payment. Can be left blank to use automatic redirection. ❌ NoMagento
Test Mode (sandbox)Allows you to use the CentralPay test environment.❌ NoMagento
Pending OrderMagento status used if the payment is in progress or pending (e.g., 3DS).❌ NoMagento
Order ConfirmedMagento status used if the payment is accepted.❌ NoMagento

4. Test Mode and Sandbox Environment

The module offers a sandbox option that can be enabled in the Magento admin panel.

ℹ️ Use the CentralPay sandbox environment to simulate payments before going live.

Be sure to use the test API credentials (username, password, public key) provided by CentralPay.

5. Customer Experience

  1. The customer adds items to the shopping cart and proceeds to checkout
  2. At checkout, he selects CentralPay as his payment method
  3. He is redirected to the secure CentralPay payment interface
  4. Once the payment is processed (or there is a refusal), the customer is redirected to your Magento site
  5. The order status is updated automatically

6. Payment Tracking

  • From Magento: You can view the status of orders and payments in the standard back office
  • From CentralPay: All transactions are also visible in your CentralPay interface (transactions, refunds, Rejections, etc.)

7. Technical Support

If you have any questions:

  • View the CentralPay technical documentation: docs.centralpay.com
  • Contact our support team: support.centralpay.com

Support is available in French and English.

Best practices

VAT Returns by Country

CentralPay does not identify buyers’ VAT countries: this is the Merchant’s responsibility. To ensure your tax filings are accurate, collect the buyer’s country of residence, keep your records, and submit them to CentralPay so they can be included in your export files and transaction histories.

Target audience: B2C merchants selling goods or services in several European Union countries.

1) General Principle

The applicable VAT depends on the buyer’s (end consumer ‘s) country of residence, not on the Merchant’s country or the payment method used.

The merchant must therefore determine, record, and report the customer’s country in order to apply the correct VAT rate. CentralPay has neither the regulatory authority nor the technical capability to determine this country on the merchant’s behalf.

In short: You are responsible for collecting and storing the information needed to determine the VAT country.

2) Why CentralPay Cannot Determine the Customer’s Country

The technical indicators available to a PSP (card, IP address, etc.) do not allow for reliable identification of the buyer’s country:

  • BIN Country (card): unreliable for VAT purposes. Online bank cards are often issued in a country other than the cardholder’s.
  • IP Country: May be inaccurate when using a VPN, proxy, mobile device, or cloud service.
  • Payer ≠ Buyer: The person who pays is not necessarily the person liable for VAT (e.g., a card belonging to a family member or an employer).

That is why CentralPay does not perform any analysis to identify the customer’s country. Only the Merchant has the valid tax information.

3) What You Need to Do as a Merchant

3.1 Collect the buyer’s country

  • Integrate the billing country selection into your checkout process.
  • Send this information to CentralPay via the API at the time of the transaction.

3.2 Submit the country to CentralPay

Data typeField to fill inDescription
Buyer’s country (required)Customer > countryISO 3166-1 alpha-2 code for the customer’s country.
⚠️ If you do not enter the information at Customer.country, CentralPay will not be able to display or export the countries of your buyers. Your export files will therefore not be sufficient to support your VAT filings. 

4) What CentralPay Provides in the Exports

CentralPay provides export files that include :

ColumnSourceUsage
Customer > countryAmount provided by the Merchant via Customer > countryDeclaratory statement from the Merchant, to be used for VAT purposes.
Transaction > end_user_ipBuyer’s IP addressTechnical indicator is inconclusive.
Transaction > card_countryCountry of the card used by the buyerTechnical indicator is inconclusive.
sctTransaction > ibanBuyer’s IBAN for Bank transfer (including the country code)Technical indicator is inconclusive.
bankAccount > ibanBuyer’s IBAN for SEPA Direct Debit (including the country code)Technical indicator is inconclusive.

Custom exports can be set up if you want to include additional fields or formats (SFTP, email, etc.).

5) Best Practices for VAT Compliance

  1. Always collect the billing country on the front end (required field or derived from the Customer Profile).
  2. Cross-check at least two non-contradictory pieces of evidence for each order.
  3. Handling Discrepancies: If the information differs (e.g., IP ≠ map), request supporting documentation before billing.
  4. Retain records for at least 10 years (the legal retention period for digital services in the EU).
  5. Register with the OSS/IOSS if you sell to consumers in multiple EU countries.
  6. Link invoices, transactions, and receipts for each sale.

6) Case Examples

LocationData CollectedRecommended Action
Address = FR, BIN = FRTwo pieces of corroborating evidenceInvoice with French VAT
Address = FR, BIN = DE, IP = DEDivergenceRequest a receipt before billing
No countries includedMissing dataPotential Non-Compliance – Correct Your Course

7) FAQ

Can CentralPay determine the country for me?
No. We provide guidance (BIN countries, etc.), but the decision and the tax documentation are your responsibility.

Can I rely solely on the BIN?
No, the BIN is not a reliable source of information. Always use the billing country as your primary reference.

How can I verify that my exports are complete?
Check to see if the  » buyer_country_declared  » field is present in your files. If the field is empty, your front-end system did not include the country.

Merchant-Initiated Transaction (MIT)

Introduction

A Merchant-Initiated Transaction (MIT) is a payment initiated without any interaction from the cardholder, carried out under a preexisting contract between the merchant and its customer. This model applies to recurring, variable, or usage-based billing.

Under PSD2, a MIT may be exempt from SCA authentication, provided that:

  1. The merchant has a valid contractual authorization,
  2. An initial CIT transaction authenticated using 3DS has been completed.

MITs are therefore based on a previous successful authentication combined with a Customer and a cardToken.

Documentation 3DS 2.2 (General)

1. CIT and MIT: What’s the Difference?

Customer-Initiated Transaction (CIT)

A CIT transaction is initiated by the account owner. It generally involves 3DS authentication.

Roles of the Initial CIT in an MIT workflow:

  • authenticate the card and the cardholder,
  • confirm the creation of a Customer,
  • allow the generation of a cardToken,
  • serve as a reference for future MITs.

Merchant-Initiated Transaction (MIT)

An MIT is initiated by the Merchant without any action on the part of the account holder, in accordance with the agreement entered into with the customer.

Use Cases:

  • monthly billing with a variable amount,
  • additional one-time fees,
  • usage-based model.

2. Requirements for Conducting MITs

Two conditions must be met:

2.1. Processing an Initial Authenticated CIT (3DS)

This CIT must be:

  • authenticated via 3DS,
  • captured,
  • associated with a Customer and a cardToken.

2.2. Existence of a Valid Commercial Power of Attorney

The scope of work must include:

  • the nature of the services,
  • the future amount (fixed or variable),
  • billing terms and frequency,
  • the customer’s explicit consent to future payments.
Documentation CustomForm Payment Form

3. Amount of the Initial CIT

It is perfectly acceptable to make an initial CIT payment in a nominal amount (for example , €1 or €0.01) in order to:

  • authenticate the card,
  • approve the commercial contract,
  • Generate a token that can be used for future MITs.

The initial CIT does not have to cover the actual amount of future MITs.

Note: Zero-euro transactions of the “verification/authenticated card imprint” type work for certain schemes but are not universally supported by partner banks; hence the recommendation to use an authenticated CIT transaction.
Additionally, although a nominal CIT transaction is technically acceptable, the issuer may—depending on its risk profile, the payment scheme, or the account’s tenure—decide to trigger a 3DS challenge during a subsequent MIT transaction."

4. Validity Period of a CIT for Generating MITs

There is no limit imposed by CentralPay.
The validity period depends solely on:

4.1. From the issuing ACS (the holder’s bank)

Practices observed in the sector:

  • Retention period for authentication records: ≈ 13 months,
  • For certain issuers: up to 36 months.

After the 3DS token expires, MITs may be subject to:

  • of soft declines,
  • authentication requests,
  • « SCA required » rejections.

4.2. On the Use of 3DS 2.2 – 3RI

In some cases, the Merchant may renew an issuer-side authentication via 3RI in order to extend the mandate’s validity period.

Availability of diagrams:

  • CB: operational support,
  • Mastercard: Operational Support,
  • Visa: Support is currently under development and is not reliable at this time.
Documentation 3DS 2.2 – 3RI

5. Can an MIT require 3DS authentication?

Yes. An MIT may, in exceptional cases, be reclassified as a CIT by the issuer (ACS), particularly in the following cases:

  • long history of the original CIT,
  • suspected fraud,
  • the issuer’s RBA rules,
  • amounts that are unusual or higher than expected.

Reducing the Risk of 3DS Requests

  • Use 3RI when supported,
  • maintain a clear contractual framework,
  • Take the CIT again in the event of repeated failures.
Pour en savoir plus 3DS 2.2 FAQ

6. MIT Transactions or CentralPay’s Subscription Service: Which Should You Choose?

It is not required to use the Subscription module to perform MITs.

6.1. Use the subscription service if:

  • The amounts are fixed,
  • the frequency is recurring,
  • The concept is similar to that of a subscription.

6.2. Use MIT transactions if:

  • The amounts vary (usage-based model),
  • Invoices are issued on a one-time basis,
  • Debit transactions must be initiated by the Merchant.
Documentation Recurring Card Transaction

7. API Implementation: Perform an MIT Transaction

7.1. Initial CIT

During the CIT transaction:

  • creation of a web customer,
  • Generating a cardTokenId,
  • 3DS authentication.

7.2. MIT Transaction

Each MIT transaction must include:

  • customerId,
  • cardTokenId (or cardId),
  • specifying the MIT context in the transaction parameters,
  • the metadata needed to link the MIT to the original CIT.
Documentation Recurring Card Transaction >: Subscription Based on Successive Transactions

8. Best Practices for Improving the Reliability of an MIT Workflow

8.1. Techniques

  • initiate MITs shortly after billing,
  • combine payments when appropriate,
  • use 3RI to refresh authentication,
  • Maintain a stable cardToken.

8.2. Handling Refuses

  • If the code indicates « SCA required » (
    ), offer the customer a new CIT (manual payment); if the code indicates « MIT required » (
    ), recreate an MIT mandate.

8.3. Contract Workers

  • Keep proof of the order: Terms and Conditions, acceptance logs, contract, customer information page.

9. MIT FAQ

Is a CIT of 1 € sufficient for an MIT mandate?

Yes, if it is 3DS-authenticated.

How long does a CIT continue to generate MITs?

It depends on the ACS: generally 13 to 36 months.

Can an MIT trigger 3DS?

Yes, if the ACS requires it (RBA, CIT tenure, atypical amounts).

Should I use « Subscription » for variable amounts?

No, the subscription service is generally designed for fixed subscription models. The recommended approach is to perform an initial CIT transaction followed by ad hoc MIT transactions.

What should you do if a customer changes their card?

A new CIT is required to generate a new token.

Verification of Payee (VoP)

Effective October 9, 2025, European regulations require banks to implement Verification of Payee (VoP) for all SEPA bank transfers (Regulation (EU) 2024/886, Article 5c).

The goal is to protect consumers from IBAN fraud.

1. Operation

When a bank transfer is initiated, the payer’s bank must verify that the beneficiary’s name entered matches the name associated with the IBAN. The result of this verification is displayed to the payer:

  • MATCH: exact match
  • CLOSE MATCH: partial match (e.g., typo, abbreviation, particle)
  • NO MATCH: No matches found
  • CHECK NOT POSSIBLE: Verification not possible
⚠️ The payer is free to decide whether or not to proceed with the bank transfer.
However, a "NO MATCH" or "CLOSE MATCH" significantly increases the risk that the transaction will be abandoned.

2. Impacts on Merchants

To prevent bank transfers from being rejected or abandoned, it is essential to verify that the name displayed to your customers matches the business name registered on your CentralPay account.

Common cases:

  • Trade name / business name / brand name → If you are known by a name other than your legal business name, please provide us with those names. We can enter them manually to improve the match rate.
  • vIBAN CentralPay → Verify that your interfaces and media correctly display the business name of the CentralPay account owner associated with the IBAN.
  • SmartForm (PaymentRequest) → No action required: CentralPay automatically displays the account owner.
  • Quotes, invoices, external communications → Make sure the company name listed is the same as the one on the Bank Account you provide to your customers.
Key points: 
- Verify that your business name is correctly registered and communicated.
- Submit your trade names or trademarks to CentralPay if you wish to have them recognized.
- Ensure that your documents (invoices, quotes, emails) match the official name on your Bank Account.
- Verify that your documents (invoices, quotes, emails) match the official name on your Bank Account. - Inform your customers:
* When they make a bank transfer, the beneficiary name they enter must match your business name exactly.
* If they see a “Close match” or “No match” alert in their banking app, ask them to verify the name they entered.

FAQ - Verification of Payee

Effective October 9, 2025, Verification of Beneficiary (VoP) will become mandatory for all SEPA bank transfers, whether standard or instant. This system, which is free for users, aims to enhance payment security by reducing both:

  • Bank transfer fraud (particularly fraud involving fake bank account information),
  • errors in entering the IBAN or the Beneficiary’s name.

Specifically, before executing a bank transfer, the payer’s financial institution must check with the Beneficiary’s financial institution to verify that the IBAN matches the account owner’s name. If there is a discrepancy, an alert is displayed to the Payer, who remains free to decide whether or not to proceed with the transaction.

Challenges of the Program

  • User protection: limiting misdirected or fraudulent bank transfers.
  • SEPA Payment System Security: Supporting the Rollout of Instant Bank Transfers in Europe.
  • Business and Consumer Confidence: Improving the Transparency and Reliability of Payments.
  • European harmonization: establishing a common standard for all PSPs (banks, payment institutions, and Electronic money institutions).

Legal Basis

  • Regulation (EU) 2021/1230 on instant bank transfers in euros and amending Regulation (EU) No. 260/2012 (SEPA), which introduces the VoP requirement.
  • Regulation (EU) 2015/847 on information accompanying fund transfers, which requires the accurate transmission of information about the Payer and the Beneficiary.
  • Monetary and Financial Code:
    • Articles L.133-6 and L.133-7 concerning the authorization of payment transactions and the accuracy of information,
    • Articles L.561-5 et seq. concerning due diligence obligations in the area of AML/CFT.
  • ACPR doctrine, which in several decisions has penalized the inadequacy of verification procedures and the failure to ensure that a customer’s identity matches their account

Frequently Asked Questions (FAQ)

1. What is VoP?

The Payment Order Verification (VoP) is a regulatory service established at the European level.
It automatically compares the name of the Beneficiary of the bank transfer with the IBAN provided by the Payer before the bank transfer is executed.
Objective: to enhance payment security and reduce fraud (particularly fraud involving fake bank account information).

2. Who is affected?

  • Payers: individuals or businesses that initiate a bank transfer.
  • Beneficiaries: Any individual or entity that receives bank transfers (you, as a CentralPay customer).
  • Payment Service Providers (PSPs): banks, payment institutions, or Electronic money institutions, which must integrate VoP into their systems.

3. How does VoP actually work?

When a bank transfer is initiated:

  1. The payer enters the IBAN and the beneficiary’s name.
  2. The sender’s bank queries the beneficiary’s payment service provider (via a secure channel) to verify that the IBAN matches the name on file for the beneficiary.
  3. The response is sent back to the payer’s PSP and displayed to the payer.

4. What results might occur?

There are three possible scenarios:

  • Exact match: The IBAN and name match → the bank transfer can be initiated without a warning.
  • Partial match: The IBAN matches, but the name is different (typos, abbreviations, different spelling). The payer receives a warning and can:
    • correct the name,
    • or confirm that this is indeed the intended Beneficiary.
  • Mismatch: The IBAN and name do not match → the payer receives a high-priority alert. The payer can cancel the transaction or decide to proceed by accepting the risk.

Does the VoP block a bank transfer?

No. VoP does not block the execution of a bank transfer. It provides additional information to the Payer, who remains free to approve or reject the transaction.
However, some banks may set internal rules to block transactions in the event of a complete mismatch.

What kind of data exchanges take place between banks and PSPs?

  • The Beneficiary’s PSP (e.g., CentralPay) stores the exact name of the account owner in its database.
  • When a VoP query is made, it responds with a standardized code indicating: match, partial match, or no match.
  • These transactions are secure, traceable, and limited to only the necessary data, in accordance with Regulation (EU) 2015/847 on the reporting of bank transfers.
  • No other personal data (address, KYC documents, etc.) is shared.

What are the benefits of VoP?

  • For the payer: reduced risk of bank transfer fraud; detection of data entry errors.
  • For the beneficiary: reduced payment delays caused by errors; protection of the company’s reputation with its customers.
  • For the financial system: improved fraud prevention and compliance with European standards.

What should I do as a CentralPay Beneficiary?

  • Provide your customers with the correct IBAN and the exact name on file with CentralPay (full company name, without abbreviations).
  • Make sure your invoices, contracts, and other documents always include the same bank account information.
  • If your company name changes or you start using a trade name, notify your customers and CentralPay promptly so that your information can be updated.

What happens if there are frequent discrepancies?

If your customers frequently encounter VoP alerts when making bank transfers, this may indicate that your bank account information is not being provided consistently.

CentralPay can help you review and standardize your payment information to avoid friction.

Illustration of VoP by the CNMP

Logos et visuels

Articles

  • Logos CentralPay
  • Logos PaySecure
  • Visuels de réassurance (FR/EN)

Logos CentralPay

Logo CentralPay SVG
Logo CentralPay blanc SVG
Logo CentralPay PNG
Logo CentralPay blanc PNG

Logos PaySecure

1. Logos

Logo PaySecure classique PNG
Logo PaySecure blanc PNG
Logo PaySecure classique JPG

2. Visuels de réassurance (FR/EN)

Réassurance – fond blanc
Réassurance – fond transparent
Réassurance – blanc
Réassurance – fond blanc
Réassurance – fond transparent
Réassurance – blanc

Visuels de réassurance (FR/EN)

Intégrez un de ces visuels en dessous de votre formulaire de paiement CustomForm, ou simplement dans le footer de votre site afin de rassurer vos clients concernant la sécurité de leurs données de paiement.

1. Version française

Réassurance 1 – classique
Réassurance 1 – fond blanc
Réassurance 1 – blanc
Réassurance 2 – classique
Réassurance 2 – fond blanc
Réassurance 2 – blanc
Réassurance 3 – classique
Réassurance 3 – fond blanc
Réassurance 3 – blanc
Réassurance 4 – Avec Amex
Réassurance 4 – Amex fond blanc
Réassurance 4 – Amex blanc
Réassurance 5 – Avec Amex
Réassurance 5 – Amex fond blanc
Réassurance 5 – Amex blanc
Réassurance 6 – Avec Amex
Réassurance 6 – Amex fond blanc
Réassurance 6 – Amex blanc

2. Version anglaise

Réassurance 1 – classique
Réassurance 1 – fond blanc
Réassurance 1 – blanc
Réassurance 2 – classique
Réassurance 2 – fond blanc
Réassurance 2 – blanc
Réassurance 3 – classique
Réassurance 3 – fond blanc
Réassurance 3 – blanc
Réassurance 4 – Avec Amex
Réassurance 4 – Amex fond blanc
Réassurance 4 – Amex blanc
Réassurance 5 – Avec Amex
Réassurance 5 – Amex fond blanc
Réassurance 5 – Amex blanc
Réassurance 6 – Avec Amex
Réassurance 6 – Amex fond blanc
Réassurance 6 – Amex blanc

Logos and visuals

Articles

  • CentralPay Logos
  • PaySecure Logos
  • Reinsurance Visuals (FR/EN)

CentralPay Logos

CentralPay SVG Logo
White CentralPay Logo (SVG)
CentralPay Logo PNG
White CentralPay Logo PNG

PaySecure Logos

1. Logos

Classic PaySecure Logo (PNG)
White PaySecure Logo PNG
Classic PaySecure Logo (JPG)

2. Reassurance visuals (FR/EN)

Reinsurance – White Background
Reinsurance – Transparent Fund
Reinsurance – blank
Reinsurance – White Background
Reinsurance – Transparent Fund
Reinsurance – blank

Reinsurance Visuals (FR/EN)

Integrate one of these images below your CustomForm payment form, or simply in your website’s footer, to reassure your customers about the security of their payment information.

1. French version

Reinsurance 1 – Traditional
Reinsurance 1 – White Background
Reinsurance 1 – blank
Reinsurance 2 – Traditional
Reinsurance 2 – White Background
Reinsurance 2 – blank
Reinsurance 3 – Traditional
Reinsurance 3 – White Background
Reinsurance 3 – blank
Reinsurance 4 – With Amex
Reinsurance 4 – Amex White Background
Reinsurance 4 – White Amex
Reinsurance 5 – With Amex
Reinsurance 5 – Amex White Background
Reinsurance 5 – White Amex
Reinsurance 6 – With Amex
Reinsurance 6 – Amex White Fund
Reinsurance 6 – White Amex

2. English version

Reinsurance 1 – Traditional
Reinsurance 1 – White Background
Reinsurance 1 – blank
Reinsurance 2 – Traditional
Reinsurance 2 – White Background
Reinsurance 2 – blank
Reinsurance 3 – Traditional
Reinsurance 3 – White Background
Reinsurance 3 – blank
Reinsurance 4 – With Amex
Reinsurance 4 – Amex White Background
Reinsurance 4 – White Amex
Reinsurance 5 – With Amex
Reinsurance 5 – Amex White Background
Reinsurance 5 – White Amex
Reinsurance 6 – With Amex
Reinsurance 6 – Amex White Fund
Reinsurance 6 – White Amex

Transferts de paiements

Articles

  • Informations générales
  • Transfert indépendanttransfer / transferReversal
  • Transfert via Transaction ou PaymentRequesttransaction / paymentRequest
  • Versement sortant pour tiers
  • Retours, statuts et webhooks

Informations générales

La solution Easy Wallet permet aux plateformes d’encaisser des paiements et de les transférer à des tiers tout en respectant la réglementation européenne.

Pour ce faire, le module comprend deux principaux services :

  • L’inscription, permettant la création de comptes de paiement et de monnaie électronique pour les marchands d’une plateforme
  • Le transfert, permettant le transfert des transactions vers ces comptes de paiement et de monnaie électronique

Selon le modèle de contractualisation CentralPay, les possibilités d’inscription et de transferts sont différentes.

1. Les types de transferts

Selon le modèle de partenariat établi avec CentralPay, le transfert des paiements est réalisé différemment :

  • Partenaires MOBSP : Vous devez utiliser le service de transfert via transaction
  • Agents PSP : Vous pouvez utiliser le service de transfert libre ou transfert via transaction
  • Distributeurs de ME : Vous devez utiliser le service de transfert via transaction pour la phase d’encaissement en devise. Ensuite, vous pouvez utiliser le service de transfert libre uniquement pour mouvementer la monnaie électronique entre les comptes de vos marchands participants

Pour connaitre votre modèle de partenariat, veuillez vous rapprocher de votre contact CentralPay.

Transfert indépendant

1. Créer un transfert (Create a Transfer)

La fonction Create a Transfer permet aux marchands mandataires (Agents ou DME) de transférer des fonds entre deux comptes de leurs marchands participants. Ce transfert peut être initié :

  • Par un Agent lorsque les comptes sont des comptes de paiement
  • Par un DME lorsque les comptes sont des comptes de monnaie électronique

1.1. Cas d’usage

Ce mécanisme permet par exemple :

  • À un Agent d’orchestrer des débits et des crédits de fonds entre lui et ses marchands participants, ou vers des comptes destinataires définis
  • À un DME d’opérer des transferts de monnaie électronique entre ses marchands participants (par exemple dans le cadre d’une place de marché C2C)

CentralPay reste en charge de l’exécution effective des opérations, dans le cadre de la relation contractuelle avec les marchands participants.

1.2. Paramètres requis

ChampTypeObligatoireDescription
destinationWalletIdUUID✅ OuiIdentifiant du compte Centralpay destinataire (appartenant à un marchand participant).
amountInteger (en cents)✅ OuiMontant du transfert. Doit être strictement supérieur à 0.
sourceIdUUID✅ Oui, si sourceType est renseignéIdentifiant de la source de fonds (ex. : transaction, virement, crédit, SDD).
sourceTypeEnum✅ Oui, si sourceId est renseignéSource du transfert : TRANSACTION, SCT_TRANSACTION, CREDIT, SDD.

1.3. Paramètres optionnels

ChampTypeDescription
emissionWalletIdUUIDCompte émetteur si différent du compte principal du marchand mandataire.
currencyCode ISODevise du transfert (si différente de celle du compte).
feeIntegerMontant de la commission prélevée par le marchand mandataire, déduite du montant. Par défaut : 0.
escrowDateDate ISODate à partir de laquelle le transfert devient effectif. Peut être utilisée pour définir une période de blocage temporaire.
merchantTransferIdStringRéférence métier du marchand mandataire (max 100 caractères).
transferGroupStringGroupe de rattachement pour regrouper plusieurs transferts.
descriptionStringDescription libre (max 256 caractères).
additionalDataKey/ValueDonnées complémentaires sous forme de paires clé/valeur (max 256 caractères par valeur).
metaDataJSONMétadonnées complémentaires structurées.
purposeCode / purposeMessageEnum / StringFinalité du transfert, selon une nomenclature standard. Voir la liste des codes.

1.4. Règles de validation

  • Le destinationWalletId doit correspondre à un compte valide d’un marchand participant du mandataire
  • Le sourceId ne peut être utilisé que si l’objet lié est dans un statut accepté (CAPTURE, CLEARED, etc.)
  • Le montant autorisé dépend du solde disponible ou des fonds liés à la source (transaction, virement, etc.)

2. Fonctions complémentaires liées aux transferts

Les marchands mandataires disposent de plusieurs fonctions de gestion post-création d’un transfert, leur permettant d’ajuster, consulter ou annuler une opération, sous conditions.

2.1. Modifier un transfert (Update a Transfer)

Cette fonction permet de modifier certains paramètres d’un transfert existant, à condition qu’il ne soit pas encore exécuté (statut PENDING).

Paramètres disponibles :

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert à modifier.
merchantTransferIdString❌ NonRéférence marchand mandataire.
escrowDateDate ISO❌ NonNouvelle date d’exécution différée.
transferGroupString❌ NonRegroupement de transferts.
descriptionString❌ NonDescription libre (max 256 caractères).
additionalDataKey/Value❌ NonDonnées complémentaires.
metaDataJSON❌ NonMétadonnées structurées.

La modification de la date d’escrow est notamment utile dans les flux conditionnés (ex : marketplace, délais de rétractation…).

2.2. Annuler un transfert (Cancel a Transfer)

Un transfert peut être annulé tant qu’il n’a pas encore été exécuté (statut PENDING). Cette annulation est irréversible : l’opération apparaîtra comme CANCEL dans les historiques du compte.

Paramètres :

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert à annuler.

⚠️ Une fois que les fonds sont disponibles (statut TRANSFERRED), cette fonction n’est plus accessible. Il faudra alors utiliser un TransferReversal.

2.3. Consulter un transfert (Retrieve a Transfer)

Permet d’obtenir l’ensemble des détails d’un transfert via son identifiant CentralPay.

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert.

2.4. Rechercher plusieurs transferts (List Transfers)

Permet de rechercher une liste de transferts selon plusieurs critères. Tous les paramètres sont optionnels.

ParamètreTypeDescription
merchantTransferIdString (100)Référence marchand mandataire.
destinationWalletIdUUIDCompte destinataire.
transferGroupStringGroupe de transferts.
statusEnumPENDING, TRANSFERRED, CANCEL.
after / beforeDate ISOFiltrer par date de création.
limitIntegerNombre de résultats par page.
pageIntegerIndex de la page de résultats.

3. Retourner un transfert exécuté (Transfer Reversal)

Une fois un transfert exécuté (statut TRANSFERRED), il ne peut plus être annulé via la fonction Cancel. Il est alors nécessaire de passer par une opération dédiée appelée TransferReversal. Elle ne supprime pas le transfert d’origine : celui-ci reste visible, historisé et traçable.

Cette fonction est accessible uniquement aux marchands mandataires (Agent pour les comptes de paiement, DME pour les comptes de monnaie électronique), et doit respecter les règles de disponibilité des fonds.

3.1. Conditions d’utilisation

Le transfert initial doit :

  • Être dans le statut TRANSFERRED
  • Avoir des fonds disponibles dans le compte destinataire
  • Ne pas avoir déjà été remboursé dans sa totalité via des opérations de reversal

Le montant retourné doit être :

  • Inférieur ou égal au solde disponible du compte destinataire
  • Inférieur ou égal à la somme initialement transférée
  • Diminué des éventuels reversals déjà effectués sur le transfert concerné

3.2. Créer un TransferReversal

Permet de retourner un montant vers le compte émetteur d’origine.

ChampTypeObligatoireDescription
transferIdUUID✅ OuiIdentifiant du transfert d’origine.
amountInteger✅ OuiMontant à rembourser (en centimes).
merchantTransferReversalIdString❌ NonRéférence marchand mandataire pour le suivi.
refundFeeBoolean❌ NonIndique si les frais du transfert initial sont remboursés (par défaut : true).
feeInteger❌ NonMontant des frais associés au reversal.
descriptionString❌ NonTexte libre explicatif (max. 256 caractères).
escrowDateDate ISO❌ NonDate d’exécution différée si applicable.
additionalDataKey/Value❌ NonPaires clé/valeur pour les besoins métier.

⚠️ Si le champ refundFee est défini à false, le montant des frais initiaux reste acquis et n’est pas restitué au compte source.

Règles importantes :

  • L’opération est visible dans les mouvements du compte (débit du compte destinataire, crédit du compte d’origine)
  • Plusieurs reversals peuvent être effectués sur un même transfert, dans la limite du montant total initial
  • Si les fonds ne sont pas disponibles, l’appel est rejeté avec une erreur explicite (insuffisance de solde ou montant trop élevé)

4. Fonctions complémentaires (TransferReversal)

Ces fonctions permettent de gérer et consulter les opérations de retour de transfert exécuté (TransferReversal), une fois créées.

4.1. Modifier un TransferReversal (Update)

Permet de modifier certaines informations sur un TransferReversal déjà créé.

ChampTypeObligatoireDescription
transferReversalIdUUID✅ OuiIdentifiant du TransferReversal à modifier
merchantTransferReversalIdString❌ NonRéférence marchand mandataire pour le suivi
descriptionString❌ NonTexte explicatif libre (256 caractères max)
escrowDateDate (ISO)❌ NonNouvelle date différée d’exécution, si applicable
additionalDataKey/Value❌ NonPaires clé/valeur pour usage métier spécifique

Cette fonction est accessible uniquement au niveau PARTNER ou supérieur.

4.2. Consulter un TransferReversal (Retrieve)

Permet de consulter les détails d’un TransferReversal à partir de son identifiant.

ChampTypeObligatoireDescription
transferReversalIdUUID✅ OuiIdentifiant du TransferReversal à consulter

L’objet retourné contient l’intégralité des informations métier, y compris : montant, date, statut, compte concerné, et historique de l’opération.

4.3. Rechercher des TransferReversals (List)

Permet d’interroger l’historique des TransferReversal selon plusieurs critères.

ParamètreTypeObligatoireDescription
merchantTransferReversalIdString❌ NonRéférence marchand mandataire
afterDate ISO❌ NonRetourne les éléments créés après cette date
beforeDate ISO❌ NonRetourne les éléments créés avant cette date
limitInteger❌ NonNombre d’éléments à retourner (par défaut : 10)
pageInteger❌ NonIndex de la page à retourner (par défaut : 1)

Cette fonction permet un suivi complet des opérations de reversal liées à une activité donnée, y compris les cas de multiples retours partiels.

Transfert via Transaction ou PaymentRequest

Contrairement aux transferts indépendants, réservés aux Agents (pour les comptes de paiement) et aux Distributeurs de Monnaie Électronique (DME) (pour les comptes de monnaie électronique), les transferts via transaction sont accessibles à l’ensemble des modèles de partenariat, y compris aux Partenaires Techniques non régulés.

Dans ce cadre, le partenaire transmet à CentralPay, au moment de la création d’une transaction (par carte, virement ou prélèvement), des données commerciales contextualisées (ex. : montant du panier, commission, identifiants des wallets destinataires…)

ℹ️ L’appel API ne crée pas directement le mouvement financier : CentralPay instruit le transfert de manière autonome, après validation effective de la transaction (capture d’une opération carte, réception d’un virement, ou exécution d’un prélèvement SEPA).

Le modèle de transfert conditionné permet de réaliser un mouvement de fonds à l’issue d’une transaction : carte, virement (SCT), ou prélèvement (SDD). Dans ce cas, le transfert est directement paramétré lors de la création de la transaction, via un champ dédié transfer[].

Cette méthode ne passe pas par l’endpoint /transfer, mais s’appuie sur les endpoints spécifiques des transactions concernées :

  • /transaction pour les paiements par carte : Voir comment créer une transaction CARD ➝
  • /sctTransaction pour les virements reçus : Voir comment créer une transaction SCT ➝
  • /sddTransaction pour les prélèvements SEPA : Voir comment créer une transaction SDD ➝
  • /paymentRequest pour les demandes de paiement : Voir comment créer une demande de paiement ➝

Ce mode de fonctionnement garantit que les fonds sont uniquement transférés si la transaction est réussie. Le transfert devient alors une étape automatisée et synchronisée.

1. Conditions d’utilisation

  • Le transfert est créé en même temps que la transaction (pas d’appel distinct)
  • Il n’est exécuté qu’en cas de succès de la transaction source
  • Il respecte les contraintes de la source (statut, solde disponible, date…)
  • Il peut être instantané ou différé via le champ escrowDate

2. Paramétrer un transfert dans une transaction

Dans les quatre cas de figure, la logique est identique : un tableau transfer[] est renseigné dans le corps de la requête lors de l’appel POST de création de la transaction.

Les champs acceptés dans transfer[] sont les suivants :

ChampTypeObligatoireDescription
destinationWalletIdUUID✅ OuiCompte CentralPay bénéficiaire. Doit appartenir à un marchand participant autorisé.
amountInteger✅ OuiMontant du transfert en centimes.
currencyString❌ NonDevise du transfert (si différente de la devise de la transaction).
merchantTransferIdString❌ NonRéférence partenaire.
feeInteger❌ NonFrais applicables (prélevés sur le montant brut).
escrowDateDate ISO❌ NonDate différée d’exécution (si applicable).
transferGroupString❌ NonIdentifiant de groupe pour les suivis agrégés.
descriptionString❌ NonLibellé du transfert visible sur les relevés.
additionalDataKV pairs❌ NonDonnées métier structurées (clé/valeur).

⚠️ Les règles de disponibilité des fonds (notamment après délai de capture ou de validation) doivent être respectées. Si la transaction est annulée ou échoue, aucun transfert n’est déclenché.

Versement sortant pour tiers

Le versement sortant pour un tiers permet de transférer des fonds depuis un compte de paiement ou monnaie électronique CentralPay vers le compte bancaire d’un marchand participant, en tant que mandataire CentralPay (Agent ou DME). Les partenaires (technique ou intégrateur) n’ont pas accès à cette fonction.

1. Objectif et périmètre

Ce service permet de :

  • Déclencher des versements manuels ou automatisés pour des marchands participants
  • Cibler un compte bancaire autorisé par le marchand participant
  • Utiliser un compte CentralPay comme source des fonds

Le partenaire régulé reste à l’initiative technique du versement, mais les fonds sont toujours détenus et transférés par CentralPay, qui conserve la responsabilité de l’exécution.

2. Méthodes disponibles

2.1. L’API CentralPay

Endpoint : /payout/byThirdParty
➡️ Voir détails ci-dessous.

2.2. Le Portail Marchand CentralPay

Accessible pour les comptes disposant des droits adéquats (Agent ou DME).

  1. Accéder à Comptes liés
  2. Sélectionner le marchand concerné
  3. Accéder à l’onglet Comptes bancaires
  4. Choisir le compte cible et déclencher le payout

3. Endpoint API : /payout/byThirdParty

Ce service permet d’envoyer une instruction à CentralPay pour reverser une somme définie vers un compte bancaire rattaché à un marchand participant.

3.1. Limites d’usage

  • 1 versement / jour / marchand participant / devise
  • Compte bancaire cible validé par le marchand participant
  • Versement uniquement sur fonds disponibles

3.2. Paramètres API (BODY)

ParamètreTypeRequisDescription
currencyISO 4217✅ OuiDevise du versement (doit correspondre au compte bancaire).
destinationBankAccountIdUUID✅ OuiCompte bancaire bénéficiaire (lié au marchand participant).
walletIdUUID❌ NonWallet source des fonds.
amountInteger (en cents)❌ NonMontant à reverser. Si vide : solde maximum.
merchantPayoutIdString❌ NonID de référence interne.
descriptionString❌ NonTexte libre, visible dans le reporting.
payoutReferenceString (max 35)❌ NonRéférence bancaire (visible sur l’opération bancaire).
additionalDataMap❌ NonDonnées complémentaires (ex. : ID commande, segment, etc.).
transitionWalletUUID❌ Non(cas avancé) wallet transitoire.
customerIdUUID❌ NonIdentifiant client si cible non marchande.

4. Suivi des versements

4.1. Récupérer un payout

Endpoint : /payout/byThirdParty/retrieve
Paramètre : payoutId (UUID)

4.2. Lister les payouts

Endpoint : /payout/byThirdParty/list
Paramètre : walletId (UUID)

4.3. Statuts possibles :

StatutSignification
PENDINGVersement en cours de traitement
PAIDVersement exécuté avec succès
CANCELVersement annulé manuellement

5. Contraintes réglementaires

  • Seuls les Agents et Distributeurs de Monnaie Électronique (DME) déclarés à l’ACPR via CentralPay peuvent initier ces versements
  • Les partenaires doivent garantir que les données envoyées sont conformes à leur cadre contractuel et réglementaire
  • CentralPay se réserve le droit de refuser un versement ou d’exiger des documents justificatifs en cas de doute sur l’opération

Retours, statuts et webhooks

1. Codes de retour liés aux transferts

Les transferts réalisés via l’API CentralPay (objet Transfer ou Transfer Reversal) sont des opérations internes entre deux porteurs de comptes CentralPay (ex : marchands, clients, partenaires). Ces opérations sont exécutées de manière synchrone ou quasi-immédiate.

Contrairement aux transactions cartes ou virements bancaires, il n’y a pas de codes de retour bancaire associés à ces transferts internes. En cas d’échec, l’API retourne une erreur HTTP décrivant la cause du rejet (ex : solde insuffisant, compte inactif, devise incompatible…).

Ces erreurs ne sont pas des statuts métier, mais des contrôles d’entrée empêchant la création du transfert. Une fois le transfert accepté, il suit un cycle de vie propre.

2. Statuts liés aux transferts

Consultez les Statuts Transfer ➝

Consultez les Statuts Transfer Reversal ➝

Consultez les Statuts Payout (valables également pour PayoutByThirdParty) ➝

3. Webhooks liés aux transferts

Consultez les Webhooks Transfer ➝

Consultez les Webhooks Transfer Reversal ➝

Consultez les Webhooks Payout (valables également pour PayoutByThirdParty) ➝

Payouts

Articles

  • General information
  • Independent transfertransfer / transferReversal
  • Transfer via Transaction or PaymentRequesttransaction / paymentRequest
  • Payout to a Third Party
  • Responses, statuses, and webhooks

General information

The Easy Wallet solution enables platforms to process payments and transfer them to third parties in compliance with European regulations.

To achieve this, the module includes two main services:

  • The registration, which enables the creation of payment and electronic money accounts for merchants on a platform
  • The transfer, which enables transactions to be transferred to these payment and electronic money accounts

According to the CentralPay contract model, the options for registration and transfers vary.

1. Types of transfers

According to the partnership model established with CentralPay, payouts are processed differently:

  • MOBSP Partners: You must use the transfer service via transaction
  • PSP Agents: You can use the free transfer service or transfer via transaction
  • EM Distributors: You must use the transfer service via transaction for the foreign currency collection phase. Then, you may use the free transfer service only to transfer electronic money between the accounts of your participating merchants.

To find out what type of partnership you have, please contact your CentralPay representative.

Independent transfer

1. Create a Transfer

The Create a Transfer function allows merchant agents (Agents or DME) to transfer funds between two accounts held by their participating merchants. This transfer can be initiated:

  • By an agent when the accounts are payment accounts
  • By an EMD when the accounts are electronic money accounts

1.1. Use cases

For example, this mechanism allows for:

  • An Agent to orchestrate debits and credits of funds between itself and its participating merchants, or to specified recipient accounts
  • An EMD to conduct electronic money transfers between its participating merchants (for example, as part of a C2C marketplace)

CentralPay remains responsible for the actual execution of transactions within the framework of its contractual relationship with participating merchants.

1.2. Required settings

FieldTypeRequiredDescription
destinationWalletIdUUID✅ YesRecipient’s Centralpay account ID (belonging to a participating merchant).
amountInteger (in cents)✅ YesTransfer amount. Must be strictly greater than 0.
sourceIdUUID✅ Yes, if sourceType is specifiedFunds source identifier (e.g., transaction, transfer, credit, SDD).
sourceTypeEnum✅ Yes, if  » sourceId  » is specifiedTransfer source: TRANSACTION, SCT_TRANSACTION, CREDIT, SDD.

1.3. Optional settings

FieldTypeDescription
emissionWalletIdUUIDIssuer’s account, if different from the principal account of the intermediary merchant.
currencyISO CodeCurrency of the transfer (if different from the account currency).
feeIntegerAmount of the commission charged by the Intermediary Merchant, deducted from the total. Default: 0.
escrowDateISO DateThe date on which the transfer takes effect. Can be used to define a temporary hold period.
merchantTransferIdThongIntermediary Merchant business reference (max 100 characters).
transferGroupThongA group to combine multiple transfers.
descriptionThongFree-form description (max 256 characters).
additionalDataKey/ValueAdditional data in the form of key/value pairs (maximum of 256 characters per value).
metaDataJSONAdditional structured metadata.
purposeCode / purposeMessageEnum / StringPurpose of the transfer, according to a standard classification system. See the list of codes.

1.4. Validation Rules

  • The destinationWalletId must correspond to a valid account of a Participant Merchant of the Intermediary
  • The  » sourceId  » can only be used if the linked object has an accepted status (CAPTURE, CLEARED, etc.).
  • The authorized amount depends on the available balance or the funds associated with the source (transaction, bank transfer, etc.)

2. Additional functions related to transfers

Intermediary merchants have access to several post-transfer management features that allow them to adjust, view, or cancel a transaction, subject to certain conditions.

2.1. Update a Transfer

This function allows you to modify certain settings of an existing transfer, provided that it has not yet been executed (status: PENDING).

Available settings:

FieldTypeRequiredDescription
transferIdUUID✅ YesID of the transfer to be modified.
merchantTransferIdThong❌ NoIntermediary Merchant reference.
escrowDateISO Date❌ NoNew execution date postponed.
transferGroupThong❌ NoBatch processing of transfers.
descriptionThong❌ NoFree-form description (max 256 characters).
additionalDataKey/Value❌ NoAdditional information.
metaDataJSON❌ NoStructured metadata.

Changing the escrow date is particularly useful in conditional payment flows (e.g., marketplace transactions, withdrawal periods, etc.).

2.2. Cancel a Transfer

A transfer can be canceled as long as it has not yet been processed (status: PENDING). This cancellation is irreversible: the transaction will appear as CANCEL in the account history.

Settings:

FieldTypeRequiredDescription
transferIdUUID✅ YesID of the transfer to be canceled.

⚠️ Once the funds are available (status: TRANSFERRED), this feature is no longer available. You will then need to use a TransferReversal.

2.3. View a Transfer (Retrieve a Transfer)

Allows you to retrieve all the details of a transfer using its CentralPay ID.

FieldTypeRequiredDescription
transferIdUUID✅ YesTransfer ID.

2.4. Search for Multiple Transfers (List Transfers)

Allows you to search for a list of transfers based on various criteria. All parameters are optional.

ParametersTypeDescription
merchantTransferIdThong (100)Intermediary Merchant reference.
destinationWalletIdUUIDRecipient’s account.
transferGroupThongTransfer group.
statusEnumPENDING, TRANSFERRED, CANCEL.
after / beforeISO DateFilter by creation date.
limitIntegerNumber of results per page.
pageIntegerResults Page Index.

3. Reverse a Completed Transfer (Transfer Reversal)

Once a transfer has been executed (status: TRANSFERRED), it can no longer be canceled using the Cancel function. In this case, you must use a dedicated operation called  » TransferReversal. » This operation does not delete the original transfer; it remains visible, recorded in the history, and traceable.

This feature is available only to Intermediary Merchants (Payment Account Agents and EMDs for Electronic Money Accounts) and must comply with the rules regarding the availability of funds.

3.1. Terms of Use

The initial transfer must:

  • Have the status  » TRANSFERRED« 
  • Have funds available in the recipient’s account
  • Not having already been fully refunded through reversal transactions

The amount refunded must be:

  • Less than or equal to the available balance in the recipient’s account
  • Less than or equal to the amount originally transferred
  • Less any reversals already made on the transfer in question

3.2. Create a TransferReversal

Allows you to return an amount to the original issuing account.

FieldTypeRequiredDescription
transferIdUUID✅ YesOriginal transfer ID.
amountInteger✅ YesAmount to be refunded (in centimes).
merchantTransferReversalIdThong❌ NoIntermediary Merchant reference number for tracking.
refundFeeBoolean❌ NoIndicates whether the initial transfer fees are refunded (default: true).
feeInteger❌ NoAmount of fees associated with the reversal.
descriptionThong❌ NoFree-form explanatory text (max. 256 characters).
escrowDateISO Date❌ NoDeferred execution date, if applicable.
additionalDataKey/Value❌ NoKey-value pairs for business requirements.

⚠️ If the  » refundFee  » field is set to false, the initial fee amount is retained and is not returned to the source account.

Important Rules:

  • The transaction appears in the account activity (debit to the recipient’s account, credit to the originating account)
  • Multiple reversals can be made on a single transfer, up to the initial total amount
  • If funds are not available, the request is rejected with an explicit error message (insufficient balance or amount too high).

4. Additional Functions (TransferReversal)

These functions allow you to manage and view completed transfer return transactions (TransferReversal) once they have been created.

4.1. Edit a TransferReversal (Update)

Allows you to edit certain information about an already created TransferReversal.

FieldTypeRequiredDescription
transferReversalIdUUID✅ YesTransferReversal ID to be modified
merchantTransferReversalIdThong❌ NoIntermediary Merchant reference for tracking
descriptionThong❌ NoFree-form description (256 characters max)
escrowDateDate (ISO)❌ NoNew deferred execution date, if applicable
additionalDataKey/Value❌ NoKey-value pairs for specific business purposes

This feature is available only to users with PARTNER status or higher.

4.2. View a TransferReversal (Retrieve)

Allows you to view the details of a TransferReversal using its ID.

FieldTypeRequiredDescription
transferReversalIdUUID✅ YesTransferReversal ID to view

The returned object contains all business information, including: amount, date, status, relevant account, and transaction history.

4.3. Search for Transfer Reversals (List)

Allows you to search the history of  » TransferReversal  » based on various criteria.

ParametersTypeRequiredDescription
merchantTransferReversalIdThong❌ NoIntermediary Merchant Reference
afterISO Date❌ NoReturns the elements created after this date
beforeISO Date❌ NoReturns the elements created before that date
limitInteger❌ NoNumber of items to return (default: 10)
pageInteger❌ NoIndex of the page to return (default: 1)

This feature provides comprehensive tracking of reversal transactions related to a specific activity, including cases involving multiple partial returns.

Transfer via Transaction or PaymentRequest

Unlike independent transfers, which are reserved for Agents (for Payment Accounts) and Electronic Money Distributors (EMD) (for Electronic Money Accounts), transfers via transactions are available to all partnership models, including unregulated Technical Partners.

In this context, when a transaction is created (via card, bank transfer, or direct debit), the partner sends CentralPay contextualized transaction data (e.g., cart total, commission, recipient wallet IDs, etc.).

ℹ️ The API call does not directly initiate the financial transaction: CentralPay processes the transfer independently after the transaction has been successfully validated (Card Transaction, receipt of a Bank transfer, or execution of a SEPA Direct Debit).

The conditional transfer model allows you to initiate a funds transfer upon completion of a transaction: card payment, bank transfer (SCT), or direct debit (SDD). In this case, the transfer is configured directly when the transaction is created, using a dedicated field transfer[].

This method does not use the /transfer endpoint, but instead relies on the specific endpoints for the relevant transactions:

  • /transaction For card payments: See how to create a Card Transaction ➝
  • /sctTransaction For incoming bank transfers: See how to create an SCT Transaction ➝
  • /sddTransaction For SEPA Direct Debits: See how to create an SDD Transaction ➝
  • /paymentRequest For payment requests: See how to create a payment request ➝

This process ensures that funds are transferred only if the transaction is successful. The transfer then becomes an automated and synchronized step.

1. Terms of Use

  • The transfer is created at the same time as the transaction (no separate call)
  • It is executed only if the source transaction is successful.
  • It adheres to the source’s constraints (status, available balance, date, etc.)
  • It can be done immediately or at a later time using the field escrowDate

2. Set up a transfer within a transaction

In all four scenarios, the logic is the same: an ` transfer[] ` array is included in the request body during the POST call to create the transaction.

The following fields are accepted at transfer[]:

FieldTypeRequiredDescription
destinationWalletIdUUID✅ YesCentralPay Beneficiary account. Must belong to an authorized Participant Merchant.
amountInteger✅ YesTransfer amount in centimes.
currencyThong❌ NoTransfer currency (if different from the transaction currency).
merchantTransferIdThong❌ NoPartner Reference.
feeInteger❌ NoApplicable fees (deducted from the gross amount).
escrowDateISO Date❌ NoDeferred execution date (if applicable).
transferGroupThong❌ NoGroup ID for aggregated tracking.
descriptionThong❌ NoTransfer description visible on statements.
additionalDataKV pairs❌ NoStructured business data (key/value).

⚠️ The rules regarding fund availability (particularly after the capture or validation period) must be followed. If the transaction is canceled or fails, no transfer is initiated.

Payout to a Third Party

An outgoing payout to a third party allows funds to be transferred from a CentralPay Payment Account or Electronic Money Account to the Bank Account of a Participant Merchant acting as a CentralPay Intermediary (Agent or EMD). Partners (technical or integration partners) do not have access to this feature.

1. Purpose and Scope

This service allows you to:

  • Initiate manual or automated payouts for Participant Merchants
  • Target a Bank Account authorized by the Participant Merchant
  • Use a CentralPay account as a source of funds

The regulated partner retains technical control over the payout, but the funds are always held and transferred by CentralPay, which remains responsible for executing the transaction.

2. Available Methods

2.1. The CentralPay API

Endpoint: /payout/byThirdParty
➡️ See details below.

2.2. The CentralPay Merchant Portal

Available to accounts with the appropriate permissions (Agent or EMD).

  1. Go to Linked Accounts
  2. Select the relevant Merchant
  3. Go to the Bank Accounts tab
  4. Select the destination account and initiate the payout

3. API endpoint: /payout/byThirdParty

This service allows you to send an instruction to CentralPay to perform a payout for a specified amount to a Bank Account linked to a Participant Merchant.

3.1. Limits on Use

  • 1 payout per day per Participant Merchant / currency
  • Target Bank Account validated by the Participating Merchant
  • Payouts may only be made from available funds

3.2. API Parameters (BODY)

ParametersTypeRequiredDescription
currencyISO 4217✅ YesCurrency of the payout (must match the Bank Account).
destinationBankAccountIdUUID✅ YesBeneficiary Bank Account (linked to the Participant Merchant).
walletIdUUID❌ NoWallet where the funds come from.
amountInteger (in cents)❌ NoAmount to be paid out. If blank: maximum balance.
merchantPayoutIdThong❌ NoInternal reference ID.
descriptionThong❌ NoFree-form text, visible in the report.
payoutReferenceString (max 35)❌ NoBank reference number (shown on the bank statement).
additionalDataMap❌ NoAdditional data (e.g., order ID, segment, etc.).
transitionWalletUUID❌ No(advanced case) temporary wallet.
customerIdUUID❌ NoCustomer ID if the target is non-commercial.

4. Tracking Payouts

4.1. Claim a payout

Endpoint: /payout/byThirdParty/retrieve
Parameter: payoutId (UUID)

4.2. List the payouts

Endpoint: /payout/byThirdParty/list
Parameter: walletId (UUID)

4.3. Possible articles of association:

StatusMeaning
PENDINGPayout is being processed
PAIDPayout successfully processed
CANCELPayout Canceled Manually

5. Regulatory Constraints

  • Only Electronic money Agents and Distributors (EMDs) registered with the ACPR through CentralPay may initiate these payouts
  • Partners must ensure that the data they submit complies with their contractual and regulatory framework
  • CentralPay reserves the right to refuse a payout or to request supporting documents if there is any doubt about the transaction

Responses, statuses, and webhooks

1. Return Codes Related to Transfers

Transfers made via the CentralPay API (subject: Transfer or Transfer Reversal) are internal transactions between two CentralPay account holders (e.g., merchants, customers, partners). These transactions are executed synchronously or nearly instantly.

Unlike Card Transactions or Bank transfers, there are no bank return codes associated with these internal transfers. If a transfer fails, the API returns an HTTP error describing the reason for the Rejection (e.g., insufficient funds, inactive account, incompatible currency, etc.).

These errors are not business statuses, but rather input validations that prevent the transfer from being created. Once the transfer is accepted, it follows its own lifecycle.

2. Articles of association related to transfers

View the Transfer Articles of association ➝

View the Transfer Reversal Articles of association ➝

View the Payout Articles of Association (also applicable to PayoutByThirdParty) ➝

3. Webhooks Related to Transfers

Check out Transfer Webhooks ➝

View the Transfer Reversal Webhooks ➝

View the Payout Webhooks (also applicable to PayoutByThirdParty) ➝

Mandate

See more about Mandate

jQuery(document).ready( function($) { window.live_6ab3046f628b5 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Mandate.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f628b5", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f628b5.load(); });

Mandate

See more about Mandate

jQuery(document).ready( function($) { window.live_6ab3046fa65f7 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Mandate.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa65f7", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa65f7.load(); });

Test cards Values

This page provides a list of test card PANs you can use to validate your CentralPay integration. Each PAN below triggers a predictable scenario (bank refusal, 3DS authentication outcome, or card attributes such as EEA / region / product type).

Note: 3DS outcome values (transStatus such as Y, C, D, I, N…) are described in the dedicated 3DS 2.2 BRW documentation.

Card details to use: for all test PANs on this page, the expiry date and CVC values are free. The only requirement is that the expiry date must be later than today’s date. The CVC must be 3 digits (for example: 123).

Legend: ✅ Success · ❌ Bank refusal · ⛔ 3DS refused · 🛡️ 3DS · 🔒 3DS Challenge · 🔁 3DS Decoupled · ℹ️ 3DS Info · 🧭 Attributes

Quick test cards (most common scenarios)

PANScenarioWhat you should observe
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)Authorization succeeds with a successful 3DS authentication.
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)Challenge flow expected (you must complete the challenge step to proceed).
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowDecoupled authentication scenario (handling depends on your 3DS implementation).
4556 1041 6038 2032⛔🛡️ 3DS authentication refused (transStatus = N)The API responds with HTTP 200, but the 3DS authentication is refused (transStatus = N) and the payment is declined.
4000 0000 0000 0077❌ Bank refusal – Insufficient funds (51)Authorization is refused with bank return code 51 (Insufficient funds).
4000 0000 0000 0085❌ Bank refusal – Do not honor (5)Authorization is refused with bank return code 5 (Do not honor / refused).

Bank refusal PANs: these PANs are refused at the bank authorization stage regardless of the authentication flow.

Visa Card numbers

1) Bank refusals (regardless of the authentication flow)

PANScenarioDescription
4000 0000 0000 0051❌ Card lost (41)This PAN simulates a bank refusal with return code 41 (Card lost), regardless of the authentication flow.
4000 0000 0000 0069❌ Fraud suspicion (59)This PAN simulates a bank refusal with return code 59 (Fraud suspicion), regardless of the authentication flow.
4000 0000 0000 0077❌ Insufficient funds (51)This PAN simulates a bank refusal with return code 51 (Insufficient funds), regardless of the authentication flow.
4000 0000 0000 0085❌ Do not honor / refused (5)This PAN simulates a bank refusal with return code 5 (Do not honor / refused), regardless of the authentication flow.

2) 3DS scenarios

These PANs are designed to reproduce specific 3DS outcomes (transStatus). If transStatus = C, a challenge flow is expected and must be completed. If transStatus = N, the 3DS authentication is refused and the payment is declined.

PANScenarioDescription
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
4024 0071 7987 2394🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
4234 6319 8242 8908ℹ️🛡️ 3DS information only (transStatus = I)This PAN simulates a 3DS authentication with transStatus = I (Information only), to validate how you handle an informational 3DS outcome.
4234 6319 8242 8916🔁🛡️ 3DS decoupled (transStatus = D) – application flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using an application flow.
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using a browser flow.
4556 1041 6038 2032⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

3) Card attributes simulation (EEA / region / productType / cardType)

These PANs are designed to simulate card metadata (EEA / region / productType / cardType). Use them to validate your business rules, reporting, segmentation, or routing logic based on card attributes.

PANAttributes returnedDescription
4032 0389 8296 2700🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=DEBITThis PAN simulates an EEA consumer debit card in Europe.
4032 0343 8883 4767🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=CREDITThis PAN simulates an EEA consumer credit card in Europe.
4020 0280 0191 2012🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates an EEA consumer card in Europe with cardType=UNKNOWN.
4032 0337 9569 2248🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
4032 0368 1354 0364🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=CREDITThis PAN simulates an EEA corporate credit card in Europe.
4032 0387 5662 0096🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates an EEA corporate card in Europe with cardType=UNKNOWN.
4032 0358 5604 7592🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=DEBITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and DEBIT.
4032 0302 9068 3219🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=CREDITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and CREDIT.
4032 0377 5134 3001🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates an EEA card in Europe with productType=UNKNOWN and cardType=UNKNOWN.
4032 0307 5488 6225🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in USA/CANADA.
4032 0310 2547 6341🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in USA/CANADA.
4032 0341 4311 3978🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates a non-EEA consumer card in USA/CANADA with cardType=UNKNOWN.
4032 0309 5816 7398🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in USA/CANADA.
4032 0375 4480 7536🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=CREDITThis PAN simulates a non-EEA corporate credit card in USA/CANADA.
4032 0366 9148 7225🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates a non-EEA corporate card in USA/CANADA with cardType=UNKNOWN.
4032 0325 8917 3860🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=DEBITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and DEBIT.
4032 0388 0897 9557🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=CREDITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and CREDIT.
4032 0374 2147 1240🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and cardType=UNKNOWN.

Mastercard Card numbers

1) 3DS scenarios

PANScenarioDescription
5333 2591 5564 3223✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
5306 8899 4283 3340🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
5187 4346 4359 3002🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
5328 7203 8458 2224⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

2) Card attributes simulation (EEA / region / productType / cardType)

PANAttributes returnedDescription
5517 4500 0000 0168🧭 EEA=false ; region=US ; productType=CONSUMER ; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in the US.
5223 8599 0000 0174🧭 EEA=false ; region=US ; productType=CORPORATE ; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in the US.
5325 0900 0000 0115🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5325 0900 0000 0008🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5486 7467 7300 0005🧭 EEA=false ; region=EUROPE ; productType=CONSUMER ; cardType=DEBIT; Country=RUSThis PAN simulates a non-EEA consumer debit card with Country=RUS.
5588 1000 0000 0007🧭 EEA=false ; region=CEMEA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in CEMEA.
5122 9400 0000 0009🧭 EEA=false ; region=LATIN_AMERICA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in LATIN_AMERICA.

Amex Card numbers

1) 3DS scenarios

PANScenarioDescription
3415 0209 8634 895✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
3486 3826 7931 507🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
3456 9539 9207 589⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

2) Card attributes simulation (EEA / region / productType)

PANAttributes returnedDescription
3415 0209 8634 895🧭 EEA=false ; region=EUROPE ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in Europe.
3486 3826 7931 507🧭 EEA=false ; region=EUROPE ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in Europe.
3718 4294 2351 004🧭 EEA=false ; region=EUROPE ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in Europe with productType=UNKNOWN.
3712 5311 3391 201🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in ASIA_PACIFIC.
3423 1631 7472 410🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in ASIA_PACIFIC.
3710 9829 7279 338🧭 EEA=false ; region=ASIA_PACIFIC ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in ASIA_PACIFIC with productType=UNKNOWN.

CB Card numbers

These PANs allow you to test how the card is classified under the CB scheme (CB vs co-badged CB_VISA / CB_MASTERCARD) in your integration and reporting.

PANScenarioDescription
4020 0235 6597 5380✅🛡️ 3DS success (transStatus = Y) – scheme: CBThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB scheme.
4020 0254 4041 8403✅🛡️ 3DS success (transStatus = Y) – scheme: CB_VISAThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB_VISA scheme.
5232 1035 2372 2651✅🛡️ 3DS success (transStatus = Y) – scheme: CB_MASTERCARDThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB_MASTERCARD scheme.

Troubleshooting (what to check)

If you don’t get the expected outcome, start by checking:

  • Bank refusals: verify the returned bank refusal code/message in your transaction response or webhook (e.g., 51, 41, 59, 5).
  • 3DS scenarios: verify the returned transStatus. If C, a challenge flow must be completed; if N, the 3DS authentication is refused and the payment is declined; if D, the expected handling depends on your decoupled implementation.
  • Card attributes: verify the returned card metadata (EEA / region / productType / cardType) in the payment method or transaction details.

Test cards Values

This page provides a list of test card PANs you can use to validate your CentralPay integration. Each PAN below triggers a predictable scenario (bank refusal, 3DS authentication outcome, or card attributes such as EEA / region / product type).

Note: 3DS outcome values (transStatus such as Y, C, D, I, N…) are described in the dedicated 3DS 2.2 BRW documentation.

Card details to use: for all test PANs on this page, the expiry date and CVC values are free. The only requirement is that the expiry date must be later than today’s date. The CVC must be 3 digits (for example: 123).

Legend: ✅ Success · ❌ Bank refusal · ⛔ 3DS refused · 🛡️ 3DS · 🔒 3DS Challenge · 🔁 3DS Decoupled · ℹ️ 3DS Info · 🧭 Attributes

Quick test cards (most common scenarios)

PANScenarioWhat you should observe
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)Authorization succeeds with a successful 3DS authentication.
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)Challenge flow expected (you must complete the challenge step to proceed).
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowDecoupled authentication scenario (handling depends on your 3DS implementation).
4556 1041 6038 2032⛔🛡️ 3DS authentication refused (transStatus = N)The API responds with HTTP 200, but the 3DS authentication is refused (transStatus = N) and the payment is declined.
4000 0000 0000 0077❌ Bank refusal – Insufficient funds (51)Authorization is refused with bank return code 51 (Insufficient funds).
4000 0000 0000 0085❌ Bank refusal – Do not honor (5)Authorization is refused with bank return code 5 (Do not honor / refused).

Bank refusal PANs: these PANs are refused at the bank authorization stage regardless of the authentication flow.

Visa Card numbers

1) Bank refusals (regardless of the authentication flow)

PANScenarioDescription
4000 0000 0000 0051❌ Card lost (41)This PAN simulates a bank refusal with return code 41 (Card lost), regardless of the authentication flow.
4000 0000 0000 0069❌ Fraud suspicion (59)This PAN simulates a bank refusal with return code 59 (Fraud suspicion), regardless of the authentication flow.
4000 0000 0000 0077❌ Insufficient funds (51)This PAN simulates a bank refusal with return code 51 (Insufficient funds), regardless of the authentication flow.
4000 0000 0000 0085❌ Do not honor / refused (5)This PAN simulates a bank refusal with return code 5 (Do not honor / refused), regardless of the authentication flow.

2) 3DS scenarios

These PANs are designed to reproduce specific 3DS outcomes (transStatus). If transStatus = C, a challenge flow is expected and must be completed. If transStatus = N, the 3DS authentication is refused and the payment is declined.

PANScenarioDescription
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
4024 0071 7987 2394🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
4234 6319 8242 8908ℹ️🛡️ 3DS information only (transStatus = I)This PAN simulates a 3DS authentication with transStatus = I (Information only), to validate how you handle an informational 3DS outcome.
4234 6319 8242 8916🔁🛡️ 3DS decoupled (transStatus = D) – application flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using an application flow.
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using a browser flow.
4556 1041 6038 2032⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

3) Card attributes simulation (EEA / region / productType / cardType)

These PANs are designed to simulate card metadata (EEA / region / productType / cardType). Use them to validate your business rules, reporting, segmentation, or routing logic based on card attributes.

PANAttributes returnedDescription
4032 0389 8296 2700🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=DEBITThis PAN simulates an EEA consumer debit card in Europe.
4032 0343 8883 4767🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=CREDITThis PAN simulates an EEA consumer credit card in Europe.
4020 0280 0191 2012🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates an EEA consumer card in Europe with cardType=UNKNOWN.
4032 0337 9569 2248🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
4032 0368 1354 0364🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=CREDITThis PAN simulates an EEA corporate credit card in Europe.
4032 0387 5662 0096🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates an EEA corporate card in Europe with cardType=UNKNOWN.
4032 0358 5604 7592🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=DEBITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and DEBIT.
4032 0302 9068 3219🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=CREDITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and CREDIT.
4032 0377 5134 3001🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates an EEA card in Europe with productType=UNKNOWN and cardType=UNKNOWN.
4032 0307 5488 6225🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in USA/CANADA.
4032 0310 2547 6341🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in USA/CANADA.
4032 0341 4311 3978🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates a non-EEA consumer card in USA/CANADA with cardType=UNKNOWN.
4032 0309 5816 7398🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in USA/CANADA.
4032 0375 4480 7536🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=CREDITThis PAN simulates a non-EEA corporate credit card in USA/CANADA.
4032 0366 9148 7225🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates a non-EEA corporate card in USA/CANADA with cardType=UNKNOWN.
4032 0325 8917 3860🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=DEBITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and DEBIT.
4032 0388 0897 9557🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=CREDITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and CREDIT.
4032 0374 2147 1240🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and cardType=UNKNOWN.

Mastercard Card numbers

1) 3DS scenarios

PANScenarioDescription
5333 2591 5564 3223✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
5306 8899 4283 3340🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
5187 4346 4359 3002🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
5328 7203 8458 2224⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

2) Card attributes simulation (EEA / region / productType / cardType)

PANAttributes returnedDescription
5517 4500 0000 0168🧭 EEA=false ; region=US ; productType=CONSUMER ; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in the US.
5223 8599 0000 0174🧭 EEA=false ; region=US ; productType=CORPORATE ; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in the US.
5325 0900 0000 0115🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5325 0900 0000 0008🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5486 7467 7300 0005🧭 EEA=false ; region=EUROPE ; productType=CONSUMER ; cardType=DEBIT; Country=RUSThis PAN simulates a non-EEA consumer debit card with Country=RUS.
5588 1000 0000 0007🧭 EEA=false ; region=CEMEA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in CEMEA.
5122 9400 0000 0009🧭 EEA=false ; region=LATIN_AMERICA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in LATIN_AMERICA.

Amex Card numbers

1) 3DS scenarios

PANScenarioDescription
3415 0209 8634 895✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
3486 3826 7931 507🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
3456 9539 9207 589⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

2) Card attributes simulation (EEA / region / productType)

PANAttributes returnedDescription
3415 0209 8634 895🧭 EEA=false ; region=EUROPE ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in Europe.
3486 3826 7931 507🧭 EEA=false ; region=EUROPE ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in Europe.
3718 4294 2351 004🧭 EEA=false ; region=EUROPE ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in Europe with productType=UNKNOWN.
3712 5311 3391 201🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in ASIA_PACIFIC.
3423 1631 7472 410🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in ASIA_PACIFIC.
3710 9829 7279 338🧭 EEA=false ; region=ASIA_PACIFIC ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in ASIA_PACIFIC with productType=UNKNOWN.

CB Card numbers

These PANs allow you to test how the card is classified under the CB scheme (CB vs co-badged CB_VISA / CB_MASTERCARD) in your integration and reporting.

PANScenarioDescription
4020 0235 6597 5380✅🛡️ 3DS success (transStatus = Y) – scheme: CBThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB scheme.
4020 0254 4041 8403✅🛡️ 3DS success (transStatus = Y) – scheme: CB_VISAThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB_VISA scheme.
5232 1035 2372 2651✅🛡️ 3DS success (transStatus = Y) – scheme: CB_MASTERCARDThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB_MASTERCARD scheme.

Troubleshooting (what to check)

If you don’t get the expected outcome, start by checking:

  • Bank refusals: verify the returned bank refusal code/message in your transaction response or webhook (e.g., 51, 41, 59, 5).
  • 3DS scenarios: verify the returned transStatus. If C, a challenge flow must be completed; if N, the 3DS authentication is refused and the payment is declined; if D, the expected handling depends on your decoupled implementation.
  • Card attributes: verify the returned card metadata (EEA / region / productType / cardType) in the payment method or transaction details.

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.

Virtual Card Management (VCC)

1. Operation

Major OTAs such as Booking.com, Expedia.com, hotels.com, and Agoda.com can collect payments at the time of booking. In such cases, they provide hoteliers not with the guest’s actual card information, but with an alias, a virtual card or VCC.

A virtual card, or VCC, is generally issued for restricted use in order to limit the risk of compromise. A virtual card is, in a sense, an alias for an existing card that can only be used starting on a specific date and from a defined MCC. In this case, in the tourism sector, a contract with MCC 7011 (HOTELS) is required in order to charge the card.

Thus, even if the card number fell into the hands of a malicious individual, that person would not be able to initiate a charge on the source card. Given the unique nature of the cards issued by these OTAs, it is generally impossible to perform authorization, pre-authorization, or verification requests at the time of the order.

If the card can only be charged on the day of the reservation, for example, by an MCC 7011, the issuer, typically MASTERCARD B2B PRODUCT, will return an error code for an invalid transaction (12).

➡️ Booking.com Virtual Cards
Booking.com uses virtual cards for certain destinations. Depending on the settings configured on the hotel’s website, a reservation may be made with or without a credit card authorization. If the hotelier has chosen to require a payment method, Booking.com will generate a virtual card and send it to the hotelier or their technical service provider. Following the COVID-19 crisis, Booking.com no longer authorizes charges to its virtual credit cards until one day after the guest checks in.

Learn more about how Booking.com virtual cards work ➝
➡️ Expedia.com Virtual Cards
At Expedia, visitors can choose between paying at the hotel (Hotel Collect) or paying directly when they make their reservation (Expedia Collect). This option is called Expedia Traveler Preference (ETP). If a customer uses the Expedia Collect method, a virtual card will be generated.

Learn more about how Expedia.com virtual cards work ➝

2. Managing Virtual Cards with CentralPay

The best way to store a VCC and be able to use it once it becomes available is to create a “Customer” and link the card to that customer.

There are two options available:

  • Either the card is chargeable at the time of creation, and a verification request can be made when the customer is created,
  • Either the card cannot be used when the customer is created, and the card must be added without verification. This does not mean that it cannot be used later on. It simply means that it should not be charged until a certain date. Generally, OTAs will have verified the card information beforehand to ensure that it is valid for charging.

Thus, creating a Customer in the CentralPay API allows you to tokenize the virtual card, secure its storage, and facilitate its use once the initial acceptance criteria have been met.

Credit

jQuery(document).ready( function($) { window.live_6ab3046f58ea6 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Credit.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f58ea6", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f58ea6.load(); });

Credit

jQuery(document).ready( function($) { window.live_6ab3046f9c1de = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Credit.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9c1de", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9c1de.load(); });

Informations générales

Articles

  • Contacter CentralPay >
  • L'établissement CentralPay
  • Modèles contractuels
  • Ouvrir un compte CentralPay
  • Utilisation des API CentralPay
  • Portail Marchand
  • Portail Client
  • Portail d'inscription
  • Tarifs
  • Logos et visuels
  • Trust Center

Contacter CentralPay >

CentralPay s’emploie à une croissance saine, permettant à nos utilisateurs d’être quotidiennement accompagnés par des équipes stables et expertes dans leur domaine (conformité, monétique, sécurité…).

Ainsi, nos services client et support sont joignables du lundi au vendredi depuis l’espace « Aide & Support » de votre Portail Marchand, par email ou par visioconférence sur rendez-vous.

1. Avant d’adresser une demande technique

Quelques points que vous pouvez vérifier préalablement :

  • Authentification : Êtes-vous correctement authentifié ?
  • Environnement : Êtes-vous sur le bon environnement du Portail Marchand et de l’API (RCT ou PROD) ?
  • Autorisation : Avez-vous les autorisations nécessaires pour réaliser cette opération ? L’erreur HTTP 403 signale une erreur d’autorisation.
  • Erreur HTTP : Consultez la signification des codes d’erreurs HTTP CentralPay. Si vous recevez un code erreur HTTP 500, veuillez contacter immédiatement le support technique.

2. Informations à communiquer pour toutes demandes techniques

  • Les dates et heures précises des évènements concernés
  • Le lien (URL) de la page concernée
  • Une ou des capture(s) d’écran, idéalement une vidéo (Cloudapp permet de faire une vidéo d’une page du navigateur Google Chrome)
  • Un UUID (ou id) de l’opération concernée et son type (transaction carte, remboursements, demande de paiement…)
  • L’environnement sur lequel vous travaillez (recette RCT ou production PROD)
  • Une description précise du problème rencontré ou de votre interrogation

Ces informations nous permettrons de vous accompagner et d’analyser votre situation plus efficacement.

Vos demandes seront traitées de façon prioritaire si elles sont envoyées depuis l’espace « Aide et Support » du Portail Marchand :

Recette Portail Marchand – Aide et support
Production Portail Marchand de PROD – Aide et support

L'établissement CentralPay

Certifications et agréments

CentralPay propose des solutions de paiement modulaires permettant l’unification des flux d’encaissement pour compte propre et l’automatisation des versements pour le compte de tiers. La typologie de services et d’opérations proposées par CentralPay varie en fonction des besoins et de l’activité de ses marchands et partenaires.

CentralPay est une société indépendante, entièrement propriétaire de sa technologie et de ses agréments. Garantissant la meilleure autonomie possible dans ses choix de partenariats et de son évolution.

CentralPay est autorisé à entrer en relation d’affaires avec les entreprises enregistrées dans l’Espace Économique Européen.

ACPR
(Banque de France)
Établissement de Monnaie Électronique : CentralPay est un Établissement de Monnaie Électronique régulé par la Banque de France à travers son autorité de contrôle prudentiel et de résolution, l’ACPR (CIB 17138).
DSP2 : CentralPay est conforme à la 2ème Directive sur les Services de Paiements qui impose notamment des exigences en matière d’authentification forte et de protection des données.
PCI-DSS : CentralPay obtient annuellement la certification la plus élevée possible en matière de sécurisation des données bancaires et prévention de la fraude ; la norme PCI DSS de niveau 1. Voir le certificat de CentralPay ➜
EBA CLEARING & EPC : En qualité de membre de l’European Payment Council et sa connexion à l’EBA CLEARING, CentralPay intègre les schémas européens des règlements SEPA afin d’émettre et de recevoir des virements et des prélèvements depuis ses propres IBAN et IBAN virtuels.
SWIFT : Connecté au réseau SWIFT, messagerie la plus acceptée à l’échelle mondiale, CentralPay est en mesure d’échanger des flux financiers internationaux avec la plupart des banques et des institutions financières participantes.
Visa, Mastercard, Cartes bancaires, American Express : CentralPay est accrédité auprès des grands réseaux de cartes, afin d’optimiser les parcours et la conversion des paiements de tous ses utilisateurs.

Sécurité et hébergement

CentralPay exploite ses services depuis deux Datacenter français. Les équipements et services exploités sur ces deux sites sont entièrement redondés.

1. Un hébergement hautement résilient

  • Deux Datacenter de conception TIER III basés à Tours
  • Environnement actif/actif entre les deux sites
  • Des engagements contractuels (SLA) de 99.9 %
  • Des normes reconnues : ISO27001, PCI-DSS, Code of Conduct

2. Une infrastructure garante de la sécurité de vos données

  • Cœur de réseau allant jusqu’à 10 Gb/s
  • Réseau électrique entièrement redondé, densité électrique allant de 600 mA à 32 A
  • Système de contrôle d’accès avec double authentification (badge & code personnel)
  • Vidéo-surveillance et alarme reliée 24h/7j à notre télésurveillance
  • Système d’extinction d’incendie par aérosol FirePro

Engagements de disponibilité

CentralPay garantit une disponibilité annuelle de ses services (SLA & PCA) selon les barèmes suivants :

CPAY API
Traitement des opérations de paiement
CPAY PORTALS
Portail d’inscription, client et marchand
99,9 %
sur une base annuelle
99,5 %
sur une base annuelle
Le critère d’atteinte de cette garantie correspond à la disponibilité de l’API de paiement.Le critère de cette garantie correspond à la disponibilité des portails de l’environnement de production.

Évolution de la plateforme

Les API de CentralPay reposent sur une architecture en micro services apportant un maximum de flexibilité. Notre approche modulaire permet de faire constamment évoluer nos solutions afin d’apporter toujours plus de services et de fonctionnalités.

Ces évolutions sont réalisées après des analyses d’impact poussées afin de ne pas provoquer de changement dans les intégrations de nos utilisateurs. Dans de très rares cas, celles-ci peuvent appeler des modifications mineures ou plus importantes lorsque des changements de régulations surviennent, comme ce fut le cas pour l’évolution vers la version 2.0 du 3DS par exemple.

En cas d’évolution de la plateforme ou de modifications des attentes concernant la consommation de ses APIs, CentralPay s’engage à vous prévenir dans un délai correspondant à l’ampleur des actions à mener :

  • Modifications mineures nécessitant aucune action du marchand ou partenaire :
    Remise d’information simple
  • Modifications mineures avec action nécessaire par le marchand ou partenaire :
    2 mois minimum de délai de prévenance + accompagnement à la réalisation
  • Modifications majeures avec action nécessaire par le marchand ou partenaire :
    6 mois minimum de délai de prévenance + accompagnement à la réalisation

À noter que les modifications nécessitant une action de nos marchands ou partenaires sont qualifiées d’exceptionnelles à inexistantes et que toutes les précautions sont prises pour éviter tout impact sur leur activité.

Glossaire CentralPay

1. Les types d’acteurs

DésignationDescription
ActeurToute entité identifiée sur la plateforme CentralPay. Peut être un Profil Marchand, un Point de Vente, un établissement tiers, ou CentralPay.
Profil marchandLe Profil Marchand représente techniquement et opérationnellement un marchand dans la plateforme CentralPay. Il est le support de :
• Ses comptes : de paiement ou de monnaie électronique ;
• Son administration : accès API, profils utilisateurs, services disponibles ;
• Sa configuration technique : webhooks, notifications, points de vente, règles d’acceptation, comptes bancaires ;
• Son dossier réglementaire : KYC/KYB, LCB-FT, scoring de risque, contractualisation, grille tarifaire…

Le Profil Marchand correspond à l’objet API Merchant et est créé automatiquement après validation de son inscription (via l’objet API Merchant-Enrollment).
Marchand standardPersonne morale ou autoentreprise cliente de CentralPay, réalisant des opérations d’encaissement pour son propre compte lors de la vente de biens ou de services.
Peut être rattaché fonctionnellement à un Partenaire (Technique ou Intégrateur).
Dispose d’un Profil Marchand typé STANDARD.
Marchand PartenairePersonne morale cliente de CentralPay, disposant d’un Profil Marchand et pouvant relever de l’un des modèles suivants :
• Partenaire Technique : opère une solution mutualisée (ex. marketplace, plateforme SaaS) et dispose d’un ou plusieurs Points de Vente ouverts à son nom, auxquels des marchands standards peuvent être rattachés.
Dispose d’un Profil Marchand typé TECHNIQUE.
• Partenaire Intégrateur : intervient en soutien technique, via des accès délégués par les marchands standards, pour faciliter l’intégration et le RUN (sans mutualisation de point de vente au nom du partenaire).
Dispose d’un Profil Marchand typé INTEGRATEUR (le cas échéant).

Un Marchand Partenaire peut percevoir des commissions (selon modèle) et/ou être déclaré MOBSP pour accompagner l’entrée en relation des marchands.
Marchand MandatairePersonne morale cliente de CentralPay, agissant pour le compte de tiers, dans le cadre de l’un des statuts réglementaires suivants :
• Agent PSP : Agent de Prestataire de Services de Paiement de CentralPay, enregistré auprès de l’ACPR (Banque de France) et habilité à agir au nom et pour le compte de CentralPay dans un périmètre défini contractuellement (ex. opérations de débit/crédit et transferts pour compte de tiers).
Dispose d’un Profil Marchand typé AGENT.
• DME : Distributeur de Monnaie Électronique enregistré/déclaré par CentralPay auprès de l’ACPR (Banque de France) pour un projet impliquant l’émission, la distribution et l’échange de monnaie électronique (devises CUSTOM).
Dispose d’un Profil Marchand typé DME.
Sous-marchand / ParticipantPersonne morale ou physique cliente d’un Marchand Mandataire de CentralPay (Agent PSP ou DME).
• Sous-marchand : agit pour vendre des produits ou services, pour une activité LMNP,
• Participant : agit pour des besoins non commerciaux (crowdfunding, wallet personnel, projets collectifs…).
Dispose d’un Profil Marchand typé BASIC, avec un périmètre fonctionnel restreint.
ClientPersonne physique ou morale qui paie ou donne un ordre de paiement à un Marchand CentralPay (peut aussi être nommé porteur, payeur, débiteur).
Peut disposer ou non d’un Profil client (Customer).

Note : dans les documents réglementaires ou contractuels de CentralPay, le terme « Client » peut désigner le Marchand lui-même selon le contexte défini dans le document.
Profil clientReprésente un client enregistré par un Marchand dans la plateforme CentralPay.
Il est le support de :
• ses informations personnelles : nom, prénom, email, téléphone, raison sociale…
• ses moyens de paiement : cartes, mandats SEPA, IBAN, comptes bancaires…
• ses activités : demandes de paiement, historique de paiements…

Le Profil client correspond à l’objet API Customer.
Profils Utilisateur BOPersonnes physiques disposant d’un accès au Portail Marchand CentralPay pour consulter ou administrer un ou plusieurs Profils Marchand.
• Type Legal : représentant légal du Marchand.
• Type Natural : autre utilisateur habilité (finance, support, développement…).

Le Profil utilisateur BO correspond à l’entité API BO_user.
Profils Utilisateur APIEntité créée via la plateforme CentralPay permettant d’identifier l’utilisateur (personne ou système) réalisant des appels API sur un Profil Marchand.
Permet la traçabilité des actions et la gestion des autorisations.

Le Profil utilisateur API correspond à l’entité API api_user.
Point de Vente (ou POS)Représentation d’un site web, d’une boutique physique, ou d’une équipe de vente. Ils permettent de segmenter les opérations du Profil Marchand CentralPay à des fins :
• Techniques : pour réaliser des paramétrages différents par point de vente (notifications clients, notifications internes, nom d’expéditeur des emails de confirmation, logo affiché dans la page de paiement…)
• Administratives : pour limiter les droits de consultation ou de modification de vos profils utilisateurs BO à certains points de vente
• Comptables : pour filtrer les opérations par point de vente dans le Portail Marchand ou dans les exports de données

Le Point de vente correspond à l’objet API PointOfSale.

2. Les types de comptes

DésignationDescription
Compte de paiementCompte ouvert dans les livres de CentralPay au nom d’un Marchand. Ce compte est utilisé exclusivement pour la réalisation d’opérations de paiement (collecte de paiements en devises ISO, versement des fonds vers un compte bancaire…).

Il est représenté par l’objet Wallet type PS dans l’API CentralPay.
Compte de monnaie électroniqueCompte ouvert dans les livres de CentralPay au nom d’un Marchand. Ce compte est utilisé exclusivement pour le stockage et l’échange de valeurs en monnaie électronique au sein du réseau du distributeur (devises CUSTOM).

Il est représenté par l’objet Wallet type EM dans l’API CentralPay.
Compte de commissionCompte de paiement secondaire permettant d’isoler les flux de commissions et/ou certains prélèvements de frais (selon modèle).
Dans le cadre des modèles Partenaire/Mandataire, ce compte peut recevoir les commissions imputées aux transactions des marchands liés/participants, conformément aux règles contractuelles applicables.

Il est représenté par l’objet Wallet type CM dans l’API CentralPay.
Compte de réserveCompte de paiement secondaire permettant d’isoler des fonds de réserve CentralPay (pied de compte, collatéral ou réserve glissante). N’est pas autorisé à réaliser de versements sortants.

Il est représenté par l’objet Wallet type RS dans l’API CentralPay.
Compte de collecte « Agent »Compte de paiement ouvert dans les livres de CentralPay au nom d’un Agent. Il est dédié à la réception des fonds liés aux opérations initiées via le modèle Agent, avant leur ventilation / transfert vers les comptes de paiement des Marchands Participants. N’est pas autorisé à réaliser de versements sortants.

Il est représenté par l’objet Wallet type CL dans l’API CentralPay.
Compte de Traitement CentralPayLe Compte de Traitement désigne un mécanisme interne et transitoire utilisé par CentralPay pour recevoir, identifier et traiter temporairement des fonds liés à une opération de paiement, en vue de leur transmission au bénéficiaire final. Il n’est pas un compte de paiement ouvert pour un client, n’est mis à disposition d’aucun tiers et ne confère aucun droit de disposition.

Selon les implémentations techniques, ce mécanisme peut être matérialisé par des objets internes (ex. Wallet type TR) utilisés exclusivement par CentralPay pour le traitement opérationnel.

3. Les dénominations d’objets ou d’opérations

DésignationDescription
Frais CentralPayEnsemble des frais dus à CentralPay déduits des opérations correspondantes, prélevés sur un compte de commission dédié ou facturés en fin de mois (selon les conditions contractuelles applicables).
Devises ISODevises conventionnelles aux normes ISO 4217 (exemple : EUR, USD, CHF, GBP…)
Devise CUSTOMDevise de monnaie électronique créée pour un Mandataire DME de CentralPay. La valeur de la devise CUSTOM est toujours adossée à celle d’une devise ISO (ex. EUR).
Instruction TechniqueDonnée / événement à finalité strictement technique et commerciale transmis à CentralPay (ex. références de commande, panier, commission, évènements logistiques). Une Instruction Technique n’est pas un ordre de paiement et ne déclenche aucun effet financier automatique : CentralPay reste seul décisionnaire du traitement et, le cas échéant, des mises à disposition de fonds.
Date de déblocageDate de mise à disposition différée pouvant être appliquée par CentralPay pour rendre des fonds utilisables par un bénéficiaire (ex. après livraison/expédition), selon la politique de risque et les règles applicables. Elle peut être déterminée à partir d’informations commerciales transmises, sans constituer une instruction de paiement.
Compte bancaireCompte bancaire externe lié à :
• un Profil Marchand pour réaliser des versements sortants (payout)
• ou à un Profil client pour réaliser des prélèvements SEPA ou des versements sortants.
Il est représenté par l’objet BankAccount dans l’API CentralPay.
Versement sortantVirement sortant d’un compte CentralPay vers un compte bancaire externe. Peut être réalisé par SEPA ou SWIFT.
Il est représenté par l’objet Payout dans l’API CentralPay.
Autorisation CarteOpération d’interrogation de disponibilité des fonds d’une carte bancaire, puis de blocage en prévision d’une transaction carte (7 jours max).
Elle est représentée par l’objet Transaction dans l’API CentralPay.
Transaction carteOpération de débit d’une carte bancaire, au crédit d’un compte CentralPay.
Elle est représentée par l’objet Transaction dans l’API CentralPay.
Transaction SCTOpération de réception d’un virement SEPA ou SWIFT, au crédit d’un compte CentralPay.
Elle est représentée par l’objet sctTransaction dans l’API CentralPay.
Transaction SDDOpération de débit d’un compte bancaire, au crédit d’un compte CentralPay.
Elle est représentée par l’objet sddTransaction dans l’API CentralPay.

Modèles contractuels

Marchand standard

Le modèle Marchand standard s’adresse aux entreprises (personnes morales) qui souhaitent utiliser la plateforme CentralPay pour encaisser des paiements pour leur propre compte dans le cadre d’une activité de vente de biens ou de services.

1. Description du modèle

Ce modèle vous donne accès à l’ensemble des services de Smart Collection, la solution d’encaissement complète proposée par CentralPay.

🔗 Plus d’informations sur Smart Collection

Les fonctionnalités incluses sont les suivantes :

  • Le Profil Marchand CentralPay
    Un profil marchand standard contenant un ou plusieurs comptes de paiement dédiés à votre activité, avec IBAN individuel, suivi des opérations et des versements.
  • Les services liés au compte
    Outils de gestion, profils utilisateurs, accès API, notifications, reporting…
  • Le service d’encaissement Smart
    Centralisation de vos flux, routage automatisé, gestion des statuts et des versements.
  • Transactions par carte bancaire
    Acceptation Visa/Mastercard, 3D Secure, Apple Pay/Google Pay, gestion des remboursements et des contestations.
  • Transactions par virement
    Génération d’IBAN virtuels, notifications de réception, rapprochements automatiques.
  • Transactions par prélèvement SEPA
    Débits ponctuels ou récurrents, gestion des mandats, suivi des rejets.

2. Frais et commissions

Des commissions fixes et variables sont appliquées en fonction des opérations réalisées (transactions, versements, rejets, etc.). Vous pouvez consulter les tarifications publiques sur notre site.

  • Les frais sont débités :
    • Soit directement de votre compte de paiement principal
    • Soit depuis un compte de commission dédié, si celui-ci est activé

En cas de solde insuffisant, CentralPay pourra procéder à un prélèvement SEPA sur votre compte bancaire ou vous adresser une demande de virement complémentaire.

Marchand Partenaire

CentralPay propose deux modèles distincts pour les partenaires souhaitant accompagner des marchands CentralPay dans leur intégration technique : le Partenaire Technique et le Partenaire Intégrateur. Dans les deux cas, les marchands restent en relation contractuelle directe avec CentralPay ; les modalités d’accès API, de mutualisation et de facturation diffèrent selon le modèle.

Selon la nature de leur activité, ces partenaires peuvent également être immatriculés à l’ORIAS en qualité d’IOBSP (mandataire – “MOBSP”) afin d’encadrer juridiquement certaines activités de présentation et d’accompagnement des marchands lors de leur entrée en relation avec CentralPay. Ce statut ne confère aucun droit d’accès aux fonds ni aucun pouvoir d’exécution d’opérations de paiement.

1. Partenaire Intégrateur

Le Partenaire Intégrateur est un prestataire technique mandaté par un ou plusieurs marchands standards. Il intervient en leur nom et pour leur compte, afin de faciliter leur connexion aux services CentralPay.

Chaque marchand standard dispose de son propre point de vente (POS), de son propre profil Marchand CentralPay, et signe directement ses documents de souscription et son contrat (CCSP) avec CentralPay. L’Intégrateur ne détient aucun droit contractuel sur les comptes ou fonds du marchand.

1.1. Responsabilités et fonctionnement

  • L’Intégrateur utilise les accès API délégués par chaque marchand (identifiants dédiés “Intégrateur”), dans le cadre d’un mandat contractuel entre l’Intégrateur et le marchand
  • Il peut réaliser des actions techniques nécessaires à l’intégration et au RUN (paramétrage, suivi d’Instructions Techniques, maintenance), exclusivement via ces accès, sans pouvoir consulter les soldes ni initier / modifier / annuler une opération de paiement
  • Les parcours sont généralement réalisés en “1 pour 1” : un client (payeur) règle un seul marchand, chaque marchand conservant son environnement et ses accès propres

1.2. Facturation

  • Chaque marchand est facturé directement par CentralPay au titre des services souscrits dans son CCSP
  • Le Partenaire Intégrateur n’intervient à aucun moment dans les flux financiers

1.3. Pour aller plus loin sur le modèle d’Intégrateur

  • Le Partenaire Intégrateur intervient exclusivement en soutien technique des marchands standards, sans jamais agir comme intermédiaire de paiement ni représentant de CentralPay. Son rôle se limite à l’intégration, au support fonctionnel de niveau 1 et à la maintenance des interfaces
  • Chaque marchand conserve l’entière maîtrise de son profil Marchand CentralPay : encaissements, versements, solde, paramétrage des accès API, gestion documentaire et contractuelle
  • CentralPay peut mettre à disposition de l’intégrateur un accès portail strictement limité à l’administration technique (suivi d’Instructions Techniques, paramétrages, opérations nécessaires au RUN). Cet accès n’autorise pas la consultation des soldes, ni la manipulation de transactions financières, ni l’initiation/modification/annulation d’opérations de paiement, ni la modification d’IBAN ou de paramètres financiers
  • Pour permettre la connexion, le marchand délègue à l’intégrateur des identifiants dédiés, avec des droits strictement limités et révocables à tout moment. Toutes les actions techniques sont réalisées via ces identifiants, sous la responsabilité du marchand
  • Si le Partenaire Intégrateur est immatriculé à l’ORIAS en qualité d’IOBSP (mandataire – “MOBSP”) et qu’un cadre contractuel distinct le prévoit, il peut accompagner le marchand dans son entrée en relation (ex. : transmission d’un lien d’inscription, assistance à la constitution du dossier). CentralPay reste seule décisionnaire de l’entrée en relation, de l’ouverture de compte et des contrôles réglementaires
  • À défaut, le Partenaire Intégrateur peut orienter le marchand vers CentralPay pour toute question contractuelle, tarifaire ou réglementaire liée aux services de paiement

2. Partenaire Technique

Le Partenaire Technique est un acteur qui développe une solution mutualisée (ex. : marketplace, plateforme SaaS), à destination de plusieurs marchands standards. Il opère depuis un ou plusieurs points de vente ouverts à son nom dans CentralPay, auxquels des marchands peuvent être rattachés.

Les opérations sont traitées par CentralPay au moyen d’un mécanisme interne de “Compte de Traitement” (utilisé par CentralPay pour recevoir et traiter temporairement les fonds en vue de leur transmission au bénéficiaire final). Le Partenaire Technique n’y dispose d’aucun droit de disposition : il transmet uniquement des données commerciales et conserve une visibilité sur les flux rattachés à ses points de vente, sans jamais pouvoir déclencher un transfert.

2.1. Responsabilités et fonctionnement

  • Le Partenaire Technique dispose de ses propres accès API délivrés par CentralPay
  • Il peut transmettre des Instructions Techniques (données commerciales, panier, commission, références, évènements logistiques…), et suivre les transactions rattachées aux marchands liés à ses points de vente
  • Il n’a aucun accès aux fonctionnalités de transfert (notamment l’endpoint transfer) et ne peut pas accéder aux soldes ni effectuer de versements : CentralPay décide et exécute les opérations et mises à disposition de fonds
  • Dans ce cadre, CentralPay peut gérer des paiements en mode “1 pour X” : un client (payeur) peut régler plusieurs marchands simultanément, CentralPay assurant ensuite la ventilation/mise à disposition au bénéfice des marchands

2.2. Facturation

  • Le Partenaire Technique est facturé par CentralPay en fonction des opérations réalisées via son (ou ses) point(s) de vente, conformément aux conditions prévues au CCSP et aux documents de souscription applicables
  • Lorsqu’une commission est prévue, CentralPay peut, sur la base des données commerciales transmises et selon les règles contractuelles, ventiler les flux : la part de commission est alors créditée sur le compte de commission du Partenaire Technique, sans que celui-ci ne détienne de fonds de tiers

Pour aller plus loin sur le modèle de Partenaire Technique

  • Le Partenaire Technique développe une solution mutualisée (ex. : marketplace, plateforme SaaS) intégrant CentralPay. Il opère depuis un ou plusieurs points de vente ouverts à son nom, qui accueillent les transactions de marchands standards associés
  • Chaque marchand associé contracte directement avec CentralPay (CCSP et documents de souscription) et dispose de son propre profil Marchand CentralPay
  • Le Partenaire Technique transmet à CentralPay les données commerciales des transactions (montant commercial, références, commission, évènements logistiques…). Ces données ne déclenchent aucun effet financier automatique : CentralPay analyse, contrôle, puis décide de traiter l’opération et d’initier les mises à disposition nécessaires
  • CentralPay peut décider d’appliquer une retenue temporaire et/ou une date de déblocage pour la mise à disposition des fonds au bénéfice d’un marchand (ex. : jusqu’à une livraison/expédition), selon sa politique de risque, les règles des réseaux et ses obligations réglementaires
  • Le Partenaire Technique ne détient jamais de fonds de tiers, ne donne aucun ordre de paiement, et ne peut intervenir dans les versements ou la tenue de compte. Il n’agit ni pour compte de tiers ni au nom de CentralPay
  • L’accès du Partenaire Technique est limité à une vue et à des fonctionnalités strictement nécessaires à la transmission et au suivi d’Instructions Techniques ; il n’existe aucun accès au “Compte de Traitement” en tant que compte (pas de droit d’exécution, pas de droit de disposition, pas d’accès aux soldes)
  • En cas d’immatriculation ORIAS en qualité d’IOBSP (mandataire – “MOBSP”) et si un cadre contractuel distinct le prévoit, le Partenaire Technique peut accompagner les marchands dans leur entrée en relation (transmission de lien d’inscription, assistance documentaire), sous réserve de validation préalable par CentralPay

3. Règles de conformité communes

Pour les deux modèles :

  • Le Partenaire n’est pas prestataire de services de paiement, ne dispose d’aucun pouvoir d’exécution d’opérations de paiement et ne détient aucun fonds de tiers dans le cadre des services de paiement
  • Les comptes, la mise à disposition des fonds, les versements et la protection des fonds sont gérés et encadrés par CentralPay, en sa qualité de PSP
  • Aucune délégation réglementaire d’exécution de service de paiement (type agent PSP) n’est accordée à ces partenaires

3.1. Relation contractuelle avec les marchands

Le Partenaire (technique ou intégrateur) conserve sa propre relation commerciale avec ses utilisateurs et reste responsable des services proposés sur sa plateforme. Il définit librement les conditions générales d’utilisation applicables à ses services.

De leur côté, les marchands associés :

  • Ouvrent leur propre profil Marchand CentralPay, lors d’un parcours d’enrôlement individualisé
  • Signent directement avec CentralPay le CCSP et les documents de souscription applicables (dont la désignation éventuelle d’un partenaire)
  • Reconnaissent que le partenaire pourra réaliser certaines actions techniques dans le cadre de son intégration (ex. : transmission d’une commande, remontée de panier, suivi d’Instructions Techniques), sans que cela ne constitue un ordre de paiement ni un accès aux fonds

CentralPay agit alors directement auprès du marchand associé pour :

  • la création et la gestion de son compte (signature électronique, affectation des POS, rattachement au partenaire)
  • le traitement réglementaire des justificatifs transmis (KYC/KYB, lutte contre le blanchiment et le financement du terrorisme)
  • la mise à jour documentaire ou les vérifications complémentaires nécessaires à la bonne exécution des services de paiement

L’ensemble de cette organisation repose sur un dispositif contractuel strictement balisé :

  • Le partenaire signe un contrat dédié avec CentralPay, encadrant son rôle et ses droits d’accès (API/portail) et, le cas échéant, les modalités de commissionnement
  • Les marchands associés signent directement leurs documents contractuels CentralPay (CCSP et souscription), dans lesquels leur association au partenaire peut être précisée
  • Les conditions générales du partenaire s’appliquent uniquement à l’usage de sa propre plateforme. Elles ne peuvent ni interférer avec les services de paiement CentralPay, ni se substituer aux documents contractuels CentralPay

4. Déclaration ORIAS (IOBSP / “MOBSP”)

Un Partenaire Intégrateur ou un Partenaire Technique peut, si son activité le nécessite, être immatriculé à l’ORIAS en qualité d’IOBSP (mandataire – “MOBSP”). Ce statut est distinct de celui d’agent de prestataire de services de paiement (au sens de l’article L.523-1 du Code monétaire et financier).

Cette immatriculation peut permettre, selon le cadre contractuel applicable :

  • De présenter les services de CentralPay et d’assister le marchand dans ses démarches d’entrée en relation
  • D’accompagner la constitution du dossier (sans jamais se substituer aux contrôles réglementaires réalisés par CentralPay)

Ce statut ne modifie en rien les restrictions précédemment énoncées : il ne confère aucun droit sur les fonds et aucun pouvoir d’exécution d’opérations de paiement. CentralPay demeure seul responsable de l’entrée en relation, des contrôles réglementaires et de l’exécution des services de paiement.

Déclaration MOBSP (Orias)

ℹ️ Avant de lire cette page, veuillez consulter la rubrique dédiée à l'entrée en relation pour les partenaires.

Les partenaires CentralPay basés en France opèrent avec le statut d’intermédiaires en opérations de banque et en service de paiement (IOBSP), plus précisément en tant que Mandataires en Opérations de Banques et Services de Paiement (MOBSP).

Pour devenir partenaire MOBSP de CentralPay, vous devez vous déclarer à l’ORIAS. CentralPay devra ensuite vous déclarer en tant que son mandataire. Votre partie peut être réalisée en quelques heures, celle de CentralPay prend quelques jours. L’ORIAS peut quant à elle prendre jusqu’à deux mois pour examiner votre demande.

Bien que ce processus vous incombe, CentralPay peut vous assister en cas de besoin. Contactez notre service client en cas de besoin.

1. Préparez vos données

1.1. Obtenez votre attestation de mandat

Après avoir signé votre contrat de partenariat avec CentralPay :

  1. Envoyez un e-mail à notre service client qui inclut votre raison sociale et votre numéro SIREN
  2. CentralPay vous répondra avec votre attestation de mandat. Vous aurez besoin de ce document pour l’étape 3.3.

1.2. Préparez vos documents justificatifs

Lors de l’étape 3.3 du processus d’inscription, vous devrez fournir les pièces justificatives suivantes :

  • KBIS datant de moins de trois mois
  • Justificatif d’aptitude professionnelle : diplôme dans une école de commerce ou de gestion agréée ou certification RNCP (NCF 122, 128, 313 ou 314, niveaux 7 à 5) ou reconnaissance par le CIEP pour les diplômes étrangers

Si vous ne disposez pas d’un justificatif d’aptitude professionnelle accepté par l’Orias, envoyez un email à notre service client. CentralPay peut vous aider à suivre la formation nécessaire.

Voir l’image ci-jointe, faisant référence à la catégorie Niveau III – IOBSP (niveau 3).

2. Créez votre compte ORIAS

2.1. Accéder au formulaire

  1. Allez sur le site de l’ORIAS
  2. Faites défiler vers le bas jusqu’à voir la section Comment ça marche ?
  3. Cliquez sur S’inscrire

Vous serez redirigé vers le formulaire d’inscription.

2.2. Saisir les informations

  1. Entrez votre numéro SIREN
  2. Saisissez les informations sur votre entreprise. Assurez-vous de vous inscrire en tant que personne morale / entité juridique
  3. Saisissez les informations de votre représentant légal
  4. Saisissez les coordonnées de votre représentant légal
  5. Saisissez les coordonnées de votre entreprise, y compris votre site web si vous en avez un
  6. Entrez l’adresse de votre entreprise
  7. Vérifiez toutes les informations que vous avez saisies, puis cliquez sur Valider

2.3. Connectez-vous à votre compte ORIAS

Vérifiez votre boîte de réception pour un email de l’ORIAS (no-reply-orias@orias.fr). L’email contient votre identifiant et un mot de passe provisoire.

  1. Retournez sur le site de l’ORIAS
  2. Cliquez sur Connexion / Login
  3. Saisissez votre identifiant et votre mot de passe provisoire depuis votre email
  4. Suivez les instructions sur votre écran pour modifier votre mot de passe, puis enregistrez-le

Après avoir enregistré votre nouveau mot de passe, vous serez redirigé vers votre espace compte ORIAS

3. Réalisez une nouvelle demande d’inscription

3.1. Enregistrez votre entreprise

  1. Cliquez sur Nouvelle inscription pour démarrer votre inscription, un formulaire apparaît
  2. Choisissez Activité IOB
  3. Choisissez ensuite Mandataire non-exclusif en opérations de banque et en services de paiement (MOBSP)
  4. Cliquez sur Soumettre

3.2. Fournissez des informations complémentaires

  1. Sélectionnez la case précisant que vous complétez votre inscription à titre de Mandataire non exclusif en opérations de banque et en services de paiement
    • Si un autre type d’inscription est spécifié, utilisez le bouton Précédent de votre navigateur pour revenir à la page précédente et réessayez.
  2. Pour la première question, choisissez la réponse : Je déclare que l’on ne me confie pas de fonds
  3. Pour la deuxième question, choisissez la réponse : Accessoire, indiquant à l’ORIAS que les services financiers ne sont pas l’activité principale de votre entreprise
  4. Pour la troisième question, choisissez la réponse : Oui, indiquant à l’ORIAS que votre entreprise propose du crédit (ou d’autres services bancaires et de paiement) uniquement à titre de service secondaire
  5. Cliquez sur Aller à l’étape « Pièces justificatives »

3.3. Fournissez vos documents justificatifs

  1. Soumettez votre KBIS
  2. Soumettez votre mandat d’attestation, qui est le certificat de mandat de l’étape 1.1
  3. Soumettez votre Capacité professionnelle pour « vous » (Niveau I IOBSP), qui constitue votre preuve d’aptitude professionnelle de l’étape 1.2.
  4. Cliquez sur Aller à l’étape suivante

3.4. Payez votre inscription

La dernière étape consiste à payer votre inscription.

  1. Notez que vous payez pour l’enregistrement de Mandataire non exclusif en opérations de banque et en services de paiement. Sans payer les frais, votre inscription ne peut être finalisée
  2. Choisissez de payer avec votre Carte bancaire, ou cliquez sur Choisir un autre mode de paiement pour payer par Virement (virement) ou Chèque (chèque)
  3. Après avoir payé, cliquez sur Télécharger la facture pour télécharger votre reçu
  4. Cliquez sur Terminer la demande d’inscription pour finaliser votre inscription
  5. Vous recevrez votre numéro d’inscription ORIAS par e-mail, confirmant que votre inscription est terminée. Envoyez ce numéro au service client de CentralPay par email

4. CentralPay vous enregistre en tant que MOBSP

Après avoir envoyé à CentralPay votre numéro d’enregistrement Orias par email, CentralPay vous enregistre en tant que Mandataire non exclusif en opérations de banque et en services de paiement (MOBSP).

5. L’ORIAS examine votre candidature

L’ORIAS examine vos documents et votre candidature pour s’assurer que votre dossier est entièrement conforme. L’ORIAS vous informera de sa décision finale par email. Si elle est approuvée, l’e-mail contient également la date à laquelle votre statut de MOBSP prendra effet.

N’hésitez pas à contacter l’ORIAS par téléphone (09.69.32.59.73) ou par email (contact@orias.fr) si vous ne recevez pas à temps les informations concernant votre candidature.

6. Mettez à jour vos mentions légales

Après avoir reçu l’agrément de l’ORIAS et être devenu MOBSP, assurez-vous de mettre à jour vos mentions légales. Ajoutez quelque chose de similaire à l’exemple suivant au pied de page de votre site Web, dans votre page de mentions légales et partout où vous distribuez ou vendez des services de paiement.

[Raison sociale], société immatriculée au RCS de [ville d’enregistrement] sous le numéro [numéro RCS], et inscrite au Registre unique des Intermédiaires en Assurance, Banque et Finance sous le numéro d’immatriculation [numéro d’enregistrement ORIAS] en qualité de Mandataire non exclusif en opérations de banque et en services de paiement.

Marchand Mandataire

Agent de Prestataire de Services de Paiement (Agent PSP) ou Distributeur de Monnaie Électronique (DME)

Certains projets nécessitent un cadre réglementaire spécifique permettant à des mandataires d’agir au nom et pour le compte de CentralPay, établissement agréé et supervisé par l’ACPR. Deux statuts principaux peuvent être mobilisés en France :

  • L’Agent de Prestataire de Services de Paiement (Agent PSP), pour les projets nécessitant une gestion active des flux de paiement (encaissements, transferts, versements), dans le strict cadre d’un mandat et sous la responsabilité de CentralPay
  • Le Distributeur de Monnaie Électronique (DME), pour des projets reposant sur des mécanismes de valeur stockée / monnaie électronique (plateformes C2C, titres prépayés, réseaux fermés, etc.), dans le cadre d’un contrat de distribution

Ces modèles peuvent offrir une autonomie opérationnelle importante au mandataire, mais s’accompagnent de contraintes réglementaires fortes et d’une supervision permanente, sous la responsabilité de CentralPay.

1. Agent de Prestataire de Services de Paiement (Agent PSP)

1.1. Cas d’usage typiques

  • Plateformes B2B avec flux financiers complexes
  • Outils de gestion financière ou de trésorerie pour tiers
  • Solutions SaaS intégrant l’encaissement et la mise à disposition de fonds à des bénéficiaires

1.2. Rôle de l’Agent

L’Agent PSP agit en tant que représentant réglementaire de CentralPay pour la fourniture de services de paiement, au nom et pour le compte de CentralPay, dans les limites du mandat et des droits techniques configurés.

Fonctionnalités (selon périmètre contractuel et habilitations) :

  • Mise en relation commerciale et promotion des services CentralPay auprès des utilisateurs finaux (les “Participants”)
  • Accompagnement des Participants à l’ouverture de comptes CentralPay (parcours CentralPay et/ou parcours piloté par l’Agent, selon modèle retenu)
  • Ouverture, au nom de l’Agent, de comptes techniques dédiés à la ségrégation des flux (ex. compte de collecte et compte de commission), sans que l’Agent ne devienne propriétaire des fonds des Participants
  • Transmission à CentralPay des demandes/instructions nécessaires à la bonne exécution des services (ex. affectation des fonds, demandes de versement, demandes de remboursement), CentralPay restant seul exécutant
  • Gestion du support de premier niveau (N1) et traitement opérationnel défini comme prestation externalisée, avec escalade vers CentralPay lorsque requis

1.3. Les 3 options du modèle Agent (délégation KYC/KYB)

Le modèle Agent de CentralPay prévoit trois niveaux de délégation en matière d’inscription et de contrôles KYC/KYB. Une seule option est applicable à la fois, et le niveau retenu est formalisé contractuellement :

  • Option A – Agent simple (absence de délégation de contrôle) : l’Agent agit comme Agent PSP déclaré mais sans délégation KYC/KYB. Il se limite à la mise en relation commerciale et oriente les Participants vers les parcours/outils fournis par CentralPay. Il ne reçoit aucun mandat pour collecter des pièces justificatives ni effectuer des contrôles.
  • Option B – Agent collecteur (délégation de la complétude administrative) : l’Agent est mandaté pour constituer le dossier administratif du Participant pour le compte de CentralPay. Il collecte les pièces et réalise des vérifications strictement formelles de complétude (lisibilité, validité apparente, cohérence documentaire). Il ne réalise pas d’analyse de risque, ni filtrage sanctions/PPE, ni analyse approfondie ; la décision d’entrée en relation demeure celle de CentralPay.
  • Option C – Agent délégataire de contrôle (délégation de niveau 1) : option réservée aux Agents disposant d’une organisation conformité dédiée et expressément validée par CentralPay. L’Agent peut collecter les pièces KYC/KYB, vérifier la complétude/cohérence et assurer un contrôle de vigilance de niveau 1 exclusivement formel et administratif. Il peut également participer au traitement des alertes de niveau 1 (collecte/qualification administrative/transmission), selon des procédures strictes. CentralPay conserve la décision finale et peut révoquer l’option à tout moment en cas de défaillance.

1.4. CentralPay reste responsable

  • CentralPay reste pleinement responsable des services fournis aux Participants
  • L’Agent agit dans le strict cadre du mandat qui lui est confié, et selon les habilitations techniques mises en place
  • Toute activité réalisée via la plateforme est auditable, traçable et documentée

1.5. Contraintes réglementaires

  • Signature d’un contrat d’Agent et de ses documents associés
  • Enregistrement officiel en tant qu’Agent sur le registre de l’ACPR (via CentralPay)
  • Évaluation de la capacité organisationnelle du mandataire et exigences renforcées (conformité, sécurité, confidentialité, continuité, contrôle interne)
  • Reporting périodique à CentralPay (volume d’activité, incidents, qualité de service) et possibilité d’audit sur pièce ou sur site
  • Formations obligatoires des équipes opérationnelles, selon le périmètre de délégation

2. Distributeur de Monnaie Électronique (DME)

2.1. Cas d’usage typiques

  • Plateformes de vente entre particuliers (C2C)
  • Réseaux d’enseignes prépayées ou de bons cadeaux
  • Programmes de fidélité à valeur monétaire stockée

2.2. Rôle du DME

Le DME agit pour le compte de CentralPay dans la mise à disposition et la gestion opérationnelle de la monnaie électronique, dans les limites prévues par le contrat de distribution et les règles définies par CentralPay.

Fonctionnalités :

  • Mise en relation de CentralPay avec les utilisateurs finaux (les “sous-marchands” / utilisateurs de monnaie électronique)
  • Transmission à CentralPay des instructions de chargement (montant, bénéficiaire, commission), CentralPay restant seul émetteur/exécutant
  • Visualisation et suivi des opérations via un dispositif de suivi dédié (ex. vue consolidée / compte centralisateur selon modèle), sans droit de disposition sur les fonds
  • Transmission des demandes/instructions permettant la circulation de monnaie électronique entre utilisateurs dans un cadre défini (réseau fermé, règles contractuelles), sous contrôle de CentralPay
  • Transmission des demandes de remboursement de monnaie électronique à la demande de l’utilisateur, selon les règles applicables
  • Détention d’un compte de commission pour percevoir les frais définis dans ses CGU

2.3. Limites fonctionnelles

  • Le DME ne détient jamais les fonds : il agit comme intermédiaire et ne peut pas conserver, stocker ou utiliser les fonds collectés
  • Il n’est pas autorisé à créer/émettre lui-même de la monnaie électronique
  • Il ne peut pas offrir de services de paiement non explicitement autorisés dans le cadre contractuel défini par CentralPay
  • Il ne peut pas sous-traiter son activité, sauf accord explicite de CentralPay

2.4. Contraintes réglementaires

  • Signature d’un contrat de distribution avec CentralPay
  • Déclaration / formalités de mise en conformité réalisées sous l’initiative et la responsabilité de CentralPay, selon la réglementation applicable
  • Mise en conformité organisationnelle : dispositifs internes de sécurité, confidentialité, gestion des incidents, continuité d’activité
  • Supervision permanente par CentralPay, incluant :
    • Contrôle de l’usage de l’API / des habilitations
    • Reporting régulier sur l’activité
    • Formation obligatoire des équipes du DME
    • Validation des CGU utilisées auprès des utilisateurs

Déclaration Agent PSP (ACPR)

Rôle de l’ACPR

L’ACPR (Autorité de Contrôle Prudentiel et de Résolution), adossée à la Banque de France, tient le registre des prestataires régulés et de leurs agents. Dans le cadre d’un modèle Agent PSP, CentralPay (établissement agréé) constitue et dépose la notification/dossier d’enregistrement de l’Agent et demeure l’unique interlocuteur de l’ACPR.

Le futur Agent ne peut pas déposer de dossier directement auprès de l’ACPR : les échanges sont pilotés par CentralPay, avec le concours de l’Agent (transmission de pièces, réponses aux questions, éléments d’organisation).

Étapes de déclaration d’un Agent

ÉtapeDescription
1. Cadrage & pré-qualificationAnalyse du modèle, du périmètre fonctionnel et des responsabilités ; validation juridique & conformité côté CentralPay
2. Constitution du dossierCollecte des pièces société/dirigeants, éléments d’organisation (process, contrôles, sécurité), CGU Agent/Participants, prévisions d’activité
3. Dépôt / échanges ACPRDépôt réalisé par CentralPay ; réponses aux demandes complémentaires pilotées par CentralPay avec l’aide de l’Agent
4. Enregistrement & activationÀ l’issue de l’enregistrement sur le registre public, CentralPay peut activer l’Agent en production (avant cela, l’activité reste bloquée)

1. Responsabilités de l’Agent

En tant qu’Agent PSP, l’Agent agit au nom et pour le compte de CentralPay dans le périmètre défini contractuellement. CentralPay reste pleinement responsable de la fourniture des services de paiement et de la conformité réglementaire ; toutefois, l’Agent doit appliquer strictement les procédures et exigences opérationnelles fixées par CentralPay, notamment en matière de LCB-FT et de lutte contre la fraude.

L’Agent est notamment responsable de :

  • La compréhension de l’activité de ses marchands/Participants et de la cohérence économique des opérations initiées via son modèle
  • La mise en œuvre des dispositifs opérationnels attendus (process internes, contrôles, traçabilité, gestion des incidents) et du respect des consignes CentralPay
  • La lutte contre la fraude (détection, escalade, coopération) et le respect des obligations de vigilance dans le périmètre confié
  • La coopération avec CentralPay en cas de demande d’information (contrôles, audit, questions ACPR), et la transmission rapide des pièces demandées

L’Agent doit signer :

  • Un Contrat d’Agent PSP avec CentralPay (mandat / externalisation / supervision / flux)
  • Le CCSP (Contrat Cadre de Services de Paiement) applicable à l’Agent en sa qualité de client professionnel de CentralPay (accès plateforme, services souscrits)
  • Des CGU Agent (ou documentation équivalente) encadrant sa relation avec ses Participants, incluant les mentions nécessaires sur les parcours, la ventilation, les dates de déblocage et les éventuelles demandes de versements

Selon le périmètre retenu (et les annexes applicables), certaines fonctions peuvent être déléguées à l’Agent (ex. collecte et contrôles formels KYC/KYB). CentralPay reste seule décisionnaire de l’entrée en relation, de l’ouverture/maintien des comptes et des décisions réglementaires.

2. Devenir Partenaire Agent CentralPay

Le processus d’enregistrement d’un Agent dépend de la complétude du dossier, du niveau de délégation opérationnelle et des échanges avec l’ACPR. En pratique, il s’étale généralement sur plusieurs semaines et peut être prolongé si des pièces complémentaires sont demandées.

2.1. Résumé des étapes

ÉtapeDétails
1. Compréhension du modèle– Cadrage du périmètre et des responsabilités
– Description des flux & cas d’usage
– Validation par les équipes Juridique & Conformité de CentralPay
2. Offre commerciale– Présentation par CentralPay
– Alignement sur le périmètre (technique, opérationnel, conformité)
3. Contractualisation– Signature du Contrat d’Agent
– Signature/acceptation du CCSP applicable à l’Agent
4. Test & intégration– Accès sandbox
– Intégration technique & recette
– Vérification des parcours (onboarding/consentement/affichages)
5. Instruction ACPR– Collecte des éléments réglementaires
– Constitution et dépôt du dossier auprès de l’ACPR par CentralPay
– Gestion des questions / compléments
6. Mise en production– Activation en production après enregistrement
– Tests en environnement de recette / production encadrée

2.2. Pièces à fournir à CentralPay

Phase 1 – Pré-constitution du dossier

  • CGU Agent / documentation contractuelle Participants (parcours, consentements, information “agent”, ventilation/commission, dates de déblocage, modalités de remboursement)
  • Définition des activités régulées, services associés, modèle d’affaires
  • Organigramme (y compris répartition des effectifs par service) et description des rôles clés
  • Structure de l’actionnariat / gouvernance
  • Flux prévisionnels sur 3 ans confiés à CentralPay (volumes, montants, typologies)
  • Nombre d’enrôlements prévisionnels sur 3 ans
  • Cas de reprise de KYC existant (migration) le cas échéant

Phase 2 – Déclaration auprès du régulateur

  • Signature du Contrat d’Agent (préalable au dépôt du dossier)
  • CentralPay collecte et dépose les pièces suivantes (liste indicative) :
    • Kbis < 3 mois de la société et, le cas échéant, des sociétés de tête/dirigeantes
    • Statuts à jour signés
    • Pièces d’identité couleur des dirigeants
    • CV des dirigeants datés et signés
    • Casier judiciaire des dirigeants (si demandé)
    • Déclarations de non-condamnation des dirigeants
    • Répartition de la détention des parts / actionnariat
    • Kbis des personnes morales actionnaires (si applicable) + organigramme de groupe (si applicable)
    • PV d’AG récents (fusion, perte > 50% du capital, changement direction, etc.)
    • Registre des bénéficiaires effectifs (si demandé)

Peuvent également être demandés par l’ACPR :

  • Bilans et comptes de résultat récents
  • États financiers en cours ou de l’année précédente
  • Toute pièce jugée utile par le régulateur

2.3. Délais d’instruction

  • Instruction par CentralPay : généralement ~2 semaines à compter de la réception d’un dossier complet
  • Délai ACPR : variable ; peut aller jusqu’à ~2 mois, avec premières questions sous 30 jours en général

2.4. Fin d’instruction

  • L’Agent peut démarrer l’activité uniquement après enregistrement effectif (publication sur le registre public)
  • Avant enregistrement, CentralPay n’active pas l’Agent en production et peut maintenir les comptes de l’Agent bloqués (IN/OUT)
  • L’Agent est référencé dans les registres publics avec un numéro/identifiant d’enregistrement pouvant devoir figurer dans certaines communications/mentions

2.5. Particularité – Agents Télécom SVA (numéros surtaxés)

  • Obligation de fournir un récapitulatif des minutes par opérateur
  • Transmission du détail de répartition des encaissements (ventilation) à CentralPay
  • CentralPay met en place des contrôles complémentaires afin de s’assurer que les marchands/Participants sont correctement crédités

3. Traitement des flux agent

Cette section définit les règles applicables au traitement et au contrôle des flux financiers dans un modèle Agent. Elle précise les responsabilités, la structure des comptes et les contrôles complémentaires mis en œuvre afin de répondre aux exigences légales et prudentielles.

3.1. Responsabilité de l’établissement

Conformément au Code monétaire et financier (CMF), l’Agent agit au nom et pour le compte de CentralPay. CentralPay demeure pleinement responsable du respect des obligations réglementaires, notamment en matière de LCB-FT, de sécurité et de protection des fonds.

CentralPay met en place un dispositif de contrôle interne couvrant l’ensemble du cycle des flux, y compris ceux traités dans le cadre de ses Agents (supervision, auditabilité, traçabilité).

3.2. Comptes opérationnels des agents

Pour les besoins de ségrégation des flux, CentralPay met à disposition (dans ses livres) :

  • Compte de Collecte : compte de transit destiné à recevoir les fonds liés aux opérations initiées via le modèle Agent, et à permettre leur affectation/ventilation vers les comptes des Participants
  • Compte de Commission : destiné à recevoir la rémunération revenant à l’Agent (commissions) et à régler les frais dus à CentralPay
  • Compte de paiement Agent (optionnel) : destiné aux opérations courantes de l’Agent pour son compte propre (approvisionnement, paiement de factures SaaS, etc.), distinct des flux tiers et des commissions

3.3. Traitement des opérations

Lorsqu’un Agent initie une transaction pour le compte d’un ou plusieurs Participants :

  1. L’Agent transmet à CentralPay les informations nécessaires à la ventilation (part des Participants, commission Agent, références), soit directement dans la transaction, soit au plus tard en fin de journée via un traitement par lot lorsque cela est objectivement nécessaire.
  2. CentralPay exécute ensuite, sous sa responsabilité, les opérations d’affectation/ventilation et, le cas échéant, les mouvements nécessaires (dont la commission vers le compte de commission), conformément au cadre contractuel et aux contrôles réglementaires.

Le Compte de Collecte doit rester un compte de transit : l’Agent ne doit pas conserver passivement des fonds de tiers au-delà des délais strictement nécessaires au traitement (pas de “trésorerie flottante”).

Les modalités de versement sortant (Payout) sont encadrées par CentralPay ; le Compte de Collecte n’a pas vocation à servir de compte de versement sortant “libre”.

3.4. Dates de déblocage et montants prévisionnels

Fonctionnement

Selon le modèle contractuel, l’Agent peut transmettre ou paramétrer (en qualité d’intermédiaire mandaté par le Participant) une date de déblocage (endpoint API : EscrowDate) correspondant à un évènement contractuel objectivable (ex. livraison/expédition/fin de prestation). Cette date ne produit aucun effet financier automatique : CentralPay demeure seule décisionnaire de la mise à disposition des fonds (acceptation, refus, report, encadrement).

Jusqu’à la date de déblocage :

  • Les fonds restent protégés et indisponibles (ni accessibles à l’Agent, ni utilisables par le Participant)
  • Le Participant peut visualiser l’opération sous forme d’opération à venir ou de montant prévisionnel, avec affichage de la date de disponibilité, sans constituer un crédit au solde disponible

Conditions de conformité

L’usage des dates de déblocage est autorisé uniquement si :

  • Information claire : l’Agent doit expliquer à ses Participants comment fonctionne la date de déblocage (principes, délais, exceptions).
  • Affichage transparent : l’interface Participant doit indiquer la date de l’opération, la date de disponibilité prévue et un statut “indisponible avant cette date”.
  • Mentions dans les CGU Agent : les CGU signées par les Participants doivent préciser :
    • Que la date de déblocage correspond à la date contractuelle à laquelle les fonds deviennent utilisables.
    • Qu’il est impossible pour le Participant d’utiliser ces fonds avant cette date.
    • Que CentralPay peut refuser, différer, suspendre ou encadrer la mise à disposition au regard de ses obligations réglementaires, de sa politique de risque et des règles des réseaux de paiement.
  • Gestion des exceptions : en cas d’annulation, de remboursement, d’impayé ou de litige :
    • Si la transaction source est annulée/remboursée, les fonds ne seront pas mis à disposition.
    • En cas d’impayé (ex. chargeback carte) ou de risque, CentralPay peut retenir/ajuster les montants en attente ou compenser lors de règlements ultérieurs.
    • La date de déblocage peut être reportée (litige/incident) ; le Participant doit être informé via son interface/notifications.

Ce mécanisme ne constitue ni un séquestre au sens du droit civil, ni un service de conservation fiduciaire : il s’agit d’une mise à disposition différée sous contrôle exclusif de CentralPay.

3.5. Gestion des versements sortants

Fonctionnement

CentralPay peut mettre à disposition des Participants (et, selon les habilitations, à l’Agent agissant comme intermédiaire mandaté) différents modes de gestion des versements sortants :

  • Versements sortants automatisés (paramétrage de règles/plannings, lorsque prévu contractuellement)
  • Versements sortants ponctuels (demande via portail/API selon les droits accordés)

Conditions de conformité

Lorsque l’Agent est autorisé à transmettre des demandes de versement sortant pour le compte de ses Participants, il doit recueillir leur consentement et décrire clairement le mode de fonctionnement dans les CGU Agent. CentralPay demeure seule responsable de l’exécution et peut refuser, suspendre ou encadrer ces demandes conformément à ses obligations.

À retenir

Le dispositif présenté garantit :
- La séparation stricte des flux tiers / commissions / compte propre
- L’absence de droit de disposition de l’Agent sur les fonds de tiers
- La traçabilité complète des opérations (auditabilité)
- La supervision active par CentralPay
- La conformité aux exigences du CMF et aux attentes de supervision

Le respect de ce dispositif est obligatoire. Toute anomalie (fraude, incident, incohérence de ventilation, non-respect des procédures) doit être signalée immédiatement à votre Account Manager CentralPay.

Déclaration Distributeur ME (ACPR)

Les Établissements émetteurs de monnaie électronique comme CentralPay peuvent mandater des Distributeurs de Monnaie Électronique (DME) afin de collecter des fonds et d’assurer les échanges permettant l’achat et le remboursement de ME dans un réseau de sous-marchands défini.

La déclaration d’un Distributeur de Monnaie Électronique se déroule en deux étapes :

  • Le montage du dossier de déclaration : réalisé par CentralPay avec l’aide de son futur DME
  • L’instruction du dossier à l’ACPR : réalisé par CentralPay. Elle ne nécessite pas de validation particulière de l’ACPR

1. Responsabilité du mandataire DME

CentralPay réalise tous les processus complexes ou nécessitant de fortes compétences. Néanmoins, vous êtes toujours garant de la tenue d’un haut niveau d’exigence dans le suivi et l’application des règles de LCB-FT (Lutte Contre le Blanchiment et le Financement du Terrorisme). À ce titre, vous devez apporter à CentralPay des certitudes sur les conditions de réalisation des opérations qui passent par votre intermédiaire, notamment :

  • La réalité économique de l’opération
  • La lutte contre la fraude

Les Établissements régulés qui font appel à des distributeurs restent responsables des opérations réalisées par ces derniers. Un cadre juridique précis est donc mis en place.

Un statut de Distributeur de Monnaie Électronique passe par :

  • La contractualisation d’un contrat Cadre de Distribution de Monnaie Électronique qui définit les relations entre les parties
  • Des CGU d’utilisation de Monnaie Électronique

Dans le cas où un DME internalise certaines fonctions dévolues à CentralPay dans le cadre de ses obligations règlementaires, un contrat de Prestations de Services Essentiels Externalisées devra être signé. C’est par exemple le cas si l’agent internalise la gestion des KYC ou réalise des interfaces de gestion qui ne permettrait pas à CentralPay d’assurer l’exécution du service sans le concours du PSEE.

2. Devenir mandataire DME

Devenir Distributeur de CentralPay nécessite le suivi d’étapes qui s’étalent sur plusieurs semaines.

Voici un guide qui permet de mieux comprendre les enjeux liés à l’acceptation, puis à l’instruction des dossiers de déclaration des Distributeurs.

2.1. Résumé des étapes

  1. Compréhension du modèle
    • Explication des services apportés par le mandataire
    • Définition de son modèle d’affaires
    • Validation par le service Risque & Conformité de CentralPay
  2. Offre Commerciale
    • Présentation
  3. Validation
    • Validation du mandataire par le service Risque & Conformité de CentralPay
    • Validation de la proposition commerciale et des conditions tarifaires par le mandataire
  4. Test & Intégration
    • Mise en place de la sandbox
    • Réunion de lancement de projet avec l’équipe technique
    • Phase d’intégration technique
  5. Instruction du dossier ACPR
    • Collecte des éléments nécessaires à la constitution du dossier
    • Préparation du dossier
    • Présentation du dossier
  6. Mise en production
    • Validation de la recette
    • Mise en production

2.2. Pièces à fournir à CentralPay

Prochainement

Ouvrir un compte CentralPay

Parcours d'entrée en relation

CentralPay propose plusieurs modes d’entrée en relation, selon votre situation :

  • Vous êtes un marchand standard, partenaire ou mandataire en relation directe avec CentralPay
  • Vous êtes un marchand participant d’un mandataire, ou un marchand standard rattaché à un partenaire technique utilisant la solution CentralPay

Ce guide détaille les différentes étapes, selon votre profil. Certaines étapes peuvent être adaptées ou simplifiées selon les modalités de votre intégration.

1. Marchands en direct

Le parcours d’entrée en relation comporte six étapes principales.

1.1. Qualification de votre projet

Nos équipes commerciales échangent avec vous pour analyser votre projet :

  • Parcours de paiement envisagé (web, mobile, point de vente, récurrent…)
  • Moyens de paiement souhaités (carte, virement, SEPA, Pay By Bank…)
  • Méthodes d’intégration (API, portail, connecteur)
  • Typologie de vos clients finaux (B2B, B2C, abonnements…)
  • Volumétrie estimée (fréquence et montants)

1.2. Pré-analyse conformité de votre projet

Sur la base des informations fournies, notre service conformité effectue une pré-analyse réglementaire visant à :

  • Vérifier la compatibilité de votre activité avec notre cadre réglementaire
  • Identifier les points de vigilance potentiels (secteur sensible, flux complexes…)
  • Prédéfinir les éventuelles garanties ou conditions particulières

1.3. Signature du contrat cadre

Une fois cette pré-analyse validée, vous êtes invité à signer le contrat cadre de services de paiement ou de monnaie électronique.

  • Voir le contrat cadre de services de paiement
  • Un représentant légal peut désigner un mandataire pour signer à sa place (modèle de délégation disponible sur demande)

1.4. Lancement de l’intégration

Après signature du contrat :

  • Vous recevez vos accès à l’environnement de test
  • Vous accédez aux documentations techniques CentralPay

Si vous bénéficiez d’un accompagnement personnalisé, une réunion d’onboarding est organisée pour configurer vos premiers paramétrages (notifications, versements, droits utilisateurs…).

1.5. Création du profil Marchand CentralPay

Le représentant légal reçoit un lien d’inscription sécurisé pour créer le profil :

  • Il complète les informations juridiques
  • Il valide les Conditions Générales d’Utilisation
  • L’analyse de conformité complète est alors déclenchée

Cette analyse peut donner lieu à :

  • Des demandes de documents complémentaires (KYC/KYB, contrats, justificatifs…)
  • Un refus d’ouverture si les critères réglementaires ne sont pas remplis
  • Une validation du profil, menant à son ouverture

1.6. Mise en production

Une fois l’ensemble des étapes validées, y compris l’intégration et les éventuelles factures initiales :

  • Une date de mise en production est convenue
  • Votre profil est débloqué
  • Vous pouvez encaisser vos premières transactions

2. Marchands liés à un partenaire technique

Si vous êtes un marchand intégré via un partenaire technique ou mandataire de CentralPay, le parcours est simplifié.

Vous entrez directement à l’étape 5 : Création du profil Marchand CentralPay.

2.1. Étape unique : Création du profil et validation réglementaire

  • Vous recevez un lien d’inscription transmis par votre partenaire ou directement par CentralPay.
  • Ce lien vous permet de :
    • Compléter les informations relatives à votre structure
    • Décrire précisément votre activité, la typologie de vos clients finaux et la volumétrie estimée de vos opérations
    • Valider les Conditions Générales d’Utilisation et signer le contrat cadre

Les aspects techniques (intégration, parcours, moyens de paiement) sont déjà définis dans le cadre de la convention signée avec le partenaire technique ou le mandataire.

L’analyse de conformité complète de CentralPay reste obligatoire avant validation du profil.

Principes de réserve

La réserve représente les sommes qui sont maintenues sur votre compte de réserve CentralPay afin de permettre de couvrir les R-transactions (rejets, refus, retours, remboursements, contestations, impayés) lorsque votre compte de paiement n’est pas solvable. Ses paramètres sont définis en fonction du profil de risque financier de votre compte et sont actualisés en fonction de l’analyse de vos R-transactions sur une période suffisante. Les transactions récurrentes par prélèvement SEPA et par carte bancaire sont particulièrement sujettes au risque de R-transactions.

CentralPay possède 3 types de garanties de protection qui peuvent s’appliquer aux marchands, en fonction de la nature de leur contrat :

1. Le collatéral

Il représente la somme fixe versée en début de relation, servant à couvrir le risque de crédit dans le cas où le marchand ne pourrait pas satisfaire ses obligations de remboursement envers ses clients.

Le détail du collatéral est visible depuis le Portail Marchand : Administration Versements Somme des cautions

2. Le pied de compte

En l’absence de collatéral, une somme fixe peut être prélevée directement sur les opérations afin de garantir le remboursement des clients en cas de besoin. Le compte doit donc dépasser la valeur du pied de compte pour autoriser les versements sortants (payout).

Le détail du pied de compte est visible depuis le Portail Marchand : Administration Versements Seuil fixe

3. La réserve glissante

Selon le secteur d’activité et les processus de règlement du compte, une réserve glissante (« rolling réserve » en anglais) peut être automatiquement ouverte. Il s’agit d’une garantie de protection supplémentaire qui permet de maintenir un certain pourcentage du volume d’encaissement sur votre compte de réserve afin de permettre l’initiation de remboursements automatiques en cas de contestation de transaction, de fraude ou encore afin de couvrir d’éventuels frais opérationnels si votre compte de paiement n’est pas solvable. Cette somme appartient à la trésorerie du marchand, elle est gardée un nombre défini de jours avant d’être libérée (généralement entre 90 à 180 jours).

Par exemple, le seuil variable de la réserve glissante est de 5 % du volume d’encaissement sur 90 jours. Le calcul quotidien du montant de réserve est le suivant : montant des transactions encaissées lors des 90 derniers jours * 5 %

Le détail de la réserve glissante est visible depuis le Portail Marchand : Administration Versements Seuil variable

Conditions générales d’utilisation

L’utilisation des services CentralPay est encadrée par plusieurs documents contractuels que chaque titulaire de compte doit consulter et accepter avant l’activation de son compte.

👉 Consultez les dernières versions en vigueur des conditions générales CentralPay

1. Deux types de CGU applicables

CentralPay propose deux catégories de comptes, soumises à des conditions générales distinctes en fonction du service souscrit :

Type de compteConditions générales applicables
Compte de paiementConditions générales de service de paiement
Compte de monnaie électroniqueConditions générales de service de monnaie électronique

Obligation d’acceptation :

Ces conditions générales doivent être lues et acceptées électroniquement par le titulaire de chaque compte, qu’il soit ouvert directement par un marchand, ou via un partenaire CentralPay.

2. Contrat cadre pour les encaissements pour compte propre

Dans le cas où un compte est utilisé pour encaisser des fonds pour compte propre (modèle marchand standard), CentralPay met également à disposition un modèle de contrat cadre dédié :

  • Ce contrat précise les droits et obligations liés à l’utilisation du compte pour l’encaissement d’opérations commerciales,
  • Il est signé électroniquement par le représentant légal ou par une personne habilitée (via délégation de pouvoir).

👉 Consultez les dernières versions en vigueur des conditions générales CentralPay

Utilisation des API CentralPay

Les APIs CentralPay permettent d’interagir de manière sécurisée avec notre plateforme pour créer des comptes, initier des paiements ou automatiser des opérations métiers.

Nos APIs reposent sur le protocole HTTP(S) et utilisent un format de réponse en JSON. L’authentification est obligatoire pour chaque requête, sauf exception précisée.

1. Les APIs disponibles

CentralPay met à disposition deux APIs principales :

APIDescriptionAccès
API Core PaymentGère toutes les fonctions liées aux opérations de paiement (initiation, transfert, remboursement, etc.)Tous les marchands
API OnboardingPermet la demande de création de comptes de paiement ou de monnaie électronique (enrôlements, wallet, etc.)Réservée aux marchands partenaires et mandataires (Agents, DME).

2. URLs des environnements

Deux environnements sont disponibles selon votre étape d’intégration :

ComposantEnvironnement de TESTEnvironnement de PRODUCTION
API Core Paymenthttps://test-api.centralpay.net/https://api.centralpay.net/
API Onboardinghttps://test-onboarding-api.centralpay.net/https://onboarding-api.centralpay.net/

Les identifiants d’accès sont différents entre test et production.

Vous pouvez également accéder à votre Portail Marchand à des fins de consultation ou de paramétrage :

ComposantEnvironnement de TESTEnvironnement de PRODUCTION
Portail Marchandhttps://test-backoffice.centralpay.net/https://backoffice.centralpay.net/

3. Authentification API

L’API CentralPay utilise l’authentification HTTP Basic, qui repose sur deux éléments obligatoires à inclure dans chaque appel :

  • Identifiant API (login)
  • Mot de passe API

Toutes les requêtes doivent être transmises en HTTPS. Ces identifiants sont distincts entre les environnements de test et de production.

Pour récupérer vos identifiants API, suivez les étapes suivantes :

3.1. Étape 1 – Accéder au Portail Marchand

  • Pour l’environnement de production : https://backoffice.centralpay.net/
  • Pour l’environnement de test : https://test-backoffice.centralpay.net/

3.2. Étape 2 – Ouvrir la section technique

Depuis le menu de navigation : Administration > Mon compte > Technique

  • Lien direct en production : https://backoffice.centralpay.net/admin/actor/account#technical_tab
  • Lien direct en test : https://test-backoffice.centralpay.net/admin/actor/account#technical_tab

3.3. Étape 3 – Récupérer l’Identifiant API (login)

  1. Dans l’onglet Technique, localisez la zone « Identifiant API »
  2. Cliquez sur l’identifiant affiché pour l’ouvrir en détail
  3. Copiez la valeur indiquée dans le champ Login

⚠️ Ce login est à fournir dans l’en-tête Authorization de vos requêtes (sous forme de base64 avec le mot de passe, voir plus bas).

3.4. Étape 4 – Générer un Mot de passe API

  1. Toujours dans le même écran, cliquez sur le bouton Modifier
  2. Cliquez ensuite sur Générer un mot de passe
  3. Copiez immédiatement le mot de passe généré, attention il n’est affiché qu’une seule fois
  4. Cliquez enfin sur Mettre à jour pour valider le nouveau mot de passe

Si vous perdez le mot de passe, vous devrez recommencer cette opération pour en générer un nouveau.

ℹ️ Bonnes pratiques :
- L’identifiant et le mot de passe peuvent être révoqués ou régénérés à tout moment depuis le portail marchand.
- Ne partagez jamais ces identifiants en clair.
- Stockez le mot de passe dans un gestionnaire sécurisé après sa génération.

4. Clé publique Marchand (MerchantPublicKey)

Certains services, comme cardToken, ne nécessitent pas d’identifiant/mot de passe mais uniquement une clé publique marchand (MerchantPublicKey) pour authentifier la requête.

Où la trouver :

  • Connectez-vous au Portail Marchand de production ou de test
  • Accédez à : Administration > Technique
  • Copiez la clé dans la section Merchant Public Key

5. Méthodes HTTP et MIME Types

Nos APIs sont conformes au style REST, avec les méthodes HTTP suivantes :

MéthodeUsage
POSTCréation ou mise à jour d’un objet
GETRecherche ou consultation d’un objet
DELETESuppression d’un objet

Les types MIME suivants sont utilisés :

  • application/x-www-form-urlencoded
  • multipart/form-data

Le Content-Type doit être systématiquement précisé dans les en-têtes HTTP.

6. En-têtes HTTP à utiliser

Chaque appel API doit inclure un certain nombre d’en-têtes HTTP correctement renseignés :

En-tête HTTPDescription
AuthorizationEncodage HTTP Basic avec l’identifiant et le mot de passe API
Content-TypeObligatoire pour toutes les requêtes. Doit être : application/x-www-form-urlencoded ou multipart/form-data
User-AgentFortement recommandé, utile pour tracer les intégrations
Idempotence-Key (optionnel mais conseillé)Permet d’éviter les doublons en cas de réémission d’une même requête

7. Idempotence : sécuriser les réémissions

L’en-tête Idempotence-Key permet de garantir qu’une même requête envoyée plusieurs fois avec la même clé ne sera traitée qu’une seule fois.

Cela est particulièrement utile lors d’une erreur réseau ou d’un doute sur la réussite d’un appel.

La valeur de l’en-tête Idempotence-Key est un hachage SHA1 des principaux champs métier de la requête. Elle doit être unique par combinaison fonctionnelle de données. Exemple pour une opération carte :

ℹ️ Idempotence-Key = sha1(card[number] + card[cvc] + card[expirationMonth] + card[expirationYear] + card[check] + merchantPublicKey)

La clé Idempotence-Key est valable pendant 24h maximum sur nos serveurs

8. Réponses HTTP

Chaque réponse retournée par l’API contient des éléments de traçabilité utiles dans les en-têtes :

En-tête HTTPDescription
Request-IdIdentifiant unique attribué à chaque appel. Peut être communiqué au support CentralPay en cas d’analyse ou de litige technique.

La réponse JSON du corps dépend bien sûr de la ressource appelée (paiement, transfert, onboarding…), mais le header Request-Id est systématique.

9. Déclaration de vos domaines pour les services CustomForm

Pour certains services tels que cardToken, qui dépendent des formulaires embarqués (CustomForm), il est nécessaire de déclarer au préalable les domaines web qui hébergent ces formulaires.

Sans cette déclaration, toute tentative d’appel aux services concernés depuis un domaine non autorisé entraînera une erreur 403 (Forbidden).

  1. Connectez-vous au Portail Marchand :
    • Production
    • Test
  2. Accédez à :
    • Administration > Mon compte > Technique
  3. Cliquez sur Modifier
  4. Dans le champ Hosts Custom Forms autorisés, saisissez l’URL ou les domaines à autoriser (ex : https://www.votre-site.com)
  5. Enregistrez les modifications

Une fois cette étape effectuée, les services comme cardToken pourront être appelés depuis les domaines déclarés, conformément aux règles de sécurité imposées par CentralPay.

Portail Marchand

Le Portail Marchand est une interface web connectée aux APIs de CentralPay. Il permet de consulter l’activité et d’administrer votre Profil Marchand CentralPay. Les marchands Partenaires et Mandataires peuvent également consulter l’activité des profils de leurs marchands standards et participants.

Accès :

Recette Portail Marchand
Production Portail Marchand

1. Fonctionnalités

Le Portail Marchand permet notamment :

  • De consulter les opérations comptables du compte
  • De consulter les paiements par carte (« transaction »)
  • De consulter les paiements par virement SEPA (« sctTransaction »)
  • De consulter les paiements par prélèvement SEPA (« sddTransaction »)
  • De créer et de consulter les demandes de paiement (« paymentRequest »)
  • De créer et de paramétrer les profils clients (« customer »)
  • De créer et de paramétrer les points de vente (« pointOfSale »)
  • De paramétrer les notifications Smart Push (templates, scénarios …)
  • D’initier et de gérer les paramètres de versement sortant (« payout »)
  • De générer des exports et de télécharger les rapports financiers mensuels
  • Pour les marchands Partenaires et Mandataires uniquement :
    • De créer et de consulter les demandes d’inscription (« merchant-enrollment »)
    • De consulter l »activité des profils marchands standards ou participants associés
ℹ️ Les comptes ayant des droits "Basic" (marchands participants de mandataires CentralPay) peuvent uniquement consulter les opérations dont ils sont bénéficiaires (transfer) et gérer leurs paramètres de versement (payout).

2. Les profils utilisateurs du Portail

Ils représentent des personnes physiques pouvant accéder à un ou plusieurs comptes CentralPay ainsi qu’à tout ou partie des services du Portail Marchand.

2.1. Gestion des profils utilisateurs « Legal » et « Natural »

Lors de la création du Profil Marchand CentralPay, le responsable ayant réalisé l’inscription (dirigeant ou personne physique disposant d’une délégation de pouvoir) se voit attribuer un profil utilisateur dit « Legal ». Il dispose ainsi de tous les droits administrateur du compte, mais également de droits légaux permettant de paramétrer les éléments les plus sensibles du compte :

  • Paramètres du compte de paiement :
    • Changement d’IBAN de sortie (payout)
    • Changement des conditions de versements sur compte bancaire
    • Mise à jour des documents de société
  • Paramètres des utilisateurs :
    • Création de nouveaux utilisateurs « Legal »
    • Prochainement

Une fois le compte créé, vous avez la possibilité de créer autant de profils utilisateurs que nécessaire en renseignant leur nom, leur prénom, leur email et leur rôle utilisateur (définissant les droits qu’ils auront sur le compte). Les profils ainsi créés sont nommés « Natural ».

ℹ️ Si vous disposez de plusieurs comptes CentralPay et que vos équipes doivent avoir accès à ces différents comptes, créez leur profil utilisateur depuis l’un d’entre eux, puis demander à CentralPay d’affecter leur profil à vos autres comptes. Ils bénéficieront ainsi d’un unique centralisé pour tous ces comptes.

Accès :

Recette Portail Marchand – Gestion des profils utilisateurs BO
Recette Portail Marchand – Gestion des profils utilisateurs BO

2.2. Gestion des rôles et droits des profils utilisateurs « Natural »

Les droits des profils utilisateurs « Natural » sont régis par leur rôle utilisateur. Le rôle comprend une liste de droits (lecture seule, création, modification, suppression) paramétrables par service (transaction, demandes de paiement, règles d’acceptation…). Ces droits peuvent être différents en fonction des services sélectionnés.

Les utilisateurs disposant des droits nécessaires peuvent créer des rôles pour chaque équipe de leur entreprise, cependant des rôles préétablis sont disponibles nativement :

  • Standard Admin : Accès complet à toutes les fonctionnalités du Portail Marchand (excepté les fonctionnalités admin). Attention, ce rôle comprend des accès à des services sensibles comme les règles d’acceptation, les whitelists, les blacklists, les créations d’utilisateurs du Portail Marchand, les créations de rôles utilisateurs du Portail, la création et la gestion d’utilisateurs API…
  • Standard read only : Prochainement
  • Prochainement

Contactez le service client CentralPay si vous avez besoin d’aide pour la création de rôles personnalisés.

Quelques précisions importantes concernant les rôles :

  • Les rôles sont cumulables, un utilisateur peut ainsi se voir assigner plusieurs rôles
  • Les droits des rôles sont héritables, ainsi un utilisateur ayant le droit de créer d’autres profils utilisateurs ne pourra affecter qu’un rôle similaire ou inférieur au sien

Accès :

Recette Portail Marchand – Gestion des rôles utilisateurs BO
Production Portail Marchand – Gestion des rôles utilisateurs BO

2.3. Gestion des catégories de point de vente

Si vous avez le besoin de limiter l’accès d’utilisateurs à certains points de ventes, vous pouvez créer des catégories, les affecter à vos points de ventes puis les affecter à vos profils utilisateurs.

Exemple : Un utilisateur ayant des droits de création de demandes de paiement ne pourra le faire que sur les points de ventes de sa catégorie. Il ne pourra également visualiser que les demandes de paiement émises via les points de vente de sa catégorie.

Contactez le service client CentralPay si vous avez besoin d’aide pour la création de catégories de point de vente personnalisées.

Accès :

Recette Portail Marchand – Gestion des catégories de point de vente
Production Portail Marchand – Gestion des catégories de point de vente

3. Liste des types d’opérations visibles sur le Portail Marchand

Type d’objetValeurFonction
AUTHORIZATIONDébitAutorisation de blocage d’un montant d’une carte bancaire
TRANSACTIONCréditTransaction carte
TRANSACTION_CANCELDébitAnnulation de transaction carte
REFUNDCréditRemboursement transaction carte
REFUND_CANCELDébitAnnulation d’un remboursement transaction carte
DISPUTEDébitImpayé suite à la contestation d’une transaction carte
DISPUTE_WONCréditAnnulation d’un impayé carte
TRANSFERDébitTransfert de fonds entre comptes CentralPay
TRANSFER_CANCELCréditAnnulation transfert en attente
TRANSFER_REVERSALCréditRetour d’un transfert validé
PAYOUTDébitVirement sortant du compte CentralPay
PAYOUT_CANCELCréditAnnulation d’un virement sortant
PAYOUT_REVERSALCréditRetour d’un virement sortant validé
SCT_TRANSACTIONCréditVirement entrant
SCT_TRANSACTION_CANCELDébitAnnulation virement entrant avant son arrivée
SCT_TRANSACTION_REFUNDDébitAnnulation virement entrant après son arrivée par le marchand
SCT_TRANSACTION_REVERSALDébitAnnulation virement entrant après son arrivée par CentralPay
CREDITDébitCrédit sur carte non lié à une transaction
CREDIT_CANCELCréditAnnulation d’un crédit sur carte
SDD_TRANSACTIONCréditPrélèvement SEPA d’un compte bancaire externe
SDD_TRANSACTION_CANCELDébitAnnulation d’un prélèvement d’un compte externe avant son arrivée
SDD_TRANSACTION_REVERSALDébitRemboursement d’un prélèvement d’un compte externe après son arrivée
DEPOSITCréditChargement d’une somme sur un compte CentralPay

Guide : Mes comptes

L’entrée Mes comptes du Portail Marchand CentralPay est l’espace dédié au suivi financier de vos comptes (comptes rattachés à votre Profil Marchand) : consultation des informations de compte, suivi des opérations réalisées et à venir, lecture des soldes historisés, et téléchargement des relevés mensuels officiels.

Cette rubrique est particulièrement utile pour les équipes comptables, la direction financière et les personnes en charge du rapprochement et des clôtures.

Accéder au Portail Marchand > Mes comptes

1. Sous-entrées disponibles

La rubrique Mes comptes se compose de 4 sous-entrées :

  • Vue d’ensemble
  • Opérations (incluant l’onglet Opérations à venir)
  • Solde
  • Relevés de compte
ℹ️ Selon votre profil ou votre configuration, l’accès à certaines sous-entrées peut varier. La logique fonctionnelle reste identique.

2. Vue d’ensemble

La sous-entrée Vue d’ensemble permet d’identifier rapidement le compte sélectionné et d’obtenir une lecture immédiate de sa situation financière.

2.1. Informations de compte

Vous y retrouvez notamment les informations clés du compte :

  • Titulaire du compte
  • IBAN et BIC
  • Devise
  • Type de compte
  • Libellé du compte (sélecteur utile si plusieurs comptes sont rattachés à votre profil marchand)

2.2. Solde temps réel

Le bloc Solde temps réel donne une vision instantanée du solde, avec une distinction utile pour la gestion quotidienne :

  • Fonds disponibles (Valeur immédiatement accessible sur votre compte)
  • Débits programmés (Montants des reversements et R-transactions programmés à une date ultérieure)
ℹ️ Selon votre configuration, un « solde de compte de réserve » peut également être affiché.

2.3. Évolution sur période

Un graphique permet d’observer l’évolution sur une période en combinant :

  • le solde
  • les opérations à venir (vision prévisionnelle)

3. Opérations

La sous-entrée Opérations affiche la liste des mouvements affectant le compte, avec un onglet Opérations à venir pour les mouvements attendus mais non encore réalisés. C’est la vue principale pour le rapprochement comptable et la production d’exports.

3.1. Deux notions de date à connaître

Pour une lecture comptable fiable, la vue distingue généralement :

  • Date de valeur : date à laquelle l’opération est considérée comme effective sur le plan financier/comptable (très utilisée pour le rapprochement et les clôtures).
  • Date d’opération : date/heure de l’évènement (utile pour investiguer une chronologie ou recouper un historique).
ℹ️ Recommandation : pour une clôture ou un rapprochement, partez plutôt de la « date de valeur ». Pour une investigation, la « date d’opération » est souvent plus parlante.

3.2. Rechercher une opération

Le moteur de recherche permet de retrouver rapidement une opération à partir d’un critère comptable, d’une référence ou d’un identifiant.

Filtres essentiels

FiltreÀ quoi ça sertParticularités / Bonnes pratiques
CompteRestreindre l’affichage aux opérations d’un compte spécifique.Indispensable si plusieurs comptes sont rattachés à votre profil. Commencez par sélectionner le compte avant d’appliquer d’autres filtres.
Période (date de valeur)Filtrer les opérations sur une période comptable de référence.Base de travail pour les clôtures et le rapprochement. Recommandé : définissez toujours une période avant d’ajouter des critères plus fins (référence, montant, etc.).
MontantRechercher une ou plusieurs opérations correspondant à un montant précis.À combiner avec Compte et Période pour éviter trop de résultats, surtout si vous avez un volume d’opérations de même montant important.
RéférenceRetrouver une opération via votre référence métier personnalisée (commande, facture, identifiant interne, etc.).Très utile si vos équipes utilisent un identifiant commun entre votre système et CentralPay. Peut aussi servir à regrouper plusieurs lignes liées à un même évènement selon votre paramétrage.
Operation IDRechercher une opération via son identifiant CentralPay unique.Le filtre le plus précis : un Operation ID correspond à une ligne unique. À privilégier pour les investigations support/audit lorsque l’identifiant est connu.
LibelléRechercher une opération à partir de son intitulé descriptif (recherche par mots-clés).Utile lorsque vous ne disposez pas d’un identifiant (Operation ID, référence). Pratique pour retrouver une opération “à partir de ce qui est visible” dans la liste.
TypeIsoler une famille d’opérations (carte, virement, prélèvement, remboursement, contestations, etc.).Idéal pour analyser un périmètre (ex. uniquement les virements entrants) ou préparer un export ciblé avant rapprochement.

Filtres avancés

Les filtres avancés sont utiles pour les investigations (support/audit), l’analyse de reversements et les exports comptables. Le tableau ci-dessous résume leur objectif et leurs particularités.

FiltreÀ quoi ça sertParticularités / Bonnes pratiques
NatureQualifier l’origine comptable et fonctionnelle d’une opération afin de distinguer rapidement les écritures Frais, Fonds et Gestion. Frais : opérations liées aux coûts et commissions débités ou crédités sur le compte, associés à l’utilisation des services (ex. frais d’opérations, commissions, remboursements ou corrections de frais).
Fonds : opérations correspondant aux flux financiers qui entrent ou sortent du compte dans le cadre de son activité (ex. transactions clients, versements sortants, remboursements de transaction).
Gestion : opérations internes CentralPay réalisées pour ajuster ou sécuriser le solde du compte (ex. mouvements de réserve, gage espèces, ajustements techniques ou écritures de régularisation).
Source IDRegrouper des opérations liées entre elles (ex. une autorisation carte, la transaction associée, et son remboursement) afin d’analyser un parcours complet. Le Source ID est un identifiant permettant de regrouper différentes opérations liées.
Vous pouvez soit :
• cliquer sur « Filtrer par ce Source ID » depuis une opération de la liste des résultats ;
• ou renseigner le Source ID dans le moteur de recherche afin d’afficher toutes les opérations rattachées à ce même identifiant.
Numéro de payoutRetrouver toutes les opérations liées à un reversement (payout) et en analyser la composition (fonds, frais, ajustements…). Ce filtre regroupe toutes les opérations rattachées à un même reversement (payout), ce qui permet d’en comprendre le détail et la composition.

Comment obtenir le numéro de payout ?
• Recherchez l’opération de versement sortant (PAYOUT), ouvrez son détail (bouton d’action), puis cliquez sur « Voir les opérations du payout » : le portail applique automatiquement le filtre et affiche les opérations concernées.
• À défaut, vous pouvez le déduire depuis la référence du versement sortant : les derniers chiffres correspondent au numéro de payout (ex. PAYOUT-7usge67-153 → numéro de payout = 153).

À noter : le détail des opérations d’un versement sortant est disponible uniquement lorsque les payouts automatiques sont activés. Le premier payout automatique peut ne pas afficher le détail attendu (calibrage du mode de calcul).
Tiers
(Tiers / Type tiers / ID tiers / Pays tiers)
Filtrer les opérations selon la contrepartie impliquée (autre que vous), pour analyser des flux par acteur.Le tiers est la personne morale ou physique impliquée dans l’opération autre que vous (par exemple un client, CentralPay, un autre marchand, un compte externe…).
Vous pouvez filtrer soit :
• par Tiers : nom du tiers (champ libre) ;
• par ID tiers : identifiant CentralPay du tiers (par exemple CustomerID ou MerchantID), pour une recherche précise ;
• par Type tiers : un des quatre types suivants : Customer, Marchand, CentralPay, Compte externe ;
• par Pays tiers : pays dans lequel le tiers est déclaré (par exemple selon la région d’émission de sa carte si c’est un Customer), ce qui peut être utile notamment pour certains besoins de reporting (ex. déclarations de TVA).

3.3. Synthèse débits / crédits

La page présente une synthèse des débits et crédits sur la période filtrée (volume et montant), avec une ventilation possible par nature d’opération (frais, fonds, gestion). Cette lecture permet de vérifier rapidement la cohérence d’une période avant export.

3.4. Exports comptables personnalisés

Depuis la vue Opérations, vous pouvez générer des exports aux formats CSV, Excel ou JSON. Le principe est simple :

  • Paramétrez votre recherche (compte, période, filtres utiles).
  • Lancez la recherche, puis cliquez sur Exporter.
  • Vous recevez le fichier par email et pouvez le télécharger à tout moment depuis le Portail Marchand (rubrique Fichiers d’export).
Voir la documentation : Exports comptables et relevés de compte

4. Solde

La sous-entrée Solde fournit une vision historisée des soldes par compte, structurée par date de valeur (lecture « fin de journée »).

Vous y retrouvez généralement :

  • Solde de clôture (fin de journée)
  • Opérations à venir (agrégat des mouvements attendus)
  • Solde prévisionnel (solde tenant compte des opérations à venir)
ℹ️ Cas d’usage : justifier un solde « à date » (clôture, contrôle interne), ou comparer une situation constatée vs prévisionnelle.

5. Relevés de compte

La sous-entrée Relevés de compte donne accès aux relevés mensuels officiels de votre compte CentralPay. Ces documents sont les justificatifs de référence pour la comptabilité et les preuves administratives.

Chaque début de mois, en plus de la facture, un relevé de compte est généré et mis à disposition dans l’espace sécurisé : Mes comptes > Relevés de compte.

Deux types de relevés peuvent être proposés :

  • Relevé détaillé : fait apparaître l’ensemble des opérations de la période.
  • Relevé synthétique : regroupe les opérations par jour et par type d’opération.
⚠️ Si vous possédez un grand nombre d’opérations, il est possible que toutes n’apparaissent pas sur le relevé détaillé. Dans ce cas, nous vous conseillons de réaliser un export au format CSV, Excel ou JSON.
Voir la documentation : Exports comptables et relevés de compte

6. Actions fréquentes

6.1. Clôture mensuelle

  1. Allez dans Opérations, filtrez par Compte et Période (date de valeur).
  2. Vérifiez la synthèse débits / crédits et la ventilation par nature (frais / fonds / gestion).
  3. Générez un export comptable (colonnes adaptées à votre rapprochement).
  4. Ou téléchargez directement le relevé mensuel dans Relevés de compte pour archivage et justificatif officiel (1 relevé par compte).

6.2. Rapprochement des opérations liée à un versement sortant (payout)

  1. Allez dans Mes comptes > Opérations et, si besoin, sélectionnez d’abord le Compte concerné.
  2. Retrouvez l’opération de versement sortant (PAYOUT), ouvrez son détail (bouton d’action), puis cliquez sur « Voir les opérations du payout » : le Portail applique automatiquement le filtre Numéro de payout et affiche uniquement les opérations rattachées à ce versement.
  3. Analysez la composition du versement à l’aide du filtre Nature pour distinguer les lignes de Fonds, Frais et Gestion (ajustements), puis vérifiez la cohérence du montant global.
  4. Si nécessaire, générez un export (CSV / Excel / JSON) afin d’archiver le détail du payout ou de l’intégrer à votre rapprochement.
ℹ️ Alternative : le numéro de payout peut aussi être déduit de la référence du versement sortant (ex. PAYOUT-7usge67-153 → numéro de payout = 153).
⚠️ Le détail des opérations d’un versement sortant est disponible uniquement lorsque les payouts automatiques sont activés. Le premier payout automatique peut ne pas afficher le détail attendu (calibrage du mode de calcul).

6.3. Justifier un solde à date

  1. Allez dans Solde pour retrouver le solde de clôture à la date souhaitée.
  2. Complétez si nécessaire par le relevé mensuel dans Relevés de compte.

Portail Client

Le portail client CentralPay est l’interface des profils clients (Customer). Il permet à vos clients de :

  • Consulter leur historique de paiement
  • D’administrer leurs opérations en cours (mise à jour de leur moyen de paiement par défaut, résiliation d’abonnement…)
  • Mais aussi d’interagir avec vous en cas de question concernant une opération (formulaire de contact)

Ce portail est principalement utilisé pour l’administration des paiements récurrents par les clients. Les équipes conformité de CentralPay peuvent requérir que l’URL de ce portail soit intégrée dans le pied de page ou les conditions générales de votre site marchand.

Pour s’y connecter, vos clients ont deux options :

Soit via la page d’accueil du portail Client, en renseignant les informations d’un de leurs paiements opéré avec votre profil Marchand CentralPay :

Recette Portail Client
Production Portail Client

Ou en direct via le lien communiqué dans les emails automatique de création d’abonnement / de paiement fractionné, ou en intégrant le CustomerID visible dans votre Portail Marchand : Compte Customer Détail CustomerId

  • Portail Client de RCT : https://test-customer.centralpay.net/customer/?uuid=[CustomerId]
  • Portail Client de PROD : https://customer.centralpay.net/customer/?uuid=[CustomerId]

Portail d'inscription

Le portail d’inscription permet la création d’un profil Marchand CentralPay en assurant les étapes d’entrée en relation : de la création du profil utilisateur, jusqu’à la contractualisation, en passant par la collecte du KYC/KYB. Il interagit avec l’API Onboarding de CentralPay.

Pour les marchands Mandataires, il permet donc de créer facilement des Profils Marchands Participants depuis un portail hébergé par CentralPay, et d’ainsi éviter une intégration complète de l’API Onboarding.

Pour adresser un lien d’inscription à l’un de vos futurs participants, vous pouvez utiliser le service de demande d’enrôlement.

Accès :

Recette Portail d’Inscription
Production Portail d’Inscription

Tarifs

Offres commerciales

CentralPay propose une tarification juste et transparente, adaptée à votre volume d’encaissement et à votre activité. Les tarifs sont dégressifs : plus votre volume augmente, plus les frais unitaires diminuent.

Les frais sont calculés sur la base des volumes de transactions réalisées le mois précédent.

Deux solutions, selon votre besoin

Smart Collection

Accédez gratuitement à la solution d’encaissement : pas d’abonnement, vous payez uniquement des frais à l’utilisation.

Easy Wallet

Accédez à des services complémentaires (notamment la gestion de comptes / wallets) avec un forfait mensuel en plus des frais à l’utilisation.

Aucun surcoût lié aux réseaux cartes

Toutes les offres CentralPay intègrent les frais d’interchange et de réseaux cartes facturés par les banques : vous n’avez donc aucun surcoût à prévoir.

👉 Pour obtenir une estimation selon votre volume et contacter notre équipe commerciale :

Voir les tarifs publics CentralPay

Frais d'interchange et réseaux cartes

L’interchange correspond à la valeur chargée par l’établissement émetteur d’une carte de paiement (la banque de votre client) à l’établissement acquéreur (la banque du marchand).

Les frais de réseaux carte (ou « Card Scheme Fees ») correspondent aux frais pris par les réseaux carte (Visa, Mastercard, CB) pour faire fonctionner le service.

Des termes ont été définis pour désigner l’assemblage de ces frais :

  • Interchange+
    Les frais d’Interchange + les frais des réseaux cartes (card scheme fees)
  • Interchange++
    Les frais d’Interchange + les frais des réseaux cartes (card scheme fees) + les frais de service de l’établissement (CentralPay)

Toutes les offres commerciales de CentralPay intègrent les frais d’Interchange+ ainsi que nos propres frais de service, vous n’avez donc aucun frais bancaire supplémentaire à prévoir pour réaliser vos transactions. Sauf mention contraire, des frais minimum de perception de 0,15 € sont prélevés sur l’IC++.

1. Frais d’interchange et réseaux carte (Vente à distance, E-commerce)

Cartes émises dans l’Espace Economique Européen (EEE)

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitEEECB0,200%0,025%0,225%
Cartes personnellesDébitEEEVISA0,200%0,231%0,431%
Cartes personnellesDébitEEEMastercard0,200%0,219%0,419%
Cartes personnellesCréditEEECB0,300%0,025%0,325%
Cartes personnellesCréditEEEVISA0,300%0,231%0,531%
Cartes personnellesCréditEEEMastercard0,300%0,219%0,519%
Cartes professionnellesToutesEEECB0,900%0,025%0,925%
Cartes professionnellesToutesEEEVISA1,450%0,070%1,520%
Cartes professionnellesToutesEEEMastercard1,450%0,171%1,621%
Cartes personnellesToutesEEEAMEX0,000%1,600%1,600%
Cartes professionnellesToutesEEEAMEX0,000%1,600%1,600%

Cartes internationales, émises hors de l’Espace Economique Européen

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitInternationaleVISA1,150%1,343%2,493%
Cartes personnellesDébitInternationaleMastercard1,150%1,343%2,493%
Cartes personnellesCréditInternationaleVISA1,500%1,499%2,999%
Cartes personnellesCréditInternationaleMastercard1,500%0,951%2,451%
Cartes professionnellesToutesInternationaleVISA2,000%0,700%2,700%
Cartes professionnellesToutesInternationaleMastercard2,000%0,951%2,951%
Cartes personnellesToutesInternationaleAMEX0,000%2,400%2,400%
Cartes professionnellesToutesInternationaleAMEX0,000%2,400%2,400%

2. Frais d’interchange et réseaux carte (paiement de proximité)

Cartes émises dans l’Espace Economique Européen (EEE)

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitEEECB0,200%0,025%0,225%
Cartes personnellesDébitEEEVISA0,200%0,231%0,431%
Cartes personnellesDébitEEEMastercard0,200%0,219%0,419%
Cartes personnellesCréditEEECB0,300%0,025%0,325%
Cartes personnellesCréditEEEVISA0,300%0,231%0,531%
Cartes personnellesCréditEEEMastercard0,300%0,219%0,519%
Cartes professionnellesToutesEEECB0,900%0,025%0,925%
Cartes professionnellesToutesEEEVISA1,450%0,070%1,520%
Cartes professionnellesToutesEEEMastercard1,450%0,171%1,621%
Cartes personnellesToutesEEEAMEX0,000%1,600%1,600%
Cartes professionnellesToutesEEEAMEX0,000%1,600%1,600%

Cartes internationales, émises hors de l’Espace Economique Européen

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitInternationaleVISA1,150%1,343%2,493%
Cartes personnellesDébitInternationaleMastercard1,150%1,343%2,493%
Cartes personnellesCréditInternationaleVISA1,500%1,499%2,999%
Cartes personnellesCréditInternationaleMastercard1,500%0,951%2,451%
Cartes professionnellesToutesInternationaleVISA2,000%0,700%2,700%
Cartes professionnellesToutesInternationaleMastercard2,000%0,951%2,951%
Cartes personnellesToutesInternationaleAMEX0,000%2,400%2,400%
Cartes professionnellesToutesInternationaleAMEX0,000%2,400%2,400%

Forfaits d'accompagnement

Les forfaits d’accompagnement permettent une mise en service rapide, guidée par nos équipes support intégration (SI) et service client (SC). Les heures d’accompagnement vous permettent de déléguer certains paramétrages de votre compte et de solliciter des échanges visio : avec le SI pour les sujets techniques, avec le SC pour ceux d’ordre administratif / fonctionnels.

1. Accompagnement à l’intégration Smart Collection

Accompagnement à l’intégration, au choixFrais (HT)
En autonomie
2 heures d’accompagnement équipe Service Client
Inclus
(offres Starter, Medium et Major Company)
Accompagnement standard
Analyse technique du projet par équipe Service Intégration
2 heures d’accompagnement équipe Service Intégration
2 heures d’accompagnement équipe Service Client
490 €
Accompagnement avancé
Analyse technique et suivi par Responsable Service Intégration dédié
3 heures d’accompagnement par Responsable Service Intégration dédié
3 heures d’accompagnement par Responsable Service Client dédié
1 990 €

2. Accompagnement à l’intégration Smart Collection et Easy Wallet

Accompagnement à l’intégration, au choixFrais (HT)
En autonomie
3 heures d’accompagnement équipe Service Client
Inclus
(offres Medium et Major Partner)
Accompagnement standard
Analyse technique du projet par équipe Service Intégration
5 heures d’accompagnement équipe Service Intégration
5 heures d’accompagnement équipe Service Client
990 €
Accompagnement avancé
Analyse technique et suivi par Responsable Service Intégration dédié
10 heures d’accompagnement par Responsable Service Intégration dédié
10 heures d’accompagnement par Responsable Service Client dédié
2 990 €

3. Forfaits d’accompagnement horaire par le service client

Accompagnement horaire au choix, utilisable pour déléguer des paramétrages de comptes, des interventions avec tests, des analyses spécifiques…Frais (HT)
Forfait d’accompagnement 2 h
2 heures d’accompagnement équipe Service Client, consommables par périodes de 30 minutes.
250 €
Forfait d’accompagnement 5 h
5 heures d’accompagnement équipe Service Client, consommables par périodes de 30 minutes.
490 €
Forfait d’accompagnement 10 h
10 heures d’accompagnement équipe Service Client, consommables par périodes de 30 minutes.
890 €

Logos et visuels

Logos CentralPay

Logo CentralPay SVG
Logo CentralPay blanc SVG
Logo CentralPay PNG
Logo CentralPay blanc PNG

Logos PaySecure

1. Logos

Logo PaySecure classique PNG
Logo PaySecure blanc PNG
Logo PaySecure classique JPG

2. Visuels de réassurance (FR/EN)

Réassurance – fond blanc
Réassurance – fond transparent
Réassurance – blanc
Réassurance – fond blanc
Réassurance – fond transparent
Réassurance – blanc

Visuels de réassurance (FR/EN)

Intégrez un de ces visuels en dessous de votre formulaire de paiement CustomForm, ou simplement dans le footer de votre site afin de rassurer vos clients concernant la sécurité de leurs données de paiement.

1. Version française

Réassurance 1 – classique
Réassurance 1 – fond blanc
Réassurance 1 – blanc
Réassurance 2 – classique
Réassurance 2 – fond blanc
Réassurance 2 – blanc
Réassurance 3 – classique
Réassurance 3 – fond blanc
Réassurance 3 – blanc
Réassurance 4 – Avec Amex
Réassurance 4 – Amex fond blanc
Réassurance 4 – Amex blanc
Réassurance 5 – Avec Amex
Réassurance 5 – Amex fond blanc
Réassurance 5 – Amex blanc
Réassurance 6 – Avec Amex
Réassurance 6 – Amex fond blanc
Réassurance 6 – Amex blanc

2. Version anglaise

Réassurance 1 – classique
Réassurance 1 – fond blanc
Réassurance 1 – blanc
Réassurance 2 – classique
Réassurance 2 – fond blanc
Réassurance 2 – blanc
Réassurance 3 – classique
Réassurance 3 – fond blanc
Réassurance 3 – blanc
Réassurance 4 – Avec Amex
Réassurance 4 – Amex fond blanc
Réassurance 4 – Amex blanc
Réassurance 5 – Avec Amex
Réassurance 5 – Amex fond blanc
Réassurance 5 – Amex blanc
Réassurance 6 – Avec Amex
Réassurance 6 – Amex fond blanc
Réassurance 6 – Amex blanc

Trust Center

Conformité et résilience opérationnelle

Dernière mise à jour : 30 juin 2025

« Notre engagement pour protéger vos transactions et assurer un service sans interruption. Un dispositif aligné sur les exigences européennes en matière de sécurité et de continuité des services financiers »

1. Gouvernance et organisation de la sécurité

Chez CentralPay, la sécurité n’est pas seulement un ensemble de règles techniques, mais une démarche de gouvernance intégrée à tous les niveaux de l’entreprise. Notre dispositif repose sur une organisation claire, des responsabilités définies et une supervision régulière par la direction.

La politique de sécurité constitue le socle de ce dispositif. Elle fixe les principes directeurs en matière de protection des données et de continuité des services. Mise à jour chaque année, elle est validée en comité de direction et diffusée à l’ensemble des collaborateurs concernés. Chaque employé est ainsi sensibilisé aux bonnes pratiques et s’engage à respecter les règles établies.

La gouvernance TIC est structurée autour de plusieurs acteurs clés. Le Responsable de la Sécurité des Systèmes d’Information (RSSI) pilote la stratégie globale, supervise les contrôles de sécurité et veille à la conformité avec les standards internationaux (PCI DSS, DORA). La direction technique est en charge de l’exploitation quotidienne des infrastructures et garantit la disponibilité des systèmes critiques. Enfin, un Comité TIC se réunit régulièrement afin d’analyser les incidents, de valider les évolutions techniques et budgétaires, et d’assurer une amélioration continue de la sécurité.

Cette organisation permet de concilier réactivité opérationnelle et exigence réglementaire. Elle offre également à nos clients une visibilité claire : la sécurité est suivie, pilotée et contrôlée de manière documentée, avec un partage des responsabilités entre le management, les équipes techniques et la direction générale.

2. Gestion des accès et habilitations

La gestion des accès constitue l’un des piliers de la sécurité de CentralPay. Chaque droit d’accès est attribué selon une procédure formalisée et validée par le management, afin de s’assurer qu’il corresponde strictement aux besoins métier du collaborateur. À l’arrivée d’un nouvel employé, ses accès sont créés dans l’Active Directory et validés par son supérieur hiérarchique ; au départ, ils sont immédiatement révoqués par le service informatique.

La sécurité repose également sur le principe du moindre privilège : nul ne peut accéder à plus de ressources que ce qui est strictement nécessaire à sa mission. Les accès sensibles, comme ceux aux systèmes critiques ou aux bases de données, font systématiquement l’objet d’une authentification multi-facteurs (MFA). Pour renforcer ce dispositif, des revues périodiques des habilitations sont menées chaque trimestre, permettant d’identifier et de corriger toute anomalie.

Cette rigueur garantit une maîtrise complète des identités et des droits, et protège nos clients contre tout risque d’accès non autorisé à leurs données.

3. Sécurité technique

La sécurité technique de CentralPay repose sur une architecture conçue selon les principes de défense en profondeur. Chaque couche – du réseau jusqu’aux applications – bénéficie de mécanismes de protection redondants et régulièrement testés.

Cloisonnement des réseaux

L’infrastructure est segmentée en plusieurs zones :

  • DMZ publique pour les serveurs exposés à Internet (reverse proxy, WAF, relais SMTP) ;
  • zone interne pour les bases de données et services sensibles ;
  • réseau administratif réservé aux opérations d’administration ;
  • zone de logs isolée pour la collecte et l’analyse des journaux.

Les flux entre ces zones sont strictement contrôlés par des firewalls en redondance, configurés en stateful inspection et avec des règles de NAT. Ces firewalls intègrent des mécanismes d’anti-spoofing et de détection d’anomalies de trafic. Les configurations sont maintenues par le groupe « administrateurs systèmes et réseau » et font l’objet d’une revue périodique.

Protection physique et logique

L’accès aux locaux de production est contrôlé par badge nominatif, surveillance vidéo et télésurveillance (SECURITAS). L’accès aux salles serveurs et à la zone PCI est limité aux personnes habilitées.
Sur le plan logique, chaque accès aux systèmes se fait par identifiant unique, renforcé par MFA. Les droits sont attribués en fonction des rôles définis et selon le principe du moindre privilège.

Surveillance et détection d’intrusion

La surveillance est assurée en continu grâce à une combinaison d’outils :

  • Zabbix, pour le monitoring temps réel des serveurs, applications et flux critiques ;
  • Wazuh, intégré avec Snort, pour la détection d’intrusions et la corrélation des événements ;
  • ElasticSearch/Kibana, pour l’agrégation et la visualisation des logs.

Les alertes critiques sont transmises en temps réel aux équipes techniques par mail et SMS, et leur traitement est tracé dans un registre d’incidents.

Chiffrement et gestion des clés

Les données de paiement sensibles (PAN, dates d’expiration) sont chiffrées en AES-256 et rendues illisibles via un hash SHA-512 avec salt pour les comparaisons.
La gestion des clés est réalisée exclusivement au sein de modules matériels de sécurité (HSM) certifiés. La clé maîtresse est fragmentée en plusieurs composantes, détenues par des personnes distinctes, afin d’éviter tout risque de compromission. Les clés applicatives ne peuvent pas être exportées en clair et leur usage est strictement tracé.

En combinant ces mesures, CentralPay garantit un environnement technique robuste, conforme aux exigences PCI DSS 4.0.1 et aux standards de résilience DORA.

4. Gestion des risques et des incidents

La maîtrise des risques constitue un axe stratégique de la gouvernance CentralPay. L’approche adoptée vise à anticiper les menaces, limiter leur probabilité de survenance et garantir une réponse rapide et efficace en cas d’incident.

Gestion des risques

Chaque année, une étude de risques est menée sur la base de la méthodologie Ebios, intégrant :

  • l’identification des risques liés à la sécurité (intrusions, attaques malveillantes, fuites de données) et au fonctionnement (pannes techniques, défaillances logicielles) ;
  • leur analyse en termes de probabilité et d’impact métier ;
  • leur classification en Low, Medium ou High ;
  • leur traitement via des mesures de prévention (patching, segmentation réseau, chiffrement, supervision) ou de mitigation (plans de contournement, redondances).

Le registre des risques est mis à jour en continu et présenté lors des revues annuelles de direction.

Gestion des incidents

CentralPay a mis en place une procédure complète de gestion des incidents, alignée sur les obligations DORA et les orientations de l’EBA :

  • Détection : par monitoring automatisé (Zabbix, Wazuh) ou par signalement interne/externe (clients, partenaires).
  • Qualification : chaque incident est analysé et classé selon son impact, sa durée, sa portée géographique et sa criticité.
  • Priorisation : une matrice d’évaluation (urgence de résolution et impact financier) permet de définir des niveaux de priorité allant de 1 à 4.
  • Notification réglementaire : les incidents qualifiés comme « majeurs » font l’objet d’un reporting à l’ACPR :
    • rapport initial transmis dans les 4 heures,
    • rapport intermédiaire sous 3 jours ouvrés,
    • rapport final sous 20 jours.

Transparence et retour d’expérience

En parallèle du reporting réglementaire, les incidents majeurs font l’objet d’une communication transparente envers les clients impactés. Une analyse post-mortem est systématiquement menée afin de tirer les enseignements, renforcer les procédures existantes et mettre en place des actions correctives.

Ce dispositif permet à CentralPay non seulement de répondre efficacement aux incidents, mais surtout de renforcer continuellement sa résilience et la confiance de ses clients.

5. Tests de résilience

CentralPay considère que la résilience d’une infrastructure ne se prouve pas uniquement sur le papier mais par des tests réguliers et documentés. C’est pourquoi la plateforme organise différents scénarios de test visant à mesurer son niveau de sécurité, sa capacité de reprise et la réactivité de ses équipes.

Tests d’intrusion

Les tests d’intrusion sont réalisés de manière récurrente par des équipes internes et par des prestataires spécialisés, afin de bénéficier d’un regard externe indépendant. Trois méthodologies sont appliquées :

  • Black-box : l’auditeur ne dispose d’aucune information préalable, ce qui simule le comportement d’un attaquant externe ;
  • Grey-box : l’auditeur dispose d’informations partielles (comptes utilisateurs limités, schémas d’architecture simplifiés) afin de reproduire un scénario réaliste d’utilisateur malveillant ;
  • White-box : l’auditeur dispose d’une connaissance complète de l’architecture, permettant une analyse approfondie et la détection de vulnérabilités complexes.

Ces tests couvrent à la fois les couches réseau et applicatives, avec un focus particulier sur les vulnérabilités répertoriées par le Top Ten OWASP. Les résultats font l’objet de rapports détaillés, comprenant une classification des failles selon leur criticité (Critical, High, Medium, Low) et des recommandations de remédiation.

Tests de segmentation réseau

CentralPay réalise aussi des tests de segmentation afin de vérifier que les cloisonnements logiques entre les zones (DMZ, interne, administration, logs) sont efficaces et qu’aucun flux non autorisé n’est possible. Ces tests garantissent que, même en cas de compromission d’une zone exposée, l’attaquant ne puisse pas atteindre les systèmes critiques.

Exercices de simulation et bascules PCA

En parallèle des tests techniques, des exercices de simulation de crise sont menés. Ces exercices impliquent plusieurs équipes (techniques, conformité, direction) et simulent des scénarios d’attaque ou de panne majeure. L’objectif est de tester non seulement la robustesse de l’infrastructure, mais aussi la qualité de la coordination et de la communication en situation de crise.

Enfin, des tests de bascule PCA sont organisés au minimum une fois par an. Ils permettent de vérifier que les services critiques peuvent être transférés vers le site secondaire dans les délais prévus et que les équipes maîtrisent parfaitement les procédures de reprise.

Ces différents tests, documentés et suivis, démontrent la volonté de CentralPay de s’inscrire dans une démarche d’amélioration continue de sa résilience.

6. Haute disponibilité et PCA

La disponibilité des services de paiement est une exigence absolue pour CentralPay. Afin de garantir une continuité sans faille, l’entreprise a conçu son architecture autour du principe de haute disponibilité (HA) et d’un Plan de Continuité d’Activité (PCA) multi-sites.

Architecture multi-sites

CentralPay dispose de deux sites distincts : un site de production principal et un site secondaire dédié au PCA. Ces sites sont opérés par des fournisseurs différents, intègrent un routage BGP et utilisent des accès Internet fournis par plusieurs opérateurs, ce qui réduit le risque de dépendance vis-à-vis d’un seul acteur.

Redondance des composants

Chaque composant critique est déployé en redondance :

  • Firewalls et load balancers : configurés en actif/actif ou actif/passif, permettant une bascule automatique en cas de défaillance ;
  • Serveurs applicatifs : répartis sur plusieurs nœuds afin de garantir la tolérance aux pannes ;
  • Bases de données : répliquées en temps réel entre les sites de production et de PCA, assurant un RPO quasi nul ;
  • Proxys applicatifs et WAF : disposés en frontal pour absorber les charges et filtrer les menaces, avec bascule automatique.

Objectifs de reprise (RTO et RPO)

  • RPO (Recovery Point Objective) : grâce à la réplication continue, les données critiques peuvent être restaurées à l’état quasi instantané précédant l’incident ;
  • RTO (Recovery Time Objective) : les mécanismes de bascule automatique permettent un retour en service des applications critiques en quelques minutes à une heure maximum selon le type de composant.

Scénarios de bascule et tests

Le PCA est conçu pour répondre à divers scénarios : panne matérielle, défaillance réseau, indisponibilité d’un datacenter, attaque cyber majeure. Chaque scénario dispose d’un plan d’action documenté. Des tests réguliers de bascule confirment que les engagements RTO/RPO sont tenus dans la pratique.

Grâce à ce dispositif, CentralPay assure à ses clients que, même en cas d’incident majeur, leurs transactions de paiement resteront disponibles et sécurisées.

7. Continuité et sauvegardes

La continuité des services de CentralPay ne repose pas uniquement sur la redondance de son infrastructure et le PCA. Elle est également assurée par une politique stricte de sauvegarde et de restauration des données.

Sauvegardes quotidiennes et chiffrées

Les données critiques – qu’il s’agisse des données de paiement ou des données opérationnelles de la plateforme – font l’objet de sauvegardes quotidiennes. Celles-ci sont chiffrées en AES-256, conformément aux standards internationaux, afin de garantir leur confidentialité en cas d’accès non autorisé.

Stockage sécurisé et rotation

Les sauvegardes sont stockées selon une logique de redondance et de rotation :

  • Une copie est conservée sur les serveurs de sauvegarde internes, protégés par des accès restreints ;
  • Une copie est déplacée et conservée dans un coffre-fort sécurisé ;
  • D’autres copies sont externalisées hors site, afin de garantir la disponibilité même en cas de sinistre physique affectant un site.

La rotation régulière des supports assure que les sauvegardes restent fiables et exploitables.

Tests de restauration

La valeur d’une sauvegarde ne se mesure pas uniquement à sa conservation mais aussi à sa capacité à être restaurée. CentralPay procède donc à des tests de restauration réguliers, qui permettent de vérifier non seulement l’intégrité des données sauvegardées mais aussi la rapidité avec laquelle elles peuvent être réinjectées dans le système de production.

Grâce à cette approche, CentralPay garantit que, même en cas d’incident majeur, ses clients ne subiront pas de perte significative de données et pourront reprendre leurs activités sans interruption prolongée.

8. Gestion des prestataires critiques

CentralPay est conscient que la sécurité et la continuité de ses services dépendent également de la solidité de ses partenaires. C’est pourquoi l’entreprise a mis en place une gouvernance stricte autour de la gestion des prestataires critiques, en particulier ceux qui participent directement à l’hébergement, au traitement des données ou aux services de paiement.

Audits et certifications

Chaque année, un audit est conduit auprès de l’hébergeur principal et des prestataires considérés comme critiques. L’objectif est de vérifier la solidité de leurs dispositifs de sécurité, leurs capacités de continuité et leur conformité réglementaire.
Pour les prestataires qui traitent, stockent ou transmettent des données de cartes, CentralPay exige la certification PCI DSS et obtient une attestation de conformité (AOC) actualisée chaque année.

Clauses contractuelles et supervision

Les contrats avec les prestataires critiques incluent des clauses spécifiques DORA, portant notamment sur :

  • les engagements de service (SLA en matière de disponibilité et de performance),
  • les obligations de sécurité,
  • la mise en place d’un PCA/PRA compatible avec celui de CentralPay,
  • la notification immédiate en cas d’incident de sécurité.

CentralPay conserve une cartographie actualisée de l’ensemble de ses prestataires critiques et de leurs services associés. Ce registre est régulièrement mis à jour et constitue une base de reporting vers l’ACPR et les autorités de supervision.

Pérennité et amélioration continue

Enfin, la relation avec les prestataires ne se limite pas à un contrôle ponctuel. Les résultats des audits, les tests de continuité et les incidents éventuels sont présentés en comité de gouvernance. Des plans d’action sont ensuite décidés pour renforcer la sécurité ou la disponibilité des services externalisés.

Ainsi, CentralPay garantit à ses clients que les tiers qui contribuent à ses services critiques sont soumis au même niveau d’exigence que ses propres équipes.

FAQ - Conformité et résilience

Gouvernance et responsabilités

Qui est responsable de la sécurité chez CentralPay ?
La sécurité est pilotée par notre RSSI (Responsable de la Sécurité des Systèmes d’Information), rattaché directement à la Présidence. Le RSSI s’appuie sur un comité TIC et sur un cadre de gestion des risques aligné sur ISO 27005 et sur le règlement DORA. Le RSSI est joignable à l’adresse suivante : rssi@centralpay.com

Avez-vous une politique de sécurité documentée ?
Oui. Notre Politique de Sécurité du Système d’Information (PSSI) définit les règles applicables à l’ensemble de nos équipes et de nos prestataires. Elle couvre la classification des données, la gestion des accès, la protection des systèmes, la gestion des incidents, la continuité d’activité et l’encadrement des prestataires TIC.

Comment intégrez-vous la sécurité dans vos décisions stratégiques ?
La sécurité et la résilience sont intégrées à notre cadre global de gestion des risques. Celui-ci inclut une cartographie alignée ISO/DORA, une politique d’appétence aux risques, et un suivi par indicateurs (KRI). Les décisions de sécurité sont arbitrées au sein du comité Sécurité & Conformité et validées par la Direction Générale.

Comment contrôlez-vous vos dispositifs de sécurité ?
Nous appliquons le modèle des trois lignes de défense : les équipes métiers réalisent les contrôles opérationnels, la conformité et le contrôle permanent assurent la supervision, et le contrôle périodique réalise une évaluation indépendante.

Protection des données et des systèmes

Comment protégez-vous les données et systèmes de CentralPay ?
Toutes les données sont chiffrées : TLS 1.2/1.3 pour les échanges en transit et AES-256 pour le stockage. Les données de carte sont traitées uniquement dans un environnement certifié PCI DSS niveau 1 et immédiatement tokenisées, afin qu’aucun numéro complet ne soit conservé en clair.

Nos infrastructures sont segmentées et protégées par des firewalls, IDS/IPS et une supervision SOC. Les accès aux environnements sensibles sont limités, appliquent le principe du moindre privilège et sont protégés par MFA. Tous les postes de travail sont chiffrés, sécurisés par antivirus/EDR et mis à jour automatiquement.

Tests et contrôles de sécurité

Réalisez-vous des tests de sécurité ?
Oui. Nous effectuons régulièrement des tests de pénétration indépendants, des scans automatisés de vulnérabilités et des audits externes (dont PCI DSS). Ces contrôles permettent d’identifier les failles et de renforcer en permanence notre dispositif.

Comment gérez-vous la journalisation et les logs ?
Les journaux sont conservés 24 mois, horodatés, protégés par chiffrement et intégrés dans notre système de supervision (SIEM). Leur accès est strictement restreint aux équipes habilitées.

Comment gérez-vous les vulnérabilités et mises à jour ?
Nous appliquons une politique stricte de patch management : correction des vulnérabilités critiques sous 24h, vulnérabilités hautes sous 7 jours, et autres correctifs selon une fréquence planifiée. Le suivi est assuré par des scans et des rapports de conformité.

Organisation et culture sécurité

Comment sensibilisez-vous vos collaborateurs à la sécurité ?
Tous les collaborateurs suivent une formation annuelle obligatoire sur la cybersécurité, le RGPD et la LCB-FT. Des campagnes de sensibilisation régulières (exercices phishing, e-learning) complètent ce dispositif. Les équipes techniques bénéficient de formations renforcées.

Comment garantissez-vous que les accès restent limités ?
Nous appliquons le principe du moindre privilège : chaque utilisateur n’accède qu’aux ressources nécessaires à sa mission. Les droits sont justifiés, temporaires et systématiquement tracés.

Comment encadrez-vous les accès administrateurs ?
Les accès à privilèges élevés sont limités à un nombre restreint de personnes, soumis à MFA, tracés et revus régulièrement. Ils ne sont accordés que pour des besoins précis et pour une durée limitée.

Anticipation et amélioration continue

Comment anticipez-vous les menaces émergentes ?
Nous assurons une veille cybersécurité active via les bulletins CERT-FR, ANSSI, éditeurs logiciels et fournisseurs cloud. Cette activité de threat intelligence permet d’adapter nos défenses en temps réel.

Comment améliorez-vous en permanence votre sécurité ?
Chaque incident, audit ou test fait l’objet d’un retour d’expérience documenté et d’un plan d’actions correctives. Nos politiques et procédures sont revues annuellement pour intégrer ces enseignements et les évolutions réglementaires.

Résilience et continuité

Comment assurez-vous la continuité de vos services ?
Nous disposons d’un Plan d’Urgence et de Poursuite d’Activité (PUPA) intégrant un PCA (continuité) et un PRI (reprise). Ces plans sont régulièrement testés à travers des exercices de crise et des scénarios de bascule.

Comment garantissez-vous la disponibilité et la redondance ?
Nos services reposent sur une architecture redondée au sein de plusieurs zones européennes, permettant d’assurer une disponibilité de plus de 99,95 %.

Quels sont vos objectifs de RPO et RTO ?
CentralPay définit et teste régulièrement ses objectifs de continuité :

  • RPO (Recovery Point Objective) : inférieur à 1 minute pour les systèmes critiques, grâce à la réplication temps réel des données.
  • RTO (Recovery Time Objective) : inférieur à 15 mn pour la reprise des services essentiels, grâce à l’architecture redondée et aux procédures de bascule.
    Ces objectifs sont validés lors de nos exercices PCA/PRI et intégrés dans notre dispositif DORA.

Comment gérez-vous vos sauvegardes ?
Les sauvegardes sont chiffrées, isolées, redondées et régulièrement testées pour garantir leur restauration. Elles suivent les mêmes politiques de sécurité que les environnements de production.

Réalisez-vous des tests de résilience conformément à DORA ?
Oui. Nous réalisons des exercices de crise (cyberattaques simulées, pannes critiques), des tests de charge et de performance, des scénarios de bascule et, pour les fonctions critiques, des tests avancés de type TLPT (Threat-Led Penetration Testing).

Relations avec les prestataires

Comment sélectionnez-vous vos prestataires critiques ?
Chaque prestataire fait l’objet d’une due diligence (sécurité, conformité, localisation des données, SLA). Les contrats incluent des clauses RGPD et DORA (sécurité, notification d’incident, droit d’audit).

Comment contrôlez-vous vos prestataires dans la durée ?
Nous tenons un registre DORA recensant tous nos prestataires TIC et identifiant les prestataires critiques. Ces derniers font l’objet d’un suivi renforcé : revues régulières, audits, attestations ISO/PCI et évaluations de résilience.

Gestion des incidents

Que se passe-t-il en cas d’incident de sécurité ?
Nous appliquons une procédure de gestion des incidents incluant : détection, qualification, confinement, remédiation et forensic. Si nécessaire, nous notifions la CNIL sous 72h et informons les clients concernés. Chaque incident majeur donne lieu à un retour d’expérience et à un plan d’actions correctives suivi jusqu’à sa clôture.

Protection des données personnelles

Dernière mise à jour : 15/09/2025

Chez CentralPay, la protection des données personnelles est au cœur de nos engagements. En tant qu’Établissement de Monnaie Électronique agréé par l’ACPR (n° d’agrément 17138 nous traitons des données personnelles conformément au Règlement Général sur la Protection des Données (RGPD – UE 2016/679) et à la législation française applicable.

Cette politique présente, de manière claire et transparente, les traitements de données personnelles que nous réalisons dans le cadre de l’exécution de nos services de paiement.

1. Qui est responsable du traitement ?

Le responsable de traitement est :
CentralPay – 19 rue Edouard VAILLANT – 37000 TOURS
Contact DPO : dpo@centralpay.com

2. Quelles données collectons-nous ?

CentralPay collecte uniquement les données strictement nécessaires à la fourniture de ses services de paiement et au respect de ses obligations légales et réglementaires.

Données d’identification

  • Nom, prénom, civilité.
  • Date et lieu de naissance.
  • Nationalité.
  • Qualité (dirigeant, représentant légal, UBO).

Données de contact

  • Adresse email.
  • Numéro de téléphone (mobile ou fixe).
  • Adresse postale professionnelle ou personnelle (selon le cas).

Données de paiement

  • Coordonnées bancaires : IBAN et BIC.
  • Données de carte : numéro de carte (collecté uniquement dans un environnement sécurisé PCI DSS et immédiatement tokenisé), date d’expiration, schéma (Visa, Mastercard, etc.), pays émetteur, 4 derniers chiffres.
  • Important : CentralPay n’expose jamais le numéro complet ni le cryptogramme au marchand.

Données transactionnelles

  • Identifiant de transaction, date et heure.
  • Montant, devise, statut de paiement.
  • Référence commande (orderId).
  • Historique des opérations (paiements uniques, récurrents, fractionnés, remboursements).

Données de sécurité et de lutte contre la fraude

  • Adresse IP de connexion.
  • Empreinte technique du terminal (navigateur, langue, résolution écran) lors de l’authentification 3DS.
  • Résultats et scores antifraude internes.
  • Statut éventuel de mise en surveillance (liste noire technique).

Données de conformité KYC/LCB-FT

  • Pièces d’identité (CNI, passeport, titre de séjour).
  • Justificatifs de domicile (facture d’énergie, quittance).
  • Documents légaux de l’entreprise (Kbis, statuts, registre des bénéficiaires effectifs).
  • Informations sur les UBO (noms, pourcentages de détention).

Données techniques (liées aux services)

  • Journaux applicatifs et techniques (logs API).
  • Événements de traitement (webhooks envoyés aux marchands).
  • Identifiants techniques de suivi (transactionId, customerId, etc.).

3. Pour quelles finalités utilisons-nous vos données ?

CentralPay traite vos données personnelles uniquement pour des finalités déterminées, explicites et légitimes. Chaque traitement repose sur une base légale conforme au RGPD.

Exécution des paiements et gestion des services

  • Finalité : exécuter vos opérations de paiement (SEPA, carte, prélèvement, virement, récurrents ou fractionnés), assurer la facturation et gérer les flux financiers.
  • Données concernées : coordonnées bancaires (IBAN, BIC), données de carte (token, schéma, pays, PAN masqué), identifiants de transaction, montants, devises, références commandes.
  • Base légale : exécution du contrat (art. 6.1.b RGPD).

Vérification d’identité et obligations réglementaires (KYC/LCB-FT)

  • Finalité : satisfaire aux obligations légales de lutte contre le blanchiment des capitaux et le financement du terrorisme (LCB-FT), et aux exigences de supervision de l’ACPR.
  • Données concernées : données d’identification (nom, prénom, date de naissance, nationalité), pièces d’identité, justificatifs de domicile, documents légaux de l’entreprise, informations sur les UBO.
  • Base légale : obligation légale (art. 6.1.c RGPD, Code monétaire et financier art. L561-1 et suivants).

Prévention et détection de la fraude

  • Finalité : sécuriser les transactions, prévenir les paiements non autorisés ou frauduleux, appliquer les règles d’authentification renforcée (DSP2/3DS).
  • Données concernées : adresse IP, empreinte technique du navigateur/appareil, schéma et pays émetteur de la carte, résultats des contrôles antifraude, statut éventuel de mise en surveillance.
  • Base légale : obligation légale (DSP2) et intérêt légitime (sécurité des paiements – art. 6.1.f RGPD).

Gestion de la relation client et du support

  • Finalité : communiquer avec les clients et utilisateurs (confirmation d’opérations, envoi de liens de paiement, notifications), répondre aux demandes de support, assurer le suivi des réclamations et litiges.
  • Données concernées : email, téléphone, identifiants client, données transactionnelles associées.
  • Base légale : exécution du contrat (art. 6.1.b RGPD) et intérêt légitime (gestion de la relation client).

Respect d’obligations comptables, fiscales et probatoires

  • Finalité : conserver certaines données pour répondre aux obligations légales de conservation (Code de commerce, Code général des impôts), produire des justificatifs comptables et probatoires.
  • Données concernées : données transactionnelles (montants, devises, dates, statuts, références), coordonnées bancaires liées aux opérations.
  • Base légale : obligation légale (art. 6.1.c RGPD).

Amélioration de nos services et sécurité technique

  • Finalité : analyser l’usage de nos services, optimiser la performance, assurer la résilience et la cybersécurité, conformément au règlement DORA.
  • Données concernées : journaux techniques (logs), événements (webhooks), identifiants techniques, statistiques d’usage anonymisées.
  • Base légale : intérêt légitime (art. 6.1.f RGPD).

4. Quelle est la base légale de ces traitements ?

Chaque traitement repose sur une base légale clairement définie :

  • Exécution du contrat (art. 6.1.b RGPD) : exécution des paiements, gestion de compte, relation client, support.
  • Obligation légale (art. 6.1.c RGPD) : conformité LCB-FT (art. L561 CMF), obligations comptables et fiscales (Code de commerce, CGI), obligations réglementaires (DSP2, ACPR).
  • Intérêt légitime (art. 6.1.f RGPD) : prévention de la fraude, sécurité des systèmes, gestion des litiges, amélioration des services.
  • Consentement (art. 6.1.a RGPD) : uniquement pour certaines communications marketing optionnelles ou si requis par la loi.

5. Combien de temps conservons-nous vos données ?

CentralPay applique un calendrier de conservation strict, conforme aux exigences du RGPD, du Code monétaire et financier et du Code de commerce.

Nous distinguons :

a) Transactions financières (écritures comptables et probatoires)

  • Conservées 10 ans conformément aux obligations comptables et probatoires (art. L123-22 Code de commerce).
  • Données concernées : identifiants de transaction (transactionId), date, montant, devise, statut, référence commande (orderId).
  • Ces informations sont nécessaires à la preuve contractuelle et à la comptabilité et ne sont pas anonymisées.

b) Données personnelles associées aux transactions

  • Conservées 24 mois maximum puis anonymisées de manière irréversible.
  • Données concernées :
    • Coordonnées du payeur (email, téléphone),
    • Adresse IP, empreinte navigateur/appareil (3DS),
    • Données carte (token, PAN masqué, date d’expiration, schéma, pays émetteur),
    • Résultats antifraude (score, statut blacklist).
  • Ces informations ne sont plus conservées au-delà de 24 mois car elles ne sont plus nécessaires ni légalement ni contractuellement.

c) Données relatives aux cartes de paiement

  • Conservées jusqu’à 24 mois après la date d’expiration de la carte, puis supprimées/anonymisées.
  • CentralPay n’expose jamais le PAN complet ni le CVC hors de sa zone PCI DSS.

d) Données relatives aux comptes bancaires (IBAN/BIC) et mandats SEPA

  • Conservées pendant la durée du mandat + 10 ans (preuve contractuelle), puis supprimées/anonymisées.

e) Données KYC / LCB-FT

  • Conservées 5 ans après la fin de la relation d’affaires (art. L561-12 CMF), puis supprimées/anonymisées.
  • Données concernées : pièces d’identité, justificatifs de domicile, documents légaux de l’entreprise, informations sur les UBO.

f) Abonnements et paiements fractionnés

  • Conservés pendant la durée de l’abonnement + 5 ans (exigences probatoires), puis anonymisés.
  • Données concernées : identifiant d’abonnement, échéancier, lien vers moyen de paiement.

g) Journaux techniques et webhooks

  • Conservés 24 mois maximum, puis anonymisés.
  • Données concernées : logs API, événements de traitement, identifiants techniques (customerId, eventId), statuts, horodatages.

6. Qui sont les destinataires de vos données ?

Vos données peuvent être transmises uniquement à :

  • Services internes CentralPay (opérations, conformité, support, sécurité).
  • Partenaires de paiement et établissements bancaires (acquéreurs, systèmes de règlement SEPA, schémas carte).
  • Prestataires techniques (hébergement cloud, prestataire KYC, envoi SMS/email), soumis à des clauses contractuelles conformes RGPD.
  • Autorités compétentes (ACPR, TRACFIN, Banque de France, autorités judiciaires).

Nous ne revendons jamais vos données à des tiers.

7. Où sont traitées vos données ?

  • Les données sont hébergées dans l’Union européenne et majoritairement en Frane
  • En cas de transfert hors UE (ex. prestataire SMS, email), des clauses contractuelles types (SCC) et mesures supplémentaires sont mises en place pour garantir un niveau de protection équivalent.

8. Quels sont vos droits ?

Conformément aux articles 15 à 22 du RGPD, vous disposez de :

  • Droit d’accès, rectification, effacement.
  • Droit à la limitation, opposition, portabilité.
  • Droit de retrait du consentement (le cas échéant).
  • Droit d’introduire une réclamation auprès de la CNIL.

Vous pouvez exercer vos droits en écrivant à : dpo@centralpay.com (réponse sous 30 jours).

9. Sécurité

CentralPay met en œuvre une politique de sécurité alignée sur les standards PCI DSS, ISO 27001/27005 et sur le règlement européen DORA (Digital Operational Resilience Act). Nos dispositifs couvrent l’ensemble du cycle de vie des données et des services de paiement afin de garantir leur confidentialité, leur intégrité et leur disponibilité.

La sécurité est d’abord assurée par une gouvernance claire et une gestion proactive des risques. Nous disposons d’un cadre de gestion des risques validé par la direction, qui comprend une politique d’appétence au risque, une cartographie alignée sur les normes ISO et DORA, ainsi que des indicateurs de risque suivis régulièrement. Ce cadre est mis en œuvre à travers une organisation en trois lignes de défense et piloté par un comité de sécurité et de conformité.

La protection des données repose sur un chiffrement systématique, tant en transit (TLS 1.2/1.3) qu’au repos (AES-256), avec une gestion centralisée des clés. Les données de paiement sont traitées exclusivement dans un environnement certifié PCI DSS niveau 1 et font l’objet d’une tokenisation irréversible qui évite toute exposition des numéros complets de carte ou des cryptogrammes. De plus, nous appliquons des politiques strictes de purge et d’anonymisation automatique des données personnelles à l’issue des durées de conservation prévues par le RGPD.

Les accès aux systèmes sont strictement contrôlés grâce à une gestion des identités centralisée et basée sur le principe du moindre privilège. Chaque collaborateur est soumis à une authentification forte à deux facteurs (MFA), et les habilitations font l’objet de revues régulières afin de garantir leur pertinence.

Nos infrastructures font l’objet d’une surveillance permanente. Les opérations sensibles sont journalisées de manière exhaustive et horodatée, et un système de supervision en temps réel, couplé à un SIEM, permet de détecter rapidement les incidents de sécurité.

La résilience opérationnelle est assurée par un dispositif de continuité aligné sur DORA. CentralPay a mis en place un Plan d’Urgence et de Poursuite d’Activité (PUPA) incluant des volets PCA et PRI, régulièrement testés. Des tests de pénétration et des exercices de gestion de crise sont organisés chaque année, tandis qu’une politique stricte d’externalisation TIC garantit l’évaluation continue des prestataires critiques et la tenue d’un registre d’information réglementaire.

La gestion des incidents suit une procédure formalisée de détection, classification et traitement. En cas d’incident majeur, nous respectons les délais de notification réglementaire auprès de l’ACPR et de la CNIL, et un retour d’expérience systématique est organisé afin d’améliorer en permanence le dispositif de sécurité.

Enfin, CentralPay s’inscrit dans une logique d’amélioration continue. Des audits internes et externes, y compris des audits indépendants PCI DSS et de cybersécurité, sont réalisés régulièrement. Nos dispositifs de contrôle permanent et d’audit périodique sont revus chaque année afin de garantir leur efficacité et leur conformité aux normes internationales et aux exigences réglementaires.

10. Mise à jour de la politique

Cette politique peut être modifiée pour refléter l’évolution des traitements et obligations légales. Toute mise à jour sera publiée sur notre site et, si nécessaire, communiquée aux clients concernés.

Sous-traitants

Dans le cadre de la fourniture de ses services de paiement, Centralpay s’appuie sur un ensemble de sous-traitants au sens de l’article 4 du Règlement Général sur la Protection des Données (RGPD). Ces sous-traitants peuvent être amenés à traiter des données à caractère personnel pour le compte de Centralpay, exclusivement sur instructions documentées et dans la limite des finalités du service auquel ils contribuent.

La présente page recense les sous-traitants susceptibles d’intervenir dans le traitement des données à caractère personnel des Titulaires, Marchands et Payeurs utilisateurs des services Centralpay. Elle est mise à jour à mesure de l’évolution de notre dispositif.

Sous-traitantFinalitéPays de traitement des donnéesCatégories de données
Amazon Web Services (AWS)Hébergement cloud de certains services et données applicativesIrlandeEnsemble des données traitées par les services
Comply Advantage (IVXS)Screening LCB-FT et vérification des listes de sanctions internationalesRoumanieDonnées d’identification
DotfileGestion des processus d’onboarding, collecte et mise à jour des dossiers KYC/KYBFranceDonnées d’identification, justificatifs
GpaymentsAuthentification 3D-Secure des transactions par carte (second prestataire)IrlandeDonnées carte, authentification
InnovestSociété mère du groupe, destinataire interne pour les finalités de gouvernance, audit, conformité et reporting consolidéFranceDonnées de gouvernance et de reporting
MicrosoftGestion et contrôle des flux financiersFranceDonnées transactionnelles et comptables
NetceteraAuthentification 3D-Secure des transactions par carte (Access Control Server)SuisseDonnées carte, authentification
OnfidoVérification automatisée des documents d’identité et des éléments biométriques (reconnaissance faciale, détection de vie)EuropeDonnées d’identité, données biométriques
QomboVerification of Payee (vérification du bénéficiaire d’un virement SEPA)FranceDonnées d’identification, IBAN
Tanla Digital LabsEnvoi de SMS (codes d’authentification, notifications)EuropeNuméro de téléphone, contenu du message

Encadrement des sous-traitants et procédure de modification

Conformément à l’article 28 du RGPD, l’ensemble des sous-traitants engagés par Centralpay agissent exclusivement sur instructions documentées, sont liés par des engagements contractuels stricts en matière de confidentialité et de sécurité, et ne peuvent utiliser les données à caractère personnel à d’autres fins que celles définies par Centralpay.

Toute modification substantielle de cette liste fera l’objet d’une information préalable par tout moyen approprié (notification dans le Portail Marchand, courrier électronique, ou mise à jour publique de la présente page), permettant aux personnes concernées, le cas échéant, de s’y opposer.

Pour toute question relative au traitement de vos données ou à l’exercice de vos droits, vous pouvez contacter notre Délégué à la Protection des Données à l’adresse : dpo@centralpay.eu.

FAQ - Protection des données personnelles

Gouvernance et responsabilités

Responsable du traitement et contact DPO

CentralPay, Établissement de Monnaie Électronique (EME), est responsable du traitement pour ses services de paiement.
Contact DPO : dpo@centralpay.com (réponse sous 30 jours).

Données collectées

Quelles données collectons-nous ?

Dans le cadre de la fourniture de ses services de paiement et afin de respecter ses obligations légales, CentralPay collecte uniquement les données strictement nécessaires. Ces données varient en fonction du type d’opération (paiement, vérification KYC, lutte contre la fraude, support client). Elles se répartissent en plusieurs catégories :

  • Données d’identification : nom, prénom, civilité, date et lieu de naissance, nationalité, qualité (par exemple représentant légal, dirigeant ou bénéficiaire effectif – UBO).
  • Données de contact : adresse email, numéro de téléphone, adresse postale.
  • Données de paiement : coordonnées bancaires (IBAN, BIC) ; données de carte traitées exclusivement dans un environnement certifié PCI DSS (numéro complet et CVC collectés uniquement pour être tokenisés et jamais exposés en clair), date d’expiration, schéma (Visa, Mastercard…), pays émetteur, 4 derniers chiffres.
  • Données transactionnelles : identifiant de transaction (transactionId), date et heure, montant, devise, statut, référence commande (orderId), historique des opérations (paiements uniques, récurrents, fractionnés, remboursements).
  • Données de sécurité et de lutte contre la fraude : adresse IP, empreinte 3DS (navigateur/appareil), résultats et scores antifraude, statut éventuel de mise en surveillance technique.
  • Données de conformité KYC/LCB-FT : pièces d’identité officielles, justificatifs de domicile, documents légaux de l’entreprise (ex. Kbis, statuts), informations sur les bénéficiaires effectifs (UBO et pourcentages de détention).
  • Données techniques : journaux applicatifs (logs API), événements transmis aux marchands (webhooks), identifiants techniques (customerId, eventId).

CentralPay ne collecte aucune donnée sensible au sens de l’article 9 du RGPD (santé, religion, opinions politiques, orientation sexuelle, etc.), sauf si la loi l’imposait de manière exceptionnelle.

Finalités

Pourquoi utilisons-nous vos données ?

CentralPay traite vos données personnelles uniquement pour des finalités déterminées, explicites et légitimes. Ces traitements s’inscrivent dans le cadre de l’exécution de nos services de paiement, du respect de nos obligations réglementaires et de la sécurité de nos systèmes. Les principales finalités sont les suivantes :

  • Exécution des paiements : traitement des opérations de paiement (SEPA, carte bancaire, paiements récurrents ou fractionnés), gestion des flux financiers, émission de factures et suivi des règlements.
  • Respect des obligations réglementaires : application des règles de lutte contre le blanchiment des capitaux et le financement du terrorisme (LCB-FT), vérification d’identité (KYC), conservation légale des documents, supervision par l’ACPR.
  • Prévention et détection de la fraude : mise en œuvre des contrôles de sécurité exigés par la DSP2 (authentification forte, 3DS), calcul de scores antifraude et gestion des alertes.
  • Relation client et support : communication avec les clients et utilisateurs (notifications, confirmations, envoi de liens de paiement), traitement des demandes de support, gestion des réclamations et litiges.
  • Obligations comptables et fiscales : conservation des pièces probatoires, respect des règles du Code de commerce et du Code général des impôts.
  • Amélioration et sécurité technique : suivi de la performance et de la disponibilité de nos services, renforcement de la résilience opérationnelle conformément au règlement DORA, amélioration continue de l’expérience client et de la sécurité de nos systèmes.

Bases légales

Sur quelles bases légales reposent nos traitements ?

CentralPay traite vos données personnelles uniquement pour des finalités déterminées, explicites et légitimes. Ces traitements s’inscrivent dans le cadre de l’exécution de nos services de paiement, du respect de nos obligations réglementaires et de la sécurité de nos systèmes. Les principales finalités sont les suivantes :

  • Exécution des paiements : traitement des opérations de paiement (SEPA, carte bancaire, paiements récurrents ou fractionnés), gestion des flux financiers, émission de factures et suivi des règlements.
  • Respect des obligations réglementaires : application des règles de lutte contre le blanchiment des capitaux et le financement du terrorisme (LCB-FT), vérification d’identité (KYC), conservation légale des documents, supervision par l’ACPR.
  • Prévention et détection de la fraude : mise en œuvre des contrôles de sécurité exigés par la DSP2 (authentification forte, 3DS), calcul de scores antifraude et gestion des alertes.
  • Relation client et support : communication avec les clients et utilisateurs (notifications, confirmations, envoi de liens de paiement), traitement des demandes de support, gestion des réclamations et litiges.
  • Obligations comptables et fiscales : conservation des pièces probatoires, respect des règles du Code de commerce et du Code général des impôts.
  • Amélioration et sécurité technique : suivi de la performance et de la disponibilité de nos services, renforcement de la résilience opérationnelle conformément au règlement DORA, amélioration continue de l’expérience client et de la sécurité de nos systèmes.

Pendant combien de temps conservons-nous vos données ?

CentralPay applique des délais de conservation précis, fondés sur les obligations légales et les besoins opérationnels. À l’issue de ces délais, les données sont soit supprimées, soit anonymisées de façon irréversible.

  • Transactions financières (écritures probatoires) : conservées 10 ans, conformément au Code de commerce.
  • Données personnelles associées aux transactions (email, téléphone, IP, empreintes 3DS, PAN masqué, token de carte, scores fraude) : conservées 24 mois maximum, puis supprimées ou anonymisées.
  • Données de carte (token + métadonnées) : conservées jusqu’à 24 mois après la date d’expiration de la carte. Le PAN complet et le CVC ne sont jamais exposés en clair.
  • Payment Requests (emails/SMS) : conservées 24 mois maximum.
  • Abonnements et paiements fractionnés : conservés pendant la durée de l’abonnement + 5 ans.
  • Comptes bancaires (IBAN/BIC) et mandats SEPA : conservés pendant la durée du mandat + 10 ans (preuve contractuelle).
  • KYC / LCB-FT : données conservées 5 ans après la fin de la relation d’affaires (art. L561-12 CMF).
  • Journaux techniques et webhooks : conservés 24 mois.

Au-delà de ces durées, CentralPay ne conserve que des données anonymisées ou strictement nécessaires au respect d’une obligation légale.

Localisation et transferts

Où vos données sont-elles traitées ?

Les données traitées par CentralPay sont hébergées en priorité dans l’Union européenne, principalement en France, dans des environnements certifiés PCI DSS et ISO 27001.

À ce jour, CentralPay ne transfère pas de données personnelles hors de l’Union européenne.
Si un transfert hors UE devait être nécessaire à l’avenir (par exemple pour un prestataire SMS ou email), il serait encadré par :

  • une analyse d’impact du transfert,
  • la mise en place des Clauses Contractuelles Types (SCC) de la Commission européenne,
  • des mesures techniques complémentaires (chiffrement, segmentation, contrôle d’accès),
  • et une information transparente de nos clients.

Transfert de données hors UE : comment procédons-nous ?

À ce jour, CentralPay ne transfère pas de données personnelles hors de l’Union européenne.
Toutes les données sont hébergées et traitées dans l’UE, principalement en France et au sein d’infrastructures certifiées (PCI DSS).

Si, à l’avenir, un transfert hors UE devait être nécessaire (par exemple pour un prestataire SMS ou email), CentralPay s’engage à :

  • procéder à une analyse d’impact sur le transfert,
  • appliquer les Clauses Contractuelles Types (SCC) de la Commission européenne,
  • mettre en place des mesures techniques supplémentaires (chiffrement, cloisonnement, contrôle d’accès),
  • et informer ses clients en toute transparence.

Nature des données

Traitons-nous des données sensibles ?

Non. CentralPay ne traite aucune donnée sensible au sens de l’article 9 du RGPD (santé, religion, opinions politiques, orientation sexuelle, etc.).
Nous collectons uniquement les informations strictement nécessaires à l’exécution des paiements et au respect de nos obligations légales (LCB-FT, supervision ACPR).

Collectons-nous des données de mineurs ?

CentralPay fournit ses services exclusivement à des professionnels (B2B). Nous ne collectons donc pas volontairement de données de mineurs.
Si, indirectement, un mineur est amené à effectuer un paiement, le traitement reste limité aux données de paiement nécessaires (ex. coordonnées bancaires ou carte), et toujours sous la responsabilité de son représentant légal lorsqu’une vérification est requise.

Conformité RGPD

Réalisons-nous des analyses d’impact (PIA)?

Oui, nous réalisons des AIPD (PIA) pour les traitements susceptibles d’engendrer un risque élevé (ex. KYC, antifraude/3DS, tokenisation carte, analyses longitudinales). Les risques résiduels et mesures de réduction sont documentés.

Comment garantissons-nous la minimisation et le privacy by design ?

Nous collectons uniquement les champs nécessaires par finalité, cloisonnons les environnements (prod/préprod), nous n’utilisons aucune donnée réelle en test, limitons les payloads webhooks au minimum utile, et appliquons des purges/anonymisations automatiques à l’échéance.

Comment CentralPay documente sa conformité RGPD ?

  • Politique RGPD publique (site).
  • Registre des traitements (interne, à jour).
  • PIA sur les traitements à risque (interne).
  • Politiques/procédures (sécurité, purge, incidents, droits).
  • Rapports de contrôle interne (ACPR).

Sous-traitants

Comment encadrons-nous nos prestataires ?

Chaque prestataire est contractuellement encadré (art. 28) : mesures de sécurité, confidentialité, notification d’incident, audibilité, localisation des données, sous-traitance en cascade contrôlée. Due diligence initiale + réévaluation régulière (sécurité, SLA, conformité).

Quels prestataires utilisons-nous ?

Sur demande et après NDA, nous pouvons fournir la liste à jour par catégorie de nos prestataires (hébergement/cloud, KYC, envoi email/SMS, anti-fraude, support) en indiquant la zone géographique.

Comment sélectionnons-nous nos prestataires essentiels ?

CentralPay applique une politique d’encadrement des sous-traitants alignée à la fois sur le RGPD (art. 28) et sur le règlement DORA.

Lors de la sélection, nous menons une due diligence approfondie couvrant la sécurité (certifications, mesures techniques), la conformité réglementaire (RGPD, DSP2, LCB-FT), la localisation et le régime juridique des données, la solidité financière du prestataire ainsi que les niveaux de service (SLA) proposés. Pour les prestataires critiques, nous examinons en particulier leur intégration dans la chaîne de valeur des services de paiement et leur rôle en matière de résilience opérationnelle.

Chaque relation contractuelle inclut des clauses conformes à l’article 28 RGPD (confidentialité, sécurité, notification d’incident, limitation des sous-traitances en cascade) ainsi que, le cas échéant, des Clauses Contractuelles Types (SCC) pour encadrer les transferts hors Union européenne.

Conformément à DORA, nous tenons un registre d’information des prestataires TIC et identifions ceux considérés comme prestataires critiques. Ces prestataires font l’objet d’une évaluation renforcée, avec des exigences contractuelles spécifiques en matière de disponibilité, d’intégrité, de continuité et de tests de résilience.

Le suivi est assuré au travers de revues régulières (contrôles, rapports d’audit, attestations de conformité type SOC/ISO, questionnaires de sécurité), d’un droit d’audit contractuel et de mécanismes de reporting périodique. Nous intégrons ces évaluations dans notre cartographie des risques TIC et nos comités de suivi DORA.

Sécurité et résilience

Quelles protections techniques appliquons-nous ?

CentralPay protège les données et les systèmes en combinant des mécanismes techniques robustes et conformes aux meilleurs standards internationaux.
Les échanges sont sécurisés par un chiffrement systématique : TLS 1.2/1.3 pour les données en transit et AES-256 pour les données au repos, avec une gestion centralisée des clés.
Les données de carte sont traitées exclusivement dans un environnement PCI DSS niveau 1, avec collecte en zone dédiée et tokenisation irréversible pour éviter toute exposition du PAN complet.
Les accès aux systèmes sont contrôlés par des mécanismes RBAC (role-based access control) et protégés par une authentification forte (MFA), avec des revues régulières des habilitations.
Toutes les actions sensibles font l’objet d’une journalisation horodatée et inviolable, intégrée dans un SIEM qui assure la détection et l’alerte en temps réel.
L’infrastructure est cloisonnée : segmentation des réseaux, séparation stricte des environnements (production, test, préproduction) et gestion sécurisée des secrets.
Enfin, CentralPay teste régulièrement son dispositif à travers des tests de pénétration, des scans de vulnérabilités et des audits externes indépendants.

Comment notre organisation garantit la sécurité ?

La sécurité ne repose pas uniquement sur la technologie mais aussi sur une organisation et une gouvernance solides.
CentralPay applique un cadre de gestion des risques intégrant une cartographie détaillée, des indicateurs de suivi (KRI) et une politique d’appétence au risque validée par la direction.
La supervision s’appuie sur le modèle reconnu des trois lignes de défense : les opérations assurent les contrôles de premier niveau, une fonction indépendante de conformité et de contrôle permanent supervise la deuxième ligne, et l’audit interne constitue la troisième ligne.
Un comité sécurité et conformité se réunit régulièrement pour piloter la stratégie et mettre à jour les politiques et procédures clés (gestion des accès, incidents, purges, exercice des droits RGPD).
Enfin, la culture sécurité est renforcée par des formations régulières des équipes, couvrant la cybersécurité, la protection des données personnelles et les obligations LCB-FT.

Que faisons-nous en cas d’incident de sécurité ?

CentralPay dispose d’une procédure formalisée de gestion des incidents.
En cas d’incident, nous procédons à une détection rapide, une qualification et un confinement immédiat, suivis d’actions de remédiation.
Les événements sont intégralement journalisés et investigués (forensic) afin d’identifier la cause et d’éviter leur récurrence.
Lorsque la réglementation l’impose, nous notifions la CNIL dans un délai maximum de 72 heures et informons les personnes concernées en cas de risque élevé.
Chaque incident donne lieu à un retour d’expérience (REX) et à la mise en place d’un plan d’actions correctives, qui est suivi jusqu’à sa résolution complète.

Nos audits de sécurité

CentralPay est soumis à plusieurs niveaux de contrôle et de tests de sécurité, à la fois internes et externes :

  • Audits externes réguliers :
    • Certification annuelle PCI DSS niveau 1 sur la collecte et le traitement des données de paiement,
    • Audits indépendants de cybersécurité,
    • Tests de pénétration réalisés par des prestataires tiers pour identifier et corriger les vulnérabilités.
  • Contrôles internes permanents (seconde ligne de défense) : revues des habilitations, scans de vulnérabilités, surveillance des systèmes critiques.
  • Audits périodiques indépendants (troisième ligne de défense) : audit interne et audit externe du dispositif de sécurité, conformité réglementaire (ACPR, DORA).
  • Revue annuelle des politiques : l’ensemble de nos politiques de sécurité, de purge, d’incidents et de gestion des prestataires est revu et validé chaque année par la direction.
  • Tests de résilience conformément à DORA :
    • Plans de Continuité et de Reprise d’Activité (PCA/PRI) testés régulièrement pour valider la capacité à maintenir les services en cas d’incident majeur,
    • Exercices de crise simulant des scénarios de cyberattaque ou d’indisponibilité critique,
    • Tests de charge et de performance sur les infrastructures critiques,
    • Scénarios de bascule et redondance entre environnements pour garantir la disponibilité,
    • Pour les fonctions critiques, recours progressif à des tests de résilience avancés de type “TLPT” (Threat-Led Penetration Testing), exigés par DORA pour les acteurs significatifs.

Droits des personnes

Quels sont vos droits et comment les exercer ?

En application des articles 15 à 22 du RGPD, vous disposez des droits suivants sur vos données personnelles :

  • droit d’accès,
  • droit de rectification,
  • droit à l’effacement,
  • droit à la limitation,
  • droit d’opposition,
  • droit à la portabilité,
  • droit de retrait du consentement.

Vous pouvez exercer vos droits en adressant une demande à : dpo@centralpay.com.
Nous nous engageons à vous répondre dans un délai de 30 jours maximum, sauf cas exceptionnel justifiant une prolongation. En cas de difficulté, vous pouvez également saisir la CNIL.

Comment concilions-nous effacement et obligations légales ?

CentralPay respecte le droit à l’effacement prévu par le RGPD, mais certaines données doivent être conservées en raison d’obligations légales.
Nous supprimons ou anonymisons toutes les données personnelles qui ne sont plus nécessaires.
En revanche, lorsque la loi nous impose de conserver certaines informations (par exemple les écritures comptables pendant 10 ans ou les données KYC pendant 5 ans après la fin de la relation), ces données sont maintenues mais :

  • leur accès est strictement limité,
  • elles ne sont utilisées que pour les finalités imposées par la loi (contrôle ACPR, TRACFIN, obligations probatoires).

Ainsi, nous trouvons un équilibre entre le respect des droits des personnes et nos obligations réglementaires.

Autres garanties

Utilisons-nous des décisions automatisées ou du profilage ?

CentralPay n’applique aucune décision entièrement automatisée produisant des effets juridiques ou significatifs sur les personnes, au sens de l’article 22 du RGPD.
Nous utilisons en revanche des outils de scoring antifraude qui calculent un niveau de risque sur les transactions. Ces résultats servent uniquement d’aide à la décision : lorsqu’un cas est sensible ou à risque, il est systématiquement revu et validé par un contrôle humain.

Utilisons-nous des cookies ou traceurs à des fins publicitaires ?

Sur les parcours de paiement et dans les API, CentralPay n’utilise aucun cookie publicitaire ni traceur marketing. Seuls des cookies ou traceurs strictement nécessaires au fonctionnement technique et à la sécurité des parcours (ex. gestion de session, authentification) peuvent être utilisés.
À ce stade, aucun mécanisme de consentement via bannière n’est nécessaire, puisque nous n’utilisons pas de cookies optionnels.

Comment assurons-nous la résilience et les sauvegardes ?

Oui. L’infrastructure est redondée sur deux data centers localisés en France ; les sauvegardes sont chiffrées et externalisées, testées régulièrement (restores) et retiennent les mêmes contrôles d’accès que la production.

Avons-nous une politique de purge et d’anonymisation documentée ?

Oui, avec délais par objet (transactions/personnelles 24 mois, cartes jusqu’à 24 mois après date d’expiration, KYC 5 ans post-relation, mandats 10 ans, logs 24 mois) et mécanismes (suppression vs anonymisation irréversible), plus traces de purge (logs d’exécution).

Nos environnements de test contiennent-ils des données réelles ?

CentralPay n’utilise jamais de données personnelles réelles dans ses environnements de test ou de préproduction. Tous nos jeux de données internes (ex. cartes, IBAN, profils clients) sont synthétiques ou fictifs et conformes aux standards PCI DSS.

Cependant, les utilisateurs de nos environnements de test (par ex. marchands intégrateurs) peuvent techniquement saisir leurs propres données. Cette pratique est formellement interdite et encadrée par nos conditions d’utilisation.

Si un utilisateur insère par erreur des données personnelles dans un environnement de test, celles-ci :

  • ne sont pas utilisées à des fins de traitement de paiement réel,
  • ne sont pas répliquées en production,
  • et font l’objet d’une purge automatique ou manuelle dès leur détection.

Comment CentralPay gère-t-il l’accès des équipes support aux données ?

Les équipes support de CentralPay n’ont pas d’accès direct et permanent aux données personnelles. L’accès est accordé uniquement en cas de besoin opérationnel (par exemple pour résoudre un incident ou assister un client), et selon les principes suivants :

  • Accès temporaire et justifié : chaque accès est accordé pour une durée limitée et doit être motivé par un ticket ou une demande validée.
  • Principe du moindre privilège : l’agent support ne voit que les données strictement nécessaires pour traiter la demande.
  • Authentification forte (MFA) : tous les accès sont sécurisés par une authentification à plusieurs facteurs.
  • Traçabilité complète : chaque action effectuée par un membre du support est enregistrée et auditée.
  • Revue régulière des habilitations : les droits d’accès sont revus mensuellement pour s’assurer qu’ils restent justifiés.
  • Masquage des données sensibles : les champs sensibles (ex. numéro complet de carte, CVC, IBAN complet) sont systématiquement masqués dans les interfaces, afin que le support ne puisse jamais les visualiser en clair.

Offrons-nous des clauses contractuelles spécifiques RGPD à vos clients ?

Nos CGU/contrats intègrent les clauses nécessaires (confidentialité, sécurité, coopération incidents, sous-traitance, conservation/purge). Des avenants RGPD sont possibles selon les cas d’usage.

Partageons-nous nos politiques et procédures internes ?

La Politique RGPD publique est disponible en ligne. Les politiques internes détaillées (procédures incidents, purge, sécurité) ne sont, par défaut, pas partagées.

General information

Articles

  • Contact CentralPay >
  • CentralPay
  • Contract Templates
  • Open a CentralPay account
  • Using the CentralPay APIs
  • Merchant Portal
  • Customer Portal
  • Onboarding Portal
  • Rates
  • Logos and visuals
  • Trust Center

Contact CentralPay >

CentralPay is committed to healthy growth, ensuring that our users receive daily support from stable teams of experts in their respective fields (compliance, electronic payments, security, etc.).

Our customer service and support teams can be reached Monday through Friday via the « Help & Support » section of your Merchant Portal, by email, or by videoconference by appointment.

1. Before submitting a technical request

Here are a few things you can check beforehand:

  • Authentication: Are you properly authenticated?
  • Environment: Are you in the correct environment for the Merchant Portal and the API (Sandbox or LIVE)?
  • Authorization: Do you have the necessary permissions to perform this operation? HTTP error 403 indicates an authorization error.
  • HTTP Error: See the meanings of CentralPay HTTP error codes. If you receive an HTTP 500 error code, please contact technical support immediately.

2. Information to Provide for All Technical Inquiries

  • The specific dates and times of the relevant events
  • The link (URL) to the relevant page
  • One or more screenshots, ideally a video (Cloudapp lets you record a video of a page in the Google Chrome browser)
  • A UUID (or ID) for the transaction in question and its type (Card Transaction, Refund, Payment Request, etc.)
  • The environment in which you are working (Sandbox testing or LIVE production)
  • A detailed description of the problem you are experiencing or your question

This information will help us support you and analyze your situation more effectively.

Your requests will be given priority if they are submitted through the « Help and Support » section of the Merchant Portal:

Recette Merchant Portal – Help and Support
Production LIVE E-commerce Merchant Portal – Help and Support

CentralPay

Certifications and Approvals

CentralPay offers modular payment solutions that enable the consolidation of payment collection processes for its own account and the automation of payouts on behalf of third-party accounts. The types of services and transactions offered by CentralPay vary depending on the needs and business activities of its merchants and partners.

CentralPay is an independent company that fully owns its technology and licenses. This ensures the greatest possible autonomy in its choice of partnerships and its future development.

CentralPay is authorized to enter into business relationships with companies registered in the European Economic Area.

ACPR (
) (Bank of France)
Electronic money institution: CentralPay is an electronic money institution regulated by the Banque de France through its prudential supervision and resolution authority, the ACPR (CIB 17138).
PSD2: CentralPay complies with the Second Payment Services Directive, which sets forth requirements regarding strong customer authentication and data protection, among other things.
PCI DSS: CentralPay is certified annually at the highest possible level for banking data security and fraud prevention: PCI DSS Level 1. View CentralPay’s certificate ➜
EBA CLEARING & EPC: As a member of the European Payment Council and through its connection to EBA CLEARING, CentralPay provides Integration of the European SEPA payment schemes to send and receive Bank transfers and SEPA Direct Debits using its own IBANs and virtual IBANs.
SWIFT: Connected to the SWIFT network, the most widely accepted messaging system worldwide, CentralPay is able to exchange international financial transactions with most participating banks and financial institutions.
Visa, Mastercard, debit cards, American Express: CentralPay is accredited by the major card networks to optimize the payment experience and conversion rates for all its users.

Security and Hosting

CentralPay operates its services from two data centers in France. The equipment and services at these two sites are fully redundant.

1. Highly Resilient Hosting

  • Two TIER III-designed data centers located in Tours
  • Active/active environment between the two sites
  • Contractual service level agreements (SLAs) of 99.9%
  • Recognized standards: ISO 27001, PCI DSS, Code of Conduct

2. An infrastructure that ensures the security of your data

  • Network core with speeds of up to 10 Gb/s
  • Fully redundant power supply system, with power density ranging from 600 mA to 32 A
  • Access control system with two-factor authentication (ID card and personal code)
  • Video surveillance and an alarm system connected 24 hours a day, 7 days a week to our remote monitoring center
  • FirePro Aerosol Fire Suppression System

Availability Commitments

CentralPay guarantees the annual availability of its services (SLA & BCP) according to the following standards:

CPAY API
Processing of payment transactions
CPAY PORTALS
Onboarding Portal, Customer Portal, and Merchant Portal
99.9%
on an annual basis
99.5%
on an annual basis
The criterion for determining whether this guarantee has been met is the availability of the payment API.The criterion for this guarantee is the availability of the portals in the production environment.

Platform Development

CentralPay’s APIs are based on a microservices architecture that provides maximum flexibility. Our modular approach allows us to continuously evolve our solutions to offer an ever-increasing range of services and features.

These updates are implemented following thorough impact analyses to ensure they do not require any changes to our users’ integrations. In very rare cases, these updates may require minor or more significant modifications when regulatory changes occur, as was the case with the transition to version 2.0 of the 3DS, for example.

In the event of changes to the platform or modifications to expectations regarding the use of its APIs, CentralPay commits to notifying you within a timeframe commensurate with the scope of the actions to be taken:

  • Minor changes that do not require any action on the part of the merchant or partner:
    Simple Information Disclosure
  • Minor changes requiring action by the Merchant or Partner:
    Minimum 2-month notice period + assistance with implementation
  • Major changes requiring action by the Merchant or Partner:
    Minimum 6-month notice period + support during implementation

Please note that changes requiring action on the part of our merchants or partners are either rare or nonexistent, and that every precaution is taken to avoid any impact on their business.

CentralPay Glossary

1. Types of Actors

LabelDescription
ActorAny entity identified on the CentralPay platform. This may be a Merchant Profile, a Point of Sale (POS), a third-party establishment, or CentralPay.
Merchant ProfileThe Merchant Profile technically and operationally represents a merchant on the CentralPay platform. It serves as the basis for:
• His accounts: Payment Accounts or Electronic Money Accounts;
• Administration: API access, User Profiles, available services;
• Its technical configuration: webhooks, notifications, Point of Sale (POS) systems, acceptance rules, Bank Accounts;
• Its regulatory documentation: KYC/KYB, AML/CFT, risk scoring, contract management, fee schedule…

The Merchant Profile corresponds to the API object ` Merchant ` and is created automatically after the registration is validated (via the API object ` Merchant-Enrollment`).
Standard MerchantA legal entity or sole proprietorship that is a CentralPay customer and processes payments on its own account when selling goods or services.
May be functionally linked to a Technical Partner or Integration Partner.
Has a Merchant Profile of the type STANDARD.
Partner MerchantA legal entity that is a CentralPay customer, has a Merchant Profile, and may fall under one of the following models:
• Technical Partner: operates a shared solution (e.g., marketplace, SaaS platform) and has one or more Points of Sale (POS) open in its name, to which standard Merchants can be linked.
Has a Merchant Profile of type TECHNIQUE.
• Integration Partner: provides technical support, via access delegated by standard merchants, to facilitate integration and day-to-day operations (without sharing POSes under the partner’s name).
Has a Merchant Profile of the type INTEGRATEUR (if applicable).

A Partner Merchant may earn commissions (depending on the model) and/or be registered as a MOBSP to assist merchants during onboarding.
Intermediary MerchantA legal entity that is a customer of CentralPay, acting on behalf of third-party accounts, under one of the following regulatory statuses:
• PSP Agent: A Payment Service Provider (PSP) agent of CentralPay, registered with the ACPR (Bank of France) and authorized to act in the name and on behalf of CentralPay within a contractually defined scope (e.g., debit/credit transactions and transfers on behalf of third-party accounts).
Has a Merchant Profile of the type AGENT.
• EMD: Electronic Money Distributor registered/declared by CentralPay with the ACPR (Bank of France) for a project involving the issuance, distribution, and exchange of electronic money (CUSTOM currencies).
Has a Merchant Profile of type DME.
Sub-merchant / ParticipantA legal entity or individual who is a customer of a CentralPay Intermediary Merchant (PSP Agent or EMD).
• Sub-merchant: acts to sell products or services, for an LMNP business,
• Participant: acts for non-commercial purposes (crowdfunding, personal wallet, collective projects, etc.).
Has a specific Merchant Profile BASIC, with a limited scope of functionality.
CustomerA natural or legal person who pays or issues a payment order to a CentralPay Merchant (may also be referred to as the payee, payer, or debtor).
May or may not have a Customer Profile (Customer).

Note: In CentralPay’s regulatory or contractual documents, the term “Customer” may refer to the Merchant itself, depending on the context defined in the document.
Customer ProfileRepresents a customer registered by a Merchant on the CentralPay platform.
It contains:
• the customer’s personal information: last name, first name, email, phone number, company name, etc.
• the customer’s payment methods: cards, SEPA direct debits, IBAN, Bank Accounts, etc.
• the customer’s activities: payment requests, payment history, etc..

The Customer Profile corresponds to the API object Customer.
BO User ProfilesIndividuals with access to the CentralPay Merchant Portal to view or manage one or more Merchant Profiles.
• Type Legal: the Merchant’s legal representative.
• Type Natural: other authorized user (finance, support, development, etc.).

The BO User Profile corresponds to the API entity BO_user.
API User ProfilesAn entity created via the CentralPay platform that identifies the user (person or system) making API calls on a Merchant Profile.
Enables the tracking of actions and the management of authorizations.

The API User Profile corresponds to the API entity api_user.
Point of Sale (POS)Representation of a website, a brick-and-mortar store, or a sales team. They enable the segmentation of CentralPay Merchant Profile operations for the following purposes:
• Features: to configure different settings for each Point of Sale (POS) (customer notifications, internal notifications, sender name for confirmation emails, logo displayed on the checkout page, etc.)
• Administrative: to restrict the rights to view or edit your BO User Profiles to certain Points of Sale (POS)
• Accountants: to filter transactions by Point of Sale (POS) in the Merchant Portal or in data exports

The Point of Sale (POS) corresponds to the API object PointOfSale.

2. Types of Accounts

LabelDescription
Payment AccountAn account opened in CentralPay’s books in a Merchant’s name. This account is used exclusively for payment transactions (collecting payments in ISO currencies, performing Payouts to a Bank Account, etc.).

It is represented by the ` Wallet ` object of type ` PS ` in the CentralPay API.
Electronic Money AccountAn account opened in CentralPay’s books in the name of a Merchant. This account is used exclusively for the storage and exchange of Electronic money within the distributor’s network (CUSTOM currencies).

It is represented by the ` Wallet ` object of type ` EM ` in the CentralPay API.
Commission AccountA secondary Payment Account used to segregate commission flows and/or certain fee deductions (depending on the model).
Under the Partner/Agent models, this account can receive commissions allocated to transactions by affiliated/participating merchants, in accordance with the applicable contractual rules.

It is represented by the object ` Wallet ` of type ` CM ` in the CentralPay API.
Reserve AccountA secondary Payment Account used to set aside CentralPay reserve funds (account balance, collateral, or Rolling reserve). It is not authorized to make Payouts.

It is represented by the ` Wallet ` object of type ` RS ` in the CentralPay API.
« Agent » Collection AccountA Payment Account opened in CentralPay’s books in the name of an Agent. It is used to receive funds related to transactions initiated through the Agent model, prior to their allocation or transfer to the Payment Accounts of Participant Merchants. It is not authorized to make payouts.

It is represented by the ` Wallet ` object of type ` CL ` in the CentralPay API.
CentralPay Technical Partner AccountThe Technical Partner Account refers to an internal, temporary mechanism used by CentralPay to receive, identify, and temporarily process funds related to a payment transaction, with a view to transferring them to the final Beneficiary. It is not a Payment Account opened for a customer, is not made available to any third party, and does not confer any right of disposal.

Depending on the technical implementation, this mechanism may be implemented using internal objects (e.g., Wallet of type TR) used exclusively by CentralPay for operational processing.

3. The names of objects or operations

LabelDescription
CentralPay FeesAll fees owed to CentralPay, deducted from the corresponding transactions, debited from a dedicated Commission Account, or billed at the end of the month (depending on the applicable contractual terms).
ISO CurrenciesStandard currencies in accordance with ISO 4217 (e.g., EUR, USD, CHF, GBP…)
CUSTOM CurrencyElectronic money created for a CentralPay EMD. The value of the CUSTOM currency is always pegged to that of an ISO currency (e.g., EUR).
Technical InstructionData or events for strictly technical and commercial purposes transmitted to CentralPay (e.g., order references, shopping cart, commission, logistics events). A Technical Instruction is not a payment order and does not trigger any automatic financial action: CentralPay retains sole discretion over the processing and, where applicable, the release of funds.
Release dateA deferred availability date that CentralPay may apply to make funds available to a Beneficiary (e.g., after delivery/shipment), in accordance with applicable risk policies and rules. It may be determined based on submitted commercial information, without constituting a payment instruction.
Bank AccountExternal Bank Account linked to:
• a Merchant Profile for making outgoing Payouts (payout)
• or a Customer Profile for making SEPA Direct Debits or outgoing Payouts.
It is represented by the ` BankAccount ` object in the CentralPay API.
Outgoing paymentOutgoing bank transfer from a CentralPay account to an external Bank Account. Can be made via SEPA or SWIFT.
It is represented by the  » Payout  » object in the CentralPay API.
Card AuthorizationAn operation to check the availability of funds on a credit card, followed by a hold in anticipation of a Card Transaction (max. 7 days).
It is represented by the ` Transaction ` object in the CentralPay API.
Card TransactionA debit transaction from a bank card, credited to a CentralPay account.
It is represented by the ` Transaction ` object in the CentralPay API.
SCT TransactionOperation to receive a SEPA or SWIFT bank transfer credited to a CentralPay account.
It is represented by the  » sctTransaction  » object in the CentralPay API.
SDD TransactionA transaction that debits a Bank Account and credits a CentralPay account.
It is represented by the ` sddTransaction ` object in the CentralPay API.

Contract Templates

Standard Merchant

The standard Merchant plan is intended for businesses (legal entities) that wish to use the CentralPay platform to collect payments on their own account as part of their business selling goods or services.

1. Model Description

This plan gives you access to all of Smart Collection’s services—the comprehensive payment processing solution offered by CentralPay.

🔗 More information about Smart Collection

The included features are as follows:

  • The CentralPay Merchant Profile
    A standard Merchant Profile that includes one or more Payment Accounts dedicated to your business, with individual IBANs, transaction tracking, and payout tracking.
  • Account-related services
    Management tools, user profiles, API access, notifications, reporting…
  • The Smart payment service
    Centralization of your flows, automated routing, management of statuses and payments.
  • Card Transaction
    : Accepts Visa and Mastercard, 3D Secure, Apple Pay and Google Pay, and handles refunds and chargebacks.
  • Transactions by bank transfer
    Generation of virtual IBANs, receipt notifications, automatic reconciliations.
  • SEPA Direct Debit Transactions
    One-time or recurring debits, mandate management, and tracking of rejections.

2. Fees and Commissions

Fixed and variable fees are charged based on the types of transactions performed (transactions, payouts, Rejections, etc.). You can view our published fee schedule on our website.

  • Fees are charged:
    • Either directly from your primary Payment Account
    • Or from a dedicated Commission Account, if it is enabled

If there are insufficient funds, CentralPay may process a SEPA Direct Debit from your Bank Account or send you a request for an additional Bank transfer.

Partner Merchant

CentralPay offers two distinct models for partners wishing to assist CentralPay merchants with their technical integration: the Technical Partner and the Integration Partner. In both cases, merchants remain in a direct contractual relationship with CentralPay; the terms regarding API access, resource sharing, and billing differ depending on the model.

Depending on the nature of their business, these partners may also be registered with ORIAS asIOBSPs (intermediaries—“MOBSPs”) in order to provide a legal framework for certain activities involving the introduction andsupport of merchants during onboarding with CentralPay. This article of association does not confer any right of access to funds or any authority to execute payment transactions.

1. Integration Partner

An Integration Partner is a technical service provider contracted by one or more standard merchants. It acts on their behalf and for their account to facilitate their connection to CentralPay services.

Each standard merchant has its own Point of Sale (POS), its own CentralPay Merchant Profile, and signs its application documents and contract (CCSP) directly with CentralPay. The Integrator has no contractual rights to the merchant’s accounts or funds.

1.1. Responsibilities and Operations

  • The Integrator uses the API access credentials delegated by each Merchant (dedicated “Integrator” credentials) under a contractual agreement between the Integrator and the Merchant
  • He or she may perform the technical tasks necessary for Integration and RUN (configuration, following technical instructions, maintenance), exclusively through these access points, without being able to view account balances or initiate, modify, or cancel a payment transaction.
  • Transactions are generally conducted on a “one-to-one” basis: a customer (Payer) pays a single Merchant, with each Merchant retaining its own environment and access points.

1.2. Billing

  • Each Merchant is billed directly by CentralPay for the services subscribed to in their CCSP
  • The Integration Partner does not get involved in the financial flows at any time

1.3. To learn more about the Integrator model

  • The Integration Partner provides technical support exclusively to standard merchants and never acts as a payment intermediary or representative of CentralPay. Its role is limited to integration, Level 1 functional support, and interface maintenance.
  • Each merchant retains full control over their CentralPay Merchant Profile: collections, payouts, balance, API access settings, and document and contract management
  • CentralPay may provide the integrator with portal access strictly limited to technical administration (monitoring of Technical Instructions, configuration settings, and operations necessary for RUN). This access does not allow the viewing of balances, the manipulation of financial transactions, the initiation, modification, or cancellation of payment transactions, or the modification of IBANs or financial parameters.
  • To enable the connection, the merchant provides the integrator with dedicated credentials, which have strictly limited permissions and can be revoked at any time. All technical actions are performed using these credentials, under the merchant’s responsibility.
  • If the Integration Partner is registered with ORIAS as an IOBSP (Intermediary – “MOBSP”) and a separate contractual framework provides for it, they may assist the Merchant in onboarding (e.g., providing a registration link, assisting with the onboarding process). CentralPay retains sole discretion regarding onboarding, account opening, and regulatory compliance checks.
  • Otherwise, the Integration Partner may refer the Merchant to CentralPay for any contractual, pricing, or regulatory questions related to payment services

2. Technical Partner

A Technical Partner is an entity that develops a shared solution (e.g., marketplace, SaaS platform) intended for multiple standard merchants. It operates through one or more Points of Sale (POS) registered under its name in CentralPay, to which merchants can be linked.

Transactions are processed by CentralPay through an internal “Technical Partner Account” mechanism (used by CentralPay to temporarily receive and process funds prior to their transfer to the final Beneficiary). The Technical Partner has no right to dispose of these funds: it merely transmits commercial data and maintains visibility into the cash flows associated with its POSes, without ever being able to initiate a transfer.

2.1. Responsibilities and Operations

  • The Technical Partner has its own API credentials issued by CentralPay
  • It can transmit technical instructions (sales data, shopping cart, commission, product codes, logistics events, etc.) and track transactions associated with Merchants linked to its Point of Sale (POS) locations
  • He has no access to transfer features (including the endpoint transfer) and cannot view balances or make Payouts: CentralPay decides on and executes transactions and fund transfers.
  • In this context, CentralPay can process “1-for-X” payments: a customer (payer) can pay multiple Merchants simultaneously, and CentralPay then handles the allocation and disbursement of funds to the Merchants.

2.2. Billing

  • CentralPay bills the Technical Partner based on the transactions processed through its Point of Sale (POS) systems, in accordance with the terms set forth in the CCSP and the applicable subscription documents.
  • When a commission is applicable, CentralPay may, based on the transaction data provided and in accordance with the terms of the agreement, allocate the funds: the commission portion is then credited to the Technical Partner’s Commission Account, without the Technical Partner holding any third-party funds

To learn more about the Technical Partner model

  • The Technical Partner develops a shared solution (e.g., marketplace, SaaS platform) that integrates CentralPay. It operates through one or more Points of Sale (POS) registered in its name, which process transactions from affiliated standard merchants.
  • Each participating merchant enters into a contract directly with CentralPay (CCSP and subscription documents) and has its own CentralPay Merchant Profile
  • The Technical Partner transmits transaction data (transaction amount, reference numbers, commission, logistics events, etc.) to CentralPay. This data does not trigger any automatic financial action: CentralPay analyzes and verifies the data, then decides whether to process the transaction and initiate the necessary fund transfers.
  • CentralPay may decide to impose a temporary hold and/or set a Release date for the funds to be made available to a Merchant (e.g., pending delivery or shipment), in accordance with its risk policy, network rules, and regulatory obligations.
  • The Technical Partner never holds third-party funds, does not issue any payment orders, and cannot intervene in payouts or account management. It acts neither on behalf of third parties nor in the name of CentralPay.
  • The Technical Partner’s access is limited to the views and features strictly necessary for the transmission and tracking of Technical Instructions; there is no access to the “Technical Partner Account” as an account (no right of execution, no right of disposal, no access to balances)
  • In the event of ORIAS registration as an IOBSP (intermediary – “MOBSP”) and if a separate contractual framework so provides, the Technical Partner may assist merchants in onboarding (providing a registration link, assisting with documentation), subject to prior approval by CentralPay

3. Common Compliance Rules

For both models:

  • The Partner is not a Payment Service Provider (PSP), has no authority to execute payment transactions, and does not hold any third-party funds in connection with payment services
  • Accounts, the provision of funds, payouts, and the protection of funds are managed and overseen by CentralPay in its capacity as a payment service provider (PSP)
  • No regulatory delegation of authority to provide payment services (such as a PSP agent) is granted to these partners

3.1. Contractual Relationship with Merchants

The Partner (whether a technical partner or integration partner) maintains its own business relationship with its users and remains responsible for the services offered on its platform. It is free to define the terms and conditions of use applicable to its services.

For their part, the affiliated merchants:

  • Create their own CentralPay Merchant Profile as part of a personalized Enrollment process
  • Sign the CCSP and the applicable subscription documents (including the designation of a partner, if applicable) directly with CentralPay
  • Acknowledge that the partner may perform certain technical actions as part of its integration (e.g., submitting an order, submitting a shopping cart, following technical instructions), without this constituting a payment order or access to funds

CentralPay then works directly with the affiliated Merchant to:

  • creating and managing their account (electronic signature, POS assignment, linking to a partner)
  • the regulatory processing of submitted supporting documents (KYC/KYB, anti-money laundering and counter-terrorism financing)
  • updating documentation or conducting additional verifications necessary for the proper execution of payment services

This entire organization is based on a strictly defined contractual framework:

  • The partner signs a dedicated contract with CentralPay that outlines its role and access rights (API/portal) and, if applicable, the commission terms.
  • Affiliated merchants sign their CentralPay contractual documents (CCSP and subscription) directly, in which their affiliation with the partner may be specified
  • The partner’s terms and conditions apply solely to the use of its own platform. They may not interfere with CentralPay’s payment services or supersede CentralPay’s contractual documents.

4. ORIAS Declaration (IOBSP / “MOBSP”)

An Integration Partner or a Technical Partner may, if required by its business activities, be registered with ORIAS as an IOBSP (intermediary—“MOBSP”). This status is distinct from thatof a Payment Service Provider (PSP) agent (as defined in Article L.523-1 of the Monetary and Financial Code).

Depending on the applicable contractual framework, this registration may allow for:

  • To present CentralPay’s services and assist the Merchant with the Onboarding process
  • To assist with the preparation of the application (without ever replacing the regulatory reviews conducted by CentralPay)

This status does not alter the restrictions set forth above in any way: it does not confer any rights to the funds or any authority to execute payment transactions. CentralPay remains solely responsible for onboarding, conducting regulatory checks, and executing payment services.

MOBSP (Orias) Declaration

ℹ️ Before reading this page, please see the section on onboarding for partners.

CentralPay partners based in France operate as intermediaries in banking and payment services (IOBSP), specifically as Intermediaries for Banking and Payment Services (MOBSP).

To become a CentralPay MOBSP partner, you must register with ORIAS. CentralPay will then need to register you as its Intermediary. Your part of the process can be completed in a few hours, while CentralPay’s part takes a few days. ORIAS, for its part, may take up to two months to review your application.

Although this process is your responsibility, CentralPay can assist you if needed. Please contact our customer service department if you need help.

1. Prepare your data

1.1. Get your certificate of appointment

After signing your partnership agreement with CentralPay:

  1. Send an email to our customer service department that includes your company name and SIREN number
  2. CentralPay will respond with your authorization certificate. You will need this document for step 3.3.

1.2. Gather your supporting documents

During Step 3.3 of the registration process, you will need to provide the following supporting documents:

  • Commercial register issued within the last three months
  • Proof of professional qualifications: a degree from an accredited business or management school; an RNCP certification (NCF 122, 128, 313, or 314, levels 7 through 5); or recognition by the CIEP for foreign degrees

If you do not have proof of professional competence accepted by Orias, please send an email to our customer service department. CentralPay can help you complete the necessary training.

See the attached image, which refers to the Level III – IOBSP category (Level 3).

2. Create your ORIAS account

2.1. Access the form

  1. Go to the ORIAS website
  2. Scroll down until you see the  » How Does It Work? » section .
  3. Click  » Sign Up« 

You will be redirected to the registration form.

2.2. Enter the information

  1. Enter your SIREN number
  2. Enter your business information. Be sure to register as a legal entity.
  3. Enter your legal representative’s information
  4. Enter the contact information for your legal representative
  5. Enter your company’s contact information, including your website if you have one
  6. Enter your business address
  7. Check all the information you’ve entered, then click  » Submit. »

2.3. Log in to your ORIAS account

Check your inbox for an email from ORIAS (no-reply-orias@orias.fr). The email contains your username and a temporary password.

  1. Return to the ORIAS website
  2. Click  » Sign In  » /  » Login »
  3. Enter your username and the temporary password provided in your email
  4. Follow the instructions on your screen to change your password, then save it

After saving your new password, you will be redirected to your ORIAS account page

3. Submit a new registration request

3.1. Register Your Business

  1. Click  » New Registration  » to begin the registration process; a form will appear
  2. Select IOB Activity
  3. Next, select  » Non-Exclusive Intermediary for Banking Transactions and Payment Services (MOBSP)« 
  4. Click Submit

3.2. Please provide additional information

  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
    • If a different registration type is specified, use your browser’s Back button to return to the previous page and try again.
  2. For the first question, select the answer:  » I declare that I am not entrusted with any funds. »
  3. For the second question, select the answer:  » Minor, » indicating to ORIAS that financial services are not your company’s primary business activity
  4. For the third question, select the answer: Yes, indicating to ORIAS that your company offers credit (or other banking and payment services) solely as a secondary service
  5. Click  » Go to the ‘Supporting documents’ step »

3.3. Please provide your supporting documents

  1. Submit your Commercial register
  2. Submit your authorization form, which is the authorization certificate from Step 1.1
  3. Submit your Professional Competency for « you » (Level I IOBSP), which serves as your proof of professional competence for Step 1.2.
  4. Click « Go to the next step« 

3.4. Pay your registration fee

The final step is to pay your registration fee.

  1. Please note that you are paying for registration as a non-exclusive Intermediary for banking transactions and payment services. Your registration cannot be finalized without paying the fee.
  2. Choose to pay with your credit card, or click  » Select another payment method  » to pay by Bank transfer or check.
  3. After you’ve paid, click  » Download Invoice  » to download your receipt
  4. Click  » Complete Registration  » to finalize your registration
  5. You will receive your ORIAS registration number by email, confirming that your registration is complete. Please email this number to CentralPay’s customer service department.

4. CentralPay registers you as a MOBSP

After you email your Orias registration number to CentralPay, CentralPay will register you as a non-exclusive Intermediary for banking operations and payment services (MOBSP).

5. ORIAS reviews your application

ORIAS will review your documents and application to ensure that your file is fully compliant. ORIAS will notify you of its final decision via email. If your application is approved, the email will also include the date on which your MOBSP status will take effect.

Please feel free to contact ORIAS by phone (09.69.32.59.73) or email (contact@orias.fr) if you do not receive the information regarding your application in a timely manner.

6. Update your legal notices

After receiving approval from ORIAS and becoming a MOBSP, be sure to update your legal notices. Add something similar to the following example to the footer of your website, to your legal notices page, and anywhere else you distribute or sell payment services.

[Company Name], a company registered with the Trade and Companies Register (RCS) of [City of Registration] under number [RCS number], and listed in the Single Register of Insurance Intermediaries, Banking and Finance under registration number [ORIAS registration number] as a non-exclusive Intermediary for banking transactions and payment services.

Intermediary Merchant

Payment Service Provider Agent (PSP Agent) or Electronic Money Distributor (EMD)

Certain projects require a specific regulatory framework that allows intermediaries to act in the name and on behalf of CentralPay, an institution authorized and supervised by the ACPR. Two main legal statuses can be utilized in France:

  • Payment Service Provider (PSP) Agent, for projects requiring active management of payment flows (collections, transfers, Payouts), strictly within the scope of a mandate and under the responsibility of CentralPay
  • The Electronic Money Distributor (EMD), for projects based on stored-value/Electronic money mechanisms (C2C platforms, prepaid cards, closed networks, etc.), under a distribution agreement

These models can provide the intermediary with a high degree of operational autonomy, but they come with strict regulatory constraints and ongoing supervision, under the responsibility of CentralPay.

1. Payment Service Provider Agent (PSP Agent)

1.1. Typical Use Cases

  • B2B platforms with complex financial flows
  • Financial or cash management tools for third parties
  • SaaS solutions that integrate payment collection and the distribution of funds to beneficiaries

1.2. Role of the Agent

The PSP Agent acts as CentralPay’s regulatory representative for the provision of payment services, in the name and on behalf of CentralPay, within the limits of the configured mandate and technical rights.

Features (depending on the scope of the contract and user permissions):

  • Business development and promotion of CentralPay services to end users (the “Participants”)
  • Assisting participants in opening CentralPay accounts (via the CentralPay process and/or the agent-guided process, depending on the selected model)
  • Opening, on behalf of the Agent, special accounts dedicated to segregating cash flows (e.g., a Collection Account and a Commission Account), without the Agent becoming the owner of the Participants’ funds
  • Submission to CentralPay of the requests/instructions necessary for the proper performance of services (e.g., allocation of funds, payout requests, refund requests), with CentralPay acting as the sole executor
  • First-level (L1) support management and operational processing provided as an outsourced service, with escalation to CentralPay as needed

1.3. The 3 options in the Agent model (KYC/KYB delegation)

CentralPay’s Agent model provides for three levels of delegation regarding registration and KYC/KYB checks. Only one option may be applied at a time, and the selected level is formalized in a contract:

  • Option A – Basic Agent (no delegation of control): The Agent acts as a registered PSP Agent but without KYC/KYB delegation. The Agent is limited to establishing business connections and directs Participants to the processes and tools provided by CentralPay. The Agent is not authorized to collect supporting documents or perform any checks.
  • Option B – Collection Agent (delegation of administrative completeness verification): The Agent is authorized to compile the Participant’s administrative file on behalf of CentralPay. The Agent collects the documents and performs strictly formal checks for completeness (legibility, apparent validity, and consistency of the documents). The Agent does not conduct risk analysis, sanctions/PPE screening, or in-depth analysis; the decision for onboarding remains with CentralPay.
  • Option C – Delegated Compliance Officer (Level 1 delegation): This option is reserved for Agents with a dedicated compliance organization that has been expressly approved by CentralPay. The Agent may collect KYC/KYB documents, verify their completeness and consistency, and perform Level 1 due diligence that is exclusively formal and administrative in nature. The Agent may also participate in the handling of Level 1 alerts (collection, administrative assessment, and transmission) in accordance with strict procedures. CentralPay retains the final decision-making authority and may revoke this option at any time in the event of non-compliance.

1.4. CentralPay remains responsible

  • CentralPay remains fully responsible for the services provided to Participants
  • The Agent acts strictly within the scope of the mandate entrusted to him or her and in accordance with the technical authorizations that have been established
  • Every activity carried out through the platform is auditable, traceable, and documented

1.5. Regulatory Requirements

  • Signing an Agent Agreement and Related Documents
  • Official registration as an Agent in the ACPR registry (via CentralPay)
  • Assessment of the intermediary’s organizational capacity and enhanced requirements (compliance, security, confidentiality, business continuity, internal control)
  • Periodic reporting to CentralPay (business volume, incidents, service quality) and the option for document-based or on-site audits
  • Mandatory training for operational teams, based on the scope of delegation

2. Electronic Money Distributor (EMD)

2.1. Typical Use Cases

  • Peer-to-Peer (C2C) Sales Platforms
  • Prepaid card or gift card networks
  • Stored-Value Loyalty Programs

2.2. Role of the EMD

The EMD acts on behalf of CentralPay in the provision and operational management of Electronic money, within the limits set forth in the distribution agreement and the rules established by CentralPay.

Features:

  • Connecting CentralPay with end users (the “Sub-merchants” / Electronic money users)
  • Transmission of payment instructions (amount, Beneficiary, fee) to CentralPay, with CentralPay acting as the sole issuer and executor
  • Viewing and tracking transactions through a dedicated monitoring system (e.g., consolidated view/centralized account based on the model), without the right to dispose of the funds
  • Transmission of requests/instructions enabling the transfer of Electronic money between users within a defined framework (closed network, contractual rules), under CentralPay’s control
  • Submission of requests for refund of electronic money at the user’s request, in accordance with applicable rules
  • Maintenance of a Commission Account to collect the fees specified in its Terms of Service

2.3. Functional Limitations

  • The EMD never holds the funds: it acts as an intermediary and cannot retain, store, or use the funds collected
  • It is not permitted to create or issue Electronic money on its own
  • It may not offer payment services that are not explicitly authorized under the contractual framework established by CentralPay
  • He may not subcontract his business activities unless expressly authorized by CentralPay

2.4. Regulatory Requirements

  • Signing of a Distribution Agreement with CentralPay
  • Declaration / compliance procedures carried out on the initiative and under the responsibility of CentralPay, in accordance with applicable regulations
  • Organizational Compliance: Internal Security Measures, Confidentiality, Incident Management, Business Continuity
  • Continuous monitoring by CentralPay, including:
    • Monitoring API Usage / Permissions
    • Regular reports on business activity
    • Mandatory Training for EMD Teams
    • Validation of the Terms of Service provided to users

PSP Agent Declaration (ACPR)

Role of the ACPR

The ACPR (Prudential Supervision and Resolution Authority), which operates under the auspices of the Banque de France, maintains a registry of regulated service providers and their agents. Under the PSP Agent model, CentralPay (an authorized institution) prepares and files the Agent’s notification/registration application and serves as the sole point of contact for the ACPR.

Prospective agents cannot submit applications directly to the ACPR: all communications are managed by CentralPay, with the agent’s assistance (submitting documents, answering questions, and providing organizational details).

Steps for Registering an Agent

StepDescription
1. Scope Definition & Pre-qualificationAnalysis of the model, functional scope, and responsibilities; legal validation and compliance on the CentralPay side
2. Compiling the FileCollection of company and executive documents, organizational information (processes, controls, security), Terms of Use for Agents and Participants, and business forecasts
3. Deposits / ACPR ExchangesDeposit processed by CentralPay; responses to additional requests managed by CentralPay with the assistance of the Agent
4. Registration & ActivationOnce the entry has been made in the public registry, CentralPay can activate the Agent in production (until then, the activity remains suspended)

1. Responsibilities of the Agent

Asa PSP Agent, the Agent acts in the name and on behalf of CentralPay within the scope defined in the contract. CentralPay remains fully responsible for the provision of payment services and regulatory compliance; however, the Agent must strictly adhere to the operational procedures and requirements established by CentralPay, particularly with regard to AML/CFT and fraud prevention.

The Agent is responsible, in particular, for:

  • An understanding of the activities of its merchants/participants and the economic soundness of the transactions initiated through its model
  • Implementation of the expected operational procedures (internal processes, controls, traceability, incident management) and compliance with CentralPay guidelines
  • Fraud prevention (detection, escalation, cooperation) and compliance with due diligence obligations within the assigned scope
  • Cooperation with CentralPay in response to requests for information (inspections, audits, ACPR inquiries), and the prompt submission of requested documents

The agent must sign:

  • A PSP Agent Agreement with CentralPay (mandate / outsourcing / supervision / payment flows)
  • The CCSP (Payment Services Framework Agreement) applicable to the Agent in its capacity as a business customer of CentralPay (platform access, subscribed services)
  • Agent Terms of Service (or equivalent documentation) governing the Agent’s relationship with its Participants, including the necessary details regarding payment plans, allocation, Release dates, and any requests for Payouts

Depending on the scope of authority (and the applicable appendices), certain functions may be delegated to the Agent (e.g., KYC/KYB data collection and formal checks). CentralPay retains sole decision-making authority regarding onboarding, the opening and maintenance of accounts, and regulatory decisions.

2. Become a CentralPay Partner

The process for registering an Agent depends on the completeness of the application, the level of operational delegation, and communication with the ACPR. In practice, it generally takes several weeks and may be extended if additional documents are requested.

2.1. Summary of the Steps

StepDetails
1. Understanding the Model– Defining the scope and responsibilities
– Description of workflows and use cases
– Approval by CentralPay’s Legal and Compliance teams
2. Commercial Offer– Presentation by CentralPay
– Alignment with the scope (technical, operational, compliance)
3. Formalization in a Contract– Signing of the Agent Agreement
– Signing/acceptance of the CCSP applicable to the Agent
4. Testing & Integration– Sandbox access
– Technical integration & acceptance testing
– Verification of user flows (onboarding/consent/disclosures)
5. ACPR Directive– Collection of regulatory documents
– Preparation and submission of the application to the ACPR by CentralPay
– Handling of questions and requests for additional information
6. Deployment– Deployment to production after registration
– Testing in the Sandbox / supervised production

2.2. Documents to Submit to CentralPay

Phase 1 – Preliminary Compilation of the Case File

  • Agent Terms of Service / Contractual Documentation for Participants (program details, consents, “agent” information, breakdown/commission, Release dates, refund terms)
  • Definition of Regulated Activities, Related Services, and Business Model
  • Organizational Chart (including a breakdown of staff by department) and descriptions of key roles
  • Shareholder Structure / Corporate Governance
  • 3-Year Forecast Transactions Entrusted to CentralPay (volumes, amounts, types)
  • Projected number of enrollments over 3 years
  • Scenario involving the reuse of existing KYC data (migration), if applicable

Phase 2 – Filing with the regulator

  • Signing of the Agent Agreement (prior to submitting the application)
  • CentralPay collects and deposits the following items (indicative list):
    • A Commercial register extract less than 3 months old for the company and, if applicable, for its parent or controlling companies
    • Signed, up-to-date Articles of association
    • Color copies of executives’ identity documents
    • Resumes of executives, dated and signed
    • Criminal Records of Executives (if requested)
    • Declarations of No Criminal Convictions by Executives
    • Breakdown of Share Ownership / Shareholder Structure
    • Commercial register for shareholder corporations (if applicable) + group organizational chart (if applicable)
    • Recent General Meeting Minutes (merger, loss of more than 50% of the capital, change in management, etc.)
    • Register of Beneficial Owners (if requested)

The ACPR may also request the following:

  • Recent Balance Sheets and Income Statements
  • Current or prior year financial statements
  • Any document deemed useful by the regulator

2.3. Processing Times

  • Processing time by CentralPay: typically ~2 weeks from receipt of a complete application
  • ACPR processing time: varies; can take up to ~2 months, with initial questions typically received within 30 days

2.4. End of Investigation

  • The Agent may begin the activity only after it has been effectively registered (published in the public registry)
  • Prior to registration, CentralPay does not activate the Agent in production and may keep the Agent’s accounts blocked (IN/OUT)
  • The Agent is listed in public records with a registration number or identifier that may need to be included in certain communications or disclosures.

2.5. Special Feature – Telecom Agents for Value-Added Services (premium-rate numbers)

  • Requirement to Provide a Summary of the Minutes by Operator
  • Submission of detailed breakdown of receipts (breakdown) to CentralPay
  • CentralPay implements additional controls to ensure that Merchants/Participants are properly credited

3. Processing Agent Workflows

This section defines the rules governing the processing and control of financial flows in an Agent model. It specifies the responsibilities, the account structure, and the additional controls implemented to meet legal and prudential requirements.

3.1. Responsibility of the Institution

In accordance with the Monetary and Financial Code (CMF), the Agent acts in the name and on behalf of CentralPay. CentralPay remains fully responsible for compliance with regulatory obligations, particularly with regard to anti-money laundering and counter-terrorism financing (AML/CTF), security, and the protection of funds.

CentralPay has implemented an internal control system that covers the entire transaction cycle, including transactions processed through its agents (supervision, auditability, traceability).

3.2. Employee Operating Accounts

To facilitate the segregation of funds, CentralPay provides (in its records):

  • Collection Account: a transit account used to receive funds related to transactions initiated through the Agent model, and to facilitate their allocation or distribution to Participants’ accounts
  • Commission Account: intended to receive the Agent’s compensation (commissions) and to pay fees owed to CentralPay
  • Agent Payment Account (optional): intended for the Agent’s day-to-day transactions on its own account (funding, payment of SaaS invoices, etc.), separate from third-party transactions and commissions

3.3. Processing Transactions

When an Agent initiates a transaction on behalf of one or more Participants:

  1. The Agent provides CentralPay with the information needed for allocation (Participants’ shares, Agent’s commission, reference numbers), either directly as part of the transaction or, at the latest, by the end of the day via batch processing when objectively necessary.
  2. CentralPay then carries out, under its own responsibility, the allocation and breakdown processes and, where applicable, the necessary transactions (including the transfer of commissions to the Commission Account), in accordance with the contractual framework and regulatory controls.

The Collection Account must remain a transit account: the Agent must not passively hold third-party funds beyond the time strictly necessary for processing (no “floating cash”).

Payout procedures (Payout) are managed by CentralPay; the Collection Account is not intended to serve as a “general-purpose” payout account.

3.4. Release dates and estimated amounts

How It Works

Depending on the contract model, the Agent may submit or configure (as an intermediary authorized by the Participant) a release date (API endpoint: EscrowDate) corresponding to a verifiable contractual event (e.g., delivery, shipment, or completion of services). This date does not trigger any automatic financial consequences: CentralPay retains sole discretion over the release of funds (approval, Refusal, postponement, or other measures).

Until the release date:

  • The funds remain protected and unavailable (neither accessible to the Agent nor usable by the Participant)
  • The Participant can view the transaction asan upcoming transaction or a projected amount, with the availability date displayed, without it being credited to the Available balance

Compliance Requirements

The use of release dates is permitted only if:

  • Clear information: The Agent must explain to its Participants how the Release date works (principles, timeframes, exceptions).
  • Transparent display: The Participant interface must show the transaction date, the expected availability date, and a status of “unavailable before this date.”
  • Provisions in the Agent Terms of Use: The Terms of Use signed by the Participants must specify:
    • The release date corresponds to the contractual date on which the funds become available.
    • That the Participant may not use these funds before that date.
    • CentralPay may refuse, delay, suspend, or restrict the provision of services in accordance with its regulatory obligations, risk policy, and payment network rules.
  • Exception Handling: In the event of a cancellation, refund, unpaid balance, or dispute:
    • If the source transaction is reversed or subject to a refund, the funds will not be made available.
    • In the event of an unpaid transaction (e.g., a credit card chargeback) or a risk, CentralPay may withhold or adjust pending amounts or offset them against future payments.
    • The release date may be postponed (due to a Dispute or incident); the Participant must be notified via their interface or notifications.

This mechanism is neither an escrow arrangement under civil law nor a fiduciary custody service: it is a deferred release of funds under the exclusive control of CentralPay.

3.5. Outgoing Payout Management

How It Works

CentralPay can provide Participants (and, depending on their authorizations, the Agent acting as an authorized intermediary) with various methods for managing Payouts:

  • Automated Payouts (setting up rules/schedules, when provided for in the contract)
  • One-time Payouts (request via portal/API depending on granted permissions)

Compliance Requirements

When the Agent is authorized to submit payout requests on behalf of its Participants, it must obtain their consent and clearly describe the process in the Agent Terms of Service. CentralPay remains solely responsible for the execution of such requests and may face refusals, suspend them, or regulate them in accordance with its obligations.

Key points

The system described guarantees:
- Strict separation of third-party funds, commissions, and Own accounts
- The Agent has no right to dispose of third-party funds
- Complete traceability of transactions (auditability)
- Active oversight by CentralPay
- Compliance with CMF requirements and supervisory expectations

Compliance with this policy is mandatory. Any irregularities (fraud, incidents, inconsistencies in allocation, or failure to follow procedures) must be reported immediately to your CentralPay Account Manager.

ME Distributor Declaration (ACPR)

Electronic money issuers such as CentralPay may authorize Electronic Money Distributors (EMDs) to collect funds and facilitate transactions for the purchase and refund of electronic money within a defined network of Sub-merchants.

The registration process for an Electronic Money Distributor consists of two steps:

  • Preparation of the tax return: handled by CentralPay with the assistance of its future EMD
  • Processing of the application by the ACPR: handled by CentralPay. It does not require any specific approval from the ACPR.

1. Responsibilities of the EMD Intermediary

CentralPay handles all complex processes or those requiring specialized expertise. However, you remain responsible for ensuring a high standard of compliance with AML/CFT (Anti-Money Laundering and Counter-Terrorist Financing) rules. As such, you must provide CentralPay with assurance regarding the conditions under which transactions processed through you are carried out, including:

  • The Economic Reality of the Transaction
  • The Fight Against Fraud

Regulated institutions that use distributors remain responsible for the transactions carried out by those distributors. A clear legal framework has therefore been established.

To qualify as an Electronic money Distributor, the following requirements must be met:

  • The execution of an Electronic money Distribution Framework Agreement that defines the relationship between the parties
  • Terms of Use for Electronic Money

In the event that an EMD internalizes certain functions assigned to CentralPay as part of its regulatory obligations, a contract for Outsourced Essential Services must be signed. This is the case, for example, if the agent handles KYC management in-house or develops management interfaces that would prevent CentralPay from providing the service without the assistance of the PSEE.

2. Become an EMD Intermediary

Becoming a CentralPay distributor involves following a series of steps that take several weeks to complete.

Here is a guide to help you better understand the issues related to the acceptance and subsequent processing of distributors’ filing documents.

2.1. Summary of the Steps

  1. Understanding the Model
    • Explanation of the services provided by the intermediary
    • Defining Its Business Model
    • Approval by CentralPay’s Risk & Compliance Department
  2. Sales Offer
    • Overview
  3. Validation
    • Approval of the intermediary by CentralPay’s Risk & Compliance Department
    • Approval of the commercial proposal and pricing terms by the intermediary
  4. Test & Intégration
    • Setting Up the Sandbox
    • Project Kickoff Meeting with the Technical Team
    • Technical Integration Phase
  5. Review of the ACPR File
    • Gathering the information needed to compile the file
    • Preparing the Application
    • Overview of the Case
  6. Go-Live
    • Acceptance Testing
    • Go-Live

2.2. Documents to Submit to CentralPay

Coming Soon

Open a CentralPay account

Onboarding Path

CentralPay offers several ways of onboarding, depending on your situation:

  • You are a standard merchant, partner, or intermediary working directly with CentralPay
  • You are a Participant Merchant through an Intermediary, or a standard merchant affiliated with a Technical Partner using the CentralPay solution

This guide outlines the various steps based on your profile. Some steps may be adapted or simplified depending on the specifics of your Integration process.

1. Online Merchants

The onboarding process consists of six main steps.

1.1. Project Eligibility

Our sales teams will work with you to analyze your project:

  • Proposed payment channels (web, mobile, Point of Sale (POS), recurring, etc.)
  • Preferred payment methods (credit card, Bank transfer, SEPA, Pay By Bank, etc.)
  • Integration Methods (API, Portal, Connector)
  • Profile of Your End Customers (B2B, B2C, subscriptions, etc.)
  • Estimated volume (frequency and amounts)

1.2. Preliminary Compliance Analysis of Your Project

Based on the information provided, our compliance department conducts a preliminary regulatory analysis aimed at:

  • Check whether your business is compatible with our regulatory framework
  • Identify potential areas of concern (sensitive sectors, complex flows, etc.)
  • Specify any warranties or special conditions in advance

1.3. Signing of the Master Agreement

Once this preliminary analysis has been approved, you will be asked to sign the Payment Services Framework Agreement or Electronic money agreement.

  • View the Payment Services Framework Agreement
  • A legal representative may designate an intermediary to sign on their behalf (sample delegation form available upon request)

1.4. Launch of the Integration

After signing the contract:

  • You will receive your login credentials for the test environment
  • You can access the CentralPay technical documentation

If you are receiving personalized support, an onboarding meeting will be scheduled to set up your initial settings (notifications, Payouts, user permissions, etc.).

1.5. Creating a CentralPay Merchant Profile

The legal representative receives a secure registration link to create the profile:

  • It supplements the legal information
  • He accepts the Terms and Conditions of Use
  • The comprehensive compliance analysis is then initiated

This analysis may lead to:

  • Requests for additional documents (KYC/KYB, contracts, supporting documents, etc.)
  • A refusal to open the account if the regulatory criteria are not met
  • Profile validation, leading to its activation

1.6. Go-Live

Once all steps have been validated, including Integration and any initial invoices:

  • A go-live date has been agreed upon
  • Your profile has been unlocked
  • You can cash out your first transactions

2. Merchants affiliated with a Technical Partner

If you are a merchant integrated through a CentralPay Technical Partner or Intermediary Merchant, the process is simplified.

You’ll go directly to Step 5: Creating a CentralPay Merchant Profile.

2.1. Single Step: Profile Creation and Regulatory Approval

  • You will receive a registration link sent by your partner or directly from CentralPay.
  • This link allows you to:
    • Please complete the information about your organization
    • Describe your business in detail, the types of end customers you serve, and the estimated volume of your operations
    • Accept the Terms and Conditions of Use and sign the framework agreement

The technical aspects (integration, user flow, payment methods) have already been defined as part of the agreement signed with the Technical Partner or Intermediary.

CentralPay’s comprehensive compliance review remains mandatory before the profile can be approved.

Principles of Reserve

The reserve represents the funds held in your CentralPay reserve account to cover R-transactions (rejections, refusals, returns, refunds, chargebacks, and unpaid amounts) when your Payment Account lacks sufficient funds. These settings are determined based on your account’s financial risk profile and are updated based on an analysis of your R-transactions over a sufficient period of time. Recurring transactions via SEPA Direct Debit and credit card are particularly prone to the risk of R-transactions.

CentralPay offers three types of protection guarantees that may apply to Merchants, depending on the nature of their contract:

1. Collateral

It represents the fixed amount paid at the start of the relationship, intended to cover the credit risk in the event that the Merchant is unable to meet its repayment obligations to its customers.

Le détail du collatéral est visible depuis le Portail Marchand : Administration Versements Somme des cautions

2. The account footer

In the absence of collateral, a fixed amount may be deducted directly from transactions to guarantee refunds to customers if necessary. The account balance must therefore exceed the account threshold to authorize Payouts (payout).

Le détail du pied de compte est visible depuis le Portail Marchand : Administration Versements Seuil fixe

3. The Rolling reserve

Depending on the industry and the account settlement processes, a rolling reserve may be automatically established. This is an additional safeguard that sets aside a certain percentage of your collection volume in a reserve account to enable automatic refunds in the event of a Chargeback, fraud, or to cover potential operational fees if your Payment Account is insolvent. This amount belongs to the Merchant’s cash flow and is held for a specified number of days before being released (generally between 90 and 180 days).

For example, the variable threshold for the Rolling reserve is 5% of the 90-day collection volume. The daily calculation of the reserve amount is as follows: total amount of transactions collected over the past 90 days * 5%

Le détail de la réserve glissante est visible depuis le Portail Marchand : Administration Versements Seuil variable

Terms and Conditions of Use

The use of CentralPay services is governed by several contractual documents that each account owner must review and accept before activating their account.

👉 View the latest versions of the CentralPay Terms and Conditions currently in effect

1. Two Types of Applicable Terms of Use

CentralPay offers two types of accounts, each subject to separate terms and conditions depending on the service subscribed to:

Account typeApplicable Terms and Conditions
Payment AccountGeneral Terms and Conditions for Payment Services
Electronic Money AccountGeneral Terms and Conditions for Electronic Money Services

Obligation to Accept:

These terms and conditions must be read and accepted electronically by the account owner of each account, whether the account is opened directly by a Merchant or through a CentralPay partner.

2. Master Agreement for Collections on Own Account

If an account is used to collect funds on its own account (standard Merchant model), CentralPay also provides a dedicated master agreement template:

  • This agreement sets forth the rights and obligations related to the use of the account for the collection of payments for commercial transactions,
  • It is signed electronically by the legal representative or by an authorized person (by delegation of authority).

👉 View the latest versions of the CentralPay Terms and Conditions currently in effect

Using the CentralPay APIs

The CentralPay APIs allow you to securely interact with our platform to create accounts, initiate payments, or automate business operations.

Our APIs are based on the HTTP(S) protocol and use a JSON response format. Authentication is required for every request, unless otherwise specified.

1. Available APIs

CentralPay provides two main APIs:

APIDescriptionAccess
Core Payment APIManages all functions related to payment transactions (initiation, transfer, refund, etc.)All merchants
API OnboardingAllows users to request the creation of Payment Accounts or Electronic Money Accounts (Enrollment, Wallets, etc.)Reserved for Partner Merchants and Intermediary Merchants (Agents, EMD).

2. Environment URLs

Two environments are available, depending on your stage of Integration:

ComponentTest environmentPRODUCTION Environment
Core Payment APIhttps://test-api.centralpay.net/https://api.centralpay.net/
API Onboardinghttps://test-onboarding-api.centralpay.net/https://onboarding-api.centralpay.net/

The login credentials are different for the test environment and the production environment.

You can also access your Merchant Portal to view information or configure settings:

ComponentTest environmentPRODUCTION Environment
Merchant Portalhttps://test-backoffice.centralpay.net/https://backoffice.centralpay.net/

3. API Authentication

The CentralPay API uses HTTP Basic authentication, which requires two mandatory elements to be included in every call:

  • API ID (login)
  • API Password

All requests must be sent via HTTPS. These credentials are different for the Test environment and production environment.

To retrieve your API credentials, follow these steps:

3.1. Step 1 – Access the Merchant Portal

  • For the production environment: https://backoffice.centralpay.net/
  • For the test environment: https://test-backoffice.centralpay.net/

3.2. Step 2 – Open the technical section

From the navigation menu: Administration > My Account > Technical

  • Direct link to the production version: https://backoffice.centralpay.net/admin/actor/account#technical_tab
  • Direct link (in testing): https://test-backoffice.centralpay.net/admin/actor/account#technical_tab

3.3. Step 3 – Retrievethe API ID (login)

  1. On the  » Technical » tab, locate the « API ID » field
  2. Click on the ID shown to view the details
  3. Copy the value shown in the  » Login » field

⚠️ This login must be included in the Authorization header of your requests (in Base64 format along with the password; see below).

3.4. Step 4 – Generate an API Password

  1. On the same screen, click the  » Edit » button
  2. Then click  » Generate a password« 
  3. Copy the generated password immediately; please note that it is displayed only once.
  4. Finally, click  » Update  » to confirm the new password

If you forget your password, you’ll need to repeat this process to generate a new one.

ℹ️ Best Practices:
- The username and password can be revoked or regenerated at any time through the Merchant Portal.
- Never share these credentials in plain text.
- Store the password in a secure password manager after it has been generated.

4. Merchant Public Key (MerchantPublicKey)

Some services, such as cardToken, do not require a username or password but only a Merchant public key (MerchantPublicKey) to authenticate the request.

Where to find it:

  • Log in to the Production or Test Merchant Portal
  • Go to: Administration >, Technical
  • Copy the key into the  » Merchant Public Key » section

5. HTTP Methods and MIME Types

Our APIs follow the REST style and support the following HTTP methods:

MethodUsage
POSTCreating or Updating an Object
GETSearching for or Viewing an Item
DELETEDeleting an Object

The following MIME types are used:

  • application/x-www-form-urlencoded
  • multipart/form-data

The Content-Type must always be specified in the HTTP headers.

6. HTTP Headers to Use

Each API call must include a number of correctly populated HTTP headers:

HTTP HeaderDescription
AuthorizationHTTP Basic Authentication Using the API Username and Password
Content-TypeRequired for all requests. Must be: application/x-www-form-urlencoded or multipart/form-data
User-AgentHighly recommended; useful for plotting integrals
Idempotence-Key (optional but recommended)Prevents duplicates when the same request is resubmitted

7. Idempotence: Ensuring Safe Reissuance

The ` Idempotence-Key ` header ensures that the same request sent multiple times with the same key will be processed only once.

This is particularly useful in the event of a network error or if you are unsure whether a call was successful.

The value of the ` Idempotence-Key ` header is an SHA1 hash of the request’s main business fields. It must be unique for each functional combination of data. Example for a card transaction:

ℹ️ Idempotence-Key = sha1(card[number] + card[cvc] + card[expirationMonth] + card[expirationYear] + card[check] + merchantPublicKey)

The key  » Idempotence-Key  » is valid for up to 24 hours on our servers

8. HTTP Responses

Each response returned by the API contains useful traceability information in the headers:

HTTP HeaderDescription
Request-IdA unique identifier assigned to each call. This can be provided to CentralPay support in the event of an investigation or technical dispute.

The JSON response body depends, of course, on the resource being called (payment, transfer, onboarding, etc.), but the ` Request-Id ` header is always included.

9. Registering Your Domains for CustomForm Services

For certain services, such as cardToken, that rely on embedded forms (CustomForm), you must first declare the web domains that host these forms.

Without this declaration, any attempt to access the relevant services from an unauthorized domain will result in a 403 (Forbidden) error.

  1. Log in to the Merchant Portal:
    • Production
    • Test
  2. Go to:
    • Administration > My Account > Technical
  3. Click  » Edit« 
  4. In the  » Allowed Hosts for Custom Forms » field, enter the URL or domains to allow (e.g., https://www.votre-site.com)
  5. Save the changes

Once this step is complete, services such as cardToken can be accessed from the registered domains, in accordance with the security rules imposed by CentralPay.

Merchant Portal

The Merchant Portal is a web interface connected to CentralPay’s APIs. It allows you to view activity and manage your CentralPay Merchant Profile. Partner and Intermediary merchants can also view the activity of their standard and Participant merchants’ profiles.

Access:

Recette Merchant Portal
Production Merchant Portal

1. Features

The Merchant Portal allows you to:

  • To view the accounting transactions for the account
  • To view card payments (« Card Transactions »)
  • View SEPA bank transfer payments (« sctTransaction »)
  • To view SEPA Direct Debit payments (« sddTransaction »)
  • To create and view payment requests (« paymentRequest »)
  • To create and configure Customer Profiles
  • To create and configure Point of Sale (POS)
  • Configure Smart Push notifications (templates, scenarios, etc.)
  • To set up and manage payout settings
  • To generate exports and download monthly financial reports
  • For Partner Merchants and Intermediary Merchants only:
    • To create and view enrollment requests (« merchant-enrollment »)
    • View the activity of standard Merchant Profiles or associated Participants Merchants
ℹ️ Accounts with "Basic" privileges (Participant Merchants through CentralPay intermediaries) can only view transactions in which they are the Beneficiaries (transfer) and manage their Payout settings (payout).

2. User Profiles on the Portal

They represent individuals who have access to one or more CentralPay accounts as well as to all or some of the Merchant Portal’s services.

2.1. Management of « Legal » and « Natural » User Profiles

When creating a CentralPay Merchant Profile, the person responsible for completing the registration (an executive or an individual with delegated authority) is assigned a User Profile known as “Legal.” This person thus has full administrator rights for the account, as well as legal authority to configure the account’s most sensitive settings:

  • Payment Account Settings:
    • Change to the Outgoing IBAN (Payout)
    • Change in the Terms for Bank Account Payouts
    • Updating Corporate Documents
  • User Settings:
    • Creating New « Legal » Users
    • Coming Soon

Once the account has been created, you can create as many User Profiles as needed by entering their last name, first name, email address, and user role (which defines the permissions they will have on the account). The User Profiles created in this way are named « Natural. »

ℹ️ If you have multiple CentralPay accounts and your teams need access to them, create their User Profiles in one of those accounts, then ask CentralPay to assign those profiles to your other accounts. This will give them a single, centralized point of access for all those accounts. 

Access:

Recette Merchant Portal – BO User Profile Management
Recette Merchant Portal – BO User Profile Management

2.2. Managing Roles and Permissions for « Natural » User Profiles

The permissions for « Natural » user profiles are governed by their user role. The role includes a list of permissions (read-only, create, edit, delete) that can be configured by service (transactions, payment requests, acceptance rules, etc.). These permissions may vary depending on the selected services.

Users with the necessary permissions can create roles for each team in their company; however, predefined roles are available out of the box:

  • Standard Admin: Full access to all Merchant Portal features (except for admin features). Please note that this role includes access to sensitive services such as acceptance rules, whitelists, blacklists, creating Merchant Portal users, creating Merchant Portal user roles, and creating and managing API users…
  • Standard Read-Only: Coming soon
  • Coming Soon

Contact CentralPay customer service if you need help creating custom roles.

Some important details regarding the roles:

  • Roles can be combined; a user can therefore be assigned multiple roles
  • Role permissions are inheritable; therefore, a user with the permission to create other User Profiles can only assign a role that is the same as or lower than their own.

Access:

Recette Merchant Portal – BO User Role Management
Production Merchant Portal – BO User Role Management

2.3. Managing POS Categories

If you need to restrict user access to certain POS locations, you can create categories, assign them to your POS locations, and then assign them to your User Profiles.

Example: A user with permissions to create payment requests can only do so for the POS locations in their category. They can also view only the payment requests issued through the POS locations in their category. 

Contact CentralPay customer service if you need help creating custom POS categories.

Access:

Recette Merchant Portal – Point of Sale (POS) Category Management
Production Merchant Portal – Point of Sale (POS) Category Management

3. List of transaction types visible on the Merchant Portal

Object TypeValueFunction
AUTHORIZATIONFlow RateAuthorization to place a hold on a credit card balance
TRANSACTIONCreditCard Transaction
TRANSACTION_CANCELFlow RateCard Transaction Cancellation
REFUNDCreditCard Transaction Refund
REFUND_CANCELFlow RateCancellation of a Card Transaction Refund
DISPUTEFlow RateUnpaid payment due to a Chargeback on a Card Transaction
DISPUTE_WONCreditCancellation of an Unpaid Credit Card Balance
TRANSFERFlow RateTransferring Funds Between CentralPay Accounts
TRANSFER_CANCELCreditCancellation of Pending Transfer
TRANSFER_REVERSALCreditConfirmed return of a transfer
PAYOUTFlow RateOutgoing bank transfer from the CentralPay account
PAYOUT_CANCELCreditCanceling an Outgoing Bank Transfer
PAYOUT_REVERSALCreditConfirmed Return of an Outgoing Bank Transfer
SCT_TRANSACTIONCreditIncoming Bank transfer
SCT_TRANSACTION_CANCELFlow RateCanceling an Incoming Bank Transfer Before It Arrives
SCT_TRANSACTION_REFUNDFlow RateCancellation of an Incoming Bank Transfer After It Has Been Received by the Merchant
SCT_TRANSACTION_REVERSALFlow RateCanceling an Incoming Bank Transfer After It Has Been Processed by CentralPay
CREDITFlow RateCard credit not associated with a transaction
CREDIT_CANCELCreditCanceling a credit card balance
SDD_TRANSACTIONCreditSEPA Direct Debit from an External Bank Account
SDD_TRANSACTION_CANCELFlow RateCanceling a direct debit from an external account before it is processed
SDD_TRANSACTION_REVERSALFlow RateRefund of a debit from an external account after it has been posted
DEPOSITCreditDepositing Funds into a CentralPay Account

Guide: My Accounts

The “My Accounts” section of the CentralPay Merchant Portal is where you can manage your accounts (those linked to your Merchant Profile): view account information, track completed and upcoming transactions, review historical balances, and download official monthly statements.

This section is particularly useful for accounting teams, the finance department, and those responsible for account reconciliation and month-end closings.

Go to the Merchant Portal > My Accounts

1. Available subentries

The  » My Accounts  » section consists of 4 sub-entries:

  • Overview
  • Transactions (including the  » Upcoming Transactions » tab)
  • Balance
  • Account Statements
ℹ️ Depending on your profile or settings, access to certain sub-entries may vary. The functional logic remains the same. 

2. Overview

The « Overview » sub-section allows you to quickly identify the selected account and get an immediate snapshot of its financial status.

2.1. Account Information

There you’ll find, among other things, key account information:

  • Account owner
  • IBAN and BIC
  • Currency
  • Account type
  • Account Name (a useful filter if multiple accounts are linked to your Merchant Profile)

2.2. Real-Time Balance

The « Real-Time Balance  » section provides an instant overview of the balance, with a distinction that is useful for day-to-day management:

  • Available Funds (Amount immediately available in your account)
  • Scheduled Transactions (Scheduled Payouts and R-Transactions Scheduled for a Future Date)
ℹ️ Depending on your settings, a "reserve account balance" may also be displayed.

2.3. Changes Over Time

A graph allows you to observe trends over a period of time by combining:

  • the balance
  • Upcoming Operations (Forecast)

3. Operations

The « Transactions » sub-tab displays a list of transactions affecting the account, with a « Upcoming Transactions  » tab for transactions that are expected but have not yet been processed. This is the main view for account reconciliation and generating exports.

3.1. Two Date Concepts You Should Know

To ensure reliable accounting data, the view generally distinguishes between:

  • Value date: the date on which a transaction is considered to have taken effect for financial and accounting purposes (widely used for reconciliation and financial closings).
  • Transaction Date: Date and time of the event (useful for investigating a timeline or cross-referencing a history).
ℹ️ Recommendation: For closing or reconciliation, it’s best to use the “value date.” For an investigation, the “transaction date” is often more meaningful. 

3.2. Search for a transaction

The search engine allows you to quickly find a transaction based on an accounting criterion, a reference, or an identifier.

Essential Filters

FilterWhat is it used for?Key Features / Best Practices
AccountLimit the display to transactions for a specific account.This is essential if you have multiple accounts linked to your profile. Start by selecting the account before applying other filters.
Period (value date)Filter transactions by a reference accounting period.Working basis for filtering and matching. Recommended: Always specify a time period before adding more specific criteria (reference, amount, etc.).
AmountSearch for one or more transactions that match a specific amount.Combine this with  » Account  » and  » Period  » to avoid getting too many results, especially if you have a large number of transactions for the same amount.
ReferenceFind a transaction using your custom business reference (order, invoice, internal ID, etc.).This is very useful if your teams use a shared ID between your system and CentralPay. It can also be used to group multiple lines related to the same event, depending on your settings.
Operation IDSearch for a transaction using its unique CentralPay ID.The most precise filter: Each Operation ID corresponds to a single row. Best used for support or audit investigations when the ID is known.
WordingSearch for a transaction by its descriptive title (keyword search).Useful when you don’t have an identifier (Operation ID, reference). Handy for finding an operation “based on what’s visible” in the list.
TypeIdentify a category of transactions (credit cards, Bank transfers, direct debits, refunds, Chargebacks, etc.).Ideal for analyzing a specific scope (e.g., only incoming bank transfers) or preparing a targeted export before reconciliation.

Advanced Filters

Advanced filters are useful for investigations (support/audit), analysis of payouts, and accounting exports. The table below summarizes their purpose and features.

FilterWhat is it used for?Key Features / Best Practices
NatureIdentify the accounting and functional origin of a transaction in order to quickly distinguish between Expense, Fund, and Management journal entries. Fees: Transactions related to costs and commissions debited or credited to the account, associated with the use of services (e.g., transaction fees, commissions, refunds, or fee adjustments).
Funds: Transactions corresponding to cash flows entering or leaving the account as part of its activity (e.g., customer transactions, Payouts, refunds).
Management: Internal CentralPay transactions carried out to adjust or secure the account balance (e.g., reserve transfers, cash pledges, technical adjustments, or adjusting entries).
Source IDGroup related transactions together (e.g., a Card Authorization, the associated transaction, and its Refund) in order to analyze the entire customer journey. The Source ID is an identifier used to group related transactions.
You can either:
• click “Filter by this Source ID” from a transaction in the results list;
• or enter the Source ID in the search bar to display all transactions associated with that identifier.
Payout NumberView all transactions related to a payout and analyze their breakdown (funds, fees, adjustments, etc.). This filter groups together all transactions associated with a single Payout, making it easier to understand the details and breakdown of that Payout.

How do I get the payout number?
• Search for thePayout transaction, open its details (action button), then click “View Payout transactions ”: the portal automatically applies the filter and displays the relevant transactions.
• Alternatively, you can derive it from the Payout reference: the last digits correspond to the payout number (e.g., PAYOUT-7usge67-153 → payout number = 153).

Please note: Details of a payout are available only when automatic payouts are enabled. The first automatic payout may not display the expected details (due to calculation method calibration).
Third Party
(Third Party / Third-Party Type / Third-Party ID / Third Country)
Filter transactions by the counterparty involved (other than you) to analyze cash flows by party.A third party is any legal entity or individual involved in the transaction other than you (for example, a customer, CentralPay, another Merchant, an external account, etc.).
You can filter by either:
• By a third party: name of the third party (free-form field);
• by third-party ID: the third party’s CentralPay identifier (e.g., CustomerID or MerchantID), for a precise search;
• By third-party type: one of the following four types: Customer, Merchant, CentralPay, External Account;
• By Third-Party Country: the country in which the third party is registered (for example, based on the region where their card was issued if they are a Customer), which can be particularly useful for certain reporting requirements (e.g., VAT filings).

3.3. Debits and Credits Summary

This page provides a summary of debits and credits for the filtered period (volume and amount), with the option to break them down by transaction type (expenses, funds, management). This overview allows you to quickly verify the consistency of a period before exporting the data.

3.4. Custom Accounting Exports

From the Operations view, you can generate exports in CSV, Excel, or JSON formats. The process is simple:

  • Set your search criteria (account, time period, useful filters).
  • Start the search, then click Export.
  • You will receive the file via email and can download it at any time from the Merchant Portal (under  » Export Files« ).
See the documentation: Accounting exports and account statements

4. Balance

The « Balance  » sub-entry provides a historical view of account balances, organized by value date (end-of-day view).

You’ll usually find the following there:

  • Closing Balance (End of Day)
  • Upcoming Transactions (Aggregate of Expected Movements)
  • Projected balance (balance reflecting future transactions)
ℹ️ Use case: to verify a “current” balance (for closing the books, internal control), or to compare an actual balance with a projected balance.

5. Account statements

The « Account Statements  » sub-section provides access to the official monthly statements for your CentralPay account. These documents serve as the primary records for accounting purposes and as official documentation.

At the beginning of each month, in addition to the invoice, an account statement is generated and made available in the secure area: My Accounts > Account Statements.

Two types of statements may be offered:

  • Detailed statement: Shows all transactions for the period.
  • Summary Statement: Groups transactions by day and by transaction type.
⚠️ If you have a large number of transactions, not all of them may appear on the detailed statement. In this case, we recommend exporting the data in CSV, Excel, or JSON format. 
See the documentation: Accounting exports and account statements

6. Common Actions

6.1. Monthly Closing

  1. Go to  » Transactions, » and filter by  » Account  » and  » Period » (value date).
  2. Review the summary of debits and credits and the breakdown by category (expenses, funds, and administration).
  3. Generate an accounting export (with columns tailored to your reconciliation process).
  4. Or download the monthly statement directly from  » Account Statements  » for your records and as an official document (1 statement per account).

6.2. Reconciliation of transactions related to a payout

  1. Go to  » My Accounts » >  » « Transactions, » and, if necessary, select the relevant account first.
  2. Locate the payout transaction (PAYOUT), open its details (action button), then click “View payout transactions ”: the Portal automatically applies the “Payout Number ” filter and displays only the transactions associated with that payout.
  3. Analyze the breakdown of the payout using the « Type » filter to distinguish between the  » Funds, »  » Fees, » and « Management  » (adjustments) lines, then verify that the total amount is correct.
  4. If necessary, generate an export (CSV / Excel / JSON) to archive the payout details or perform Integration with your reconciliation.
ℹ️ Alternative: The payout number can also be derived from the payout reference (e.g., PAYOUT-7usge67-153 → payout number = 153).
⚠️ Transaction details for a payout are available only when automatic payouts are enabled. The first automatic payout may not display the expected details (due to calculation method calibration). 

6.3. Justify a balance as of a specific date

  1. Go to  » Balance  » to find the closing balance as of the desired date.
  2. If necessary, supplement this with the monthly statement in « Account Statements. »

Customer Portal

The CentralPay Customer Portal is the interface for Customer Profiles (Customer). It allows your customers to:

  • View their payment history
  • To manage their ongoing transactions (updating their default payment method, canceling a subscription, etc.)
  • But also to get in touch with you if you have any questions about a transaction (contact form)

This portal is primarily used by customers to manage recurring payments. CentralPay’s compliance teams may require that the URL for this portal be included in the footer or the terms and conditions of your e-commerce site.

To log in, your customers have two options:

Either through the Customer Portal homepage, by entering the details of one of their payments made using your CentralPay Merchant Profile:

Recette Customer Portal
Production Customer Portal

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

  • Sandbox Customer Portal: https://test-customer.centralpay.net/customer/?uuid=[CustomerId]
  • LIVE Customer Portal: https://customer.centralpay.net/customer/?uuid=[CustomerId]

Onboarding Portal

The Onboarding Portal enables the creation of a CentralPay Merchant Profile by handling the steps involved in Onboarding: from creating the User Profile to signing the contract, including the collection of KYC/KYB information. It interfaces with CentralPay’s Onboarding API.

For Intermediary Merchants, this makes it easy to create Participant Merchant Profiles through a portal hosted by CentralPay, thereby avoiding the need for a full Integration of the Onboarding API.

To send a registration link to one of your future participants, you can use the Enrollment request service.

Access:

Recette Onboarding Portal
Production Onboarding Portal

Rates

Sales Offers

CentralPay offers fair and transparent pricing tailored to your transaction volume and business. Rates are on a sliding scale: the higher your transaction volume, the lower the per-transaction fees.

Fees are calculated based on the volume of transactions made in the previous month.

Two options, depending on your needs

Smart Collection

Get free access to the payment processing solution: no subscription—you only pay per transaction.

Easy Wallet

Access additional services (including account/wallet management) with a monthly subscription plan in addition to pay-as-you-go fees.

No additional costs associated with card networks

All CentralPay plans include the interchange and Card Scheme Fees charged by banks, so you won’t incur any additional costs.

👉 To get a quote based on your volume and contact our sales team:

View CentralPay’s public rates

Interchange Fees and Card Schemes

The interchange fee is the amount charged by the issuer of a payment card (your customer’s bank) to the acquirer (the Merchant’s bank).

Card Scheme Fees are the fees charged by card networks (Visa, Mastercard, CB) to operate the service.

Terms have been defined to describe the combination of these costs:

  • Interchange+
    Interchange fees + Card Scheme Fees
  • Interchange++
    Interchange fees + Card Scheme Fees + merchant service fees (CentralPay)

All of CentralPay’s commercial offerings include Interchange+ fees as well as our own service fees, so you won’t incur any additional bank fees when processing your transactions. Unless otherwise specified, a minimum processing fee of €0.15 is deducted from the IC++.

1. Interchange Fees and Card Scheme Fees (Distance Selling, E-commerce)

Cards issued in the European Economic Area (EEA)

Data updated on January 29, 2026
Type of account ownerCard typeMap RegionMap NetworkInterchange FeesCard Scheme FeesInterchange+ (total)
Personal CardsFlow RateEEECB0,200%0,025%0,225%
Personal CardsFlow RateEEEVISA0,200%0,231%0,431%
Personal CardsFlow RateEEEMastercard0,200%0,219%0,419%
Personal CardsCreditEEECB0,300%0,025%0,325%
Personal CardsCreditEEEVISA0,300%0,231%0,531%
Personal CardsCreditEEEMastercard0,300%0,219%0,519%
Business CardsAllEEECB0,900%0,025%0,925%
Business CardsAllEEEVISA1,450%0,070%1,520%
Business CardsAllEEEMastercard1,450%0,171%1,621%
Personal CardsAllEEEAMEX0,000%1,600%1,600%
Business CardsAllEEEAMEX0,000%1,600%1,600%

International cards issued outside the European Economic Area

Data updated on January 29, 2026
Type of account ownerCard typeMap RegionMap NetworkInterchange FeesCard Scheme FeesInterchange+ (total)
Personal CardsFlow RateInternationalVISA1,150%1,343%2,493%
Personal CardsFlow RateInternationalMastercard1,150%1,343%2,493%
Personal CardsCreditInternationalVISA1,500%1,499%2,999%
Personal CardsCreditInternationalMastercard1,500%0,951%2,451%
Business CardsAllInternationalVISA2,000%0,700%2,700%
Business CardsAllInternationalMastercard2,000%0,951%2,951%
Personal CardsAllInternationalAMEX0,000%2,400%2,400%
Business CardsAllInternationalAMEX0,000%2,400%2,400%

2. Interchange fees and Card Scheme Fees (contactless payments)

Cards issued in the European Economic Area (EEA)

Data updated on January 29, 2026
Type of account ownerCard typeMap RegionMap NetworkInterchange FeesCard Scheme FeesInterchange+ (total)
Personal CardsFlow RateEEECB0,200%0,025%0,225%
Personal CardsFlow RateEEEVISA0,200%0,231%0,431%
Personal CardsFlow RateEEEMastercard0,200%0,219%0,419%
Personal CardsCreditEEECB0,300%0,025%0,325%
Personal CardsCreditEEEVISA0,300%0,231%0,531%
Personal CardsCreditEEEMastercard0,300%0,219%0,519%
Business CardsAllEEECB0,900%0,025%0,925%
Business CardsAllEEEVISA1,450%0,070%1,520%
Business CardsAllEEEMastercard1,450%0,171%1,621%
Personal CardsAllEEEAMEX0,000%1,600%1,600%
Business CardsAllEEEAMEX0,000%1,600%1,600%

International cards issued outside the European Economic Area

Data updated on January 29, 2026
Type of account ownerCard typeMap RegionMap NetworkInterchange FeesCard Scheme FeesInterchange+ (total)
Personal CardsFlow RateInternationalVISA1,150%1,343%2,493%
Personal CardsFlow RateInternationalMastercard1,150%1,343%2,493%
Personal CardsCreditInternationalVISA1,500%1,499%2,999%
Personal CardsCreditInternationalMastercard1,500%0,951%2,451%
Business CardsAllInternationalVISA2,000%0,700%2,700%
Business CardsAllInternationalMastercard2,000%0,951%2,951%
Personal CardsAllInternationalAMEX0,000%2,400%2,400%
Business CardsAllInternationalAMEX0,000%2,400%2,400%

Support Packages

Support packages enable rapid setup, guided by our Integration Support (IS) and Customer Service (CS) teams. The support hours allow you to delegate certain account configuration tasks and request video calls: with the IS team for technical issues, and with the CS team for administrative or functional matters.

1. Smart Collection Integration Support

Support for integration, as neededFees (excluding tax)
Self-guided
, 2 hours of support from the Customer Service team
Includes
(Starter, Medium, and Major Company plans)
Standard Support
Technical analysis of the project by the Integration Services team
2 hours of support from the Integration Services team
2 hours of support from the Customer Service team
490 €
Advanced Support
Technical analysis and monitoring by a dedicated Integration Service Manager
3 hours of support from a dedicated Integration Service Manager
3 hours of support from a dedicated Customer Service Manager
€1,990

2. Support for Smart Collection and Easy Wallet integration

Support for integration, as neededFees (excluding tax)
Self-guided
: 3 hours of support from the Customer Service team
Includes
(Medium and Major Partner plans)
Standard Support:
Technical analysis of the project by the Integration Services team:
5 hours of support from the Integration Services team:
5 hours of support from the Customer Service team
990 €
Advanced Support
Technical Analysis and Monitoring by a Dedicated Integration Service Manager
10 hours of support from a Dedicated Integration Service Manager
10 hours of support from a Dedicated Customer Service Manager
€2,990

3. Hourly support packages offered by customer service

Customizable hourly support, which can be used to delegate account configuration, troubleshooting with testing, specific analyses, and more…Fees (excluding tax)
2-hour support package
2 hours of support from the Customer Service team, consumables in 30-minute periods.
250 €
5-hour support package
5 hours of support from the Customer Service team, consumables in 30-minute periods.
490 €
10-hour support package
10 hours of support from the Customer Service team, consumables in 30-minute periods.
€890

Logos and visuals

CentralPay Logos

CentralPay SVG Logo
White CentralPay Logo (SVG)
CentralPay Logo PNG
White CentralPay Logo PNG

PaySecure Logos

1. Logos

Classic PaySecure Logo (PNG)
White PaySecure Logo PNG
Classic PaySecure Logo (JPG)

2. Reassurance visuals (FR/EN)

Reinsurance – White Background
Reinsurance – Transparent Fund
Reinsurance – blank
Reinsurance – White Background
Reinsurance – Transparent Fund
Reinsurance – blank

Reinsurance Visuals (FR/EN)

Integrate one of these images below your CustomForm payment form, or simply in your website’s footer, to reassure your customers about the security of their payment information.

1. French version

Reinsurance 1 – Traditional
Reinsurance 1 – White Background
Reinsurance 1 – blank
Reinsurance 2 – Traditional
Reinsurance 2 – White Background
Reinsurance 2 – blank
Reinsurance 3 – Traditional
Reinsurance 3 – White Background
Reinsurance 3 – blank
Reinsurance 4 – With Amex
Reinsurance 4 – Amex White Background
Reinsurance 4 – White Amex
Reinsurance 5 – With Amex
Reinsurance 5 – Amex White Background
Reinsurance 5 – White Amex
Reinsurance 6 – With Amex
Reinsurance 6 – Amex White Fund
Reinsurance 6 – White Amex

2. English version

Reinsurance 1 – Traditional
Reinsurance 1 – White Background
Reinsurance 1 – blank
Reinsurance 2 – Traditional
Reinsurance 2 – White Background
Reinsurance 2 – blank
Reinsurance 3 – Traditional
Reinsurance 3 – White Background
Reinsurance 3 – blank
Reinsurance 4 – With Amex
Reinsurance 4 – Amex White Background
Reinsurance 4 – White Amex
Reinsurance 5 – With Amex
Reinsurance 5 – Amex White Background
Reinsurance 5 – White Amex
Reinsurance 6 – With Amex
Reinsurance 6 – Amex White Fund
Reinsurance 6 – White Amex

Trust Center

Compliance and Operational Resilience

Last updated: June 30, 2025

« Our commitment to protecting your transactions and ensuring uninterrupted service. A system that complies with European requirements for security and the continuity of financial services. »

1. Governance and Security Organization

At CentralPay, security is not just a set of technical rules, but a governance approach integrated at every level of the company. Our system is based on a clear organizational structure, defined responsibilities, and regular oversight by management.

The security policy forms the foundation of this system. It establishes the guiding principles for data protection and service continuity. Updated annually, it is approved by the executive committee and distributed to all relevant employees. Each employee is thus made aware of best practices and commits to complying with the established rules.

ICT governance is structured around several key stakeholders. The Chief Information Security Officer (CISO) leads the overall strategy, oversees security controls, and ensures compliance with international standards (PCI DSS, DORA). The technical department is responsible for the day-to-day operation of the infrastructure and ensures the availability of critical systems. Finally, an IT Committee meets regularly to analyze incidents, approve technical and budgetary changes, and ensure continuous improvement in security.

This organizational structure allows us to balance operational responsiveness with regulatory requirements. It also provides our customers with clear visibility: security is monitored, managed, and controlled in a documented manner, with responsibilities shared among management, technical teams, and senior leadership.

2. Access Management and Authorizations

Access management is one of the cornerstones of CentralPay’s security. Each access right is granted according to a formalized procedure approved by management, to ensure that it strictly corresponds to the employee’s business needs. When a new employee joins the company, their access rights are created in Active Directory and approved by their supervisor; upon departure, they are immediately revoked by the IT department.

Security is also based on the principle of least privilege: no one may access more resources than are strictly necessary for their duties. Sensitive access, such as access to critical systems or databases, is systematically subject to multi-factor authentication (MFA). To strengthen this system, periodic reviews of access permissions are conducted every quarter to identify and correct any anomalies.

This rigorous approach ensures complete control over identities and access rights, and protects our customers from any risk of unauthorized access to their data.

3. Technical Safety

CentralPay’s technical security is based on an architecture designed according to the principles of defense in depth. Each layer—from the network to the applications—benefits from redundant protection mechanisms that are regularly tested.

Network Segmentation

The infrastructure is divided into several zones:

  • Public DMZ for servers exposed to the Internet (reverse proxy, WAF, SMTP relay);
  • internal zone for sensitive databases and services;
  • an administrative network reserved for administrative operations;
  • Isolated log area for collecting and analyzing logs.

Traffic between these zones is strictly controlled by redundant firewalls configured for stateful inspection and with NAT rules. These firewalls incorporate anti-spoofing mechanisms and traffic anomaly detection. The configurations are maintained by the “system and network administrators” group and are reviewed periodically.

Physical and Logical Protection

Access to the production facilities is controlled by personalized ID badges, video surveillance, and remote monitoring (SECURITAS). Access to the server rooms and the PCI area is restricted to authorized personnel.
From a logical standpoint, each system access is authenticated using a unique username, reinforced by MFA. Permissions are granted based on defined roles and in accordance with the principle of least privilege.

Surveillance and Intrusion Detection

Monitoring is carried out continuously using a combination of tools:

  • Zabbix, for real-time monitoring of servers, applications, and critical data streams;
  • Wazuh, with Snort integration, for intrusion detection and event correlation;
  • ElasticSearch/Kibana, for aggregating and visualizing logs.

Critical alerts are sent in real time to technical teams via email and text message, and their resolution is tracked in an incident log.

Encryption and Key Management

Sensitive payment data (PANs, expiration dates) is encrypted using AES-256 and rendered unreadable via a salted SHA-512 hash for comparison purposes.
Key management is performed exclusively within certified hardware security modules (HSMs). The master key is split into several components, held by different individuals, to prevent any risk of compromise. Application keys cannot be exported in plain text, and their use is strictly tracked.

By combining these measures, CentralPay ensures a robust technical environment that complies with PCI DSS 4.0.1 requirements and DORA resilience standards.

4. Risk and Incident Management

Risk management is a strategic priority for CentralPay’s governance. The approach adopted aims to anticipate threats, reduce the likelihood of their occurrence, and ensure a rapid and effective response in the event of an incident.

Risk Management

Each year, a risk assessment is conducted using the Ebios methodology, which includes Integration:

  • identifying risks related to security (intrusions, malicious attacks, data breaches) and operations (technical failures, software malfunctions);
  • their analysis in terms of probability and business impact;
  • their classification as Low, Medium, or High;
  • addressing them through preventive measures (patching, network segmentation, encryption, monitoring) or mitigation measures (workarounds, redundancies).

The risk register is updated on an ongoing basis and presented at annual management reviews.

Incident Management

CentralPay has implemented a comprehensive incident management procedure that is aligned with DORA requirements and EBA guidelines:

  • Detection: via automated monitoring (Zabbix, Wazuh) or through internal/external reports (customers, partners).
  • Classification: Each incident is analyzed and classified based on its impact, duration, geographic scope, and criticality.
  • Prioritization: An evaluation matrix (based on urgency of resolution and financial impact) is used to define priority levels ranging from 1 to 4.
  • Regulatory notification: Incidents classified as “major” must be reported to the ACPR:
    • initial report submitted within 4 hours,
    • interim report within 3 business days,
    • final report within 20 days.

Transparency and Feedback

In addition to regulatory reporting, major incidents are communicated transparently to the affected customers. A post-incident analysis is systematically conducted to identify lessons learned, strengthen existing procedures, and implement corrective actions.

This system enables CentralPay not only to respond effectively to incidents, but above all to continuously strengthen its resilience and the trust of its customers.

5. Resilience Tests

CentralPay believes that the resilience of an infrastructure is not proven solely on paper but through regular, documented tests. That is why the platform conducts various test scenarios designed to measure its security level, its disaster recovery capabilities, and the responsiveness of its teams.

Penetration Testing

Penetration tests are conducted on a regular basis by internal teams and specialized service providers to benefit from an independent external perspective. Three methodologies are used:

  • Black-box: The auditor has no prior information, which simulates the behavior of an external attacker;
  • Grey-box: The auditor has partial information (limited user accounts, simplified architecture diagrams) to simulate a realistic scenario involving a malicious user;
  • White-box: The auditor has a complete understanding of the architecture, enabling an in-depth analysis and the detection of complex vulnerabilities.

These tests cover both the network and application layers, with a particular focus on the vulnerabilities listed in the OWASP Top Ten. The results are documented in detailed reports, which include a classification of vulnerabilities by severity (Critical, High, Medium, Low) and recommendations for remediation.

Network Segmentation Tests

CentralPay also performs segmentation tests to verify that the logical partitions between zones (DMZ, internal, administration, logs) are effective and that no unauthorized traffic is possible. These tests ensure that, even if an exposed zone is compromised, the attacker cannot access critical systems.

Simulation Exercises and PCA Switches

In addition to technical tests, crisis simulation exercises are conducted. These exercises involve several teams (technical, compliance, management) and simulate attack scenarios or major outages. The goal is to test not only the robustness of the infrastructure but also the quality of coordination and communication during a crisis.

Finally, PCA switchover tests are conducted at least once a year. These tests verify that critical services can be transferred to the secondary site within the specified time frame and that the teams are fully proficient in the recovery procedures.

These various tests, which are documented and monitored, demonstrate CentralPay’s commitment to a process of continuous improvement in its resilience.

6. High Availability and Disaster Recovery Planning

The availability of payment services is an absolute requirement for CentralPay. To ensure seamless continuity, the company has designed its architecture around the principles of high availability (HA) and a multi-site Business Continuity Plan (BCP).

Multi-site architecture

CentralPay has two separate sites: a primary production site and a secondary site dedicated to the disaster recovery plan. These sites are operated by different providers, incorporate BGP routing, and use Internet connections provided by multiple carriers, which reduces the risk of dependence on a single provider.

Component Redundancy

Each critical component is deployed with redundancy:

  • Firewalls and load balancers: configured in active/active or active/passive mode, allowing for automatic failover in the event of a failure;
  • Application servers: distributed across multiple nodes to ensure fault tolerance;
  • Databases: replicated in real time between the production and disaster recovery sites, ensuring a near-zero RPO;
  • Application proxies and WAFs: deployed at the front end to handle traffic and filter out threats, with automatic failover.

Recovery Objectives (RTO and RPO)

  • RPO (Recovery Point Objective): Thanks to continuous replication, critical data can be restored to a state that is virtually identical to the one immediately prior to the incident;
  • RTO (Recovery Time Objective): Automatic failover mechanisms ensure that critical applications are back online within a few minutes to a maximum of one hour, depending on the type of component.

Failover Scenarios and Tests

The PCA is designed to address various scenarios: hardware failure, network outage, data center unavailability, and major cyberattacks. Each scenario has a documented action plan. Regular failover tests confirm that RTO/RPO commitments are met in practice.

Through this system, CentralPay assures its customers that, even in the event of a major incident, their payment transactions will remain available and secure.

7. Continuity and Backups

The continuity of CentralPay’s services does not rely solely on the redundancy of its infrastructure and its business continuity plan. It is also ensured by a strict data backup and recovery policy.

Daily, encrypted backups

Critical data—whether payment data or the platform’s operational data—is backed up daily. These backups are encrypted using AES-256, in accordance with international standards, to ensure their confidentiality in the event of unauthorized access.

Secure Storage and Rotation

Backups are stored using a redundancy and rotation system:

  • A copy is stored on internal backup servers, which are protected by restricted access;
  • A copy is moved and stored in a secure safe;
  • Other copies are stored off-site to ensure availability even in the event of a physical disaster affecting a site.

Regular rotation of storage media ensures that backups remain reliable and usable.

Restoration Tests

The value of a backup is not measured solely by its preservation but also by its ability to be restored. CentralPay therefore conducts regular restore tests, which verify not only the integrity of the backed-up data but also how quickly it can be restored to the production system.

Thanks to this approach, CentralPay ensures that, even in the event of a major incident, its customers will not suffer any significant data loss and will be able to resume their operations without prolonged disruption.

8. Management of Critical Service Providers

CentralPay recognizes that the security and continuity of its services also depend on the strength of its partners. That is why the company has implemented strict governance procedures for managing critical service providers, particularly those directly involved in hosting, data processing, or payment services.

Audits and Certifications

Each year, an audit is conducted on the primary hosting provider and service providers deemed critical. The goal is to verify the robustness of their security measures, their business continuity capabilities, and their regulatory compliance.
For service providers that process, store, or transmit card data, CentralPay requires PCI DSS certification and obtains an Attestation of Compliance (AOC) that is updated annually.

Contractual Provisions and Oversight

Contracts with critical service providers include specific DORA clauses, covering, in particular:

  • service level agreements (SLAs regarding availability and performance),
  • safety requirements,
  • the implementation of a business continuity plan (BCP) and disaster recovery plan (DRP) compatible with CentralPay’s,
  • immediate notification in the event of a security incident.

CentralPay maintains an up-to-date inventory of all its critical service providers and their associated services. This inventory is regularly updated and serves as the basis for reporting to the ACPR and other supervisory authorities.

Sustainability and Continuous Improvement

Finally, the relationship with service providers is not limited to one-time reviews. The results of audits, continuity tests, and any incidents are presented to the governance committee. Action plans are then developed to strengthen the security or availability of outsourced services.

As such, CentralPay guarantees its customers that third parties who contribute to its critical services are subject to the same standards as its own teams.

FAQ - Compliance and Resilience

Governance and Responsibilities

Who is responsible for security at CentralPay?
Security is overseen by our CISO (Chief Information Security Officer), who reports directly to the President. The CISO relies on an ICT committee and a risk management framework aligned with ISO 27005 and the DORA regulation. The CISO can be reached at the following address: rssi@centralpay.com

Do you have a documented security policy?
Yes. Our Information System Security Policy (ISSP) defines the rules that apply to all our teams and service providers. It covers data classification, access management, system protection, incident management, business continuity, and oversight of IT service providers.

How do you integrate security into your strategic decisions?
Security and resilience are integrated into our comprehensive risk management framework. This framework includes ISO/DORA-aligned risk mapping, a risk appetite policy, and monitoring through key risk indicators (KRIs). Security decisions are reviewed by the Security & Compliance Committee and approved by senior management.

How do you monitor your security systems?
We follow the three lines of defense model: business teams perform operational controls, compliance and ongoing monitoring provide oversight, and periodic audits conduct an independent assessment.

Data and System Protection

How do you protect CentralPay’s data and systems?
All data is encrypted: TLS 1.2/1.3 for data in transit and AES-256 for data at rest. Card data is processed exclusively in a PCI DSS Level 1-certified environment and immediately tokenized, so that no full card numbers are stored in plain text.

Our infrastructure is segmented and protected by firewalls, IDS/IPS, and SOC monitoring. Access to sensitive environments is restricted, follows the principle of least privilege, and is protected by MFA. All workstations are encrypted, secured by antivirus/EDR software, and updated automatically.

Safety Tests and Inspections

Do you conduct security tests?
Yes. We regularly conduct independent penetration tests, automated vulnerability scans, and external audits (including PCI DSS). These checks help us identify vulnerabilities and continuously strengthen our security measures.

How do you handle logging?
Logs are retained for 24 months, time-stamped, protected by encryption, and integrated into our security information and event management (SIEM) system. Access to them is strictly limited to authorized teams.

How do you manage vulnerabilities and updates?
We follow a strict patch management policy: critical vulnerabilities are patched within 24 hours, high-severity vulnerabilities within 7 days, and other patches are applied on a scheduled basis. Compliance is monitored through scans and compliance reports.

Organizational Structure and Safety Culture

How do you raise your employees’ awareness of safety?
All employees undergo mandatory annual training on cybersecurity, the GDPR, and anti-money laundering and counter-terrorism financing (AML/CTF) regulations. Regular awareness campaigns (phishing exercises, e-learning) complement this program. Technical teams receive more in-depth training.

How do you ensure that access remains restricted?
We follow the principle of least privilege: each user has access only to the resources necessary for their role. Permissions are justified, temporary, and systematically tracked.

How do you manage administrator access?
Access to elevated privileges is limited to a small number of individuals, is subject to MFA, is tracked, and is reviewed regularly. Such access is granted only for specific purposes and for a limited period of time.

Proactive Planning and Continuous Improvement

How do you anticipate emerging threats?
We conduct active cybersecurity monitoring through bulletins from CERT-FR, ANSSI, software vendors, and cloud providers. This threat intelligence activity allows us to adapt our defenses in real time.

How do you continuously improve your security?
Every incident, audit, or test is followed by a documented review and a corrective action plan. Our policies and procedures are reviewed annually to integrate these lessons learned and regulatory changes.

Resilience and Continuity

How do you ensure the continuity of your services?
We have an Emergency and Business Continuity Plan (PUPA) that includes a Business Continuity Plan (BCP) and a Disaster Recovery Plan (DRP). These plans are regularly tested through crisis drills and failover scenarios.

How do you ensure availability and redundancy?
Our services are based on a redundant architecture spanning multiple European regions, ensuring availability of more than 99.95%.

What are your RPO and RTO goals?
CentralPay regularly defines and tests its business continuity objectives:

  • RPO (Recovery Point Objective): less than 1 minute for critical systems, thanks to real-time data replication.
  • RTO (Recovery Time Objective): less than 15 minutes for the restoration of essential services, thanks to our redundant architecture and failover procedures.
    These objectives are validated during our business continuity and disaster recovery drills and incorporated into our DORA framework.

How do you manage your backups?
Backups are encrypted, isolated, replicated, and regularly tested to ensure they can be restored. They follow the same security policies as production environments.

Do you conduct resilience tests in accordance with DORA?
Yes. We conduct crisis exercises (simulated cyberattacks, critical outages), load and performance tests, failover scenarios, and—for critical functions—advanced tests such as TLPT (Threat-Led Penetration Testing).

Relationships with Service Providers

How do you select your critical service providers?
Each service provider undergoes due diligence (security, compliance, data location, SLA). The contracts include GDPR and DORA clauses (security, incident notification, right to audit).

How do you monitor your service providers over time?
We maintain a DORA registry that lists all of our IT service providers and identifies critical ones. These critical providers are subject to enhanced oversight, including regular reviews, audits, ISO/PCI certifications, and resilience assessments.

Incident Management

What happens in the event of a security incident?
We follow an incident management procedure that includes: detection, classification, containment, remediation, and forensic analysis. If necessary, we notify the CNIL within 72 hours and inform the affected customers. Every major incident results in a post-incident review and a corrective action plan that is monitored until the incident is closed.

Privacy Policy

Last updated: September 15, 2025

At CentralPay, the protection of personal data is at the heart of our commitments. As an Electronic money Institution authorized by the ACPR (authorization No. 17138), we process personal data in accordance with the General Data Protection Regulation (GDPR – EU 2016/679) and applicable French law.

This policy clearly and transparently describes how we process personal data in connection with the provision of our payment services.

1. Who is the data controller?

The data controller is:
CentralPay – 19 rue Edouard VAILLANT – 37000 TOURS
DPO contact: dpo@centralpay.com

2. What data do we collect?

CentralPay collects only the data strictly necessary to provide its payment services and to comply with its legal and regulatory obligations.

Identification Information

  • Last name, first name, title.
  • Date and place of birth.
  • Nationality.
  • Position (executive, legal representative, UBO).

Contact Information

  • Email address.
  • Phone number (cell or landline).
  • Business or personal mailing address (as applicable).

Payment Information

  • Bank account information: IBAN and BIC.
  • Card data: card number (collected only in a PCI DSS-compliant environment and immediately tokenized), expiration date, card brand (Visa, Mastercard, etc.), issuing country, last 4 digits.
  • Important: CentralPay never discloses the full card number or the security code to the Merchant.

Transaction Data

  • Transaction ID, date, and time.
  • Amount, currency, payment status.
  • Order reference (orderId).
  • Transaction history (one-time payments, recurring payments, installment payments, refunds).

Security and Anti-Fraud Data

  • Connection IP address.
  • Technical profile of the device (browser, language, screen resolution) during 3DS authentication.
  • Internal anti-fraud results and scores.
  • Possible monitoring status (technical blacklist).

KYC/AML-CFT Compliance Data

  • Identity documents (NIC, Passport, Residence permit).
  • Proof of address (utility bill, receipt).
  • Company legal documents (Commercial register, Articles of association, Register of Beneficial Owners).
  • Information on UBOs (names, ownership percentages).

Technical Data (Service-Related)

  • Application and technical logs (API logs).
  • Processing events (webhooks sent to Merchants).
  • Technical tracking identifiers (transactionId, customerId, etc.).

3. For what purposes do we use your data?

CentralPay processes your personal data solely for specific, explicit, and legitimate purposes. Each processing activity is based on a legal basis that complies with the GDPR.

Payment Processing and Service Management

  • Purpose: To process your payment transactions (SEPA, credit cards, Direct Debit, Bank transfers, recurring or installment payments), handle billing, and manage cash flows.
  • Data involved: bank account information (IBAN, BIC), card data (token, schema, country, masked PAN), transaction IDs, amounts, currencies, order references.
  • Legal basis: performance of the contract (Art. 6.1.b of the GDPR).

Identity Verification and Regulatory Requirements (KYC/AML-CFT)

  • Purpose: To comply with legal obligations regarding the fight against money laundering and terrorist financing (AML/CFT) and with the supervisory requirements of the ACPR.
  • Data covered: identification data (last name, first name, date of birth, nationality), identity documents, Proof of address, legal documents of the company, information on UBOs.
  • Legal basis: legal obligation (Art. 6.1.c of the GDPR; Art. L561-1 et seq. of the Monetary and Financial Code).

Fraud Prevention and Detection

  • Purpose: to secure transactions, prevent unauthorized or fraudulent payments, and enforce strong authentication rules (PSD2/3DS).
  • Data involved: IP address, technical fingerprint of the browser/device, card scheme and issuing country, results of anti-fraud checks, and any monitoring status.
  • Legal basis: legal obligation (PSD2) and legitimate interest (payment security—Art. 6.1.f of the GDPR).

Customer Relationship Management and Support

  • Purpose: to communicate with customers and users (confirming transactions, sending payment links, sending notifications), respond to support requests, and follow up on complaints and Disputes.
  • Data involved: email, phone number, customer credentials, and associated transaction data.
  • Legal basis: performance of the contract (Art. 6.1.b GDPR) and legitimate interest (customer relationship management).

Compliance with accounting, tax, and reporting requirements

  • Purpose: to retain certain data in order to comply with legal retention requirements (Commercial Code, General Tax Code) and to produce accounting and evidentiary documentation.
  • Data in question: transactional data (amounts, currencies, dates, statuses, references), and bank account information related to transactions.
  • Legal basis: legal obligation (Art. 6.1.c GDPR).

Improving Our Services and Technical Security

  • Purpose: To analyze the use of our services, optimize performance, and ensure resilience and cybersecurity, in accordance with the DORA regulation.
  • Data in question: technical logs, events (webhooks), technical identifiers, and anonymized usage statistics.
  • Legal basis: legitimate interest (Art. 6.1.f of the GDPR).

4. What is the legal basis for this processing?

Each data processing activity is based on a clearly defined legal basis:

  • Contract performance (Art. 6.1.b of the GDPR): processing payments, account management, customer relations, and support.
  • Legal obligation (Art. 6.1.c of the GDPR): AML/CFT compliance (Art. L561 of the French Monetary and Financial Code), accounting and tax obligations (Commercial Code, General Tax Code), regulatory obligations (PSD2, ACPR).
  • Legitimate interest (Art. 6.1.f of the GDPR): fraud prevention, system security, dispute resolution, and service improvement.
  • Consent (Art. 6.1.a GDPR): only for certain optional marketing communications or as required by law.

5. How long do we retain your data?

CentralPay follows a strict data retention schedule that complies with the requirements of the GDPR, the Monetary and Financial Code, and the Commercial Code.

We distinguish between:

a) Financial Transactions (Accounting Entries and Supporting Documents)

  • Retained for 10 years in accordance with accounting and evidentiary requirements (Art. L123-22 of the Commercial Code).
  • Data involved: transaction IDs (transactionId), date, amount, currency, status, order ID (orderId).
  • This information is required for contractual purposes and accounting and is not anonymized.

(b) Personal data associated with transactions

  • Stored for a maximum of 24 months and then irreversibly anonymized.
  • Data in question:
    • Payer’s contact information (email, phone number),
    • IP address, browser/device fingerprint (3DS),
    • Card data (token, masked PAN, expiration date, schema, issuing country),
    • Anti-fraud results (score, blacklist status).
  • This information is no longer retained beyond 24 months because it is no longer required by law or under any contract.

(c) Payment card data

  • Stored for up to 24 months after the card’s expiration date, then deleted or anonymized.
  • CentralPay never discloses the full PAN or the CVC outside its PCI DSS environment.

d) Bank Account information (IBAN/BIC) and SEPA direct debits

  • Retained for the duration of the term of office plus 10 years (contractual evidence), then deleted or anonymized.

e) KYC / AML-CFT Data

  • Retained for 5 years after the end of the business relationship (Art. L561-12 CMF), then deleted or anonymized.
  • Data covered: identity documents, proof of address, company legal documents, and information on UBOs.

f) Subscriptions and installment payments

  • Retained for the duration of the subscription plus 5 years (for evidentiary purposes), then anonymized.
  • Data involved: subscription ID, payment schedule, link to payment method.

g) Technical logs and webhooks

  • Stored for up to 24 months, then anonymized.
  • Data involved: API logs, processing events, technical identifiers (customerId, eventId), statuses, timestamps.

6. Who are the recipients of your data?

Your data may be shared only with:

  • CentralPay internal services (operations, compliance, support, security).
  • Payment partners and financial institutions (acquirers, SEPA settlement systems, card schemes).
  • Technical service providers (cloud hosting, KYC provider, SMS/email delivery) that are subject to contractual terms compliant with the GDPR.
  • Competent authorities (ACPR, TRACFIN, Banque de France, judicial authorities).

We never sell your data to third parties.

7. Where is your data processed?

  • The data is hosted in the European Union, primarily in France.
  • In the event of a transfer outside the EU (e.g., SMS or email service provider), standard contractual clauses (SCCs) and additional measures are implemented to ensure an equivalent level of protection.

8. What are your rights?

In accordance with Articles 15 through 22 of the GDPR, you have the following rights:

  • Right of access, correction, and deletion.
  • Right to restriction, objection, and data portability.
  • Right to withdraw consent (if applicable).
  • The right to file a complaint with the CNIL.

You can exercise your rights by writing to: dpo@centralpay.com (response within 30 days).

9. Safety

CentralPay implements a security policy aligned with PCI DSS, ISO 27001/27005 standards, and the European DORA (Digital Operational Resilience Act) regulation. Our measures cover the entire lifecycle of data and payment services to ensure their confidentiality, integrity, and availability.

Security is primarily ensured through clear governance and proactive risk management. We have a risk management framework approved by senior management, which includes a risk appetite policy, a risk map aligned with ISO and DORA standards, and risk indicators that are monitored regularly. This framework is implemented through a three-lines-of-defense structure and overseen by a security and compliance committee.

Data protection is based on systematic encryption, both in transit (TLS 1.2/1.3) and at rest (AES-256), with centralized key management. Payment data is processed exclusively in a PCI DSS Level 1-certified environment and undergoes irreversible tokenization, which prevents any exposure of full card numbers or security codes. In addition, we enforce strict policies for the automatic deletion and anonymization of personal data once the retention periods specified by the GDPR have expired.

Access to systems is strictly controlled through centralized identity management based on the principle of least privilege. Every employee is required to undergo strong two-factor authentication (MFA), and access permissions are reviewed regularly to ensure they remain appropriate.

Our infrastructure is continuously monitored. Sensitive operations are comprehensively logged and time-stamped, and a real-time monitoring system, coupled with an SIEM, enables us to quickly detect security incidents.

Operational resilience is ensured by a business continuity framework aligned with DORA. CentralPay has implemented an Emergency and Business Continuity Plan (PUPA) that includes regularly tested disaster recovery (PCA) and business continuity (PRI) components. Penetration tests and crisis management exercises are conducted annually, while a strict ICT outsourcing policy ensures the ongoing evaluation of critical service providers and the maintenance of a regulatory information registry.

Incident management follows a formalized procedure for detection, classification, and resolution. In the event of a major incident, we comply with the regulatory reporting deadlines for the ACPR and the CNIL, and a systematic review is conducted to continuously improve our security measures.

Finally, CentralPay is committed to continuous improvement. Internal and external audits, including independent PCI DSS and cybersecurity audits, are conducted regularly. Our ongoing monitoring and periodic audit procedures are reviewed annually to ensure their effectiveness and compliance with international standards and regulatory requirements.

10. Policy Update

This policy may be amended to reflect changes in data processing practices and legal requirements. Any updates will be posted on our website and, if necessary, communicated to the affected customers.

Subcontractors

In providing its payment services, Centralpay relies on a number of processors as defined in Article 4 of the General Data Protection Regulation (GDPR). These processors may be required to process personal data on behalf of Centralpay, exclusively in accordance with documented instructions and within the scope of the purposes of the service to which they contribute.

This page lists the subcontractors that may be involved in the processing of personal data belonging to Account Owners, Merchants, and Payers who use Centralpay services. It is updated as our system evolves.

SubcontractorPurposeCountry Where Data Is ProcessedData Categories
Amazon Web Services (AWS)Cloud hosting for certain services and application dataIrelandAll data processed by the departments
Comply Advantage (IVXS)AML/CFT Screening and Verification Against International Sanctions ListsRomaniaIdentification Information
DotfileManagement of onboarding processes, collection and updating of KYC/KYB recordsFranceIdentification Information, Supporting Documents
Gpayments3D Secure authentication for Card Transactions (second service provider)IrelandCard data, authentication
InnovestThe group’s parent company; internal recipient for the purposes of governance, audit, compliance, and consolidated reportingFranceGovernance and Reporting Data
MicrosoftManagement and Control of Cash FlowsFranceTransaction and Accounting Data
Netcetera3D-Secure Authentication for Card Transactions (Access Control Server)SwitzerlandCard data, authentication
OnfidoAutomated verification of identification documents and biometric data (facial recognition, liveness detection)EuropeIdentification data, biometric data
QomboVerification of Beneficiary (verification of the beneficiary of a SEPA bank transfer)FranceIdentification Information, IBAN
Tanla Digital LabsSending text messages (authentication codes, notifications)EuropePhone number, message content

Supervision of Subcontractors and Change Control Procedures

In accordance with Article 28 of the GDPR, all processors engaged by Centralpay act exclusively on the basis of documented instructions, are bound by strict contractual obligations regarding confidentiality and security, and may not use personal data for any purposes other than those defined by Centralpay.

Any substantial change to this list will be announced in advance by any appropriate means (notification on the Merchant Portal, email, or a public update to this page), allowing the individuals concerned, if applicable, to object to such changes.

If you have any questions regarding the processing of your data or the exercise of your rights, you can contact our Data Protection Officer at: dpo@centralpay.eu.

FAQ - Privacy Policy

Governance and Responsibilities

Data Controller and DPO Contact

CentralPay, an Electronic money Institution (EMI), is the data controller for its payment services.
DPO contact: dpo@centralpay.com (response within 30 days).

Data Collected

What data do we collect?

As part of the provision of its payment services and in order to comply with its legal obligations, CentralPay collects only the data that is strictly necessary. This data varies depending on the type of transaction (payment, KYC verification, fraud prevention, customer support). It falls into several categories:

  • Identifying information: last name, first name, title, date and place of birth, nationality, and role (e.g., legal representative, executive, or Beneficial Owner—UBO).
  • Contact information: email address, phone number, mailing address.
  • Payment information: bank account details (IBAN, BIC); card information processed exclusively in a PCI DSS-certified environment (full card number and CVC collected solely for tokenization and never exposed in plain text), expiration date, card brand (Visa, Mastercard, etc.), issuing country, and last 4 digits.
  • Transaction data: transaction ID (transactionId), date and time, amount, currency, status, order ID (orderId), transaction history (one-time payments, recurring payments, split payments, refunds).
  • Security and anti-fraud data: IP address, 3DS fingerprint (browser/device), anti-fraud results and scores, and any technical monitoring status.
  • KYC/AML-CFT compliance data: official identity documents, proof of address, legal documents pertaining to the company (e.g., Commercial register, Articles of association), information on ultimate Beneficial Owners (UBOs and ownership percentages).
  • Technical data: application logs (API logs), events sent to Merchants (webhooks), technical identifiers (customerId, eventId).

CentralPay does not collect any sensitive data as defined in Article 9 of the GDPR (health, religion, political opinions, sexual orientation, etc.), unless required to do so by law in exceptional circumstances.

Purposes

Why do we use your data?

CentralPay processes your personal data solely for specific, explicit, and legitimate purposes. This processing is carried out in connection with the provision of our payment services, compliance with our regulatory obligations, and the security of our systems. The main purposes are as follows:

  • Payment Processing: processing payment transactions (SEPA, credit cards, recurring or installment payments), managing cash flows, issuing invoices, and tracking payments.
  • Compliance with regulatory requirements: enforcement of anti-money laundering and counter-terrorism financing (AML/CTF) rules, know-your-customer (KYC) verification, legal document retention, and supervision by the ACPR.
  • Fraud prevention and detection: implementation of the security controls required by PSD2 (strong authentication, 3DS), calculation of anti-fraud scores, and alert management.
  • Customer Relations and Support: communicating with customers and users (notifications, confirmations, sending payment links), handling support requests, and managing complaints and disputes.
  • Accounting and tax obligations: retention of supporting documents; compliance with the provisions of the Commercial Code and the General Tax Code.
  • Technical Improvement and Security: Monitoring the performance and availability of our services; strengthening operational resilience in accordance with the DORA regulation; and continuously improving the customer experience and the security of our systems.

Legal Basis

What is the legal basis for our data processing?

CentralPay processes your personal data solely for specific, explicit, and legitimate purposes. This processing is carried out in connection with the provision of our payment services, compliance with our regulatory obligations, and the security of our systems. The main purposes are as follows:

  • Payment Processing: processing payment transactions (SEPA, credit cards, recurring or installment payments), managing cash flows, issuing invoices, and tracking payments.
  • Compliance with regulatory obligations: enforcement of anti-money laundering and counter-terrorism financing (AML/CTF) rules, know-your-customer (KYC) verification, legal document retention, and supervision by the ACPR.
  • Fraud prevention and detection: implementation of the security controls required by PSD2 (strong authentication, 3DS), calculation of fraud scores, and alert management.
  • Customer Relations and Support: communicating with customers and users (notifications, confirmations, sending payment links), handling support requests, and managing complaints and Disputes.
  • Accounting and Tax Obligations: Retention of supporting documents; compliance with the provisions of the Commercial Code and the General Tax Code.
  • Technical Improvement and Security: Monitoring the performance and availability of our services, strengthening operational resilience in accordance with the DORA regulation, and continuously improving the customer experience and the security of our systems.

How long do we retain your data?

CentralPay follows specific retention periods based on legal requirements and operational needs. At the end of these periods, the data is either deleted or irreversibly anonymized.

  • Financial transactions (supporting documents): retained for 10 years, in accordance with the Commercial Code.
  • Personal data associated with transactions (email, phone number, IP address, 3DS fingerprints, masked PAN, card token, fraud scores): retained for a maximum of 24 months, then deleted or anonymized.
  • Card data (token + metadata): retained for up to 24 months after the card’s expiration date. The full PAN and CVC are never stored in plain text.
  • Payment Requests (emails/text messages): Retained for up to 24 months.
  • Subscriptions and installment payments: retained for the duration of the subscription plus 5 years.
  • Bank Accounts (IBAN/BIC) and SEPA direct debits: retained for the duration of the mandate plus 10 years (contractual evidence).
  • KYC / AML-CFT: Data retained for 5 years after the end of the business relationship (Art. L561-12 of the French Monetary and Financial Code).
  • Technical logs and webhooks: retained for 24 months.

Beyond these time periods, CentralPay retains only anonymized data or data that is strictly necessary to comply with a legal obligation.

Location and Transfers

Where is your data processed?

The data processed by CentralPay is primarily hosted in the European Union—mainly in France—in environments certified to PCI DSS and ISO 27001 standards.

To date, CentralPay does not transfer personal data outside the European Union.
If a transfer outside the EU were to become necessary in the future (for example, to an SMS or email service provider), it would be governed by:

  • an impact analysis of the transfer,
  • the implementation of the European Commission’s Standard Contractual Clauses (SCCs),
  • additional technical measures (encryption, segmentation, access control),
  • and transparent communication with our customers.

Data Transfers Outside the EU: How Do We Handle Them?

To date, CentralPay does not transfer personal data outside the European Union.
All data is hosted and processed within the EU, primarily in France and within certified (PCI DSS) infrastructure.

If, in the future, a transfer outside the EU were to be necessary (for example, to an SMS or email service provider), CentralPay undertakes to:

  • conduct an impact analysis of the transfer,
  • apply the European Commission’s Standard Contractual Clauses (SCCs),
  • implement additional technical measures (encryption, segmentation, access control),
  • and keep its customers fully informed.

Nature of the Data

Do we process sensitive data?

No. CentralPay does not process any sensitive data as defined in Article 9 of the GDPR (health, religion, political opinions, sexual orientation, etc.).
We collect only the information strictly necessary to process payments and comply with our legal obligations (anti-money laundering and counter-terrorism financing, ACPR supervision).

Do we collect data from minors?

CentralPay provides its services exclusively to businesses (B2B). We therefore do not knowingly collect data from minors.
If, indirectly, a minor is required to make a payment, data processing is limited to the necessary payment information (e.g., bank or card details), and is always carried out under the responsibility of the minor’s legal guardian when verification is required.

GDPR Compliance

Do we conduct impact assessments (PIA)?

Yes, we conduct AIPDs (PIAs) for processing operations that may pose a high risk (e.g., KYC, anti-fraud/3DS, card tokenization, longitudinal analyses). Residual risks and mitigation measures are documented.

How do we ensure data minimization and privacy by design?

We collect only the fields necessary for each specific purpose, segregate environments (LIVE/pre-production), do not use any real data in testing, limit webhook payloads to the minimum necessary, and automatically purge or anonymize data upon expiration.

How does CentralPay document its GDPR compliance?

  • Public GDPR Policy (website).
  • Record of data processing (internal, up-to-date).
  • PIA on High-Risk Processing (Internal).
  • Policies/procedures (security, data deletion, incidents, rights).
  • Internal Control Reports (ACPR).

Subcontractors

How do we supervise our service providers?

Each service provider is subject to contractual requirements (Art. 28): security measures, confidentiality, incident reporting, auditability, data location, and controlled sub-contracting. Initial due diligence + regular reassessment (security, SLA, compliance).

Which service providers do we use?

Upon request and after signing an NDA, we can provide an up-to-date list of our service providers, organized by category (hosting/cloud, KYC, email/SMS delivery, fraud prevention, support), along with their geographic locations.

How do we select our key service providers?

CentralPay has a policy for managing subcontractors that complies with both the GDPR (Article 28) and the DORA Regulation.

During the selection process, we conduct a thorough due diligence review covering security (certifications, technical measures), regulatory compliance (GDPR, PSD2, AML/CFT), data location and legal framework, the service provider’s financial stability, and the service levels (SLAs) offered. For critical service providers, we examine in particular their integration into the payment services value chain and their role in ensuring operational resilience.

Each contractual relationship includes clauses that comply with Article 28 of the GDPR (confidentiality, security, incident notification, and restrictions on cascading subcontracting) as well as, where applicable, Standard Contractual Clauses (SCCs) to govern transfers outside the European Union.

In accordance with DORA, we maintain a registry of ICT service providers and identify those considered critical service providers. These service providers are subject to enhanced evaluation, with specific contractual requirements regarding availability, integrity, continuity, and resilience testing.

Monitoring is conducted through regular reviews (inspections, audit reports, SOC/ISO-type compliance certifications, security questionnaires), a contractual right to audit, and periodic reporting mechanisms. We perform integration of these assessments into our ICT risk mapping and our DORA monitoring committees.

Security and Resilience

What technical safeguards do we use?

CentralPay protects data and systems by combining robust technical mechanisms that comply with the highest international standards.
Communications are secured through systematic encryption: TLS 1.2/1.3 for data in transit and AES-256 for data at rest, with centralized key management.
Card data is processed exclusively in a PCI DSS Level 1 environment, with data collection in a dedicated area and irreversible tokenization to prevent any exposure of the full PAN.
Access to the systems is controlled by RBAC (role-based access control) mechanisms and protected by strong authentication (MFA), with regular reviews of access privileges.
All sensitive actions are logged with a timestamp and cannot be tampered with; this logging is integrated into an SIEM system that provides real-time detection and alerts.
The infrastructure is compartmentalized: network segmentation, strict separation of environments (production, testing, pre-production), and secure management of secrets.
Finally, CentralPay regularly tests its system through penetration tests, vulnerability scans, and independent external audits.

How does our organization ensure safety?

Security relies not only on technology but also on strong organization and governance.
CentralPay implements a risk management framework that includes detailed risk mapping, key performance indicators (KPIs), and a risk appetite policy approved by management.
Oversight is based on the recognized three lines of defense model: operations provide first-line controls, an independent compliance and ongoing monitoring function serves as the second line, and internal audit constitutes the third line.
A Security and Compliance Committee meets regularly to steer strategy and update key policies and procedures (access management, incident response, data purges, and the exercise of GDPR rights).
Finally, the security culture is reinforced through regular training for teams, covering cybersecurity, personal data protection, and AML/CFT obligations.

What should we do in the event of a security incident?

CentralPay has a formalized incident management procedure.
In the event of an incident, we quickly detect, assess, and immediately contain it, followed by remedial actions.
All events are fully logged and investigated (forensically) to identify the cause and prevent recurrence.
When required by regulation, we notify the CNIL within a maximum of 72 hours and inform the affected individuals in the event of a high-risk incident.
Each incident results in a lessons-learned review and the implementation of a corrective action plan, which is monitored until the issue is fully resolved.

Our Security Audits

CentralPay is subject to multiple levels of security controls and testing, both internal and external:

  • Regular external audits:
    • Annual PCI DSS Level 1 certification for the collection and processing of payment data,
    • Independent cybersecurity audits,
    • Penetration tests conducted by third-party service providers to identify and fix vulnerabilities.
  • Ongoing internal controls (second line of defense): security clearance reviews, vulnerability scans, and monitoring of critical systems.
  • Periodic independent audits (third line of defense): internal and external audits of the security framework and regulatory compliance (ACPR, DORA).
  • Annual Policy Review: All of our policies regarding security, data purging, incidents, and vendor management are reviewed and approved annually by management.
  • Resilience testing in accordance with DORA:
    • Business Continuity and Disaster Recovery Plans (BCP/DRP) that are regularly tested to verify the ability to maintain services in the event of a major incident,
    • Crisis exercises simulating cyberattack scenarios or critical system outages,
    • Load and performance testing of critical infrastructure,
    • Failover and redundancy scenarios across environments to ensure availability,
    • For critical functions, a gradual shift toward advanced resilience tests such as “TLPT” (Threat-Led Penetration Testing), as required by DORA for significant entities.

Human Rights

What are your rights, and how can you exercise them?

Pursuant to Articles 15 through 22 of the GDPR, you have the following rights regarding your personal data:

  • right of access,
  • right to correction,
  • right to erasure,
  • right to restriction,
  • right to object,
  • right to data portability,
  • right to withdraw consent.

You can exercise your rights by sending a request to: dpo@centralpay.com.
We are committed to responding to you within a maximum of 30 days, except in exceptional cases that warrant an extension. If you encounter any difficulties, you may also file a complaint with the CNIL.

How do we balance data erasure with legal obligations?

CentralPay respects the right to erasure as provided for by the GDPR, but certain data must be retained due to legal obligations.
We delete or anonymize all personal data that is no longer necessary.
However, when the law requires us to retain certain information (for example, accounting records for 10 years or KYC data for 5 years after the end of the relationship), this data is retained, but:

  • access to them is strictly limited,
  • They are used only for purposes required by law (ACPR audits, TRACFIN, evidentiary obligations).

In this way, we strike a balance between respecting people’s rights and meeting our regulatory obligations.

Other Coverages

Do we use automated decisions or profiling?

CentralPay does not apply any fully automated decisions that produce legal or significant effects on individuals, as defined in Article 22 of the GDPR.
However, we do use anti-fraud scoring tools that calculate a risk level for transactions. These results are used solely as a decision-making aid: when a case is sensitive or high-risk, it is systematically reviewed and validated by a human reviewer.

Do we use cookies or trackers for advertising purposes?

In payment flows and APIs, CentralPay does not use any advertising cookies or marketing trackers. Only cookies or trackers that are strictly necessary for the technical operation and security of the payment flows (e.g., session management, authentication) may be used.
At this point, no banner-based consent mechanism is necessary, since we do not use optional cookies.

How do we ensure resilience and backups?

Yes. The infrastructure is redundant across two data centers located in France; backups are encrypted and stored off-site, tested regularly (restores), and are subject to the same access controls as the production environment.

Do we have a documented policy for data purging and anonymization?

Yes, with retention periods by category (transactions/personal data: 24 months; cards: up to 24 months after the expiration date; KYC: 5 years after the relationship ends, power of attorney: 10 years, logs: 24 months) and mechanisms (deletion vs. irreversible anonymization), plus records of data purging (execution logs).

Do our test environments contain real data?

CentralPay never uses actual personal data in its test or pre-production environments. All of our internal datasets (e.g., cards, IBANs, Customer Profiles) are synthetic or fictitious and comply with PCI DSS standards.

However, users of our test environments (e.g., Merchant integrators) can technically enter their own data. This practice is strictly prohibited and governed by our Terms of Use.

If a user accidentally enters personal data into a test environment, that data:

  • are not used for actual payment processing,
  • are not replicated in production,
  • and are automatically or manually purged as soon as they are detected.

How does CentralPay manage support teams’ access to data?

CentralPay’s support teams do not have direct, permanent access to personal data. Access is granted only when necessary for operational purposes (for example, to resolve an incident or assist a customer), and in accordance with the following principles:

  • Temporary and Justified Access: Each access request is granted for a limited period and must be supported by a ticket or an approved request.
  • Principle of least privilege: The support agent sees only the data strictly necessary to process the request.
  • Strong Authentication (MFA): All access is secured through multi-factor authentication.
  • Full traceability: Every action performed by a support team member is logged and audited.
  • Regular review of access permissions: Access rights are reviewed monthly to ensure they remain justified.
  • Masking of Sensitive Data: Sensitive fields (e.g., full card number, CVV, full IBAN) are systematically masked in the interfaces so that support staff can never view them in plain text.

Do we provide your customers with specific GDPR-compliant contract terms?

Our Terms of Service and contracts include the necessary provisions (confidentiality, security, incident response, subcontracting, data retention and deletion). GDPR addenda may be included depending on the specific use case.

Do we share our internal policies and procedures?

The public GDPR policy is available online. Detailed internal policies (incident response, data retention, security) are not shared by default.

Customer

See more about Customer

jQuery(document).ready( function($) { window.live_6ab3046f5972c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Customer.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5972c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5972c.load(); });

Customer

See more about Customer

jQuery(document).ready( function($) { window.live_6ab3046f9ca96 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Customer.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9ca96", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9ca96.load(); });

SDD Transaction

See more about SDD Transaction

jQuery(document).ready( function($) { window.live_6ab3046f6330d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6330d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6330d.load(); });

SDD Transaction

See more about SDD Transaction

jQuery(document).ready( function($) { window.live_6ab3046fa6e0c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa6e0c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa6e0c.load(); });

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 ➝

Callbacks, statuses and hooks

1. Bank Return Codes for Card Transactions

When a card transaction (Transaction) is initiated, an authorization request is submitted to the card-issuing bank. It responds with a code, allowing for the interpretation of the authorization’s acceptance, refusal, and the reason for refusal.

The cardholder’s bank (also called the « issuing bank ») expresses its refusal based on its own choices, which are entirely independent of CentralPay. CentralPay possesses no additional information if a card is declined and has no means of obtaining it.

Main bank return codes:

CodeDescription
A1 – VADS FallbackPSD2 and Soft decline
The bank declines the transaction because it does not have strong authentication (3DS 2.0).
It is necessary to re-process this transaction with 3DS to avoid this code.
57, 3 and 5Generic Bank Refusal
The bank declines without providing a specific status.
This could be an incorrect CVV code or another decision unknown to us.
This status does not confirm that the bank will not accept the authorization after further attempts.
4, 7, 14, 15, 31, 33, 34, 41, 43, 54, 55, 56, 59, 63, 76Suspicion of Fraud or Card Theft
The issuing bank believes its customer is no longer in possession of the card and that it is a case of identity theft.
51, 61Insufficient Funds / Limit Reached
The card has exceeded the authorized limit amount or does not have sufficient funds.
The card may be accepted again later, as limits are calculated on a 7-day rolling basis, so a transaction can certainly be retried the next day.
12Invalid Transaction
The bank declines without providing a specific status. This could be:
– Simply an invalid transaction
– A code 75 from the issuing bank (the card’s PIN code was entered incorrectly too many times).
– An incorrect CVV (provided by the ACS during 3DS authentication)
– Or another decision unknown to us.

Consult the complete list of bank return codes ➝

2. Card Transaction Statuses

Consult Transaction Statuses ➝

Consult Refund Statuses ➝

Consult Credit Statuses ➝

Consult Dispute Statuses ➝

Consult Subscription Statuses ➝

Consult Installment Statuses ➝

3. Webhooks for Card Transactions

Consult Transaction Webhooks ➝

Consult Card Webhooks ➝

Consult Refund Webhooks ➝

Consult Credit Webhooks ➝

Consult Customer Webhooks ➝

Consult Dispute Webhooks ➝

Consult Subscription Webhooks ➝

Consult Installment Statuses ➝

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 centralpay221.zip et cliquez sur Installer maintenant
  5. Une fois l’installation terminée, cliquez sur Activer l’extension

3. Configuration du module

  1. Allez dans WooCommerce > Réglages > Paiements
  2. Cliquez sur CentralPay pour accéder à la configuration
  3. Renseignez les champs suivants puis cliquez sur Enregistrer les modifications :
ChampDescriptionAccès à la donnée
Identifiant marchandIl s’agit de votre Merchant Public Key. Ne pas confondre avec le Merchant UUID.Portail Marchand CentralPay > Administration > Technique > Copier « Merchant Public Key »
Login APIIdentifiant de votre utilisateur API CentralPayPortail Marchand CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »
Mot de passe APIMot de passe de votre utilisateur API CentralPayPortail Marchand CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Modifier > Générer un mot de passe > Copier le mot de passe > cliquer sur « Mettre à jour »
ID du point de venteIdentifiant unique de votre point de vente (UUID)Portail Marchand CentralPay > Configuration > Points de ventes > Copiez l’ID du point de vente concerné
Mode test / productionActivez le mode test si vous souhaitez utiliser l’environnement sandbox (les logins et identifiants doivent être ceux de votre profil marchand CentralPay de test)./
URL de redirectionRedirige vos clients vers une page personnalisée après paiement sur notre formulaire.Renseignez l’URL de votre page de confirmation de paiement.

4. Statut de commande

Le plugin WooCommerce de CentralPay intègre automatiquement une URL de retour (return_url) dans le lien du formulaire de paiement. Cette URL permet de rediriger le client vers la page de confirmation de commande (/checkout/order-received/) et d’actualiser le statut de la commande en fonction du résultat du paiement.

Si le client final ferme la fenêtre de paiement avant d’être redirigé, la mise à jour de la commande peut ne pas se déclencher correctement côté WooCommerce.

Pour garantir la mise à jour fiable du statut de commande, nous recommandons de mettre en place un Hook (callback serveur à serveur) dans votre Backoffice CentralPay.

Étapes de configuration :

  1. Accédez à :
    Production : https://backoffice.centralpay.net/admin/hook/
    Test : https://test-backoffice.centralpay.net/admin/hook/
  2. Créez un Hook avec les paramètres suivants :
    • Événement : Point de Vente > TRANSACTION_SUCCEDEED
    • Affecté au Point de Vente : sélectionnez votre Point de Vente WooCommerce
    • URL : https://votre-site-woocommerce.com/?wc-api=cpay_validation
      (Remplacez par l’URL de votre site WooCommerce.)
  3. Sauvegardez le Hook

Le paramètre /?wc-api=cpay_validation est nécessaire pour que le plugin WooCommerce de CentralPay reconnaisse la notification et déclenche la mise à jour du statut de la commande.

Cette configuration doit être réalisée à la fois dans votre environnement de test et sur votre profil marchand de production.

5. Personnalisation du logo

Vous pouvez également personnaliser l’interface de paiement en ajoutant le logo de votre site via le Backoffice :

  1. Accédez à : https://backoffice.centralpay.net/admin/point_of_sale/
  2. Dans le détail de votre Point de Vente, cliquez sur Modifier
  3. Importez votre logo dans la section Logo

Ce logo sera affiché directement dans le formulaire de paiement pour une expérience utilisateur plus cohérente.

6. Mode test

  • Activez le mode test dans la configuration (attention, vous devez disposer d’un profil marchand CentralPay de test et renseigner les identifiants de ce profil de test)
  • Utilisez les cartes de test fournies par CentralPay pour simuler des paiements
  • Vérifiez le bon fonctionnement :
    • Du formulaire de paiement
    • Des redirections
    • Des statuts de commande

7. Suivi des paiements

  • Retrouvez tous vos paiements dans WooCommerce > Commandes
  • Le plugin CentralPay met à jour automatiquement les statuts des commandes
  • En cas de besoin, un journal des événements est disponible dans le fichier error.log du plugin

8. Langues disponibles

Le plugin est disponible en :

  • 🇫🇷 Français
  • 🇬🇧 Anglais

Vous pouvez modifier ou ajouter vos propres traductions via les fichiers .po présents dans le dossier /languages, ou en utilisant un plugin comme Loco Translate.

9. Désinstallation

Pour désinstaller le plugin :

  • Désactivez-le via le menu des extensions
  • Cliquez sur Supprimer
  • Le script de désinstallation supprimera les paramètres du plugin

10. Support

Pour toute question ou assistance, contactez notre support technique depuis https://support.centralpay.com.
Merci d’indiquer votre identifiant marchand, l’URL de votre site et le plus de détails possible sur votre besoin.

PrestaShop

CentralPay propose un module d’encaissement par carte bancaire pour les boutiques Prestashop. Deux versions du module sont disponibles selon la version de votre CMS :

  • Pour Prestashop 1.6 ➝ Télécharger le module 1.6
  • Pour Prestashop 1.7 ➝ Télécharger le module 1.7

1. Installation du module

Prestashop v1.6

  1. Connectez-vous au back-office Prestashop
  2. Menu Modules > Modules
  3. Cliquez sur « Ajouter un nouveau module »
  4. Chargez l’archive .zip puis cliquez sur « Installer »

Prestashop v1.7

  1. Connectez-vous à l’administration de Prestashop
  2. Menu Modules > Modules Manager > Upload a module
  3. Déposez l’archive .zip ou cliquez pour la charger
  4. Terminez l’installation en suivant l’assistant

2. Configuration du module

Après installation, accédez à la page de configuration du module : Modules Modules installés CentralPay Configurer

Les champs suivants sont requis :

ChampDescriptionOù trouver cette information ?
Merchant Public KeyClé publique d’authentification APIPortail Marchand CentralPay > Administration > Technique > Copier « Merchant Public Key »
Login APIIdentifiant de votre utilisateur API CentralPayPortail Marchand CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »
Secret Key (passeword API)Clé secrète API (à ne jamais diffuser)Portail Marchand CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Modifier > Générer un mot de passe > Copier le mot de passe > cliquer sur « Mettre à jour »
ID du point de venteIdentifiant unique de votre point de vente (UUID)Portail Marchand CentralPay > Configuration > Points de ventes > Copiez l’ID du point de vente concerné
EndpointURL de l’API CentralPayEn environnement de test : https://test-api.centralpay.net/
En production : https://api.centralpay.net/
DeviseDevise des paiements acceptésÀ configurer selon la boutique (EUR recommandé)
Mode de paiementMode d’intégration technique du paiementLaisser la valeur par défaut « Direct Post »
Affichage du formulaireAffichage du formulaire sur page dédiée ou dans la page panierChoisir l’affichage souhaité (conseillé : page dédiée pour la sécurité)
Statut de commande après paiement réussiStatut que prendra la commande après une validation du paiement« Paiement accepté » (ou tout autre statut configuré dans Prestashop)

⚠️ Veillez à bien copier-coller la Merchant Public Key sans espaces ni caractères parasites.

3. Fonctionnement

Lorsqu’un client choisit CentralPay comme moyen de paiement :

  1. Il est redirigé vers une page sécurisée (hébergée ou intégrée)
  2. Il saisit ses informations de carte bancaire
  3. Le paiement est autorisé par la banque (3D Secure inclus)
  4. La commande est validée dans Prestashop avec le statut défini
  5. Un webhook notifie automatiquement CentralPay et Prestashop de l’issue du paiement

4. Mode test / production

  • En mode test, vous pouvez utiliser les cartes de test disponibles dans la documentation développeur
  • En mode production, seuls les marchands activés (KYC validé) peuvent encaisser

Le switch de mode s’effectue en modifiant l’Endpoint dans la configuration du module.

5. Support

Pour toute question :

  • Contactez le support CentralPay via le Portail Marchand > Aide & Support
  • Ou directement via support.centralpay.com

Magento

1. Téléchargement du module

  • Pour Magento ➝ Télécharger le plugin (v1.0)
ℹ️ Ce module est compatible avec Magento 1.7+

2. Installation du plugin

2.1 Décompresser l’archive

Décompressez le fichier .zip téléchargé. Vous obtiendrez les dossiers suivants :

  • app/
  • js/
  • skin/
  • centralpay.sql (fichier SQL à exécuter)

2.2. Copier les fichiers

Copiez l’ensemble des dossiers (app, js, skin) à la racine de votre instance Magento. Ils viendront automatiquement s’intégrer dans l’arborescence existante.

2.3. Exécuter le script SQL

Exécutez le fichier centralpay.sql sur la base de données de votre site Magento.

⚠️ Utilisez phpMyAdmin ou tout autre outil de gestion de base pour importer ce fichier.
⚠️ Pensez à sauvegarder votre base avant exécution.

3. Configuration du module

Une fois le module installé, connectez-vous à votre interface d’administration Magento pour renseigner les paramètres CentralPay.

3.1. Accéder à la configuration

Dans le menu d’administration Magento, rendez-vous dans : Stores Configuration Sales Payment Methods CentralPay

3.2. Paramètres à renseigner

Champ dans MagentoDescriptionObligatoireAccès à la donnée
Activer CentralPayActive le module dans l’environnement Magento.✅ OuiMagento
TitreNom du moyen de paiement visible côté client.✅ OuiMagento
Identifiant Marchand (merchantLogin)Identifiant d’API fourni par CentralPay.✅ OuiPortail Marchand CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Copier le « login »
Mot de passe API (merchantPassword)Mot de passe API associé à l’identifiant.✅ OuiPortail Marchand CentralPay > Administration > Technique > Cliquer sur votre « Identifiant API » > Modifier > Générer un mot de passe > Copier le mot de passe > cliquer sur « Mettre à jour »
Clé publique Marchand (merchantPublicKey)Clé de chiffrement utilisée pour sécuriser les données de carte.✅ OuiPortail Marchand CentralPay > Administration > Technique > Copier « Merchant Public Key »
ID du point de venteIdentifiant unique de votre point de vente (UUID)❌ NonPortail Marchand CentralPay > Configuration > Points de ventes > Copiez l’ID du point de vente concerné
URL de retour (returnUrl)Permet de rediriger le client vers Magento après paiement. Peut être laissé vide pour utiliser la redirection automatique.❌ NonMagento
Mode Test (sandbox)Permet d’utiliser l’environnement de test CentralPay.❌ NonMagento
Commande en attenteStatut Magento utilisé si le paiement est en cours ou en attente (ex. : 3DS).❌ NonMagento
Commande validéeStatut Magento utilisé si le paiement est accepté.❌ NonMagento

4. Mode test et environnement de recette

Le module propose une option de sandbox activable dans l’administration Magento.

ℹ️ Utilisez l’environnement sandbox CentralPay pour simuler des paiements avant passage en production.

N’oubliez pas d’utiliser les identifiants API de test (login, password, clé publique) fournis par CentralPay.

5. Expérience client

  1. Le client ajoute ses articles au panier et passe à la caisse
  2. Au moment du paiement, il choisit CentralPay comme méthode de paiement
  3. Il est redirigé vers l’interface de paiement CentralPay sécurisée
  4. Une fois le paiement effectué (ou refusé), il est redirigé vers votre site Magento
  5. Le statut de la commande est mis à jour automatiquement

6. Suivi des paiements

  • Depuis Magento : vous pouvez consulter le statut des commandes et des paiements dans le back-office standard
  • Depuis CentralPay : toutes les opérations sont également visibles dans votre interface CentralPay (transactions, remboursements, rejets, etc.)

7. Support technique

Pour toute question :

  • Consultez la documentation technique CentralPay : docs.centralpay.com
  • Contactez notre support : support.centralpay.com

Assistance disponible en français et en anglais.

CMS Plugin

Articles

  • WooCommerce
  • PrestaShop
  • Magento

WooCommerce

This guide will walk you through the installation, configuration, and use of the CentralPay plugin for WooCommerce (WordPress).

ℹ️ The CentralPay platform supports various payment methods (credit/debit cards, Bank transfers, SEPA Direct Debits, and Payment Initiation Service (PIS)) and payment options (one-time payments, subscriptions, installment plans, etc.). This plugin only allowsfor the processing of one-time credit/debit card transactions.   

If you'd like to request a change to the plugin, please visit https://support.centralpay.com: Support & Settings > Suggest a new feature.

1. Download the plugin

  • For WooCommerce ➝ Download the CentralPay plugin ZIP archive

⚠️ Be sure not to unzip it manually.

2. Installation on WordPress

  1. Log in to your WordPress admin dashboard
  2. Go to Extensions > Add
  3. Click  » Upload an Extension« 
  4. Select the file  » centralpay220.zip  » and click  » Install Now« 
  5. Once the installation is complete, click  » Enable Extension« 

3. Module Configuration

  1. Go to WooCommerce > Settings > Payments
  2. Click on CentralPay to access the settings
  3. Fill in the following fields, then click  » Save Changes « :
FieldDescriptionAccess to Data
Merchant IDThis is your Merchant Public Key. Do not confuse it with the Merchant UUID. CentralPay Merchant Portal > Administration > Technical Support > Copy « Merchant Public Key »
API LoginYour CentralPay API user IDCentralPay Merchant Portal > Administration > Technical Support > Click on your « API ID » > Copy the « login »
API PasswordYour CentralPay API user passwordCentralPay Merchant Portal > Administration > Technique > Click on your « API ID » > Edit > Generate a password > Copy the password > Click « Update »
POS IDUnique identifier for your Point of Sale (POS) (UUID)CentralPay Merchant Portal > Configuration > Points of Sale > Copy the ID of the relevant Point of Sale (POS)
Test / Production ModeEnable test mode if you want to use the sandbox environment (the login and password must be those for your CentralPay test Merchant Profile)./
Redirect URLRedirects your customers to a custom page after they complete payment through our form.Enter the URL of your payment confirmation page.

4. Order Status

The CentralPay WooCommerce plugin automatically includes a redirect URL (return_url) in the payment form link. This URL redirects the customer to the order confirmation page (/checkout/order-received/) and updates the order status based on the payment result.

If the end customer closes the payment window before being redirected, the order update may not trigger correctly on the WooCommerce side.

To ensure that order status is updated reliably, we recommend setting up a hook (server-to-server callback) in your CentralPay Backoffice.

Setup steps:

  1. Go to:
    Production: https://backoffice.centralpay.net/admin/hook/
    Testing: https://test-backoffice.centralpay.net/admin/hook/
  2. Create a hook with the following parameters:
    • Event: Point of Sale (POS) > TRANSACTION_SUCCEDEED
    • Assigned to a Point of Sale (POS): Select your WooCommerce POS store
    • URL: https://votre-site-woocommerce.com/?wc-api=cpay_validation
      (Replace with the URL of your WooCommerce site.)
  3. Save the Hook

The ` /?wc-api=cpay_validation ` parameter is required for the CentralPay WooCommerce plugin to recognize the notification and trigger the order status update.

This configuration must be set up both in your Test environment and on your production Merchant Profile.

5. Logo Customization

You can also customize the payment interface by adding your website’s logo through the Backoffice:

  1. Go to: https://backoffice.centralpay.net/admin/point_of_sale/
  2. In your Point of Sale details, click Edit
  3. Upload your logo in the  » Logo » section

This logo will be displayed directly in the payment form to provide a more consistent user experience.

6. Test Mode

  • Enable test mode in the settings (please note: you must have a CentralPay test Merchant Profile and enter the credentials for that test Merchant Profile)
  • Use the test cards provided by CentralPay to simulate payments
  • Check that it is working properly:
    • From the payment form
    • Redirects
    • Order Statuses

7. Payment Tracking

  • View all your payments in WooCommerce > Orders
  • The CentralPay plugin automatically updates order statuses
  • If needed, an event log is available in the plugin’s ` error.log ` file

8. Available Languages

The plugin is available in:

  • 🇫🇷 French
  • 🇬🇧 English

You can edit or add your own translations using the ` .po ` files located in the ` /languages` folder, or by using a plugin such as Loco Translate.

9. Uninstallation

To uninstall the plugin:

  • Disable it through the Extensions menu
  • Click  » Delete« 
  • The uninstall script will delete the plugin’s settings

10. Support

If you have any questions or need assistance, please contact our technical support team at https://support.centralpay.com.
Please include your Merchant ID, your website URL, and as many details as possible about your request.

PrestaShop

CentralPay offers a credit card payment module for Prestashop stores. Two versions of the module are available, depending on your CMS version:

  • For Prestashop 1.6 ➝ Download the 1.6 module
  • For Prestashop 1.7 ➝ Download the 1.7 module

1. Installing the module

Prestashop v1.6

  1. Log in to the Prestashop back office
  2. Modules Menu > Modules
  3. Click « Add a New Module »
  4. Download the archive .zip and then click « Install »

Prestashop v1.7

  1. Log in to the Prestashop admin panel
  2. Menu Modules > Modules Manager > Upload a module
  3. Upload the archive  » .zip  » or click to download it
  4. Complete the installation by following the wizard’s instructions

2. Module Configuration

After installation, go to the module’s configuration page: Modules Installed Modules CentralPay Configure

The following fields are required:

FieldDescriptionWhere can I find this information?
Merchant Public KeyAPI Authentication Public KeyCentralPay Merchant Portal > Administration > Technical Support > Copy the “Merchant Public Key”
API LoginYour CentralPay API user IDCentralPay Merchant Portal > Administration > Technical Support > Click on your “API ID” > Copy the “login”
Secret Key (API password)API Secret Key (Never Share)CentralPay Merchant Portal > Administration > Technique > Click on your « API ID » > Edit > Generate a password > Copy the password > Click « Update »
POS IDUnique identifier for your Point of Sale (POS) (UUID)CentralPay Merchant Portal > Configuration > Points of Sale > Copy the ID of the relevant Point of Sale (POS)
EndpointCentralPay API URLIn the test environment: https://test-api.centralpay.net/
In production: https://api.centralpay.net/
CurrencyCurrency of accepted paymentsConfigure according to the store (EUR recommended)
Payment MethodTechnical Payment Integration MethodLeave the default value as « Direct Post »
Displaying the FormDisplay the form on a dedicated page or on the shopping cart pageSelect the desired view (recommended: dedicated security page)
Order Status After Successful PaymentStatus the order will have after payment is confirmed« Payment Accepted » (or any other status configured in PrestaShop)

⚠️ Be sure to copy and paste the Merchant Public Key exactly as it appears, without any spaces or extraneous characters.

3. How It Works

When a customer selects CentralPay as a payment method:

  1. They are redirected to a secure page (hosted or integrated)
  2. He enters his credit card information
  3. The payment has been authorized by the bank (including 3D Secure)
  4. The order is confirmed in PrestaShop with the status set to
  5. A webhook automatically notifies CentralPay and PrestaShop of the payment outcome

4. Test / Production Mode

  • In test mode, you can use the test cards provided in the developer documentation
  • In production mode, only activated merchants (with validated KYC) can receive payments

To switch modes, changethe endpoint in the module’s configuration.

5. Support

If you have any questions:

  • Contact CentralPay support through the Merchant Portal at > Help & Support
  • Or directly at support.centralpay.com

Magento

1. Download the module

  • For Magento ➝ Download the plugin (v1.0)
ℹ️ This module is compatible with Magento 1.7 and later

2. Installing the plugin

2.1 Extract the archive

Unzip the downloaded .zip file. You will get the following folders:

  • app/
  • js/
  • skin/
  • centralpay.sql (SQL file to run)

2.2. Copy the files

Copy all the folders (app, js, skin) to the root of your Magento installation. They will automatically be integrated into the existing directory structure.

2.3. Run the SQL script

Run the file ` centralpay.sql ` on your Magento site’s database.

⚠️ Use phpMyAdmin or any other database management tool to import this file.
⚠️ Be sure to back up your database before running the script.

3. Module Configuration

Once the module is installed, log in to your Magento admin interface to enter the CentralPay settings.

3.1. Go to Settings

In the Magento admin menu, go to: Stores Configuration Sales Payment Methods CentralPay

3.2. Fields to Fill In

Field in MagentoDescriptionRequiredAccess to Data
Enable CentralPayEnables the module in the Magento environment.✅ YesMagento
TitleName of the payment method as displayed to the customer.✅ YesMagento
Merchant ID (merchantLogin)API ID provided by CentralPay.✅ YesCentralPay Merchant Portal > Administration > Technical Support > Click on your “API ID” > Copy the “login”
API Password (merchantPassword)API password associated with the ID.✅ YesCentralPay Merchant Portal > Administration > Technique > Click on your « API ID » > Edit > Generate a password > Copy the password > Click « Update »
Merchant Public Key (merchantPublicKey)Encryption key used to secure card data.✅ YesCentralPay Merchant Portal > Administration > Technical Support > Copy the “Merchant Public Key”
POS IDUnique identifier for your Point of Sale (POS) (UUID)❌ NoCentralPay Merchant Portal > Configuration > Points of Sale > Copy the ID of the relevant Point of Sale (POS)
Return URL (returnUrl)Allows you to redirect the customer to Magento after payment. Can be left blank to use automatic redirection. ❌ NoMagento
Test Mode (sandbox)Allows you to use the CentralPay test environment.❌ NoMagento
Pending OrderMagento status used if the payment is in progress or pending (e.g., 3DS).❌ NoMagento
Order ConfirmedMagento status used if the payment is accepted.❌ NoMagento

4. Test Mode and Sandbox Environment

The module offers a sandbox option that can be enabled in the Magento admin panel.

ℹ️ Use the CentralPay sandbox environment to simulate payments before going live.

Be sure to use the test API credentials (username, password, public key) provided by CentralPay.

5. Customer Experience

  1. The customer adds items to the shopping cart and proceeds to checkout
  2. At checkout, he selects CentralPay as his payment method
  3. He is redirected to the secure CentralPay payment interface
  4. Once the payment is processed (or there is a refusal), the customer is redirected to your Magento site
  5. The order status is updated automatically

6. Payment Tracking

  • From Magento: You can view the status of orders and payments in the standard back office
  • From CentralPay: All transactions are also visible in your CentralPay interface (transactions, refunds, Rejections, etc.)

7. Technical Support

If you have any questions:

  • View the CentralPay technical documentation: docs.centralpay.com
  • Contact our support team: support.centralpay.com

Support is available in French and English.

Trust Center

Articles

  • Conformité et résilience opérationnelleDORA
  • Protection des données personnellesRGPD

Conformité et résilience opérationnelle

Dernière mise à jour : 30 juin 2025

« Notre engagement pour protéger vos transactions et assurer un service sans interruption. Un dispositif aligné sur les exigences européennes en matière de sécurité et de continuité des services financiers »

1. Gouvernance et organisation de la sécurité

Chez CentralPay, la sécurité n’est pas seulement un ensemble de règles techniques, mais une démarche de gouvernance intégrée à tous les niveaux de l’entreprise. Notre dispositif repose sur une organisation claire, des responsabilités définies et une supervision régulière par la direction.

La politique de sécurité constitue le socle de ce dispositif. Elle fixe les principes directeurs en matière de protection des données et de continuité des services. Mise à jour chaque année, elle est validée en comité de direction et diffusée à l’ensemble des collaborateurs concernés. Chaque employé est ainsi sensibilisé aux bonnes pratiques et s’engage à respecter les règles établies.

La gouvernance TIC est structurée autour de plusieurs acteurs clés. Le Responsable de la Sécurité des Systèmes d’Information (RSSI) pilote la stratégie globale, supervise les contrôles de sécurité et veille à la conformité avec les standards internationaux (PCI DSS, DORA). La direction technique est en charge de l’exploitation quotidienne des infrastructures et garantit la disponibilité des systèmes critiques. Enfin, un Comité TIC se réunit régulièrement afin d’analyser les incidents, de valider les évolutions techniques et budgétaires, et d’assurer une amélioration continue de la sécurité.

Cette organisation permet de concilier réactivité opérationnelle et exigence réglementaire. Elle offre également à nos clients une visibilité claire : la sécurité est suivie, pilotée et contrôlée de manière documentée, avec un partage des responsabilités entre le management, les équipes techniques et la direction générale.

2. Gestion des accès et habilitations

La gestion des accès constitue l’un des piliers de la sécurité de CentralPay. Chaque droit d’accès est attribué selon une procédure formalisée et validée par le management, afin de s’assurer qu’il corresponde strictement aux besoins métier du collaborateur. À l’arrivée d’un nouvel employé, ses accès sont créés dans l’Active Directory et validés par son supérieur hiérarchique ; au départ, ils sont immédiatement révoqués par le service informatique.

La sécurité repose également sur le principe du moindre privilège : nul ne peut accéder à plus de ressources que ce qui est strictement nécessaire à sa mission. Les accès sensibles, comme ceux aux systèmes critiques ou aux bases de données, font systématiquement l’objet d’une authentification multi-facteurs (MFA). Pour renforcer ce dispositif, des revues périodiques des habilitations sont menées chaque trimestre, permettant d’identifier et de corriger toute anomalie.

Cette rigueur garantit une maîtrise complète des identités et des droits, et protège nos clients contre tout risque d’accès non autorisé à leurs données.

3. Sécurité technique

La sécurité technique de CentralPay repose sur une architecture conçue selon les principes de défense en profondeur. Chaque couche – du réseau jusqu’aux applications – bénéficie de mécanismes de protection redondants et régulièrement testés.

Cloisonnement des réseaux

L’infrastructure est segmentée en plusieurs zones :

  • DMZ publique pour les serveurs exposés à Internet (reverse proxy, WAF, relais SMTP) ;
  • zone interne pour les bases de données et services sensibles ;
  • réseau administratif réservé aux opérations d’administration ;
  • zone de logs isolée pour la collecte et l’analyse des journaux.

Les flux entre ces zones sont strictement contrôlés par des firewalls en redondance, configurés en stateful inspection et avec des règles de NAT. Ces firewalls intègrent des mécanismes d’anti-spoofing et de détection d’anomalies de trafic. Les configurations sont maintenues par le groupe « administrateurs systèmes et réseau » et font l’objet d’une revue périodique.

Protection physique et logique

L’accès aux locaux de production est contrôlé par badge nominatif, surveillance vidéo et télésurveillance (SECURITAS). L’accès aux salles serveurs et à la zone PCI est limité aux personnes habilitées.
Sur le plan logique, chaque accès aux systèmes se fait par identifiant unique, renforcé par MFA. Les droits sont attribués en fonction des rôles définis et selon le principe du moindre privilège.

Surveillance et détection d’intrusion

La surveillance est assurée en continu grâce à une combinaison d’outils :

  • Zabbix, pour le monitoring temps réel des serveurs, applications et flux critiques ;
  • Wazuh, intégré avec Snort, pour la détection d’intrusions et la corrélation des événements ;
  • ElasticSearch/Kibana, pour l’agrégation et la visualisation des logs.

Les alertes critiques sont transmises en temps réel aux équipes techniques par mail et SMS, et leur traitement est tracé dans un registre d’incidents.

Chiffrement et gestion des clés

Les données de paiement sensibles (PAN, dates d’expiration) sont chiffrées en AES-256 et rendues illisibles via un hash SHA-512 avec salt pour les comparaisons.
La gestion des clés est réalisée exclusivement au sein de modules matériels de sécurité (HSM) certifiés. La clé maîtresse est fragmentée en plusieurs composantes, détenues par des personnes distinctes, afin d’éviter tout risque de compromission. Les clés applicatives ne peuvent pas être exportées en clair et leur usage est strictement tracé.

En combinant ces mesures, CentralPay garantit un environnement technique robuste, conforme aux exigences PCI DSS 4.0.1 et aux standards de résilience DORA.

4. Gestion des risques et des incidents

La maîtrise des risques constitue un axe stratégique de la gouvernance CentralPay. L’approche adoptée vise à anticiper les menaces, limiter leur probabilité de survenance et garantir une réponse rapide et efficace en cas d’incident.

Gestion des risques

Chaque année, une étude de risques est menée sur la base de la méthodologie Ebios, intégrant :

  • l’identification des risques liés à la sécurité (intrusions, attaques malveillantes, fuites de données) et au fonctionnement (pannes techniques, défaillances logicielles) ;
  • leur analyse en termes de probabilité et d’impact métier ;
  • leur classification en Low, Medium ou High ;
  • leur traitement via des mesures de prévention (patching, segmentation réseau, chiffrement, supervision) ou de mitigation (plans de contournement, redondances).

Le registre des risques est mis à jour en continu et présenté lors des revues annuelles de direction.

Gestion des incidents

CentralPay a mis en place une procédure complète de gestion des incidents, alignée sur les obligations DORA et les orientations de l’EBA :

  • Détection : par monitoring automatisé (Zabbix, Wazuh) ou par signalement interne/externe (clients, partenaires).
  • Qualification : chaque incident est analysé et classé selon son impact, sa durée, sa portée géographique et sa criticité.
  • Priorisation : une matrice d’évaluation (urgence de résolution et impact financier) permet de définir des niveaux de priorité allant de 1 à 4.
  • Notification réglementaire : les incidents qualifiés comme « majeurs » font l’objet d’un reporting à l’ACPR :
    • rapport initial transmis dans les 4 heures,
    • rapport intermédiaire sous 3 jours ouvrés,
    • rapport final sous 20 jours.

Transparence et retour d’expérience

En parallèle du reporting réglementaire, les incidents majeurs font l’objet d’une communication transparente envers les clients impactés. Une analyse post-mortem est systématiquement menée afin de tirer les enseignements, renforcer les procédures existantes et mettre en place des actions correctives.

Ce dispositif permet à CentralPay non seulement de répondre efficacement aux incidents, mais surtout de renforcer continuellement sa résilience et la confiance de ses clients.

5. Tests de résilience

CentralPay considère que la résilience d’une infrastructure ne se prouve pas uniquement sur le papier mais par des tests réguliers et documentés. C’est pourquoi la plateforme organise différents scénarios de test visant à mesurer son niveau de sécurité, sa capacité de reprise et la réactivité de ses équipes.

Tests d’intrusion

Les tests d’intrusion sont réalisés de manière récurrente par des équipes internes et par des prestataires spécialisés, afin de bénéficier d’un regard externe indépendant. Trois méthodologies sont appliquées :

  • Black-box : l’auditeur ne dispose d’aucune information préalable, ce qui simule le comportement d’un attaquant externe ;
  • Grey-box : l’auditeur dispose d’informations partielles (comptes utilisateurs limités, schémas d’architecture simplifiés) afin de reproduire un scénario réaliste d’utilisateur malveillant ;
  • White-box : l’auditeur dispose d’une connaissance complète de l’architecture, permettant une analyse approfondie et la détection de vulnérabilités complexes.

Ces tests couvrent à la fois les couches réseau et applicatives, avec un focus particulier sur les vulnérabilités répertoriées par le Top Ten OWASP. Les résultats font l’objet de rapports détaillés, comprenant une classification des failles selon leur criticité (Critical, High, Medium, Low) et des recommandations de remédiation.

Tests de segmentation réseau

CentralPay réalise aussi des tests de segmentation afin de vérifier que les cloisonnements logiques entre les zones (DMZ, interne, administration, logs) sont efficaces et qu’aucun flux non autorisé n’est possible. Ces tests garantissent que, même en cas de compromission d’une zone exposée, l’attaquant ne puisse pas atteindre les systèmes critiques.

Exercices de simulation et bascules PCA

En parallèle des tests techniques, des exercices de simulation de crise sont menés. Ces exercices impliquent plusieurs équipes (techniques, conformité, direction) et simulent des scénarios d’attaque ou de panne majeure. L’objectif est de tester non seulement la robustesse de l’infrastructure, mais aussi la qualité de la coordination et de la communication en situation de crise.

Enfin, des tests de bascule PCA sont organisés au minimum une fois par an. Ils permettent de vérifier que les services critiques peuvent être transférés vers le site secondaire dans les délais prévus et que les équipes maîtrisent parfaitement les procédures de reprise.

Ces différents tests, documentés et suivis, démontrent la volonté de CentralPay de s’inscrire dans une démarche d’amélioration continue de sa résilience.

6. Haute disponibilité et PCA

La disponibilité des services de paiement est une exigence absolue pour CentralPay. Afin de garantir une continuité sans faille, l’entreprise a conçu son architecture autour du principe de haute disponibilité (HA) et d’un Plan de Continuité d’Activité (PCA) multi-sites.

Architecture multi-sites

CentralPay dispose de deux sites distincts : un site de production principal et un site secondaire dédié au PCA. Ces sites sont opérés par des fournisseurs différents, intègrent un routage BGP et utilisent des accès Internet fournis par plusieurs opérateurs, ce qui réduit le risque de dépendance vis-à-vis d’un seul acteur.

Redondance des composants

Chaque composant critique est déployé en redondance :

  • Firewalls et load balancers : configurés en actif/actif ou actif/passif, permettant une bascule automatique en cas de défaillance ;
  • Serveurs applicatifs : répartis sur plusieurs nœuds afin de garantir la tolérance aux pannes ;
  • Bases de données : répliquées en temps réel entre les sites de production et de PCA, assurant un RPO quasi nul ;
  • Proxys applicatifs et WAF : disposés en frontal pour absorber les charges et filtrer les menaces, avec bascule automatique.

Objectifs de reprise (RTO et RPO)

  • RPO (Recovery Point Objective) : grâce à la réplication continue, les données critiques peuvent être restaurées à l’état quasi instantané précédant l’incident ;
  • RTO (Recovery Time Objective) : les mécanismes de bascule automatique permettent un retour en service des applications critiques en quelques minutes à une heure maximum selon le type de composant.

Scénarios de bascule et tests

Le PCA est conçu pour répondre à divers scénarios : panne matérielle, défaillance réseau, indisponibilité d’un datacenter, attaque cyber majeure. Chaque scénario dispose d’un plan d’action documenté. Des tests réguliers de bascule confirment que les engagements RTO/RPO sont tenus dans la pratique.

Grâce à ce dispositif, CentralPay assure à ses clients que, même en cas d’incident majeur, leurs transactions de paiement resteront disponibles et sécurisées.

7. Continuité et sauvegardes

La continuité des services de CentralPay ne repose pas uniquement sur la redondance de son infrastructure et le PCA. Elle est également assurée par une politique stricte de sauvegarde et de restauration des données.

Sauvegardes quotidiennes et chiffrées

Les données critiques – qu’il s’agisse des données de paiement ou des données opérationnelles de la plateforme – font l’objet de sauvegardes quotidiennes. Celles-ci sont chiffrées en AES-256, conformément aux standards internationaux, afin de garantir leur confidentialité en cas d’accès non autorisé.

Stockage sécurisé et rotation

Les sauvegardes sont stockées selon une logique de redondance et de rotation :

  • Une copie est conservée sur les serveurs de sauvegarde internes, protégés par des accès restreints ;
  • Une copie est déplacée et conservée dans un coffre-fort sécurisé ;
  • D’autres copies sont externalisées hors site, afin de garantir la disponibilité même en cas de sinistre physique affectant un site.

La rotation régulière des supports assure que les sauvegardes restent fiables et exploitables.

Tests de restauration

La valeur d’une sauvegarde ne se mesure pas uniquement à sa conservation mais aussi à sa capacité à être restaurée. CentralPay procède donc à des tests de restauration réguliers, qui permettent de vérifier non seulement l’intégrité des données sauvegardées mais aussi la rapidité avec laquelle elles peuvent être réinjectées dans le système de production.

Grâce à cette approche, CentralPay garantit que, même en cas d’incident majeur, ses clients ne subiront pas de perte significative de données et pourront reprendre leurs activités sans interruption prolongée.

8. Gestion des prestataires critiques

CentralPay est conscient que la sécurité et la continuité de ses services dépendent également de la solidité de ses partenaires. C’est pourquoi l’entreprise a mis en place une gouvernance stricte autour de la gestion des prestataires critiques, en particulier ceux qui participent directement à l’hébergement, au traitement des données ou aux services de paiement.

Audits et certifications

Chaque année, un audit est conduit auprès de l’hébergeur principal et des prestataires considérés comme critiques. L’objectif est de vérifier la solidité de leurs dispositifs de sécurité, leurs capacités de continuité et leur conformité réglementaire.
Pour les prestataires qui traitent, stockent ou transmettent des données de cartes, CentralPay exige la certification PCI DSS et obtient une attestation de conformité (AOC) actualisée chaque année.

Clauses contractuelles et supervision

Les contrats avec les prestataires critiques incluent des clauses spécifiques DORA, portant notamment sur :

  • les engagements de service (SLA en matière de disponibilité et de performance),
  • les obligations de sécurité,
  • la mise en place d’un PCA/PRA compatible avec celui de CentralPay,
  • la notification immédiate en cas d’incident de sécurité.

CentralPay conserve une cartographie actualisée de l’ensemble de ses prestataires critiques et de leurs services associés. Ce registre est régulièrement mis à jour et constitue une base de reporting vers l’ACPR et les autorités de supervision.

Pérennité et amélioration continue

Enfin, la relation avec les prestataires ne se limite pas à un contrôle ponctuel. Les résultats des audits, les tests de continuité et les incidents éventuels sont présentés en comité de gouvernance. Des plans d’action sont ensuite décidés pour renforcer la sécurité ou la disponibilité des services externalisés.

Ainsi, CentralPay garantit à ses clients que les tiers qui contribuent à ses services critiques sont soumis au même niveau d’exigence que ses propres équipes.

FAQ - Conformité et résilience

Gouvernance et responsabilités

Qui est responsable de la sécurité chez CentralPay ?
La sécurité est pilotée par notre RSSI (Responsable de la Sécurité des Systèmes d’Information), rattaché directement à la Présidence. Le RSSI s’appuie sur un comité TIC et sur un cadre de gestion des risques aligné sur ISO 27005 et sur le règlement DORA. Le RSSI est joignable à l’adresse suivante : rssi@centralpay.com

Avez-vous une politique de sécurité documentée ?
Oui. Notre Politique de Sécurité du Système d’Information (PSSI) définit les règles applicables à l’ensemble de nos équipes et de nos prestataires. Elle couvre la classification des données, la gestion des accès, la protection des systèmes, la gestion des incidents, la continuité d’activité et l’encadrement des prestataires TIC.

Comment intégrez-vous la sécurité dans vos décisions stratégiques ?
La sécurité et la résilience sont intégrées à notre cadre global de gestion des risques. Celui-ci inclut une cartographie alignée ISO/DORA, une politique d’appétence aux risques, et un suivi par indicateurs (KRI). Les décisions de sécurité sont arbitrées au sein du comité Sécurité & Conformité et validées par la Direction Générale.

Comment contrôlez-vous vos dispositifs de sécurité ?
Nous appliquons le modèle des trois lignes de défense : les équipes métiers réalisent les contrôles opérationnels, la conformité et le contrôle permanent assurent la supervision, et le contrôle périodique réalise une évaluation indépendante.

Protection des données et des systèmes

Comment protégez-vous les données et systèmes de CentralPay ?
Toutes les données sont chiffrées : TLS 1.2/1.3 pour les échanges en transit et AES-256 pour le stockage. Les données de carte sont traitées uniquement dans un environnement certifié PCI DSS niveau 1 et immédiatement tokenisées, afin qu’aucun numéro complet ne soit conservé en clair.

Nos infrastructures sont segmentées et protégées par des firewalls, IDS/IPS et une supervision SOC. Les accès aux environnements sensibles sont limités, appliquent le principe du moindre privilège et sont protégés par MFA. Tous les postes de travail sont chiffrés, sécurisés par antivirus/EDR et mis à jour automatiquement.

Tests et contrôles de sécurité

Réalisez-vous des tests de sécurité ?
Oui. Nous effectuons régulièrement des tests de pénétration indépendants, des scans automatisés de vulnérabilités et des audits externes (dont PCI DSS). Ces contrôles permettent d’identifier les failles et de renforcer en permanence notre dispositif.

Comment gérez-vous la journalisation et les logs ?
Les journaux sont conservés 24 mois, horodatés, protégés par chiffrement et intégrés dans notre système de supervision (SIEM). Leur accès est strictement restreint aux équipes habilitées.

Comment gérez-vous les vulnérabilités et mises à jour ?
Nous appliquons une politique stricte de patch management : correction des vulnérabilités critiques sous 24h, vulnérabilités hautes sous 7 jours, et autres correctifs selon une fréquence planifiée. Le suivi est assuré par des scans et des rapports de conformité.

Organisation et culture sécurité

Comment sensibilisez-vous vos collaborateurs à la sécurité ?
Tous les collaborateurs suivent une formation annuelle obligatoire sur la cybersécurité, le RGPD et la LCB-FT. Des campagnes de sensibilisation régulières (exercices phishing, e-learning) complètent ce dispositif. Les équipes techniques bénéficient de formations renforcées.

Comment garantissez-vous que les accès restent limités ?
Nous appliquons le principe du moindre privilège : chaque utilisateur n’accède qu’aux ressources nécessaires à sa mission. Les droits sont justifiés, temporaires et systématiquement tracés.

Comment encadrez-vous les accès administrateurs ?
Les accès à privilèges élevés sont limités à un nombre restreint de personnes, soumis à MFA, tracés et revus régulièrement. Ils ne sont accordés que pour des besoins précis et pour une durée limitée.

Anticipation et amélioration continue

Comment anticipez-vous les menaces émergentes ?
Nous assurons une veille cybersécurité active via les bulletins CERT-FR, ANSSI, éditeurs logiciels et fournisseurs cloud. Cette activité de threat intelligence permet d’adapter nos défenses en temps réel.

Comment améliorez-vous en permanence votre sécurité ?
Chaque incident, audit ou test fait l’objet d’un retour d’expérience documenté et d’un plan d’actions correctives. Nos politiques et procédures sont revues annuellement pour intégrer ces enseignements et les évolutions réglementaires.

Résilience et continuité

Comment assurez-vous la continuité de vos services ?
Nous disposons d’un Plan d’Urgence et de Poursuite d’Activité (PUPA) intégrant un PCA (continuité) et un PRI (reprise). Ces plans sont régulièrement testés à travers des exercices de crise et des scénarios de bascule.

Comment garantissez-vous la disponibilité et la redondance ?
Nos services reposent sur une architecture redondée au sein de plusieurs zones européennes, permettant d’assurer une disponibilité de plus de 99,95 %.

Quels sont vos objectifs de RPO et RTO ?
CentralPay définit et teste régulièrement ses objectifs de continuité :

  • RPO (Recovery Point Objective) : inférieur à 1 minute pour les systèmes critiques, grâce à la réplication temps réel des données.
  • RTO (Recovery Time Objective) : inférieur à 15 mn pour la reprise des services essentiels, grâce à l’architecture redondée et aux procédures de bascule.
    Ces objectifs sont validés lors de nos exercices PCA/PRI et intégrés dans notre dispositif DORA.

Comment gérez-vous vos sauvegardes ?
Les sauvegardes sont chiffrées, isolées, redondées et régulièrement testées pour garantir leur restauration. Elles suivent les mêmes politiques de sécurité que les environnements de production.

Réalisez-vous des tests de résilience conformément à DORA ?
Oui. Nous réalisons des exercices de crise (cyberattaques simulées, pannes critiques), des tests de charge et de performance, des scénarios de bascule et, pour les fonctions critiques, des tests avancés de type TLPT (Threat-Led Penetration Testing).

Relations avec les prestataires

Comment sélectionnez-vous vos prestataires critiques ?
Chaque prestataire fait l’objet d’une due diligence (sécurité, conformité, localisation des données, SLA). Les contrats incluent des clauses RGPD et DORA (sécurité, notification d’incident, droit d’audit).

Comment contrôlez-vous vos prestataires dans la durée ?
Nous tenons un registre DORA recensant tous nos prestataires TIC et identifiant les prestataires critiques. Ces derniers font l’objet d’un suivi renforcé : revues régulières, audits, attestations ISO/PCI et évaluations de résilience.

Gestion des incidents

Que se passe-t-il en cas d’incident de sécurité ?
Nous appliquons une procédure de gestion des incidents incluant : détection, qualification, confinement, remédiation et forensic. Si nécessaire, nous notifions la CNIL sous 72h et informons les clients concernés. Chaque incident majeur donne lieu à un retour d’expérience et à un plan d’actions correctives suivi jusqu’à sa clôture.

Protection des données personnelles

Dernière mise à jour : 15/09/2025

Chez CentralPay, la protection des données personnelles est au cœur de nos engagements. En tant qu’Établissement de Monnaie Électronique agréé par l’ACPR (n° d’agrément 17138 nous traitons des données personnelles conformément au Règlement Général sur la Protection des Données (RGPD – UE 2016/679) et à la législation française applicable.

Cette politique présente, de manière claire et transparente, les traitements de données personnelles que nous réalisons dans le cadre de l’exécution de nos services de paiement.

1. Qui est responsable du traitement ?

Le responsable de traitement est :
CentralPay – 19 rue Edouard VAILLANT – 37000 TOURS
Contact DPO : dpo@centralpay.com

2. Quelles données collectons-nous ?

CentralPay collecte uniquement les données strictement nécessaires à la fourniture de ses services de paiement et au respect de ses obligations légales et réglementaires.

Données d’identification

  • Nom, prénom, civilité.
  • Date et lieu de naissance.
  • Nationalité.
  • Qualité (dirigeant, représentant légal, UBO).

Données de contact

  • Adresse email.
  • Numéro de téléphone (mobile ou fixe).
  • Adresse postale professionnelle ou personnelle (selon le cas).

Données de paiement

  • Coordonnées bancaires : IBAN et BIC.
  • Données de carte : numéro de carte (collecté uniquement dans un environnement sécurisé PCI DSS et immédiatement tokenisé), date d’expiration, schéma (Visa, Mastercard, etc.), pays émetteur, 4 derniers chiffres.
  • Important : CentralPay n’expose jamais le numéro complet ni le cryptogramme au marchand.

Données transactionnelles

  • Identifiant de transaction, date et heure.
  • Montant, devise, statut de paiement.
  • Référence commande (orderId).
  • Historique des opérations (paiements uniques, récurrents, fractionnés, remboursements).

Données de sécurité et de lutte contre la fraude

  • Adresse IP de connexion.
  • Empreinte technique du terminal (navigateur, langue, résolution écran) lors de l’authentification 3DS.
  • Résultats et scores antifraude internes.
  • Statut éventuel de mise en surveillance (liste noire technique).

Données de conformité KYC/LCB-FT

  • Pièces d’identité (CNI, passeport, titre de séjour).
  • Justificatifs de domicile (facture d’énergie, quittance).
  • Documents légaux de l’entreprise (Kbis, statuts, registre des bénéficiaires effectifs).
  • Informations sur les UBO (noms, pourcentages de détention).

Données techniques (liées aux services)

  • Journaux applicatifs et techniques (logs API).
  • Événements de traitement (webhooks envoyés aux marchands).
  • Identifiants techniques de suivi (transactionId, customerId, etc.).

3. Pour quelles finalités utilisons-nous vos données ?

CentralPay traite vos données personnelles uniquement pour des finalités déterminées, explicites et légitimes. Chaque traitement repose sur une base légale conforme au RGPD.

Exécution des paiements et gestion des services

  • Finalité : exécuter vos opérations de paiement (SEPA, carte, prélèvement, virement, récurrents ou fractionnés), assurer la facturation et gérer les flux financiers.
  • Données concernées : coordonnées bancaires (IBAN, BIC), données de carte (token, schéma, pays, PAN masqué), identifiants de transaction, montants, devises, références commandes.
  • Base légale : exécution du contrat (art. 6.1.b RGPD).

Vérification d’identité et obligations réglementaires (KYC/LCB-FT)

  • Finalité : satisfaire aux obligations légales de lutte contre le blanchiment des capitaux et le financement du terrorisme (LCB-FT), et aux exigences de supervision de l’ACPR.
  • Données concernées : données d’identification (nom, prénom, date de naissance, nationalité), pièces d’identité, justificatifs de domicile, documents légaux de l’entreprise, informations sur les UBO.
  • Base légale : obligation légale (art. 6.1.c RGPD, Code monétaire et financier art. L561-1 et suivants).

Prévention et détection de la fraude

  • Finalité : sécuriser les transactions, prévenir les paiements non autorisés ou frauduleux, appliquer les règles d’authentification renforcée (DSP2/3DS).
  • Données concernées : adresse IP, empreinte technique du navigateur/appareil, schéma et pays émetteur de la carte, résultats des contrôles antifraude, statut éventuel de mise en surveillance.
  • Base légale : obligation légale (DSP2) et intérêt légitime (sécurité des paiements – art. 6.1.f RGPD).

Gestion de la relation client et du support

  • Finalité : communiquer avec les clients et utilisateurs (confirmation d’opérations, envoi de liens de paiement, notifications), répondre aux demandes de support, assurer le suivi des réclamations et litiges.
  • Données concernées : email, téléphone, identifiants client, données transactionnelles associées.
  • Base légale : exécution du contrat (art. 6.1.b RGPD) et intérêt légitime (gestion de la relation client).

Respect d’obligations comptables, fiscales et probatoires

  • Finalité : conserver certaines données pour répondre aux obligations légales de conservation (Code de commerce, Code général des impôts), produire des justificatifs comptables et probatoires.
  • Données concernées : données transactionnelles (montants, devises, dates, statuts, références), coordonnées bancaires liées aux opérations.
  • Base légale : obligation légale (art. 6.1.c RGPD).

Amélioration de nos services et sécurité technique

  • Finalité : analyser l’usage de nos services, optimiser la performance, assurer la résilience et la cybersécurité, conformément au règlement DORA.
  • Données concernées : journaux techniques (logs), événements (webhooks), identifiants techniques, statistiques d’usage anonymisées.
  • Base légale : intérêt légitime (art. 6.1.f RGPD).

4. Quelle est la base légale de ces traitements ?

Chaque traitement repose sur une base légale clairement définie :

  • Exécution du contrat (art. 6.1.b RGPD) : exécution des paiements, gestion de compte, relation client, support.
  • Obligation légale (art. 6.1.c RGPD) : conformité LCB-FT (art. L561 CMF), obligations comptables et fiscales (Code de commerce, CGI), obligations réglementaires (DSP2, ACPR).
  • Intérêt légitime (art. 6.1.f RGPD) : prévention de la fraude, sécurité des systèmes, gestion des litiges, amélioration des services.
  • Consentement (art. 6.1.a RGPD) : uniquement pour certaines communications marketing optionnelles ou si requis par la loi.

5. Combien de temps conservons-nous vos données ?

CentralPay applique un calendrier de conservation strict, conforme aux exigences du RGPD, du Code monétaire et financier et du Code de commerce.

Nous distinguons :

a) Transactions financières (écritures comptables et probatoires)

  • Conservées 10 ans conformément aux obligations comptables et probatoires (art. L123-22 Code de commerce).
  • Données concernées : identifiants de transaction (transactionId), date, montant, devise, statut, référence commande (orderId).
  • Ces informations sont nécessaires à la preuve contractuelle et à la comptabilité et ne sont pas anonymisées.

b) Données personnelles associées aux transactions

  • Conservées 24 mois maximum puis anonymisées de manière irréversible.
  • Données concernées :
    • Coordonnées du payeur (email, téléphone),
    • Adresse IP, empreinte navigateur/appareil (3DS),
    • Données carte (token, PAN masqué, date d’expiration, schéma, pays émetteur),
    • Résultats antifraude (score, statut blacklist).
  • Ces informations ne sont plus conservées au-delà de 24 mois car elles ne sont plus nécessaires ni légalement ni contractuellement.

c) Données relatives aux cartes de paiement

  • Conservées jusqu’à 24 mois après la date d’expiration de la carte, puis supprimées/anonymisées.
  • CentralPay n’expose jamais le PAN complet ni le CVC hors de sa zone PCI DSS.

d) Données relatives aux comptes bancaires (IBAN/BIC) et mandats SEPA

  • Conservées pendant la durée du mandat + 10 ans (preuve contractuelle), puis supprimées/anonymisées.

e) Données KYC / LCB-FT

  • Conservées 5 ans après la fin de la relation d’affaires (art. L561-12 CMF), puis supprimées/anonymisées.
  • Données concernées : pièces d’identité, justificatifs de domicile, documents légaux de l’entreprise, informations sur les UBO.

f) Abonnements et paiements fractionnés

  • Conservés pendant la durée de l’abonnement + 5 ans (exigences probatoires), puis anonymisés.
  • Données concernées : identifiant d’abonnement, échéancier, lien vers moyen de paiement.

g) Journaux techniques et webhooks

  • Conservés 24 mois maximum, puis anonymisés.
  • Données concernées : logs API, événements de traitement, identifiants techniques (customerId, eventId), statuts, horodatages.

6. Qui sont les destinataires de vos données ?

Vos données peuvent être transmises uniquement à :

  • Services internes CentralPay (opérations, conformité, support, sécurité).
  • Partenaires de paiement et établissements bancaires (acquéreurs, systèmes de règlement SEPA, schémas carte).
  • Prestataires techniques (hébergement cloud, prestataire KYC, envoi SMS/email), soumis à des clauses contractuelles conformes RGPD.
  • Autorités compétentes (ACPR, TRACFIN, Banque de France, autorités judiciaires).

Nous ne revendons jamais vos données à des tiers.

7. Où sont traitées vos données ?

  • Les données sont hébergées dans l’Union européenne et majoritairement en Frane
  • En cas de transfert hors UE (ex. prestataire SMS, email), des clauses contractuelles types (SCC) et mesures supplémentaires sont mises en place pour garantir un niveau de protection équivalent.

8. Quels sont vos droits ?

Conformément aux articles 15 à 22 du RGPD, vous disposez de :

  • Droit d’accès, rectification, effacement.
  • Droit à la limitation, opposition, portabilité.
  • Droit de retrait du consentement (le cas échéant).
  • Droit d’introduire une réclamation auprès de la CNIL.

Vous pouvez exercer vos droits en écrivant à : dpo@centralpay.com (réponse sous 30 jours).

9. Sécurité

CentralPay met en œuvre une politique de sécurité alignée sur les standards PCI DSS, ISO 27001/27005 et sur le règlement européen DORA (Digital Operational Resilience Act). Nos dispositifs couvrent l’ensemble du cycle de vie des données et des services de paiement afin de garantir leur confidentialité, leur intégrité et leur disponibilité.

La sécurité est d’abord assurée par une gouvernance claire et une gestion proactive des risques. Nous disposons d’un cadre de gestion des risques validé par la direction, qui comprend une politique d’appétence au risque, une cartographie alignée sur les normes ISO et DORA, ainsi que des indicateurs de risque suivis régulièrement. Ce cadre est mis en œuvre à travers une organisation en trois lignes de défense et piloté par un comité de sécurité et de conformité.

La protection des données repose sur un chiffrement systématique, tant en transit (TLS 1.2/1.3) qu’au repos (AES-256), avec une gestion centralisée des clés. Les données de paiement sont traitées exclusivement dans un environnement certifié PCI DSS niveau 1 et font l’objet d’une tokenisation irréversible qui évite toute exposition des numéros complets de carte ou des cryptogrammes. De plus, nous appliquons des politiques strictes de purge et d’anonymisation automatique des données personnelles à l’issue des durées de conservation prévues par le RGPD.

Les accès aux systèmes sont strictement contrôlés grâce à une gestion des identités centralisée et basée sur le principe du moindre privilège. Chaque collaborateur est soumis à une authentification forte à deux facteurs (MFA), et les habilitations font l’objet de revues régulières afin de garantir leur pertinence.

Nos infrastructures font l’objet d’une surveillance permanente. Les opérations sensibles sont journalisées de manière exhaustive et horodatée, et un système de supervision en temps réel, couplé à un SIEM, permet de détecter rapidement les incidents de sécurité.

La résilience opérationnelle est assurée par un dispositif de continuité aligné sur DORA. CentralPay a mis en place un Plan d’Urgence et de Poursuite d’Activité (PUPA) incluant des volets PCA et PRI, régulièrement testés. Des tests de pénétration et des exercices de gestion de crise sont organisés chaque année, tandis qu’une politique stricte d’externalisation TIC garantit l’évaluation continue des prestataires critiques et la tenue d’un registre d’information réglementaire.

La gestion des incidents suit une procédure formalisée de détection, classification et traitement. En cas d’incident majeur, nous respectons les délais de notification réglementaire auprès de l’ACPR et de la CNIL, et un retour d’expérience systématique est organisé afin d’améliorer en permanence le dispositif de sécurité.

Enfin, CentralPay s’inscrit dans une logique d’amélioration continue. Des audits internes et externes, y compris des audits indépendants PCI DSS et de cybersécurité, sont réalisés régulièrement. Nos dispositifs de contrôle permanent et d’audit périodique sont revus chaque année afin de garantir leur efficacité et leur conformité aux normes internationales et aux exigences réglementaires.

10. Mise à jour de la politique

Cette politique peut être modifiée pour refléter l’évolution des traitements et obligations légales. Toute mise à jour sera publiée sur notre site et, si nécessaire, communiquée aux clients concernés.

Sous-traitants

Dans le cadre de la fourniture de ses services de paiement, Centralpay s’appuie sur un ensemble de sous-traitants au sens de l’article 4 du Règlement Général sur la Protection des Données (RGPD). Ces sous-traitants peuvent être amenés à traiter des données à caractère personnel pour le compte de Centralpay, exclusivement sur instructions documentées et dans la limite des finalités du service auquel ils contribuent.

La présente page recense les sous-traitants susceptibles d’intervenir dans le traitement des données à caractère personnel des Titulaires, Marchands et Payeurs utilisateurs des services Centralpay. Elle est mise à jour à mesure de l’évolution de notre dispositif.

Sous-traitantFinalitéPays de traitement des donnéesCatégories de données
Amazon Web Services (AWS)Hébergement cloud de certains services et données applicativesIrlandeEnsemble des données traitées par les services
Comply Advantage (IVXS)Screening LCB-FT et vérification des listes de sanctions internationalesRoumanieDonnées d’identification
DotfileGestion des processus d’onboarding, collecte et mise à jour des dossiers KYC/KYBFranceDonnées d’identification, justificatifs
GpaymentsAuthentification 3D-Secure des transactions par carte (second prestataire)IrlandeDonnées carte, authentification
InnovestSociété mère du groupe, destinataire interne pour les finalités de gouvernance, audit, conformité et reporting consolidéFranceDonnées de gouvernance et de reporting
MicrosoftGestion et contrôle des flux financiersFranceDonnées transactionnelles et comptables
NetceteraAuthentification 3D-Secure des transactions par carte (Access Control Server)SuisseDonnées carte, authentification
OnfidoVérification automatisée des documents d’identité et des éléments biométriques (reconnaissance faciale, détection de vie)EuropeDonnées d’identité, données biométriques
QomboVerification of Payee (vérification du bénéficiaire d’un virement SEPA)FranceDonnées d’identification, IBAN
Tanla Digital LabsEnvoi de SMS (codes d’authentification, notifications)EuropeNuméro de téléphone, contenu du message

Encadrement des sous-traitants et procédure de modification

Conformément à l’article 28 du RGPD, l’ensemble des sous-traitants engagés par Centralpay agissent exclusivement sur instructions documentées, sont liés par des engagements contractuels stricts en matière de confidentialité et de sécurité, et ne peuvent utiliser les données à caractère personnel à d’autres fins que celles définies par Centralpay.

Toute modification substantielle de cette liste fera l’objet d’une information préalable par tout moyen approprié (notification dans le Portail Marchand, courrier électronique, ou mise à jour publique de la présente page), permettant aux personnes concernées, le cas échéant, de s’y opposer.

Pour toute question relative au traitement de vos données ou à l’exercice de vos droits, vous pouvez contacter notre Délégué à la Protection des Données à l’adresse : dpo@centralpay.eu.

FAQ - Protection des données personnelles

Gouvernance et responsabilités

Responsable du traitement et contact DPO

CentralPay, Établissement de Monnaie Électronique (EME), est responsable du traitement pour ses services de paiement.
Contact DPO : dpo@centralpay.com (réponse sous 30 jours).

Données collectées

Quelles données collectons-nous ?

Dans le cadre de la fourniture de ses services de paiement et afin de respecter ses obligations légales, CentralPay collecte uniquement les données strictement nécessaires. Ces données varient en fonction du type d’opération (paiement, vérification KYC, lutte contre la fraude, support client). Elles se répartissent en plusieurs catégories :

  • Données d’identification : nom, prénom, civilité, date et lieu de naissance, nationalité, qualité (par exemple représentant légal, dirigeant ou bénéficiaire effectif – UBO).
  • Données de contact : adresse email, numéro de téléphone, adresse postale.
  • Données de paiement : coordonnées bancaires (IBAN, BIC) ; données de carte traitées exclusivement dans un environnement certifié PCI DSS (numéro complet et CVC collectés uniquement pour être tokenisés et jamais exposés en clair), date d’expiration, schéma (Visa, Mastercard…), pays émetteur, 4 derniers chiffres.
  • Données transactionnelles : identifiant de transaction (transactionId), date et heure, montant, devise, statut, référence commande (orderId), historique des opérations (paiements uniques, récurrents, fractionnés, remboursements).
  • Données de sécurité et de lutte contre la fraude : adresse IP, empreinte 3DS (navigateur/appareil), résultats et scores antifraude, statut éventuel de mise en surveillance technique.
  • Données de conformité KYC/LCB-FT : pièces d’identité officielles, justificatifs de domicile, documents légaux de l’entreprise (ex. Kbis, statuts), informations sur les bénéficiaires effectifs (UBO et pourcentages de détention).
  • Données techniques : journaux applicatifs (logs API), événements transmis aux marchands (webhooks), identifiants techniques (customerId, eventId).

CentralPay ne collecte aucune donnée sensible au sens de l’article 9 du RGPD (santé, religion, opinions politiques, orientation sexuelle, etc.), sauf si la loi l’imposait de manière exceptionnelle.

Finalités

Pourquoi utilisons-nous vos données ?

CentralPay traite vos données personnelles uniquement pour des finalités déterminées, explicites et légitimes. Ces traitements s’inscrivent dans le cadre de l’exécution de nos services de paiement, du respect de nos obligations réglementaires et de la sécurité de nos systèmes. Les principales finalités sont les suivantes :

  • Exécution des paiements : traitement des opérations de paiement (SEPA, carte bancaire, paiements récurrents ou fractionnés), gestion des flux financiers, émission de factures et suivi des règlements.
  • Respect des obligations réglementaires : application des règles de lutte contre le blanchiment des capitaux et le financement du terrorisme (LCB-FT), vérification d’identité (KYC), conservation légale des documents, supervision par l’ACPR.
  • Prévention et détection de la fraude : mise en œuvre des contrôles de sécurité exigés par la DSP2 (authentification forte, 3DS), calcul de scores antifraude et gestion des alertes.
  • Relation client et support : communication avec les clients et utilisateurs (notifications, confirmations, envoi de liens de paiement), traitement des demandes de support, gestion des réclamations et litiges.
  • Obligations comptables et fiscales : conservation des pièces probatoires, respect des règles du Code de commerce et du Code général des impôts.
  • Amélioration et sécurité technique : suivi de la performance et de la disponibilité de nos services, renforcement de la résilience opérationnelle conformément au règlement DORA, amélioration continue de l’expérience client et de la sécurité de nos systèmes.

Bases légales

Sur quelles bases légales reposent nos traitements ?

CentralPay traite vos données personnelles uniquement pour des finalités déterminées, explicites et légitimes. Ces traitements s’inscrivent dans le cadre de l’exécution de nos services de paiement, du respect de nos obligations réglementaires et de la sécurité de nos systèmes. Les principales finalités sont les suivantes :

  • Exécution des paiements : traitement des opérations de paiement (SEPA, carte bancaire, paiements récurrents ou fractionnés), gestion des flux financiers, émission de factures et suivi des règlements.
  • Respect des obligations réglementaires : application des règles de lutte contre le blanchiment des capitaux et le financement du terrorisme (LCB-FT), vérification d’identité (KYC), conservation légale des documents, supervision par l’ACPR.
  • Prévention et détection de la fraude : mise en œuvre des contrôles de sécurité exigés par la DSP2 (authentification forte, 3DS), calcul de scores antifraude et gestion des alertes.
  • Relation client et support : communication avec les clients et utilisateurs (notifications, confirmations, envoi de liens de paiement), traitement des demandes de support, gestion des réclamations et litiges.
  • Obligations comptables et fiscales : conservation des pièces probatoires, respect des règles du Code de commerce et du Code général des impôts.
  • Amélioration et sécurité technique : suivi de la performance et de la disponibilité de nos services, renforcement de la résilience opérationnelle conformément au règlement DORA, amélioration continue de l’expérience client et de la sécurité de nos systèmes.

Pendant combien de temps conservons-nous vos données ?

CentralPay applique des délais de conservation précis, fondés sur les obligations légales et les besoins opérationnels. À l’issue de ces délais, les données sont soit supprimées, soit anonymisées de façon irréversible.

  • Transactions financières (écritures probatoires) : conservées 10 ans, conformément au Code de commerce.
  • Données personnelles associées aux transactions (email, téléphone, IP, empreintes 3DS, PAN masqué, token de carte, scores fraude) : conservées 24 mois maximum, puis supprimées ou anonymisées.
  • Données de carte (token + métadonnées) : conservées jusqu’à 24 mois après la date d’expiration de la carte. Le PAN complet et le CVC ne sont jamais exposés en clair.
  • Payment Requests (emails/SMS) : conservées 24 mois maximum.
  • Abonnements et paiements fractionnés : conservés pendant la durée de l’abonnement + 5 ans.
  • Comptes bancaires (IBAN/BIC) et mandats SEPA : conservés pendant la durée du mandat + 10 ans (preuve contractuelle).
  • KYC / LCB-FT : données conservées 5 ans après la fin de la relation d’affaires (art. L561-12 CMF).
  • Journaux techniques et webhooks : conservés 24 mois.

Au-delà de ces durées, CentralPay ne conserve que des données anonymisées ou strictement nécessaires au respect d’une obligation légale.

Localisation et transferts

Où vos données sont-elles traitées ?

Les données traitées par CentralPay sont hébergées en priorité dans l’Union européenne, principalement en France, dans des environnements certifiés PCI DSS et ISO 27001.

À ce jour, CentralPay ne transfère pas de données personnelles hors de l’Union européenne.
Si un transfert hors UE devait être nécessaire à l’avenir (par exemple pour un prestataire SMS ou email), il serait encadré par :

  • une analyse d’impact du transfert,
  • la mise en place des Clauses Contractuelles Types (SCC) de la Commission européenne,
  • des mesures techniques complémentaires (chiffrement, segmentation, contrôle d’accès),
  • et une information transparente de nos clients.

Transfert de données hors UE : comment procédons-nous ?

À ce jour, CentralPay ne transfère pas de données personnelles hors de l’Union européenne.
Toutes les données sont hébergées et traitées dans l’UE, principalement en France et au sein d’infrastructures certifiées (PCI DSS).

Si, à l’avenir, un transfert hors UE devait être nécessaire (par exemple pour un prestataire SMS ou email), CentralPay s’engage à :

  • procéder à une analyse d’impact sur le transfert,
  • appliquer les Clauses Contractuelles Types (SCC) de la Commission européenne,
  • mettre en place des mesures techniques supplémentaires (chiffrement, cloisonnement, contrôle d’accès),
  • et informer ses clients en toute transparence.

Nature des données

Traitons-nous des données sensibles ?

Non. CentralPay ne traite aucune donnée sensible au sens de l’article 9 du RGPD (santé, religion, opinions politiques, orientation sexuelle, etc.).
Nous collectons uniquement les informations strictement nécessaires à l’exécution des paiements et au respect de nos obligations légales (LCB-FT, supervision ACPR).

Collectons-nous des données de mineurs ?

CentralPay fournit ses services exclusivement à des professionnels (B2B). Nous ne collectons donc pas volontairement de données de mineurs.
Si, indirectement, un mineur est amené à effectuer un paiement, le traitement reste limité aux données de paiement nécessaires (ex. coordonnées bancaires ou carte), et toujours sous la responsabilité de son représentant légal lorsqu’une vérification est requise.

Conformité RGPD

Réalisons-nous des analyses d’impact (PIA)?

Oui, nous réalisons des AIPD (PIA) pour les traitements susceptibles d’engendrer un risque élevé (ex. KYC, antifraude/3DS, tokenisation carte, analyses longitudinales). Les risques résiduels et mesures de réduction sont documentés.

Comment garantissons-nous la minimisation et le privacy by design ?

Nous collectons uniquement les champs nécessaires par finalité, cloisonnons les environnements (prod/préprod), nous n’utilisons aucune donnée réelle en test, limitons les payloads webhooks au minimum utile, et appliquons des purges/anonymisations automatiques à l’échéance.

Comment CentralPay documente sa conformité RGPD ?

  • Politique RGPD publique (site).
  • Registre des traitements (interne, à jour).
  • PIA sur les traitements à risque (interne).
  • Politiques/procédures (sécurité, purge, incidents, droits).
  • Rapports de contrôle interne (ACPR).

Sous-traitants

Comment encadrons-nous nos prestataires ?

Chaque prestataire est contractuellement encadré (art. 28) : mesures de sécurité, confidentialité, notification d’incident, audibilité, localisation des données, sous-traitance en cascade contrôlée. Due diligence initiale + réévaluation régulière (sécurité, SLA, conformité).

Quels prestataires utilisons-nous ?

Sur demande et après NDA, nous pouvons fournir la liste à jour par catégorie de nos prestataires (hébergement/cloud, KYC, envoi email/SMS, anti-fraude, support) en indiquant la zone géographique.

Comment sélectionnons-nous nos prestataires essentiels ?

CentralPay applique une politique d’encadrement des sous-traitants alignée à la fois sur le RGPD (art. 28) et sur le règlement DORA.

Lors de la sélection, nous menons une due diligence approfondie couvrant la sécurité (certifications, mesures techniques), la conformité réglementaire (RGPD, DSP2, LCB-FT), la localisation et le régime juridique des données, la solidité financière du prestataire ainsi que les niveaux de service (SLA) proposés. Pour les prestataires critiques, nous examinons en particulier leur intégration dans la chaîne de valeur des services de paiement et leur rôle en matière de résilience opérationnelle.

Chaque relation contractuelle inclut des clauses conformes à l’article 28 RGPD (confidentialité, sécurité, notification d’incident, limitation des sous-traitances en cascade) ainsi que, le cas échéant, des Clauses Contractuelles Types (SCC) pour encadrer les transferts hors Union européenne.

Conformément à DORA, nous tenons un registre d’information des prestataires TIC et identifions ceux considérés comme prestataires critiques. Ces prestataires font l’objet d’une évaluation renforcée, avec des exigences contractuelles spécifiques en matière de disponibilité, d’intégrité, de continuité et de tests de résilience.

Le suivi est assuré au travers de revues régulières (contrôles, rapports d’audit, attestations de conformité type SOC/ISO, questionnaires de sécurité), d’un droit d’audit contractuel et de mécanismes de reporting périodique. Nous intégrons ces évaluations dans notre cartographie des risques TIC et nos comités de suivi DORA.

Sécurité et résilience

Quelles protections techniques appliquons-nous ?

CentralPay protège les données et les systèmes en combinant des mécanismes techniques robustes et conformes aux meilleurs standards internationaux.
Les échanges sont sécurisés par un chiffrement systématique : TLS 1.2/1.3 pour les données en transit et AES-256 pour les données au repos, avec une gestion centralisée des clés.
Les données de carte sont traitées exclusivement dans un environnement PCI DSS niveau 1, avec collecte en zone dédiée et tokenisation irréversible pour éviter toute exposition du PAN complet.
Les accès aux systèmes sont contrôlés par des mécanismes RBAC (role-based access control) et protégés par une authentification forte (MFA), avec des revues régulières des habilitations.
Toutes les actions sensibles font l’objet d’une journalisation horodatée et inviolable, intégrée dans un SIEM qui assure la détection et l’alerte en temps réel.
L’infrastructure est cloisonnée : segmentation des réseaux, séparation stricte des environnements (production, test, préproduction) et gestion sécurisée des secrets.
Enfin, CentralPay teste régulièrement son dispositif à travers des tests de pénétration, des scans de vulnérabilités et des audits externes indépendants.

Comment notre organisation garantit la sécurité ?

La sécurité ne repose pas uniquement sur la technologie mais aussi sur une organisation et une gouvernance solides.
CentralPay applique un cadre de gestion des risques intégrant une cartographie détaillée, des indicateurs de suivi (KRI) et une politique d’appétence au risque validée par la direction.
La supervision s’appuie sur le modèle reconnu des trois lignes de défense : les opérations assurent les contrôles de premier niveau, une fonction indépendante de conformité et de contrôle permanent supervise la deuxième ligne, et l’audit interne constitue la troisième ligne.
Un comité sécurité et conformité se réunit régulièrement pour piloter la stratégie et mettre à jour les politiques et procédures clés (gestion des accès, incidents, purges, exercice des droits RGPD).
Enfin, la culture sécurité est renforcée par des formations régulières des équipes, couvrant la cybersécurité, la protection des données personnelles et les obligations LCB-FT.

Que faisons-nous en cas d’incident de sécurité ?

CentralPay dispose d’une procédure formalisée de gestion des incidents.
En cas d’incident, nous procédons à une détection rapide, une qualification et un confinement immédiat, suivis d’actions de remédiation.
Les événements sont intégralement journalisés et investigués (forensic) afin d’identifier la cause et d’éviter leur récurrence.
Lorsque la réglementation l’impose, nous notifions la CNIL dans un délai maximum de 72 heures et informons les personnes concernées en cas de risque élevé.
Chaque incident donne lieu à un retour d’expérience (REX) et à la mise en place d’un plan d’actions correctives, qui est suivi jusqu’à sa résolution complète.

Nos audits de sécurité

CentralPay est soumis à plusieurs niveaux de contrôle et de tests de sécurité, à la fois internes et externes :

  • Audits externes réguliers :
    • Certification annuelle PCI DSS niveau 1 sur la collecte et le traitement des données de paiement,
    • Audits indépendants de cybersécurité,
    • Tests de pénétration réalisés par des prestataires tiers pour identifier et corriger les vulnérabilités.
  • Contrôles internes permanents (seconde ligne de défense) : revues des habilitations, scans de vulnérabilités, surveillance des systèmes critiques.
  • Audits périodiques indépendants (troisième ligne de défense) : audit interne et audit externe du dispositif de sécurité, conformité réglementaire (ACPR, DORA).
  • Revue annuelle des politiques : l’ensemble de nos politiques de sécurité, de purge, d’incidents et de gestion des prestataires est revu et validé chaque année par la direction.
  • Tests de résilience conformément à DORA :
    • Plans de Continuité et de Reprise d’Activité (PCA/PRI) testés régulièrement pour valider la capacité à maintenir les services en cas d’incident majeur,
    • Exercices de crise simulant des scénarios de cyberattaque ou d’indisponibilité critique,
    • Tests de charge et de performance sur les infrastructures critiques,
    • Scénarios de bascule et redondance entre environnements pour garantir la disponibilité,
    • Pour les fonctions critiques, recours progressif à des tests de résilience avancés de type “TLPT” (Threat-Led Penetration Testing), exigés par DORA pour les acteurs significatifs.

Droits des personnes

Quels sont vos droits et comment les exercer ?

En application des articles 15 à 22 du RGPD, vous disposez des droits suivants sur vos données personnelles :

  • droit d’accès,
  • droit de rectification,
  • droit à l’effacement,
  • droit à la limitation,
  • droit d’opposition,
  • droit à la portabilité,
  • droit de retrait du consentement.

Vous pouvez exercer vos droits en adressant une demande à : dpo@centralpay.com.
Nous nous engageons à vous répondre dans un délai de 30 jours maximum, sauf cas exceptionnel justifiant une prolongation. En cas de difficulté, vous pouvez également saisir la CNIL.

Comment concilions-nous effacement et obligations légales ?

CentralPay respecte le droit à l’effacement prévu par le RGPD, mais certaines données doivent être conservées en raison d’obligations légales.
Nous supprimons ou anonymisons toutes les données personnelles qui ne sont plus nécessaires.
En revanche, lorsque la loi nous impose de conserver certaines informations (par exemple les écritures comptables pendant 10 ans ou les données KYC pendant 5 ans après la fin de la relation), ces données sont maintenues mais :

  • leur accès est strictement limité,
  • elles ne sont utilisées que pour les finalités imposées par la loi (contrôle ACPR, TRACFIN, obligations probatoires).

Ainsi, nous trouvons un équilibre entre le respect des droits des personnes et nos obligations réglementaires.

Autres garanties

Utilisons-nous des décisions automatisées ou du profilage ?

CentralPay n’applique aucune décision entièrement automatisée produisant des effets juridiques ou significatifs sur les personnes, au sens de l’article 22 du RGPD.
Nous utilisons en revanche des outils de scoring antifraude qui calculent un niveau de risque sur les transactions. Ces résultats servent uniquement d’aide à la décision : lorsqu’un cas est sensible ou à risque, il est systématiquement revu et validé par un contrôle humain.

Utilisons-nous des cookies ou traceurs à des fins publicitaires ?

Sur les parcours de paiement et dans les API, CentralPay n’utilise aucun cookie publicitaire ni traceur marketing. Seuls des cookies ou traceurs strictement nécessaires au fonctionnement technique et à la sécurité des parcours (ex. gestion de session, authentification) peuvent être utilisés.
À ce stade, aucun mécanisme de consentement via bannière n’est nécessaire, puisque nous n’utilisons pas de cookies optionnels.

Comment assurons-nous la résilience et les sauvegardes ?

Oui. L’infrastructure est redondée sur deux data centers localisés en France ; les sauvegardes sont chiffrées et externalisées, testées régulièrement (restores) et retiennent les mêmes contrôles d’accès que la production.

Avons-nous une politique de purge et d’anonymisation documentée ?

Oui, avec délais par objet (transactions/personnelles 24 mois, cartes jusqu’à 24 mois après date d’expiration, KYC 5 ans post-relation, mandats 10 ans, logs 24 mois) et mécanismes (suppression vs anonymisation irréversible), plus traces de purge (logs d’exécution).

Nos environnements de test contiennent-ils des données réelles ?

CentralPay n’utilise jamais de données personnelles réelles dans ses environnements de test ou de préproduction. Tous nos jeux de données internes (ex. cartes, IBAN, profils clients) sont synthétiques ou fictifs et conformes aux standards PCI DSS.

Cependant, les utilisateurs de nos environnements de test (par ex. marchands intégrateurs) peuvent techniquement saisir leurs propres données. Cette pratique est formellement interdite et encadrée par nos conditions d’utilisation.

Si un utilisateur insère par erreur des données personnelles dans un environnement de test, celles-ci :

  • ne sont pas utilisées à des fins de traitement de paiement réel,
  • ne sont pas répliquées en production,
  • et font l’objet d’une purge automatique ou manuelle dès leur détection.

Comment CentralPay gère-t-il l’accès des équipes support aux données ?

Les équipes support de CentralPay n’ont pas d’accès direct et permanent aux données personnelles. L’accès est accordé uniquement en cas de besoin opérationnel (par exemple pour résoudre un incident ou assister un client), et selon les principes suivants :

  • Accès temporaire et justifié : chaque accès est accordé pour une durée limitée et doit être motivé par un ticket ou une demande validée.
  • Principe du moindre privilège : l’agent support ne voit que les données strictement nécessaires pour traiter la demande.
  • Authentification forte (MFA) : tous les accès sont sécurisés par une authentification à plusieurs facteurs.
  • Traçabilité complète : chaque action effectuée par un membre du support est enregistrée et auditée.
  • Revue régulière des habilitations : les droits d’accès sont revus mensuellement pour s’assurer qu’ils restent justifiés.
  • Masquage des données sensibles : les champs sensibles (ex. numéro complet de carte, CVC, IBAN complet) sont systématiquement masqués dans les interfaces, afin que le support ne puisse jamais les visualiser en clair.

Offrons-nous des clauses contractuelles spécifiques RGPD à vos clients ?

Nos CGU/contrats intègrent les clauses nécessaires (confidentialité, sécurité, coopération incidents, sous-traitance, conservation/purge). Des avenants RGPD sont possibles selon les cas d’usage.

Partageons-nous nos politiques et procédures internes ?

La Politique RGPD publique est disponible en ligne. Les politiques internes détaillées (procédures incidents, purge, sécurité) ne sont, par défaut, pas partagées.

Trust Center

Articles

  • Compliance and Operational ResilienceDORA
  • Privacy PolicyRGPD

Compliance and Operational Resilience

Last updated: June 30, 2025

« Our commitment to protecting your transactions and ensuring uninterrupted service. A system that complies with European requirements for security and the continuity of financial services. »

1. Governance and Security Organization

At CentralPay, security is not just a set of technical rules, but a governance approach integrated at every level of the company. Our system is based on a clear organizational structure, defined responsibilities, and regular oversight by management.

The security policy forms the foundation of this system. It establishes the guiding principles for data protection and service continuity. Updated annually, it is approved by the executive committee and distributed to all relevant employees. Each employee is thus made aware of best practices and commits to complying with the established rules.

ICT governance is structured around several key stakeholders. The Chief Information Security Officer (CISO) leads the overall strategy, oversees security controls, and ensures compliance with international standards (PCI DSS, DORA). The technical department is responsible for the day-to-day operation of the infrastructure and ensures the availability of critical systems. Finally, an IT Committee meets regularly to analyze incidents, approve technical and budgetary changes, and ensure continuous improvement in security.

This organizational structure allows us to balance operational responsiveness with regulatory requirements. It also provides our customers with clear visibility: security is monitored, managed, and controlled in a documented manner, with responsibilities shared among management, technical teams, and senior leadership.

2. Access Management and Authorizations

Access management is one of the cornerstones of CentralPay’s security. Each access right is granted according to a formalized procedure approved by management, to ensure that it strictly corresponds to the employee’s business needs. When a new employee joins the company, their access rights are created in Active Directory and approved by their supervisor; upon departure, they are immediately revoked by the IT department.

Security is also based on the principle of least privilege: no one may access more resources than are strictly necessary for their duties. Sensitive access, such as access to critical systems or databases, is systematically subject to multi-factor authentication (MFA). To strengthen this system, periodic reviews of access permissions are conducted every quarter to identify and correct any anomalies.

This rigorous approach ensures complete control over identities and access rights, and protects our customers from any risk of unauthorized access to their data.

3. Technical Safety

CentralPay’s technical security is based on an architecture designed according to the principles of defense in depth. Each layer—from the network to the applications—benefits from redundant protection mechanisms that are regularly tested.

Network Segmentation

The infrastructure is divided into several zones:

  • Public DMZ for servers exposed to the Internet (reverse proxy, WAF, SMTP relay);
  • internal zone for sensitive databases and services;
  • an administrative network reserved for administrative operations;
  • Isolated log area for collecting and analyzing logs.

Traffic between these zones is strictly controlled by redundant firewalls configured for stateful inspection and with NAT rules. These firewalls incorporate anti-spoofing mechanisms and traffic anomaly detection. The configurations are maintained by the “system and network administrators” group and are reviewed periodically.

Physical and Logical Protection

Access to the production facilities is controlled by personalized ID badges, video surveillance, and remote monitoring (SECURITAS). Access to the server rooms and the PCI area is restricted to authorized personnel.
From a logical standpoint, each system access is authenticated using a unique username, reinforced by MFA. Permissions are granted based on defined roles and in accordance with the principle of least privilege.

Surveillance and Intrusion Detection

Monitoring is carried out continuously using a combination of tools:

  • Zabbix, for real-time monitoring of servers, applications, and critical data streams;
  • Wazuh, with Snort integration, for intrusion detection and event correlation;
  • ElasticSearch/Kibana, for aggregating and visualizing logs.

Critical alerts are sent in real time to technical teams via email and text message, and their resolution is tracked in an incident log.

Encryption and Key Management

Sensitive payment data (PANs, expiration dates) is encrypted using AES-256 and rendered unreadable via a salted SHA-512 hash for comparison purposes.
Key management is performed exclusively within certified hardware security modules (HSMs). The master key is split into several components, held by different individuals, to prevent any risk of compromise. Application keys cannot be exported in plain text, and their use is strictly tracked.

By combining these measures, CentralPay ensures a robust technical environment that complies with PCI DSS 4.0.1 requirements and DORA resilience standards.

4. Risk and Incident Management

Risk management is a strategic priority for CentralPay’s governance. The approach adopted aims to anticipate threats, reduce the likelihood of their occurrence, and ensure a rapid and effective response in the event of an incident.

Risk Management

Each year, a risk assessment is conducted using the Ebios methodology, which includes Integration:

  • identifying risks related to security (intrusions, malicious attacks, data breaches) and operations (technical failures, software malfunctions);
  • their analysis in terms of probability and business impact;
  • their classification as Low, Medium, or High;
  • addressing them through preventive measures (patching, network segmentation, encryption, monitoring) or mitigation measures (workarounds, redundancies).

The risk register is updated on an ongoing basis and presented at annual management reviews.

Incident Management

CentralPay has implemented a comprehensive incident management procedure that is aligned with DORA requirements and EBA guidelines:

  • Detection: via automated monitoring (Zabbix, Wazuh) or through internal/external reports (customers, partners).
  • Classification: Each incident is analyzed and classified based on its impact, duration, geographic scope, and criticality.
  • Prioritization: An evaluation matrix (based on urgency of resolution and financial impact) is used to define priority levels ranging from 1 to 4.
  • Regulatory notification: Incidents classified as “major” must be reported to the ACPR:
    • initial report submitted within 4 hours,
    • interim report within 3 business days,
    • final report within 20 days.

Transparency and Feedback

In addition to regulatory reporting, major incidents are communicated transparently to the affected customers. A post-incident analysis is systematically conducted to identify lessons learned, strengthen existing procedures, and implement corrective actions.

This system enables CentralPay not only to respond effectively to incidents, but above all to continuously strengthen its resilience and the trust of its customers.

5. Resilience Tests

CentralPay believes that the resilience of an infrastructure is not proven solely on paper but through regular, documented tests. That is why the platform conducts various test scenarios designed to measure its security level, its disaster recovery capabilities, and the responsiveness of its teams.

Penetration Testing

Penetration tests are conducted on a regular basis by internal teams and specialized service providers to benefit from an independent external perspective. Three methodologies are used:

  • Black-box: The auditor has no prior information, which simulates the behavior of an external attacker;
  • Grey-box: The auditor has partial information (limited user accounts, simplified architecture diagrams) to simulate a realistic scenario involving a malicious user;
  • White-box: The auditor has a complete understanding of the architecture, enabling an in-depth analysis and the detection of complex vulnerabilities.

These tests cover both the network and application layers, with a particular focus on the vulnerabilities listed in the OWASP Top Ten. The results are documented in detailed reports, which include a classification of vulnerabilities by severity (Critical, High, Medium, Low) and recommendations for remediation.

Network Segmentation Tests

CentralPay also performs segmentation tests to verify that the logical partitions between zones (DMZ, internal, administration, logs) are effective and that no unauthorized traffic is possible. These tests ensure that, even if an exposed zone is compromised, the attacker cannot access critical systems.

Simulation Exercises and PCA Switches

In addition to technical tests, crisis simulation exercises are conducted. These exercises involve several teams (technical, compliance, management) and simulate attack scenarios or major outages. The goal is to test not only the robustness of the infrastructure but also the quality of coordination and communication during a crisis.

Finally, PCA switchover tests are conducted at least once a year. These tests verify that critical services can be transferred to the secondary site within the specified time frame and that the teams are fully proficient in the recovery procedures.

These various tests, which are documented and monitored, demonstrate CentralPay’s commitment to a process of continuous improvement in its resilience.

6. High Availability and Disaster Recovery Planning

The availability of payment services is an absolute requirement for CentralPay. To ensure seamless continuity, the company has designed its architecture around the principles of high availability (HA) and a multi-site Business Continuity Plan (BCP).

Multi-site architecture

CentralPay has two separate sites: a primary production site and a secondary site dedicated to the disaster recovery plan. These sites are operated by different providers, incorporate BGP routing, and use Internet connections provided by multiple carriers, which reduces the risk of dependence on a single provider.

Component Redundancy

Each critical component is deployed with redundancy:

  • Firewalls and load balancers: configured in active/active or active/passive mode, allowing for automatic failover in the event of a failure;
  • Application servers: distributed across multiple nodes to ensure fault tolerance;
  • Databases: replicated in real time between the production and disaster recovery sites, ensuring a near-zero RPO;
  • Application proxies and WAFs: deployed at the front end to handle traffic and filter out threats, with automatic failover.

Recovery Objectives (RTO and RPO)

  • RPO (Recovery Point Objective): Thanks to continuous replication, critical data can be restored to a state that is virtually identical to the one immediately prior to the incident;
  • RTO (Recovery Time Objective): Automatic failover mechanisms ensure that critical applications are back online within a few minutes to a maximum of one hour, depending on the type of component.

Failover Scenarios and Tests

The PCA is designed to address various scenarios: hardware failure, network outage, data center unavailability, and major cyberattacks. Each scenario has a documented action plan. Regular failover tests confirm that RTO/RPO commitments are met in practice.

Through this system, CentralPay assures its customers that, even in the event of a major incident, their payment transactions will remain available and secure.

7. Continuity and Backups

The continuity of CentralPay’s services does not rely solely on the redundancy of its infrastructure and its business continuity plan. It is also ensured by a strict data backup and recovery policy.

Daily, encrypted backups

Critical data—whether payment data or the platform’s operational data—is backed up daily. These backups are encrypted using AES-256, in accordance with international standards, to ensure their confidentiality in the event of unauthorized access.

Secure Storage and Rotation

Backups are stored using a redundancy and rotation system:

  • A copy is stored on internal backup servers, which are protected by restricted access;
  • A copy is moved and stored in a secure safe;
  • Other copies are stored off-site to ensure availability even in the event of a physical disaster affecting a site.

Regular rotation of storage media ensures that backups remain reliable and usable.

Restoration Tests

The value of a backup is not measured solely by its preservation but also by its ability to be restored. CentralPay therefore conducts regular restore tests, which verify not only the integrity of the backed-up data but also how quickly it can be restored to the production system.

Thanks to this approach, CentralPay ensures that, even in the event of a major incident, its customers will not suffer any significant data loss and will be able to resume their operations without prolonged disruption.

8. Management of Critical Service Providers

CentralPay recognizes that the security and continuity of its services also depend on the strength of its partners. That is why the company has implemented strict governance procedures for managing critical service providers, particularly those directly involved in hosting, data processing, or payment services.

Audits and Certifications

Each year, an audit is conducted on the primary hosting provider and service providers deemed critical. The goal is to verify the robustness of their security measures, their business continuity capabilities, and their regulatory compliance.
For service providers that process, store, or transmit card data, CentralPay requires PCI DSS certification and obtains an Attestation of Compliance (AOC) that is updated annually.

Contractual Provisions and Oversight

Contracts with critical service providers include specific DORA clauses, covering, in particular:

  • service level agreements (SLAs regarding availability and performance),
  • safety requirements,
  • the implementation of a business continuity plan (BCP) and disaster recovery plan (DRP) compatible with CentralPay’s,
  • immediate notification in the event of a security incident.

CentralPay maintains an up-to-date inventory of all its critical service providers and their associated services. This inventory is regularly updated and serves as the basis for reporting to the ACPR and other supervisory authorities.

Sustainability and Continuous Improvement

Finally, the relationship with service providers is not limited to one-time reviews. The results of audits, continuity tests, and any incidents are presented to the governance committee. Action plans are then developed to strengthen the security or availability of outsourced services.

As such, CentralPay guarantees its customers that third parties who contribute to its critical services are subject to the same standards as its own teams.

FAQ - Compliance and Resilience

Governance and Responsibilities

Who is responsible for security at CentralPay?
Security is overseen by our CISO (Chief Information Security Officer), who reports directly to the President. The CISO relies on an ICT committee and a risk management framework aligned with ISO 27005 and the DORA regulation. The CISO can be reached at the following address: rssi@centralpay.com

Do you have a documented security policy?
Yes. Our Information System Security Policy (ISSP) defines the rules that apply to all our teams and service providers. It covers data classification, access management, system protection, incident management, business continuity, and oversight of IT service providers.

How do you integrate security into your strategic decisions?
Security and resilience are integrated into our comprehensive risk management framework. This framework includes ISO/DORA-aligned risk mapping, a risk appetite policy, and monitoring through key risk indicators (KRIs). Security decisions are reviewed by the Security & Compliance Committee and approved by senior management.

How do you monitor your security systems?
We follow the three lines of defense model: business teams perform operational controls, compliance and ongoing monitoring provide oversight, and periodic audits conduct an independent assessment.

Data and System Protection

How do you protect CentralPay’s data and systems?
All data is encrypted: TLS 1.2/1.3 for data in transit and AES-256 for data at rest. Card data is processed exclusively in a PCI DSS Level 1-certified environment and immediately tokenized, so that no full card numbers are stored in plain text.

Our infrastructure is segmented and protected by firewalls, IDS/IPS, and SOC monitoring. Access to sensitive environments is restricted, follows the principle of least privilege, and is protected by MFA. All workstations are encrypted, secured by antivirus/EDR software, and updated automatically.

Safety Tests and Inspections

Do you conduct security tests?
Yes. We regularly conduct independent penetration tests, automated vulnerability scans, and external audits (including PCI DSS). These checks help us identify vulnerabilities and continuously strengthen our security measures.

How do you handle logging?
Logs are retained for 24 months, time-stamped, protected by encryption, and integrated into our security information and event management (SIEM) system. Access to them is strictly limited to authorized teams.

How do you manage vulnerabilities and updates?
We follow a strict patch management policy: critical vulnerabilities are patched within 24 hours, high-severity vulnerabilities within 7 days, and other patches are applied on a scheduled basis. Compliance is monitored through scans and compliance reports.

Organizational Structure and Safety Culture

How do you raise your employees’ awareness of safety?
All employees undergo mandatory annual training on cybersecurity, the GDPR, and anti-money laundering and counter-terrorism financing (AML/CTF) regulations. Regular awareness campaigns (phishing exercises, e-learning) complement this program. Technical teams receive more in-depth training.

How do you ensure that access remains restricted?
We follow the principle of least privilege: each user has access only to the resources necessary for their role. Permissions are justified, temporary, and systematically tracked.

How do you manage administrator access?
Access to elevated privileges is limited to a small number of individuals, is subject to MFA, is tracked, and is reviewed regularly. Such access is granted only for specific purposes and for a limited period of time.

Proactive Planning and Continuous Improvement

How do you anticipate emerging threats?
We conduct active cybersecurity monitoring through bulletins from CERT-FR, ANSSI, software vendors, and cloud providers. This threat intelligence activity allows us to adapt our defenses in real time.

How do you continuously improve your security?
Every incident, audit, or test is followed by a documented review and a corrective action plan. Our policies and procedures are reviewed annually to integrate these lessons learned and regulatory changes.

Resilience and Continuity

How do you ensure the continuity of your services?
We have an Emergency and Business Continuity Plan (PUPA) that includes a Business Continuity Plan (BCP) and a Disaster Recovery Plan (DRP). These plans are regularly tested through crisis drills and failover scenarios.

How do you ensure availability and redundancy?
Our services are based on a redundant architecture spanning multiple European regions, ensuring availability of more than 99.95%.

What are your RPO and RTO goals?
CentralPay regularly defines and tests its business continuity objectives:

  • RPO (Recovery Point Objective): less than 1 minute for critical systems, thanks to real-time data replication.
  • RTO (Recovery Time Objective): less than 15 minutes for the restoration of essential services, thanks to our redundant architecture and failover procedures.
    These objectives are validated during our business continuity and disaster recovery drills and incorporated into our DORA framework.

How do you manage your backups?
Backups are encrypted, isolated, replicated, and regularly tested to ensure they can be restored. They follow the same security policies as production environments.

Do you conduct resilience tests in accordance with DORA?
Yes. We conduct crisis exercises (simulated cyberattacks, critical outages), load and performance tests, failover scenarios, and—for critical functions—advanced tests such as TLPT (Threat-Led Penetration Testing).

Relationships with Service Providers

How do you select your critical service providers?
Each service provider undergoes due diligence (security, compliance, data location, SLA). The contracts include GDPR and DORA clauses (security, incident notification, right to audit).

How do you monitor your service providers over time?
We maintain a DORA registry that lists all of our IT service providers and identifies critical ones. These critical providers are subject to enhanced oversight, including regular reviews, audits, ISO/PCI certifications, and resilience assessments.

Incident Management

What happens in the event of a security incident?
We follow an incident management procedure that includes: detection, classification, containment, remediation, and forensic analysis. If necessary, we notify the CNIL within 72 hours and inform the affected customers. Every major incident results in a post-incident review and a corrective action plan that is monitored until the incident is closed.

Privacy Policy

Last updated: September 15, 2025

At CentralPay, the protection of personal data is at the heart of our commitments. As an Electronic money Institution authorized by the ACPR (authorization No. 17138), we process personal data in accordance with the General Data Protection Regulation (GDPR – EU 2016/679) and applicable French law.

This policy clearly and transparently describes how we process personal data in connection with the provision of our payment services.

1. Who is the data controller?

The data controller is:
CentralPay – 19 rue Edouard VAILLANT – 37000 TOURS
DPO contact: dpo@centralpay.com

2. What data do we collect?

CentralPay collects only the data strictly necessary to provide its payment services and to comply with its legal and regulatory obligations.

Identification Information

  • Last name, first name, title.
  • Date and place of birth.
  • Nationality.
  • Position (executive, legal representative, UBO).

Contact Information

  • Email address.
  • Phone number (cell or landline).
  • Business or personal mailing address (as applicable).

Payment Information

  • Bank account information: IBAN and BIC.
  • Card data: card number (collected only in a PCI DSS-compliant environment and immediately tokenized), expiration date, card brand (Visa, Mastercard, etc.), issuing country, last 4 digits.
  • Important: CentralPay never discloses the full card number or the security code to the Merchant.

Transaction Data

  • Transaction ID, date, and time.
  • Amount, currency, payment status.
  • Order reference (orderId).
  • Transaction history (one-time payments, recurring payments, installment payments, refunds).

Security and Anti-Fraud Data

  • Connection IP address.
  • Technical profile of the device (browser, language, screen resolution) during 3DS authentication.
  • Internal anti-fraud results and scores.
  • Possible monitoring status (technical blacklist).

KYC/AML-CFT Compliance Data

  • Identity documents (NIC, Passport, Residence permit).
  • Proof of address (utility bill, receipt).
  • Company legal documents (Commercial register, Articles of association, Register of Beneficial Owners).
  • Information on UBOs (names, ownership percentages).

Technical Data (Service-Related)

  • Application and technical logs (API logs).
  • Processing events (webhooks sent to Merchants).
  • Technical tracking identifiers (transactionId, customerId, etc.).

3. For what purposes do we use your data?

CentralPay processes your personal data solely for specific, explicit, and legitimate purposes. Each processing activity is based on a legal basis that complies with the GDPR.

Payment Processing and Service Management

  • Purpose: To process your payment transactions (SEPA, credit cards, Direct Debit, Bank transfers, recurring or installment payments), handle billing, and manage cash flows.
  • Data involved: bank account information (IBAN, BIC), card data (token, schema, country, masked PAN), transaction IDs, amounts, currencies, order references.
  • Legal basis: performance of the contract (Art. 6.1.b of the GDPR).

Identity Verification and Regulatory Requirements (KYC/AML-CFT)

  • Purpose: To comply with legal obligations regarding the fight against money laundering and terrorist financing (AML/CFT) and with the supervisory requirements of the ACPR.
  • Data covered: identification data (last name, first name, date of birth, nationality), identity documents, Proof of address, legal documents of the company, information on UBOs.
  • Legal basis: legal obligation (Art. 6.1.c of the GDPR; Art. L561-1 et seq. of the Monetary and Financial Code).

Fraud Prevention and Detection

  • Purpose: to secure transactions, prevent unauthorized or fraudulent payments, and enforce strong authentication rules (PSD2/3DS).
  • Data involved: IP address, technical fingerprint of the browser/device, card scheme and issuing country, results of anti-fraud checks, and any monitoring status.
  • Legal basis: legal obligation (PSD2) and legitimate interest (payment security—Art. 6.1.f of the GDPR).

Customer Relationship Management and Support

  • Purpose: to communicate with customers and users (confirming transactions, sending payment links, sending notifications), respond to support requests, and follow up on complaints and Disputes.
  • Data involved: email, phone number, customer credentials, and associated transaction data.
  • Legal basis: performance of the contract (Art. 6.1.b GDPR) and legitimate interest (customer relationship management).

Compliance with accounting, tax, and reporting requirements

  • Purpose: to retain certain data in order to comply with legal retention requirements (Commercial Code, General Tax Code) and to produce accounting and evidentiary documentation.
  • Data in question: transactional data (amounts, currencies, dates, statuses, references), and bank account information related to transactions.
  • Legal basis: legal obligation (Art. 6.1.c GDPR).

Improving Our Services and Technical Security

  • Purpose: To analyze the use of our services, optimize performance, and ensure resilience and cybersecurity, in accordance with the DORA regulation.
  • Data in question: technical logs, events (webhooks), technical identifiers, and anonymized usage statistics.
  • Legal basis: legitimate interest (Art. 6.1.f of the GDPR).

4. What is the legal basis for this processing?

Each data processing activity is based on a clearly defined legal basis:

  • Contract performance (Art. 6.1.b of the GDPR): processing payments, account management, customer relations, and support.
  • Legal obligation (Art. 6.1.c of the GDPR): AML/CFT compliance (Art. L561 of the French Monetary and Financial Code), accounting and tax obligations (Commercial Code, General Tax Code), regulatory obligations (PSD2, ACPR).
  • Legitimate interest (Art. 6.1.f of the GDPR): fraud prevention, system security, dispute resolution, and service improvement.
  • Consent (Art. 6.1.a GDPR): only for certain optional marketing communications or as required by law.

5. How long do we retain your data?

CentralPay follows a strict data retention schedule that complies with the requirements of the GDPR, the Monetary and Financial Code, and the Commercial Code.

We distinguish between:

a) Financial Transactions (Accounting Entries and Supporting Documents)

  • Retained for 10 years in accordance with accounting and evidentiary requirements (Art. L123-22 of the Commercial Code).
  • Data involved: transaction IDs (transactionId), date, amount, currency, status, order ID (orderId).
  • This information is required for contractual purposes and accounting and is not anonymized.

(b) Personal data associated with transactions

  • Stored for a maximum of 24 months and then irreversibly anonymized.
  • Data in question:
    • Payer’s contact information (email, phone number),
    • IP address, browser/device fingerprint (3DS),
    • Card data (token, masked PAN, expiration date, schema, issuing country),
    • Anti-fraud results (score, blacklist status).
  • This information is no longer retained beyond 24 months because it is no longer required by law or under any contract.

(c) Payment card data

  • Stored for up to 24 months after the card’s expiration date, then deleted or anonymized.
  • CentralPay never discloses the full PAN or the CVC outside its PCI DSS environment.

d) Bank Account information (IBAN/BIC) and SEPA direct debits

  • Retained for the duration of the term of office plus 10 years (contractual evidence), then deleted or anonymized.

e) KYC / AML-CFT Data

  • Retained for 5 years after the end of the business relationship (Art. L561-12 CMF), then deleted or anonymized.
  • Data covered: identity documents, proof of address, company legal documents, and information on UBOs.

f) Subscriptions and installment payments

  • Retained for the duration of the subscription plus 5 years (for evidentiary purposes), then anonymized.
  • Data involved: subscription ID, payment schedule, link to payment method.

g) Technical logs and webhooks

  • Stored for up to 24 months, then anonymized.
  • Data involved: API logs, processing events, technical identifiers (customerId, eventId), statuses, timestamps.

6. Who are the recipients of your data?

Your data may be shared only with:

  • CentralPay internal services (operations, compliance, support, security).
  • Payment partners and financial institutions (acquirers, SEPA settlement systems, card schemes).
  • Technical service providers (cloud hosting, KYC provider, SMS/email delivery) that are subject to contractual terms compliant with the GDPR.
  • Competent authorities (ACPR, TRACFIN, Banque de France, judicial authorities).

We never sell your data to third parties.

7. Where is your data processed?

  • The data is hosted in the European Union, primarily in France.
  • In the event of a transfer outside the EU (e.g., SMS or email service provider), standard contractual clauses (SCCs) and additional measures are implemented to ensure an equivalent level of protection.

8. What are your rights?

In accordance with Articles 15 through 22 of the GDPR, you have the following rights:

  • Right of access, correction, and deletion.
  • Right to restriction, objection, and data portability.
  • Right to withdraw consent (if applicable).
  • The right to file a complaint with the CNIL.

You can exercise your rights by writing to: dpo@centralpay.com (response within 30 days).

9. Safety

CentralPay implements a security policy aligned with PCI DSS, ISO 27001/27005 standards, and the European DORA (Digital Operational Resilience Act) regulation. Our measures cover the entire lifecycle of data and payment services to ensure their confidentiality, integrity, and availability.

Security is primarily ensured through clear governance and proactive risk management. We have a risk management framework approved by senior management, which includes a risk appetite policy, a risk map aligned with ISO and DORA standards, and risk indicators that are monitored regularly. This framework is implemented through a three-lines-of-defense structure and overseen by a security and compliance committee.

Data protection is based on systematic encryption, both in transit (TLS 1.2/1.3) and at rest (AES-256), with centralized key management. Payment data is processed exclusively in a PCI DSS Level 1-certified environment and undergoes irreversible tokenization, which prevents any exposure of full card numbers or security codes. In addition, we enforce strict policies for the automatic deletion and anonymization of personal data once the retention periods specified by the GDPR have expired.

Access to systems is strictly controlled through centralized identity management based on the principle of least privilege. Every employee is required to undergo strong two-factor authentication (MFA), and access permissions are reviewed regularly to ensure they remain appropriate.

Our infrastructure is continuously monitored. Sensitive operations are comprehensively logged and time-stamped, and a real-time monitoring system, coupled with an SIEM, enables us to quickly detect security incidents.

Operational resilience is ensured by a business continuity framework aligned with DORA. CentralPay has implemented an Emergency and Business Continuity Plan (PUPA) that includes regularly tested disaster recovery (PCA) and business continuity (PRI) components. Penetration tests and crisis management exercises are conducted annually, while a strict ICT outsourcing policy ensures the ongoing evaluation of critical service providers and the maintenance of a regulatory information registry.

Incident management follows a formalized procedure for detection, classification, and resolution. In the event of a major incident, we comply with the regulatory reporting deadlines for the ACPR and the CNIL, and a systematic review is conducted to continuously improve our security measures.

Finally, CentralPay is committed to continuous improvement. Internal and external audits, including independent PCI DSS and cybersecurity audits, are conducted regularly. Our ongoing monitoring and periodic audit procedures are reviewed annually to ensure their effectiveness and compliance with international standards and regulatory requirements.

10. Policy Update

This policy may be amended to reflect changes in data processing practices and legal requirements. Any updates will be posted on our website and, if necessary, communicated to the affected customers.

Subcontractors

In providing its payment services, Centralpay relies on a number of processors as defined in Article 4 of the General Data Protection Regulation (GDPR). These processors may be required to process personal data on behalf of Centralpay, exclusively in accordance with documented instructions and within the scope of the purposes of the service to which they contribute.

This page lists the subcontractors that may be involved in the processing of personal data belonging to Account Owners, Merchants, and Payers who use Centralpay services. It is updated as our system evolves.

SubcontractorPurposeCountry Where Data Is ProcessedData Categories
Amazon Web Services (AWS)Cloud hosting for certain services and application dataIrelandAll data processed by the departments
Comply Advantage (IVXS)AML/CFT Screening and Verification Against International Sanctions ListsRomaniaIdentification Information
DotfileManagement of onboarding processes, collection and updating of KYC/KYB recordsFranceIdentification Information, Supporting Documents
Gpayments3D Secure authentication for Card Transactions (second service provider)IrelandCard data, authentication
InnovestThe group’s parent company; internal recipient for the purposes of governance, audit, compliance, and consolidated reportingFranceGovernance and Reporting Data
MicrosoftManagement and Control of Cash FlowsFranceTransaction and Accounting Data
Netcetera3D-Secure Authentication for Card Transactions (Access Control Server)SwitzerlandCard data, authentication
OnfidoAutomated verification of identification documents and biometric data (facial recognition, liveness detection)EuropeIdentification data, biometric data
QomboVerification of Beneficiary (verification of the beneficiary of a SEPA bank transfer)FranceIdentification Information, IBAN
Tanla Digital LabsSending text messages (authentication codes, notifications)EuropePhone number, message content

Supervision of Subcontractors and Change Control Procedures

In accordance with Article 28 of the GDPR, all processors engaged by Centralpay act exclusively on the basis of documented instructions, are bound by strict contractual obligations regarding confidentiality and security, and may not use personal data for any purposes other than those defined by Centralpay.

Any substantial change to this list will be announced in advance by any appropriate means (notification on the Merchant Portal, email, or a public update to this page), allowing the individuals concerned, if applicable, to object to such changes.

If you have any questions regarding the processing of your data or the exercise of your rights, you can contact our Data Protection Officer at: dpo@centralpay.eu.

FAQ - Privacy Policy

Governance and Responsibilities

Data Controller and DPO Contact

CentralPay, an Electronic money Institution (EMI), is the data controller for its payment services.
DPO contact: dpo@centralpay.com (response within 30 days).

Data Collected

What data do we collect?

As part of the provision of its payment services and in order to comply with its legal obligations, CentralPay collects only the data that is strictly necessary. This data varies depending on the type of transaction (payment, KYC verification, fraud prevention, customer support). It falls into several categories:

  • Identifying information: last name, first name, title, date and place of birth, nationality, and role (e.g., legal representative, executive, or Beneficial Owner—UBO).
  • Contact information: email address, phone number, mailing address.
  • Payment information: bank account details (IBAN, BIC); card information processed exclusively in a PCI DSS-certified environment (full card number and CVC collected solely for tokenization and never exposed in plain text), expiration date, card brand (Visa, Mastercard, etc.), issuing country, and last 4 digits.
  • Transaction data: transaction ID (transactionId), date and time, amount, currency, status, order ID (orderId), transaction history (one-time payments, recurring payments, split payments, refunds).
  • Security and anti-fraud data: IP address, 3DS fingerprint (browser/device), anti-fraud results and scores, and any technical monitoring status.
  • KYC/AML-CFT compliance data: official identity documents, proof of address, legal documents pertaining to the company (e.g., Commercial register, Articles of association), information on ultimate Beneficial Owners (UBOs and ownership percentages).
  • Technical data: application logs (API logs), events sent to Merchants (webhooks), technical identifiers (customerId, eventId).

CentralPay does not collect any sensitive data as defined in Article 9 of the GDPR (health, religion, political opinions, sexual orientation, etc.), unless required to do so by law in exceptional circumstances.

Purposes

Why do we use your data?

CentralPay processes your personal data solely for specific, explicit, and legitimate purposes. This processing is carried out in connection with the provision of our payment services, compliance with our regulatory obligations, and the security of our systems. The main purposes are as follows:

  • Payment Processing: processing payment transactions (SEPA, credit cards, recurring or installment payments), managing cash flows, issuing invoices, and tracking payments.
  • Compliance with regulatory requirements: enforcement of anti-money laundering and counter-terrorism financing (AML/CTF) rules, know-your-customer (KYC) verification, legal document retention, and supervision by the ACPR.
  • Fraud prevention and detection: implementation of the security controls required by PSD2 (strong authentication, 3DS), calculation of anti-fraud scores, and alert management.
  • Customer Relations and Support: communicating with customers and users (notifications, confirmations, sending payment links), handling support requests, and managing complaints and disputes.
  • Accounting and tax obligations: retention of supporting documents; compliance with the provisions of the Commercial Code and the General Tax Code.
  • Technical Improvement and Security: Monitoring the performance and availability of our services; strengthening operational resilience in accordance with the DORA regulation; and continuously improving the customer experience and the security of our systems.

Legal Basis

What is the legal basis for our data processing?

CentralPay processes your personal data solely for specific, explicit, and legitimate purposes. This processing is carried out in connection with the provision of our payment services, compliance with our regulatory obligations, and the security of our systems. The main purposes are as follows:

  • Payment Processing: processing payment transactions (SEPA, credit cards, recurring or installment payments), managing cash flows, issuing invoices, and tracking payments.
  • Compliance with regulatory obligations: enforcement of anti-money laundering and counter-terrorism financing (AML/CTF) rules, know-your-customer (KYC) verification, legal document retention, and supervision by the ACPR.
  • Fraud prevention and detection: implementation of the security controls required by PSD2 (strong authentication, 3DS), calculation of fraud scores, and alert management.
  • Customer Relations and Support: communicating with customers and users (notifications, confirmations, sending payment links), handling support requests, and managing complaints and Disputes.
  • Accounting and Tax Obligations: Retention of supporting documents; compliance with the provisions of the Commercial Code and the General Tax Code.
  • Technical Improvement and Security: Monitoring the performance and availability of our services, strengthening operational resilience in accordance with the DORA regulation, and continuously improving the customer experience and the security of our systems.

How long do we retain your data?

CentralPay follows specific retention periods based on legal requirements and operational needs. At the end of these periods, the data is either deleted or irreversibly anonymized.

  • Financial transactions (supporting documents): retained for 10 years, in accordance with the Commercial Code.
  • Personal data associated with transactions (email, phone number, IP address, 3DS fingerprints, masked PAN, card token, fraud scores): retained for a maximum of 24 months, then deleted or anonymized.
  • Card data (token + metadata): retained for up to 24 months after the card’s expiration date. The full PAN and CVC are never stored in plain text.
  • Payment Requests (emails/text messages): Retained for up to 24 months.
  • Subscriptions and installment payments: retained for the duration of the subscription plus 5 years.
  • Bank Accounts (IBAN/BIC) and SEPA direct debits: retained for the duration of the mandate plus 10 years (contractual evidence).
  • KYC / AML-CFT: Data retained for 5 years after the end of the business relationship (Art. L561-12 of the French Monetary and Financial Code).
  • Technical logs and webhooks: retained for 24 months.

Beyond these time periods, CentralPay retains only anonymized data or data that is strictly necessary to comply with a legal obligation.

Location and Transfers

Where is your data processed?

The data processed by CentralPay is primarily hosted in the European Union—mainly in France—in environments certified to PCI DSS and ISO 27001 standards.

To date, CentralPay does not transfer personal data outside the European Union.
If a transfer outside the EU were to become necessary in the future (for example, to an SMS or email service provider), it would be governed by:

  • an impact analysis of the transfer,
  • the implementation of the European Commission’s Standard Contractual Clauses (SCCs),
  • additional technical measures (encryption, segmentation, access control),
  • and transparent communication with our customers.

Data Transfers Outside the EU: How Do We Handle Them?

To date, CentralPay does not transfer personal data outside the European Union.
All data is hosted and processed within the EU, primarily in France and within certified (PCI DSS) infrastructure.

If, in the future, a transfer outside the EU were to be necessary (for example, to an SMS or email service provider), CentralPay undertakes to:

  • conduct an impact analysis of the transfer,
  • apply the European Commission’s Standard Contractual Clauses (SCCs),
  • implement additional technical measures (encryption, segmentation, access control),
  • and keep its customers fully informed.

Nature of the Data

Do we process sensitive data?

No. CentralPay does not process any sensitive data as defined in Article 9 of the GDPR (health, religion, political opinions, sexual orientation, etc.).
We collect only the information strictly necessary to process payments and comply with our legal obligations (anti-money laundering and counter-terrorism financing, ACPR supervision).

Do we collect data from minors?

CentralPay provides its services exclusively to businesses (B2B). We therefore do not knowingly collect data from minors.
If, indirectly, a minor is required to make a payment, data processing is limited to the necessary payment information (e.g., bank or card details), and is always carried out under the responsibility of the minor’s legal guardian when verification is required.

GDPR Compliance

Do we conduct impact assessments (PIA)?

Yes, we conduct AIPDs (PIAs) for processing operations that may pose a high risk (e.g., KYC, anti-fraud/3DS, card tokenization, longitudinal analyses). Residual risks and mitigation measures are documented.

How do we ensure data minimization and privacy by design?

We collect only the fields necessary for each specific purpose, segregate environments (LIVE/pre-production), do not use any real data in testing, limit webhook payloads to the minimum necessary, and automatically purge or anonymize data upon expiration.

How does CentralPay document its GDPR compliance?

  • Public GDPR Policy (website).
  • Record of data processing (internal, up-to-date).
  • PIA on High-Risk Processing (Internal).
  • Policies/procedures (security, data deletion, incidents, rights).
  • Internal Control Reports (ACPR).

Subcontractors

How do we supervise our service providers?

Each service provider is subject to contractual requirements (Art. 28): security measures, confidentiality, incident reporting, auditability, data location, and controlled sub-contracting. Initial due diligence + regular reassessment (security, SLA, compliance).

Which service providers do we use?

Upon request and after signing an NDA, we can provide an up-to-date list of our service providers, organized by category (hosting/cloud, KYC, email/SMS delivery, fraud prevention, support), along with their geographic locations.

How do we select our key service providers?

CentralPay has a policy for managing subcontractors that complies with both the GDPR (Article 28) and the DORA Regulation.

During the selection process, we conduct a thorough due diligence review covering security (certifications, technical measures), regulatory compliance (GDPR, PSD2, AML/CFT), data location and legal framework, the service provider’s financial stability, and the service levels (SLAs) offered. For critical service providers, we examine in particular their integration into the payment services value chain and their role in ensuring operational resilience.

Each contractual relationship includes clauses that comply with Article 28 of the GDPR (confidentiality, security, incident notification, and restrictions on cascading subcontracting) as well as, where applicable, Standard Contractual Clauses (SCCs) to govern transfers outside the European Union.

In accordance with DORA, we maintain a registry of ICT service providers and identify those considered critical service providers. These service providers are subject to enhanced evaluation, with specific contractual requirements regarding availability, integrity, continuity, and resilience testing.

Monitoring is conducted through regular reviews (inspections, audit reports, SOC/ISO-type compliance certifications, security questionnaires), a contractual right to audit, and periodic reporting mechanisms. We perform integration of these assessments into our ICT risk mapping and our DORA monitoring committees.

Security and Resilience

What technical safeguards do we use?

CentralPay protects data and systems by combining robust technical mechanisms that comply with the highest international standards.
Communications are secured through systematic encryption: TLS 1.2/1.3 for data in transit and AES-256 for data at rest, with centralized key management.
Card data is processed exclusively in a PCI DSS Level 1 environment, with data collection in a dedicated area and irreversible tokenization to prevent any exposure of the full PAN.
Access to the systems is controlled by RBAC (role-based access control) mechanisms and protected by strong authentication (MFA), with regular reviews of access privileges.
All sensitive actions are logged with a timestamp and cannot be tampered with; this logging is integrated into an SIEM system that provides real-time detection and alerts.
The infrastructure is compartmentalized: network segmentation, strict separation of environments (production, testing, pre-production), and secure management of secrets.
Finally, CentralPay regularly tests its system through penetration tests, vulnerability scans, and independent external audits.

How does our organization ensure safety?

Security relies not only on technology but also on strong organization and governance.
CentralPay implements a risk management framework that includes detailed risk mapping, key performance indicators (KPIs), and a risk appetite policy approved by management.
Oversight is based on the recognized three lines of defense model: operations provide first-line controls, an independent compliance and ongoing monitoring function serves as the second line, and internal audit constitutes the third line.
A Security and Compliance Committee meets regularly to steer strategy and update key policies and procedures (access management, incident response, data purges, and the exercise of GDPR rights).
Finally, the security culture is reinforced through regular training for teams, covering cybersecurity, personal data protection, and AML/CFT obligations.

What should we do in the event of a security incident?

CentralPay has a formalized incident management procedure.
In the event of an incident, we quickly detect, assess, and immediately contain it, followed by remedial actions.
All events are fully logged and investigated (forensically) to identify the cause and prevent recurrence.
When required by regulation, we notify the CNIL within a maximum of 72 hours and inform the affected individuals in the event of a high-risk incident.
Each incident results in a lessons-learned review and the implementation of a corrective action plan, which is monitored until the issue is fully resolved.

Our Security Audits

CentralPay is subject to multiple levels of security controls and testing, both internal and external:

  • Regular external audits:
    • Annual PCI DSS Level 1 certification for the collection and processing of payment data,
    • Independent cybersecurity audits,
    • Penetration tests conducted by third-party service providers to identify and fix vulnerabilities.
  • Ongoing internal controls (second line of defense): security clearance reviews, vulnerability scans, and monitoring of critical systems.
  • Periodic independent audits (third line of defense): internal and external audits of the security framework and regulatory compliance (ACPR, DORA).
  • Annual Policy Review: All of our policies regarding security, data purging, incidents, and vendor management are reviewed and approved annually by management.
  • Resilience testing in accordance with DORA:
    • Business Continuity and Disaster Recovery Plans (BCP/DRP) that are regularly tested to verify the ability to maintain services in the event of a major incident,
    • Crisis exercises simulating cyberattack scenarios or critical system outages,
    • Load and performance testing of critical infrastructure,
    • Failover and redundancy scenarios across environments to ensure availability,
    • For critical functions, a gradual shift toward advanced resilience tests such as “TLPT” (Threat-Led Penetration Testing), as required by DORA for significant entities.

Human Rights

What are your rights, and how can you exercise them?

Pursuant to Articles 15 through 22 of the GDPR, you have the following rights regarding your personal data:

  • right of access,
  • right to correction,
  • right to erasure,
  • right to restriction,
  • right to object,
  • right to data portability,
  • right to withdraw consent.

You can exercise your rights by sending a request to: dpo@centralpay.com.
We are committed to responding to you within a maximum of 30 days, except in exceptional cases that warrant an extension. If you encounter any difficulties, you may also file a complaint with the CNIL.

How do we balance data erasure with legal obligations?

CentralPay respects the right to erasure as provided for by the GDPR, but certain data must be retained due to legal obligations.
We delete or anonymize all personal data that is no longer necessary.
However, when the law requires us to retain certain information (for example, accounting records for 10 years or KYC data for 5 years after the end of the relationship), this data is retained, but:

  • access to them is strictly limited,
  • They are used only for purposes required by law (ACPR audits, TRACFIN, evidentiary obligations).

In this way, we strike a balance between respecting people’s rights and meeting our regulatory obligations.

Other Coverages

Do we use automated decisions or profiling?

CentralPay does not apply any fully automated decisions that produce legal or significant effects on individuals, as defined in Article 22 of the GDPR.
However, we do use anti-fraud scoring tools that calculate a risk level for transactions. These results are used solely as a decision-making aid: when a case is sensitive or high-risk, it is systematically reviewed and validated by a human reviewer.

Do we use cookies or trackers for advertising purposes?

In payment flows and APIs, CentralPay does not use any advertising cookies or marketing trackers. Only cookies or trackers that are strictly necessary for the technical operation and security of the payment flows (e.g., session management, authentication) may be used.
At this point, no banner-based consent mechanism is necessary, since we do not use optional cookies.

How do we ensure resilience and backups?

Yes. The infrastructure is redundant across two data centers located in France; backups are encrypted and stored off-site, tested regularly (restores), and are subject to the same access controls as the production environment.

Do we have a documented policy for data purging and anonymization?

Yes, with retention periods by category (transactions/personal data: 24 months; cards: up to 24 months after the expiration date; KYC: 5 years after the relationship ends, power of attorney: 10 years, logs: 24 months) and mechanisms (deletion vs. irreversible anonymization), plus records of data purging (execution logs).

Do our test environments contain real data?

CentralPay never uses actual personal data in its test or pre-production environments. All of our internal datasets (e.g., cards, IBANs, Customer Profiles) are synthetic or fictitious and comply with PCI DSS standards.

However, users of our test environments (e.g., Merchant integrators) can technically enter their own data. This practice is strictly prohibited and governed by our Terms of Use.

If a user accidentally enters personal data into a test environment, that data:

  • are not used for actual payment processing,
  • are not replicated in production,
  • and are automatically or manually purged as soon as they are detected.

How does CentralPay manage support teams’ access to data?

CentralPay’s support teams do not have direct, permanent access to personal data. Access is granted only when necessary for operational purposes (for example, to resolve an incident or assist a customer), and in accordance with the following principles:

  • Temporary and Justified Access: Each access request is granted for a limited period and must be supported by a ticket or an approved request.
  • Principle of least privilege: The support agent sees only the data strictly necessary to process the request.
  • Strong Authentication (MFA): All access is secured through multi-factor authentication.
  • Full traceability: Every action performed by a support team member is logged and audited.
  • Regular review of access permissions: Access rights are reviewed monthly to ensure they remain justified.
  • Masking of Sensitive Data: Sensitive fields (e.g., full card number, CVV, full IBAN) are systematically masked in the interfaces so that support staff can never view them in plain text.

Do we provide your customers with specific GDPR-compliant contract terms?

Our Terms of Service and contracts include the necessary provisions (confidentiality, security, incident response, subcontracting, data retention and deletion). GDPR addenda may be included depending on the specific use case.

Do we share our internal policies and procedures?

The public GDPR policy is available online. Detailed internal policies (incident response, data retention, security) are not shared by default.

Principes de réserve

La réserve représente les sommes qui sont maintenues sur votre compte de réserve CentralPay afin de permettre de couvrir les R-transactions (rejets, refus, retours, remboursements, contestations, impayés) lorsque votre compte de paiement n’est pas solvable. Ses paramètres sont définis en fonction du profil de risque financier de votre compte et sont actualisés en fonction de l’analyse de vos R-transactions sur une période suffisante. Les transactions récurrentes par prélèvement SEPA et par carte bancaire sont particulièrement sujettes au risque de R-transactions.

CentralPay possède 3 types de garanties de protection qui peuvent s’appliquer aux marchands, en fonction de la nature de leur contrat :

1. Le collatéral

Il représente la somme fixe versée en début de relation, servant à couvrir le risque de crédit dans le cas où le marchand ne pourrait pas satisfaire ses obligations de remboursement envers ses clients.

Le détail du collatéral est visible depuis le Portail Marchand : Administration Versements Somme des cautions

2. Le pied de compte

En l’absence de collatéral, une somme fixe peut être prélevée directement sur les opérations afin de garantir le remboursement des clients en cas de besoin. Le compte doit donc dépasser la valeur du pied de compte pour autoriser les versements sortants (payout).

Le détail du pied de compte est visible depuis le Portail Marchand : Administration Versements Seuil fixe

3. La réserve glissante

Selon le secteur d’activité et les processus de règlement du compte, une réserve glissante (« rolling réserve » en anglais) peut être automatiquement ouverte. Il s’agit d’une garantie de protection supplémentaire qui permet de maintenir un certain pourcentage du volume d’encaissement sur votre compte de réserve afin de permettre l’initiation de remboursements automatiques en cas de contestation de transaction, de fraude ou encore afin de couvrir d’éventuels frais opérationnels si votre compte de paiement n’est pas solvable. Cette somme appartient à la trésorerie du marchand, elle est gardée un nombre défini de jours avant d’être libérée (généralement entre 90 à 180 jours).

Par exemple, le seuil variable de la réserve glissante est de 5 % du volume d’encaissement sur 90 jours. Le calcul quotidien du montant de réserve est le suivant : montant des transactions encaissées lors des 90 derniers jours * 5 %

Le détail de la réserve glissante est visible depuis le Portail Marchand : Administration Versements Seuil variable

Principles of Reserve

The reserve represents the funds held in your CentralPay reserve account to cover R-transactions (rejections, refusals, returns, refunds, chargebacks, and unpaid amounts) when your Payment Account lacks sufficient funds. These settings are determined based on your account’s financial risk profile and are updated based on an analysis of your R-transactions over a sufficient period of time. Recurring transactions via SEPA Direct Debit and credit card are particularly prone to the risk of R-transactions.

CentralPay offers three types of protection guarantees that may apply to Merchants, depending on the nature of their contract:

1. Collateral

It represents the fixed amount paid at the start of the relationship, intended to cover the credit risk in the event that the Merchant is unable to meet its repayment obligations to its customers.

Le détail du collatéral est visible depuis le Portail Marchand : Administration Versements Somme des cautions

2. The account footer

In the absence of collateral, a fixed amount may be deducted directly from transactions to guarantee refunds to customers if necessary. The account balance must therefore exceed the account threshold to authorize Payouts (payout).

Le détail du pied de compte est visible depuis le Portail Marchand : Administration Versements Seuil fixe

3. The Rolling reserve

Depending on the industry and the account settlement processes, a rolling reserve may be automatically established. This is an additional safeguard that sets aside a certain percentage of your collection volume in a reserve account to enable automatic refunds in the event of a Chargeback, fraud, or to cover potential operational fees if your Payment Account is insolvent. This amount belongs to the Merchant’s cash flow and is held for a specified number of days before being released (generally between 90 and 180 days).

For example, the variable threshold for the Rolling reserve is 5% of the 90-day collection volume. The daily calculation of the reserve amount is as follows: total amount of transactions collected over the past 90 days * 5%

Le détail de la réserve glissante est visible depuis le Portail Marchand : Administration Versements Seuil variable

SDD Transaction Reversal

See more about SDD Transaction Reversal

jQuery(document).ready( function($) { window.live_6ab3046f63bac = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f63bac", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f63bac.load(); });

SDD Transaction Reversal

See more about SDD Transaction Reversal

jQuery(document).ready( function($) { window.live_6ab3046fa762c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa762c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa762c.load(); });

Bonnes pratiques

Articles

  • Déclaration TVA par pays
  • Merchant Initiated Transaction (MIT)
  • Verification of Payee (VoP)

Déclaration TVA par pays

CentralPay n’identifie pas le pays TVA des acheteurs : cette responsabilité incombe au marchand. Pour justifier correctement vos déclarations, collectez le pays de l’acheteur, conservez vos preuves, et transmettez‑les à CentralPay afin qu’elles figurent dans vos exports et historiques de transaction.

Public cible : marchands B2C vendant des biens ou services dans plusieurs pays de l’Union européenne.

1) Principe général

La TVA applicable dépend du pays de résidence de l’acheteur (consommateur final), non du pays du marchand ni du moyen de paiement utilisé.

Le marchand doit donc déterminer, conserver et déclarer le pays de son client afin d’appliquer la bonne TVA. CentralPay n’a ni la légitimité réglementaire ni la fiabilité technique pour déterminer ce pays à sa place.

En clair : vous êtes responsable de collecter et de stocker les informations nécessaires à la détermination du pays TVA.

2) Pourquoi CentralPay ne peut pas déterminer le pays du client

Les indices techniques accessibles à un PSP (carte, IP, etc.) ne permettent pas une identification fiable du pays de l’acheteur :

  • Pays BIN (carte) : peu fiable pour la TVA. Les cartes de banques en ligne sont souvent émises dans un autre pays que celui du détenteur.
  • Pays IP : faussé en cas d’utilisation de VPN, proxy, mobile ou cloud.
  • Payeur ≠ Acheteur : la personne qui paie n’est pas forcément celle soumise à la TVA (ex. carte d’un proche ou d’un employeur).

C’est pourquoi CentralPay ne réalise aucune analyse pour identifier le pays du client. Seul le marchand détient l’information fiscale valide.

3) Ce que vous devez faire en tant que marchand

3.1 Collecter le pays de l’acheteur

  • Intégrez la sélection du pays de facturation dans votre tunnel de commande.
  • Transmettez ces informations à CentralPay via l’API au moment de la transaction.

3.2 Transmettre le pays à CentralPay

Type de donnéeChamp à renseignerDescription
Pays de l’acheteur (obligatoire)Customer > countryCode ISO 3166‑1 alpha‑2 du pays du client.
⚠️ Si vous n’alimentez pas Customer.country, CentralPay ne peut pas afficher ni exporter le pays de vos acheteurs. Vos exports ne permettront donc pas de justifier vos déclarations TVA.

4) Ce que CentralPay fournit dans les exports

CentralPay met à disposition des exports comportant :

ColonneSourceUsage
Customer > countryValeur transmise par le marchand via Customer > countryPreuve déclarative du marchand, à utiliser pour la TVA.
Transaction > end_user_ipIP de l’acheteurIndice technique non probant.
Transaction > card_countryPays de la carte utilisée par l’acheteurIndice technique non probant.
sctTransaction > ibanIBAN de l’acheteur par virement bancaire (contenant le code pays)Indice technique non probant.
bankAccount > ibanIBAN de l’acheteur par prélèvement SEPA (contenant le code pays)Indice technique non probant.

Des exports personnalisés peuvent être mis en place si vous souhaitez inclure d’autres champs ou formats (SFTP, e‑mail…).

5) Bonnes pratiques de conformité TVA

  1. Toujours collecter le pays de facturation côté front (champ obligatoire ou déduit du profil client).
  2. Croiser au moins deux preuves non contradictoires pour chaque commande.
  3. Gérer les divergences : si les indices diffèrent (ex. IP ≠ carte), demandez un justificatif avant de facturer.
  4. Enregistrer les preuves pendant au moins 10 ans (durée légale pour les services numériques UE).
  5. Vous enregistrer à l’OSS/IOSS si vous vendez à des consommateurs dans plusieurs pays de l’UE.
  6. Relier facture, transaction et preuves pour chaque vente.

6) Exemples de cas

SituationDonnées collectéesAction recommandée
Adresse = FR, BIN = FRDeux preuves concordantesFacturez avec TVA FR
Adresse = FR, BIN = DE, IP = DEDivergenceDemandez un justificatif avant facturation
Aucun pays collectéDonnée manquanteNon‑conformité potentielle – corriger votre parcours

7) FAQ

CentralPay peut‑il déterminer le pays à ma place ?
Non. Nous exposons des indices (pays BIN, etc.), mais la décision et la preuve fiscale relèvent de vous.

Puis‑je me baser uniquement sur le BIN ?
Non, le BIN n’est pas une preuve fiable. Utilisez toujours le pays de facturation comme référence principale.

Comment vérifier que mes exports sont complets ?
Vérifiez la présence de buyer_country_declared dans vos fichiers. Si le champ est vide, votre front n’a pas transmis le pays.

Merchant Initiated Transaction (MIT)

Introduction

Une Merchant-Initiated Transaction (MIT) est un paiement initié sans interaction du titulaire de la carte, réalisé dans le cadre d’un contrat préexistant entre le marchand et son client. Ce modèle s’applique aux facturations récurrentes, variables ou usage-based.

Dans le cadre DSP2, une MIT peut être exemptée d’authentification SCA, à condition que :

  1. Le marchand dispose d’un mandat contractuel valide,
  2. Une transaction initiale CIT authentifiée (3DS) ait été réalisée.

Les MIT reposent donc sur une authentification antérieure réussie associée à un Customer et à un cardToken.

Documentation 3DS 2.2 (général)

1. CIT et MIT : quelle différence ?

Customer-Initiated Transaction (CIT)

Une transaction CIT est initiée par le titulaire de la carte. Elle implique généralement une authentification 3DS.

Rôles de la CIT initiale dans un flux MIT :

  • authentifier la carte et le porteur,
  • valider la création d’un Customer,
  • permettre la génération d’un cardToken,
  • servir de référence aux MIT futures.

Merchant-Initiated Transaction (MIT)

Une MIT est déclenchée par le marchand sans intervention du porteur, conformément au mandat conclu avec le client.

Cas d’usage :

  • facturation mensuelle à montant variable,
  • frais ponctuels supplémentaires,
  • utilisation de type usage-based.

2. Conditions nécessaires pour effectuer des MIT

Deux conditions doivent être réunies :

2.1. Exécution d’une CIT initiale authentifiée (3DS)

Cette CIT doit être :

  • authentifiée via 3DS,
  • capturée,
  • associée à un Customer et à un cardToken.

2.2. Existence d’un mandat commercial valide

Le mandat doit couvrir :

  • la nature des services,
  • le montant futur (fixe ou variable),
  • les conditions et fréquences de facturation,
  • l’accord explicite du client sur les paiements ultérieurs.
Documentation Formulaire de paiement CustomForm

3. Montant de la CIT initiale

Il est parfaitement conforme de réaliser une CIT initiale avec un montant symbolique (par exemple 1 € ou 0,01 €) pour :

  • authentifier la carte,
  • valider le contrat commercial,
  • générer un token utilisable pour des MIT ultérieures.

La CIT initiale n’a pas à couvrir le montant réel des MIT futures.

Remarque : Les transactions à 0€ type “vérification / empreinte carte authentifiée” fonctionnent pour certains schémas mais n’est pas universellement supporté par les banques partenaires, d’où la recommandation d’utiliser une transaction CIT authentifiée.
Également, bien que la CIT symbolique soit techniquement acceptable, l’émetteur peut — en fonction de son profil de risque, du schéma ou de l’ancienneté — décider de déclencher un challenge 3DS lors d’une MIT ultérieure."

4. Durée de validité d’une CIT pour générer des MIT

Il n’existe pas de limite imposée par CentralPay.
La durée de validité dépend exclusivement :

4.1. De l’ACS émetteur (banque du porteur)

Les pratiques observées dans le secteur :

  • conservation de la preuve d’authentification : ≈ 13 mois,
  • pour certains émetteurs : jusqu’à 36 mois.

Après expiration de la preuve 3DS, les MIT peuvent faire l’objet :

  • de soft declines,
  • de demandes d’authentification,
  • de rejets « SCA required ».

4.2. Du recours au 3DS 2.2 – 3RI

Dans certains cas, le marchand peut renouveler une authentification côté émetteur via 3RI, afin de prolonger la durée de validité du mandat.

Disponibilité schémas :

  • CB : support opérationnel,
  • Mastercard : support opérationnel,
  • Visa : support en cours d’évolution, non fiable à date.
Documentation 3DS 2.2 – 3RI

5. Une MIT peut-elle nécessiter une authentification 3DS ?

Oui. Une MIT peut être exceptionnellement requalifiée en CIT par l’émetteur (ACS), notamment dans les cas suivants :

  • ancienneté élevée de la CIT initiale,
  • suspicion de fraude,
  • règles RBA de l’émetteur,
  • montants atypiques ou plus élevés que prévu.

Réduire le risque de demande 3DS

  • utiliser 3RI lorsque supporté,
  • conserver un cadre contractuel clair,
  • refaire une CIT en cas d’échecs répétés.
Pour en savoir plus FAQ 3DS 2.2

6. Transactions MIT ou service d’abonnement de CentralPay : comment choisir ?

Il n’est pas obligatoire de passer par le module Subscription pour effectuer des MIT.

6.1. Utiliser le service d’abonnement si :

  • les montants sont fixes,
  • la fréquence est récurrente,
  • la logique est celle d’un abonnement.

6.2. Utiliser les transactions MIT si :

  • les montants sont variables (usage-based model),
  • les facturations sont ponctuelles,
  • les débits doivent être initiés par le marchand.
Documentation Transaction carte récurrente

7. Implémentation API : effectuer une transaction MIT

7.1. CIT initiale

Lors de la transaction CIT :

  • création d’un customer,
  • génération d’un cardTokenId,
  • authentification 3DS.

7.2. Transaction MIT

Chaque transaction MIT doit inclure :

  • customerId,
  • cardTokenId (ou cardId),
  • indication du contexte MIT dans les paramètres de transaction,
  • les métadonnées utiles pour rattacher la MIT à la CIT initiale.
Documentation Transaction carte récurrente > Abonnement depuis des transactions successives

8. Bonnes pratiques pour fiabiliser un flux MIT

8.1. Techniques

  • déclencher les MIT peu après la facturation,
  • regrouper les paiements lorsque pertinent,
  • utiliser 3RI pour rafraîchir l’authentification,
  • conserver un cardToken stable.

8.2. Gestion des refus

  • en cas de code indiquant « SCA required »,
    proposer au client une nouvelle CIT (paiement manuel),
    recréer un mandat MIT.

8.3. Contractuelles

  • conserver la preuve du mandat : CGV, logs d’acceptation, contrat, page d’information client.

9. FAQ MIT

Une CIT de 1 € suffit-elle pour un mandat MIT ?

Oui, si elle est authentifiée 3DS.

Combien de temps une CIT permet-elle de générer des MIT ?

Cela dépend de l’ACS : généralement 13 à 36 mois.

Une MIT peut-elle déclencher 3DS ?

Oui, si l’ACS l’exige (RBA, ancienneté de la CIT, montants atypiques).

Dois-je utiliser Subscription pour des montants variables ?

Non, le service subscription est généralement adapté à des modèles d’abonnements fixes. Réaliser une transaction CIT initiale + des transactions MIT ad-hoc est le modèle recommandé.

Que faire si le client change de carte ?

Une nouvelle CIT est nécessaire pour générer un nouveau token.

Verification of Payee (VoP)

À compter du 9 octobre 2025, la réglementation européenne impose aux banques de mettre en place la Verification of Payee (VoP) pour tous les virements SEPA (règlement IPR 2024/886, art. 5c).

L’objectif est de protéger les consommateurs contre les fraudes à l’IBAN.

1. Fonctionnement

Lorsqu’un virement est initié, la banque du payeur doit vérifier que le nom du bénéficiaire saisi correspond à celui associé à l’IBAN. Le résultat de cette vérification est affiché au payeur :

  • MATCH : correspondance exacte
  • CLOSE MATCH : correspondance partielle (ex. faute de frappe, abréviation, particule)
  • NO MATCH : aucune correspondance
  • CHECK NOT POSSIBLE : vérification impossible
⚠️ Le payeur reste libre de poursuivre ou non le virement.
Cependant, un NO MATCH ou un CLOSE MATCH augmentent fortement le risque d’abandon de la transaction.

2. Impacts pour les marchands

Afin d’éviter les rejets ou abandons de virements, il est essentiel de vérifier la cohérence du nom affiché à vos clients avec la raison sociale enregistrée sur votre compte CentralPay.

Cas fréquents :

  • Nom commercial / enseigne / marque → Si vous êtes connus sous un autre nom que votre raison sociale, transmettez-nous ces dénominations. Nous pourrons les déclarer manuellement afin d’améliorer le taux de correspondance.
  • vIBAN CentralPay → Vérifiez que vos interfaces et supports affichent bien la raison sociale du titulaire CentralPay associé à l’IBAN.
  • SmartForm (PaymentRequest) → Aucune action nécessaire : CentralPay affiche automatiquement le titulaire du compte.
  • Devis, factures, communications externes → Assurez-vous que la raison sociale présentée est identique à celle du compte bancaire communiqué à vos clients.
À retenir : 
- Vérifiez que votre raison sociale est correctement enregistrée et communiquée.
- Transmettez à CentralPay vos noms commerciaux ou marques si vous souhaitez les faire reconnaître.
- Harmonisez vos documents (factures, devis, emails) avec le nom officiel de votre compte bancaire.
- Informez vos clients :
* Lorsqu’ils effectuent un virement, le nom du bénéficiaire saisi doit correspondre strictement à votre raison sociale.
* En cas d’alerte de type Close match ou No match dans leur application bancaire, invitez-les à vérifier le nom renseigné.

FAQ - Verification Of Payee

À compter du 9 octobre 2025, la Vérification du bénéficiaire (VoP – Verification of Payee) deviendra obligatoire pour tous les virements SEPA, qu’ils soient classiques ou instantanés. Ce dispositif, gratuit pour les utilisateurs, vise à renforcer la sécurité des paiements en réduisant à la fois :

  • les fraudes au virement (notamment les fraudes au faux RIB),
  • les erreurs de saisie d’IBAN ou de nom du bénéficiaire.

Concrètement, avant l’exécution d’un virement, l’établissement du payeur doit interroger l’établissement du bénéficiaire pour vérifier la concordance entre l’IBAN et le nom du titulaire du compte. En cas de discordance, une alerte est affichée au payeur, qui conserve la liberté de poursuivre ou non l’opération.

Enjeux du dispositif

  • Protection des utilisateurs : limiter les virements mal orientés ou frauduleux.
  • Sécurité du système de paiement SEPA : accompagner le déploiement du virement instantané en Europe.
  • Confiance des entreprises et des particuliers : améliorer la transparence et la fiabilité des paiements.
  • Harmonisation européenne : instaurer une norme commune pour tous les PSP (banques, établissements de paiement et de monnaie électronique).

Base légale

  • Règlement (UE) 2021/1230 sur les virements instantanés en euros et la modification du règlement (UE) n° 260/2012 (SEPA), qui introduit l’obligation de VoP.
  • Règlement (UE) 2015/847 sur les informations accompagnant les transferts de fonds, qui impose la transmission exacte des informations sur le payeur et le bénéficiaire.
  • Code monétaire et financier :
    • Articles L.133-6 et L.133-7 relatifs à l’autorisation des opérations de paiement et à l’exactitude des informations,
    • Articles L.561-5 et suivants relatifs aux obligations de vigilance en matière de LCB-FT.
  • Doctrine de l’ACPR, qui dans plusieurs décisions a sanctionné l’insuffisance de dispositifs de vérification et de correspondance entre l’identité du client et son compte

Foire aux questions (FAQ)

1. Qu’est-ce que la VoP ?

La Vérification de l’Ordre de Paiement (VoP) est un service réglementaire instauré au niveau européen.
Elle permet de comparer automatiquement le nom du bénéficiaire d’un virement avec l’IBAN renseigné par le payeur, avant l’exécution du virement.
Objectif : renforcer la sécurité des paiements et réduire les fraudes (notamment fraude au faux RIB).

2. Qui est concerné ?

  • Les payeurs : particuliers ou entreprises qui initient un virement.
  • Les bénéficiaires : toute personne physique ou morale recevant des virements (vous, en tant que client CentralPay).
  • Les prestataires de services de paiement (PSP) : banques, établissements de paiement ou de monnaie électronique, qui doivent intégrer la VoP dans leurs systèmes.

3. Comment fonctionne la VoP concrètement ?

Lorsqu’un virement est initié :

  1. Le payeur saisit l’IBAN et le nom du bénéficiaire.
  2. Sa banque interroge le PSP du bénéficiaire (via un canal sécurisé) pour vérifier la concordance entre l’IBAN et le nom enregistré dans la base du bénéficiaire.
  3. La réponse est renvoyée au PSP du payeur et affichée au payeur.

4. Quels résultats peuvent apparaître ?

Trois cas sont possibles :

  • Correspondance exacte : l’IBAN et le nom concordent → le virement peut être initié sans alerte.
  • Correspondance partielle : l’IBAN correspond mais le nom est différent (fautes de frappe, abréviation, orthographe différente). Le payeur reçoit un avertissement et peut :
    • corriger le nom,
    • ou confirmer qu’il s’agit bien du bénéficiaire attendu.
  • Absence de correspondance : l’IBAN et le nom ne correspondent pas → le payeur reçoit une alerte forte. Il peut annuler ou décider de poursuivre en acceptant le risque.

Est-ce que la VoP bloque un virement ?

Non. La VoP ne bloque pas l’exécution d’un virement. Elle fournit une information supplémentaire au payeur qui reste libre de valider ou non l’opération.
Toutefois, certaines banques peuvent paramétrer des règles internes de blocage en cas de discordance totale.

Quels échanges ont lieu entre banques et PSP ?

  • Le PSP du bénéficiaire (ex. CentralPay) conserve dans sa base le nom exact du titulaire du compte.
  • Lors d’une requête VoP, il répond par un code standardisé indiquant : correspondance, correspondance partielle ou absence de correspondance.
  • Ces échanges sont sécurisés, tracés et limités aux seules données nécessaires, conformément au Règlement (UE) 2015/847 sur l’accompagnement des virements.
  • Aucune autre donnée personnelle (adresse, documents KYC, etc.) n’est transmise.

Quels sont les avantages de la VoP ?

  • Pour le payeur : réduction des risques de fraude au virement, détection des erreurs de saisie.
  • Pour le bénéficiaire : limitation des retards de paiement liés aux erreurs, sécurisation de l’image vis-à-vis de ses clients.
  • Pour le système financier : meilleure prévention des fraudes et conformité avec les standards européens.

Que dois-je faire en tant que bénéficiaire CentralPay ?

  • Communiquer à vos clients l’IBAN correct et le nom exact enregistré auprès de CentralPay (raison sociale complète, sans abréviation).
  • Vérifier que vos factures, contrats et supports incluent toujours les mêmes coordonnées bancaires.
  • En cas de changement de dénomination sociale ou d’utilisation d’un nom commercial, informer rapidement vos clients et CentralPay pour mettre à jour les données.

Que se passe-t-il en cas de non-concordance fréquente ?

Si vos clients rencontrent souvent des alertes VoP lors de virements, cela peut indiquer que vos coordonnées bancaires ne sont pas communiquées de façon homogène.

CentralPay peut vous accompagner pour réviser et harmoniser vos informations de paiement afin d’éviter les frictions.

Illustration du VoP par le CNMP

Best practices

Articles

  • VAT Returns by Country
  • Merchant-Initiated Transaction (MIT)
  • Verification of Payee (VoP)

VAT Returns by Country

CentralPay does not identify buyers’ VAT countries: this is the Merchant’s responsibility. To ensure your tax filings are accurate, collect the buyer’s country of residence, keep your records, and submit them to CentralPay so they can be included in your export files and transaction histories.

Target audience: B2C merchants selling goods or services in several European Union countries.

1) General Principle

The applicable VAT depends on the buyer’s (end consumer ‘s) country of residence, not on the Merchant’s country or the payment method used.

The merchant must therefore determine, record, and report the customer’s country in order to apply the correct VAT rate. CentralPay has neither the regulatory authority nor the technical capability to determine this country on the merchant’s behalf.

In short: You are responsible for collecting and storing the information needed to determine the VAT country.

2) Why CentralPay Cannot Determine the Customer’s Country

The technical indicators available to a PSP (card, IP address, etc.) do not allow for reliable identification of the buyer’s country:

  • BIN Country (card): unreliable for VAT purposes. Online bank cards are often issued in a country other than the cardholder’s.
  • IP Country: May be inaccurate when using a VPN, proxy, mobile device, or cloud service.
  • Payer ≠ Buyer: The person who pays is not necessarily the person liable for VAT (e.g., a card belonging to a family member or an employer).

That is why CentralPay does not perform any analysis to identify the customer’s country. Only the Merchant has the valid tax information.

3) What You Need to Do as a Merchant

3.1 Collect the buyer’s country

  • Integrate the billing country selection into your checkout process.
  • Send this information to CentralPay via the API at the time of the transaction.

3.2 Submit the country to CentralPay

Data typeField to fill inDescription
Buyer’s country (required)Customer > countryISO 3166-1 alpha-2 code for the customer’s country.
⚠️ If you do not enter the information at Customer.country, CentralPay will not be able to display or export the countries of your buyers. Your export files will therefore not be sufficient to support your VAT filings. 

4) What CentralPay Provides in the Exports

CentralPay provides export files that include :

ColumnSourceUsage
Customer > countryAmount provided by the Merchant via Customer > countryDeclaratory statement from the Merchant, to be used for VAT purposes.
Transaction > end_user_ipBuyer’s IP addressTechnical indicator is inconclusive.
Transaction > card_countryCountry of the card used by the buyerTechnical indicator is inconclusive.
sctTransaction > ibanBuyer’s IBAN for Bank transfer (including the country code)Technical indicator is inconclusive.
bankAccount > ibanBuyer’s IBAN for SEPA Direct Debit (including the country code)Technical indicator is inconclusive.

Custom exports can be set up if you want to include additional fields or formats (SFTP, email, etc.).

5) Best Practices for VAT Compliance

  1. Always collect the billing country on the front end (required field or derived from the Customer Profile).
  2. Cross-check at least two non-contradictory pieces of evidence for each order.
  3. Handling Discrepancies: If the information differs (e.g., IP ≠ map), request supporting documentation before billing.
  4. Retain records for at least 10 years (the legal retention period for digital services in the EU).
  5. Register with the OSS/IOSS if you sell to consumers in multiple EU countries.
  6. Link invoices, transactions, and receipts for each sale.

6) Case Examples

LocationData CollectedRecommended Action
Address = FR, BIN = FRTwo pieces of corroborating evidenceInvoice with French VAT
Address = FR, BIN = DE, IP = DEDivergenceRequest a receipt before billing
No countries includedMissing dataPotential Non-Compliance – Correct Your Course

7) FAQ

Can CentralPay determine the country for me?
No. We provide guidance (BIN countries, etc.), but the decision and the tax documentation are your responsibility.

Can I rely solely on the BIN?
No, the BIN is not a reliable source of information. Always use the billing country as your primary reference.

How can I verify that my exports are complete?
Check to see if the  » buyer_country_declared  » field is present in your files. If the field is empty, your front-end system did not include the country.

Merchant-Initiated Transaction (MIT)

Introduction

A Merchant-Initiated Transaction (MIT) is a payment initiated without any interaction from the cardholder, carried out under a preexisting contract between the merchant and its customer. This model applies to recurring, variable, or usage-based billing.

Under PSD2, a MIT may be exempt from SCA authentication, provided that:

  1. The merchant has a valid contractual authorization,
  2. An initial CIT transaction authenticated using 3DS has been completed.

MITs are therefore based on a previous successful authentication combined with a Customer and a cardToken.

Documentation 3DS 2.2 (General)

1. CIT and MIT: What’s the Difference?

Customer-Initiated Transaction (CIT)

A CIT transaction is initiated by the account owner. It generally involves 3DS authentication.

Roles of the Initial CIT in an MIT workflow:

  • authenticate the card and the cardholder,
  • confirm the creation of a Customer,
  • allow the generation of a cardToken,
  • serve as a reference for future MITs.

Merchant-Initiated Transaction (MIT)

An MIT is initiated by the Merchant without any action on the part of the account holder, in accordance with the agreement entered into with the customer.

Use Cases:

  • monthly billing with a variable amount,
  • additional one-time fees,
  • usage-based model.

2. Requirements for Conducting MITs

Two conditions must be met:

2.1. Processing an Initial Authenticated CIT (3DS)

This CIT must be:

  • authenticated via 3DS,
  • captured,
  • associated with a Customer and a cardToken.

2.2. Existence of a Valid Commercial Power of Attorney

The scope of work must include:

  • the nature of the services,
  • the future amount (fixed or variable),
  • billing terms and frequency,
  • the customer’s explicit consent to future payments.
Documentation CustomForm Payment Form

3. Amount of the Initial CIT

It is perfectly acceptable to make an initial CIT payment in a nominal amount (for example , €1 or €0.01) in order to:

  • authenticate the card,
  • approve the commercial contract,
  • Generate a token that can be used for future MITs.

The initial CIT does not have to cover the actual amount of future MITs.

Note: Zero-euro transactions of the “verification/authenticated card imprint” type work for certain schemes but are not universally supported by partner banks; hence the recommendation to use an authenticated CIT transaction.
Additionally, although a nominal CIT transaction is technically acceptable, the issuer may—depending on its risk profile, the payment scheme, or the account’s tenure—decide to trigger a 3DS challenge during a subsequent MIT transaction."

4. Validity Period of a CIT for Generating MITs

There is no limit imposed by CentralPay.
The validity period depends solely on:

4.1. From the issuing ACS (the holder’s bank)

Practices observed in the sector:

  • Retention period for authentication records: ≈ 13 months,
  • For certain issuers: up to 36 months.

After the 3DS token expires, MITs may be subject to:

  • of soft declines,
  • authentication requests,
  • « SCA required » rejections.

4.2. On the Use of 3DS 2.2 – 3RI

In some cases, the Merchant may renew an issuer-side authentication via 3RI in order to extend the mandate’s validity period.

Availability of diagrams:

  • CB: operational support,
  • Mastercard: Operational Support,
  • Visa: Support is currently under development and is not reliable at this time.
Documentation 3DS 2.2 – 3RI

5. Can an MIT require 3DS authentication?

Yes. An MIT may, in exceptional cases, be reclassified as a CIT by the issuer (ACS), particularly in the following cases:

  • long history of the original CIT,
  • suspected fraud,
  • the issuer’s RBA rules,
  • amounts that are unusual or higher than expected.

Reducing the Risk of 3DS Requests

  • Use 3RI when supported,
  • maintain a clear contractual framework,
  • Take the CIT again in the event of repeated failures.
Pour en savoir plus 3DS 2.2 FAQ

6. MIT Transactions or CentralPay’s Subscription Service: Which Should You Choose?

It is not required to use the Subscription module to perform MITs.

6.1. Use the subscription service if:

  • The amounts are fixed,
  • the frequency is recurring,
  • The concept is similar to that of a subscription.

6.2. Use MIT transactions if:

  • The amounts vary (usage-based model),
  • Invoices are issued on a one-time basis,
  • Debit transactions must be initiated by the Merchant.
Documentation Recurring Card Transaction

7. API Implementation: Perform an MIT Transaction

7.1. Initial CIT

During the CIT transaction:

  • creation of a web customer,
  • Generating a cardTokenId,
  • 3DS authentication.

7.2. MIT Transaction

Each MIT transaction must include:

  • customerId,
  • cardTokenId (or cardId),
  • specifying the MIT context in the transaction parameters,
  • the metadata needed to link the MIT to the original CIT.
Documentation Recurring Card Transaction >: Subscription Based on Successive Transactions

8. Best Practices for Improving the Reliability of an MIT Workflow

8.1. Techniques

  • initiate MITs shortly after billing,
  • combine payments when appropriate,
  • use 3RI to refresh authentication,
  • Maintain a stable cardToken.

8.2. Handling Refuses

  • If the code indicates « SCA required » (
    ), offer the customer a new CIT (manual payment); if the code indicates « MIT required » (
    ), recreate an MIT mandate.

8.3. Contract Workers

  • Keep proof of the order: Terms and Conditions, acceptance logs, contract, customer information page.

9. MIT FAQ

Is a CIT of 1 € sufficient for an MIT mandate?

Yes, if it is 3DS-authenticated.

How long does a CIT continue to generate MITs?

It depends on the ACS: generally 13 to 36 months.

Can an MIT trigger 3DS?

Yes, if the ACS requires it (RBA, CIT tenure, atypical amounts).

Should I use « Subscription » for variable amounts?

No, the subscription service is generally designed for fixed subscription models. The recommended approach is to perform an initial CIT transaction followed by ad hoc MIT transactions.

What should you do if a customer changes their card?

A new CIT is required to generate a new token.

Verification of Payee (VoP)

Effective October 9, 2025, European regulations require banks to implement Verification of Payee (VoP) for all SEPA bank transfers (Regulation (EU) 2024/886, Article 5c).

The goal is to protect consumers from IBAN fraud.

1. Operation

When a bank transfer is initiated, the payer’s bank must verify that the beneficiary’s name entered matches the name associated with the IBAN. The result of this verification is displayed to the payer:

  • MATCH: exact match
  • CLOSE MATCH: partial match (e.g., typo, abbreviation, particle)
  • NO MATCH: No matches found
  • CHECK NOT POSSIBLE: Verification not possible
⚠️ The payer is free to decide whether or not to proceed with the bank transfer.
However, a "NO MATCH" or "CLOSE MATCH" significantly increases the risk that the transaction will be abandoned.

2. Impacts on Merchants

To prevent bank transfers from being rejected or abandoned, it is essential to verify that the name displayed to your customers matches the business name registered on your CentralPay account.

Common cases:

  • Trade name / business name / brand name → If you are known by a name other than your legal business name, please provide us with those names. We can enter them manually to improve the match rate.
  • vIBAN CentralPay → Verify that your interfaces and media correctly display the business name of the CentralPay account owner associated with the IBAN.
  • SmartForm (PaymentRequest) → No action required: CentralPay automatically displays the account owner.
  • Quotes, invoices, external communications → Make sure the company name listed is the same as the one on the Bank Account you provide to your customers.
Key points: 
- Verify that your business name is correctly registered and communicated.
- Submit your trade names or trademarks to CentralPay if you wish to have them recognized.
- Ensure that your documents (invoices, quotes, emails) match the official name on your Bank Account.
- Verify that your documents (invoices, quotes, emails) match the official name on your Bank Account. - Inform your customers:
* When they make a bank transfer, the beneficiary name they enter must match your business name exactly.
* If they see a “Close match” or “No match” alert in their banking app, ask them to verify the name they entered.

FAQ - Verification of Payee

Effective October 9, 2025, Verification of Beneficiary (VoP) will become mandatory for all SEPA bank transfers, whether standard or instant. This system, which is free for users, aims to enhance payment security by reducing both:

  • Bank transfer fraud (particularly fraud involving fake bank account information),
  • errors in entering the IBAN or the Beneficiary’s name.

Specifically, before executing a bank transfer, the payer’s financial institution must check with the Beneficiary’s financial institution to verify that the IBAN matches the account owner’s name. If there is a discrepancy, an alert is displayed to the Payer, who remains free to decide whether or not to proceed with the transaction.

Challenges of the Program

  • User protection: limiting misdirected or fraudulent bank transfers.
  • SEPA Payment System Security: Supporting the Rollout of Instant Bank Transfers in Europe.
  • Business and Consumer Confidence: Improving the Transparency and Reliability of Payments.
  • European harmonization: establishing a common standard for all PSPs (banks, payment institutions, and Electronic money institutions).

Legal Basis

  • Regulation (EU) 2021/1230 on instant bank transfers in euros and amending Regulation (EU) No. 260/2012 (SEPA), which introduces the VoP requirement.
  • Regulation (EU) 2015/847 on information accompanying fund transfers, which requires the accurate transmission of information about the Payer and the Beneficiary.
  • Monetary and Financial Code:
    • Articles L.133-6 and L.133-7 concerning the authorization of payment transactions and the accuracy of information,
    • Articles L.561-5 et seq. concerning due diligence obligations in the area of AML/CFT.
  • ACPR doctrine, which in several decisions has penalized the inadequacy of verification procedures and the failure to ensure that a customer’s identity matches their account

Frequently Asked Questions (FAQ)

1. What is VoP?

The Payment Order Verification (VoP) is a regulatory service established at the European level.
It automatically compares the name of the Beneficiary of the bank transfer with the IBAN provided by the Payer before the bank transfer is executed.
Objective: to enhance payment security and reduce fraud (particularly fraud involving fake bank account information).

2. Who is affected?

  • Payers: individuals or businesses that initiate a bank transfer.
  • Beneficiaries: Any individual or entity that receives bank transfers (you, as a CentralPay customer).
  • Payment Service Providers (PSPs): banks, payment institutions, or Electronic money institutions, which must integrate VoP into their systems.

3. How does VoP actually work?

When a bank transfer is initiated:

  1. The payer enters the IBAN and the beneficiary’s name.
  2. The sender’s bank queries the beneficiary’s payment service provider (via a secure channel) to verify that the IBAN matches the name on file for the beneficiary.
  3. The response is sent back to the payer’s PSP and displayed to the payer.

4. What results might occur?

There are three possible scenarios:

  • Exact match: The IBAN and name match → the bank transfer can be initiated without a warning.
  • Partial match: The IBAN matches, but the name is different (typos, abbreviations, different spelling). The payer receives a warning and can:
    • correct the name,
    • or confirm that this is indeed the intended Beneficiary.
  • Mismatch: The IBAN and name do not match → the payer receives a high-priority alert. The payer can cancel the transaction or decide to proceed by accepting the risk.

Does the VoP block a bank transfer?

No. VoP does not block the execution of a bank transfer. It provides additional information to the Payer, who remains free to approve or reject the transaction.
However, some banks may set internal rules to block transactions in the event of a complete mismatch.

What kind of data exchanges take place between banks and PSPs?

  • The Beneficiary’s PSP (e.g., CentralPay) stores the exact name of the account owner in its database.
  • When a VoP query is made, it responds with a standardized code indicating: match, partial match, or no match.
  • These transactions are secure, traceable, and limited to only the necessary data, in accordance with Regulation (EU) 2015/847 on the reporting of bank transfers.
  • No other personal data (address, KYC documents, etc.) is shared.

What are the benefits of VoP?

  • For the payer: reduced risk of bank transfer fraud; detection of data entry errors.
  • For the beneficiary: reduced payment delays caused by errors; protection of the company’s reputation with its customers.
  • For the financial system: improved fraud prevention and compliance with European standards.

What should I do as a CentralPay Beneficiary?

  • Provide your customers with the correct IBAN and the exact name on file with CentralPay (full company name, without abbreviations).
  • Make sure your invoices, contracts, and other documents always include the same bank account information.
  • If your company name changes or you start using a trade name, notify your customers and CentralPay promptly so that your information can be updated.

What happens if there are frequent discrepancies?

If your customers frequently encounter VoP alerts when making bank transfers, this may indicate that your bank account information is not being provided consistently.

CentralPay can help you review and standardize your payment information to avoid friction.

Illustration of VoP by the CNMP

Deposit

jQuery(document).ready( function($) { window.live_6ab3046f59bee = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Deposit.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f59bee", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f59bee.load(); });

Deposit

jQuery(document).ready( function($) { window.live_6ab3046f9cf68 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Deposit.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9cf68", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9cf68.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

Terms and Conditions of Use

The use of CentralPay services is governed by several contractual documents that each account owner must review and accept before activating their account.

👉 View the latest versions of the CentralPay Terms and Conditions currently in effect

1. Two Types of Applicable Terms of Use

CentralPay offers two types of accounts, each subject to separate terms and conditions depending on the service subscribed to:

Account typeApplicable Terms and Conditions
Payment AccountGeneral Terms and Conditions for Payment Services
Electronic Money AccountGeneral Terms and Conditions for Electronic Money Services

Obligation to Accept:

These terms and conditions must be read and accepted electronically by the account owner of each account, whether the account is opened directly by a Merchant or through a CentralPay partner.

2. Master Agreement for Collections on Own Account

If an account is used to collect funds on its own account (standard Merchant model), CentralPay also provides a dedicated master agreement template:

  • This agreement sets forth the rights and obligations related to the use of the account for the collection of payments for commercial transactions,
  • It is signed electronically by the legal representative or by an authorized person (by delegation of authority).

👉 View the latest versions of the CentralPay Terms and Conditions currently in effect

SDD Transaction Refund

jQuery(document).ready( function($) { window.live_6ab3046f64050 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Refund.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f64050", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f64050.load(); });

SDD Transaction Refund

jQuery(document).ready( function($) { window.live_6ab3046fa7a9d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Refund.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa7a9d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa7a9d.load(); });

Deposits

jQuery(document).ready( function($) { window.live_6ab3046f5a085 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Deposits.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5a085", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5a085.load(); });

Deposits

jQuery(document).ready( function($) { window.live_6ab3046f9d41d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Deposits.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9d41d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9d41d.load(); });

SDD Transaction Refund Reversal

jQuery(document).ready( function($) { window.live_6ab3046f644a9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Refund Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f644a9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f644a9.load(); });

SDD Transaction Refund Reversal

jQuery(document).ready( function($) { window.live_6ab3046fa7ef7 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Refund Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa7ef7", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa7ef7.load(); });

Guide : Mes comptes

L’entrée Mes comptes du Portail Marchand CentralPay est l’espace dédié au suivi financier de vos comptes (comptes rattachés à votre Profil Marchand) : consultation des informations de compte, suivi des opérations réalisées et à venir, lecture des soldes historisés, et téléchargement des relevés mensuels officiels.

Cette rubrique est particulièrement utile pour les équipes comptables, la direction financière et les personnes en charge du rapprochement et des clôtures.

Accéder au Portail Marchand > Mes comptes

1. Sous-entrées disponibles

La rubrique Mes comptes se compose de 4 sous-entrées :

  • Vue d’ensemble
  • Opérations (incluant l’onglet Opérations à venir)
  • Solde
  • Relevés de compte
ℹ️ Selon votre profil ou votre configuration, l’accès à certaines sous-entrées peut varier. La logique fonctionnelle reste identique.

2. Vue d’ensemble

La sous-entrée Vue d’ensemble permet d’identifier rapidement le compte sélectionné et d’obtenir une lecture immédiate de sa situation financière.

2.1. Informations de compte

Vous y retrouvez notamment les informations clés du compte :

  • Titulaire du compte
  • IBAN et BIC
  • Devise
  • Type de compte
  • Libellé du compte (sélecteur utile si plusieurs comptes sont rattachés à votre profil marchand)

2.2. Solde temps réel

Le bloc Solde temps réel donne une vision instantanée du solde, avec une distinction utile pour la gestion quotidienne :

  • Fonds disponibles (Valeur immédiatement accessible sur votre compte)
  • Débits programmés (Montants des reversements et R-transactions programmés à une date ultérieure)
ℹ️ Selon votre configuration, un « solde de compte de réserve » peut également être affiché.

2.3. Évolution sur période

Un graphique permet d’observer l’évolution sur une période en combinant :

  • le solde
  • les opérations à venir (vision prévisionnelle)

3. Opérations

La sous-entrée Opérations affiche la liste des mouvements affectant le compte, avec un onglet Opérations à venir pour les mouvements attendus mais non encore réalisés. C’est la vue principale pour le rapprochement comptable et la production d’exports.

3.1. Deux notions de date à connaître

Pour une lecture comptable fiable, la vue distingue généralement :

  • Date de valeur : date à laquelle l’opération est considérée comme effective sur le plan financier/comptable (très utilisée pour le rapprochement et les clôtures).
  • Date d’opération : date/heure de l’évènement (utile pour investiguer une chronologie ou recouper un historique).
ℹ️ Recommandation : pour une clôture ou un rapprochement, partez plutôt de la « date de valeur ». Pour une investigation, la « date d’opération » est souvent plus parlante.

3.2. Rechercher une opération

Le moteur de recherche permet de retrouver rapidement une opération à partir d’un critère comptable, d’une référence ou d’un identifiant.

Filtres essentiels

FiltreÀ quoi ça sertParticularités / Bonnes pratiques
CompteRestreindre l’affichage aux opérations d’un compte spécifique.Indispensable si plusieurs comptes sont rattachés à votre profil. Commencez par sélectionner le compte avant d’appliquer d’autres filtres.
Période (date de valeur)Filtrer les opérations sur une période comptable de référence.Base de travail pour les clôtures et le rapprochement. Recommandé : définissez toujours une période avant d’ajouter des critères plus fins (référence, montant, etc.).
MontantRechercher une ou plusieurs opérations correspondant à un montant précis.À combiner avec Compte et Période pour éviter trop de résultats, surtout si vous avez un volume d’opérations de même montant important.
RéférenceRetrouver une opération via votre référence métier personnalisée (commande, facture, identifiant interne, etc.).Très utile si vos équipes utilisent un identifiant commun entre votre système et CentralPay. Peut aussi servir à regrouper plusieurs lignes liées à un même évènement selon votre paramétrage.
Operation IDRechercher une opération via son identifiant CentralPay unique.Le filtre le plus précis : un Operation ID correspond à une ligne unique. À privilégier pour les investigations support/audit lorsque l’identifiant est connu.
LibelléRechercher une opération à partir de son intitulé descriptif (recherche par mots-clés).Utile lorsque vous ne disposez pas d’un identifiant (Operation ID, référence). Pratique pour retrouver une opération “à partir de ce qui est visible” dans la liste.
TypeIsoler une famille d’opérations (carte, virement, prélèvement, remboursement, contestations, etc.).Idéal pour analyser un périmètre (ex. uniquement les virements entrants) ou préparer un export ciblé avant rapprochement.

Filtres avancés

Les filtres avancés sont utiles pour les investigations (support/audit), l’analyse de reversements et les exports comptables. Le tableau ci-dessous résume leur objectif et leurs particularités.

FiltreÀ quoi ça sertParticularités / Bonnes pratiques
NatureQualifier l’origine comptable et fonctionnelle d’une opération afin de distinguer rapidement les écritures Frais, Fonds et Gestion. Frais : opérations liées aux coûts et commissions débités ou crédités sur le compte, associés à l’utilisation des services (ex. frais d’opérations, commissions, remboursements ou corrections de frais).
Fonds : opérations correspondant aux flux financiers qui entrent ou sortent du compte dans le cadre de son activité (ex. transactions clients, versements sortants, remboursements de transaction).
Gestion : opérations internes CentralPay réalisées pour ajuster ou sécuriser le solde du compte (ex. mouvements de réserve, gage espèces, ajustements techniques ou écritures de régularisation).
Source IDRegrouper des opérations liées entre elles (ex. une autorisation carte, la transaction associée, et son remboursement) afin d’analyser un parcours complet. Le Source ID est un identifiant permettant de regrouper différentes opérations liées.
Vous pouvez soit :
• cliquer sur « Filtrer par ce Source ID » depuis une opération de la liste des résultats ;
• ou renseigner le Source ID dans le moteur de recherche afin d’afficher toutes les opérations rattachées à ce même identifiant.
Numéro de payoutRetrouver toutes les opérations liées à un reversement (payout) et en analyser la composition (fonds, frais, ajustements…). Ce filtre regroupe toutes les opérations rattachées à un même reversement (payout), ce qui permet d’en comprendre le détail et la composition.

Comment obtenir le numéro de payout ?
• Recherchez l’opération de versement sortant (PAYOUT), ouvrez son détail (bouton d’action), puis cliquez sur « Voir les opérations du payout » : le portail applique automatiquement le filtre et affiche les opérations concernées.
• À défaut, vous pouvez le déduire depuis la référence du versement sortant : les derniers chiffres correspondent au numéro de payout (ex. PAYOUT-7usge67-153 → numéro de payout = 153).

À noter : le détail des opérations d’un versement sortant est disponible uniquement lorsque les payouts automatiques sont activés. Le premier payout automatique peut ne pas afficher le détail attendu (calibrage du mode de calcul).
Tiers
(Tiers / Type tiers / ID tiers / Pays tiers)
Filtrer les opérations selon la contrepartie impliquée (autre que vous), pour analyser des flux par acteur.Le tiers est la personne morale ou physique impliquée dans l’opération autre que vous (par exemple un client, CentralPay, un autre marchand, un compte externe…).
Vous pouvez filtrer soit :
• par Tiers : nom du tiers (champ libre) ;
• par ID tiers : identifiant CentralPay du tiers (par exemple CustomerID ou MerchantID), pour une recherche précise ;
• par Type tiers : un des quatre types suivants : Customer, Marchand, CentralPay, Compte externe ;
• par Pays tiers : pays dans lequel le tiers est déclaré (par exemple selon la région d’émission de sa carte si c’est un Customer), ce qui peut être utile notamment pour certains besoins de reporting (ex. déclarations de TVA).

3.3. Synthèse débits / crédits

La page présente une synthèse des débits et crédits sur la période filtrée (volume et montant), avec une ventilation possible par nature d’opération (frais, fonds, gestion). Cette lecture permet de vérifier rapidement la cohérence d’une période avant export.

3.4. Exports comptables personnalisés

Depuis la vue Opérations, vous pouvez générer des exports aux formats CSV, Excel ou JSON. Le principe est simple :

  • Paramétrez votre recherche (compte, période, filtres utiles).
  • Lancez la recherche, puis cliquez sur Exporter.
  • Vous recevez le fichier par email et pouvez le télécharger à tout moment depuis le Portail Marchand (rubrique Fichiers d’export).
Voir la documentation : Exports comptables et relevés de compte

4. Solde

La sous-entrée Solde fournit une vision historisée des soldes par compte, structurée par date de valeur (lecture « fin de journée »).

Vous y retrouvez généralement :

  • Solde de clôture (fin de journée)
  • Opérations à venir (agrégat des mouvements attendus)
  • Solde prévisionnel (solde tenant compte des opérations à venir)
ℹ️ Cas d’usage : justifier un solde « à date » (clôture, contrôle interne), ou comparer une situation constatée vs prévisionnelle.

5. Relevés de compte

La sous-entrée Relevés de compte donne accès aux relevés mensuels officiels de votre compte CentralPay. Ces documents sont les justificatifs de référence pour la comptabilité et les preuves administratives.

Chaque début de mois, en plus de la facture, un relevé de compte est généré et mis à disposition dans l’espace sécurisé : Mes comptes > Relevés de compte.

Deux types de relevés peuvent être proposés :

  • Relevé détaillé : fait apparaître l’ensemble des opérations de la période.
  • Relevé synthétique : regroupe les opérations par jour et par type d’opération.
⚠️ Si vous possédez un grand nombre d’opérations, il est possible que toutes n’apparaissent pas sur le relevé détaillé. Dans ce cas, nous vous conseillons de réaliser un export au format CSV, Excel ou JSON.
Voir la documentation : Exports comptables et relevés de compte

6. Actions fréquentes

6.1. Clôture mensuelle

  1. Allez dans Opérations, filtrez par Compte et Période (date de valeur).
  2. Vérifiez la synthèse débits / crédits et la ventilation par nature (frais / fonds / gestion).
  3. Générez un export comptable (colonnes adaptées à votre rapprochement).
  4. Ou téléchargez directement le relevé mensuel dans Relevés de compte pour archivage et justificatif officiel (1 relevé par compte).

6.2. Rapprochement des opérations liée à un versement sortant (payout)

  1. Allez dans Mes comptes > Opérations et, si besoin, sélectionnez d’abord le Compte concerné.
  2. Retrouvez l’opération de versement sortant (PAYOUT), ouvrez son détail (bouton d’action), puis cliquez sur « Voir les opérations du payout » : le Portail applique automatiquement le filtre Numéro de payout et affiche uniquement les opérations rattachées à ce versement.
  3. Analysez la composition du versement à l’aide du filtre Nature pour distinguer les lignes de Fonds, Frais et Gestion (ajustements), puis vérifiez la cohérence du montant global.
  4. Si nécessaire, générez un export (CSV / Excel / JSON) afin d’archiver le détail du payout ou de l’intégrer à votre rapprochement.
ℹ️ Alternative : le numéro de payout peut aussi être déduit de la référence du versement sortant (ex. PAYOUT-7usge67-153 → numéro de payout = 153).
⚠️ Le détail des opérations d’un versement sortant est disponible uniquement lorsque les payouts automatiques sont activés. Le premier payout automatique peut ne pas afficher le détail attendu (calibrage du mode de calcul).

6.3. Justifier un solde à date

  1. Allez dans Solde pour retrouver le solde de clôture à la date souhaitée.
  2. Complétez si nécessaire par le relevé mensuel dans Relevés de compte.

Guide: My Accounts

The “My Accounts” section of the CentralPay Merchant Portal is where you can manage your accounts (those linked to your Merchant Profile): view account information, track completed and upcoming transactions, review historical balances, and download official monthly statements.

This section is particularly useful for accounting teams, the finance department, and those responsible for account reconciliation and month-end closings.

Go to the Merchant Portal > My Accounts

1. Available subentries

The  » My Accounts  » section consists of 4 sub-entries:

  • Overview
  • Transactions (including the  » Upcoming Transactions » tab)
  • Balance
  • Account Statements
ℹ️ Depending on your profile or settings, access to certain sub-entries may vary. The functional logic remains the same. 

2. Overview

The « Overview » sub-section allows you to quickly identify the selected account and get an immediate snapshot of its financial status.

2.1. Account Information

There you’ll find, among other things, key account information:

  • Account owner
  • IBAN and BIC
  • Currency
  • Account type
  • Account Name (a useful filter if multiple accounts are linked to your Merchant Profile)

2.2. Real-Time Balance

The « Real-Time Balance  » section provides an instant overview of the balance, with a distinction that is useful for day-to-day management:

  • Available Funds (Amount immediately available in your account)
  • Scheduled Transactions (Scheduled Payouts and R-Transactions Scheduled for a Future Date)
ℹ️ Depending on your settings, a "reserve account balance" may also be displayed.

2.3. Changes Over Time

A graph allows you to observe trends over a period of time by combining:

  • the balance
  • Upcoming Operations (Forecast)

3. Operations

The « Transactions » sub-tab displays a list of transactions affecting the account, with a « Upcoming Transactions  » tab for transactions that are expected but have not yet been processed. This is the main view for account reconciliation and generating exports.

3.1. Two Date Concepts You Should Know

To ensure reliable accounting data, the view generally distinguishes between:

  • Value date: the date on which a transaction is considered to have taken effect for financial and accounting purposes (widely used for reconciliation and financial closings).
  • Transaction Date: Date and time of the event (useful for investigating a timeline or cross-referencing a history).
ℹ️ Recommendation: For closing or reconciliation, it’s best to use the “value date.” For an investigation, the “transaction date” is often more meaningful. 

3.2. Search for a transaction

The search engine allows you to quickly find a transaction based on an accounting criterion, a reference, or an identifier.

Essential Filters

FilterWhat is it used for?Key Features / Best Practices
AccountLimit the display to transactions for a specific account.This is essential if you have multiple accounts linked to your profile. Start by selecting the account before applying other filters.
Period (value date)Filter transactions by a reference accounting period.Working basis for filtering and matching. Recommended: Always specify a time period before adding more specific criteria (reference, amount, etc.).
AmountSearch for one or more transactions that match a specific amount.Combine this with  » Account  » and  » Period  » to avoid getting too many results, especially if you have a large number of transactions for the same amount.
ReferenceFind a transaction using your custom business reference (order, invoice, internal ID, etc.).This is very useful if your teams use a shared ID between your system and CentralPay. It can also be used to group multiple lines related to the same event, depending on your settings.
Operation IDSearch for a transaction using its unique CentralPay ID.The most precise filter: Each Operation ID corresponds to a single row. Best used for support or audit investigations when the ID is known.
WordingSearch for a transaction by its descriptive title (keyword search).Useful when you don’t have an identifier (Operation ID, reference). Handy for finding an operation “based on what’s visible” in the list.
TypeIdentify a category of transactions (credit cards, Bank transfers, direct debits, refunds, Chargebacks, etc.).Ideal for analyzing a specific scope (e.g., only incoming bank transfers) or preparing a targeted export before reconciliation.

Advanced Filters

Advanced filters are useful for investigations (support/audit), analysis of payouts, and accounting exports. The table below summarizes their purpose and features.

FilterWhat is it used for?Key Features / Best Practices
NatureIdentify the accounting and functional origin of a transaction in order to quickly distinguish between Expense, Fund, and Management journal entries. Fees: Transactions related to costs and commissions debited or credited to the account, associated with the use of services (e.g., transaction fees, commissions, refunds, or fee adjustments).
Funds: Transactions corresponding to cash flows entering or leaving the account as part of its activity (e.g., customer transactions, Payouts, refunds).
Management: Internal CentralPay transactions carried out to adjust or secure the account balance (e.g., reserve transfers, cash pledges, technical adjustments, or adjusting entries).
Source IDGroup related transactions together (e.g., a Card Authorization, the associated transaction, and its Refund) in order to analyze the entire customer journey. The Source ID is an identifier used to group related transactions.
You can either:
• click “Filter by this Source ID” from a transaction in the results list;
• or enter the Source ID in the search bar to display all transactions associated with that identifier.
Payout NumberView all transactions related to a payout and analyze their breakdown (funds, fees, adjustments, etc.). This filter groups together all transactions associated with a single Payout, making it easier to understand the details and breakdown of that Payout.

How do I get the payout number?
• Search for thePayout transaction, open its details (action button), then click “View Payout transactions ”: the portal automatically applies the filter and displays the relevant transactions.
• Alternatively, you can derive it from the Payout reference: the last digits correspond to the payout number (e.g., PAYOUT-7usge67-153 → payout number = 153).

Please note: Details of a payout are available only when automatic payouts are enabled. The first automatic payout may not display the expected details (due to calculation method calibration).
Third Party
(Third Party / Third-Party Type / Third-Party ID / Third Country)
Filter transactions by the counterparty involved (other than you) to analyze cash flows by party.A third party is any legal entity or individual involved in the transaction other than you (for example, a customer, CentralPay, another Merchant, an external account, etc.).
You can filter by either:
• By a third party: name of the third party (free-form field);
• by third-party ID: the third party’s CentralPay identifier (e.g., CustomerID or MerchantID), for a precise search;
• By third-party type: one of the following four types: Customer, Merchant, CentralPay, External Account;
• By Third-Party Country: the country in which the third party is registered (for example, based on the region where their card was issued if they are a Customer), which can be particularly useful for certain reporting requirements (e.g., VAT filings).

3.3. Debits and Credits Summary

This page provides a summary of debits and credits for the filtered period (volume and amount), with the option to break them down by transaction type (expenses, funds, management). This overview allows you to quickly verify the consistency of a period before exporting the data.

3.4. Custom Accounting Exports

From the Operations view, you can generate exports in CSV, Excel, or JSON formats. The process is simple:

  • Set your search criteria (account, time period, useful filters).
  • Start the search, then click Export.
  • You will receive the file via email and can download it at any time from the Merchant Portal (under  » Export Files« ).
See the documentation: Accounting exports and account statements

4. Balance

The « Balance  » sub-entry provides a historical view of account balances, organized by value date (end-of-day view).

You’ll usually find the following there:

  • Closing Balance (End of Day)
  • Upcoming Transactions (Aggregate of Expected Movements)
  • Projected balance (balance reflecting future transactions)
ℹ️ Use case: to verify a “current” balance (for closing the books, internal control), or to compare an actual balance with a projected balance.

5. Account statements

The « Account Statements  » sub-section provides access to the official monthly statements for your CentralPay account. These documents serve as the primary records for accounting purposes and as official documentation.

At the beginning of each month, in addition to the invoice, an account statement is generated and made available in the secure area: My Accounts > Account Statements.

Two types of statements may be offered:

  • Detailed statement: Shows all transactions for the period.
  • Summary Statement: Groups transactions by day and by transaction type.
⚠️ If you have a large number of transactions, not all of them may appear on the detailed statement. In this case, we recommend exporting the data in CSV, Excel, or JSON format. 
See the documentation: Accounting exports and account statements

6. Common Actions

6.1. Monthly Closing

  1. Go to  » Transactions, » and filter by  » Account  » and  » Period » (value date).
  2. Review the summary of debits and credits and the breakdown by category (expenses, funds, and administration).
  3. Generate an accounting export (with columns tailored to your reconciliation process).
  4. Or download the monthly statement directly from  » Account Statements  » for your records and as an official document (1 statement per account).

6.2. Reconciliation of transactions related to a payout

  1. Go to  » My Accounts » >  » « Transactions, » and, if necessary, select the relevant account first.
  2. Locate the payout transaction (PAYOUT), open its details (action button), then click “View payout transactions ”: the Portal automatically applies the “Payout Number ” filter and displays only the transactions associated with that payout.
  3. Analyze the breakdown of the payout using the « Type » filter to distinguish between the  » Funds, »  » Fees, » and « Management  » (adjustments) lines, then verify that the total amount is correct.
  4. If necessary, generate an export (CSV / Excel / JSON) to archive the payout details or perform Integration with your reconciliation.
ℹ️ Alternative: The payout number can also be derived from the payout reference (e.g., PAYOUT-7usge67-153 → payout number = 153).
⚠️ Transaction details for a payout are available only when automatic payouts are enabled. The first automatic payout may not display the expected details (due to calculation method calibration). 

6.3. Justify a balance as of a specific date

  1. Go to  » Balance  » to find the closing balance as of the desired date.
  2. If necessary, supplement this with the monthly statement in « Account Statements. »

Offres commerciales

CentralPay propose une tarification juste et transparente, adaptée à votre volume d’encaissement et à votre activité. Les tarifs sont dégressifs : plus votre volume augmente, plus les frais unitaires diminuent.

Les frais sont calculés sur la base des volumes de transactions réalisées le mois précédent.

Deux solutions, selon votre besoin

Smart Collection

Accédez gratuitement à la solution d’encaissement : pas d’abonnement, vous payez uniquement des frais à l’utilisation.

Easy Wallet

Accédez à des services complémentaires (notamment la gestion de comptes / wallets) avec un forfait mensuel en plus des frais à l’utilisation.

Aucun surcoût lié aux réseaux cartes

Toutes les offres CentralPay intègrent les frais d’interchange et de réseaux cartes facturés par les banques : vous n’avez donc aucun surcoût à prévoir.

👉 Pour obtenir une estimation selon votre volume et contacter notre équipe commerciale :

Voir les tarifs publics CentralPay

Sales Offers

CentralPay offers fair and transparent pricing tailored to your transaction volume and business. Rates are on a sliding scale: the higher your transaction volume, the lower the per-transaction fees.

Fees are calculated based on the volume of transactions made in the previous month.

Two options, depending on your needs

Smart Collection

Get free access to the payment processing solution: no subscription—you only pay per transaction.

Easy Wallet

Access additional services (including account/wallet management) with a monthly subscription plan in addition to pay-as-you-go fees.

No additional costs associated with card networks

All CentralPay plans include the interchange and Card Scheme Fees charged by banks, so you won’t incur any additional costs.

👉 To get a quote based on your volume and contact our sales team:

View CentralPay’s public rates

Event

jQuery(document).ready( function($) { window.live_6ab3046f5a6db = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Event.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5a6db", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5a6db.load(); });

Event

jQuery(document).ready( function($) { window.live_6ab3046f9d8d5 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Event.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9d8d5", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9d8d5.load(); });

Subscription Model

See more about Subscription Model

jQuery(document).ready( function($) { window.live_6ab3046f65a21 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Subscription Model.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f65a21", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f65a21.load(); });

Subscription Model

See more about Subscription Model

jQuery(document).ready( function($) { window.live_6ab3046fa9359 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Subscription Model.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa9359", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa9359.load(); });

Frais d'interchange et réseaux cartes

L’interchange correspond à la valeur chargée par l’établissement émetteur d’une carte de paiement (la banque de votre client) à l’établissement acquéreur (la banque du marchand).

Les frais de réseaux carte (ou « Card Scheme Fees ») correspondent aux frais pris par les réseaux carte (Visa, Mastercard, CB) pour faire fonctionner le service.

Des termes ont été définis pour désigner l’assemblage de ces frais :

  • Interchange+
    Les frais d’Interchange + les frais des réseaux cartes (card scheme fees)
  • Interchange++
    Les frais d’Interchange + les frais des réseaux cartes (card scheme fees) + les frais de service de l’établissement (CentralPay)

Toutes les offres commerciales de CentralPay intègrent les frais d’Interchange+ ainsi que nos propres frais de service, vous n’avez donc aucun frais bancaire supplémentaire à prévoir pour réaliser vos transactions. Sauf mention contraire, des frais minimum de perception de 0,15 € sont prélevés sur l’IC++.

1. Frais d’interchange et réseaux carte (Vente à distance, E-commerce)

Cartes émises dans l’Espace Economique Européen (EEE)

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitEEECB0,200%0,025%0,225%
Cartes personnellesDébitEEEVISA0,200%0,231%0,431%
Cartes personnellesDébitEEEMastercard0,200%0,219%0,419%
Cartes personnellesCréditEEECB0,300%0,025%0,325%
Cartes personnellesCréditEEEVISA0,300%0,231%0,531%
Cartes personnellesCréditEEEMastercard0,300%0,219%0,519%
Cartes professionnellesToutesEEECB0,900%0,025%0,925%
Cartes professionnellesToutesEEEVISA1,450%0,070%1,520%
Cartes professionnellesToutesEEEMastercard1,450%0,171%1,621%
Cartes personnellesToutesEEEAMEX0,000%1,600%1,600%
Cartes professionnellesToutesEEEAMEX0,000%1,600%1,600%

Cartes internationales, émises hors de l’Espace Economique Européen

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitInternationaleVISA1,150%1,343%2,493%
Cartes personnellesDébitInternationaleMastercard1,150%1,343%2,493%
Cartes personnellesCréditInternationaleVISA1,500%1,499%2,999%
Cartes personnellesCréditInternationaleMastercard1,500%0,951%2,451%
Cartes professionnellesToutesInternationaleVISA2,000%0,700%2,700%
Cartes professionnellesToutesInternationaleMastercard2,000%0,951%2,951%
Cartes personnellesToutesInternationaleAMEX0,000%2,400%2,400%
Cartes professionnellesToutesInternationaleAMEX0,000%2,400%2,400%

2. Frais d’interchange et réseaux carte (paiement de proximité)

Cartes émises dans l’Espace Economique Européen (EEE)

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitEEECB0,200%0,025%0,225%
Cartes personnellesDébitEEEVISA0,200%0,231%0,431%
Cartes personnellesDébitEEEMastercard0,200%0,219%0,419%
Cartes personnellesCréditEEECB0,300%0,025%0,325%
Cartes personnellesCréditEEEVISA0,300%0,231%0,531%
Cartes personnellesCréditEEEMastercard0,300%0,219%0,519%
Cartes professionnellesToutesEEECB0,900%0,025%0,925%
Cartes professionnellesToutesEEEVISA1,450%0,070%1,520%
Cartes professionnellesToutesEEEMastercard1,450%0,171%1,621%
Cartes personnellesToutesEEEAMEX0,000%1,600%1,600%
Cartes professionnellesToutesEEEAMEX0,000%1,600%1,600%

Cartes internationales, émises hors de l’Espace Economique Européen

Données mises à jour le 29/01/2026
Type de titulaireType de carteRégion de carteRéseau de carteFrais d’InterchangeFrais de réseau carteInterchange+ (total)
Cartes personnellesDébitInternationaleVISA1,150%1,343%2,493%
Cartes personnellesDébitInternationaleMastercard1,150%1,343%2,493%
Cartes personnellesCréditInternationaleVISA1,500%1,499%2,999%
Cartes personnellesCréditInternationaleMastercard1,500%0,951%2,451%
Cartes professionnellesToutesInternationaleVISA2,000%0,700%2,700%
Cartes professionnellesToutesInternationaleMastercard2,000%0,951%2,951%
Cartes personnellesToutesInternationaleAMEX0,000%2,400%2,400%
Cartes professionnellesToutesInternationaleAMEX0,000%2,400%2,400%

Interchange Fees and Card Schemes

The interchange fee is the amount charged by the issuer of a payment card (your customer’s bank) to the acquirer (the Merchant’s bank).

Card Scheme Fees are the fees charged by card networks (Visa, Mastercard, CB) to operate the service.

Terms have been defined to describe the combination of these costs:

  • Interchange+
    Interchange fees + Card Scheme Fees
  • Interchange++
    Interchange fees + Card Scheme Fees + merchant service fees (CentralPay)

All of CentralPay’s commercial offerings include Interchange+ fees as well as our own service fees, so you won’t incur any additional bank fees when processing your transactions. Unless otherwise specified, a minimum processing fee of €0.15 is deducted from the IC++.

1. Interchange Fees and Card Scheme Fees (Distance Selling, E-commerce)

Cards issued in the European Economic Area (EEA)

Data updated on January 29, 2026
Type of account ownerCard typeMap RegionMap NetworkInterchange FeesCard Scheme FeesInterchange+ (total)
Personal CardsFlow RateEEECB0,200%0,025%0,225%
Personal CardsFlow RateEEEVISA0,200%0,231%0,431%
Personal CardsFlow RateEEEMastercard0,200%0,219%0,419%
Personal CardsCreditEEECB0,300%0,025%0,325%
Personal CardsCreditEEEVISA0,300%0,231%0,531%
Personal CardsCreditEEEMastercard0,300%0,219%0,519%
Business CardsAllEEECB0,900%0,025%0,925%
Business CardsAllEEEVISA1,450%0,070%1,520%
Business CardsAllEEEMastercard1,450%0,171%1,621%
Personal CardsAllEEEAMEX0,000%1,600%1,600%
Business CardsAllEEEAMEX0,000%1,600%1,600%

International cards issued outside the European Economic Area

Data updated on January 29, 2026
Type of account ownerCard typeMap RegionMap NetworkInterchange FeesCard Scheme FeesInterchange+ (total)
Personal CardsFlow RateInternationalVISA1,150%1,343%2,493%
Personal CardsFlow RateInternationalMastercard1,150%1,343%2,493%
Personal CardsCreditInternationalVISA1,500%1,499%2,999%
Personal CardsCreditInternationalMastercard1,500%0,951%2,451%
Business CardsAllInternationalVISA2,000%0,700%2,700%
Business CardsAllInternationalMastercard2,000%0,951%2,951%
Personal CardsAllInternationalAMEX0,000%2,400%2,400%
Business CardsAllInternationalAMEX0,000%2,400%2,400%

2. Interchange fees and Card Scheme Fees (contactless payments)

Cards issued in the European Economic Area (EEA)

Data updated on January 29, 2026
Type of account ownerCard typeMap RegionMap NetworkInterchange FeesCard Scheme FeesInterchange+ (total)
Personal CardsFlow RateEEECB0,200%0,025%0,225%
Personal CardsFlow RateEEEVISA0,200%0,231%0,431%
Personal CardsFlow RateEEEMastercard0,200%0,219%0,419%
Personal CardsCreditEEECB0,300%0,025%0,325%
Personal CardsCreditEEEVISA0,300%0,231%0,531%
Personal CardsCreditEEEMastercard0,300%0,219%0,519%
Business CardsAllEEECB0,900%0,025%0,925%
Business CardsAllEEEVISA1,450%0,070%1,520%
Business CardsAllEEEMastercard1,450%0,171%1,621%
Personal CardsAllEEEAMEX0,000%1,600%1,600%
Business CardsAllEEEAMEX0,000%1,600%1,600%

International cards issued outside the European Economic Area

Data updated on January 29, 2026
Type of account ownerCard typeMap RegionMap NetworkInterchange FeesCard Scheme FeesInterchange+ (total)
Personal CardsFlow RateInternationalVISA1,150%1,343%2,493%
Personal CardsFlow RateInternationalMastercard1,150%1,343%2,493%
Personal CardsCreditInternationalVISA1,500%1,499%2,999%
Personal CardsCreditInternationalMastercard1,500%0,951%2,451%
Business CardsAllInternationalVISA2,000%0,700%2,700%
Business CardsAllInternationalMastercard2,000%0,951%2,951%
Personal CardsAllInternationalAMEX0,000%2,400%2,400%
Business CardsAllInternationalAMEX0,000%2,400%2,400%

Exchange

jQuery(document).ready( function($) { window.live_6ab3046f5ab7e = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Exchange.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5ab7e", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5ab7e.load(); });

Exchange

jQuery(document).ready( function($) { window.live_6ab3046f9dd7a = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Exchange.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9dd7a", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9dd7a.load(); });

Subscription

See more about Subscription

jQuery(document).ready( function($) { window.live_6ab3046f662f1 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Subscription.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f662f1", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f662f1.load(); });

Subscription

See more about Subscription

jQuery(document).ready( function($) { window.live_6ab3046fa9b63 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Subscription.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa9b63", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa9b63.load(); });

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 €

Support Packages

Support packages enable rapid setup, guided by our Integration Support (IS) and Customer Service (CS) teams. The support hours allow you to delegate certain account configuration tasks and request video calls: with the IS team for technical issues, and with the CS team for administrative or functional matters.

1. Smart Collection Integration Support

Support for integration, as neededFees (excluding tax)
Self-guided
, 2 hours of support from the Customer Service team
Includes
(Starter, Medium, and Major Company plans)
Standard Support
Technical analysis of the project by the Integration Services team
2 hours of support from the Integration Services team
2 hours of support from the Customer Service team
490 €
Advanced Support
Technical analysis and monitoring by a dedicated Integration Service Manager
3 hours of support from a dedicated Integration Service Manager
3 hours of support from a dedicated Customer Service Manager
€1,990

2. Support for Smart Collection and Easy Wallet integration

Support for integration, as neededFees (excluding tax)
Self-guided
: 3 hours of support from the Customer Service team
Includes
(Medium and Major Partner plans)
Standard Support:
Technical analysis of the project by the Integration Services team:
5 hours of support from the Integration Services team:
5 hours of support from the Customer Service team
990 €
Advanced Support
Technical Analysis and Monitoring by a Dedicated Integration Service Manager
10 hours of support from a Dedicated Integration Service Manager
10 hours of support from a Dedicated Customer Service Manager
€2,990

3. Hourly support packages offered by customer service

Customizable hourly support, which can be used to delegate account configuration, troubleshooting with testing, specific analyses, and more…Fees (excluding tax)
2-hour support package
2 hours of support from the Customer Service team, consumables in 30-minute periods.
250 €
5-hour support package
5 hours of support from the Customer Service team, consumables in 30-minute periods.
490 €
10-hour support package
10 hours of support from the Customer Service team, consumables in 30-minute periods.
€890

Logos CentralPay

Logo CentralPay SVG
Logo CentralPay blanc SVG
Logo CentralPay PNG
Logo CentralPay blanc PNG

CentralPay Logos

CentralPay SVG Logo
White CentralPay Logo (SVG)
CentralPay Logo PNG
White CentralPay Logo PNG

Invoice

See more about Invoice & invoiceItem

jQuery(document).ready( function($) { window.live_6ab3046f66b11 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Invoice.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f66b11", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f66b11.load(); });

Invoice

See more about Invoice & invoiceItem

jQuery(document).ready( function($) { window.live_6ab3046faa31a = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Invoice.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046faa31a", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046faa31a.load(); });

Identity

jQuery(document).ready( function($) { window.live_6ab3046f5b056 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Identity.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5b056", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5b056.load(); });

Identity

jQuery(document).ready( function($) { window.live_6ab3046f9e22c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Identity.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9e22c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9e22c.load(); });

Logos PaySecure

1. Logos

Logo PaySecure classique PNG
Logo PaySecure blanc PNG
Logo PaySecure classique JPG

2. Visuels de réassurance (FR/EN)

Réassurance – fond blanc
Réassurance – fond transparent
Réassurance – blanc
Réassurance – fond blanc
Réassurance – fond transparent
Réassurance – blanc

PaySecure Logos

1. Logos

Classic PaySecure Logo (PNG)
White PaySecure Logo PNG
Classic PaySecure Logo (JPG)

2. Reassurance visuals (FR/EN)

Reinsurance – White Background
Reinsurance – Transparent Fund
Reinsurance – blank
Reinsurance – White Background
Reinsurance – Transparent Fund
Reinsurance – blank

Create Enrollement

jQuery(document).ready( function($) { window.live_6ab3046f69912 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Create enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f69912", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f69912.load(); });

jQuery(document).ready( function($) { window.live_6ab3046f69921 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_User.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f69921", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f69921.load(); });

Create Enrollement

jQuery(document).ready( function($) { window.live_6ab3046fac75c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Create enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fac75c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fac75c.load(); });

jQuery(document).ready( function($) { window.live_6ab3046fac76b = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_User.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fac76b", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fac76b.load(); });

Info

jQuery(document).ready( function($) { window.live_6ab3046f5b4f4 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Info.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5b4f4", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5b4f4.load(); });

Info

jQuery(document).ready( function($) { window.live_6ab3046f9e6cd = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Info.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9e6cd", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9e6cd.load(); });

InvoiceItem

See more about Invoice & invoiceItem

jQuery(document).ready( function($) { window.live_6ab3046f67318 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Invoice Item.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f67318", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f67318.load(); });

InvoiceItem

See more about Invoice & invoiceItem

jQuery(document).ready( function($) { window.live_6ab3046faab1c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Invoice Item.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046faab1c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046faab1c.load(); });

Visuels de réassurance (FR/EN)

Intégrez un de ces visuels en dessous de votre formulaire de paiement CustomForm, ou simplement dans le footer de votre site afin de rassurer vos clients concernant la sécurité de leurs données de paiement.

1. Version française

Réassurance 1 – classique
Réassurance 1 – fond blanc
Réassurance 1 – blanc
Réassurance 2 – classique
Réassurance 2 – fond blanc
Réassurance 2 – blanc
Réassurance 3 – classique
Réassurance 3 – fond blanc
Réassurance 3 – blanc
Réassurance 4 – Avec Amex
Réassurance 4 – Amex fond blanc
Réassurance 4 – Amex blanc
Réassurance 5 – Avec Amex
Réassurance 5 – Amex fond blanc
Réassurance 5 – Amex blanc
Réassurance 6 – Avec Amex
Réassurance 6 – Amex fond blanc
Réassurance 6 – Amex blanc

2. Version anglaise

Réassurance 1 – classique
Réassurance 1 – fond blanc
Réassurance 1 – blanc
Réassurance 2 – classique
Réassurance 2 – fond blanc
Réassurance 2 – blanc
Réassurance 3 – classique
Réassurance 3 – fond blanc
Réassurance 3 – blanc
Réassurance 4 – Avec Amex
Réassurance 4 – Amex fond blanc
Réassurance 4 – Amex blanc
Réassurance 5 – Avec Amex
Réassurance 5 – Amex fond blanc
Réassurance 5 – Amex blanc
Réassurance 6 – Avec Amex
Réassurance 6 – Amex fond blanc
Réassurance 6 – Amex blanc

Reinsurance Visuals (FR/EN)

Integrate one of these images below your CustomForm payment form, or simply in your website’s footer, to reassure your customers about the security of their payment information.

1. French version

Reinsurance 1 – Traditional
Reinsurance 1 – White Background
Reinsurance 1 – blank
Reinsurance 2 – Traditional
Reinsurance 2 – White Background
Reinsurance 2 – blank
Reinsurance 3 – Traditional
Reinsurance 3 – White Background
Reinsurance 3 – blank
Reinsurance 4 – With Amex
Reinsurance 4 – Amex White Background
Reinsurance 4 – White Amex
Reinsurance 5 – With Amex
Reinsurance 5 – Amex White Background
Reinsurance 5 – White Amex
Reinsurance 6 – With Amex
Reinsurance 6 – Amex White Fund
Reinsurance 6 – White Amex

2. English version

Reinsurance 1 – Traditional
Reinsurance 1 – White Background
Reinsurance 1 – blank
Reinsurance 2 – Traditional
Reinsurance 2 – White Background
Reinsurance 2 – blank
Reinsurance 3 – Traditional
Reinsurance 3 – White Background
Reinsurance 3 – blank
Reinsurance 4 – With Amex
Reinsurance 4 – Amex White Background
Reinsurance 4 – White Amex
Reinsurance 5 – With Amex
Reinsurance 5 – Amex White Background
Reinsurance 5 – White Amex
Reinsurance 6 – With Amex
Reinsurance 6 – Amex White Fund
Reinsurance 6 – White Amex

Installment Payment

See more about Installment Payment

jQuery(document).ready( function($) { window.live_6ab3046f5bc96 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Installment Payment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5bc96", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5bc96.load(); });

Installment Payment

See more about Installment Payment

jQuery(document).ready( function($) { window.live_6ab3046f9ee66 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Installment Payment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9ee66", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9ee66.load(); });

Complete enrollment

jQuery(document).ready( function($) { window.live_6ab3046f69f7c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Complete enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f69f7c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f69f7c.load(); });

jQuery(document).ready( function($) { window.live_6ab3046f69f8b = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Complete additional enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f69f8b", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f69f8b.load(); });

jQuery(document).ready( function($) { window.live_6ab3046f69f97 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f69f97", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f69f97.load(); });

Complete enrollment

jQuery(document).ready( function($) { window.live_6ab3046facc57 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Complete enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046facc57", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046facc57.load(); });

jQuery(document).ready( function($) { window.live_6ab3046facc66 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Complete additional enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046facc66", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046facc66.load(); });

jQuery(document).ready( function($) { window.live_6ab3046facc71 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046facc71", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046facc71.load(); });

MerchantInfo

jQuery(document).ready( function($) { window.live_6ab3046f5c0f8 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Merchant.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5c0f8", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5c0f8.load(); });

MerchantInfo

jQuery(document).ready( function($) { window.live_6ab3046f9f336 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Merchant.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9f336", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9f336.load(); });

Update enrollment

jQuery(document).ready( function($) { window.live_6ab3046f6a5ea = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Update enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6a5ea", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6a5ea.load(); });

jQuery(document).ready( function($) { window.live_6ab3046f6a5f9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Rollback enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6a5f9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6a5f9.load(); });

Update enrollment

jQuery(document).ready( function($) { window.live_6ab3046fad152 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Update enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fad152", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fad152.load(); });

jQuery(document).ready( function($) { window.live_6ab3046fad160 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Rollback enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fad160", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fad160.load(); });

Conformité et résilience opérationnelle

Dernière mise à jour : 30 juin 2025

« Notre engagement pour protéger vos transactions et assurer un service sans interruption. Un dispositif aligné sur les exigences européennes en matière de sécurité et de continuité des services financiers »

1. Gouvernance et organisation de la sécurité

Chez CentralPay, la sécurité n’est pas seulement un ensemble de règles techniques, mais une démarche de gouvernance intégrée à tous les niveaux de l’entreprise. Notre dispositif repose sur une organisation claire, des responsabilités définies et une supervision régulière par la direction.

La politique de sécurité constitue le socle de ce dispositif. Elle fixe les principes directeurs en matière de protection des données et de continuité des services. Mise à jour chaque année, elle est validée en comité de direction et diffusée à l’ensemble des collaborateurs concernés. Chaque employé est ainsi sensibilisé aux bonnes pratiques et s’engage à respecter les règles établies.

La gouvernance TIC est structurée autour de plusieurs acteurs clés. Le Responsable de la Sécurité des Systèmes d’Information (RSSI) pilote la stratégie globale, supervise les contrôles de sécurité et veille à la conformité avec les standards internationaux (PCI DSS, DORA). La direction technique est en charge de l’exploitation quotidienne des infrastructures et garantit la disponibilité des systèmes critiques. Enfin, un Comité TIC se réunit régulièrement afin d’analyser les incidents, de valider les évolutions techniques et budgétaires, et d’assurer une amélioration continue de la sécurité.

Cette organisation permet de concilier réactivité opérationnelle et exigence réglementaire. Elle offre également à nos clients une visibilité claire : la sécurité est suivie, pilotée et contrôlée de manière documentée, avec un partage des responsabilités entre le management, les équipes techniques et la direction générale.

2. Gestion des accès et habilitations

La gestion des accès constitue l’un des piliers de la sécurité de CentralPay. Chaque droit d’accès est attribué selon une procédure formalisée et validée par le management, afin de s’assurer qu’il corresponde strictement aux besoins métier du collaborateur. À l’arrivée d’un nouvel employé, ses accès sont créés dans l’Active Directory et validés par son supérieur hiérarchique ; au départ, ils sont immédiatement révoqués par le service informatique.

La sécurité repose également sur le principe du moindre privilège : nul ne peut accéder à plus de ressources que ce qui est strictement nécessaire à sa mission. Les accès sensibles, comme ceux aux systèmes critiques ou aux bases de données, font systématiquement l’objet d’une authentification multi-facteurs (MFA). Pour renforcer ce dispositif, des revues périodiques des habilitations sont menées chaque trimestre, permettant d’identifier et de corriger toute anomalie.

Cette rigueur garantit une maîtrise complète des identités et des droits, et protège nos clients contre tout risque d’accès non autorisé à leurs données.

3. Sécurité technique

La sécurité technique de CentralPay repose sur une architecture conçue selon les principes de défense en profondeur. Chaque couche – du réseau jusqu’aux applications – bénéficie de mécanismes de protection redondants et régulièrement testés.

Cloisonnement des réseaux

L’infrastructure est segmentée en plusieurs zones :

  • DMZ publique pour les serveurs exposés à Internet (reverse proxy, WAF, relais SMTP) ;
  • zone interne pour les bases de données et services sensibles ;
  • réseau administratif réservé aux opérations d’administration ;
  • zone de logs isolée pour la collecte et l’analyse des journaux.

Les flux entre ces zones sont strictement contrôlés par des firewalls en redondance, configurés en stateful inspection et avec des règles de NAT. Ces firewalls intègrent des mécanismes d’anti-spoofing et de détection d’anomalies de trafic. Les configurations sont maintenues par le groupe « administrateurs systèmes et réseau » et font l’objet d’une revue périodique.

Protection physique et logique

L’accès aux locaux de production est contrôlé par badge nominatif, surveillance vidéo et télésurveillance (SECURITAS). L’accès aux salles serveurs et à la zone PCI est limité aux personnes habilitées.
Sur le plan logique, chaque accès aux systèmes se fait par identifiant unique, renforcé par MFA. Les droits sont attribués en fonction des rôles définis et selon le principe du moindre privilège.

Surveillance et détection d’intrusion

La surveillance est assurée en continu grâce à une combinaison d’outils :

  • Zabbix, pour le monitoring temps réel des serveurs, applications et flux critiques ;
  • Wazuh, intégré avec Snort, pour la détection d’intrusions et la corrélation des événements ;
  • ElasticSearch/Kibana, pour l’agrégation et la visualisation des logs.

Les alertes critiques sont transmises en temps réel aux équipes techniques par mail et SMS, et leur traitement est tracé dans un registre d’incidents.

Chiffrement et gestion des clés

Les données de paiement sensibles (PAN, dates d’expiration) sont chiffrées en AES-256 et rendues illisibles via un hash SHA-512 avec salt pour les comparaisons.
La gestion des clés est réalisée exclusivement au sein de modules matériels de sécurité (HSM) certifiés. La clé maîtresse est fragmentée en plusieurs composantes, détenues par des personnes distinctes, afin d’éviter tout risque de compromission. Les clés applicatives ne peuvent pas être exportées en clair et leur usage est strictement tracé.

En combinant ces mesures, CentralPay garantit un environnement technique robuste, conforme aux exigences PCI DSS 4.0.1 et aux standards de résilience DORA.

4. Gestion des risques et des incidents

La maîtrise des risques constitue un axe stratégique de la gouvernance CentralPay. L’approche adoptée vise à anticiper les menaces, limiter leur probabilité de survenance et garantir une réponse rapide et efficace en cas d’incident.

Gestion des risques

Chaque année, une étude de risques est menée sur la base de la méthodologie Ebios, intégrant :

  • l’identification des risques liés à la sécurité (intrusions, attaques malveillantes, fuites de données) et au fonctionnement (pannes techniques, défaillances logicielles) ;
  • leur analyse en termes de probabilité et d’impact métier ;
  • leur classification en Low, Medium ou High ;
  • leur traitement via des mesures de prévention (patching, segmentation réseau, chiffrement, supervision) ou de mitigation (plans de contournement, redondances).

Le registre des risques est mis à jour en continu et présenté lors des revues annuelles de direction.

Gestion des incidents

CentralPay a mis en place une procédure complète de gestion des incidents, alignée sur les obligations DORA et les orientations de l’EBA :

  • Détection : par monitoring automatisé (Zabbix, Wazuh) ou par signalement interne/externe (clients, partenaires).
  • Qualification : chaque incident est analysé et classé selon son impact, sa durée, sa portée géographique et sa criticité.
  • Priorisation : une matrice d’évaluation (urgence de résolution et impact financier) permet de définir des niveaux de priorité allant de 1 à 4.
  • Notification réglementaire : les incidents qualifiés comme « majeurs » font l’objet d’un reporting à l’ACPR :
    • rapport initial transmis dans les 4 heures,
    • rapport intermédiaire sous 3 jours ouvrés,
    • rapport final sous 20 jours.

Transparence et retour d’expérience

En parallèle du reporting réglementaire, les incidents majeurs font l’objet d’une communication transparente envers les clients impactés. Une analyse post-mortem est systématiquement menée afin de tirer les enseignements, renforcer les procédures existantes et mettre en place des actions correctives.

Ce dispositif permet à CentralPay non seulement de répondre efficacement aux incidents, mais surtout de renforcer continuellement sa résilience et la confiance de ses clients.

5. Tests de résilience

CentralPay considère que la résilience d’une infrastructure ne se prouve pas uniquement sur le papier mais par des tests réguliers et documentés. C’est pourquoi la plateforme organise différents scénarios de test visant à mesurer son niveau de sécurité, sa capacité de reprise et la réactivité de ses équipes.

Tests d’intrusion

Les tests d’intrusion sont réalisés de manière récurrente par des équipes internes et par des prestataires spécialisés, afin de bénéficier d’un regard externe indépendant. Trois méthodologies sont appliquées :

  • Black-box : l’auditeur ne dispose d’aucune information préalable, ce qui simule le comportement d’un attaquant externe ;
  • Grey-box : l’auditeur dispose d’informations partielles (comptes utilisateurs limités, schémas d’architecture simplifiés) afin de reproduire un scénario réaliste d’utilisateur malveillant ;
  • White-box : l’auditeur dispose d’une connaissance complète de l’architecture, permettant une analyse approfondie et la détection de vulnérabilités complexes.

Ces tests couvrent à la fois les couches réseau et applicatives, avec un focus particulier sur les vulnérabilités répertoriées par le Top Ten OWASP. Les résultats font l’objet de rapports détaillés, comprenant une classification des failles selon leur criticité (Critical, High, Medium, Low) et des recommandations de remédiation.

Tests de segmentation réseau

CentralPay réalise aussi des tests de segmentation afin de vérifier que les cloisonnements logiques entre les zones (DMZ, interne, administration, logs) sont efficaces et qu’aucun flux non autorisé n’est possible. Ces tests garantissent que, même en cas de compromission d’une zone exposée, l’attaquant ne puisse pas atteindre les systèmes critiques.

Exercices de simulation et bascules PCA

En parallèle des tests techniques, des exercices de simulation de crise sont menés. Ces exercices impliquent plusieurs équipes (techniques, conformité, direction) et simulent des scénarios d’attaque ou de panne majeure. L’objectif est de tester non seulement la robustesse de l’infrastructure, mais aussi la qualité de la coordination et de la communication en situation de crise.

Enfin, des tests de bascule PCA sont organisés au minimum une fois par an. Ils permettent de vérifier que les services critiques peuvent être transférés vers le site secondaire dans les délais prévus et que les équipes maîtrisent parfaitement les procédures de reprise.

Ces différents tests, documentés et suivis, démontrent la volonté de CentralPay de s’inscrire dans une démarche d’amélioration continue de sa résilience.

6. Haute disponibilité et PCA

La disponibilité des services de paiement est une exigence absolue pour CentralPay. Afin de garantir une continuité sans faille, l’entreprise a conçu son architecture autour du principe de haute disponibilité (HA) et d’un Plan de Continuité d’Activité (PCA) multi-sites.

Architecture multi-sites

CentralPay dispose de deux sites distincts : un site de production principal et un site secondaire dédié au PCA. Ces sites sont opérés par des fournisseurs différents, intègrent un routage BGP et utilisent des accès Internet fournis par plusieurs opérateurs, ce qui réduit le risque de dépendance vis-à-vis d’un seul acteur.

Redondance des composants

Chaque composant critique est déployé en redondance :

  • Firewalls et load balancers : configurés en actif/actif ou actif/passif, permettant une bascule automatique en cas de défaillance ;
  • Serveurs applicatifs : répartis sur plusieurs nœuds afin de garantir la tolérance aux pannes ;
  • Bases de données : répliquées en temps réel entre les sites de production et de PCA, assurant un RPO quasi nul ;
  • Proxys applicatifs et WAF : disposés en frontal pour absorber les charges et filtrer les menaces, avec bascule automatique.

Objectifs de reprise (RTO et RPO)

  • RPO (Recovery Point Objective) : grâce à la réplication continue, les données critiques peuvent être restaurées à l’état quasi instantané précédant l’incident ;
  • RTO (Recovery Time Objective) : les mécanismes de bascule automatique permettent un retour en service des applications critiques en quelques minutes à une heure maximum selon le type de composant.

Scénarios de bascule et tests

Le PCA est conçu pour répondre à divers scénarios : panne matérielle, défaillance réseau, indisponibilité d’un datacenter, attaque cyber majeure. Chaque scénario dispose d’un plan d’action documenté. Des tests réguliers de bascule confirment que les engagements RTO/RPO sont tenus dans la pratique.

Grâce à ce dispositif, CentralPay assure à ses clients que, même en cas d’incident majeur, leurs transactions de paiement resteront disponibles et sécurisées.

7. Continuité et sauvegardes

La continuité des services de CentralPay ne repose pas uniquement sur la redondance de son infrastructure et le PCA. Elle est également assurée par une politique stricte de sauvegarde et de restauration des données.

Sauvegardes quotidiennes et chiffrées

Les données critiques – qu’il s’agisse des données de paiement ou des données opérationnelles de la plateforme – font l’objet de sauvegardes quotidiennes. Celles-ci sont chiffrées en AES-256, conformément aux standards internationaux, afin de garantir leur confidentialité en cas d’accès non autorisé.

Stockage sécurisé et rotation

Les sauvegardes sont stockées selon une logique de redondance et de rotation :

  • Une copie est conservée sur les serveurs de sauvegarde internes, protégés par des accès restreints ;
  • Une copie est déplacée et conservée dans un coffre-fort sécurisé ;
  • D’autres copies sont externalisées hors site, afin de garantir la disponibilité même en cas de sinistre physique affectant un site.

La rotation régulière des supports assure que les sauvegardes restent fiables et exploitables.

Tests de restauration

La valeur d’une sauvegarde ne se mesure pas uniquement à sa conservation mais aussi à sa capacité à être restaurée. CentralPay procède donc à des tests de restauration réguliers, qui permettent de vérifier non seulement l’intégrité des données sauvegardées mais aussi la rapidité avec laquelle elles peuvent être réinjectées dans le système de production.

Grâce à cette approche, CentralPay garantit que, même en cas d’incident majeur, ses clients ne subiront pas de perte significative de données et pourront reprendre leurs activités sans interruption prolongée.

8. Gestion des prestataires critiques

CentralPay est conscient que la sécurité et la continuité de ses services dépendent également de la solidité de ses partenaires. C’est pourquoi l’entreprise a mis en place une gouvernance stricte autour de la gestion des prestataires critiques, en particulier ceux qui participent directement à l’hébergement, au traitement des données ou aux services de paiement.

Audits et certifications

Chaque année, un audit est conduit auprès de l’hébergeur principal et des prestataires considérés comme critiques. L’objectif est de vérifier la solidité de leurs dispositifs de sécurité, leurs capacités de continuité et leur conformité réglementaire.
Pour les prestataires qui traitent, stockent ou transmettent des données de cartes, CentralPay exige la certification PCI DSS et obtient une attestation de conformité (AOC) actualisée chaque année.

Clauses contractuelles et supervision

Les contrats avec les prestataires critiques incluent des clauses spécifiques DORA, portant notamment sur :

  • les engagements de service (SLA en matière de disponibilité et de performance),
  • les obligations de sécurité,
  • la mise en place d’un PCA/PRA compatible avec celui de CentralPay,
  • la notification immédiate en cas d’incident de sécurité.

CentralPay conserve une cartographie actualisée de l’ensemble de ses prestataires critiques et de leurs services associés. Ce registre est régulièrement mis à jour et constitue une base de reporting vers l’ACPR et les autorités de supervision.

Pérennité et amélioration continue

Enfin, la relation avec les prestataires ne se limite pas à un contrôle ponctuel. Les résultats des audits, les tests de continuité et les incidents éventuels sont présentés en comité de gouvernance. Des plans d’action sont ensuite décidés pour renforcer la sécurité ou la disponibilité des services externalisés.

Ainsi, CentralPay garantit à ses clients que les tiers qui contribuent à ses services critiques sont soumis au même niveau d’exigence que ses propres équipes.

Articles

  • FAQ - Conformité et résilienceDORA

FAQ - Conformité et résilience

Gouvernance et responsabilités

Qui est responsable de la sécurité chez CentralPay ?
La sécurité est pilotée par notre RSSI (Responsable de la Sécurité des Systèmes d’Information), rattaché directement à la Présidence. Le RSSI s’appuie sur un comité TIC et sur un cadre de gestion des risques aligné sur ISO 27005 et sur le règlement DORA. Le RSSI est joignable à l’adresse suivante : rssi@centralpay.com

Avez-vous une politique de sécurité documentée ?
Oui. Notre Politique de Sécurité du Système d’Information (PSSI) définit les règles applicables à l’ensemble de nos équipes et de nos prestataires. Elle couvre la classification des données, la gestion des accès, la protection des systèmes, la gestion des incidents, la continuité d’activité et l’encadrement des prestataires TIC.

Comment intégrez-vous la sécurité dans vos décisions stratégiques ?
La sécurité et la résilience sont intégrées à notre cadre global de gestion des risques. Celui-ci inclut une cartographie alignée ISO/DORA, une politique d’appétence aux risques, et un suivi par indicateurs (KRI). Les décisions de sécurité sont arbitrées au sein du comité Sécurité & Conformité et validées par la Direction Générale.

Comment contrôlez-vous vos dispositifs de sécurité ?
Nous appliquons le modèle des trois lignes de défense : les équipes métiers réalisent les contrôles opérationnels, la conformité et le contrôle permanent assurent la supervision, et le contrôle périodique réalise une évaluation indépendante.

Protection des données et des systèmes

Comment protégez-vous les données et systèmes de CentralPay ?
Toutes les données sont chiffrées : TLS 1.2/1.3 pour les échanges en transit et AES-256 pour le stockage. Les données de carte sont traitées uniquement dans un environnement certifié PCI DSS niveau 1 et immédiatement tokenisées, afin qu’aucun numéro complet ne soit conservé en clair.

Nos infrastructures sont segmentées et protégées par des firewalls, IDS/IPS et une supervision SOC. Les accès aux environnements sensibles sont limités, appliquent le principe du moindre privilège et sont protégés par MFA. Tous les postes de travail sont chiffrés, sécurisés par antivirus/EDR et mis à jour automatiquement.

Tests et contrôles de sécurité

Réalisez-vous des tests de sécurité ?
Oui. Nous effectuons régulièrement des tests de pénétration indépendants, des scans automatisés de vulnérabilités et des audits externes (dont PCI DSS). Ces contrôles permettent d’identifier les failles et de renforcer en permanence notre dispositif.

Comment gérez-vous la journalisation et les logs ?
Les journaux sont conservés 24 mois, horodatés, protégés par chiffrement et intégrés dans notre système de supervision (SIEM). Leur accès est strictement restreint aux équipes habilitées.

Comment gérez-vous les vulnérabilités et mises à jour ?
Nous appliquons une politique stricte de patch management : correction des vulnérabilités critiques sous 24h, vulnérabilités hautes sous 7 jours, et autres correctifs selon une fréquence planifiée. Le suivi est assuré par des scans et des rapports de conformité.

Organisation et culture sécurité

Comment sensibilisez-vous vos collaborateurs à la sécurité ?
Tous les collaborateurs suivent une formation annuelle obligatoire sur la cybersécurité, le RGPD et la LCB-FT. Des campagnes de sensibilisation régulières (exercices phishing, e-learning) complètent ce dispositif. Les équipes techniques bénéficient de formations renforcées.

Comment garantissez-vous que les accès restent limités ?
Nous appliquons le principe du moindre privilège : chaque utilisateur n’accède qu’aux ressources nécessaires à sa mission. Les droits sont justifiés, temporaires et systématiquement tracés.

Comment encadrez-vous les accès administrateurs ?
Les accès à privilèges élevés sont limités à un nombre restreint de personnes, soumis à MFA, tracés et revus régulièrement. Ils ne sont accordés que pour des besoins précis et pour une durée limitée.

Anticipation et amélioration continue

Comment anticipez-vous les menaces émergentes ?
Nous assurons une veille cybersécurité active via les bulletins CERT-FR, ANSSI, éditeurs logiciels et fournisseurs cloud. Cette activité de threat intelligence permet d’adapter nos défenses en temps réel.

Comment améliorez-vous en permanence votre sécurité ?
Chaque incident, audit ou test fait l’objet d’un retour d’expérience documenté et d’un plan d’actions correctives. Nos politiques et procédures sont revues annuellement pour intégrer ces enseignements et les évolutions réglementaires.

Résilience et continuité

Comment assurez-vous la continuité de vos services ?
Nous disposons d’un Plan d’Urgence et de Poursuite d’Activité (PUPA) intégrant un PCA (continuité) et un PRI (reprise). Ces plans sont régulièrement testés à travers des exercices de crise et des scénarios de bascule.

Comment garantissez-vous la disponibilité et la redondance ?
Nos services reposent sur une architecture redondée au sein de plusieurs zones européennes, permettant d’assurer une disponibilité de plus de 99,95 %.

Quels sont vos objectifs de RPO et RTO ?
CentralPay définit et teste régulièrement ses objectifs de continuité :

  • RPO (Recovery Point Objective) : inférieur à 1 minute pour les systèmes critiques, grâce à la réplication temps réel des données.
  • RTO (Recovery Time Objective) : inférieur à 15 mn pour la reprise des services essentiels, grâce à l’architecture redondée et aux procédures de bascule.
    Ces objectifs sont validés lors de nos exercices PCA/PRI et intégrés dans notre dispositif DORA.

Comment gérez-vous vos sauvegardes ?
Les sauvegardes sont chiffrées, isolées, redondées et régulièrement testées pour garantir leur restauration. Elles suivent les mêmes politiques de sécurité que les environnements de production.

Réalisez-vous des tests de résilience conformément à DORA ?
Oui. Nous réalisons des exercices de crise (cyberattaques simulées, pannes critiques), des tests de charge et de performance, des scénarios de bascule et, pour les fonctions critiques, des tests avancés de type TLPT (Threat-Led Penetration Testing).

Relations avec les prestataires

Comment sélectionnez-vous vos prestataires critiques ?
Chaque prestataire fait l’objet d’une due diligence (sécurité, conformité, localisation des données, SLA). Les contrats incluent des clauses RGPD et DORA (sécurité, notification d’incident, droit d’audit).

Comment contrôlez-vous vos prestataires dans la durée ?
Nous tenons un registre DORA recensant tous nos prestataires TIC et identifiant les prestataires critiques. Ces derniers font l’objet d’un suivi renforcé : revues régulières, audits, attestations ISO/PCI et évaluations de résilience.

Gestion des incidents

Que se passe-t-il en cas d’incident de sécurité ?
Nous appliquons une procédure de gestion des incidents incluant : détection, qualification, confinement, remédiation et forensic. Si nécessaire, nous notifions la CNIL sous 72h et informons les clients concernés. Chaque incident majeur donne lieu à un retour d’expérience et à un plan d’actions correctives suivi jusqu’à sa clôture.

Compliance and Operational Resilience

Last updated: June 30, 2025

« Our commitment to protecting your transactions and ensuring uninterrupted service. A system that complies with European requirements for security and the continuity of financial services. »

1. Governance and Security Organization

At CentralPay, security is not just a set of technical rules, but a governance approach integrated at every level of the company. Our system is based on a clear organizational structure, defined responsibilities, and regular oversight by management.

The security policy forms the foundation of this system. It establishes the guiding principles for data protection and service continuity. Updated annually, it is approved by the executive committee and distributed to all relevant employees. Each employee is thus made aware of best practices and commits to complying with the established rules.

ICT governance is structured around several key stakeholders. The Chief Information Security Officer (CISO) leads the overall strategy, oversees security controls, and ensures compliance with international standards (PCI DSS, DORA). The technical department is responsible for the day-to-day operation of the infrastructure and ensures the availability of critical systems. Finally, an IT Committee meets regularly to analyze incidents, approve technical and budgetary changes, and ensure continuous improvement in security.

This organizational structure allows us to balance operational responsiveness with regulatory requirements. It also provides our customers with clear visibility: security is monitored, managed, and controlled in a documented manner, with responsibilities shared among management, technical teams, and senior leadership.

2. Access Management and Authorizations

Access management is one of the cornerstones of CentralPay’s security. Each access right is granted according to a formalized procedure approved by management, to ensure that it strictly corresponds to the employee’s business needs. When a new employee joins the company, their access rights are created in Active Directory and approved by their supervisor; upon departure, they are immediately revoked by the IT department.

Security is also based on the principle of least privilege: no one may access more resources than are strictly necessary for their duties. Sensitive access, such as access to critical systems or databases, is systematically subject to multi-factor authentication (MFA). To strengthen this system, periodic reviews of access permissions are conducted every quarter to identify and correct any anomalies.

This rigorous approach ensures complete control over identities and access rights, and protects our customers from any risk of unauthorized access to their data.

3. Technical Safety

CentralPay’s technical security is based on an architecture designed according to the principles of defense in depth. Each layer—from the network to the applications—benefits from redundant protection mechanisms that are regularly tested.

Network Segmentation

The infrastructure is divided into several zones:

  • Public DMZ for servers exposed to the Internet (reverse proxy, WAF, SMTP relay);
  • internal zone for sensitive databases and services;
  • an administrative network reserved for administrative operations;
  • Isolated log area for collecting and analyzing logs.

Traffic between these zones is strictly controlled by redundant firewalls configured for stateful inspection and with NAT rules. These firewalls incorporate anti-spoofing mechanisms and traffic anomaly detection. The configurations are maintained by the “system and network administrators” group and are reviewed periodically.

Physical and Logical Protection

Access to the production facilities is controlled by personalized ID badges, video surveillance, and remote monitoring (SECURITAS). Access to the server rooms and the PCI area is restricted to authorized personnel.
From a logical standpoint, each system access is authenticated using a unique username, reinforced by MFA. Permissions are granted based on defined roles and in accordance with the principle of least privilege.

Surveillance and Intrusion Detection

Monitoring is carried out continuously using a combination of tools:

  • Zabbix, for real-time monitoring of servers, applications, and critical data streams;
  • Wazuh, with Snort integration, for intrusion detection and event correlation;
  • ElasticSearch/Kibana, for aggregating and visualizing logs.

Critical alerts are sent in real time to technical teams via email and text message, and their resolution is tracked in an incident log.

Encryption and Key Management

Sensitive payment data (PANs, expiration dates) is encrypted using AES-256 and rendered unreadable via a salted SHA-512 hash for comparison purposes.
Key management is performed exclusively within certified hardware security modules (HSMs). The master key is split into several components, held by different individuals, to prevent any risk of compromise. Application keys cannot be exported in plain text, and their use is strictly tracked.

By combining these measures, CentralPay ensures a robust technical environment that complies with PCI DSS 4.0.1 requirements and DORA resilience standards.

4. Risk and Incident Management

Risk management is a strategic priority for CentralPay’s governance. The approach adopted aims to anticipate threats, reduce the likelihood of their occurrence, and ensure a rapid and effective response in the event of an incident.

Risk Management

Each year, a risk assessment is conducted using the Ebios methodology, which includes Integration:

  • identifying risks related to security (intrusions, malicious attacks, data breaches) and operations (technical failures, software malfunctions);
  • their analysis in terms of probability and business impact;
  • their classification as Low, Medium, or High;
  • addressing them through preventive measures (patching, network segmentation, encryption, monitoring) or mitigation measures (workarounds, redundancies).

The risk register is updated on an ongoing basis and presented at annual management reviews.

Incident Management

CentralPay has implemented a comprehensive incident management procedure that is aligned with DORA requirements and EBA guidelines:

  • Detection: via automated monitoring (Zabbix, Wazuh) or through internal/external reports (customers, partners).
  • Classification: Each incident is analyzed and classified based on its impact, duration, geographic scope, and criticality.
  • Prioritization: An evaluation matrix (based on urgency of resolution and financial impact) is used to define priority levels ranging from 1 to 4.
  • Regulatory notification: Incidents classified as “major” must be reported to the ACPR:
    • initial report submitted within 4 hours,
    • interim report within 3 business days,
    • final report within 20 days.

Transparency and Feedback

In addition to regulatory reporting, major incidents are communicated transparently to the affected customers. A post-incident analysis is systematically conducted to identify lessons learned, strengthen existing procedures, and implement corrective actions.

This system enables CentralPay not only to respond effectively to incidents, but above all to continuously strengthen its resilience and the trust of its customers.

5. Resilience Tests

CentralPay believes that the resilience of an infrastructure is not proven solely on paper but through regular, documented tests. That is why the platform conducts various test scenarios designed to measure its security level, its disaster recovery capabilities, and the responsiveness of its teams.

Penetration Testing

Penetration tests are conducted on a regular basis by internal teams and specialized service providers to benefit from an independent external perspective. Three methodologies are used:

  • Black-box: The auditor has no prior information, which simulates the behavior of an external attacker;
  • Grey-box: The auditor has partial information (limited user accounts, simplified architecture diagrams) to simulate a realistic scenario involving a malicious user;
  • White-box: The auditor has a complete understanding of the architecture, enabling an in-depth analysis and the detection of complex vulnerabilities.

These tests cover both the network and application layers, with a particular focus on the vulnerabilities listed in the OWASP Top Ten. The results are documented in detailed reports, which include a classification of vulnerabilities by severity (Critical, High, Medium, Low) and recommendations for remediation.

Network Segmentation Tests

CentralPay also performs segmentation tests to verify that the logical partitions between zones (DMZ, internal, administration, logs) are effective and that no unauthorized traffic is possible. These tests ensure that, even if an exposed zone is compromised, the attacker cannot access critical systems.

Simulation Exercises and PCA Switches

In addition to technical tests, crisis simulation exercises are conducted. These exercises involve several teams (technical, compliance, management) and simulate attack scenarios or major outages. The goal is to test not only the robustness of the infrastructure but also the quality of coordination and communication during a crisis.

Finally, PCA switchover tests are conducted at least once a year. These tests verify that critical services can be transferred to the secondary site within the specified time frame and that the teams are fully proficient in the recovery procedures.

These various tests, which are documented and monitored, demonstrate CentralPay’s commitment to a process of continuous improvement in its resilience.

6. High Availability and Disaster Recovery Planning

The availability of payment services is an absolute requirement for CentralPay. To ensure seamless continuity, the company has designed its architecture around the principles of high availability (HA) and a multi-site Business Continuity Plan (BCP).

Multi-site architecture

CentralPay has two separate sites: a primary production site and a secondary site dedicated to the disaster recovery plan. These sites are operated by different providers, incorporate BGP routing, and use Internet connections provided by multiple carriers, which reduces the risk of dependence on a single provider.

Component Redundancy

Each critical component is deployed with redundancy:

  • Firewalls and load balancers: configured in active/active or active/passive mode, allowing for automatic failover in the event of a failure;
  • Application servers: distributed across multiple nodes to ensure fault tolerance;
  • Databases: replicated in real time between the production and disaster recovery sites, ensuring a near-zero RPO;
  • Application proxies and WAFs: deployed at the front end to handle traffic and filter out threats, with automatic failover.

Recovery Objectives (RTO and RPO)

  • RPO (Recovery Point Objective): Thanks to continuous replication, critical data can be restored to a state that is virtually identical to the one immediately prior to the incident;
  • RTO (Recovery Time Objective): Automatic failover mechanisms ensure that critical applications are back online within a few minutes to a maximum of one hour, depending on the type of component.

Failover Scenarios and Tests

The PCA is designed to address various scenarios: hardware failure, network outage, data center unavailability, and major cyberattacks. Each scenario has a documented action plan. Regular failover tests confirm that RTO/RPO commitments are met in practice.

Through this system, CentralPay assures its customers that, even in the event of a major incident, their payment transactions will remain available and secure.

7. Continuity and Backups

The continuity of CentralPay’s services does not rely solely on the redundancy of its infrastructure and its business continuity plan. It is also ensured by a strict data backup and recovery policy.

Daily, encrypted backups

Critical data—whether payment data or the platform’s operational data—is backed up daily. These backups are encrypted using AES-256, in accordance with international standards, to ensure their confidentiality in the event of unauthorized access.

Secure Storage and Rotation

Backups are stored using a redundancy and rotation system:

  • A copy is stored on internal backup servers, which are protected by restricted access;
  • A copy is moved and stored in a secure safe;
  • Other copies are stored off-site to ensure availability even in the event of a physical disaster affecting a site.

Regular rotation of storage media ensures that backups remain reliable and usable.

Restoration Tests

The value of a backup is not measured solely by its preservation but also by its ability to be restored. CentralPay therefore conducts regular restore tests, which verify not only the integrity of the backed-up data but also how quickly it can be restored to the production system.

Thanks to this approach, CentralPay ensures that, even in the event of a major incident, its customers will not suffer any significant data loss and will be able to resume their operations without prolonged disruption.

8. Management of Critical Service Providers

CentralPay recognizes that the security and continuity of its services also depend on the strength of its partners. That is why the company has implemented strict governance procedures for managing critical service providers, particularly those directly involved in hosting, data processing, or payment services.

Audits and Certifications

Each year, an audit is conducted on the primary hosting provider and service providers deemed critical. The goal is to verify the robustness of their security measures, their business continuity capabilities, and their regulatory compliance.
For service providers that process, store, or transmit card data, CentralPay requires PCI DSS certification and obtains an Attestation of Compliance (AOC) that is updated annually.

Contractual Provisions and Oversight

Contracts with critical service providers include specific DORA clauses, covering, in particular:

  • service level agreements (SLAs regarding availability and performance),
  • safety requirements,
  • the implementation of a business continuity plan (BCP) and disaster recovery plan (DRP) compatible with CentralPay’s,
  • immediate notification in the event of a security incident.

CentralPay maintains an up-to-date inventory of all its critical service providers and their associated services. This inventory is regularly updated and serves as the basis for reporting to the ACPR and other supervisory authorities.

Sustainability and Continuous Improvement

Finally, the relationship with service providers is not limited to one-time reviews. The results of audits, continuity tests, and any incidents are presented to the governance committee. Action plans are then developed to strengthen the security or availability of outsourced services.

As such, CentralPay guarantees its customers that third parties who contribute to its critical services are subject to the same standards as its own teams.

Articles

  • FAQ - Compliance and ResilienceDORA

FAQ - Compliance and Resilience

Governance and Responsibilities

Who is responsible for security at CentralPay?
Security is overseen by our CISO (Chief Information Security Officer), who reports directly to the President. The CISO relies on an ICT committee and a risk management framework aligned with ISO 27005 and the DORA regulation. The CISO can be reached at the following address: rssi@centralpay.com

Do you have a documented security policy?
Yes. Our Information System Security Policy (ISSP) defines the rules that apply to all our teams and service providers. It covers data classification, access management, system protection, incident management, business continuity, and oversight of IT service providers.

How do you integrate security into your strategic decisions?
Security and resilience are integrated into our comprehensive risk management framework. This framework includes ISO/DORA-aligned risk mapping, a risk appetite policy, and monitoring through key risk indicators (KRIs). Security decisions are reviewed by the Security & Compliance Committee and approved by senior management.

How do you monitor your security systems?
We follow the three lines of defense model: business teams perform operational controls, compliance and ongoing monitoring provide oversight, and periodic audits conduct an independent assessment.

Data and System Protection

How do you protect CentralPay’s data and systems?
All data is encrypted: TLS 1.2/1.3 for data in transit and AES-256 for data at rest. Card data is processed exclusively in a PCI DSS Level 1-certified environment and immediately tokenized, so that no full card numbers are stored in plain text.

Our infrastructure is segmented and protected by firewalls, IDS/IPS, and SOC monitoring. Access to sensitive environments is restricted, follows the principle of least privilege, and is protected by MFA. All workstations are encrypted, secured by antivirus/EDR software, and updated automatically.

Safety Tests and Inspections

Do you conduct security tests?
Yes. We regularly conduct independent penetration tests, automated vulnerability scans, and external audits (including PCI DSS). These checks help us identify vulnerabilities and continuously strengthen our security measures.

How do you handle logging?
Logs are retained for 24 months, time-stamped, protected by encryption, and integrated into our security information and event management (SIEM) system. Access to them is strictly limited to authorized teams.

How do you manage vulnerabilities and updates?
We follow a strict patch management policy: critical vulnerabilities are patched within 24 hours, high-severity vulnerabilities within 7 days, and other patches are applied on a scheduled basis. Compliance is monitored through scans and compliance reports.

Organizational Structure and Safety Culture

How do you raise your employees’ awareness of safety?
All employees undergo mandatory annual training on cybersecurity, the GDPR, and anti-money laundering and counter-terrorism financing (AML/CTF) regulations. Regular awareness campaigns (phishing exercises, e-learning) complement this program. Technical teams receive more in-depth training.

How do you ensure that access remains restricted?
We follow the principle of least privilege: each user has access only to the resources necessary for their role. Permissions are justified, temporary, and systematically tracked.

How do you manage administrator access?
Access to elevated privileges is limited to a small number of individuals, is subject to MFA, is tracked, and is reviewed regularly. Such access is granted only for specific purposes and for a limited period of time.

Proactive Planning and Continuous Improvement

How do you anticipate emerging threats?
We conduct active cybersecurity monitoring through bulletins from CERT-FR, ANSSI, software vendors, and cloud providers. This threat intelligence activity allows us to adapt our defenses in real time.

How do you continuously improve your security?
Every incident, audit, or test is followed by a documented review and a corrective action plan. Our policies and procedures are reviewed annually to integrate these lessons learned and regulatory changes.

Resilience and Continuity

How do you ensure the continuity of your services?
We have an Emergency and Business Continuity Plan (PUPA) that includes a Business Continuity Plan (BCP) and a Disaster Recovery Plan (DRP). These plans are regularly tested through crisis drills and failover scenarios.

How do you ensure availability and redundancy?
Our services are based on a redundant architecture spanning multiple European regions, ensuring availability of more than 99.95%.

What are your RPO and RTO goals?
CentralPay regularly defines and tests its business continuity objectives:

  • RPO (Recovery Point Objective): less than 1 minute for critical systems, thanks to real-time data replication.
  • RTO (Recovery Time Objective): less than 15 minutes for the restoration of essential services, thanks to our redundant architecture and failover procedures.
    These objectives are validated during our business continuity and disaster recovery drills and incorporated into our DORA framework.

How do you manage your backups?
Backups are encrypted, isolated, replicated, and regularly tested to ensure they can be restored. They follow the same security policies as production environments.

Do you conduct resilience tests in accordance with DORA?
Yes. We conduct crisis exercises (simulated cyberattacks, critical outages), load and performance tests, failover scenarios, and—for critical functions—advanced tests such as TLPT (Threat-Led Penetration Testing).

Relationships with Service Providers

How do you select your critical service providers?
Each service provider undergoes due diligence (security, compliance, data location, SLA). The contracts include GDPR and DORA clauses (security, incident notification, right to audit).

How do you monitor your service providers over time?
We maintain a DORA registry that lists all of our IT service providers and identifies critical ones. These critical providers are subject to enhanced oversight, including regular reviews, audits, ISO/PCI certifications, and resilience assessments.

Incident Management

What happens in the event of a security incident?
We follow an incident management procedure that includes: detection, classification, containment, remediation, and forensic analysis. If necessary, we notify the CNIL within 72 hours and inform the affected customers. Every major incident results in a post-incident review and a corrective action plan that is monitored until the incident is closed.

Search enrollement

jQuery(document).ready( function($) { window.live_6ab3046f6ac09 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Search enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6ac09", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6ac09.load(); });

Search enrollement

jQuery(document).ready( function($) { window.live_6ab3046fad639 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Search enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fad639", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fad639.load(); });

Protection des données personnelles

Dernière mise à jour : 15/09/2025

Chez CentralPay, la protection des données personnelles est au cœur de nos engagements. En tant qu’Établissement de Monnaie Électronique agréé par l’ACPR (n° d’agrément 17138 nous traitons des données personnelles conformément au Règlement Général sur la Protection des Données (RGPD – UE 2016/679) et à la législation française applicable.

Cette politique présente, de manière claire et transparente, les traitements de données personnelles que nous réalisons dans le cadre de l’exécution de nos services de paiement.

1. Qui est responsable du traitement ?

Le responsable de traitement est :
CentralPay – 19 rue Edouard VAILLANT – 37000 TOURS
Contact DPO : dpo@centralpay.com

2. Quelles données collectons-nous ?

CentralPay collecte uniquement les données strictement nécessaires à la fourniture de ses services de paiement et au respect de ses obligations légales et réglementaires.

Données d’identification

  • Nom, prénom, civilité.
  • Date et lieu de naissance.
  • Nationalité.
  • Qualité (dirigeant, représentant légal, UBO).

Données de contact

  • Adresse email.
  • Numéro de téléphone (mobile ou fixe).
  • Adresse postale professionnelle ou personnelle (selon le cas).

Données de paiement

  • Coordonnées bancaires : IBAN et BIC.
  • Données de carte : numéro de carte (collecté uniquement dans un environnement sécurisé PCI DSS et immédiatement tokenisé), date d’expiration, schéma (Visa, Mastercard, etc.), pays émetteur, 4 derniers chiffres.
  • Important : CentralPay n’expose jamais le numéro complet ni le cryptogramme au marchand.

Données transactionnelles

  • Identifiant de transaction, date et heure.
  • Montant, devise, statut de paiement.
  • Référence commande (orderId).
  • Historique des opérations (paiements uniques, récurrents, fractionnés, remboursements).

Données de sécurité et de lutte contre la fraude

  • Adresse IP de connexion.
  • Empreinte technique du terminal (navigateur, langue, résolution écran) lors de l’authentification 3DS.
  • Résultats et scores antifraude internes.
  • Statut éventuel de mise en surveillance (liste noire technique).

Données de conformité KYC/LCB-FT

  • Pièces d’identité (CNI, passeport, titre de séjour).
  • Justificatifs de domicile (facture d’énergie, quittance).
  • Documents légaux de l’entreprise (Kbis, statuts, registre des bénéficiaires effectifs).
  • Informations sur les UBO (noms, pourcentages de détention).

Données techniques (liées aux services)

  • Journaux applicatifs et techniques (logs API).
  • Événements de traitement (webhooks envoyés aux marchands).
  • Identifiants techniques de suivi (transactionId, customerId, etc.).

3. Pour quelles finalités utilisons-nous vos données ?

CentralPay traite vos données personnelles uniquement pour des finalités déterminées, explicites et légitimes. Chaque traitement repose sur une base légale conforme au RGPD.

Exécution des paiements et gestion des services

  • Finalité : exécuter vos opérations de paiement (SEPA, carte, prélèvement, virement, récurrents ou fractionnés), assurer la facturation et gérer les flux financiers.
  • Données concernées : coordonnées bancaires (IBAN, BIC), données de carte (token, schéma, pays, PAN masqué), identifiants de transaction, montants, devises, références commandes.
  • Base légale : exécution du contrat (art. 6.1.b RGPD).

Vérification d’identité et obligations réglementaires (KYC/LCB-FT)

  • Finalité : satisfaire aux obligations légales de lutte contre le blanchiment des capitaux et le financement du terrorisme (LCB-FT), et aux exigences de supervision de l’ACPR.
  • Données concernées : données d’identification (nom, prénom, date de naissance, nationalité), pièces d’identité, justificatifs de domicile, documents légaux de l’entreprise, informations sur les UBO.
  • Base légale : obligation légale (art. 6.1.c RGPD, Code monétaire et financier art. L561-1 et suivants).

Prévention et détection de la fraude

  • Finalité : sécuriser les transactions, prévenir les paiements non autorisés ou frauduleux, appliquer les règles d’authentification renforcée (DSP2/3DS).
  • Données concernées : adresse IP, empreinte technique du navigateur/appareil, schéma et pays émetteur de la carte, résultats des contrôles antifraude, statut éventuel de mise en surveillance.
  • Base légale : obligation légale (DSP2) et intérêt légitime (sécurité des paiements – art. 6.1.f RGPD).

Gestion de la relation client et du support

  • Finalité : communiquer avec les clients et utilisateurs (confirmation d’opérations, envoi de liens de paiement, notifications), répondre aux demandes de support, assurer le suivi des réclamations et litiges.
  • Données concernées : email, téléphone, identifiants client, données transactionnelles associées.
  • Base légale : exécution du contrat (art. 6.1.b RGPD) et intérêt légitime (gestion de la relation client).

Respect d’obligations comptables, fiscales et probatoires

  • Finalité : conserver certaines données pour répondre aux obligations légales de conservation (Code de commerce, Code général des impôts), produire des justificatifs comptables et probatoires.
  • Données concernées : données transactionnelles (montants, devises, dates, statuts, références), coordonnées bancaires liées aux opérations.
  • Base légale : obligation légale (art. 6.1.c RGPD).

Amélioration de nos services et sécurité technique

  • Finalité : analyser l’usage de nos services, optimiser la performance, assurer la résilience et la cybersécurité, conformément au règlement DORA.
  • Données concernées : journaux techniques (logs), événements (webhooks), identifiants techniques, statistiques d’usage anonymisées.
  • Base légale : intérêt légitime (art. 6.1.f RGPD).

4. Quelle est la base légale de ces traitements ?

Chaque traitement repose sur une base légale clairement définie :

  • Exécution du contrat (art. 6.1.b RGPD) : exécution des paiements, gestion de compte, relation client, support.
  • Obligation légale (art. 6.1.c RGPD) : conformité LCB-FT (art. L561 CMF), obligations comptables et fiscales (Code de commerce, CGI), obligations réglementaires (DSP2, ACPR).
  • Intérêt légitime (art. 6.1.f RGPD) : prévention de la fraude, sécurité des systèmes, gestion des litiges, amélioration des services.
  • Consentement (art. 6.1.a RGPD) : uniquement pour certaines communications marketing optionnelles ou si requis par la loi.

5. Combien de temps conservons-nous vos données ?

CentralPay applique un calendrier de conservation strict, conforme aux exigences du RGPD, du Code monétaire et financier et du Code de commerce.

Nous distinguons :

a) Transactions financières (écritures comptables et probatoires)

  • Conservées 10 ans conformément aux obligations comptables et probatoires (art. L123-22 Code de commerce).
  • Données concernées : identifiants de transaction (transactionId), date, montant, devise, statut, référence commande (orderId).
  • Ces informations sont nécessaires à la preuve contractuelle et à la comptabilité et ne sont pas anonymisées.

b) Données personnelles associées aux transactions

  • Conservées 24 mois maximum puis anonymisées de manière irréversible.
  • Données concernées :
    • Coordonnées du payeur (email, téléphone),
    • Adresse IP, empreinte navigateur/appareil (3DS),
    • Données carte (token, PAN masqué, date d’expiration, schéma, pays émetteur),
    • Résultats antifraude (score, statut blacklist).
  • Ces informations ne sont plus conservées au-delà de 24 mois car elles ne sont plus nécessaires ni légalement ni contractuellement.

c) Données relatives aux cartes de paiement

  • Conservées jusqu’à 24 mois après la date d’expiration de la carte, puis supprimées/anonymisées.
  • CentralPay n’expose jamais le PAN complet ni le CVC hors de sa zone PCI DSS.

d) Données relatives aux comptes bancaires (IBAN/BIC) et mandats SEPA

  • Conservées pendant la durée du mandat + 10 ans (preuve contractuelle), puis supprimées/anonymisées.

e) Données KYC / LCB-FT

  • Conservées 5 ans après la fin de la relation d’affaires (art. L561-12 CMF), puis supprimées/anonymisées.
  • Données concernées : pièces d’identité, justificatifs de domicile, documents légaux de l’entreprise, informations sur les UBO.

f) Abonnements et paiements fractionnés

  • Conservés pendant la durée de l’abonnement + 5 ans (exigences probatoires), puis anonymisés.
  • Données concernées : identifiant d’abonnement, échéancier, lien vers moyen de paiement.

g) Journaux techniques et webhooks

  • Conservés 24 mois maximum, puis anonymisés.
  • Données concernées : logs API, événements de traitement, identifiants techniques (customerId, eventId), statuts, horodatages.

6. Qui sont les destinataires de vos données ?

Vos données peuvent être transmises uniquement à :

  • Services internes CentralPay (opérations, conformité, support, sécurité).
  • Partenaires de paiement et établissements bancaires (acquéreurs, systèmes de règlement SEPA, schémas carte).
  • Prestataires techniques (hébergement cloud, prestataire KYC, envoi SMS/email), soumis à des clauses contractuelles conformes RGPD.
  • Autorités compétentes (ACPR, TRACFIN, Banque de France, autorités judiciaires).

Nous ne revendons jamais vos données à des tiers.

7. Où sont traitées vos données ?

  • Les données sont hébergées dans l’Union européenne et majoritairement en Frane
  • En cas de transfert hors UE (ex. prestataire SMS, email), des clauses contractuelles types (SCC) et mesures supplémentaires sont mises en place pour garantir un niveau de protection équivalent.

8. Quels sont vos droits ?

Conformément aux articles 15 à 22 du RGPD, vous disposez de :

  • Droit d’accès, rectification, effacement.
  • Droit à la limitation, opposition, portabilité.
  • Droit de retrait du consentement (le cas échéant).
  • Droit d’introduire une réclamation auprès de la CNIL.

Vous pouvez exercer vos droits en écrivant à : dpo@centralpay.com (réponse sous 30 jours).

9. Sécurité

CentralPay met en œuvre une politique de sécurité alignée sur les standards PCI DSS, ISO 27001/27005 et sur le règlement européen DORA (Digital Operational Resilience Act). Nos dispositifs couvrent l’ensemble du cycle de vie des données et des services de paiement afin de garantir leur confidentialité, leur intégrité et leur disponibilité.

La sécurité est d’abord assurée par une gouvernance claire et une gestion proactive des risques. Nous disposons d’un cadre de gestion des risques validé par la direction, qui comprend une politique d’appétence au risque, une cartographie alignée sur les normes ISO et DORA, ainsi que des indicateurs de risque suivis régulièrement. Ce cadre est mis en œuvre à travers une organisation en trois lignes de défense et piloté par un comité de sécurité et de conformité.

La protection des données repose sur un chiffrement systématique, tant en transit (TLS 1.2/1.3) qu’au repos (AES-256), avec une gestion centralisée des clés. Les données de paiement sont traitées exclusivement dans un environnement certifié PCI DSS niveau 1 et font l’objet d’une tokenisation irréversible qui évite toute exposition des numéros complets de carte ou des cryptogrammes. De plus, nous appliquons des politiques strictes de purge et d’anonymisation automatique des données personnelles à l’issue des durées de conservation prévues par le RGPD.

Les accès aux systèmes sont strictement contrôlés grâce à une gestion des identités centralisée et basée sur le principe du moindre privilège. Chaque collaborateur est soumis à une authentification forte à deux facteurs (MFA), et les habilitations font l’objet de revues régulières afin de garantir leur pertinence.

Nos infrastructures font l’objet d’une surveillance permanente. Les opérations sensibles sont journalisées de manière exhaustive et horodatée, et un système de supervision en temps réel, couplé à un SIEM, permet de détecter rapidement les incidents de sécurité.

La résilience opérationnelle est assurée par un dispositif de continuité aligné sur DORA. CentralPay a mis en place un Plan d’Urgence et de Poursuite d’Activité (PUPA) incluant des volets PCA et PRI, régulièrement testés. Des tests de pénétration et des exercices de gestion de crise sont organisés chaque année, tandis qu’une politique stricte d’externalisation TIC garantit l’évaluation continue des prestataires critiques et la tenue d’un registre d’information réglementaire.

La gestion des incidents suit une procédure formalisée de détection, classification et traitement. En cas d’incident majeur, nous respectons les délais de notification réglementaire auprès de l’ACPR et de la CNIL, et un retour d’expérience systématique est organisé afin d’améliorer en permanence le dispositif de sécurité.

Enfin, CentralPay s’inscrit dans une logique d’amélioration continue. Des audits internes et externes, y compris des audits indépendants PCI DSS et de cybersécurité, sont réalisés régulièrement. Nos dispositifs de contrôle permanent et d’audit périodique sont revus chaque année afin de garantir leur efficacité et leur conformité aux normes internationales et aux exigences réglementaires.

10. Mise à jour de la politique

Cette politique peut être modifiée pour refléter l’évolution des traitements et obligations légales. Toute mise à jour sera publiée sur notre site et, si nécessaire, communiquée aux clients concernés.

Articles

  • Sous-traitants
  • FAQ - Protection des données personnellesRGPD

Sous-traitants

Dans le cadre de la fourniture de ses services de paiement, Centralpay s’appuie sur un ensemble de sous-traitants au sens de l’article 4 du Règlement Général sur la Protection des Données (RGPD). Ces sous-traitants peuvent être amenés à traiter des données à caractère personnel pour le compte de Centralpay, exclusivement sur instructions documentées et dans la limite des finalités du service auquel ils contribuent.

La présente page recense les sous-traitants susceptibles d’intervenir dans le traitement des données à caractère personnel des Titulaires, Marchands et Payeurs utilisateurs des services Centralpay. Elle est mise à jour à mesure de l’évolution de notre dispositif.

Sous-traitantFinalitéPays de traitement des donnéesCatégories de données
Amazon Web Services (AWS)Hébergement cloud de certains services et données applicativesIrlandeEnsemble des données traitées par les services
Comply Advantage (IVXS)Screening LCB-FT et vérification des listes de sanctions internationalesRoumanieDonnées d’identification
DotfileGestion des processus d’onboarding, collecte et mise à jour des dossiers KYC/KYBFranceDonnées d’identification, justificatifs
GpaymentsAuthentification 3D-Secure des transactions par carte (second prestataire)IrlandeDonnées carte, authentification
InnovestSociété mère du groupe, destinataire interne pour les finalités de gouvernance, audit, conformité et reporting consolidéFranceDonnées de gouvernance et de reporting
MicrosoftGestion et contrôle des flux financiersFranceDonnées transactionnelles et comptables
NetceteraAuthentification 3D-Secure des transactions par carte (Access Control Server)SuisseDonnées carte, authentification
OnfidoVérification automatisée des documents d’identité et des éléments biométriques (reconnaissance faciale, détection de vie)EuropeDonnées d’identité, données biométriques
QomboVerification of Payee (vérification du bénéficiaire d’un virement SEPA)FranceDonnées d’identification, IBAN
Tanla Digital LabsEnvoi de SMS (codes d’authentification, notifications)EuropeNuméro de téléphone, contenu du message

Encadrement des sous-traitants et procédure de modification

Conformément à l’article 28 du RGPD, l’ensemble des sous-traitants engagés par Centralpay agissent exclusivement sur instructions documentées, sont liés par des engagements contractuels stricts en matière de confidentialité et de sécurité, et ne peuvent utiliser les données à caractère personnel à d’autres fins que celles définies par Centralpay.

Toute modification substantielle de cette liste fera l’objet d’une information préalable par tout moyen approprié (notification dans le Portail Marchand, courrier électronique, ou mise à jour publique de la présente page), permettant aux personnes concernées, le cas échéant, de s’y opposer.

Pour toute question relative au traitement de vos données ou à l’exercice de vos droits, vous pouvez contacter notre Délégué à la Protection des Données à l’adresse : dpo@centralpay.eu.

FAQ - Protection des données personnelles

Gouvernance et responsabilités

Responsable du traitement et contact DPO

CentralPay, Établissement de Monnaie Électronique (EME), est responsable du traitement pour ses services de paiement.
Contact DPO : dpo@centralpay.com (réponse sous 30 jours).

Données collectées

Quelles données collectons-nous ?

Dans le cadre de la fourniture de ses services de paiement et afin de respecter ses obligations légales, CentralPay collecte uniquement les données strictement nécessaires. Ces données varient en fonction du type d’opération (paiement, vérification KYC, lutte contre la fraude, support client). Elles se répartissent en plusieurs catégories :

  • Données d’identification : nom, prénom, civilité, date et lieu de naissance, nationalité, qualité (par exemple représentant légal, dirigeant ou bénéficiaire effectif – UBO).
  • Données de contact : adresse email, numéro de téléphone, adresse postale.
  • Données de paiement : coordonnées bancaires (IBAN, BIC) ; données de carte traitées exclusivement dans un environnement certifié PCI DSS (numéro complet et CVC collectés uniquement pour être tokenisés et jamais exposés en clair), date d’expiration, schéma (Visa, Mastercard…), pays émetteur, 4 derniers chiffres.
  • Données transactionnelles : identifiant de transaction (transactionId), date et heure, montant, devise, statut, référence commande (orderId), historique des opérations (paiements uniques, récurrents, fractionnés, remboursements).
  • Données de sécurité et de lutte contre la fraude : adresse IP, empreinte 3DS (navigateur/appareil), résultats et scores antifraude, statut éventuel de mise en surveillance technique.
  • Données de conformité KYC/LCB-FT : pièces d’identité officielles, justificatifs de domicile, documents légaux de l’entreprise (ex. Kbis, statuts), informations sur les bénéficiaires effectifs (UBO et pourcentages de détention).
  • Données techniques : journaux applicatifs (logs API), événements transmis aux marchands (webhooks), identifiants techniques (customerId, eventId).

CentralPay ne collecte aucune donnée sensible au sens de l’article 9 du RGPD (santé, religion, opinions politiques, orientation sexuelle, etc.), sauf si la loi l’imposait de manière exceptionnelle.

Finalités

Pourquoi utilisons-nous vos données ?

CentralPay traite vos données personnelles uniquement pour des finalités déterminées, explicites et légitimes. Ces traitements s’inscrivent dans le cadre de l’exécution de nos services de paiement, du respect de nos obligations réglementaires et de la sécurité de nos systèmes. Les principales finalités sont les suivantes :

  • Exécution des paiements : traitement des opérations de paiement (SEPA, carte bancaire, paiements récurrents ou fractionnés), gestion des flux financiers, émission de factures et suivi des règlements.
  • Respect des obligations réglementaires : application des règles de lutte contre le blanchiment des capitaux et le financement du terrorisme (LCB-FT), vérification d’identité (KYC), conservation légale des documents, supervision par l’ACPR.
  • Prévention et détection de la fraude : mise en œuvre des contrôles de sécurité exigés par la DSP2 (authentification forte, 3DS), calcul de scores antifraude et gestion des alertes.
  • Relation client et support : communication avec les clients et utilisateurs (notifications, confirmations, envoi de liens de paiement), traitement des demandes de support, gestion des réclamations et litiges.
  • Obligations comptables et fiscales : conservation des pièces probatoires, respect des règles du Code de commerce et du Code général des impôts.
  • Amélioration et sécurité technique : suivi de la performance et de la disponibilité de nos services, renforcement de la résilience opérationnelle conformément au règlement DORA, amélioration continue de l’expérience client et de la sécurité de nos systèmes.

Bases légales

Sur quelles bases légales reposent nos traitements ?

CentralPay traite vos données personnelles uniquement pour des finalités déterminées, explicites et légitimes. Ces traitements s’inscrivent dans le cadre de l’exécution de nos services de paiement, du respect de nos obligations réglementaires et de la sécurité de nos systèmes. Les principales finalités sont les suivantes :

  • Exécution des paiements : traitement des opérations de paiement (SEPA, carte bancaire, paiements récurrents ou fractionnés), gestion des flux financiers, émission de factures et suivi des règlements.
  • Respect des obligations réglementaires : application des règles de lutte contre le blanchiment des capitaux et le financement du terrorisme (LCB-FT), vérification d’identité (KYC), conservation légale des documents, supervision par l’ACPR.
  • Prévention et détection de la fraude : mise en œuvre des contrôles de sécurité exigés par la DSP2 (authentification forte, 3DS), calcul de scores antifraude et gestion des alertes.
  • Relation client et support : communication avec les clients et utilisateurs (notifications, confirmations, envoi de liens de paiement), traitement des demandes de support, gestion des réclamations et litiges.
  • Obligations comptables et fiscales : conservation des pièces probatoires, respect des règles du Code de commerce et du Code général des impôts.
  • Amélioration et sécurité technique : suivi de la performance et de la disponibilité de nos services, renforcement de la résilience opérationnelle conformément au règlement DORA, amélioration continue de l’expérience client et de la sécurité de nos systèmes.

Pendant combien de temps conservons-nous vos données ?

CentralPay applique des délais de conservation précis, fondés sur les obligations légales et les besoins opérationnels. À l’issue de ces délais, les données sont soit supprimées, soit anonymisées de façon irréversible.

  • Transactions financières (écritures probatoires) : conservées 10 ans, conformément au Code de commerce.
  • Données personnelles associées aux transactions (email, téléphone, IP, empreintes 3DS, PAN masqué, token de carte, scores fraude) : conservées 24 mois maximum, puis supprimées ou anonymisées.
  • Données de carte (token + métadonnées) : conservées jusqu’à 24 mois après la date d’expiration de la carte. Le PAN complet et le CVC ne sont jamais exposés en clair.
  • Payment Requests (emails/SMS) : conservées 24 mois maximum.
  • Abonnements et paiements fractionnés : conservés pendant la durée de l’abonnement + 5 ans.
  • Comptes bancaires (IBAN/BIC) et mandats SEPA : conservés pendant la durée du mandat + 10 ans (preuve contractuelle).
  • KYC / LCB-FT : données conservées 5 ans après la fin de la relation d’affaires (art. L561-12 CMF).
  • Journaux techniques et webhooks : conservés 24 mois.

Au-delà de ces durées, CentralPay ne conserve que des données anonymisées ou strictement nécessaires au respect d’une obligation légale.

Localisation et transferts

Où vos données sont-elles traitées ?

Les données traitées par CentralPay sont hébergées en priorité dans l’Union européenne, principalement en France, dans des environnements certifiés PCI DSS et ISO 27001.

À ce jour, CentralPay ne transfère pas de données personnelles hors de l’Union européenne.
Si un transfert hors UE devait être nécessaire à l’avenir (par exemple pour un prestataire SMS ou email), il serait encadré par :

  • une analyse d’impact du transfert,
  • la mise en place des Clauses Contractuelles Types (SCC) de la Commission européenne,
  • des mesures techniques complémentaires (chiffrement, segmentation, contrôle d’accès),
  • et une information transparente de nos clients.

Transfert de données hors UE : comment procédons-nous ?

À ce jour, CentralPay ne transfère pas de données personnelles hors de l’Union européenne.
Toutes les données sont hébergées et traitées dans l’UE, principalement en France et au sein d’infrastructures certifiées (PCI DSS).

Si, à l’avenir, un transfert hors UE devait être nécessaire (par exemple pour un prestataire SMS ou email), CentralPay s’engage à :

  • procéder à une analyse d’impact sur le transfert,
  • appliquer les Clauses Contractuelles Types (SCC) de la Commission européenne,
  • mettre en place des mesures techniques supplémentaires (chiffrement, cloisonnement, contrôle d’accès),
  • et informer ses clients en toute transparence.

Nature des données

Traitons-nous des données sensibles ?

Non. CentralPay ne traite aucune donnée sensible au sens de l’article 9 du RGPD (santé, religion, opinions politiques, orientation sexuelle, etc.).
Nous collectons uniquement les informations strictement nécessaires à l’exécution des paiements et au respect de nos obligations légales (LCB-FT, supervision ACPR).

Collectons-nous des données de mineurs ?

CentralPay fournit ses services exclusivement à des professionnels (B2B). Nous ne collectons donc pas volontairement de données de mineurs.
Si, indirectement, un mineur est amené à effectuer un paiement, le traitement reste limité aux données de paiement nécessaires (ex. coordonnées bancaires ou carte), et toujours sous la responsabilité de son représentant légal lorsqu’une vérification est requise.

Conformité RGPD

Réalisons-nous des analyses d’impact (PIA)?

Oui, nous réalisons des AIPD (PIA) pour les traitements susceptibles d’engendrer un risque élevé (ex. KYC, antifraude/3DS, tokenisation carte, analyses longitudinales). Les risques résiduels et mesures de réduction sont documentés.

Comment garantissons-nous la minimisation et le privacy by design ?

Nous collectons uniquement les champs nécessaires par finalité, cloisonnons les environnements (prod/préprod), nous n’utilisons aucune donnée réelle en test, limitons les payloads webhooks au minimum utile, et appliquons des purges/anonymisations automatiques à l’échéance.

Comment CentralPay documente sa conformité RGPD ?

  • Politique RGPD publique (site).
  • Registre des traitements (interne, à jour).
  • PIA sur les traitements à risque (interne).
  • Politiques/procédures (sécurité, purge, incidents, droits).
  • Rapports de contrôle interne (ACPR).

Sous-traitants

Comment encadrons-nous nos prestataires ?

Chaque prestataire est contractuellement encadré (art. 28) : mesures de sécurité, confidentialité, notification d’incident, audibilité, localisation des données, sous-traitance en cascade contrôlée. Due diligence initiale + réévaluation régulière (sécurité, SLA, conformité).

Quels prestataires utilisons-nous ?

Sur demande et après NDA, nous pouvons fournir la liste à jour par catégorie de nos prestataires (hébergement/cloud, KYC, envoi email/SMS, anti-fraude, support) en indiquant la zone géographique.

Comment sélectionnons-nous nos prestataires essentiels ?

CentralPay applique une politique d’encadrement des sous-traitants alignée à la fois sur le RGPD (art. 28) et sur le règlement DORA.

Lors de la sélection, nous menons une due diligence approfondie couvrant la sécurité (certifications, mesures techniques), la conformité réglementaire (RGPD, DSP2, LCB-FT), la localisation et le régime juridique des données, la solidité financière du prestataire ainsi que les niveaux de service (SLA) proposés. Pour les prestataires critiques, nous examinons en particulier leur intégration dans la chaîne de valeur des services de paiement et leur rôle en matière de résilience opérationnelle.

Chaque relation contractuelle inclut des clauses conformes à l’article 28 RGPD (confidentialité, sécurité, notification d’incident, limitation des sous-traitances en cascade) ainsi que, le cas échéant, des Clauses Contractuelles Types (SCC) pour encadrer les transferts hors Union européenne.

Conformément à DORA, nous tenons un registre d’information des prestataires TIC et identifions ceux considérés comme prestataires critiques. Ces prestataires font l’objet d’une évaluation renforcée, avec des exigences contractuelles spécifiques en matière de disponibilité, d’intégrité, de continuité et de tests de résilience.

Le suivi est assuré au travers de revues régulières (contrôles, rapports d’audit, attestations de conformité type SOC/ISO, questionnaires de sécurité), d’un droit d’audit contractuel et de mécanismes de reporting périodique. Nous intégrons ces évaluations dans notre cartographie des risques TIC et nos comités de suivi DORA.

Sécurité et résilience

Quelles protections techniques appliquons-nous ?

CentralPay protège les données et les systèmes en combinant des mécanismes techniques robustes et conformes aux meilleurs standards internationaux.
Les échanges sont sécurisés par un chiffrement systématique : TLS 1.2/1.3 pour les données en transit et AES-256 pour les données au repos, avec une gestion centralisée des clés.
Les données de carte sont traitées exclusivement dans un environnement PCI DSS niveau 1, avec collecte en zone dédiée et tokenisation irréversible pour éviter toute exposition du PAN complet.
Les accès aux systèmes sont contrôlés par des mécanismes RBAC (role-based access control) et protégés par une authentification forte (MFA), avec des revues régulières des habilitations.
Toutes les actions sensibles font l’objet d’une journalisation horodatée et inviolable, intégrée dans un SIEM qui assure la détection et l’alerte en temps réel.
L’infrastructure est cloisonnée : segmentation des réseaux, séparation stricte des environnements (production, test, préproduction) et gestion sécurisée des secrets.
Enfin, CentralPay teste régulièrement son dispositif à travers des tests de pénétration, des scans de vulnérabilités et des audits externes indépendants.

Comment notre organisation garantit la sécurité ?

La sécurité ne repose pas uniquement sur la technologie mais aussi sur une organisation et une gouvernance solides.
CentralPay applique un cadre de gestion des risques intégrant une cartographie détaillée, des indicateurs de suivi (KRI) et une politique d’appétence au risque validée par la direction.
La supervision s’appuie sur le modèle reconnu des trois lignes de défense : les opérations assurent les contrôles de premier niveau, une fonction indépendante de conformité et de contrôle permanent supervise la deuxième ligne, et l’audit interne constitue la troisième ligne.
Un comité sécurité et conformité se réunit régulièrement pour piloter la stratégie et mettre à jour les politiques et procédures clés (gestion des accès, incidents, purges, exercice des droits RGPD).
Enfin, la culture sécurité est renforcée par des formations régulières des équipes, couvrant la cybersécurité, la protection des données personnelles et les obligations LCB-FT.

Que faisons-nous en cas d’incident de sécurité ?

CentralPay dispose d’une procédure formalisée de gestion des incidents.
En cas d’incident, nous procédons à une détection rapide, une qualification et un confinement immédiat, suivis d’actions de remédiation.
Les événements sont intégralement journalisés et investigués (forensic) afin d’identifier la cause et d’éviter leur récurrence.
Lorsque la réglementation l’impose, nous notifions la CNIL dans un délai maximum de 72 heures et informons les personnes concernées en cas de risque élevé.
Chaque incident donne lieu à un retour d’expérience (REX) et à la mise en place d’un plan d’actions correctives, qui est suivi jusqu’à sa résolution complète.

Nos audits de sécurité

CentralPay est soumis à plusieurs niveaux de contrôle et de tests de sécurité, à la fois internes et externes :

  • Audits externes réguliers :
    • Certification annuelle PCI DSS niveau 1 sur la collecte et le traitement des données de paiement,
    • Audits indépendants de cybersécurité,
    • Tests de pénétration réalisés par des prestataires tiers pour identifier et corriger les vulnérabilités.
  • Contrôles internes permanents (seconde ligne de défense) : revues des habilitations, scans de vulnérabilités, surveillance des systèmes critiques.
  • Audits périodiques indépendants (troisième ligne de défense) : audit interne et audit externe du dispositif de sécurité, conformité réglementaire (ACPR, DORA).
  • Revue annuelle des politiques : l’ensemble de nos politiques de sécurité, de purge, d’incidents et de gestion des prestataires est revu et validé chaque année par la direction.
  • Tests de résilience conformément à DORA :
    • Plans de Continuité et de Reprise d’Activité (PCA/PRI) testés régulièrement pour valider la capacité à maintenir les services en cas d’incident majeur,
    • Exercices de crise simulant des scénarios de cyberattaque ou d’indisponibilité critique,
    • Tests de charge et de performance sur les infrastructures critiques,
    • Scénarios de bascule et redondance entre environnements pour garantir la disponibilité,
    • Pour les fonctions critiques, recours progressif à des tests de résilience avancés de type “TLPT” (Threat-Led Penetration Testing), exigés par DORA pour les acteurs significatifs.

Droits des personnes

Quels sont vos droits et comment les exercer ?

En application des articles 15 à 22 du RGPD, vous disposez des droits suivants sur vos données personnelles :

  • droit d’accès,
  • droit de rectification,
  • droit à l’effacement,
  • droit à la limitation,
  • droit d’opposition,
  • droit à la portabilité,
  • droit de retrait du consentement.

Vous pouvez exercer vos droits en adressant une demande à : dpo@centralpay.com.
Nous nous engageons à vous répondre dans un délai de 30 jours maximum, sauf cas exceptionnel justifiant une prolongation. En cas de difficulté, vous pouvez également saisir la CNIL.

Comment concilions-nous effacement et obligations légales ?

CentralPay respecte le droit à l’effacement prévu par le RGPD, mais certaines données doivent être conservées en raison d’obligations légales.
Nous supprimons ou anonymisons toutes les données personnelles qui ne sont plus nécessaires.
En revanche, lorsque la loi nous impose de conserver certaines informations (par exemple les écritures comptables pendant 10 ans ou les données KYC pendant 5 ans après la fin de la relation), ces données sont maintenues mais :

  • leur accès est strictement limité,
  • elles ne sont utilisées que pour les finalités imposées par la loi (contrôle ACPR, TRACFIN, obligations probatoires).

Ainsi, nous trouvons un équilibre entre le respect des droits des personnes et nos obligations réglementaires.

Autres garanties

Utilisons-nous des décisions automatisées ou du profilage ?

CentralPay n’applique aucune décision entièrement automatisée produisant des effets juridiques ou significatifs sur les personnes, au sens de l’article 22 du RGPD.
Nous utilisons en revanche des outils de scoring antifraude qui calculent un niveau de risque sur les transactions. Ces résultats servent uniquement d’aide à la décision : lorsqu’un cas est sensible ou à risque, il est systématiquement revu et validé par un contrôle humain.

Utilisons-nous des cookies ou traceurs à des fins publicitaires ?

Sur les parcours de paiement et dans les API, CentralPay n’utilise aucun cookie publicitaire ni traceur marketing. Seuls des cookies ou traceurs strictement nécessaires au fonctionnement technique et à la sécurité des parcours (ex. gestion de session, authentification) peuvent être utilisés.
À ce stade, aucun mécanisme de consentement via bannière n’est nécessaire, puisque nous n’utilisons pas de cookies optionnels.

Comment assurons-nous la résilience et les sauvegardes ?

Oui. L’infrastructure est redondée sur deux data centers localisés en France ; les sauvegardes sont chiffrées et externalisées, testées régulièrement (restores) et retiennent les mêmes contrôles d’accès que la production.

Avons-nous une politique de purge et d’anonymisation documentée ?

Oui, avec délais par objet (transactions/personnelles 24 mois, cartes jusqu’à 24 mois après date d’expiration, KYC 5 ans post-relation, mandats 10 ans, logs 24 mois) et mécanismes (suppression vs anonymisation irréversible), plus traces de purge (logs d’exécution).

Nos environnements de test contiennent-ils des données réelles ?

CentralPay n’utilise jamais de données personnelles réelles dans ses environnements de test ou de préproduction. Tous nos jeux de données internes (ex. cartes, IBAN, profils clients) sont synthétiques ou fictifs et conformes aux standards PCI DSS.

Cependant, les utilisateurs de nos environnements de test (par ex. marchands intégrateurs) peuvent techniquement saisir leurs propres données. Cette pratique est formellement interdite et encadrée par nos conditions d’utilisation.

Si un utilisateur insère par erreur des données personnelles dans un environnement de test, celles-ci :

  • ne sont pas utilisées à des fins de traitement de paiement réel,
  • ne sont pas répliquées en production,
  • et font l’objet d’une purge automatique ou manuelle dès leur détection.

Comment CentralPay gère-t-il l’accès des équipes support aux données ?

Les équipes support de CentralPay n’ont pas d’accès direct et permanent aux données personnelles. L’accès est accordé uniquement en cas de besoin opérationnel (par exemple pour résoudre un incident ou assister un client), et selon les principes suivants :

  • Accès temporaire et justifié : chaque accès est accordé pour une durée limitée et doit être motivé par un ticket ou une demande validée.
  • Principe du moindre privilège : l’agent support ne voit que les données strictement nécessaires pour traiter la demande.
  • Authentification forte (MFA) : tous les accès sont sécurisés par une authentification à plusieurs facteurs.
  • Traçabilité complète : chaque action effectuée par un membre du support est enregistrée et auditée.
  • Revue régulière des habilitations : les droits d’accès sont revus mensuellement pour s’assurer qu’ils restent justifiés.
  • Masquage des données sensibles : les champs sensibles (ex. numéro complet de carte, CVC, IBAN complet) sont systématiquement masqués dans les interfaces, afin que le support ne puisse jamais les visualiser en clair.

Offrons-nous des clauses contractuelles spécifiques RGPD à vos clients ?

Nos CGU/contrats intègrent les clauses nécessaires (confidentialité, sécurité, coopération incidents, sous-traitance, conservation/purge). Des avenants RGPD sont possibles selon les cas d’usage.

Partageons-nous nos politiques et procédures internes ?

La Politique RGPD publique est disponible en ligne. Les politiques internes détaillées (procédures incidents, purge, sécurité) ne sont, par défaut, pas partagées.

Privacy Policy

Last updated: September 15, 2025

At CentralPay, the protection of personal data is at the heart of our commitments. As an Electronic money Institution authorized by the ACPR (authorization No. 17138), we process personal data in accordance with the General Data Protection Regulation (GDPR – EU 2016/679) and applicable French law.

This policy clearly and transparently describes how we process personal data in connection with the provision of our payment services.

1. Who is the data controller?

The data controller is:
CentralPay – 19 rue Edouard VAILLANT – 37000 TOURS
DPO contact: dpo@centralpay.com

2. What data do we collect?

CentralPay collects only the data strictly necessary to provide its payment services and to comply with its legal and regulatory obligations.

Identification Information

  • Last name, first name, title.
  • Date and place of birth.
  • Nationality.
  • Position (executive, legal representative, UBO).

Contact Information

  • Email address.
  • Phone number (cell or landline).
  • Business or personal mailing address (as applicable).

Payment Information

  • Bank account information: IBAN and BIC.
  • Card data: card number (collected only in a PCI DSS-compliant environment and immediately tokenized), expiration date, card brand (Visa, Mastercard, etc.), issuing country, last 4 digits.
  • Important: CentralPay never discloses the full card number or the security code to the Merchant.

Transaction Data

  • Transaction ID, date, and time.
  • Amount, currency, payment status.
  • Order reference (orderId).
  • Transaction history (one-time payments, recurring payments, installment payments, refunds).

Security and Anti-Fraud Data

  • Connection IP address.
  • Technical profile of the device (browser, language, screen resolution) during 3DS authentication.
  • Internal anti-fraud results and scores.
  • Possible monitoring status (technical blacklist).

KYC/AML-CFT Compliance Data

  • Identity documents (NIC, Passport, Residence permit).
  • Proof of address (utility bill, receipt).
  • Company legal documents (Commercial register, Articles of association, Register of Beneficial Owners).
  • Information on UBOs (names, ownership percentages).

Technical Data (Service-Related)

  • Application and technical logs (API logs).
  • Processing events (webhooks sent to Merchants).
  • Technical tracking identifiers (transactionId, customerId, etc.).

3. For what purposes do we use your data?

CentralPay processes your personal data solely for specific, explicit, and legitimate purposes. Each processing activity is based on a legal basis that complies with the GDPR.

Payment Processing and Service Management

  • Purpose: To process your payment transactions (SEPA, credit cards, Direct Debit, Bank transfers, recurring or installment payments), handle billing, and manage cash flows.
  • Data involved: bank account information (IBAN, BIC), card data (token, schema, country, masked PAN), transaction IDs, amounts, currencies, order references.
  • Legal basis: performance of the contract (Art. 6.1.b of the GDPR).

Identity Verification and Regulatory Requirements (KYC/AML-CFT)

  • Purpose: To comply with legal obligations regarding the fight against money laundering and terrorist financing (AML/CFT) and with the supervisory requirements of the ACPR.
  • Data covered: identification data (last name, first name, date of birth, nationality), identity documents, Proof of address, legal documents of the company, information on UBOs.
  • Legal basis: legal obligation (Art. 6.1.c of the GDPR; Art. L561-1 et seq. of the Monetary and Financial Code).

Fraud Prevention and Detection

  • Purpose: to secure transactions, prevent unauthorized or fraudulent payments, and enforce strong authentication rules (PSD2/3DS).
  • Data involved: IP address, technical fingerprint of the browser/device, card scheme and issuing country, results of anti-fraud checks, and any monitoring status.
  • Legal basis: legal obligation (PSD2) and legitimate interest (payment security—Art. 6.1.f of the GDPR).

Customer Relationship Management and Support

  • Purpose: to communicate with customers and users (confirming transactions, sending payment links, sending notifications), respond to support requests, and follow up on complaints and Disputes.
  • Data involved: email, phone number, customer credentials, and associated transaction data.
  • Legal basis: performance of the contract (Art. 6.1.b GDPR) and legitimate interest (customer relationship management).

Compliance with accounting, tax, and reporting requirements

  • Purpose: to retain certain data in order to comply with legal retention requirements (Commercial Code, General Tax Code) and to produce accounting and evidentiary documentation.
  • Data in question: transactional data (amounts, currencies, dates, statuses, references), and bank account information related to transactions.
  • Legal basis: legal obligation (Art. 6.1.c GDPR).

Improving Our Services and Technical Security

  • Purpose: To analyze the use of our services, optimize performance, and ensure resilience and cybersecurity, in accordance with the DORA regulation.
  • Data in question: technical logs, events (webhooks), technical identifiers, and anonymized usage statistics.
  • Legal basis: legitimate interest (Art. 6.1.f of the GDPR).

4. What is the legal basis for this processing?

Each data processing activity is based on a clearly defined legal basis:

  • Contract performance (Art. 6.1.b of the GDPR): processing payments, account management, customer relations, and support.
  • Legal obligation (Art. 6.1.c of the GDPR): AML/CFT compliance (Art. L561 of the French Monetary and Financial Code), accounting and tax obligations (Commercial Code, General Tax Code), regulatory obligations (PSD2, ACPR).
  • Legitimate interest (Art. 6.1.f of the GDPR): fraud prevention, system security, dispute resolution, and service improvement.
  • Consent (Art. 6.1.a GDPR): only for certain optional marketing communications or as required by law.

5. How long do we retain your data?

CentralPay follows a strict data retention schedule that complies with the requirements of the GDPR, the Monetary and Financial Code, and the Commercial Code.

We distinguish between:

a) Financial Transactions (Accounting Entries and Supporting Documents)

  • Retained for 10 years in accordance with accounting and evidentiary requirements (Art. L123-22 of the Commercial Code).
  • Data involved: transaction IDs (transactionId), date, amount, currency, status, order ID (orderId).
  • This information is required for contractual purposes and accounting and is not anonymized.

(b) Personal data associated with transactions

  • Stored for a maximum of 24 months and then irreversibly anonymized.
  • Data in question:
    • Payer’s contact information (email, phone number),
    • IP address, browser/device fingerprint (3DS),
    • Card data (token, masked PAN, expiration date, schema, issuing country),
    • Anti-fraud results (score, blacklist status).
  • This information is no longer retained beyond 24 months because it is no longer required by law or under any contract.

(c) Payment card data

  • Stored for up to 24 months after the card’s expiration date, then deleted or anonymized.
  • CentralPay never discloses the full PAN or the CVC outside its PCI DSS environment.

d) Bank Account information (IBAN/BIC) and SEPA direct debits

  • Retained for the duration of the term of office plus 10 years (contractual evidence), then deleted or anonymized.

e) KYC / AML-CFT Data

  • Retained for 5 years after the end of the business relationship (Art. L561-12 CMF), then deleted or anonymized.
  • Data covered: identity documents, proof of address, company legal documents, and information on UBOs.

f) Subscriptions and installment payments

  • Retained for the duration of the subscription plus 5 years (for evidentiary purposes), then anonymized.
  • Data involved: subscription ID, payment schedule, link to payment method.

g) Technical logs and webhooks

  • Stored for up to 24 months, then anonymized.
  • Data involved: API logs, processing events, technical identifiers (customerId, eventId), statuses, timestamps.

6. Who are the recipients of your data?

Your data may be shared only with:

  • CentralPay internal services (operations, compliance, support, security).
  • Payment partners and financial institutions (acquirers, SEPA settlement systems, card schemes).
  • Technical service providers (cloud hosting, KYC provider, SMS/email delivery) that are subject to contractual terms compliant with the GDPR.
  • Competent authorities (ACPR, TRACFIN, Banque de France, judicial authorities).

We never sell your data to third parties.

7. Where is your data processed?

  • The data is hosted in the European Union, primarily in France.
  • In the event of a transfer outside the EU (e.g., SMS or email service provider), standard contractual clauses (SCCs) and additional measures are implemented to ensure an equivalent level of protection.

8. What are your rights?

In accordance with Articles 15 through 22 of the GDPR, you have the following rights:

  • Right of access, correction, and deletion.
  • Right to restriction, objection, and data portability.
  • Right to withdraw consent (if applicable).
  • The right to file a complaint with the CNIL.

You can exercise your rights by writing to: dpo@centralpay.com (response within 30 days).

9. Safety

CentralPay implements a security policy aligned with PCI DSS, ISO 27001/27005 standards, and the European DORA (Digital Operational Resilience Act) regulation. Our measures cover the entire lifecycle of data and payment services to ensure their confidentiality, integrity, and availability.

Security is primarily ensured through clear governance and proactive risk management. We have a risk management framework approved by senior management, which includes a risk appetite policy, a risk map aligned with ISO and DORA standards, and risk indicators that are monitored regularly. This framework is implemented through a three-lines-of-defense structure and overseen by a security and compliance committee.

Data protection is based on systematic encryption, both in transit (TLS 1.2/1.3) and at rest (AES-256), with centralized key management. Payment data is processed exclusively in a PCI DSS Level 1-certified environment and undergoes irreversible tokenization, which prevents any exposure of full card numbers or security codes. In addition, we enforce strict policies for the automatic deletion and anonymization of personal data once the retention periods specified by the GDPR have expired.

Access to systems is strictly controlled through centralized identity management based on the principle of least privilege. Every employee is required to undergo strong two-factor authentication (MFA), and access permissions are reviewed regularly to ensure they remain appropriate.

Our infrastructure is continuously monitored. Sensitive operations are comprehensively logged and time-stamped, and a real-time monitoring system, coupled with an SIEM, enables us to quickly detect security incidents.

Operational resilience is ensured by a business continuity framework aligned with DORA. CentralPay has implemented an Emergency and Business Continuity Plan (PUPA) that includes regularly tested disaster recovery (PCA) and business continuity (PRI) components. Penetration tests and crisis management exercises are conducted annually, while a strict ICT outsourcing policy ensures the ongoing evaluation of critical service providers and the maintenance of a regulatory information registry.

Incident management follows a formalized procedure for detection, classification, and resolution. In the event of a major incident, we comply with the regulatory reporting deadlines for the ACPR and the CNIL, and a systematic review is conducted to continuously improve our security measures.

Finally, CentralPay is committed to continuous improvement. Internal and external audits, including independent PCI DSS and cybersecurity audits, are conducted regularly. Our ongoing monitoring and periodic audit procedures are reviewed annually to ensure their effectiveness and compliance with international standards and regulatory requirements.

10. Policy Update

This policy may be amended to reflect changes in data processing practices and legal requirements. Any updates will be posted on our website and, if necessary, communicated to the affected customers.

Articles

  • Subcontractors
  • FAQ - Privacy PolicyRGPD

Subcontractors

In providing its payment services, Centralpay relies on a number of processors as defined in Article 4 of the General Data Protection Regulation (GDPR). These processors may be required to process personal data on behalf of Centralpay, exclusively in accordance with documented instructions and within the scope of the purposes of the service to which they contribute.

This page lists the subcontractors that may be involved in the processing of personal data belonging to Account Owners, Merchants, and Payers who use Centralpay services. It is updated as our system evolves.

SubcontractorPurposeCountry Where Data Is ProcessedData Categories
Amazon Web Services (AWS)Cloud hosting for certain services and application dataIrelandAll data processed by the departments
Comply Advantage (IVXS)AML/CFT Screening and Verification Against International Sanctions ListsRomaniaIdentification Information
DotfileManagement of onboarding processes, collection and updating of KYC/KYB recordsFranceIdentification Information, Supporting Documents
Gpayments3D Secure authentication for Card Transactions (second service provider)IrelandCard data, authentication
InnovestThe group’s parent company; internal recipient for the purposes of governance, audit, compliance, and consolidated reportingFranceGovernance and Reporting Data
MicrosoftManagement and Control of Cash FlowsFranceTransaction and Accounting Data
Netcetera3D-Secure Authentication for Card Transactions (Access Control Server)SwitzerlandCard data, authentication
OnfidoAutomated verification of identification documents and biometric data (facial recognition, liveness detection)EuropeIdentification data, biometric data
QomboVerification of Beneficiary (verification of the beneficiary of a SEPA bank transfer)FranceIdentification Information, IBAN
Tanla Digital LabsSending text messages (authentication codes, notifications)EuropePhone number, message content

Supervision of Subcontractors and Change Control Procedures

In accordance with Article 28 of the GDPR, all processors engaged by Centralpay act exclusively on the basis of documented instructions, are bound by strict contractual obligations regarding confidentiality and security, and may not use personal data for any purposes other than those defined by Centralpay.

Any substantial change to this list will be announced in advance by any appropriate means (notification on the Merchant Portal, email, or a public update to this page), allowing the individuals concerned, if applicable, to object to such changes.

If you have any questions regarding the processing of your data or the exercise of your rights, you can contact our Data Protection Officer at: dpo@centralpay.eu.

FAQ - Privacy Policy

Governance and Responsibilities

Data Controller and DPO Contact

CentralPay, an Electronic money Institution (EMI), is the data controller for its payment services.
DPO contact: dpo@centralpay.com (response within 30 days).

Data Collected

What data do we collect?

As part of the provision of its payment services and in order to comply with its legal obligations, CentralPay collects only the data that is strictly necessary. This data varies depending on the type of transaction (payment, KYC verification, fraud prevention, customer support). It falls into several categories:

  • Identifying information: last name, first name, title, date and place of birth, nationality, and role (e.g., legal representative, executive, or Beneficial Owner—UBO).
  • Contact information: email address, phone number, mailing address.
  • Payment information: bank account details (IBAN, BIC); card information processed exclusively in a PCI DSS-certified environment (full card number and CVC collected solely for tokenization and never exposed in plain text), expiration date, card brand (Visa, Mastercard, etc.), issuing country, and last 4 digits.
  • Transaction data: transaction ID (transactionId), date and time, amount, currency, status, order ID (orderId), transaction history (one-time payments, recurring payments, split payments, refunds).
  • Security and anti-fraud data: IP address, 3DS fingerprint (browser/device), anti-fraud results and scores, and any technical monitoring status.
  • KYC/AML-CFT compliance data: official identity documents, proof of address, legal documents pertaining to the company (e.g., Commercial register, Articles of association), information on ultimate Beneficial Owners (UBOs and ownership percentages).
  • Technical data: application logs (API logs), events sent to Merchants (webhooks), technical identifiers (customerId, eventId).

CentralPay does not collect any sensitive data as defined in Article 9 of the GDPR (health, religion, political opinions, sexual orientation, etc.), unless required to do so by law in exceptional circumstances.

Purposes

Why do we use your data?

CentralPay processes your personal data solely for specific, explicit, and legitimate purposes. This processing is carried out in connection with the provision of our payment services, compliance with our regulatory obligations, and the security of our systems. The main purposes are as follows:

  • Payment Processing: processing payment transactions (SEPA, credit cards, recurring or installment payments), managing cash flows, issuing invoices, and tracking payments.
  • Compliance with regulatory requirements: enforcement of anti-money laundering and counter-terrorism financing (AML/CTF) rules, know-your-customer (KYC) verification, legal document retention, and supervision by the ACPR.
  • Fraud prevention and detection: implementation of the security controls required by PSD2 (strong authentication, 3DS), calculation of anti-fraud scores, and alert management.
  • Customer Relations and Support: communicating with customers and users (notifications, confirmations, sending payment links), handling support requests, and managing complaints and disputes.
  • Accounting and tax obligations: retention of supporting documents; compliance with the provisions of the Commercial Code and the General Tax Code.
  • Technical Improvement and Security: Monitoring the performance and availability of our services; strengthening operational resilience in accordance with the DORA regulation; and continuously improving the customer experience and the security of our systems.

Legal Basis

What is the legal basis for our data processing?

CentralPay processes your personal data solely for specific, explicit, and legitimate purposes. This processing is carried out in connection with the provision of our payment services, compliance with our regulatory obligations, and the security of our systems. The main purposes are as follows:

  • Payment Processing: processing payment transactions (SEPA, credit cards, recurring or installment payments), managing cash flows, issuing invoices, and tracking payments.
  • Compliance with regulatory obligations: enforcement of anti-money laundering and counter-terrorism financing (AML/CTF) rules, know-your-customer (KYC) verification, legal document retention, and supervision by the ACPR.
  • Fraud prevention and detection: implementation of the security controls required by PSD2 (strong authentication, 3DS), calculation of fraud scores, and alert management.
  • Customer Relations and Support: communicating with customers and users (notifications, confirmations, sending payment links), handling support requests, and managing complaints and Disputes.
  • Accounting and Tax Obligations: Retention of supporting documents; compliance with the provisions of the Commercial Code and the General Tax Code.
  • Technical Improvement and Security: Monitoring the performance and availability of our services, strengthening operational resilience in accordance with the DORA regulation, and continuously improving the customer experience and the security of our systems.

How long do we retain your data?

CentralPay follows specific retention periods based on legal requirements and operational needs. At the end of these periods, the data is either deleted or irreversibly anonymized.

  • Financial transactions (supporting documents): retained for 10 years, in accordance with the Commercial Code.
  • Personal data associated with transactions (email, phone number, IP address, 3DS fingerprints, masked PAN, card token, fraud scores): retained for a maximum of 24 months, then deleted or anonymized.
  • Card data (token + metadata): retained for up to 24 months after the card’s expiration date. The full PAN and CVC are never stored in plain text.
  • Payment Requests (emails/text messages): Retained for up to 24 months.
  • Subscriptions and installment payments: retained for the duration of the subscription plus 5 years.
  • Bank Accounts (IBAN/BIC) and SEPA direct debits: retained for the duration of the mandate plus 10 years (contractual evidence).
  • KYC / AML-CFT: Data retained for 5 years after the end of the business relationship (Art. L561-12 of the French Monetary and Financial Code).
  • Technical logs and webhooks: retained for 24 months.

Beyond these time periods, CentralPay retains only anonymized data or data that is strictly necessary to comply with a legal obligation.

Location and Transfers

Where is your data processed?

The data processed by CentralPay is primarily hosted in the European Union—mainly in France—in environments certified to PCI DSS and ISO 27001 standards.

To date, CentralPay does not transfer personal data outside the European Union.
If a transfer outside the EU were to become necessary in the future (for example, to an SMS or email service provider), it would be governed by:

  • an impact analysis of the transfer,
  • the implementation of the European Commission’s Standard Contractual Clauses (SCCs),
  • additional technical measures (encryption, segmentation, access control),
  • and transparent communication with our customers.

Data Transfers Outside the EU: How Do We Handle Them?

To date, CentralPay does not transfer personal data outside the European Union.
All data is hosted and processed within the EU, primarily in France and within certified (PCI DSS) infrastructure.

If, in the future, a transfer outside the EU were to be necessary (for example, to an SMS or email service provider), CentralPay undertakes to:

  • conduct an impact analysis of the transfer,
  • apply the European Commission’s Standard Contractual Clauses (SCCs),
  • implement additional technical measures (encryption, segmentation, access control),
  • and keep its customers fully informed.

Nature of the Data

Do we process sensitive data?

No. CentralPay does not process any sensitive data as defined in Article 9 of the GDPR (health, religion, political opinions, sexual orientation, etc.).
We collect only the information strictly necessary to process payments and comply with our legal obligations (anti-money laundering and counter-terrorism financing, ACPR supervision).

Do we collect data from minors?

CentralPay provides its services exclusively to businesses (B2B). We therefore do not knowingly collect data from minors.
If, indirectly, a minor is required to make a payment, data processing is limited to the necessary payment information (e.g., bank or card details), and is always carried out under the responsibility of the minor’s legal guardian when verification is required.

GDPR Compliance

Do we conduct impact assessments (PIA)?

Yes, we conduct AIPDs (PIAs) for processing operations that may pose a high risk (e.g., KYC, anti-fraud/3DS, card tokenization, longitudinal analyses). Residual risks and mitigation measures are documented.

How do we ensure data minimization and privacy by design?

We collect only the fields necessary for each specific purpose, segregate environments (LIVE/pre-production), do not use any real data in testing, limit webhook payloads to the minimum necessary, and automatically purge or anonymize data upon expiration.

How does CentralPay document its GDPR compliance?

  • Public GDPR Policy (website).
  • Record of data processing (internal, up-to-date).
  • PIA on High-Risk Processing (Internal).
  • Policies/procedures (security, data deletion, incidents, rights).
  • Internal Control Reports (ACPR).

Subcontractors

How do we supervise our service providers?

Each service provider is subject to contractual requirements (Art. 28): security measures, confidentiality, incident reporting, auditability, data location, and controlled sub-contracting. Initial due diligence + regular reassessment (security, SLA, compliance).

Which service providers do we use?

Upon request and after signing an NDA, we can provide an up-to-date list of our service providers, organized by category (hosting/cloud, KYC, email/SMS delivery, fraud prevention, support), along with their geographic locations.

How do we select our key service providers?

CentralPay has a policy for managing subcontractors that complies with both the GDPR (Article 28) and the DORA Regulation.

During the selection process, we conduct a thorough due diligence review covering security (certifications, technical measures), regulatory compliance (GDPR, PSD2, AML/CFT), data location and legal framework, the service provider’s financial stability, and the service levels (SLAs) offered. For critical service providers, we examine in particular their integration into the payment services value chain and their role in ensuring operational resilience.

Each contractual relationship includes clauses that comply with Article 28 of the GDPR (confidentiality, security, incident notification, and restrictions on cascading subcontracting) as well as, where applicable, Standard Contractual Clauses (SCCs) to govern transfers outside the European Union.

In accordance with DORA, we maintain a registry of ICT service providers and identify those considered critical service providers. These service providers are subject to enhanced evaluation, with specific contractual requirements regarding availability, integrity, continuity, and resilience testing.

Monitoring is conducted through regular reviews (inspections, audit reports, SOC/ISO-type compliance certifications, security questionnaires), a contractual right to audit, and periodic reporting mechanisms. We perform integration of these assessments into our ICT risk mapping and our DORA monitoring committees.

Security and Resilience

What technical safeguards do we use?

CentralPay protects data and systems by combining robust technical mechanisms that comply with the highest international standards.
Communications are secured through systematic encryption: TLS 1.2/1.3 for data in transit and AES-256 for data at rest, with centralized key management.
Card data is processed exclusively in a PCI DSS Level 1 environment, with data collection in a dedicated area and irreversible tokenization to prevent any exposure of the full PAN.
Access to the systems is controlled by RBAC (role-based access control) mechanisms and protected by strong authentication (MFA), with regular reviews of access privileges.
All sensitive actions are logged with a timestamp and cannot be tampered with; this logging is integrated into an SIEM system that provides real-time detection and alerts.
The infrastructure is compartmentalized: network segmentation, strict separation of environments (production, testing, pre-production), and secure management of secrets.
Finally, CentralPay regularly tests its system through penetration tests, vulnerability scans, and independent external audits.

How does our organization ensure safety?

Security relies not only on technology but also on strong organization and governance.
CentralPay implements a risk management framework that includes detailed risk mapping, key performance indicators (KPIs), and a risk appetite policy approved by management.
Oversight is based on the recognized three lines of defense model: operations provide first-line controls, an independent compliance and ongoing monitoring function serves as the second line, and internal audit constitutes the third line.
A Security and Compliance Committee meets regularly to steer strategy and update key policies and procedures (access management, incident response, data purges, and the exercise of GDPR rights).
Finally, the security culture is reinforced through regular training for teams, covering cybersecurity, personal data protection, and AML/CFT obligations.

What should we do in the event of a security incident?

CentralPay has a formalized incident management procedure.
In the event of an incident, we quickly detect, assess, and immediately contain it, followed by remedial actions.
All events are fully logged and investigated (forensically) to identify the cause and prevent recurrence.
When required by regulation, we notify the CNIL within a maximum of 72 hours and inform the affected individuals in the event of a high-risk incident.
Each incident results in a lessons-learned review and the implementation of a corrective action plan, which is monitored until the issue is fully resolved.

Our Security Audits

CentralPay is subject to multiple levels of security controls and testing, both internal and external:

  • Regular external audits:
    • Annual PCI DSS Level 1 certification for the collection and processing of payment data,
    • Independent cybersecurity audits,
    • Penetration tests conducted by third-party service providers to identify and fix vulnerabilities.
  • Ongoing internal controls (second line of defense): security clearance reviews, vulnerability scans, and monitoring of critical systems.
  • Periodic independent audits (third line of defense): internal and external audits of the security framework and regulatory compliance (ACPR, DORA).
  • Annual Policy Review: All of our policies regarding security, data purging, incidents, and vendor management are reviewed and approved annually by management.
  • Resilience testing in accordance with DORA:
    • Business Continuity and Disaster Recovery Plans (BCP/DRP) that are regularly tested to verify the ability to maintain services in the event of a major incident,
    • Crisis exercises simulating cyberattack scenarios or critical system outages,
    • Load and performance testing of critical infrastructure,
    • Failover and redundancy scenarios across environments to ensure availability,
    • For critical functions, a gradual shift toward advanced resilience tests such as “TLPT” (Threat-Led Penetration Testing), as required by DORA for significant entities.

Human Rights

What are your rights, and how can you exercise them?

Pursuant to Articles 15 through 22 of the GDPR, you have the following rights regarding your personal data:

  • right of access,
  • right to correction,
  • right to erasure,
  • right to restriction,
  • right to object,
  • right to data portability,
  • right to withdraw consent.

You can exercise your rights by sending a request to: dpo@centralpay.com.
We are committed to responding to you within a maximum of 30 days, except in exceptional cases that warrant an extension. If you encounter any difficulties, you may also file a complaint with the CNIL.

How do we balance data erasure with legal obligations?

CentralPay respects the right to erasure as provided for by the GDPR, but certain data must be retained due to legal obligations.
We delete or anonymize all personal data that is no longer necessary.
However, when the law requires us to retain certain information (for example, accounting records for 10 years or KYC data for 5 years after the end of the relationship), this data is retained, but:

  • access to them is strictly limited,
  • They are used only for purposes required by law (ACPR audits, TRACFIN, evidentiary obligations).

In this way, we strike a balance between respecting people’s rights and meeting our regulatory obligations.

Other Coverages

Do we use automated decisions or profiling?

CentralPay does not apply any fully automated decisions that produce legal or significant effects on individuals, as defined in Article 22 of the GDPR.
However, we do use anti-fraud scoring tools that calculate a risk level for transactions. These results are used solely as a decision-making aid: when a case is sensitive or high-risk, it is systematically reviewed and validated by a human reviewer.

Do we use cookies or trackers for advertising purposes?

In payment flows and APIs, CentralPay does not use any advertising cookies or marketing trackers. Only cookies or trackers that are strictly necessary for the technical operation and security of the payment flows (e.g., session management, authentication) may be used.
At this point, no banner-based consent mechanism is necessary, since we do not use optional cookies.

How do we ensure resilience and backups?

Yes. The infrastructure is redundant across two data centers located in France; backups are encrypted and stored off-site, tested regularly (restores), and are subject to the same access controls as the production environment.

Do we have a documented policy for data purging and anonymization?

Yes, with retention periods by category (transactions/personal data: 24 months; cards: up to 24 months after the expiration date; KYC: 5 years after the relationship ends, power of attorney: 10 years, logs: 24 months) and mechanisms (deletion vs. irreversible anonymization), plus records of data purging (execution logs).

Do our test environments contain real data?

CentralPay never uses actual personal data in its test or pre-production environments. All of our internal datasets (e.g., cards, IBANs, Customer Profiles) are synthetic or fictitious and comply with PCI DSS standards.

However, users of our test environments (e.g., Merchant integrators) can technically enter their own data. This practice is strictly prohibited and governed by our Terms of Use.

If a user accidentally enters personal data into a test environment, that data:

  • are not used for actual payment processing,
  • are not replicated in production,
  • and are automatically or manually purged as soon as they are detected.

How does CentralPay manage support teams’ access to data?

CentralPay’s support teams do not have direct, permanent access to personal data. Access is granted only when necessary for operational purposes (for example, to resolve an incident or assist a customer), and in accordance with the following principles:

  • Temporary and Justified Access: Each access request is granted for a limited period and must be supported by a ticket or an approved request.
  • Principle of least privilege: The support agent sees only the data strictly necessary to process the request.
  • Strong Authentication (MFA): All access is secured through multi-factor authentication.
  • Full traceability: Every action performed by a support team member is logged and audited.
  • Regular review of access permissions: Access rights are reviewed monthly to ensure they remain justified.
  • Masking of Sensitive Data: Sensitive fields (e.g., full card number, CVV, full IBAN) are systematically masked in the interfaces so that support staff can never view them in plain text.

Do we provide your customers with specific GDPR-compliant contract terms?

Our Terms of Service and contracts include the necessary provisions (confidentiality, security, incident response, subcontracting, data retention and deletion). GDPR addenda may be included depending on the specific use case.

Do we share our internal policies and procedures?

The public GDPR policy is available online. Detailed internal policies (incident response, data retention, security) are not shared by default.

MID

jQuery(document).ready( function($) { window.live_6ab3046f5c790 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_MID.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5c790", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5c790.load(); });

MID

jQuery(document).ready( function($) { window.live_6ab3046f9f842 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_MID.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9f842", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9f842.load(); });

The PAYMENT-ACCOUNT object

PAYMENT_ACCOUNT_STATUS_UPDATED
When a payment account is updated
{
    "blockConfigurationId": "e09287a2-xxxx-xxxx-xxxx-02e4d8a90f84",
    "blockReason": "ACCOUNT_DUPLICATE",
    "blockStatus": "IN_OUT",
    "creationDate": "2026-04-16T09:03:48.171329+02:00",
    "enrollmentUuid": "af5c4ccb-xxxx-xxxx-xxxx-3365ebad820c",
    "merchantUuid": "aa23c0d6-xxxx-xxxx-xxxx-0765feacc9f1"
}

The PAYMENT-ACCOUNT object

PAYMENT_ACCOUNT_STATUS_UPDATED
When a payment account is updated
{
    "blockConfigurationId": "e09287a2-xxxx-xxxx-xxxx-02e4d8a90f84",
    "blockReason": "ACCOUNT_DUPLICATE",
    "blockStatus": "IN_OUT",
    "creationDate": "2026-04-16T09:03:48.171329+02:00",
    "enrollmentUuid": "af5c4ccb-xxxx-xxxx-xxxx-3365ebad820c",
    "merchantUuid": "aa23c0d6-xxxx-xxxx-xxxx-0765feacc9f1"
}

Enrollment Details

jQuery(document).ready( function($) { window.live_6ab3046f6b1c8 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Enrollment details.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6b1c8", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6b1c8.load(); });

Enrollment Details

jQuery(document).ready( function($) { window.live_6ab3046fad9ff = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Enrollment details.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fad9ff", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fad9ff.load(); });

Movement

jQuery(document).ready( function($) { window.live_6ab3046f5cc30 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Movement.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5cc30", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5cc30.load(); });

Movement

jQuery(document).ready( function($) { window.live_6ab3046f9fd6b = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Movement.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f9fd6b", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f9fd6b.load(); });

Origin

See more about Payment Requests

jQuery(document).ready( function($) { window.live_6ab3046f5d3ff = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Origin.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5d3ff", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5d3ff.load(); });

Origin

See more about Payment Requests

jQuery(document).ready( function($) { window.live_6ab3046fa0769 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Origin.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa0769", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa0769.load(); });

PIS

See more about Payment Requests

jQuery(document).ready( function($) { window.live_6ab3046f5dba1 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_PIS.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5dba1", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5dba1.load(); });

PIS

See more about Payment Requests

jQuery(document).ready( function($) { window.live_6ab3046fa0f23 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_PIS.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa0f23", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa0f23.load(); });

Payment Request

See more about Payment Requests

jQuery(document).ready( function($) { window.live_6ab3046f5e31c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Payment Request.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5e31c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5e31c.load(); });
jQuery(document).ready( function($) { window.live_6ab3046f5e32b = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_PaymentRequestHistory.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5e32b", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5e32b.load(); });

Payment Request

See more about Payment Requests

jQuery(document).ready( function($) { window.live_6ab3046fa16d0 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Payment Request.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa16d0", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa16d0.load(); });
jQuery(document).ready( function($) { window.live_6ab3046fa16df = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_PaymentRequestHistory.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa16df", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa16df.load(); });

E-money

jQuery(document).ready( function($) { window.live_6ab3046f6b79e = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Autocomplete.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6b79e", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6b79e.load(); });

jQuery(document).ready( function($) { window.live_6ab3046f6b7ad = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Autoupdate.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6b7ad", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6b7ad.load(); });

E-money

jQuery(document).ready( function($) { window.live_6ab3046fade0c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Autocomplete.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fade0c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fade0c.load(); });

jQuery(document).ready( function($) { window.live_6ab3046fade1a = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Autoupdate.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fade1a", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fade1a.load(); });

Payout

See more about Payout

jQuery(document).ready( function($) { window.live_6ab3046f5eb57 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Payout.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5eb57", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5eb57.load(); });
jQuery(document).ready( function($) { window.live_6ab3046f5eb66 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Merchant Payout Setup.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5eb66", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5eb66.load(); });

Payout

See more about Payout

jQuery(document).ready( function($) { window.live_6ab3046fa25da = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Payout.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa25da", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa25da.load(); });
jQuery(document).ready( function($) { window.live_6ab3046fa25ee = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Merchant Payout Setup.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa25ee", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa25ee.load(); });

Misc

jQuery(document).ready( function($) { window.live_6ab3046f6bbc3 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Configuration.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6bbc3", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6bbc3.load(); });

Misc

jQuery(document).ready( function($) { window.live_6ab3046fae419 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Configuration.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fae419", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fae419.load(); });

MERCHANT-ENROLLMENT status

This page lists the possible values returned by the status field in the EnrollmentWorkflow object. These statuses indicate the current state of a merchant onboarding process initiated through CentralPay’s API or user portal.

📌 Status List

StatusDescription
API_CALLThe enrollment was initiated via API. The workflow has been created but no validation has occurred yet.
VALIDATIONThe onboarding request is currently under validation (e.g., verifying provided data and uploaded documents).
ON_GOINGThe process is ongoing. The merchant is expected to provide more information or complete additional steps.
OVERRIDECentralPay has overridden a previous decision and resumed processing the enrollment.
REFUSEDThe enrollment request has been refused. CentralPay may have detected a regulatory issue, risk, or missing eligibility requirement.
ACCEPTEDThe merchant enrollment is complete and validated. The merchant can now use their CentralPay account.

🔁 Status Flow Overview

✅ Standard Status Flow

API_CALL → VALIDATION → ON_GOING → ACCEPTED

This is the default progression for a successful enrollment:

  • API_CALL – The enrollment has been created via API. No validation has started yet.
  • VALIDATION – CentralPay is verifying the submitted information and documents.
  • ON_GOING – The merchant is expected to provide additional data or complete onboarding steps.
  • ACCEPTED – The enrollment has been approved. The merchant can now use their CentralPay account.

❌ Alternative Flow – Rejection

API_CALL → VALIDATION → REFUSED

or

API_CALL → VALIDATION → ON_GOING → REFUSED

The enrollment is rejected during the process, either early on or after attempted completion. Common reasons include:

  • Invalid or non-compliant documents
  • Ineligible merchant activity
  • Excessive financial or regulatory risk

🔁 Manual Override After Refusal

REFUSED → OVERRIDE → VALIDATION / ON_GOING

If new or corrected information is provided, a CentralPay operator may resume the process after an initial refusal.

The OVERRIDE status indicates that a manual decision has been made to re-open the enrollment flow.

💬 Notes

  • An Agent or DME may retrieve the enrollment status via API to track progress.
  • CentralPay sends webhooks to the configured endpoint when the enrollment status changes (e.g., ACCEPTED, REFUSED).
  • Once the enrollment is ACCEPTED, the merchant’s profile becomes active, and their account is ready for use.

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.

Point Of Sale

jQuery(document).ready( function($) { window.live_6ab3046f5f073 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Point Of Sale.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5f073", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5f073.load(); });

Point Of Sale

jQuery(document).ready( function($) { window.live_6ab3046fa2b01 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Point Of Sale.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa2b01", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa2b01.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_6ab3046f5fe48 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Refund.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f5fe48", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f5fe48.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_6ab3046fa394c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Refund.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa394c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa394c.load(); });

TRANSFER status

This page lists and describes the status values associated with the Transfer object. These statuses reflect the progression of a fund transfer operation created via the /transfer endpoint in CentralPay’s API.

Status values

StatusDescription
CREATEDThe transfer has been successfully created and registered. It has not yet been executed.
SCHEDULEDThe transfer is scheduled for automatic execution at a defined date/time.
PENDINGThe transfer is being processed. Execution is in progress but not yet finalized.
CANCELEDThe transfer was canceled 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 → CANCELED

If the transfer is canceled 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 canceled 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 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.
CANCELEDThe transfer was canceled 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 → CANCELED

If the transfer is canceled 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 canceled 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.
CANCELEDThe reversal request was canceled 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 → CANCELED

🔍 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.

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.
CANCELEDThe reversal request was canceled 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 → CANCELED

🔍 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.

PendingOperation

jQuery(document).ready( function($) { window.live_6ab3046f60340 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_PendingOperation.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f60340", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f60340.load(); });

PendingOperation

jQuery(document).ready( function($) { window.live_6ab3046fa3e89 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_PendingOperation.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa3e89", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa3e89.load(); });

PAYMENT REQUEST status

  • Payment request status:
    • ACTIVE
    • CLOSED
    • CANCELED
  • Payment status :
    • UNPAID
    • ACCEPTED
    • PARTIALLY_PAID
    • PAID

The following table explains every possible status combination and what they point out :

Payment request statusPayment status Explanation
ACTIVEUNPAIDPayment request created, waiting for the customer’s payment.
ACTIVEPARTIALLY_PAIDThe customer has paid part of the total sum of the payment request that will stay ACTIVE while waiting for the remaining payment(s).
ACTIVEACCEPTEDTemporary status that is exclusive for the SDD transactions, PIS transactions, pre-authorization and deferred payments. The customer has done the required action and the operation is waiting for the processing.
CLOSEDPAIDThe payment request has been fully paid.
CLOSEDPARTIALLY_PAIDThe payment request has been partially paid and the merchant has manually closed it. This can be performed from the API or the user portal if the merchant is satisfied with this partial payment of the customer and allows to stop any automatic reminders.
CANCELEDUNPAIDThe payment request was cancelled before the customer’s payment. This cancellation may be initiated by the merchant via API or via the User Portal (in the event of an error in the creation or cancellation of an order, for example), or carried out automatically if the link expires. This cancellation reason is visible from the User Portal.

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.

Regularisation

jQuery(document).ready( function($) { window.live_6ab3046f607c4 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Regularisation.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f607c4", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f607c4.load(); });

Regularisation

jQuery(document).ready( function($) { window.live_6ab3046fa430d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Regularisation.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa430d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa430d.load(); });

TRANSACTION status

Status « Transaction »

StatusDescription
SUCCESSThe transaction is a « success » when an authorization request has been issued by the Bank and the bank return code is « 0 ».
FRAUDThe status indicates that the transaction encountered a « blacklisted » item. This can come from an IP, phone number, email or card number.
CAPTUREDA Success transaction must be « captured » within 7 calendar days in order to be charged to your Customer’s card.
Note: by default, a transaction is automatically « captured ».
FAILUREThe transaction is in « failure » when the authorization has not been issued by the Bank issuing the card.
In addition, you receive a rejection code issued by the bank of the card issuer (bank code < 100).
CANCELEDThis status reflects the cancellation of a « capture » request before it is cleared. It is possible to cancel a transaction between the « success » and « cleared » transaction status.
THREEDS_AUTH_FAILURE3DS authentication failed. The cardholder submitted an incorrect code or did not submit it in time.
CLEAREDA « Cleared » transaction indicates that a debit has been made on your customer’s card. At this point, you can no longer cancel the transaction, but you can refund it using the « refund » API object.
NOT_ACCEPTEDThe transaction was declined as it encountered an element of denial of an acceptance rule.

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.

RIB

jQuery(document).ready( function($) { window.live_6ab3046f60bf5 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Rib.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f60bf5", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f60bf5.load(); });

RIB

jQuery(document).ready( function($) { window.live_6ab3046fa47e9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Rib.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa47e9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa47e9.load(); });

SCT Transaction

Articles

  • SCT Transaction
  • SCT Transaction Reversal
  • SCT Transaction Refund
  • SCT transaction Refund Reversal
  • Bank Reconciliation
  • Bank Reconciliation external

SCT Transaction

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_6ab3046eefdd2 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046eefdd2", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046eefdd2.load(); });

SCT Transaction Reversal

See more about SCT Transaction Reversal

jQuery(document).ready( function($) { window.live_6ab3046f23dbb = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f23dbb", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f23dbb.load(); });

SCT Transaction Refund

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_6ab3046f43d3e = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction Refund.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f43d3e", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f43d3e.load(); });

SCT transaction Refund Reversal

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_6ab3046f4d2fa = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT transaction Refund Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f4d2fa", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f4d2fa.load(); });

Bank Reconciliation

See more about Bank Reconciliation

jQuery(document).ready( function($) { window.live_6ab3046f4e2ea = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Reconciliation wireTransfer.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f4e2ea", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f4e2ea.load(); });

Bank Reconciliation external

See more about Bank Reconciliation

jQuery(document).ready( function($) { window.live_6ab3046f61bc6 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Reconciliation external.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f61bc6", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f61bc6.load(); });

SCT Transaction

Articles

  • SCT Transaction
  • SCT Transaction Reversal
  • SCT Transaction Refund
  • SCT transaction Refund Reversal
  • Bank Reconciliation
  • Bank Reconciliation external

SCT Transaction

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_6ab3046ef062c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046ef062c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046ef062c.load(); });

SCT Transaction Reversal

See more about SCT Transaction Reversal

jQuery(document).ready( function($) { window.live_6ab3046f2459c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f2459c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f2459c.load(); });

SCT Transaction Refund

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_6ab3046f44638 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT Transaction Refund.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f44638", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f44638.load(); });

SCT transaction Refund Reversal

See more about SCT Transaction

jQuery(document).ready( function($) { window.live_6ab3046f4db1b = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SCT transaction Refund Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f4db1b", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f4db1b.load(); });

Bank Reconciliation

See more about Bank Reconciliation

jQuery(document).ready( function($) { window.live_6ab3046f4eb2d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Reconciliation wireTransfer.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f4eb2d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f4eb2d.load(); });

Bank Reconciliation external

See more about Bank Reconciliation

jQuery(document).ready( function($) { window.live_6ab3046fa59db = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Bank Reconciliation external.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa59db", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa59db.load(); });

REFUND status

Statuts « Refund »

StatutDescription
CLEAREDProcessed refund.
UNCLEAREDRefund pending processing.
FAILURERefund in error.
CANCELEDRefund cancelled, either by you or by your customer via the customer portal.

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.

SDD Transaction

Articles

  • Mandate
  • SDD Transaction
  • SDD Transaction Reversal
  • SDD Transaction Refund
  • SDD Transaction Refund Reversal

Mandate

See more about Mandate

jQuery(document).ready( function($) { window.live_6ab3046f628b5 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Mandate.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f628b5", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f628b5.load(); });

SDD Transaction

See more about SDD Transaction

jQuery(document).ready( function($) { window.live_6ab3046f6330d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6330d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6330d.load(); });

SDD Transaction Reversal

See more about SDD Transaction Reversal

jQuery(document).ready( function($) { window.live_6ab3046f63bac = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f63bac", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f63bac.load(); });

SDD Transaction Refund

jQuery(document).ready( function($) { window.live_6ab3046f64050 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Refund.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f64050", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f64050.load(); });

SDD Transaction Refund Reversal

jQuery(document).ready( function($) { window.live_6ab3046f644a9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Refund Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f644a9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f644a9.load(); });

SDD Transaction

Articles

  • Mandate
  • SDD Transaction
  • SDD Transaction Reversal
  • SDD Transaction Refund
  • SDD Transaction Refund Reversal

Mandate

See more about Mandate

jQuery(document).ready( function($) { window.live_6ab3046fa65f7 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Mandate.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa65f7", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa65f7.load(); });

SDD Transaction

See more about SDD Transaction

jQuery(document).ready( function($) { window.live_6ab3046fa6e0c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa6e0c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa6e0c.load(); });

SDD Transaction Reversal

See more about SDD Transaction Reversal

jQuery(document).ready( function($) { window.live_6ab3046fa762c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa762c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa762c.load(); });

SDD Transaction Refund

jQuery(document).ready( function($) { window.live_6ab3046fa7a9d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Refund.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa7a9d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa7a9d.load(); });

SDD Transaction Refund Reversal

jQuery(document).ready( function($) { window.live_6ab3046fa7ef7 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SDD Transaction Refund Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa7ef7", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa7ef7.load(); });

CREDIT status

Status « Credit »

StatusDescription
CLEAREDCredit processed.
UNCLEAREDCredit pending processing
FAILURECredit in error.
CANCELEDCredit cancelled, either by you or by your Customer via the customer portal.

CREDIT status

Status « Credit »

StatusDescription
CLEAREDCredit processed.
UNCLEAREDCredit pending processing
FAILURECredit in error.
CANCELEDCredit cancelled, either by you or by your Customer via the customer portal.

DISPUTES status

Status « Disputes »

StatutDescription
FRAUD_NOTICEDA preventive fraud alert sent by the issuer via the card scheme (e.g., Visa TC40). It is not a formal dispute nor a refund. Use it to anticipate controls and block similar attempts.
RETRIEVAL_NOTICEDA request for information is sent to you in order to obtain information on the nature of the operation carried out. At this point, it is not a proven dispute. Depending on your response to this request, your client can turn it into a dispute.
RETRIEVAL_CLOSENotification that the request for information is closed. The information provided has prevented the dispute.
CHARGEBACK_NOTICEDA transaction dispute is sent by your customer. The amount of this transaction will be charged to refund your customer. Non-refundable fees also apply for each dispute received.
Note : a Chargeback (dispute) is not necessarily preceded by a Retrieval (request for information).
CHARGEBACK_WONYou were successful, the dispute was rejected. The amount of the transaction is refunded to you.
CHARGEBACK_LOSTYour evidences are deemed insufficient, the challenge is upheld.
TRANSACTION_REFUNDEDThe amount of the disputed transaction was refunded to you following a CHARGEBACK_WON.

DISPUTES status

Status « Disputes »

StatutDescription
FRAUD_NOTICEDA preventive fraud alert sent by the issuer via the card scheme (e.g., Visa TC40). It is not a formal dispute nor a refund. Use it to anticipate controls and block similar attempts.
RETRIEVAL_NOTICEDA request for information is sent to you in order to obtain information on the nature of the operation carried out. At this point, it is not a proven dispute. Depending on your response to this request, your client can turn it into a dispute.
RETRIEVAL_CLOSENotification that the request for information is closed. The information provided has prevented the dispute.
CHARGEBACK_NOTICEDA transaction dispute is sent by your customer. The amount of this transaction will be charged to refund your customer. Non-refundable fees also apply for each dispute received.
Note : a Chargeback (dispute) is not necessarily preceded by a Retrieval (request for information).
CHARGEBACK_WONYou were successful, the dispute was rejected. The amount of the transaction is refunded to you.
CHARGEBACK_LOSTYour evidences are deemed insufficient, the challenge is upheld.
TRANSACTION_REFUNDEDThe amount of the disputed transaction was refunded to you following a CHARGEBACK_WON.

Scenario

jQuery(document).ready( function($) { window.live_6ab3046f64a11 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Scenario.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f64a11", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f64a11.load(); });

Scenario

jQuery(document).ready( function($) { window.live_6ab3046fa832c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Scenario.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa832c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa832c.load(); });

SUBSCRIPTION status

Status « Subscription »

StatusDescription
ACCEPTEDThe subscription is active and running (initial status when a subscription is successfully created).
PENDINGStatus defined by the configuration you have chosen in case of repeated payment failures.
REFUSEDStatus defined by the configuration you have chosen in case of repeated payment failures.
CANCELEDThe subscription has been canceled either by you or by your Customer via the customer portal.

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.
CANCELEDThe subscription has been canceled either by you or by your Customer via the customer portal.

SourceType

jQuery(document).ready( function($) { window.live_6ab3046f64e68 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SourceType.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f64e68", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f64e68.load(); });

SourceType

jQuery(document).ready( function($) { window.live_6ab3046fa885d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_SourceType.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa885d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa885d.load(); });

Subscription

Articles

  • Subscription Model
  • Subscription
  • Invoice
  • InvoiceItem

Subscription Model

See more about Subscription Model

jQuery(document).ready( function($) { window.live_6ab3046f65a21 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Subscription Model.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f65a21", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f65a21.load(); });

Subscription

See more about Subscription

jQuery(document).ready( function($) { window.live_6ab3046f662f1 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Subscription.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f662f1", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f662f1.load(); });

Invoice

See more about Invoice & invoiceItem

jQuery(document).ready( function($) { window.live_6ab3046f66b11 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Invoice.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f66b11", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f66b11.load(); });

InvoiceItem

See more about Invoice & invoiceItem

jQuery(document).ready( function($) { window.live_6ab3046f67318 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Invoice Item.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f67318", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f67318.load(); });

Subscription

Articles

  • Subscription Model
  • Subscription
  • Invoice
  • InvoiceItem

Subscription Model

See more about Subscription Model

jQuery(document).ready( function($) { window.live_6ab3046fa9359 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Subscription Model.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa9359", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa9359.load(); });

Subscription

See more about Subscription

jQuery(document).ready( function($) { window.live_6ab3046fa9b63 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Subscription.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fa9b63", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fa9b63.load(); });

Invoice

See more about Invoice & invoiceItem

jQuery(document).ready( function($) { window.live_6ab3046faa31a = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Invoice.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046faa31a", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046faa31a.load(); });

InvoiceItem

See more about Invoice & invoiceItem

jQuery(document).ready( function($) { window.live_6ab3046faab1c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Invoice Item.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046faab1c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046faab1c.load(); });

INSTALLMENT status

Status « Subscription »

StatusDescription
ACTIVEThe installment is active and follows its course (initial status when an installment is created successfully).
PAIDThe installment has been fully paid.
FAILUREA payment attempt failed, there will be at least one more trial (The number of trials is configurable on the user portal).
UNPAIDAll payment attempts failed, final status.
CANCELEDThe installment has been cancelled by the merchant.

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.

Transfer

jQuery(document).ready( function($) { window.live_6ab3046f678e9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Transfer.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f678e9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f678e9.load(); });

Transfer

jQuery(document).ready( function($) { window.live_6ab3046faaf58 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Transfer.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046faaf58", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046faaf58.load(); });

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.

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.

TransferReversal

jQuery(document).ready( function($) { window.live_6ab3046f67d0b = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Transfer Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f67d0b", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f67d0b.load(); });

TransferReversal

jQuery(document).ready( function($) { window.live_6ab3046fab358 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Transfer Reversal.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fab358", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fab358.load(); });

MANDATE status

Status « Mandate »

StatusDescription
ACTIVEActive mandate, ready to use.
PENDINGMandate pending validation.
OBSOLETEInactive mandate, not usable.

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.
CANCELEDThe bank account is no longer usable (closed account, fraud, …).

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.
CANCELEDThe bank account is no longer usable (closed account, fraud, …).

Wallet

jQuery(document).ready( function($) { window.live_6ab3046f682e7 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Wallet.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f682e7", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f682e7.load(); });

Wallet

jQuery(document).ready( function($) { window.live_6ab3046fab777 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Wallet.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fab777", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fab777.load(); });

PAYOUT status

StatusDescription
PAIDThe payout has been paid.
PENDINGPayout pending processing.
CANCELEDThe payout has been canceled (only in pending).
REVERSEDThe payout has been refused by the creditor bank, the amount will be credited again on the debtor wallet.

PAYOUT status

StatusDescription
PAIDThe payout has been paid.
PENDINGPayout pending processing.
CANCELEDThe payout has been canceled (only in pending).
REVERSEDThe payout has been refused by the creditor bank, the amount will be credited again on the debtor wallet.

Blacklist

jQuery(document).ready( function($) { window.live_6ab3046f6880d = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Blacklist.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6880d", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6880d.load(); });

Blacklist

jQuery(document).ready( function($) { window.live_6ab3046fabb58 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Blacklist.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fabb58", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fabb58.load(); });

SCT TRANSACTION status

Status « SCT Transaction »

StatusDescription
PENDINGPending receipt of the SCT Transaction.
RECEIVEDSCT Transaction received.
CANCELEDSCT Transaction cancelled before receipt.
REFUNDEDSCT Transaction refunded.

SCT TRANSACTION status

Status « SCT Transaction »

StatusDescription
PENDINGPending receipt of the SCT Transaction.
RECEIVEDSCT Transaction received.
CANCELEDSCT Transaction cancelled before receipt.
REFUNDEDSCT Transaction refunded.

WhiteList

jQuery(document).ready( function($) { window.live_6ab3046f68dea = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Whitelist.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f68dea", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f68dea.load(); });

WhiteList

jQuery(document).ready( function($) { window.live_6ab3046fabf09 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/core-api/openapi_Whitelist.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fabf09", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fabf09.load(); });

The MERCHANT-ENROLLMENT object

Prochainement

The MERCHANT-ENROLLMENT object

Prochainement

The WALLETS object

WALLET_CREATED
When a wallet is created
{
    "activityStatus": "ACTIVE",
    "additionalData": [],
    "available": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "closedAccount": false,
    "creationDate": "2026-09-16T09:51:26.776625Z",
    "currency": "EUR",
    "customerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "defaultWallet": false,
    "hasDebt": false,
    "merchantPayoutSetupId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "owner": {
        "name": "Martin Durant",
        "uuid": "xxxx-xxxx-xxxx-xxxx-xxxx",
    },
    "ownerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "name": "PAYMENT ACCOUNT",
    "pending": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "personal": false,
    "realtimeBalance": {
        "availableBalance": 0,
        "clearedBalance": 0,
        "pendingBalance": 0,
        "pendingCreditSum": 0,
        "pendingDebitSum": 0
    },
    "reserve": 0,
    "type": "PS",
    "walletId": "e0b54b2f-badc-4aef-b402-902fec733bc2"
}
WALLET_UPDATED
When a wallet is updated
{
    "activityStatus": "ACTIVE",
    "additionalData": [],
    "available": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "closedAccount": false,
    "creationDate": "2026-09-16T09:51:26.776625Z",
    "currency": "EUR",
    "customerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "defaultWallet": false,
    "hasDebt": false,
    "merchantPayoutSetupId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "owner": {
        "name": "Martin Durant",
        "uuid": "xxxx-xxxx-xxxx-xxxx-xxxx",
    },
    "ownerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "name": "PAYMENT ACCOUNT",
    "pending": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "personal": false,
    "realtimeBalance": {
        "availableBalance": 0,
        "clearedBalance": 0,
        "pendingBalance": 0,
        "pendingCreditSum": 0,
        "pendingDebitSum": 0
    },
    "reserve": 0,
    "type": "PS",
    "walletId": "e0b54b2f-badc-4aef-b402-902fec733bc2"
}

The WALLETS object

WALLET_CREATED
When a wallet is created
{
    "activityStatus": "ACTIVE",
    "additionalData": [],
    "available": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "closedAccount": false,
    "creationDate": "2026-09-16T09:51:26.776625Z",
    "currency": "EUR",
    "customerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "defaultWallet": false,
    "hasDebt": false,
    "merchantPayoutSetupId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "owner": {
        "name": "Martin Durant",
        "uuid": "xxxx-xxxx-xxxx-xxxx-xxxx",
    },
    "ownerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "name": "PAYMENT ACCOUNT",
    "pending": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "personal": false,
    "realtimeBalance": {
        "availableBalance": 0,
        "clearedBalance": 0,
        "pendingBalance": 0,
        "pendingCreditSum": 0,
        "pendingDebitSum": 0
    },
    "reserve": 0,
    "type": "PS",
    "walletId": "e0b54b2f-badc-4aef-b402-902fec733bc2"
}
WALLET_UPDATED
When a wallet is updated
{
    "activityStatus": "ACTIVE",
    "additionalData": [],
    "available": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "closedAccount": false,
    "creationDate": "2026-09-16T09:51:26.776625Z",
    "currency": "EUR",
    "customerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "defaultWallet": false,
    "hasDebt": false,
    "merchantPayoutSetupId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "owner": {
        "name": "Martin Durant",
        "uuid": "xxxx-xxxx-xxxx-xxxx-xxxx",
    },
    "ownerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "name": "PAYMENT ACCOUNT",
    "pending": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "personal": false,
    "realtimeBalance": {
        "availableBalance": 0,
        "clearedBalance": 0,
        "pendingBalance": 0,
        "pendingCreditSum": 0,
        "pendingDebitSum": 0
    },
    "reserve": 0,
    "type": "PS",
    "walletId": "e0b54b2f-badc-4aef-b402-902fec733bc2"
}

Onboarding

Articles

  • Create Enrollement
  • Complete enrollment
  • Update enrollment
  • Search enrollement
  • Enrollment Details
  • E-money
  • Misc

Create Enrollement

jQuery(document).ready( function($) { window.live_6ab3046f69912 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Create enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f69912", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f69912.load(); });

jQuery(document).ready( function($) { window.live_6ab3046f69921 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_User.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f69921", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f69921.load(); });

Complete enrollment

jQuery(document).ready( function($) { window.live_6ab3046f69f7c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Complete enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f69f7c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f69f7c.load(); });

jQuery(document).ready( function($) { window.live_6ab3046f69f8b = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Complete additional enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f69f8b", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f69f8b.load(); });

jQuery(document).ready( function($) { window.live_6ab3046f69f97 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f69f97", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f69f97.load(); });

Update enrollment

jQuery(document).ready( function($) { window.live_6ab3046f6a5ea = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Update enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6a5ea", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6a5ea.load(); });

jQuery(document).ready( function($) { window.live_6ab3046f6a5f9 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Rollback enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6a5f9", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6a5f9.load(); });

Search enrollement

jQuery(document).ready( function($) { window.live_6ab3046f6ac09 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Search enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6ac09", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6ac09.load(); });

Enrollment Details

jQuery(document).ready( function($) { window.live_6ab3046f6b1c8 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Enrollment details.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6b1c8", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6b1c8.load(); });

E-money

jQuery(document).ready( function($) { window.live_6ab3046f6b79e = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Autocomplete.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6b79e", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6b79e.load(); });

jQuery(document).ready( function($) { window.live_6ab3046f6b7ad = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Autoupdate.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6b7ad", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6b7ad.load(); });

Misc

jQuery(document).ready( function($) { window.live_6ab3046f6bbc3 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Configuration.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046f6bbc3", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046f6bbc3.load(); });

Onboarding

Articles

  • Create Enrollement
  • Complete enrollment
  • Update enrollment
  • Search enrollement
  • Enrollment Details
  • E-money
  • Misc

Create Enrollement

jQuery(document).ready( function($) { window.live_6ab3046fac75c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Create enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fac75c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fac75c.load(); });

jQuery(document).ready( function($) { window.live_6ab3046fac76b = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_User.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fac76b", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fac76b.load(); });

Complete enrollment

jQuery(document).ready( function($) { window.live_6ab3046facc57 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Complete enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046facc57", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046facc57.load(); });

jQuery(document).ready( function($) { window.live_6ab3046facc66 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Complete additional enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046facc66", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046facc66.load(); });

jQuery(document).ready( function($) { window.live_6ab3046facc71 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046facc71", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046facc71.load(); });

Update enrollment

jQuery(document).ready( function($) { window.live_6ab3046fad152 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Update enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fad152", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fad152.load(); });

jQuery(document).ready( function($) { window.live_6ab3046fad160 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Rollback enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fad160", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fad160.load(); });

Search enrollement

jQuery(document).ready( function($) { window.live_6ab3046fad639 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Search enrollment.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fad639", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fad639.load(); });

Enrollment Details

jQuery(document).ready( function($) { window.live_6ab3046fad9ff = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Enrollment details.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fad9ff", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fad9ff.load(); });

E-money

jQuery(document).ready( function($) { window.live_6ab3046fade0c = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Autocomplete.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fade0c", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fade0c.load(); });

jQuery(document).ready( function($) { window.live_6ab3046fade1a = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Autoupdate.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fade1a", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fade1a.load(); });

Misc

jQuery(document).ready( function($) { window.live_6ab3046fae419 = SwaggerUIBundle({ url: "https://docs.centralpay.com/wp-content/Swagger/obd-api/openapi_Configuration.yaml", dom_id: "#wp-swagger-ui-container-live_6ab3046fae419", deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, //SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], //layout: "StandaloneLayout" }); window.live_6ab3046fae419.load(); });

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": []
}
BANKACCOUNT_REFUSED
When a Bank account is refused
{
    "name": "BANKACCOUNT REF API",
    "description": null,
    "ownerName": "BANKACCOUNT REFAPI",
    "ownerAddress": "142 RUE DE LA REFAPI",
    "ownerDescription": null,
    "ownerPostalCode": "37000",
    "ownerCity": "TOURS",
    "ownerCountry": "FRA",
    "iban": "FR7612548029980000000150086",
    "bic": "AXABFRPP",
    "currency": "EUR",
    "refusalComment": "The bank details do not match the name of the company, SC CONNECTING FIRST.",
    "refusalReason": "IBAN_INVALID",
    "status": "REFUSED",
    "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": []
}
BANKACCOUNT_CANCELED
When a Bank account is canceled
{
    "name": "BANKACCOUNT REF API",
    "description": null,
    "ownerName": "BANKACCOUNT REFAPI",
    "ownerAddress": "142 RUE DE LA REFAPI",
    "ownerDescription": null,
    "ownerPostalCode": "37000",
    "ownerCity": "TOURS",
    "ownerCountry": "FRA",
    "iban": "FR7612548029980000000150086",
    "bic": "AXABFRPP",
    "currency": "EUR",
    "status": "CANCELED",
    "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 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": []
}
BANKACCOUNT_REFUSED
When a Bank account is refused
{
    "name": "BANKACCOUNT REF API",
    "description": null,
    "ownerName": "BANKACCOUNT REFAPI",
    "ownerAddress": "142 RUE DE LA REFAPI",
    "ownerDescription": null,
    "ownerPostalCode": "37000",
    "ownerCity": "TOURS",
    "ownerCountry": "FRA",
    "iban": "FR7612548029980000000150086",
    "bic": "AXABFRPP",
    "currency": "EUR",
    "refusalComment": "The bank details do not match the name of the company, SC CONNECTING FIRST.",
    "refusalReason": "IBAN_INVALID",
    "status": "REFUSED",
    "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": []
}
BANKACCOUNT_CANCELED
When a Bank account is canceled
{
    "name": "BANKACCOUNT REF API",
    "description": null,
    "ownerName": "BANKACCOUNT REFAPI",
    "ownerAddress": "142 RUE DE LA REFAPI",
    "ownerDescription": null,
    "ownerPostalCode": "37000",
    "ownerCity": "TOURS",
    "ownerCountry": "FRA",
    "iban": "FR7612548029980000000150086",
    "bic": "AXABFRPP",
    "currency": "EUR",
    "status": "CANCELED",
    "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 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"
}

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.
CANCELEDThe transfer was canceled 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 → CANCELED

If the transfer is canceled 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 canceled 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.
CANCELEDThe reversal request was canceled 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 → CANCELED

🔍 Notes

  • A reversal can only be initiated if the original transfer is eligible.
  • Once DONE, the reversal is final and reflected in both wallets.
  • Status changes can be tracked via webhook notifications if configured.

PAYMENT REQUEST status

  • Payment request status:
    • ACTIVE
    • CLOSED
    • CANCELED
  • Payment status :
    • UNPAID
    • ACCEPTED
    • PARTIALLY_PAID
    • PAID

The following table explains every possible status combination and what they point out :

Payment request statusPayment status Explanation
ACTIVEUNPAIDPayment request created, waiting for the customer’s payment.
ACTIVEPARTIALLY_PAIDThe customer has paid part of the total sum of the payment request that will stay ACTIVE while waiting for the remaining payment(s).
ACTIVEACCEPTEDTemporary status that is exclusive for the SDD transactions, PIS transactions, pre-authorization and deferred payments. The customer has done the required action and the operation is waiting for the processing.
CLOSEDPAIDThe payment request has been fully paid.
CLOSEDPARTIALLY_PAIDThe payment request has been partially paid and the merchant has manually closed it. This can be performed from the API or the user portal if the merchant is satisfied with this partial payment of the customer and allows to stop any automatic reminders.
CANCELEDUNPAIDThe payment request was cancelled before the customer’s payment. This cancellation may be initiated by the merchant via API or via the User Portal (in the event of an error in the creation or cancellation of an order, for example), or carried out automatically if the link expires. This cancellation reason is visible from the User Portal.

TRANSACTION status

Status « Transaction »

StatusDescription
SUCCESSThe transaction is a « success » when an authorization request has been issued by the Bank and the bank return code is « 0 ».
FRAUDThe status indicates that the transaction encountered a « blacklisted » item. This can come from an IP, phone number, email or card number.
CAPTUREDA Success transaction must be « captured » within 7 calendar days in order to be charged to your Customer’s card.
Note: by default, a transaction is automatically « captured ».
FAILUREThe transaction is in « failure » when the authorization has not been issued by the Bank issuing the card.
In addition, you receive a rejection code issued by the bank of the card issuer (bank code < 100).
CANCELEDThis status reflects the cancellation of a « capture » request before it is cleared. It is possible to cancel a transaction between the « success » and « cleared » transaction status.
THREEDS_AUTH_FAILURE3DS authentication failed. The cardholder submitted an incorrect code or did not submit it in time.
CLEAREDA « Cleared » transaction indicates that a debit has been made on your customer’s card. At this point, you can no longer cancel the transaction, but you can refund it using the « refund » API object.
NOT_ACCEPTEDThe transaction was declined as it encountered an element of denial of an acceptance rule.

REFUND status

Statuts « Refund »

StatutDescription
CLEAREDProcessed refund.
UNCLEAREDRefund pending processing.
FAILURERefund in error.
CANCELEDRefund cancelled, either by you or by your customer via the customer portal.

CREDIT status

Status « Credit »

StatusDescription
CLEAREDCredit processed.
UNCLEAREDCredit pending processing
FAILURECredit in error.
CANCELEDCredit cancelled, either by you or by your Customer via the customer portal.

DISPUTES status

Status « Disputes »

StatutDescription
FRAUD_NOTICEDA preventive fraud alert sent by the issuer via the card scheme (e.g., Visa TC40). It is not a formal dispute nor a refund. Use it to anticipate controls and block similar attempts.
RETRIEVAL_NOTICEDA request for information is sent to you in order to obtain information on the nature of the operation carried out. At this point, it is not a proven dispute. Depending on your response to this request, your client can turn it into a dispute.
RETRIEVAL_CLOSENotification that the request for information is closed. The information provided has prevented the dispute.
CHARGEBACK_NOTICEDA transaction dispute is sent by your customer. The amount of this transaction will be charged to refund your customer. Non-refundable fees also apply for each dispute received.
Note : a Chargeback (dispute) is not necessarily preceded by a Retrieval (request for information).
CHARGEBACK_WONYou were successful, the dispute was rejected. The amount of the transaction is refunded to you.
CHARGEBACK_LOSTYour evidences are deemed insufficient, the challenge is upheld.
TRANSACTION_REFUNDEDThe amount of the disputed transaction was refunded to you following a CHARGEBACK_WON.

SUBSCRIPTION status

Status « Subscription »

StatusDescription
ACCEPTEDThe subscription is active and running (initial status when a subscription is successfully created).
PENDINGStatus defined by the configuration you have chosen in case of repeated payment failures.
REFUSEDStatus defined by the configuration you have chosen in case of repeated payment failures.
CANCELEDThe subscription has been canceled 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.
CANCELEDThe bank account is no longer usable (closed account, fraud, …).

PAYOUT status

StatusDescription
PAIDThe payout has been paid.
PENDINGPayout pending processing.
CANCELEDThe payout has been canceled (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.

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.
CANCELEDThe transfer was canceled 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 → CANCELED

If the transfer is canceled 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 canceled 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.
CANCELEDThe reversal request was canceled 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 → CANCELED

🔍 Notes

  • A reversal can only be initiated if the original transfer is eligible.
  • Once DONE, the reversal is final and reflected in both wallets.
  • Status changes can be tracked via webhook notifications if configured.

PAYMENT REQUEST status

  • Payment request status:
    • ACTIVE
    • CLOSED
    • CANCELED
  • Payment status :
    • UNPAID
    • ACCEPTED
    • PARTIALLY_PAID
    • PAID

The following table explains every possible status combination and what they point out :

Payment request statusPayment status Explanation
ACTIVEUNPAIDPayment request created, waiting for the customer’s payment.
ACTIVEPARTIALLY_PAIDThe customer has paid part of the total sum of the payment request that will stay ACTIVE while waiting for the remaining payment(s).
ACTIVEACCEPTEDTemporary status that is exclusive for the SDD transactions, PIS transactions, pre-authorization and deferred payments. The customer has done the required action and the operation is waiting for the processing.
CLOSEDPAIDThe payment request has been fully paid.
CLOSEDPARTIALLY_PAIDThe payment request has been partially paid and the merchant has manually closed it. This can be performed from the API or the user portal if the merchant is satisfied with this partial payment of the customer and allows to stop any automatic reminders.
CANCELEDUNPAIDThe payment request was cancelled before the customer’s payment. This cancellation may be initiated by the merchant via API or via the User Portal (in the event of an error in the creation or cancellation of an order, for example), or carried out automatically if the link expires. This cancellation reason is visible from the User Portal.

TRANSACTION status

Status « Transaction »

StatusDescription
SUCCESSThe transaction is a « success » when an authorization request has been issued by the Bank and the bank return code is « 0 ».
FRAUDThe status indicates that the transaction encountered a « blacklisted » item. This can come from an IP, phone number, email or card number.
CAPTUREDA Success transaction must be « captured » within 7 calendar days in order to be charged to your Customer’s card.
Note: by default, a transaction is automatically « captured ».
FAILUREThe transaction is in « failure » when the authorization has not been issued by the Bank issuing the card.
In addition, you receive a rejection code issued by the bank of the card issuer (bank code < 100).
CANCELEDThis status reflects the cancellation of a « capture » request before it is cleared. It is possible to cancel a transaction between the « success » and « cleared » transaction status.
THREEDS_AUTH_FAILURE3DS authentication failed. The cardholder submitted an incorrect code or did not submit it in time.
CLEAREDA « Cleared » transaction indicates that a debit has been made on your customer’s card. At this point, you can no longer cancel the transaction, but you can refund it using the « refund » API object.
NOT_ACCEPTEDThe transaction was declined as it encountered an element of denial of an acceptance rule.

REFUND status

Statuts « Refund »

StatutDescription
CLEAREDProcessed refund.
UNCLEAREDRefund pending processing.
FAILURERefund in error.
CANCELEDRefund cancelled, either by you or by your customer via the customer portal.

CREDIT status

Status « Credit »

StatusDescription
CLEAREDCredit processed.
UNCLEAREDCredit pending processing
FAILURECredit in error.
CANCELEDCredit cancelled, either by you or by your Customer via the customer portal.

DISPUTES status

Status « Disputes »

StatutDescription
FRAUD_NOTICEDA preventive fraud alert sent by the issuer via the card scheme (e.g., Visa TC40). It is not a formal dispute nor a refund. Use it to anticipate controls and block similar attempts.
RETRIEVAL_NOTICEDA request for information is sent to you in order to obtain information on the nature of the operation carried out. At this point, it is not a proven dispute. Depending on your response to this request, your client can turn it into a dispute.
RETRIEVAL_CLOSENotification that the request for information is closed. The information provided has prevented the dispute.
CHARGEBACK_NOTICEDA transaction dispute is sent by your customer. The amount of this transaction will be charged to refund your customer. Non-refundable fees also apply for each dispute received.
Note : a Chargeback (dispute) is not necessarily preceded by a Retrieval (request for information).
CHARGEBACK_WONYou were successful, the dispute was rejected. The amount of the transaction is refunded to you.
CHARGEBACK_LOSTYour evidences are deemed insufficient, the challenge is upheld.
TRANSACTION_REFUNDEDThe amount of the disputed transaction was refunded to you following a CHARGEBACK_WON.

SUBSCRIPTION status

Status « Subscription »

StatusDescription
ACCEPTEDThe subscription is active and running (initial status when a subscription is successfully created).
PENDINGStatus defined by the configuration you have chosen in case of repeated payment failures.
REFUSEDStatus defined by the configuration you have chosen in case of repeated payment failures.
CANCELEDThe subscription has been canceled 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.
CANCELEDThe bank account is no longer usable (closed account, fraud, …).

PAYOUT status

StatusDescription
PAIDThe payout has been paid.
PENDINGPayout pending processing.
CANCELEDThe payout has been canceled (only in pending).
REVERSEDThe payout has been refused by the creditor bank, the amount will be credited again on the debtor wallet.

SCT TRANSACTION status

Status « SCT Transaction »

StatusDescription
PENDINGPending receipt of the SCT Transaction.
RECEIVEDSCT Transaction received.
CANCELEDSCT Transaction cancelled before receipt.
REFUNDEDSCT Transaction refunded.

Webhook notifications

Articles

  • The PAYMENT-ACCOUNT object
  • 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 PAYMENT-ACCOUNT object

PAYMENT_ACCOUNT_STATUS_UPDATED
When a payment account is updated
{
    "blockConfigurationId": "e09287a2-xxxx-xxxx-xxxx-02e4d8a90f84",
    "blockReason": "ACCOUNT_DUPLICATE",
    "blockStatus": "IN_OUT",
    "creationDate": "2026-04-16T09:03:48.171329+02:00",
    "enrollmentUuid": "af5c4ccb-xxxx-xxxx-xxxx-3365ebad820c",
    "merchantUuid": "aa23c0d6-xxxx-xxxx-xxxx-0765feacc9f1"
}

The MERCHANT-ENROLLMENT object

Prochainement

The WALLETS object

WALLET_CREATED
When a wallet is created
{
    "activityStatus": "ACTIVE",
    "additionalData": [],
    "available": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "closedAccount": false,
    "creationDate": "2026-09-16T09:51:26.776625Z",
    "currency": "EUR",
    "customerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "defaultWallet": false,
    "hasDebt": false,
    "merchantPayoutSetupId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "owner": {
        "name": "Martin Durant",
        "uuid": "xxxx-xxxx-xxxx-xxxx-xxxx",
    },
    "ownerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "name": "PAYMENT ACCOUNT",
    "pending": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "personal": false,
    "realtimeBalance": {
        "availableBalance": 0,
        "clearedBalance": 0,
        "pendingBalance": 0,
        "pendingCreditSum": 0,
        "pendingDebitSum": 0
    },
    "reserve": 0,
    "type": "PS",
    "walletId": "e0b54b2f-badc-4aef-b402-902fec733bc2"
}
WALLET_UPDATED
When a wallet is updated
{
    "activityStatus": "ACTIVE",
    "additionalData": [],
    "available": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "closedAccount": false,
    "creationDate": "2026-09-16T09:51:26.776625Z",
    "currency": "EUR",
    "customerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "defaultWallet": false,
    "hasDebt": false,
    "merchantPayoutSetupId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "owner": {
        "name": "Martin Durant",
        "uuid": "xxxx-xxxx-xxxx-xxxx-xxxx",
    },
    "ownerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "name": "PAYMENT ACCOUNT",
    "pending": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "personal": false,
    "realtimeBalance": {
        "availableBalance": 0,
        "clearedBalance": 0,
        "pendingBalance": 0,
        "pendingCreditSum": 0,
        "pendingDebitSum": 0
    },
    "reserve": 0,
    "type": "PS",
    "walletId": "e0b54b2f-badc-4aef-b402-902fec733bc2"
}

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": []
}
BANKACCOUNT_REFUSED
When a Bank account is refused
{
    "name": "BANKACCOUNT REF API",
    "description": null,
    "ownerName": "BANKACCOUNT REFAPI",
    "ownerAddress": "142 RUE DE LA REFAPI",
    "ownerDescription": null,
    "ownerPostalCode": "37000",
    "ownerCity": "TOURS",
    "ownerCountry": "FRA",
    "iban": "FR7612548029980000000150086",
    "bic": "AXABFRPP",
    "currency": "EUR",
    "refusalComment": "The bank details do not match the name of the company, SC CONNECTING FIRST.",
    "refusalReason": "IBAN_INVALID",
    "status": "REFUSED",
    "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": []
}
BANKACCOUNT_CANCELED
When a Bank account is canceled
{
    "name": "BANKACCOUNT REF API",
    "description": null,
    "ownerName": "BANKACCOUNT REFAPI",
    "ownerAddress": "142 RUE DE LA REFAPI",
    "ownerDescription": null,
    "ownerPostalCode": "37000",
    "ownerCity": "TOURS",
    "ownerCountry": "FRA",
    "iban": "FR7612548029980000000150086",
    "bic": "AXABFRPP",
    "currency": "EUR",
    "status": "CANCELED",
    "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": []
  }
}
CREDIT_CLEARED
When a credit is cleared
{
  "eventId": "b51f11be-c535-49a4-8a70-6241afd75654",
  "type": "CREDIT_CLEARED",
  "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": "CLEARED",
    "transactionTransfers": []
  }
}
CREDIT_SETTLED
When a credit is cleared
{
  "eventId": "b51f11be-c535-49a4-8a70-6241afd75654",
  "type": "CREDIT_SETTLED",
  "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": "CLEARED",
    "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

REFUND_CLEARED
When a refund is cleared

REFUND_SETTLED
When a refund is settled

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_CLEARED
When a transaction is sent to the clearing and will be debited
{
  "eventId": "ecd3fead-ccb1-44e4-b41b-5806b78dc5a5",
  "type": "TRANSACTION_CLEARED",
  "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_SETTLED
When a transaction has been sent to the clearing and has been credit to the merchant
{
  "eventId": "ecd3fead-ccb1-44e4-b41b-5806b78dc5a5",
  "type": "TRANSACTION_SETTLED",
  "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

Webhook notifications

Articles

  • The PAYMENT-ACCOUNT object
  • 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 PAYMENT-ACCOUNT object

PAYMENT_ACCOUNT_STATUS_UPDATED
When a payment account is updated
{
    "blockConfigurationId": "e09287a2-xxxx-xxxx-xxxx-02e4d8a90f84",
    "blockReason": "ACCOUNT_DUPLICATE",
    "blockStatus": "IN_OUT",
    "creationDate": "2026-04-16T09:03:48.171329+02:00",
    "enrollmentUuid": "af5c4ccb-xxxx-xxxx-xxxx-3365ebad820c",
    "merchantUuid": "aa23c0d6-xxxx-xxxx-xxxx-0765feacc9f1"
}

The MERCHANT-ENROLLMENT object

Prochainement

The WALLETS object

WALLET_CREATED
When a wallet is created
{
    "activityStatus": "ACTIVE",
    "additionalData": [],
    "available": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "closedAccount": false,
    "creationDate": "2026-09-16T09:51:26.776625Z",
    "currency": "EUR",
    "customerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "defaultWallet": false,
    "hasDebt": false,
    "merchantPayoutSetupId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "owner": {
        "name": "Martin Durant",
        "uuid": "xxxx-xxxx-xxxx-xxxx-xxxx",
    },
    "ownerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "name": "PAYMENT ACCOUNT",
    "pending": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "personal": false,
    "realtimeBalance": {
        "availableBalance": 0,
        "clearedBalance": 0,
        "pendingBalance": 0,
        "pendingCreditSum": 0,
        "pendingDebitSum": 0
    },
    "reserve": 0,
    "type": "PS",
    "walletId": "e0b54b2f-badc-4aef-b402-902fec733bc2"
}
WALLET_UPDATED
When a wallet is updated
{
    "activityStatus": "ACTIVE",
    "additionalData": [],
    "available": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "closedAccount": false,
    "creationDate": "2026-09-16T09:51:26.776625Z",
    "currency": "EUR",
    "customerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "defaultWallet": false,
    "hasDebt": false,
    "merchantPayoutSetupId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "owner": {
        "name": "Martin Durant",
        "uuid": "xxxx-xxxx-xxxx-xxxx-xxxx",
    },
    "ownerId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "name": "PAYMENT ACCOUNT",
    "pending": [
        {
            "amount": 0,
            "currency": "EUR",
            "minimumAmount": 0
        }
    ],
    "personal": false,
    "realtimeBalance": {
        "availableBalance": 0,
        "clearedBalance": 0,
        "pendingBalance": 0,
        "pendingCreditSum": 0,
        "pendingDebitSum": 0
    },
    "reserve": 0,
    "type": "PS",
    "walletId": "e0b54b2f-badc-4aef-b402-902fec733bc2"
}

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": []
}
BANKACCOUNT_REFUSED
When a Bank account is refused
{
    "name": "BANKACCOUNT REF API",
    "description": null,
    "ownerName": "BANKACCOUNT REFAPI",
    "ownerAddress": "142 RUE DE LA REFAPI",
    "ownerDescription": null,
    "ownerPostalCode": "37000",
    "ownerCity": "TOURS",
    "ownerCountry": "FRA",
    "iban": "FR7612548029980000000150086",
    "bic": "AXABFRPP",
    "currency": "EUR",
    "refusalComment": "The bank details do not match the name of the company, SC CONNECTING FIRST.",
    "refusalReason": "IBAN_INVALID",
    "status": "REFUSED",
    "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": []
}
BANKACCOUNT_CANCELED
When a Bank account is canceled
{
    "name": "BANKACCOUNT REF API",
    "description": null,
    "ownerName": "BANKACCOUNT REFAPI",
    "ownerAddress": "142 RUE DE LA REFAPI",
    "ownerDescription": null,
    "ownerPostalCode": "37000",
    "ownerCity": "TOURS",
    "ownerCountry": "FRA",
    "iban": "FR7612548029980000000150086",
    "bic": "AXABFRPP",
    "currency": "EUR",
    "status": "CANCELED",
    "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": []
  }
}
CREDIT_CLEARED
When a credit is cleared
{
  "eventId": "b51f11be-c535-49a4-8a70-6241afd75654",
  "type": "CREDIT_CLEARED",
  "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": "CLEARED",
    "transactionTransfers": []
  }
}
CREDIT_SETTLED
When a credit is cleared
{
  "eventId": "b51f11be-c535-49a4-8a70-6241afd75654",
  "type": "CREDIT_SETTLED",
  "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": "CLEARED",
    "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

REFUND_CLEARED
When a refund is cleared

REFUND_SETTLED
When a refund is settled

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_CLEARED
When a transaction is sent to the clearing and will be debited
{
  "eventId": "ecd3fead-ccb1-44e4-b41b-5806b78dc5a5",
  "type": "TRANSACTION_CLEARED",
  "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_SETTLED
When a transaction has been sent to the clearing and has been credit to the merchant
{
  "eventId": "ecd3fead-ccb1-44e4-b41b-5806b78dc5a5",
  "type": "TRANSACTION_SETTLED",
  "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

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": []
  }
}
CREDIT_CLEARED
When a credit is cleared
{
  "eventId": "b51f11be-c535-49a4-8a70-6241afd75654",
  "type": "CREDIT_CLEARED",
  "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": "CLEARED",
    "transactionTransfers": []
  }
}
CREDIT_SETTLED
When a credit is cleared
{
  "eventId": "b51f11be-c535-49a4-8a70-6241afd75654",
  "type": "CREDIT_SETTLED",
  "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": "CLEARED",
    "transactionTransfers": []
  }
}

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": []
  }
}
CREDIT_CLEARED
When a credit is cleared
{
  "eventId": "b51f11be-c535-49a4-8a70-6241afd75654",
  "type": "CREDIT_CLEARED",
  "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": "CLEARED",
    "transactionTransfers": []
  }
}
CREDIT_SETTLED
When a credit is cleared
{
  "eventId": "b51f11be-c535-49a4-8a70-6241afd75654",
  "type": "CREDIT_SETTLED",
  "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": "CLEARED",
    "transactionTransfers": []
  }
}

Resources by type

Articles

  • Codes
  • Test values

Codes

HTTP Codes

Find below the list of HTTP return codes:

200OK
Note: The request was executed correctly
400BAD REQUEST
Note: Wrong parameter or rule
401UNAUTHORIZED
Note: Login / password are missing for HTTP authentication
402PAYMENT_REQUIRED
Note:  Authorization denied*
403FORBIDDEN
Note: Wrong authentication
404NOT FOUND
Note: Incorrect URL
500INTERNAL SERVER ERROR
Note: Server error

(*) Only possible for the creation of a transaction

Card authorization - Bank return codes

Issuer response codes returned to CentralPay after a card authorization request.

These values generally correspond to the ISO 8583 “Response code” (DE39) returned by card networks/issuers. Depending on the scheme, country, and routing, you may also receive network-specific or gateway-specific variants (for example alphanumeric or 3-digit codes).

Important: the same code can cover multiple issuer-side reasons. Unless explicitly stated, CentralPay passes these codes as received. For troubleshooting, combine the response code with your transaction context (amount, currency, 3DS result, merchant category, card brand, retries).

Most common response codes

CodeDescriptionRecommended action
00ApprovedProceed with capture / fulfillment.
02Contact card issuerAsk customer to contact their bank; retry only if customer confirms.
03Invalid acceptorCheck merchant/terminal configuration (MID/TID, acquirer routing).
04Pick up / retain cardDo not retry; follow your in-store procedure (if applicable).
05Do not honorGeneric decline: do not “loop” retries; ask customer to contact issuer or use another payment method.
07Honor with IDIf card-present: request ID verification; otherwise ask customer to contact issuer.
08Time-outRetry once after a short delay; if repeated, check connectivity/acquirer status.
10Unable to reverseEscalate to support with trace/reference; avoid repeated reversals.
11Partial approvalOnly relevant if your flow supports partial approvals (often prepaid); otherwise request another method.
12Invalid transactionCheck request consistency (type, lifecycle, capture/void rules); if persistent, escalate with logs.
13Invalid amountValidate amount format/currency decimals; check min/max constraints.
14Invalid card numberCustomer should re-enter card details; if repeated, use another card.
15Unknown issuerUse another card/payment method; escalate if routing issue suspected.
19Try again laterRetry once later; if repeated, ask customer to contact issuer.
30Format errorCheck field formats (PAN/expiry/CVV, currency, recurring flags); escalate if needed.
33Card expiredCustomer must use another card.
38PIN attempts exceededCardholder must contact issuer / reset PIN; do not retry.
39Transaction not allowedLikely product/merchant restriction; ask customer to contact issuer or use another method.
41Lost cardDo not retry; request another payment method.
43Stolen cardDo not retry; request another payment method.
51Insufficient fundsAsk customer to use another method or wait for funds; avoid repeated immediate retries.
54Expired cardCustomer must use another card.
55Incorrect PINCard-present only: customer must retry carefully or contact issuer after repeated failures.
57Transaction not permitted to cardholderIssuer restriction; ask customer to contact issuer or use another method.
58Transaction prohibited at terminalCheck merchant/terminal capabilities & configuration; may be MCC/terminal restriction.
59Suspected fraudDo not retry “blindly”; ask customer to contact issuer or use a different method; review fraud rules if frequent.
61Exceeds withdrawal/amount limitReduce amount or ask customer to contact issuer.
62Restricted cardIssuer restriction; customer should contact issuer.
65Frequency limit exceededWait and retry later; avoid repeated attempts in short timeframes.
68Response received too lateRetry once; check acquirer/network status if repeated.
75PIN attempts exceededSame as 38: cardholder must contact issuer.
82Invalid CVVCustomer should re-enter CVV; if repeated, use another card.
91Issuer/switch unavailableRetry later; if widespread, treat as incident (issuer/network outage).
94Duplicate requestAvoid immediate retries with same identifiers; ensure idempotency / unique reference.
95Contact acquirerEscalate to support/acquirer with transaction reference.
96System malfunctionRetry later; if repeated, escalate with traces/logs.

All response codes (exhaustive)

The following codes may be returned depending on the network, country, routing, or integration. This section is exhaustive compared to the previous version of this page, and includes both standard and non-standard variants.

CodeDescriptionRecommended action
00Transaction approved or successfully processedProceed with capture / fulfillment.
02Contact card issuerAsk the customer to contact their issuer; retry only if issuer confirms.
03Invalid acceptorCheck merchant/terminal configuration (MID/TID), acquirer routing, and credentials.
04Keep cardDo not retry; follow in-store procedure if applicable; request another payment method.
05Do not honorGeneric decline: avoid retry loops; ask customer to contact issuer or use another method.
06Transaction invalid for terminalCheck terminal capability / transaction type compatibility; verify integration parameters.
07Honor with IDIf card-present: request ID verification; otherwise ask customer to contact issuer.
08Time-OutRetry once after a short delay; if repeated, check network/acquirer connectivity.
09No originalFor reversals/adjustments: ensure you reference an existing original transaction; escalate if needed.
10Unable to reverseDo not repeat reversals blindly; escalate to support with transaction references.
11Partial approvalHandle partial approval if supported (often prepaid); otherwise request another method.
12Invalid transactionCheck transaction type/lifecycle (auth/capture/void/refund), parameters; escalate with logs if persistent.
13Invalid amountValidate amount format, currency decimals, and min/max constraints; retry after correction.
14Invalid cardholder numberCustomer should re-enter card details; if repeated, use another card.
15Unknown card issuerTry another card/payment method; if widespread, suspect routing/config issue and escalate.
17Invalid capture date (terminal business date)Check terminal business date / batch settings; retry after correction if applicable.
19Repeat transaction laterRetry once later; avoid multiple attempts in a short window; ask customer to contact issuer if repeated.
20No From AccountNot typical for purchase flows; verify transaction type and account fields; escalate if unexpected.
21No To AccountNot typical for purchase flows; verify transaction type and account fields; escalate if unexpected.
22Account not verifiedAsk customer to contact issuer; consider another payment method.
23Account not savedRetry later if applicable; otherwise use another method; escalate if recurring.
24No Credit AccountAsk customer to contact issuer; use another method.
25Unable to locate record in fileFor adjustments/reversals: verify original reference; escalate with trace/reference.
26Record duplicatedCheck idempotency and uniqueness of references; do not retry with same identifiers.
27‘Edit’ error in file update fieldCheck field formats and constraints; escalate with payload/logs.
28File access deniedConfiguration/permission issue: escalate to support/acquirer with context.
29File update not possibleEscalate with trace/reference; avoid repeating the same update operation.
30Format errorCheck request formatting (amount/currency, PAN/expiry, flags, message structure); escalate with logs.
31Identifier of acquiring organization unknownCheck acquirer routing and merchant configuration; escalate to support/acquirer.
32Transaction partially completedCheck final status via retrieval; avoid blind retry; escalate if inconsistent.
33Card validity date exceededCustomer must use another card.
34Implausible card dataCustomer should re-enter details; verify card data collection; use another card if repeated.
38Number of PIN attempts exceededDo not retry; customer must contact issuer / reset PIN.
39Transaction not allowedCheck transaction type and merchant capability; ask customer to contact issuer or use another method.
41Lost cardDo not retry; request another payment method.
42Special PickupDo not retry; request another method; in-store: follow procedure if applicable.
43Stolen cardDo not retry; request another payment method.
44Stolen cardDo not retry; request another payment method.
51Insufficient funds or overdraftAsk customer to use another method or wait for funds; avoid repeated immediate retries.
54Card expiredCustomer must use another card.
55Incorrect PINCard-present: retry carefully; if repeated, customer contacts issuer.
56Card not on fileVerify card details; customer should contact issuer or use another card.
57Transaction not authorized to this cardholderIssuer restriction; ask customer to contact issuer or use another method.
58Transaction prohibited at terminalCheck merchant/terminal capabilities and MCC/terminal restrictions; adjust configuration.
59Suspected fraudAvoid retry loops; customer contacts issuer or uses another method; review risk rules if frequent.
60The card acceptor must contact the buyerAsk customer to contact issuer / confirm details; avoid repeated attempts.
61Withdrawal amount over limitReduce amount or ask customer to contact issuer.
62Card use restrictedCustomer contacts issuer; use another method.
63MAC Key ErrorCryptographic/config issue: escalate to support/acquirer with trace and timestamps.
65Frequency limit exceededWait and retry later; avoid multiple attempts in short timeframe.
66Acquirer limit reachedEscalate to acquirer/support; retry only after confirmation.
67Card withheldDo not retry; request another method; in-store: follow procedure if applicable.
68Response not received or received too lateRetry once; if repeated, check acquirer/network status and escalate.
75Number of PIN attempts exceededSame as 38: do not retry; customer must contact issuer.
76Invalid AccountAsk customer to contact issuer; use another card/method.
77Issuer not participating in serviceUse another card or method; escalate if routing/regional issue suspected.
78Function not availableRemove/disable unsupported feature; verify transaction type and integration flags.
79Key validation errorCryptographic/config issue: escalate to support/acquirer with trace.
80Approved for purchase amount onlyIf you requested cash-back/extra: retry without it; otherwise proceed as approved.
81Unable to verify PINCard-present: retry; if repeated, customer contacts issuer or use another method.
82Invalid CVVRe-enter CVV; if repeated, use another card.
83Not refusedTreat as non-decline / ambiguous: verify final status via retrieval; escalate if inconsistent.
84Invalid transaction lifecycleCheck auth/capture/void/refund ordering and timing; fix integration logic.
85No key to useCryptographic/config issue: escalate to support/acquirer.
86KME synchronization errorCryptographic sync issue: escalate with logs, trace, timestamps.
87PIN errorCard-present: retry; if repeated, customer contacts issuer.
88MAC synchronization errorCryptographic sync issue: escalate with logs, trace, timestamps.
89Security violationStop retries; escalate to support/acquirer; review fraud/security configuration.
90Temporary system shutdownRetry later; if persistent, treat as incident and escalate.
91Card transmitter inaccessibleRetry later; if widespread, treat as issuer/network outage.
92Card issuer unknownUse another card; if repeated across cards, suspect routing/config and escalate.
93Transacation cannot be finalizedRetry later once; if persistent, escalate with trace/logs.
94Duplicate requestEnsure idempotency / unique references; do not resend the exact same request.
95Contact acquirerEscalate to support/acquirer with transaction reference and timestamps.
96System malfunctionRetry later; if repeated, escalate with traces/logs.
97No Funds TransferNot typical for purchase flows; verify transaction type; escalate if unexpected.
98Duplicate ReversalDo not repeat reversal; verify original reversal status; ensure idempotency.
99Duplicate TransactionCheck idempotency and client retries; ensure unique transaction identifiers.
N3Cash Service Not AvailableNot applicable to purchase flows; ignore unless supporting cash services.
N4Cash Back Request Exceeds Issuer LimitReduce cash-back amount or remove cash-back.
N7Declined for CVV2 failureRe-enter CVV; if repeated, use another card.
R0Stop Payment OrderDo not retry; customer must contact issuer.
R1Revocation of Authorisation OrderDo not retry; customer must contact issuer.
R3Revocation of all Authorisations OrderDo not retry; customer must contact issuer.
A0Withdrawal in contact modeNot applicable to e-commerce purchase flows; verify transaction type; remove cash/withdrawal feature if not supported.
A1VADS fallbackRouting/fallback case: verify gateway/acquirer configuration; escalate if frequent or unexpected.
000ApprovedProceed with capture / fulfillment.
001Approve with IDIf supported: apply ID verification; otherwise treat as approved.
002Partial approval (prepaid cards only)Handle partial approval if supported; otherwise request another method.
100RejectGeneric decline: avoid retry loops; ask customer to contact issuer or use another method.
101Card expired / invalid expiry dateCustomer must use another card.
106PIN attempts exceededDo not retry; customer must contact issuer.
107Please call issuerCustomer must contact issuer; retry only after confirmation.
109Invalid merchantCheck merchant configuration and routing; escalate to support/acquirer.
110Invalid amountValidate amount format/limits; retry after correction.
111Invalid account / Invalid MICR (traveler’s check)Ask customer to contact issuer; use another card/method.
115Requested function not supportedDisable unsupported feature/flag; verify transaction type.
117Invalid PINCard-present: retry carefully; if repeated, customer contacts issuer.
119Cardholder not registered / not authorizedCustomer must contact issuer; use another method.
122Invalid card security code (alias CID, 4DBC, 4CSC)Re-enter security code; if repeated, use another card.
125Invalid effective dateCheck date fields / terminal business date; escalate if applicable.
181Format errorCheck request formatting and fields; escalate with logs if persistent.
183Invalid currency codeVerify ISO currency code and acquirer configuration; correct and retry.
187Refuse – New card issuedCustomer must use another card; advise contacting issuer.
189Refuse – Merchant cancelled or closed / SECheck merchant status/configuration; escalate to support/acquirer.
200Refuse – Pick up cardDo not retry; request another method; in-store: follow procedure if applicable.
900Accepted – ATC synchronizationProceed but monitor; if repeated, escalate (potential chip/crypto sync issue).
909System malfunction (cryptographic error)Escalate to support/acquirer with trace, timestamps, and logs.
912Issuer not availableRetry later; if widespread, treat as issuer outage / incident.

Card Disputes - Bank Return codes

CB Scheme

CBDescriptionGIE DISPUTE
12Unauthorized TransactionTRANSACTION_NOT_AUTHORIZED
13Merchant Forced TransactionINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
14Unauthorized TransactionTRANSACTION_NOT_AUTHORIZED
15Guarantee by Card, by Day and by SIRETTRANSACTION_NOT_AUTHORIZED
16PIN Not VerifiedTRANSACTION_NOT_AUTHORIZED
17Invalid SIRETTRANSACTION_NOT_AUTHORIZED
18Certificate Not VerifiableTRANSACTION_NOT_AUTHORIZED
21Expired CardTRANSACTION_NOT_AUTHORIZED
22Late PresentmentINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
23Missing ImprintINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
25Exceeds Transaction Amount LimitINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
27Credit Not ProcessedTRANSACTION_NOT_AUTHORIZED
28Credit Processed as DebitTRANSACTION_NOT_AUTHORIZED
40Cancelled CardINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
41Documentation Not Provided or IllegibleINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
42Duplicate ProcessingDUPLICATE
43No Such Card NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
44Disputed AmountFRAUDULENT
45Disputed TransactionFRAUDULENT
46Merchant Bankruptcy or Judicial ReorganizationINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
61Merchant Suspended or TerminatedTRANSACTION_NOT_AUTHORIZED
62Transaction Not PermittedTRANSACTION_NOT_AUTHORIZED

Mastercard Scheme

MASTERCARDDescriptionGIE DISPUTE
4801Requested Transaction Data Not ReceivedTRANSACTION_NOT_AUTHORIZED
4802Cardholder Does Not Recognize TransactionTRANSACTION_NOT_AUTHORIZED
4807Cardholder Disputes a CreditFRAUDULENT
4808Authorization-Related ChargebackTRANSACTION_NOT_AUTHORIZED
4809Transaction Not AuthorizedFRAUDULENT
4810Fraud — Card-Not-Present EnvironmentFRAUDULENT
4522Goods or Services Not as Described / Not ReceivedOTHER
4811Credit Not ProcessedTRANSACTION_NOT_AUTHORIZED
4812Fraud — Card-Present EnvironmentTRANSACTION_NOT_AUTHORIZED
4831Goods or Services Not ReceivedINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4834Duplicate ProcessingDUPLICATE
4835Transaction Processing ErrorTRANSACTION_NOT_AUTHORIZED
4837No Cardholder Authorization (Lost/Stolen Card)FRAUDULENT
4840Fraudulent Processing of TransactionsFRAUDULENT
4841Cancelled Recurring TransactionTRANSACTION_NOT_AUTHORIZED
4842Counterfeit CardTRANSACTION_NOT_AUTHORIZED
4843Transaction Not Valid / Authorization ReversalTRANSACTION_NOT_AUTHORIZED
4846Non-Compliance With Authorization RequirementsINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4847Invalid Recurring TransactionINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4849Duplicate ProcessingDUPLICATE
4850ATM Cash Disbursement Not AuthorizedTRANSACTION_NOT_AUTHORIZED
4851Cardholder Disputes Transaction (Offline)TRANSACTION_NOT_AUTHORIZED
4853Cardholder Disputes Transaction Not as DescribedPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4854Exceeds Floor LimitPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4855Non-Receipt of Merchandise / ServicesPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4857Cardholder Disputes Transaction — Services Not ProvidedTRANSACTION_NOT_AUTHORIZED
4859Services Not Provided / Merchandise Not ReceivedTRANSACTION_NOT_AUTHORIZED
4860Transaction Processing ErrorTRANSACTION_NOT_AUTHORIZED
4862Cardholder Disputes Transaction — Invalid AuthorizationTRANSACTION_NOT_AUTHORIZED
4863Credit Not Processed / Cash Not DispensedFRAUDULENT
4870Chip Liability Shift — Counterfeit FraudFRAUDULENT
4871Chip Liability Shift — Lost/Stolen FraudFRAUDULENT
4880Late PresentmentTRANSACTION_NOT_AUTHORIZED
4890Currency Conversion DisputeTRANSACTION_NOT_AUTHORIZED
4900Defective/Not as Described MerchandiseOTHER
4901Credit Not ProcessedOTHER
4902Merchandise Not AcceptedOTHER
4903Incorrect Merchandise DeliveredOTHER
4905Services Not ProvidedOTHER
4908Cash Not DispensedOTHER

Visa Scheme

VISADescriptionGIE DISPUTE
10Fraud — Card-Absent EnvironmentFRAUDULENT
11Fraud — Card-Present EnvironmentTRANSACTION_NOT_AUTHORIZED
12Incorrect Transaction Amount or Account NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
13Fraudulent Transaction — No AuthorizationFRAUDULENT
30Services Not Provided or Merchandise Not ReceivedPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
41Credit Not ProcessedOTHER
53Not as Described or Defective MerchandiseOTHER
57Fraudulent Transaction — No Cardholder AuthorizationFRAUDULENT
62Counterfeit TransactionFRAUDULENT
70Processing ErrorOTHER
71Declined AuthorizationOTHER
72Cancelled TransactionOTHER
73Duplicate ProcessingOTHER
74Credit Not ProcessedOTHER
75Transaction Not RecognizedOTHER
76Incorrect Transaction Amount or Account NumberOTHER
77Non-Receipt of MerchandiseINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
78Fraudulent Transaction — No Cardholder AuthorizationOTHER
80Incorrect Transaction Amount or Account NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
81Fraudulent Transaction — Lost CardFRAUDULENT
82Fraudulent Transaction — Stolen CardDUPLICATE
83Fraudulent Transaction — Card-Absent EnvironmentFRAUDULENT
85Duplicate ProcessingOTHER
86Non-Compliance With AuthorizationDUPLICATE
93Late PresentmentFRAUDULENT
1001Fraud — Card-Absent Environment (E-Commerce)FRAUDULENT
1002Fraudulent Transaction — E-CommerceFRAUDULENT
1003Services Not Provided or Merchandise Not ReceivedFRAUDULENT
1004Fraudulent Transaction — No Cardholder AuthorizationFRAUDULENT
1005Not as Described or Defective MerchandiseFRAUDULENT
1101Processing Error — AuthorizationOTHER
1102Incorrect Transaction AmountOTHER
1103Exceeds Authorized AmountOTHER
1201Services Not Provided or Merchandise Not ReceivedOTHER
1202Not as Described Merchandise / ServiceOTHER
1203Recurring Transaction Not RecognizedOTHER
1204Defective MerchandiseINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
1205Services Not ProvidedINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
1206Non-Receipt of MerchandiseDUPLICATE
1207Duplicate ProcessingOTHER
1301Fraudulent Transaction — Card-Present EnvironmentPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
1302Fraudulent Transaction — No Cardholder AuthorizationOTHER
1303Fraudulent Transaction — Card-Absent EnvironmentOTHER
1304Duplicate ProcessingOTHER
1305Services Not Provided or Merchandise Not ReceivedOTHER
1306Credit Not ProcessedOTHER
1307Recurring Transaction Not RecognizedOTHER
1308Transaction Processing ErrorOTHER

Currency codes

List of currency codes:

AED
UAE Dirham
Currency code: 784
AFN
Afghani
Currency code: 971
ALL
Lek
Currency code: 008
AMD
Armenian Dram
Currency code: 051
ANG
Netherlands Antillean Guilder
Currency code: 532
AOA
Kwanza
Currency code: 973
ARS
Argentine Peso
Currency code: 032
AUD
Australian Dollar
Currency code: 036
AWG
Aruban Florin
Currency code: 533
AZN
Azerbaijanian Manat
Currency code: 944
BAM
Convertible Mark
Currency code: 977
BBD
Barbados Dollar
Currency code: 052
BDT
Taka
Currency code: 050
BGN
Bulgarian Lev
Currency code: 975
BHD
Bahraini Dinar
Currency code: 048
BIF
Burundi Franc
Currency code: 108
BMD
Bermudian Dollar
Currency code: 060
BND
Brunei Dollar
Currency code: 096
BOB
Boliviano
Currency code: 068
BOV
Mvdol
Currency code: 984
BRL
Brazilian Real
Currency code: 986
BSD
Bahamian Dollar
Currency code: 044
BTN
Ngultrum
Currency code: 064
BWP
Pula
Currency code: 072
BYR
Belarussian Ruble
Currency code: 974
BZD
Belize Dollar
Currency code: 084
CAD
Canadian Dollar
Currency code: 124
CDF
Congolese Franc
Currency code: 976
CHE
WIR Euro
Currency code: 947
CHF
Swiss Franc
Currency code: 756
CHW
WIR Franc
Currency code: 948
CLF
Unidad de Fomento
Currency code: 990
CLP
Chilean Peso
Currency code: 152
CNY
Yuan Renminbi
Currency code: 156
COP
Colombian Peso
Currency code: 170
COU
Unidad de Valor Real
Currency code: 970
CRC
Costa Rican Colon
Currency code: 188
CUC
Peso Convertible
Currency code: 931
CUP
Cuban Peso
Currency code: 192
CVE
Cabo Verde Escudo
Currency code: 132
CZK
Czech Koruna
Currency code: 203
DJF
Djibouti Franc
Currency code: 262
DKK
Danish Krone
Currency code: 208
DOP
Dominican Peso
Currency code: 214
DZD
Algerian Dinar
Currency code: 012
EGP
Egyptian Pound
Currency code: 818
ERN
Nakfa
Currency code: 232
ETB
Ethiopian Birr
Currency code: 230
EUR
Euro
Currency code: 978
FJD
Fiji Dollar
Currency code: 242
FKP
Falkland Islands Pound
Currency code: 238
GBP
Pound Sterling
Currency code: 826
GEL
Lari
Currency code: 981
GHS
Ghana Cedi
Currency code: 936
GIP
Gibraltar Pound
Currency code: 292
GMD
Dalasi
Currency code: 270
GNF
Guinea Franc
Currency code: 324
GTQ
Quetzal
Currency code: 320
GYD
Guyana Dollar
Currency code: 328
HKD
Hong Kong Dollar
Currency code: 344
HNL
Lempira
Currency code: 340
HRK
Kuna
Currency code: 191
HTG
Gourde
Currency code: 332
HUF
Forint
Currency code: 348
IDR
Rupiah
Currency code: 360
ILS
New Israeli Sheqel
Currency code: 376
INR
Indian Rupee
Currency code: 356
IQD
Iraqi Dinar
Currency code: 368
IRR
Iranian Rial
Currency code: 364
ISK
Iceland Krona
Currency code: 352
JMD
Jamaican Dollar
Currency code: 388
JOD
Jordanian Dinar
Currency code: 400
JPY
Yen
Currency code: 392
KES
Kenyan Shilling
Currency code: 404
KGS
Som
Currency code: 417
KHR
Riel
Currency code: 116
KMF
Comoro Franc
Currency code: 174
KPW
North Korean Won
Currency code: 408
KRW
Won
Currency code: 410
KWD
Kuwaiti Dinar
Currency code: 414
KYD
Cayman Islands Dollar
Currency code: 136
KZT
Tenge
Currency code: 398
LAK
Kip
Currency code: 418
LBP
Lebanese Pound
Currency code: 422
LKR
Sri Lanka Rupee
Currency code: 144
LRD
Liberian Dollar
Currency code: 430
LSL
Loti
Currency code: 426
LYD
Libyan Dinar
Currency code: 434
MAD
Moroccan Dirham
Currency code: 504
MDL
Moldovan Leu
Currency code: 498
MGA
Malagasy Ariary
Currency code: 969
MKD
Denar
Currency code: 807
MMK
Kyat
Currency code: 104
MNT
Tugrik
Currency code: 496
MOP
Pataca
Currency code: 446
MRO
Ouguiya
Currency code: 478
MUR
Mauritius Rupee
Currency code: 480
MVR
Rufiyaa
Currency code: 462
MWK
Kwacha
Currency code: 454
MXN
Mexican Peso
Currency code: 484
MXV
Mexican Unidad de Inversion (UDI)
Currency code: 979
MYR
Malaysian Ringgit
Currency code: 458
MZN
Mozambique Metical
Currency code: 943
NAD
Namibia Dollar
Currency code: 516
NGN
Naira
Currency code: 566
NIO
Cordoba Oro
Currency code: 558
NOK
Norwegian Krone
Currency code: 578
NPR
Nepalese Rupee
Currency code: 524
NZD
New Zealand Dollar
Currency code: 554
OMR
Rial Omani
Currency code: 512
PAB
Balboa
Currency code: 590
PEN
Nuevo Sol
Currency code: 604
PGK
Kina
Currency code: 598
PHP
Philippine Peso
Currency code: 608
PKR
Pakistan Rupee
Currency code: 586
PLN
Zloty
Currency code: 985
PYG
Guarani
Currency code: 600
QAR
Qatari Rial
Currency code: 634
RON
Romanian Leu
Currency code: 946
RSD
Serbian Dinar
Currency code: 941
RUB
Russian Ruble
Currency code: 643
RWF
Rwanda Franc
Currency code: 646
SAR
Saudi Riyal
Currency code: 682
SBD
Solomon Islands Dollar
Currency code: 090
SCR
Seychelles Rupee
Currency code: 690
SDG
Sudanese Pound
Currency code: 938
SEK
Swedish Krona
Currency code: 752
SGD
Singapore Dollar
Currency code: 702
SHP
Saint Helena Pound
Currency code: 654
SLL
Leone
Currency code: 694
SOS
Somali Shilling
Currency code: 706
SRD
Surinam Dollar
Currency code: 968
SSP
South Sudanese Pound
Currency code: 728
STD
Dobra
Currency code: 678
SVC
El Salvador Colon
Currency code: 222
SYP
Syrian Pound
Currency code: 760
SZL
Lilangeni
Currency code: 748
THB
Baht
Currency code: 764
TJS
Somoni
Currency code: 972
TMT
Turkmenistan New Manat
Currency code: 934
TND
Tunisian Dinar
Currency code: 788
TOP
Pa’anga
Currency code: 776
TRY
Turkish Lira
Currency code: 949
TTD
Trinidad and Tobago Dollar
Currency code: 780
TWD
New Taiwan Dollar
Currency code: 901
TZS
Tanzanian Shilling
Currency code: 834
UAH
Hryvnia
Currency code: 980
UGX
Uganda Shilling
Currency code: 800
USD
US Dollar
Currency code: 840
USN
US Dollar (Next day)
Currency code: 997
UYI
Uruguay Peso en Unidades Indexadas (URUIURUI)
Currency code: 940
UYU
Peso Uruguayo
Currency code: 858
UZS
Uzbekistan Sum
Currency code: 860
VEF
Bolivar
Currency code: 937
VND
Dong
Currency code: 704
VUV
Vatu
Currency code: 548
WST
Tala
Currency code: 882
XAG
Silver
Currency code: 961
XAU
Gold
Currency code: 959
XBA
Bond Markets Unit European Composite Unit (EURCO)
Currency code: 955
XBB
Bond Markets Unit European Monetary Unit (E.M.U.-6)
Currency code: 956
XBC
Bond Markets Unit European Unit of Account 9 (E.U.A.-9)
Currency code: 957
XBD
Bond Markets Unit European Unit of Account 17 (E.U.A.-17)
Currency code: 958
XCD
East Caribbean Dollar
Currency code: 951
XDR
SDR (Special Drawing Right)
Currency code: 960
XOF
CFA Franc BCEAO
Currency code: 952
XPD
Palladium
Currency code: 964
XPF
CFP Franc
Currency code: 953
XPT
Platinum
Currency code: 962
XSU
Sucre
Currency code: 994
XTS
Codes specifically reserved for testing purposes
Currency code: 963
XUA
ADB Unit of Account
Currency code: 965
XXX
The codes assigned for transactions where no currency is involved
Currency code: 999
YER
Yemeni Rial
Currency code: 886
ZAR
Rand
Currency code: 710
ZMW
Zambian Kwacha
Currency code: 967
ZWL
Zimbabwe Dollar
Currency code: 932

Description of the certification « ISO 4217:2008 » is available at this url:

  • http://www.iso.org/iso/home/standards/currency_codes.htm

SDD return codes

Return CodeDescription
AB05Timeout Creditor Agent
AB06Timeout Instructed Agent
AB07Offline Agent
AB08Offline Creditor Agent
AB09Error Creditor Agent
AB10Error Instructed Agent
AC01Incorrect Account Number
AC03Invalid Creditor Account Number
AC04Account Closed
AC06Account blocked, reason not specified
AC13Wrong Debtor account
AG01Forbidden on this type of account
AG02Operation/Transaction code incorrect, invalid file format
AG09Payment Not Received
AG10Agent Suspended
AG11Creditor Agent Suspended
AGNTIncorrect Agent
AM02Not Allowed Amount
AM04Insufficient Funds
AM05Duplicate payment
AM09Wrong Amount
AM23Amount Exceeds Settlement Limit
ARDTAlready a returned transaction
BE04Account address invalid
BE05Creditor Identifier incorrect
CUSTCustomer decision
CURRIncorrect Currency
CUTACancellation Upon Unable to Apply
CNORCreditor Bank is not Registered
DNORDebtor Bank is not Registered
DUPLDuplicate Payment
ED05Settlement Failed
ERINERI Option Not Supported
FF01Invalid File Format
FOCRPositive answer to the recall or RfRO
FRADFraudulent originated credit transfer
LEGLLegal Decision
MD01No valid mandate
MD02Mandate data missing or invalid
MD06Refund Request By End Customer
MD07Beneficiary Deceased
MS02By order of the beneficiary
MS03Reason not specified
NOASNo Answer From Customer
NOORNo Original Transaction Received
RC01Invalid BIC
RC07Invalid Creditor BIC Identifier
RR01Missing Debtor Account Or Identification
RR02Missing Debtors Name Or Address
RR03Missing Creditors Name Or Address
RR04Regulatory Reason
SL01Specific service offered by debtor Bank
TECHTechnical problems resulting in erroneous SCT’s
TM01Invalid Cut Off Time
UPAYUndue Payment

Country codes

List of country codes:

004
Afghanistan
Alpha2 code: AF
Alpha3 code: AFG
008
Albania
Alpha2 code: AL
Alpha3 code: ALB
010
Antarctica
Alpha2 code: AQ
Alpha3 code: ATA
012
Algeria
Alpha2 code: DZ
Alpha3 code: DZA
016
American Samoa
Alpha2 code: AS
Alpha3 code: ASM
020
Andorra
Alpha2 code: AD
Alpha3 code: AND
024
Angola
Alpha2 code: AO
Alpha3 code: AGO
028
Antigua and Barbuda
Alpha2 code: AG
Alpha3 code: ATG
031
Azerbaijan
Alpha2 code: AZ
Alpha3 code: AZE
032
Argentina
Alpha2 code: AR
Alpha3 code: ARG
036
Australia
Alpha2 code: AU
Alpha3 code: AUS
040
Austria
Alpha2 code: AT
Alpha3 code: AUT
044
Bahamas (the)
Alpha2 code: BS
Alpha3 code: BHS
048
Bahrain
Alpha2 code: BH
Alpha3 code: BHR
050
Bangladesh
Alpha2 code: BD
Alpha3 code: BGD
051
Armenia
Alpha2 code: AM
Alpha3 code: ARM
052
Barbados
Alpha2 code: BB
Alpha3 code: BRB
056
Belgium
Alpha2 code: BE
Alpha3 code: BEL
060
Bermuda
Alpha2 code: BM
Alpha3 code: BMU
064
Bhutan
Alpha2 code: BT
Alpha3 code: BTN
068
Bolivia, Plurinational State of
Alpha2 code: BO
Alpha3 code: BOL
070
Bosnia and Herzegovina
Alpha2 code: BA
Alpha3 code: BIH
072
Botswana
Alpha2 code: BW
Alpha3 code: BWA
074
Bouvet Island
Alpha2 code: BV
Alpha3 code: BVT
076
Brazil
Alpha2 code: BR
Alpha3 code: BRA
084
Belize
Alpha2 code: BZ
Alpha3 code: BLZ
086
British Indian Ocean Territory (the)
Alpha2 code: IO
Alpha3 code: IOT
090
Solomon Islands (the)
Alpha2 code: SB
Alpha3 code: SLB
092
Virgin Islands (British)
Alpha2 code: VG
Alpha3 code: VGB
096
Brunei Darussalam
Alpha2 code: BN
Alpha3 code: BRN
100
Bulgaria
Alpha2 code: BG
Alpha3 code: BGR
104
Myanmar
Alpha2 code: MM
Alpha3 code: MMR
108
Burundi
Alpha2 code: BI
Alpha3 code: BDI
112
Belarus
Alpha2 code: BY
Alpha3 code: BLR
116
Cambodia
Alpha2 code: KH
Alpha3 code: KHM
120
Cameroon
Alpha2 code: CM
Alpha3 code: CMR
124
Canada
Alpha2 code: CA
Alpha3 code: CAN
132
Cape Verde
Alpha2 code: CV
Alpha3 code: CPV
136
Cayman Islands (the)
Alpha2 code: KY
Alpha3 code: CYM
140
Central African Republic (the)
Alpha2 code: CF
Alpha3 code: CAF
144
Sri Lanka
Alpha2 code: LK
Alpha3 code: LKA
148
Chad
Alpha2 code: TD
Alpha3 code: TCD
152
Chile
Alpha2 code: CL
Alpha3 code: CHL
156
China
Alpha2 code: CN
Alpha3 code: CHN
158
Taiwan (Province of China)
Alpha2 code: TW
Alpha3 code: TWN
162
Christmas Island
Alpha2 code: CX
Alpha3 code: CXR
166
Cocos (Keeling) Islands (the)
Alpha2 code: CC
Alpha3 code: CCK
170
Colombia
Alpha2 code: CO
Alpha3 code: COL
174
Comoros
Alpha2 code: KM
Alpha3 code: COM
175
Mayotte
Alpha2 code: YT
Alpha3 code: MYT
178
Congo
Alpha2 code: CG
Alpha3 code: COG
180
Congo (the Democratic Republic of the)
Alpha2 code: CD
Alpha3 code: COD
184
Cook Islands (the)
Alpha2 code: CK
Alpha3 code: COK
188
Costa Rica
Alpha2 code: CR
Alpha3 code: CRI
191
Croatia
Alpha2 code: HR
Alpha3 code: HRV
192
Cuba
Alpha2 code: CU
Alpha3 code: CUB
196
Cyprus
Alpha2 code: CY
Alpha3 code: CYP
203
Czech Republic (the)
Alpha2 code: CZ
Alpha3 code: CZE
204
Benin
Alpha2 code: BJ
Alpha3 code: BEN
208
Denmark
Alpha2 code: DK
Alpha3 code: DNK
212
Dominica
Alpha2 code: DM
Alpha3 code: DMA
214
Dominican Republic (the)
Alpha2 code: DO
Alpha3 code: DOM
218
Ecuador
Alpha2 code: EC
Alpha3 code: ECU
222
El Salvador
Alpha2 code: SV
Alpha3 code: SLV
226
Equatorial Guinea
Alpha2 code: GQ
Alpha3 code: GNQ
231
Ethiopia
Alpha2 code: ET
Alpha3 code: ETH
232
Eritrea
Alpha2 code: ER
Alpha3 code: ERI
233
Estonia
Alpha2 code: EE
Alpha3 code: EST
234
Faroe Islands (the)
Alpha2 code: FO
Alpha3 code: FRO
238
Falkland Islands (the) [Malvinas]
Alpha2 code: FK
Alpha3 code: FLK
239
South Georgia and the South Sandwich Islands
Alpha2 code: GS
Alpha3 code: SGS
242
Fiji
Alpha2 code: FJ
Alpha3 code: FJI
246
Finland
Alpha2 code: FI
Alpha3 code: FIN
248
Ã…land Islands
Alpha2 code: AX
Alpha3 code: ALA
250
France
Alpha2 code: FR
Alpha3 code: FRA
254
French Guiana
Alpha2 code: GF
Alpha3 code: GUF
258
French Polynesia
Alpha2 code: PF
Alpha3 code: PYF
260
French Southern Territories (the)
Alpha2 code: TF
Alpha3 code: ATF
262
Djibouti
Alpha2 code: DJ
Alpha3 code: DJI
266
Gabon
Alpha2 code: GA
Alpha3 code: GAB
268
Georgia
Alpha2 code: GE
Alpha3 code: GEO
270
Gambia (The)
Alpha2 code: GM
Alpha3 code: GMB
275
Palestine, State of
Alpha2 code: PS
Alpha3 code: PSE
276
Germany
Alpha2 code: DE
Alpha3 code: DEU
288
Ghana
Alpha2 code: GH
Alpha3 code: GHA
292
Gibraltar
Alpha2 code: GI
Alpha3 code: GIB
296
Kiribati
Alpha2 code: KI
Alpha3 code: KIR
300
Greece
Alpha2 code: GR
Alpha3 code: GRC
304
Greenland
Alpha2 code: GL
Alpha3 code: GRL
308
Grenada
Alpha2 code: GD
Alpha3 code: GRD
312
Guadeloupe
Alpha2 code: GP
Alpha3 code: GLP
316
Guam
Alpha2 code: GU
Alpha3 code: GUM
320
Guatemala
Alpha2 code: GT
Alpha3 code: GTM
324
Guinea
Alpha2 code: GN
Alpha3 code: GIN
328
Guyana
Alpha2 code: GY
Alpha3 code: GUY
332
Haiti
Alpha2 code: HT
Alpha3 code: HTI
334
Heard Island and McDonald Islands
Alpha2 code: HM
Alpha3 code: HMD
336
Holy See (the) [Vatican City State]
Alpha2 code: VA
Alpha3 code: VAT
340
Honduras
Alpha2 code: HN
Alpha3 code: HND
344
Hong Kong
Alpha2 code: HK
Alpha3 code: HKG
348
Hungary
Alpha2 code: HU
Alpha3 code: HUN
352
Iceland
Alpha2 code: IS
Alpha3 code: ISL
356
India
Alpha2 code: IN
Alpha3 code: IND
360
Indonesia
Alpha2 code: ID
Alpha3 code: IDN
364
Iran (the Islamic Republic of)
Alpha2 code: IR
Alpha3 code: IRN
368
Iraq
Alpha2 code: IQ
Alpha3 code: IRQ
372
Ireland
Alpha2 code: IE
Alpha3 code: IRL
376
Israel
Alpha2 code: IL
Alpha3 code: ISR
380
Italy
Alpha2 code: IT
Alpha3 code: ITA
384
Ivory coast
Alpha2 code: CI
Alpha3 code: CIV
388
Jamaica
Alpha2 code: JM
Alpha3 code: JAM
392
Japan
Alpha2 code: JP
Alpha3 code: JPN
398
Kazakhstan
Alpha2 code: KZ
Alpha3 code: KAZ
400
Jordan
Alpha2 code: JO
Alpha3 code: JOR
404
Kenya
Alpha2 code: KE
Alpha3 code: KEN
408
Korea (the Democratic People’s Republic of)
Alpha2 code: KP
Alpha3 code: PRK
410
Korea (the Republic of)
Alpha2 code: KR
Alpha3 code: KOR
414
Kuwait
Alpha2 code: KW
Alpha3 code: KWT
417
Kyrgyzstan
Alpha2 code: KG
Alpha3 code: KGZ
418
Lao People’s Democratic Republic (the)
Alpha2 code: LA
Alpha3 code: LAO
422
Lebanon
Alpha2 code: LB
Alpha3 code: LBN
426
Lesotho
Alpha2 code: LS
Alpha3 code: LSO
428
Latvia
Alpha2 code: LV
Alpha3 code: LVA
430
Liberia
Alpha2 code: LR
Alpha3 code: LBR
434
Libya
Alpha2 code: LY
Alpha3 code: LBY
438
Liechtenstein
Alpha2 code: LI
Alpha3 code: LIE
440
Lithuania
Alpha2 code: LT
Alpha3 code: LTU
442
Luxembourg
Alpha2 code: LU
Alpha3 code: LUX
446
Macao
Alpha2 code: MO
Alpha3 code: MAC
450
Madagascar
Alpha2 code: MG
Alpha3 code: MDG
454
Malawi
Alpha2 code: MW
Alpha3 code: MWI
458
Malaysia
Alpha2 code: MY
Alpha3 code: MYS
462
Maldives
Alpha2 code: MV
Alpha3 code: MDV
466
Mali
Alpha2 code: ML
Alpha3 code: MLI
470
Malta
Alpha2 code: MT
Alpha3 code: MLT
474
Martinique
Alpha2 code: MQ
Alpha3 code: MTQ
478
Mauritania
Alpha2 code: MR
Alpha3 code: MRT
480
Mauritius
Alpha2 code: MU
Alpha3 code: MUS
484
Mexico
Alpha2 code: MX
Alpha3 code: MEX
492
Monaco
Alpha2 code: MC
Alpha3 code: MCO
496
Mongolia
Alpha2 code: MN
Alpha3 code: MNG
498
Moldova (the Republic of)
Alpha2 code: MD
Alpha3 code: MDA
499
Montenegro
Alpha2 code: ME
Alpha3 code: MNE
500
Montserrat
Alpha2 code: MS
Alpha3 code: MSR
504
Morocco
Alpha2 code: MA
Alpha3 code: MAR
508
Mozambique
Alpha2 code: MZ
Alpha3 code: MOZ
512
Oman
Alpha2 code: OM
Alpha3 code: OMN
516
Namibia
Alpha2 code: NA
Alpha3 code: NAM
520
Nauru
Alpha2 code: NR
Alpha3 code: NRU
524
Nepal
Alpha2 code: NP
Alpha3 code: NPL
528
Netherlands (the)
Alpha2 code: NL
Alpha3 code: NLD
531
Curacao
Alpha2 code: CW
Alpha3 code: CUW
533
Aruba
Alpha2 code: AW
Alpha3 code: ABW
534
Sint Maarten (Dutch part)
Alpha2 code: SX
Alpha3 code: SXM
535
Bonaire, Sint Eustatius and Saba
Alpha2 code: BQ
Alpha3 code: BES
540
New Caledonia
Alpha2 code: NC
Alpha3 code: NCL
548
Vanuatu
Alpha2 code: VU
Alpha3 code: VUT
554
New Zealand
Alpha2 code: NZ
Alpha3 code: NZL
558
Nicaragua
Alpha2 code: NI
Alpha3 code: NIC
562
Niger (the)
Alpha2 code: NE
Alpha3 code: NER
566
Nigeria
Alpha2 code: NG
Alpha3 code: NGA
570
Niue
Alpha2 code: NU
Alpha3 code: NIU
574
Norfolk Island
Alpha2 code: NF
Alpha3 code: NFK
578
Norway
Alpha2 code: NO
Alpha3 code: NOR
580
Northern Mariana Islands (the)
Alpha2 code: MP
Alpha3 code: MNP
581
United States Minor Outlying Islands (the)
Alpha2 code: UM
Alpha3 code: UMI
583
Micronesia (the Federated States of)
Alpha2 code: FM
Alpha3 code: FSM
584
Marshall Islands (the)
Alpha2 code: MH
Alpha3 code: MHL
585
Palau
Alpha2 code: PW
Alpha3 code: PLW
586
Pakistan
Alpha2 code: PK
Alpha3 code: PAK
591
Panama
Alpha2 code: PA
Alpha3 code: PAN
598
Papua New Guinea
Alpha2 code: PG
Alpha3 code: PNG
600
Paraguay
Alpha2 code: PY
Alpha3 code: PRY
604
Peru
Alpha2 code: PE
Alpha3 code: PER
608
Philippines (the)
Alpha2 code: PH
Alpha3 code: PHL
612
Pitcairn
Alpha2 code: PN
Alpha3 code: PCN
616
Poland
Alpha2 code: PL
Alpha3 code: POL
620
Portugal
Alpha2 code: PT
Alpha3 code: PRT
624
Guinea-Bissau
Alpha2 code: GW
Alpha3 code: GNB
626
Timor-Leste
Alpha2 code: TL
Alpha3 code: TLS
630
Puerto Rico
Alpha2 code: PR
Alpha3 code: PRI
634
Qatar
Alpha2 code: QA
Alpha3 code: QAT
638
Réunion
Alpha2 code: RE
Alpha3 code: REU
642
Romania
Alpha2 code: RO
Alpha3 code: ROU
643
Russian Federation (the)
Alpha2 code: RU
Alpha3 code: RUS
646
Rwanda
Alpha2 code: RW
Alpha3 code: RWA
652
Saint Barthélemy
Alpha2 code: BL
Alpha3 code: BLM
654
Saint Helena, Ascension and Tristan da Cunha
Alpha2 code: SH
Alpha3 code: SHN
659
Saint Kitts and Nevis
Alpha2 code: KN
Alpha3 code: KNA
660
Anguilla
Alpha2 code: AI
Alpha3 code: AIA
662
Saint Lucia
Alpha2 code: LC
Alpha3 code: LCA
663
Saint Martin (French part)
Alpha2 code: MF
Alpha3 code: MAF
666
Saint Pierre and Miquelon
Alpha2 code: PM
Alpha3 code: SPM
670
Saint Vincent and the Grenadines
Alpha2 code: VC
Alpha3 code: VCT
674
San Marino
Alpha2 code: SM
Alpha3 code: SMR
678
Sao Tome and Principe
Alpha2 code: ST
Alpha3 code: STP
682
Saudi Arabia
Alpha2 code: SA
Alpha3 code: SAU
686
Senegal
Alpha2 code: SN
Alpha3 code: SEN
688
Serbia
Alpha2 code: RS
Alpha3 code: SRB
690
Seychelles
Alpha2 code: SC
Alpha3 code: SYC
694
Sierra Leone
Alpha2 code: SL
Alpha3 code: SLE
702
Singapore
Alpha2 code: SG
Alpha3 code: SGP
703
Slovakia
Alpha2 code: SK
Alpha3 code: SVK
704
Viet Nam
Alpha2 code: VN
Alpha3 code: VNM
705
Slovenia
Alpha2 code: SI
Alpha3 code: SVN
706
Somalia
Alpha2 code: SO
Alpha3 code: SOM
710
South Africa
Alpha2 code: ZA
Alpha3 code: ZAF
716
Zimbabwe
Alpha2 code: ZW
Alpha3 code: ZWE
724
Spain
Alpha2 code: ES
Alpha3 code: ESP
728
South Sudan
Alpha2 code: SS
Alpha3 code: SSD
729
Sudan (the)
Alpha2 code: SD
Alpha3 code: SDN
732
Western Sahara
Alpha2 code: EH
Alpha3 code: ESH
740
Suriname
Alpha2 code: SR
Alpha3 code: SUR
744
Svalbard and Jan Mayen
Alpha2 code: SJ
Alpha3 code: SJM
748
Swaziland
Alpha2 code: SZ
Alpha3 code: SWZ
752
Sweden
Alpha2 code: SE
Alpha3 code: SWE
756
Switzerland
Alpha2 code: CH
Alpha3 code: CHE
760
Syrian Arab Republic (the)
Alpha2 code: SY
Alpha3 code: SYR
762
Tajikistan
Alpha2 code: TJ
Alpha3 code: TJK
764
Thailand
Alpha2 code: TH
Alpha3 code: THA
768
Togo
Alpha2 code: TG
Alpha3 code: TGO
772
Tokelau
Alpha2 code: TK
Alpha3 code: TKL
776
Tonga
Alpha2 code: TO
Alpha3 code: TON
780
Trinidad and Tobago
Alpha2 code: TT
Alpha3 code: TTO
784
United Arab Emirates (the)
Alpha2 code: AE
Alpha3 code: ARE
788
Tunisia
Alpha2 code: TN
Alpha3 code: TUN
792
Turkey
Alpha2 code: TR
Alpha3 code: TUR
795
Turkmenistan
Alpha2 code: TM
Alpha3 code: TKM
796
Turks and Caicos Islands (the)
Alpha2 code: TC
Alpha3 code: TCA
798
Tuvalu
Alpha2 code: TV
Alpha3 code: TUV
800
Uganda
Alpha2 code: UG
Alpha3 code: UGA
804
Ukraine
Alpha2 code: UA
Alpha3 code: UKR
807
Macedonia (the former Yugoslav Republic of)
Alpha2 code: MK
Alpha3 code: MKD
818
Egypt
Alpha2 code: EG
Alpha3 code: EGY
826
United Kingdom (the)
Alpha2 code: GB
Alpha3 code: GBR
831
Guernsey
Alpha2 code: GG
Alpha3 code: GGY
832
Jersey
Alpha2 code: JE
Alpha3 code: JEY
833
Isle of Man
Alpha2 code: IM
Alpha3 code: IMN
834
Tanzania, United Republic of
Alpha2 code: TZ
Alpha3 code: TZA
840
United States (the)
Alpha2 code: US
Alpha3 code: USA
850
Virgin Islands (U.S.)
Alpha2 code: VI
Alpha3 code: VIR
854
Burkina Faso
Alpha2 code: BF
Alpha3 code: BFA
858
Uruguay
Alpha2 code: UY
Alpha3 code: URY
860
Uzbekistan
Alpha2 code: UZ
Alpha3 code: UZB
862
Venezuela, Bolivarian Republic of
Alpha2 code: VE
Alpha3 code: VEN
876
Wallis and Futuna
Alpha2 code: WF
Alpha3 code: WLF
882
Samoa
Alpha2 code: WS
Alpha3 code: WSM
887
Yemen
Alpha2 code: YE
Alpha3 code: YEM
894
Zambia  
Alpha2 code: ZM
Alpha3 code: ZMB

Transfer purpose codes

ACCT : AccountManagement
ADCS : AdvisoryDonationCopyrightServices
ADMG : AdministrativeManagement
ADVA : AdvancePayment
AEMP : ActiveEmploymentPolicy
AGRT : AgriculturalTransfer
AIRB : Air
ALLW : Allowance
ALMY : AlimonyPayment
AMEX : Amex
ANNI : Annuity
ANTS : AnesthesiaServices
AREN : AccountsReceivablesEntry
AUCO : AuthenticatedCollections
B112 : TrailerFeePayment
BBSC : BabyBonusScheme
BCDM : BearerChequeDomestic
BCFG : BearerChequeForeign
BECH : ChildBenefit
BENE : UnemploymentDisabilityBenefit
BEXP : BusinessExpenses
BFWD : BondForward
BKDF : BankLoanDelayedDrawFunding
BKFE : BankLoanFees
BKFM : BankLoanFundingMemo
BKIP : BankLoanAccruedInterestPayment
BKPP : BankLoanPrincipalPaydown
BLDM : BuildingMaintenance
BNET : BondForwardNetting
BOCE : BackOfficeConversionEntry
BOND : Bonds
BONU : BonusPayment.
BR12 : TrailerFeeRebate
BUSB : Bus
CABD : CorporateActions-Bonds
CAEQ : CorporateActions-Equities
CAFI : CustodianManagementFeeInhouse
CASH : CashManagementTransfer
CBCR : CreditCard
CBFF : CapitalBuilding
CBFR : CapitalBuildingRetirement
CBLK : CardBulkClearing
CBTV : CableTVBill
CCHD : CashCompensationHelplessnessDisability
CCIR : CrossCurrencyIRS
CCPC : CCPClearedInitialMargin
CCPM : CCPClearedVariationMargin
CCRD : CreditCardPayment
CCSM : CCPClearedInitialMarginSegregatedCash
CDBL : CreditCardBill
CDCB : CardPaymentWithCashBack
CDCD : CashDisbursementCashSettlement
CDCS : CashDisbursementWithSurcharging
CDDP : CardDeferredPayment
CDEP : CreditDefaultEventPayment
CDOC : OriginalCredit
CDQC : QuasiCash
CFDI : CapitalFallingDueInhouse
CFEE : CancellationFee
CGDD : CardGeneratedDirectDebit
CHAR : CharityPayment
CLPR : CarLoanPrincipalRepayment
CMDT : CommodityTransfer
COLL : CollectionPayment
COMC : CommercialPayment
COMM : Commission
COMP : CompensationPayment
COMT : ConsumerThirdPartyConsolidatedPayment
CORT : TradeSettlementPayment
COST : Costs
CPEN : CashPenalties
CPKC : CarparkCharges
CPYR : Copyright
CRDS : CreditDefaultSwap
CRPR : CrossProduct
CRSP : CreditSupport
CRTL : CreditLine
CSDB : CashDisbursementCashManagement
CSLP : CompanySocialLoanPaymentToBank
CVCF : ConvalescentCareFacility
DBCR : DebitCard
DBTC : DebitCollectionPayment
DCRD : DebitCardPayment
DEBT : ChargesBorneByDebtor
DEPD : DependentSupportPayment
DEPT : Deposit
DERI : Derivatives
DICL : Diners
DIVD : Dividend
DMEQ : DurableMedicaleEquipment
DNTS : DentalServices
DSMT : PrintedOrderDisbursement
DVPM : DeliverAgainstPayment
ECPG : GuaranteedEPayment
ECPR : EPaymentReturn
ECPU : NonGuaranteedEPayment
EDUC : Education
EFTC : LowValueCredit
EFTD : LowValueDebit
ELEC : ElectricityBill
ENRG : Energies
EPAY : Epayment
EQPT : EquityOption
EQTS : Equities
EQUS : EquitySwap
ESTX : EstateTax
ETUP : EPurseTopUp
EXPT : ExoticOption
EXTD : ExchangeTradedDerivatives
FACT : FactorUpdateRelatedPayment
FAND : FinancialAidInCaseOfNaturalDisaster
FCOL : FeeCollection
FCPM : LatePaymentOfFeesAndCharges
FEES : PaymentOfFees
FERB : Ferry
FIXI : FixedIncome
FLCR : FleetCard
FNET : FuturesNettingPayment
FORW : ForwardForeignExchange
FREX : ForeignExchange
FUTR : Futures
FWBC : ForwardBrokerOwnedCashCollateral
FWCC : ForwardClientOwnedCashCollateral
FWLV : ForeignWorkerLevy
FWSB : ForwardBrokerOwnedCashCollateralSegregated
FWSC : ForwardClientOwnedSegregatedCashCollateral
FXNT : ForeignExchangeRelatedNetting
GAFA : GovernmentFamilyAllowance
GAHO : GovernmentHousingAllowance
GAMB : GamblingOrWageringPayment
GASB : GasBill
GDDS : PurchaseSaleOfGoods
GDSV : PurchaseSaleOfGoodsAndServices
GFRP : GuaranteeFundRightsPayment
GIFT : Gift
GOVI : GovernmentInsurance
GOVT : GovernmentPayment
GSCB : PurchaseSaleOfGoodsAndServicesWithCashBack
GSTX : GoodsServicesTax
GVEA : AustrianGovernmentEmployeesCategoryA
GVEB : AustrianGovernmentEmployeesCategoryB
GVEC : AustrianGovernmentEmployeesCategoryC
GVED : AustrianGovernmentEmployeesCategoryD
GWLT : GovermentWarLegislationTransfer
HEDG : Hedging
HLRP : PropertyLoanRepayment
HLST : PropertyLoanSettlement
HLTC : HomeHealthCare
HLTI : HealthInsurance
HREC : HousingRelatedContribution
HSPC : HospitalCare
HSTX : HousingTax
ICCP : IrrevocableCreditCardPayment
ICRF : IntermediateCareFacility
IDCP : IrrevocableDebitCardPayment
IHRP : InstalmentHirePurchaseAgreement
INPC : InsurancePremiumCar
INPR : InsurancePremiumRefund
INSC : PaymentOfInsuranceClaim
INSM : Installment
INSU : InsurancePremium
INTC : IntraCompanyPayment
INTE : Interest
INTP : IntraPartyPayment
INTX : IncomeTax
INVS : InvestmentAndSecurities
IPAY : InstantPayments
IPCA : InstantPaymentsCancellation
IPDO : InstantPaymentsForDonations
IPEA : InstantPaymentsInECommerceWithoutAddressData
IPEC : InstantPaymentsInECommerceWithAddressData
IPEW : InstantPaymentsInECommerce
IPPS : InstantPaymentsAtPOS
IPRT : InstantPaymentsReturn
IPU2 : InstantPaymentsUnattendedVendingMachineWith2FA
IPUW : InstantPaymentsUnattendedVendingMachineWithout2FA
IVPT : InvoicePayment
LBIN : LendingBuyInNetting
LBRI : LaborInsurance
LCOL : LendingCashCollateralFreeMovement
LFEE : LendingFees
LICF : LicenseFee
LIFI : LifeInsurance
LIMA : LiquidityManagement
LMEQ : LendingEquityMarkedToMarketCashCollateral
LMFI : LendingFixedIncomeMarkedToMarketCashCollateral
LMRK : LendingUnspecifiedTypeOfMarkedToMarketCashCollateral
LOAN : Loan
LOAR : LoanRepayment
LOTT : LotteryPayment
LREB : LendingRebatePayments
LREV : LendingRevenuePayments
LSFL : LendingClaimPayment
LTCF : LongTermCareFacility
MAFC : MedicalAidFundContribution
MARF : MedicalAidRefund
MARG : DailyMarginOnListedDerivatives
MBSB : MBSBrokerOwnedCashCollateral
MBSC : MBSClientOwnedCashCollateral
MCDM : MultiCurrenyChequeDomestic
MCFG : MultiCurrenyChequeForeign
MDCS : MedicalServices
MGCC : FuturesInitialMargin
MGSC : FuturesInitialMarginClientOwnedSegregatedCashCollateral
MOMA : MoneyMarket
MP2B : MobileP2BPayment
MP2P : MobileP2PPayment
MSVC : MultipleServiceTypes
MTUP : MobileTopUp
NETT : Netting
NITX : NetIncomeTax
NOWS : NotOtherwiseSpecified
NWCH : NetworkCharge
NWCM : NetworkCommunication
OCCC : ClientOwnedOCCPledgedCollateral
OCDM : OrderChequeDomestic
OCFG : OrderChequeForeign
OFEE : OpeningFee
OPBC : OTCOptionBrokerOwnedCashCollateral
OPCC : OTCOptionClientOwnedCashCollateral
OPSB : OTCOptionBrokerOwnedSegregatedCashCollateral
OPSC : OTCOptionClientOwnedCashSegregatedCashCollateral
OPTN : FXOption
OTCD : OTCDerivatives
OTHR : Other
OTLC : OtherTelecomRelatedBill
PADD : PreauthorizedDebit
PAYR : Payroll
PCOM : PropertyCompletionPayment
PDEP : PropertyDeposit
PEFC : PensionFundContribution
PENO : PaymentBasedOnEnforcementOrder
PENS : PensionPayment
PHON : TelephoneBill
PLDS : PropertyLoanDisbursement
PLRF : PropertyLoanRefinancing
POPE : PointOfPurchaseEntry
PPTI : PropertyInsurance
PRCP : PricePayment
PRME : PreciousMetal
PTSP : PaymentTerms
PTXP : PropertyTax
RAPI : RapidPaymentInstruction
RCKE : RepresentedCheckEntry
RCPT : ReceiptPayment
RDTX : RoadTax
REBT : Rebate
REFU : Refund
RELG : RentalLeaseGeneral
RENT : Rent
REOD : AccountOverdraftRepayment
REPO : RepurchaseAgreement
RETL : RetailPayment
RHBS : RehabilitationSupport
RIMB : ReimbursementOfAPreviousErroneousTransaction
RINP : RecurringInstallmentPayment
RLWY : Railway
ROYA : Royalties
RPBC : BilateralRepoBrokerOwnedCollateral
RPCC : RepoClientOwnedCollateral
RPNT : BilateralRepoInternetNetting
RPSB : BilateralRepoBrokerOwnedSegregatedCashCollateral
RPSC : BilateralRepoClientOwnedSegregatedCashCollateral
RRBN : RoundRobin
RRCT : ReimbursementReceivedCreditTransfer
RRTP : RelatedRequestToPay
RVPM : ReceiveAgainstPayment
RVPO : ReverseRepurchaseAgreement
SALA : SalaryPayment
SASW : ATM
SAVG : Savings
SBSC : SecuritiesBuySellSellBuyBack
SCIE : SingleCurrencyIRSExotic
SCIR : SingleCurrencyIRS
SCRP : SecuritiesCrossProducts
SCVE : PurchaseSaleOfServices
SECU : Securities
SEPI : SecuritiesPurchaseInhouse
SERV : ServiceCharges
SHBC : BrokerOwnedCollateralShortSale
SHCC : ClientOwnedCollateralShortSale
SHSL : ShortSell
SLEB : SecuritiesLendingAndBorrowing
SLOA : SecuredLoan
SLPI : PaymentSlipInstruction
SPLT : SplitPayments
SPSP : SalaryPensionSumPayment
SSBE : SocialSecurityBenefit
STDY : Study
SUBS : Subscription
SUPP : SupplierPayment
SWBC : SwapBrokerOwnedCashCollateral
SWCC : SwapClientOwnedCashCollateral
SWFP : SwapContractFinalPayment
SWPP : SwapContractPartialPayment
SWPT : Swaption
SWRS : SwapContractResetPayment
SWSB : SwapsBrokerOwnedSegregatedCashCollateral
SWSC : SwapsClientOwnedSegregatedCashCollateral
SWUF : SwapContractUpfrontPayment
TAXR : TaxRefund
TAXS : TaxPayment
TBAN : TBAPairOffNetting
TBAS : ToBeAnnounced
TBBC : TBABrokerOwnedCashCollateral
TBCC : TBAClientOwnedCashCollateral
TBIL : TelecommunicationsBill
TCSC : TownCouncilServiceCharges
TELI : TelephoneInitiatedTransaction
TLRF : NonUSMutualFundTrailerFeePayment
TLRR : NonUSMutualFundTrailerFeeRebatePayment
TMPG : TMPGClaimPayment
TPRI : TriPartyRepoInterest
TPRP : TriPartyRepoNetting
TRAD : Commercial
TRCP : TreasuryCrossProduct
TREA : TreasuryPayment
TRFD : TrustFund
TRNC : TruncatedPaymentSlip
TRPT : RoadPricing
TRVC : TravellerCheque
UBIL : Utilities
UNIT : UnitTrustPurchase
VATX : ValueAddedTaxPayment
VIEW : VisionCare
WEBI : InternetInitiatedTransaction
WHLD : WithHolding
WTER : WaterBill

SDD purpose codes

The categoryPurposeCode(1) and purposeCode(2) used in the SDDTransaction.

SALA(1) (2)Salary Payment
TREA(1) (2)Treasury Payment
ADVA(2)Advance Payment
AGRT(2)Agricultural Transfer
ALMY(2)Alimony Payment
BECH(2)Child Benefit
BENE(2)Unemployment Disability Benefit
BONU(2)Bonus Payment
CASH(1) (2)Cash Management Transfer
CBFF(2)Capital Building
CHAR(2)Charity Payment
COLL(2)Collection Payment
CMDT(2)Commodity Transfer
COMC(2)Commercial Payment
COMM(2)Commission
COST(2)Costs
CPYR(2)Copyright
DIVI(1) (2)Dividend
FREX(2)Foreign Exchange
GDDS(2)Purchase Sale Of Goods
GOVT(1) (2)Gouvernment Payment
IHRP(2)Instalment Hire Purchase Agreement
INTC(1) (2)Intra Company Payment
INSU(2)Insurance Premium
INTE(1) (2)Interest
LIFC(2)Licence Fee
LOAN(1) (2)Loan
LOAR(2)Loan Repayment
NETT(2)Netting
PAYR(2)Payment Roll
PENS(1) (2)Pension
REFU (2)Refund
RENT(2)Rent
ROYA(2)Royalties
SCVE(2)Purchase Sale Of Services
SECU(1) (2)Securities
SSBE(1) (2)Social Security Benefit
SUBS(2)Subscription
TAXS(1) (2)Tax Payment
COMT(2)Consumer Third Party Consolidated Payment
DBTC(2)Debit Collection Payment
SUPP(1) (2)Supplier Payment
HEDG(1) (2)Hedging
MSVC(2)Multiple Service Types
NOWS(2)Not Otherwise Specified
CARD(2)Card Payment
CDBL(2)Credit Card Bill
FERB(2)Ferry
AIRB(2)Air
BUSB(2)Bus
RLWY(2)Railway
CVCF(2)Convalescent Care Facility
DNTS(2)Dental Services
ANTS(2)Anesthesia Services
HLTC(2)Home Health Care
HSPC(2)Hospital Care
ICRF(2)Intermediate Care Facility
LTCF(2)Long Term Care Facility
MDCS(2)Medical Services
VIEW(2)Vision Care
DMEQ(2)Durable Medicale Equipment
CBTV(2)Cable TV Bill
ELEC(2)Electricity Bill
GASB(2)Gas Bill
PHON(2)Telephone Bill
OTLC(2)Other Telecom Related Bill
WTER(2)Water Bill
STDY(2)Study
PRCP(2)Price Payment
INSM(2)Installment
RINP(2)Recurring Installment Payment
OFEE(2)Opening Fee
CFEE(2)Cancellation Fee
GOVI(2)Government Insurance
INPC(2)Insurance Premium Car
LBRI(2)Labor Insurance
LIFI(2)Life Insurance
PPTI(2)Property Insurance
HLTI(2)Health Insurance
CLPR(2)Car Loan Principal Repayment
ESTX(2)Estate Tax
HLRP(2)Housing Loan Repayment
CSLP(2)Company Social Loan Payment To Bank
HSTX(2)Housing Tax
INTX(2)Income Tax
NITX(2)Net Income Tax
NWCH(2)Network Charge
NWCM(2)Network Communication
BEXP(2)Business Expenses
TRFD(2)Trust Fund
RCPT(2)Receipt
PTSP(2)Payment Terms
OTHR(2)Other
WHLD(1)(2)With Holding
CORT(1)Trade Settlement Payment
VATX(1)Value Added Tax Payment
TRAD(1)Trade

Error codes

ErrorDetails ATTRIBUTES
errorCodeCode indicating the type of problem identified.
errorComponentCode indicating the 3-D Secure component that identified the error.
errorDescriptionText describing the problem identified.
errorDetailAdditional detail regarding the problem identified.
ErrorCode possible values
101MESSAGE_RECEIVED_INVALID
102MESSAGE_VERSION_NUMBER_NOT_SUPPORTED
103SENT_MESSAGES_LIMIT_EXCEEDED
201REQUIRED_ELEMENT_MISSING
202CRITICAL_MESSAGE_EXTENSION_NOT_RECOGNIZED
203FORMAT_ON_ONE_OR_MORE_ELEMENTS_INVALID_ACCORDING_SPECS
204DUPLICATE_DATA_ELEMENT
301TRANSACTION_ID_NOT_RECOGNIZED
302DATA_DECRYPTION_FAILURE
303ACCESS_DENIED_INVALID_ENDPOINT
304ISO_CODE_NOT_VALID
305TRANSACTION_DATA_NOT_VALID
306MCC_NOT_VALID_FOR_PAYMENT_SYSTEM
307SERIAL_NUMBER_NOT_VALID
402TRANSACTION_TIMED_OUT
403TRANSIENT_SYSTEM_FAILURE
404PERMANENT_SYSTEM_FAILURE
405SYSTEM_CONNECTION_FAILURE
911DATA_FIELDS_RELEVANCE_CHECK_FAILURE
912DUPLICATED_TRANSACTION_ID
ErrorComponent possible values
« C »THREE_DS_SDK
« S »THREE_DS_SERVER
« D »DIRECTORY_SERVER
« A »ACCESS_CONTROL_SERVER

Test values

Test IBAN values

Find below the list of HTTP return codes:

DE75512108001245126199SOGEDEFFXXX
FR7630004000031234567890143BNPAFRPPXXX
AT483200000012345864RLNWATWWXXX
BE71096123456769GKCCBEBB
AL35202111090000000001234567SGSBALTX
EE471000001020145685EEUHEE2X
ES7921000813610123456789CAIXESBBXXX

Test cards Values

This page provides a list of test card PANs you can use to validate your CentralPay integration. Each PAN below triggers a predictable scenario (bank refusal, 3DS authentication outcome, or card attributes such as EEA / region / product type).

Note: 3DS outcome values (transStatus such as Y, C, D, I, N…) are described in the dedicated 3DS 2.2 BRW documentation.

Card details to use: for all test PANs on this page, the expiry date and CVC values are free. The only requirement is that the expiry date must be later than today’s date. The CVC must be 3 digits (for example: 123).

Legend: ✅ Success · ❌ Bank refusal · ⛔ 3DS refused · 🛡️ 3DS · 🔒 3DS Challenge · 🔁 3DS Decoupled · ℹ️ 3DS Info · 🧭 Attributes

Quick test cards (most common scenarios)

PANScenarioWhat you should observe
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)Authorization succeeds with a successful 3DS authentication.
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)Challenge flow expected (you must complete the challenge step to proceed).
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowDecoupled authentication scenario (handling depends on your 3DS implementation).
4556 1041 6038 2032⛔🛡️ 3DS authentication refused (transStatus = N)The API responds with HTTP 200, but the 3DS authentication is refused (transStatus = N) and the payment is declined.
4000 0000 0000 0077❌ Bank refusal – Insufficient funds (51)Authorization is refused with bank return code 51 (Insufficient funds).
4000 0000 0000 0085❌ Bank refusal – Do not honor (5)Authorization is refused with bank return code 5 (Do not honor / refused).

Bank refusal PANs: these PANs are refused at the bank authorization stage regardless of the authentication flow.

Visa Card numbers

1) Bank refusals (regardless of the authentication flow)

PANScenarioDescription
4000 0000 0000 0051❌ Card lost (41)This PAN simulates a bank refusal with return code 41 (Card lost), regardless of the authentication flow.
4000 0000 0000 0069❌ Fraud suspicion (59)This PAN simulates a bank refusal with return code 59 (Fraud suspicion), regardless of the authentication flow.
4000 0000 0000 0077❌ Insufficient funds (51)This PAN simulates a bank refusal with return code 51 (Insufficient funds), regardless of the authentication flow.
4000 0000 0000 0085❌ Do not honor / refused (5)This PAN simulates a bank refusal with return code 5 (Do not honor / refused), regardless of the authentication flow.

2) 3DS scenarios

These PANs are designed to reproduce specific 3DS outcomes (transStatus). If transStatus = C, a challenge flow is expected and must be completed. If transStatus = N, the 3DS authentication is refused and the payment is declined.

PANScenarioDescription
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
4024 0071 7987 2394🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
4234 6319 8242 8908ℹ️🛡️ 3DS information only (transStatus = I)This PAN simulates a 3DS authentication with transStatus = I (Information only), to validate how you handle an informational 3DS outcome.
4234 6319 8242 8916🔁🛡️ 3DS decoupled (transStatus = D) – application flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using an application flow.
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using a browser flow.
4556 1041 6038 2032⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

3) Card attributes simulation (EEA / region / productType / cardType)

These PANs are designed to simulate card metadata (EEA / region / productType / cardType). Use them to validate your business rules, reporting, segmentation, or routing logic based on card attributes.

PANAttributes returnedDescription
4032 0389 8296 2700🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=DEBITThis PAN simulates an EEA consumer debit card in Europe.
4032 0343 8883 4767🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=CREDITThis PAN simulates an EEA consumer credit card in Europe.
4020 0280 0191 2012🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates an EEA consumer card in Europe with cardType=UNKNOWN.
4032 0337 9569 2248🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
4032 0368 1354 0364🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=CREDITThis PAN simulates an EEA corporate credit card in Europe.
4032 0387 5662 0096🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates an EEA corporate card in Europe with cardType=UNKNOWN.
4032 0358 5604 7592🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=DEBITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and DEBIT.
4032 0302 9068 3219🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=CREDITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and CREDIT.
4032 0377 5134 3001🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates an EEA card in Europe with productType=UNKNOWN and cardType=UNKNOWN.
4032 0307 5488 6225🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in USA/CANADA.
4032 0310 2547 6341🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in USA/CANADA.
4032 0341 4311 3978🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates a non-EEA consumer card in USA/CANADA with cardType=UNKNOWN.
4032 0309 5816 7398🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in USA/CANADA.
4032 0375 4480 7536🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=CREDITThis PAN simulates a non-EEA corporate credit card in USA/CANADA.
4032 0366 9148 7225🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates a non-EEA corporate card in USA/CANADA with cardType=UNKNOWN.
4032 0325 8917 3860🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=DEBITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and DEBIT.
4032 0388 0897 9557🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=CREDITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and CREDIT.
4032 0374 2147 1240🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and cardType=UNKNOWN.

Mastercard Card numbers

1) 3DS scenarios

PANScenarioDescription
5333 2591 5564 3223✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
5306 8899 4283 3340🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
5187 4346 4359 3002🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
5328 7203 8458 2224⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

2) Card attributes simulation (EEA / region / productType / cardType)

PANAttributes returnedDescription
5517 4500 0000 0168🧭 EEA=false ; region=US ; productType=CONSUMER ; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in the US.
5223 8599 0000 0174🧭 EEA=false ; region=US ; productType=CORPORATE ; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in the US.
5325 0900 0000 0115🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5325 0900 0000 0008🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5486 7467 7300 0005🧭 EEA=false ; region=EUROPE ; productType=CONSUMER ; cardType=DEBIT; Country=RUSThis PAN simulates a non-EEA consumer debit card with Country=RUS.
5588 1000 0000 0007🧭 EEA=false ; region=CEMEA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in CEMEA.
5122 9400 0000 0009🧭 EEA=false ; region=LATIN_AMERICA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in LATIN_AMERICA.

Amex Card numbers

1) 3DS scenarios

PANScenarioDescription
3415 0209 8634 895✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
3486 3826 7931 507🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
3456 9539 9207 589⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

2) Card attributes simulation (EEA / region / productType)

PANAttributes returnedDescription
3415 0209 8634 895🧭 EEA=false ; region=EUROPE ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in Europe.
3486 3826 7931 507🧭 EEA=false ; region=EUROPE ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in Europe.
3718 4294 2351 004🧭 EEA=false ; region=EUROPE ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in Europe with productType=UNKNOWN.
3712 5311 3391 201🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in ASIA_PACIFIC.
3423 1631 7472 410🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in ASIA_PACIFIC.
3710 9829 7279 338🧭 EEA=false ; region=ASIA_PACIFIC ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in ASIA_PACIFIC with productType=UNKNOWN.

CB Card numbers

These PANs allow you to test how the card is classified under the CB scheme (CB vs co-badged CB_VISA / CB_MASTERCARD) in your integration and reporting.

PANScenarioDescription
4020 0235 6597 5380✅🛡️ 3DS success (transStatus = Y) – scheme: CBThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB scheme.
4020 0254 4041 8403✅🛡️ 3DS success (transStatus = Y) – scheme: CB_VISAThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB_VISA scheme.
5232 1035 2372 2651✅🛡️ 3DS success (transStatus = Y) – scheme: CB_MASTERCARDThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB_MASTERCARD scheme.

Troubleshooting (what to check)

If you don’t get the expected outcome, start by checking:

  • Bank refusals: verify the returned bank refusal code/message in your transaction response or webhook (e.g., 51, 41, 59, 5).
  • 3DS scenarios: verify the returned transStatus. If C, a challenge flow must be completed; if N, the 3DS authentication is refused and the payment is declined; if D, the expected handling depends on your decoupled implementation.
  • Card attributes: verify the returned card metadata (EEA / region / productType / cardType) in the payment method or transaction details.

Resources by type

Articles

  • Codes
  • Test values

Codes

HTTP Codes

Find below the list of HTTP return codes:

200OK
Note: The request was executed correctly
400BAD REQUEST
Note: Wrong parameter or rule
401UNAUTHORIZED
Note: Login / password are missing for HTTP authentication
402PAYMENT_REQUIRED
Note:  Authorization denied*
403FORBIDDEN
Note: Wrong authentication
404NOT FOUND
Note: Incorrect URL
500INTERNAL SERVER ERROR
Note: Server error

(*) Only possible for the creation of a transaction

Card authorization - Bank return codes

Issuer response codes returned to CentralPay after a card authorization request.

These values generally correspond to the ISO 8583 “Response code” (DE39) returned by card networks/issuers. Depending on the scheme, country, and routing, you may also receive network-specific or gateway-specific variants (for example alphanumeric or 3-digit codes).

Important: the same code can cover multiple issuer-side reasons. Unless explicitly stated, CentralPay passes these codes as received. For troubleshooting, combine the response code with your transaction context (amount, currency, 3DS result, merchant category, card brand, retries).

Most common response codes

CodeDescriptionRecommended action
00ApprovedProceed with capture / fulfillment.
02Contact card issuerAsk customer to contact their bank; retry only if customer confirms.
03Invalid acceptorCheck merchant/terminal configuration (MID/TID, acquirer routing).
04Pick up / retain cardDo not retry; follow your in-store procedure (if applicable).
05Do not honorGeneric decline: do not “loop” retries; ask customer to contact issuer or use another payment method.
07Honor with IDIf card-present: request ID verification; otherwise ask customer to contact issuer.
08Time-outRetry once after a short delay; if repeated, check connectivity/acquirer status.
10Unable to reverseEscalate to support with trace/reference; avoid repeated reversals.
11Partial approvalOnly relevant if your flow supports partial approvals (often prepaid); otherwise request another method.
12Invalid transactionCheck request consistency (type, lifecycle, capture/void rules); if persistent, escalate with logs.
13Invalid amountValidate amount format/currency decimals; check min/max constraints.
14Invalid card numberCustomer should re-enter card details; if repeated, use another card.
15Unknown issuerUse another card/payment method; escalate if routing issue suspected.
19Try again laterRetry once later; if repeated, ask customer to contact issuer.
30Format errorCheck field formats (PAN/expiry/CVV, currency, recurring flags); escalate if needed.
33Card expiredCustomer must use another card.
38PIN attempts exceededCardholder must contact issuer / reset PIN; do not retry.
39Transaction not allowedLikely product/merchant restriction; ask customer to contact issuer or use another method.
41Lost cardDo not retry; request another payment method.
43Stolen cardDo not retry; request another payment method.
51Insufficient fundsAsk customer to use another method or wait for funds; avoid repeated immediate retries.
54Expired cardCustomer must use another card.
55Incorrect PINCard-present only: customer must retry carefully or contact issuer after repeated failures.
57Transaction not permitted to cardholderIssuer restriction; ask customer to contact issuer or use another method.
58Transaction prohibited at terminalCheck merchant/terminal capabilities & configuration; may be MCC/terminal restriction.
59Suspected fraudDo not retry “blindly”; ask customer to contact issuer or use a different method; review fraud rules if frequent.
61Exceeds withdrawal/amount limitReduce amount or ask customer to contact issuer.
62Restricted cardIssuer restriction; customer should contact issuer.
65Frequency limit exceededWait and retry later; avoid repeated attempts in short timeframes.
68Response received too lateRetry once; check acquirer/network status if repeated.
75PIN attempts exceededSame as 38: cardholder must contact issuer.
82Invalid CVVCustomer should re-enter CVV; if repeated, use another card.
91Issuer/switch unavailableRetry later; if widespread, treat as incident (issuer/network outage).
94Duplicate requestAvoid immediate retries with same identifiers; ensure idempotency / unique reference.
95Contact acquirerEscalate to support/acquirer with transaction reference.
96System malfunctionRetry later; if repeated, escalate with traces/logs.

All response codes (exhaustive)

The following codes may be returned depending on the network, country, routing, or integration. This section is exhaustive compared to the previous version of this page, and includes both standard and non-standard variants.

CodeDescriptionRecommended action
00Transaction approved or successfully processedProceed with capture / fulfillment.
02Contact card issuerAsk the customer to contact their issuer; retry only if issuer confirms.
03Invalid acceptorCheck merchant/terminal configuration (MID/TID), acquirer routing, and credentials.
04Keep cardDo not retry; follow in-store procedure if applicable; request another payment method.
05Do not honorGeneric decline: avoid retry loops; ask customer to contact issuer or use another method.
06Transaction invalid for terminalCheck terminal capability / transaction type compatibility; verify integration parameters.
07Honor with IDIf card-present: request ID verification; otherwise ask customer to contact issuer.
08Time-OutRetry once after a short delay; if repeated, check network/acquirer connectivity.
09No originalFor reversals/adjustments: ensure you reference an existing original transaction; escalate if needed.
10Unable to reverseDo not repeat reversals blindly; escalate to support with transaction references.
11Partial approvalHandle partial approval if supported (often prepaid); otherwise request another method.
12Invalid transactionCheck transaction type/lifecycle (auth/capture/void/refund), parameters; escalate with logs if persistent.
13Invalid amountValidate amount format, currency decimals, and min/max constraints; retry after correction.
14Invalid cardholder numberCustomer should re-enter card details; if repeated, use another card.
15Unknown card issuerTry another card/payment method; if widespread, suspect routing/config issue and escalate.
17Invalid capture date (terminal business date)Check terminal business date / batch settings; retry after correction if applicable.
19Repeat transaction laterRetry once later; avoid multiple attempts in a short window; ask customer to contact issuer if repeated.
20No From AccountNot typical for purchase flows; verify transaction type and account fields; escalate if unexpected.
21No To AccountNot typical for purchase flows; verify transaction type and account fields; escalate if unexpected.
22Account not verifiedAsk customer to contact issuer; consider another payment method.
23Account not savedRetry later if applicable; otherwise use another method; escalate if recurring.
24No Credit AccountAsk customer to contact issuer; use another method.
25Unable to locate record in fileFor adjustments/reversals: verify original reference; escalate with trace/reference.
26Record duplicatedCheck idempotency and uniqueness of references; do not retry with same identifiers.
27‘Edit’ error in file update fieldCheck field formats and constraints; escalate with payload/logs.
28File access deniedConfiguration/permission issue: escalate to support/acquirer with context.
29File update not possibleEscalate with trace/reference; avoid repeating the same update operation.
30Format errorCheck request formatting (amount/currency, PAN/expiry, flags, message structure); escalate with logs.
31Identifier of acquiring organization unknownCheck acquirer routing and merchant configuration; escalate to support/acquirer.
32Transaction partially completedCheck final status via retrieval; avoid blind retry; escalate if inconsistent.
33Card validity date exceededCustomer must use another card.
34Implausible card dataCustomer should re-enter details; verify card data collection; use another card if repeated.
38Number of PIN attempts exceededDo not retry; customer must contact issuer / reset PIN.
39Transaction not allowedCheck transaction type and merchant capability; ask customer to contact issuer or use another method.
41Lost cardDo not retry; request another payment method.
42Special PickupDo not retry; request another method; in-store: follow procedure if applicable.
43Stolen cardDo not retry; request another payment method.
44Stolen cardDo not retry; request another payment method.
51Insufficient funds or overdraftAsk customer to use another method or wait for funds; avoid repeated immediate retries.
54Card expiredCustomer must use another card.
55Incorrect PINCard-present: retry carefully; if repeated, customer contacts issuer.
56Card not on fileVerify card details; customer should contact issuer or use another card.
57Transaction not authorized to this cardholderIssuer restriction; ask customer to contact issuer or use another method.
58Transaction prohibited at terminalCheck merchant/terminal capabilities and MCC/terminal restrictions; adjust configuration.
59Suspected fraudAvoid retry loops; customer contacts issuer or uses another method; review risk rules if frequent.
60The card acceptor must contact the buyerAsk customer to contact issuer / confirm details; avoid repeated attempts.
61Withdrawal amount over limitReduce amount or ask customer to contact issuer.
62Card use restrictedCustomer contacts issuer; use another method.
63MAC Key ErrorCryptographic/config issue: escalate to support/acquirer with trace and timestamps.
65Frequency limit exceededWait and retry later; avoid multiple attempts in short timeframe.
66Acquirer limit reachedEscalate to acquirer/support; retry only after confirmation.
67Card withheldDo not retry; request another method; in-store: follow procedure if applicable.
68Response not received or received too lateRetry once; if repeated, check acquirer/network status and escalate.
75Number of PIN attempts exceededSame as 38: do not retry; customer must contact issuer.
76Invalid AccountAsk customer to contact issuer; use another card/method.
77Issuer not participating in serviceUse another card or method; escalate if routing/regional issue suspected.
78Function not availableRemove/disable unsupported feature; verify transaction type and integration flags.
79Key validation errorCryptographic/config issue: escalate to support/acquirer with trace.
80Approved for purchase amount onlyIf you requested cash-back/extra: retry without it; otherwise proceed as approved.
81Unable to verify PINCard-present: retry; if repeated, customer contacts issuer or use another method.
82Invalid CVVRe-enter CVV; if repeated, use another card.
83Not refusedTreat as non-decline / ambiguous: verify final status via retrieval; escalate if inconsistent.
84Invalid transaction lifecycleCheck auth/capture/void/refund ordering and timing; fix integration logic.
85No key to useCryptographic/config issue: escalate to support/acquirer.
86KME synchronization errorCryptographic sync issue: escalate with logs, trace, timestamps.
87PIN errorCard-present: retry; if repeated, customer contacts issuer.
88MAC synchronization errorCryptographic sync issue: escalate with logs, trace, timestamps.
89Security violationStop retries; escalate to support/acquirer; review fraud/security configuration.
90Temporary system shutdownRetry later; if persistent, treat as incident and escalate.
91Card transmitter inaccessibleRetry later; if widespread, treat as issuer/network outage.
92Card issuer unknownUse another card; if repeated across cards, suspect routing/config and escalate.
93Transacation cannot be finalizedRetry later once; if persistent, escalate with trace/logs.
94Duplicate requestEnsure idempotency / unique references; do not resend the exact same request.
95Contact acquirerEscalate to support/acquirer with transaction reference and timestamps.
96System malfunctionRetry later; if repeated, escalate with traces/logs.
97No Funds TransferNot typical for purchase flows; verify transaction type; escalate if unexpected.
98Duplicate ReversalDo not repeat reversal; verify original reversal status; ensure idempotency.
99Duplicate TransactionCheck idempotency and client retries; ensure unique transaction identifiers.
N3Cash Service Not AvailableNot applicable to purchase flows; ignore unless supporting cash services.
N4Cash Back Request Exceeds Issuer LimitReduce cash-back amount or remove cash-back.
N7Declined for CVV2 failureRe-enter CVV; if repeated, use another card.
R0Stop Payment OrderDo not retry; customer must contact issuer.
R1Revocation of Authorisation OrderDo not retry; customer must contact issuer.
R3Revocation of all Authorisations OrderDo not retry; customer must contact issuer.
A0Withdrawal in contact modeNot applicable to e-commerce purchase flows; verify transaction type; remove cash/withdrawal feature if not supported.
A1VADS fallbackRouting/fallback case: verify gateway/acquirer configuration; escalate if frequent or unexpected.
000ApprovedProceed with capture / fulfillment.
001Approve with IDIf supported: apply ID verification; otherwise treat as approved.
002Partial approval (prepaid cards only)Handle partial approval if supported; otherwise request another method.
100RejectGeneric decline: avoid retry loops; ask customer to contact issuer or use another method.
101Card expired / invalid expiry dateCustomer must use another card.
106PIN attempts exceededDo not retry; customer must contact issuer.
107Please call issuerCustomer must contact issuer; retry only after confirmation.
109Invalid merchantCheck merchant configuration and routing; escalate to support/acquirer.
110Invalid amountValidate amount format/limits; retry after correction.
111Invalid account / Invalid MICR (traveler’s check)Ask customer to contact issuer; use another card/method.
115Requested function not supportedDisable unsupported feature/flag; verify transaction type.
117Invalid PINCard-present: retry carefully; if repeated, customer contacts issuer.
119Cardholder not registered / not authorizedCustomer must contact issuer; use another method.
122Invalid card security code (alias CID, 4DBC, 4CSC)Re-enter security code; if repeated, use another card.
125Invalid effective dateCheck date fields / terminal business date; escalate if applicable.
181Format errorCheck request formatting and fields; escalate with logs if persistent.
183Invalid currency codeVerify ISO currency code and acquirer configuration; correct and retry.
187Refuse – New card issuedCustomer must use another card; advise contacting issuer.
189Refuse – Merchant cancelled or closed / SECheck merchant status/configuration; escalate to support/acquirer.
200Refuse – Pick up cardDo not retry; request another method; in-store: follow procedure if applicable.
900Accepted – ATC synchronizationProceed but monitor; if repeated, escalate (potential chip/crypto sync issue).
909System malfunction (cryptographic error)Escalate to support/acquirer with trace, timestamps, and logs.
912Issuer not availableRetry later; if widespread, treat as issuer outage / incident.

Card Disputes - Bank Return codes

CB Scheme

CBDescriptionGIE DISPUTE
12Unauthorized TransactionTRANSACTION_NOT_AUTHORIZED
13Merchant Forced TransactionINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
14Unauthorized TransactionTRANSACTION_NOT_AUTHORIZED
15Guarantee by Card, by Day and by SIRETTRANSACTION_NOT_AUTHORIZED
16PIN Not VerifiedTRANSACTION_NOT_AUTHORIZED
17Invalid SIRETTRANSACTION_NOT_AUTHORIZED
18Certificate Not VerifiableTRANSACTION_NOT_AUTHORIZED
21Expired CardTRANSACTION_NOT_AUTHORIZED
22Late PresentmentINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
23Missing ImprintINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
25Exceeds Transaction Amount LimitINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
27Credit Not ProcessedTRANSACTION_NOT_AUTHORIZED
28Credit Processed as DebitTRANSACTION_NOT_AUTHORIZED
40Cancelled CardINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
41Documentation Not Provided or IllegibleINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
42Duplicate ProcessingDUPLICATE
43No Such Card NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
44Disputed AmountFRAUDULENT
45Disputed TransactionFRAUDULENT
46Merchant Bankruptcy or Judicial ReorganizationINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
61Merchant Suspended or TerminatedTRANSACTION_NOT_AUTHORIZED
62Transaction Not PermittedTRANSACTION_NOT_AUTHORIZED

Mastercard Scheme

MASTERCARDDescriptionGIE DISPUTE
4801Requested Transaction Data Not ReceivedTRANSACTION_NOT_AUTHORIZED
4802Cardholder Does Not Recognize TransactionTRANSACTION_NOT_AUTHORIZED
4807Cardholder Disputes a CreditFRAUDULENT
4808Authorization-Related ChargebackTRANSACTION_NOT_AUTHORIZED
4809Transaction Not AuthorizedFRAUDULENT
4810Fraud — Card-Not-Present EnvironmentFRAUDULENT
4522Goods or Services Not as Described / Not ReceivedOTHER
4811Credit Not ProcessedTRANSACTION_NOT_AUTHORIZED
4812Fraud — Card-Present EnvironmentTRANSACTION_NOT_AUTHORIZED
4831Goods or Services Not ReceivedINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4834Duplicate ProcessingDUPLICATE
4835Transaction Processing ErrorTRANSACTION_NOT_AUTHORIZED
4837No Cardholder Authorization (Lost/Stolen Card)FRAUDULENT
4840Fraudulent Processing of TransactionsFRAUDULENT
4841Cancelled Recurring TransactionTRANSACTION_NOT_AUTHORIZED
4842Counterfeit CardTRANSACTION_NOT_AUTHORIZED
4843Transaction Not Valid / Authorization ReversalTRANSACTION_NOT_AUTHORIZED
4846Non-Compliance With Authorization RequirementsINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4847Invalid Recurring TransactionINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4849Duplicate ProcessingDUPLICATE
4850ATM Cash Disbursement Not AuthorizedTRANSACTION_NOT_AUTHORIZED
4851Cardholder Disputes Transaction (Offline)TRANSACTION_NOT_AUTHORIZED
4853Cardholder Disputes Transaction Not as DescribedPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4854Exceeds Floor LimitPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4855Non-Receipt of Merchandise / ServicesPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4857Cardholder Disputes Transaction — Services Not ProvidedTRANSACTION_NOT_AUTHORIZED
4859Services Not Provided / Merchandise Not ReceivedTRANSACTION_NOT_AUTHORIZED
4860Transaction Processing ErrorTRANSACTION_NOT_AUTHORIZED
4862Cardholder Disputes Transaction — Invalid AuthorizationTRANSACTION_NOT_AUTHORIZED
4863Credit Not Processed / Cash Not DispensedFRAUDULENT
4870Chip Liability Shift — Counterfeit FraudFRAUDULENT
4871Chip Liability Shift — Lost/Stolen FraudFRAUDULENT
4880Late PresentmentTRANSACTION_NOT_AUTHORIZED
4890Currency Conversion DisputeTRANSACTION_NOT_AUTHORIZED
4900Defective/Not as Described MerchandiseOTHER
4901Credit Not ProcessedOTHER
4902Merchandise Not AcceptedOTHER
4903Incorrect Merchandise DeliveredOTHER
4905Services Not ProvidedOTHER
4908Cash Not DispensedOTHER

Visa Scheme

VISADescriptionGIE DISPUTE
10Fraud — Card-Absent EnvironmentFRAUDULENT
11Fraud — Card-Present EnvironmentTRANSACTION_NOT_AUTHORIZED
12Incorrect Transaction Amount or Account NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
13Fraudulent Transaction — No AuthorizationFRAUDULENT
30Services Not Provided or Merchandise Not ReceivedPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
41Credit Not ProcessedOTHER
53Not as Described or Defective MerchandiseOTHER
57Fraudulent Transaction — No Cardholder AuthorizationFRAUDULENT
62Counterfeit TransactionFRAUDULENT
70Processing ErrorOTHER
71Declined AuthorizationOTHER
72Cancelled TransactionOTHER
73Duplicate ProcessingOTHER
74Credit Not ProcessedOTHER
75Transaction Not RecognizedOTHER
76Incorrect Transaction Amount or Account NumberOTHER
77Non-Receipt of MerchandiseINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
78Fraudulent Transaction — No Cardholder AuthorizationOTHER
80Incorrect Transaction Amount or Account NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
81Fraudulent Transaction — Lost CardFRAUDULENT
82Fraudulent Transaction — Stolen CardDUPLICATE
83Fraudulent Transaction — Card-Absent EnvironmentFRAUDULENT
85Duplicate ProcessingOTHER
86Non-Compliance With AuthorizationDUPLICATE
93Late PresentmentFRAUDULENT
1001Fraud — Card-Absent Environment (E-Commerce)FRAUDULENT
1002Fraudulent Transaction — E-CommerceFRAUDULENT
1003Services Not Provided or Merchandise Not ReceivedFRAUDULENT
1004Fraudulent Transaction — No Cardholder AuthorizationFRAUDULENT
1005Not as Described or Defective MerchandiseFRAUDULENT
1101Processing Error — AuthorizationOTHER
1102Incorrect Transaction AmountOTHER
1103Exceeds Authorized AmountOTHER
1201Services Not Provided or Merchandise Not ReceivedOTHER
1202Not as Described Merchandise / ServiceOTHER
1203Recurring Transaction Not RecognizedOTHER
1204Defective MerchandiseINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
1205Services Not ProvidedINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
1206Non-Receipt of MerchandiseDUPLICATE
1207Duplicate ProcessingOTHER
1301Fraudulent Transaction — Card-Present EnvironmentPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
1302Fraudulent Transaction — No Cardholder AuthorizationOTHER
1303Fraudulent Transaction — Card-Absent EnvironmentOTHER
1304Duplicate ProcessingOTHER
1305Services Not Provided or Merchandise Not ReceivedOTHER
1306Credit Not ProcessedOTHER
1307Recurring Transaction Not RecognizedOTHER
1308Transaction Processing ErrorOTHER

Currency codes

List of currency codes:

AED
UAE Dirham
Currency code: 784
AFN
Afghani
Currency code: 971
ALL
Lek
Currency code: 008
AMD
Armenian Dram
Currency code: 051
ANG
Netherlands Antillean Guilder
Currency code: 532
AOA
Kwanza
Currency code: 973
ARS
Argentine Peso
Currency code: 032
AUD
Australian Dollar
Currency code: 036
AWG
Aruban Florin
Currency code: 533
AZN
Azerbaijanian Manat
Currency code: 944
BAM
Convertible Mark
Currency code: 977
BBD
Barbados Dollar
Currency code: 052
BDT
Taka
Currency code: 050
BGN
Bulgarian Lev
Currency code: 975
BHD
Bahraini Dinar
Currency code: 048
BIF
Burundi Franc
Currency code: 108
BMD
Bermudian Dollar
Currency code: 060
BND
Brunei Dollar
Currency code: 096
BOB
Boliviano
Currency code: 068
BOV
Mvdol
Currency code: 984
BRL
Brazilian Real
Currency code: 986
BSD
Bahamian Dollar
Currency code: 044
BTN
Ngultrum
Currency code: 064
BWP
Pula
Currency code: 072
BYR
Belarussian Ruble
Currency code: 974
BZD
Belize Dollar
Currency code: 084
CAD
Canadian Dollar
Currency code: 124
CDF
Congolese Franc
Currency code: 976
CHE
WIR Euro
Currency code: 947
CHF
Swiss Franc
Currency code: 756
CHW
WIR Franc
Currency code: 948
CLF
Unidad de Fomento
Currency code: 990
CLP
Chilean Peso
Currency code: 152
CNY
Yuan Renminbi
Currency code: 156
COP
Colombian Peso
Currency code: 170
COU
Unidad de Valor Real
Currency code: 970
CRC
Costa Rican Colon
Currency code: 188
CUC
Peso Convertible
Currency code: 931
CUP
Cuban Peso
Currency code: 192
CVE
Cabo Verde Escudo
Currency code: 132
CZK
Czech Koruna
Currency code: 203
DJF
Djibouti Franc
Currency code: 262
DKK
Danish Krone
Currency code: 208
DOP
Dominican Peso
Currency code: 214
DZD
Algerian Dinar
Currency code: 012
EGP
Egyptian Pound
Currency code: 818
ERN
Nakfa
Currency code: 232
ETB
Ethiopian Birr
Currency code: 230
EUR
Euro
Currency code: 978
FJD
Fiji Dollar
Currency code: 242
FKP
Falkland Islands Pound
Currency code: 238
GBP
Pound Sterling
Currency code: 826
GEL
Lari
Currency code: 981
GHS
Ghana Cedi
Currency code: 936
GIP
Gibraltar Pound
Currency code: 292
GMD
Dalasi
Currency code: 270
GNF
Guinea Franc
Currency code: 324
GTQ
Quetzal
Currency code: 320
GYD
Guyana Dollar
Currency code: 328
HKD
Hong Kong Dollar
Currency code: 344
HNL
Lempira
Currency code: 340
HRK
Kuna
Currency code: 191
HTG
Gourde
Currency code: 332
HUF
Forint
Currency code: 348
IDR
Rupiah
Currency code: 360
ILS
New Israeli Sheqel
Currency code: 376
INR
Indian Rupee
Currency code: 356
IQD
Iraqi Dinar
Currency code: 368
IRR
Iranian Rial
Currency code: 364
ISK
Iceland Krona
Currency code: 352
JMD
Jamaican Dollar
Currency code: 388
JOD
Jordanian Dinar
Currency code: 400
JPY
Yen
Currency code: 392
KES
Kenyan Shilling
Currency code: 404
KGS
Som
Currency code: 417
KHR
Riel
Currency code: 116
KMF
Comoro Franc
Currency code: 174
KPW
North Korean Won
Currency code: 408
KRW
Won
Currency code: 410
KWD
Kuwaiti Dinar
Currency code: 414
KYD
Cayman Islands Dollar
Currency code: 136
KZT
Tenge
Currency code: 398
LAK
Kip
Currency code: 418
LBP
Lebanese Pound
Currency code: 422
LKR
Sri Lanka Rupee
Currency code: 144
LRD
Liberian Dollar
Currency code: 430
LSL
Loti
Currency code: 426
LYD
Libyan Dinar
Currency code: 434
MAD
Moroccan Dirham
Currency code: 504
MDL
Moldovan Leu
Currency code: 498
MGA
Malagasy Ariary
Currency code: 969
MKD
Denar
Currency code: 807
MMK
Kyat
Currency code: 104
MNT
Tugrik
Currency code: 496
MOP
Pataca
Currency code: 446
MRO
Ouguiya
Currency code: 478
MUR
Mauritius Rupee
Currency code: 480
MVR
Rufiyaa
Currency code: 462
MWK
Kwacha
Currency code: 454
MXN
Mexican Peso
Currency code: 484
MXV
Mexican Unidad de Inversion (UDI)
Currency code: 979
MYR
Malaysian Ringgit
Currency code: 458
MZN
Mozambique Metical
Currency code: 943
NAD
Namibia Dollar
Currency code: 516
NGN
Naira
Currency code: 566
NIO
Cordoba Oro
Currency code: 558
NOK
Norwegian Krone
Currency code: 578
NPR
Nepalese Rupee
Currency code: 524
NZD
New Zealand Dollar
Currency code: 554
OMR
Rial Omani
Currency code: 512
PAB
Balboa
Currency code: 590
PEN
Nuevo Sol
Currency code: 604
PGK
Kina
Currency code: 598
PHP
Philippine Peso
Currency code: 608
PKR
Pakistan Rupee
Currency code: 586
PLN
Zloty
Currency code: 985
PYG
Guarani
Currency code: 600
QAR
Qatari Rial
Currency code: 634
RON
Romanian Leu
Currency code: 946
RSD
Serbian Dinar
Currency code: 941
RUB
Russian Ruble
Currency code: 643
RWF
Rwanda Franc
Currency code: 646
SAR
Saudi Riyal
Currency code: 682
SBD
Solomon Islands Dollar
Currency code: 090
SCR
Seychelles Rupee
Currency code: 690
SDG
Sudanese Pound
Currency code: 938
SEK
Swedish Krona
Currency code: 752
SGD
Singapore Dollar
Currency code: 702
SHP
Saint Helena Pound
Currency code: 654
SLL
Leone
Currency code: 694
SOS
Somali Shilling
Currency code: 706
SRD
Surinam Dollar
Currency code: 968
SSP
South Sudanese Pound
Currency code: 728
STD
Dobra
Currency code: 678
SVC
El Salvador Colon
Currency code: 222
SYP
Syrian Pound
Currency code: 760
SZL
Lilangeni
Currency code: 748
THB
Baht
Currency code: 764
TJS
Somoni
Currency code: 972
TMT
Turkmenistan New Manat
Currency code: 934
TND
Tunisian Dinar
Currency code: 788
TOP
Pa’anga
Currency code: 776
TRY
Turkish Lira
Currency code: 949
TTD
Trinidad and Tobago Dollar
Currency code: 780
TWD
New Taiwan Dollar
Currency code: 901
TZS
Tanzanian Shilling
Currency code: 834
UAH
Hryvnia
Currency code: 980
UGX
Uganda Shilling
Currency code: 800
USD
US Dollar
Currency code: 840
USN
US Dollar (Next day)
Currency code: 997
UYI
Uruguay Peso en Unidades Indexadas (URUIURUI)
Currency code: 940
UYU
Peso Uruguayo
Currency code: 858
UZS
Uzbekistan Sum
Currency code: 860
VEF
Bolivar
Currency code: 937
VND
Dong
Currency code: 704
VUV
Vatu
Currency code: 548
WST
Tala
Currency code: 882
XAG
Silver
Currency code: 961
XAU
Gold
Currency code: 959
XBA
Bond Markets Unit European Composite Unit (EURCO)
Currency code: 955
XBB
Bond Markets Unit European Monetary Unit (E.M.U.-6)
Currency code: 956
XBC
Bond Markets Unit European Unit of Account 9 (E.U.A.-9)
Currency code: 957
XBD
Bond Markets Unit European Unit of Account 17 (E.U.A.-17)
Currency code: 958
XCD
East Caribbean Dollar
Currency code: 951
XDR
SDR (Special Drawing Right)
Currency code: 960
XOF
CFA Franc BCEAO
Currency code: 952
XPD
Palladium
Currency code: 964
XPF
CFP Franc
Currency code: 953
XPT
Platinum
Currency code: 962
XSU
Sucre
Currency code: 994
XTS
Codes specifically reserved for testing purposes
Currency code: 963
XUA
ADB Unit of Account
Currency code: 965
XXX
The codes assigned for transactions where no currency is involved
Currency code: 999
YER
Yemeni Rial
Currency code: 886
ZAR
Rand
Currency code: 710
ZMW
Zambian Kwacha
Currency code: 967
ZWL
Zimbabwe Dollar
Currency code: 932

Description of the certification « ISO 4217:2008 » is available at this url:

  • http://www.iso.org/iso/home/standards/currency_codes.htm

SDD return codes

Return CodeDescription
AB05Timeout Creditor Agent
AB06Timeout Instructed Agent
AB07Offline Agent
AB08Offline Creditor Agent
AB09Error Creditor Agent
AB10Error Instructed Agent
AC01Incorrect Account Number
AC03Invalid Creditor Account Number
AC04Account Closed
AC06Account blocked, reason not specified
AC13Wrong Debtor account
AG01Forbidden on this type of account
AG02Operation/Transaction code incorrect, invalid file format
AG09Payment Not Received
AG10Agent Suspended
AG11Creditor Agent Suspended
AGNTIncorrect Agent
AM02Not Allowed Amount
AM04Insufficient Funds
AM05Duplicate payment
AM09Wrong Amount
AM23Amount Exceeds Settlement Limit
ARDTAlready a returned transaction
BE04Account address invalid
BE05Creditor Identifier incorrect
CUSTCustomer decision
CURRIncorrect Currency
CUTACancellation Upon Unable to Apply
CNORCreditor Bank is not Registered
DNORDebtor Bank is not Registered
DUPLDuplicate Payment
ED05Settlement Failed
ERINERI Option Not Supported
FF01Invalid File Format
FOCRPositive answer to the recall or RfRO
FRADFraudulent originated credit transfer
LEGLLegal Decision
MD01No valid mandate
MD02Mandate data missing or invalid
MD06Refund Request By End Customer
MD07Beneficiary Deceased
MS02By order of the beneficiary
MS03Reason not specified
NOASNo Answer From Customer
NOORNo Original Transaction Received
RC01Invalid BIC
RC07Invalid Creditor BIC Identifier
RR01Missing Debtor Account Or Identification
RR02Missing Debtors Name Or Address
RR03Missing Creditors Name Or Address
RR04Regulatory Reason
SL01Specific service offered by debtor Bank
TECHTechnical problems resulting in erroneous SCT’s
TM01Invalid Cut Off Time
UPAYUndue Payment

Country codes

List of country codes:

004
Afghanistan
Alpha2 code: AF
Alpha3 code: AFG
008
Albania
Alpha2 code: AL
Alpha3 code: ALB
010
Antarctica
Alpha2 code: AQ
Alpha3 code: ATA
012
Algeria
Alpha2 code: DZ
Alpha3 code: DZA
016
American Samoa
Alpha2 code: AS
Alpha3 code: ASM
020
Andorra
Alpha2 code: AD
Alpha3 code: AND
024
Angola
Alpha2 code: AO
Alpha3 code: AGO
028
Antigua and Barbuda
Alpha2 code: AG
Alpha3 code: ATG
031
Azerbaijan
Alpha2 code: AZ
Alpha3 code: AZE
032
Argentina
Alpha2 code: AR
Alpha3 code: ARG
036
Australia
Alpha2 code: AU
Alpha3 code: AUS
040
Austria
Alpha2 code: AT
Alpha3 code: AUT
044
Bahamas (the)
Alpha2 code: BS
Alpha3 code: BHS
048
Bahrain
Alpha2 code: BH
Alpha3 code: BHR
050
Bangladesh
Alpha2 code: BD
Alpha3 code: BGD
051
Armenia
Alpha2 code: AM
Alpha3 code: ARM
052
Barbados
Alpha2 code: BB
Alpha3 code: BRB
056
Belgium
Alpha2 code: BE
Alpha3 code: BEL
060
Bermuda
Alpha2 code: BM
Alpha3 code: BMU
064
Bhutan
Alpha2 code: BT
Alpha3 code: BTN
068
Bolivia, Plurinational State of
Alpha2 code: BO
Alpha3 code: BOL
070
Bosnia and Herzegovina
Alpha2 code: BA
Alpha3 code: BIH
072
Botswana
Alpha2 code: BW
Alpha3 code: BWA
074
Bouvet Island
Alpha2 code: BV
Alpha3 code: BVT
076
Brazil
Alpha2 code: BR
Alpha3 code: BRA
084
Belize
Alpha2 code: BZ
Alpha3 code: BLZ
086
British Indian Ocean Territory (the)
Alpha2 code: IO
Alpha3 code: IOT
090
Solomon Islands (the)
Alpha2 code: SB
Alpha3 code: SLB
092
Virgin Islands (British)
Alpha2 code: VG
Alpha3 code: VGB
096
Brunei Darussalam
Alpha2 code: BN
Alpha3 code: BRN
100
Bulgaria
Alpha2 code: BG
Alpha3 code: BGR
104
Myanmar
Alpha2 code: MM
Alpha3 code: MMR
108
Burundi
Alpha2 code: BI
Alpha3 code: BDI
112
Belarus
Alpha2 code: BY
Alpha3 code: BLR
116
Cambodia
Alpha2 code: KH
Alpha3 code: KHM
120
Cameroon
Alpha2 code: CM
Alpha3 code: CMR
124
Canada
Alpha2 code: CA
Alpha3 code: CAN
132
Cape Verde
Alpha2 code: CV
Alpha3 code: CPV
136
Cayman Islands (the)
Alpha2 code: KY
Alpha3 code: CYM
140
Central African Republic (the)
Alpha2 code: CF
Alpha3 code: CAF
144
Sri Lanka
Alpha2 code: LK
Alpha3 code: LKA
148
Chad
Alpha2 code: TD
Alpha3 code: TCD
152
Chile
Alpha2 code: CL
Alpha3 code: CHL
156
China
Alpha2 code: CN
Alpha3 code: CHN
158
Taiwan (Province of China)
Alpha2 code: TW
Alpha3 code: TWN
162
Christmas Island
Alpha2 code: CX
Alpha3 code: CXR
166
Cocos (Keeling) Islands (the)
Alpha2 code: CC
Alpha3 code: CCK
170
Colombia
Alpha2 code: CO
Alpha3 code: COL
174
Comoros
Alpha2 code: KM
Alpha3 code: COM
175
Mayotte
Alpha2 code: YT
Alpha3 code: MYT
178
Congo
Alpha2 code: CG
Alpha3 code: COG
180
Congo (the Democratic Republic of the)
Alpha2 code: CD
Alpha3 code: COD
184
Cook Islands (the)
Alpha2 code: CK
Alpha3 code: COK
188
Costa Rica
Alpha2 code: CR
Alpha3 code: CRI
191
Croatia
Alpha2 code: HR
Alpha3 code: HRV
192
Cuba
Alpha2 code: CU
Alpha3 code: CUB
196
Cyprus
Alpha2 code: CY
Alpha3 code: CYP
203
Czech Republic (the)
Alpha2 code: CZ
Alpha3 code: CZE
204
Benin
Alpha2 code: BJ
Alpha3 code: BEN
208
Denmark
Alpha2 code: DK
Alpha3 code: DNK
212
Dominica
Alpha2 code: DM
Alpha3 code: DMA
214
Dominican Republic (the)
Alpha2 code: DO
Alpha3 code: DOM
218
Ecuador
Alpha2 code: EC
Alpha3 code: ECU
222
El Salvador
Alpha2 code: SV
Alpha3 code: SLV
226
Equatorial Guinea
Alpha2 code: GQ
Alpha3 code: GNQ
231
Ethiopia
Alpha2 code: ET
Alpha3 code: ETH
232
Eritrea
Alpha2 code: ER
Alpha3 code: ERI
233
Estonia
Alpha2 code: EE
Alpha3 code: EST
234
Faroe Islands (the)
Alpha2 code: FO
Alpha3 code: FRO
238
Falkland Islands (the) [Malvinas]
Alpha2 code: FK
Alpha3 code: FLK
239
South Georgia and the South Sandwich Islands
Alpha2 code: GS
Alpha3 code: SGS
242
Fiji
Alpha2 code: FJ
Alpha3 code: FJI
246
Finland
Alpha2 code: FI
Alpha3 code: FIN
248
Ã…land Islands
Alpha2 code: AX
Alpha3 code: ALA
250
France
Alpha2 code: FR
Alpha3 code: FRA
254
French Guiana
Alpha2 code: GF
Alpha3 code: GUF
258
French Polynesia
Alpha2 code: PF
Alpha3 code: PYF
260
French Southern Territories (the)
Alpha2 code: TF
Alpha3 code: ATF
262
Djibouti
Alpha2 code: DJ
Alpha3 code: DJI
266
Gabon
Alpha2 code: GA
Alpha3 code: GAB
268
Georgia
Alpha2 code: GE
Alpha3 code: GEO
270
Gambia (The)
Alpha2 code: GM
Alpha3 code: GMB
275
Palestine, State of
Alpha2 code: PS
Alpha3 code: PSE
276
Germany
Alpha2 code: DE
Alpha3 code: DEU
288
Ghana
Alpha2 code: GH
Alpha3 code: GHA
292
Gibraltar
Alpha2 code: GI
Alpha3 code: GIB
296
Kiribati
Alpha2 code: KI
Alpha3 code: KIR
300
Greece
Alpha2 code: GR
Alpha3 code: GRC
304
Greenland
Alpha2 code: GL
Alpha3 code: GRL
308
Grenada
Alpha2 code: GD
Alpha3 code: GRD
312
Guadeloupe
Alpha2 code: GP
Alpha3 code: GLP
316
Guam
Alpha2 code: GU
Alpha3 code: GUM
320
Guatemala
Alpha2 code: GT
Alpha3 code: GTM
324
Guinea
Alpha2 code: GN
Alpha3 code: GIN
328
Guyana
Alpha2 code: GY
Alpha3 code: GUY
332
Haiti
Alpha2 code: HT
Alpha3 code: HTI
334
Heard Island and McDonald Islands
Alpha2 code: HM
Alpha3 code: HMD
336
Holy See (the) [Vatican City State]
Alpha2 code: VA
Alpha3 code: VAT
340
Honduras
Alpha2 code: HN
Alpha3 code: HND
344
Hong Kong
Alpha2 code: HK
Alpha3 code: HKG
348
Hungary
Alpha2 code: HU
Alpha3 code: HUN
352
Iceland
Alpha2 code: IS
Alpha3 code: ISL
356
India
Alpha2 code: IN
Alpha3 code: IND
360
Indonesia
Alpha2 code: ID
Alpha3 code: IDN
364
Iran (the Islamic Republic of)
Alpha2 code: IR
Alpha3 code: IRN
368
Iraq
Alpha2 code: IQ
Alpha3 code: IRQ
372
Ireland
Alpha2 code: IE
Alpha3 code: IRL
376
Israel
Alpha2 code: IL
Alpha3 code: ISR
380
Italy
Alpha2 code: IT
Alpha3 code: ITA
384
Ivory coast
Alpha2 code: CI
Alpha3 code: CIV
388
Jamaica
Alpha2 code: JM
Alpha3 code: JAM
392
Japan
Alpha2 code: JP
Alpha3 code: JPN
398
Kazakhstan
Alpha2 code: KZ
Alpha3 code: KAZ
400
Jordan
Alpha2 code: JO
Alpha3 code: JOR
404
Kenya
Alpha2 code: KE
Alpha3 code: KEN
408
Korea (the Democratic People’s Republic of)
Alpha2 code: KP
Alpha3 code: PRK
410
Korea (the Republic of)
Alpha2 code: KR
Alpha3 code: KOR
414
Kuwait
Alpha2 code: KW
Alpha3 code: KWT
417
Kyrgyzstan
Alpha2 code: KG
Alpha3 code: KGZ
418
Lao People’s Democratic Republic (the)
Alpha2 code: LA
Alpha3 code: LAO
422
Lebanon
Alpha2 code: LB
Alpha3 code: LBN
426
Lesotho
Alpha2 code: LS
Alpha3 code: LSO
428
Latvia
Alpha2 code: LV
Alpha3 code: LVA
430
Liberia
Alpha2 code: LR
Alpha3 code: LBR
434
Libya
Alpha2 code: LY
Alpha3 code: LBY
438
Liechtenstein
Alpha2 code: LI
Alpha3 code: LIE
440
Lithuania
Alpha2 code: LT
Alpha3 code: LTU
442
Luxembourg
Alpha2 code: LU
Alpha3 code: LUX
446
Macao
Alpha2 code: MO
Alpha3 code: MAC
450
Madagascar
Alpha2 code: MG
Alpha3 code: MDG
454
Malawi
Alpha2 code: MW
Alpha3 code: MWI
458
Malaysia
Alpha2 code: MY
Alpha3 code: MYS
462
Maldives
Alpha2 code: MV
Alpha3 code: MDV
466
Mali
Alpha2 code: ML
Alpha3 code: MLI
470
Malta
Alpha2 code: MT
Alpha3 code: MLT
474
Martinique
Alpha2 code: MQ
Alpha3 code: MTQ
478
Mauritania
Alpha2 code: MR
Alpha3 code: MRT
480
Mauritius
Alpha2 code: MU
Alpha3 code: MUS
484
Mexico
Alpha2 code: MX
Alpha3 code: MEX
492
Monaco
Alpha2 code: MC
Alpha3 code: MCO
496
Mongolia
Alpha2 code: MN
Alpha3 code: MNG
498
Moldova (the Republic of)
Alpha2 code: MD
Alpha3 code: MDA
499
Montenegro
Alpha2 code: ME
Alpha3 code: MNE
500
Montserrat
Alpha2 code: MS
Alpha3 code: MSR
504
Morocco
Alpha2 code: MA
Alpha3 code: MAR
508
Mozambique
Alpha2 code: MZ
Alpha3 code: MOZ
512
Oman
Alpha2 code: OM
Alpha3 code: OMN
516
Namibia
Alpha2 code: NA
Alpha3 code: NAM
520
Nauru
Alpha2 code: NR
Alpha3 code: NRU
524
Nepal
Alpha2 code: NP
Alpha3 code: NPL
528
Netherlands (the)
Alpha2 code: NL
Alpha3 code: NLD
531
Curacao
Alpha2 code: CW
Alpha3 code: CUW
533
Aruba
Alpha2 code: AW
Alpha3 code: ABW
534
Sint Maarten (Dutch part)
Alpha2 code: SX
Alpha3 code: SXM
535
Bonaire, Sint Eustatius and Saba
Alpha2 code: BQ
Alpha3 code: BES
540
New Caledonia
Alpha2 code: NC
Alpha3 code: NCL
548
Vanuatu
Alpha2 code: VU
Alpha3 code: VUT
554
New Zealand
Alpha2 code: NZ
Alpha3 code: NZL
558
Nicaragua
Alpha2 code: NI
Alpha3 code: NIC
562
Niger (the)
Alpha2 code: NE
Alpha3 code: NER
566
Nigeria
Alpha2 code: NG
Alpha3 code: NGA
570
Niue
Alpha2 code: NU
Alpha3 code: NIU
574
Norfolk Island
Alpha2 code: NF
Alpha3 code: NFK
578
Norway
Alpha2 code: NO
Alpha3 code: NOR
580
Northern Mariana Islands (the)
Alpha2 code: MP
Alpha3 code: MNP
581
United States Minor Outlying Islands (the)
Alpha2 code: UM
Alpha3 code: UMI
583
Micronesia (the Federated States of)
Alpha2 code: FM
Alpha3 code: FSM
584
Marshall Islands (the)
Alpha2 code: MH
Alpha3 code: MHL
585
Palau
Alpha2 code: PW
Alpha3 code: PLW
586
Pakistan
Alpha2 code: PK
Alpha3 code: PAK
591
Panama
Alpha2 code: PA
Alpha3 code: PAN
598
Papua New Guinea
Alpha2 code: PG
Alpha3 code: PNG
600
Paraguay
Alpha2 code: PY
Alpha3 code: PRY
604
Peru
Alpha2 code: PE
Alpha3 code: PER
608
Philippines (the)
Alpha2 code: PH
Alpha3 code: PHL
612
Pitcairn
Alpha2 code: PN
Alpha3 code: PCN
616
Poland
Alpha2 code: PL
Alpha3 code: POL
620
Portugal
Alpha2 code: PT
Alpha3 code: PRT
624
Guinea-Bissau
Alpha2 code: GW
Alpha3 code: GNB
626
Timor-Leste
Alpha2 code: TL
Alpha3 code: TLS
630
Puerto Rico
Alpha2 code: PR
Alpha3 code: PRI
634
Qatar
Alpha2 code: QA
Alpha3 code: QAT
638
Réunion
Alpha2 code: RE
Alpha3 code: REU
642
Romania
Alpha2 code: RO
Alpha3 code: ROU
643
Russian Federation (the)
Alpha2 code: RU
Alpha3 code: RUS
646
Rwanda
Alpha2 code: RW
Alpha3 code: RWA
652
Saint Barthélemy
Alpha2 code: BL
Alpha3 code: BLM
654
Saint Helena, Ascension and Tristan da Cunha
Alpha2 code: SH
Alpha3 code: SHN
659
Saint Kitts and Nevis
Alpha2 code: KN
Alpha3 code: KNA
660
Anguilla
Alpha2 code: AI
Alpha3 code: AIA
662
Saint Lucia
Alpha2 code: LC
Alpha3 code: LCA
663
Saint Martin (French part)
Alpha2 code: MF
Alpha3 code: MAF
666
Saint Pierre and Miquelon
Alpha2 code: PM
Alpha3 code: SPM
670
Saint Vincent and the Grenadines
Alpha2 code: VC
Alpha3 code: VCT
674
San Marino
Alpha2 code: SM
Alpha3 code: SMR
678
Sao Tome and Principe
Alpha2 code: ST
Alpha3 code: STP
682
Saudi Arabia
Alpha2 code: SA
Alpha3 code: SAU
686
Senegal
Alpha2 code: SN
Alpha3 code: SEN
688
Serbia
Alpha2 code: RS
Alpha3 code: SRB
690
Seychelles
Alpha2 code: SC
Alpha3 code: SYC
694
Sierra Leone
Alpha2 code: SL
Alpha3 code: SLE
702
Singapore
Alpha2 code: SG
Alpha3 code: SGP
703
Slovakia
Alpha2 code: SK
Alpha3 code: SVK
704
Viet Nam
Alpha2 code: VN
Alpha3 code: VNM
705
Slovenia
Alpha2 code: SI
Alpha3 code: SVN
706
Somalia
Alpha2 code: SO
Alpha3 code: SOM
710
South Africa
Alpha2 code: ZA
Alpha3 code: ZAF
716
Zimbabwe
Alpha2 code: ZW
Alpha3 code: ZWE
724
Spain
Alpha2 code: ES
Alpha3 code: ESP
728
South Sudan
Alpha2 code: SS
Alpha3 code: SSD
729
Sudan (the)
Alpha2 code: SD
Alpha3 code: SDN
732
Western Sahara
Alpha2 code: EH
Alpha3 code: ESH
740
Suriname
Alpha2 code: SR
Alpha3 code: SUR
744
Svalbard and Jan Mayen
Alpha2 code: SJ
Alpha3 code: SJM
748
Swaziland
Alpha2 code: SZ
Alpha3 code: SWZ
752
Sweden
Alpha2 code: SE
Alpha3 code: SWE
756
Switzerland
Alpha2 code: CH
Alpha3 code: CHE
760
Syrian Arab Republic (the)
Alpha2 code: SY
Alpha3 code: SYR
762
Tajikistan
Alpha2 code: TJ
Alpha3 code: TJK
764
Thailand
Alpha2 code: TH
Alpha3 code: THA
768
Togo
Alpha2 code: TG
Alpha3 code: TGO
772
Tokelau
Alpha2 code: TK
Alpha3 code: TKL
776
Tonga
Alpha2 code: TO
Alpha3 code: TON
780
Trinidad and Tobago
Alpha2 code: TT
Alpha3 code: TTO
784
United Arab Emirates (the)
Alpha2 code: AE
Alpha3 code: ARE
788
Tunisia
Alpha2 code: TN
Alpha3 code: TUN
792
Turkey
Alpha2 code: TR
Alpha3 code: TUR
795
Turkmenistan
Alpha2 code: TM
Alpha3 code: TKM
796
Turks and Caicos Islands (the)
Alpha2 code: TC
Alpha3 code: TCA
798
Tuvalu
Alpha2 code: TV
Alpha3 code: TUV
800
Uganda
Alpha2 code: UG
Alpha3 code: UGA
804
Ukraine
Alpha2 code: UA
Alpha3 code: UKR
807
Macedonia (the former Yugoslav Republic of)
Alpha2 code: MK
Alpha3 code: MKD
818
Egypt
Alpha2 code: EG
Alpha3 code: EGY
826
United Kingdom (the)
Alpha2 code: GB
Alpha3 code: GBR
831
Guernsey
Alpha2 code: GG
Alpha3 code: GGY
832
Jersey
Alpha2 code: JE
Alpha3 code: JEY
833
Isle of Man
Alpha2 code: IM
Alpha3 code: IMN
834
Tanzania, United Republic of
Alpha2 code: TZ
Alpha3 code: TZA
840
United States (the)
Alpha2 code: US
Alpha3 code: USA
850
Virgin Islands (U.S.)
Alpha2 code: VI
Alpha3 code: VIR
854
Burkina Faso
Alpha2 code: BF
Alpha3 code: BFA
858
Uruguay
Alpha2 code: UY
Alpha3 code: URY
860
Uzbekistan
Alpha2 code: UZ
Alpha3 code: UZB
862
Venezuela, Bolivarian Republic of
Alpha2 code: VE
Alpha3 code: VEN
876
Wallis and Futuna
Alpha2 code: WF
Alpha3 code: WLF
882
Samoa
Alpha2 code: WS
Alpha3 code: WSM
887
Yemen
Alpha2 code: YE
Alpha3 code: YEM
894
Zambia  
Alpha2 code: ZM
Alpha3 code: ZMB

Transfer purpose codes

ACCT : AccountManagement
ADCS : AdvisoryDonationCopyrightServices
ADMG : AdministrativeManagement
ADVA : AdvancePayment
AEMP : ActiveEmploymentPolicy
AGRT : AgriculturalTransfer
AIRB : Air
ALLW : Allowance
ALMY : AlimonyPayment
AMEX : Amex
ANNI : Annuity
ANTS : AnesthesiaServices
AREN : AccountsReceivablesEntry
AUCO : AuthenticatedCollections
B112 : TrailerFeePayment
BBSC : BabyBonusScheme
BCDM : BearerChequeDomestic
BCFG : BearerChequeForeign
BECH : ChildBenefit
BENE : UnemploymentDisabilityBenefit
BEXP : BusinessExpenses
BFWD : BondForward
BKDF : BankLoanDelayedDrawFunding
BKFE : BankLoanFees
BKFM : BankLoanFundingMemo
BKIP : BankLoanAccruedInterestPayment
BKPP : BankLoanPrincipalPaydown
BLDM : BuildingMaintenance
BNET : BondForwardNetting
BOCE : BackOfficeConversionEntry
BOND : Bonds
BONU : BonusPayment.
BR12 : TrailerFeeRebate
BUSB : Bus
CABD : CorporateActions-Bonds
CAEQ : CorporateActions-Equities
CAFI : CustodianManagementFeeInhouse
CASH : CashManagementTransfer
CBCR : CreditCard
CBFF : CapitalBuilding
CBFR : CapitalBuildingRetirement
CBLK : CardBulkClearing
CBTV : CableTVBill
CCHD : CashCompensationHelplessnessDisability
CCIR : CrossCurrencyIRS
CCPC : CCPClearedInitialMargin
CCPM : CCPClearedVariationMargin
CCRD : CreditCardPayment
CCSM : CCPClearedInitialMarginSegregatedCash
CDBL : CreditCardBill
CDCB : CardPaymentWithCashBack
CDCD : CashDisbursementCashSettlement
CDCS : CashDisbursementWithSurcharging
CDDP : CardDeferredPayment
CDEP : CreditDefaultEventPayment
CDOC : OriginalCredit
CDQC : QuasiCash
CFDI : CapitalFallingDueInhouse
CFEE : CancellationFee
CGDD : CardGeneratedDirectDebit
CHAR : CharityPayment
CLPR : CarLoanPrincipalRepayment
CMDT : CommodityTransfer
COLL : CollectionPayment
COMC : CommercialPayment
COMM : Commission
COMP : CompensationPayment
COMT : ConsumerThirdPartyConsolidatedPayment
CORT : TradeSettlementPayment
COST : Costs
CPEN : CashPenalties
CPKC : CarparkCharges
CPYR : Copyright
CRDS : CreditDefaultSwap
CRPR : CrossProduct
CRSP : CreditSupport
CRTL : CreditLine
CSDB : CashDisbursementCashManagement
CSLP : CompanySocialLoanPaymentToBank
CVCF : ConvalescentCareFacility
DBCR : DebitCard
DBTC : DebitCollectionPayment
DCRD : DebitCardPayment
DEBT : ChargesBorneByDebtor
DEPD : DependentSupportPayment
DEPT : Deposit
DERI : Derivatives
DICL : Diners
DIVD : Dividend
DMEQ : DurableMedicaleEquipment
DNTS : DentalServices
DSMT : PrintedOrderDisbursement
DVPM : DeliverAgainstPayment
ECPG : GuaranteedEPayment
ECPR : EPaymentReturn
ECPU : NonGuaranteedEPayment
EDUC : Education
EFTC : LowValueCredit
EFTD : LowValueDebit
ELEC : ElectricityBill
ENRG : Energies
EPAY : Epayment
EQPT : EquityOption
EQTS : Equities
EQUS : EquitySwap
ESTX : EstateTax
ETUP : EPurseTopUp
EXPT : ExoticOption
EXTD : ExchangeTradedDerivatives
FACT : FactorUpdateRelatedPayment
FAND : FinancialAidInCaseOfNaturalDisaster
FCOL : FeeCollection
FCPM : LatePaymentOfFeesAndCharges
FEES : PaymentOfFees
FERB : Ferry
FIXI : FixedIncome
FLCR : FleetCard
FNET : FuturesNettingPayment
FORW : ForwardForeignExchange
FREX : ForeignExchange
FUTR : Futures
FWBC : ForwardBrokerOwnedCashCollateral
FWCC : ForwardClientOwnedCashCollateral
FWLV : ForeignWorkerLevy
FWSB : ForwardBrokerOwnedCashCollateralSegregated
FWSC : ForwardClientOwnedSegregatedCashCollateral
FXNT : ForeignExchangeRelatedNetting
GAFA : GovernmentFamilyAllowance
GAHO : GovernmentHousingAllowance
GAMB : GamblingOrWageringPayment
GASB : GasBill
GDDS : PurchaseSaleOfGoods
GDSV : PurchaseSaleOfGoodsAndServices
GFRP : GuaranteeFundRightsPayment
GIFT : Gift
GOVI : GovernmentInsurance
GOVT : GovernmentPayment
GSCB : PurchaseSaleOfGoodsAndServicesWithCashBack
GSTX : GoodsServicesTax
GVEA : AustrianGovernmentEmployeesCategoryA
GVEB : AustrianGovernmentEmployeesCategoryB
GVEC : AustrianGovernmentEmployeesCategoryC
GVED : AustrianGovernmentEmployeesCategoryD
GWLT : GovermentWarLegislationTransfer
HEDG : Hedging
HLRP : PropertyLoanRepayment
HLST : PropertyLoanSettlement
HLTC : HomeHealthCare
HLTI : HealthInsurance
HREC : HousingRelatedContribution
HSPC : HospitalCare
HSTX : HousingTax
ICCP : IrrevocableCreditCardPayment
ICRF : IntermediateCareFacility
IDCP : IrrevocableDebitCardPayment
IHRP : InstalmentHirePurchaseAgreement
INPC : InsurancePremiumCar
INPR : InsurancePremiumRefund
INSC : PaymentOfInsuranceClaim
INSM : Installment
INSU : InsurancePremium
INTC : IntraCompanyPayment
INTE : Interest
INTP : IntraPartyPayment
INTX : IncomeTax
INVS : InvestmentAndSecurities
IPAY : InstantPayments
IPCA : InstantPaymentsCancellation
IPDO : InstantPaymentsForDonations
IPEA : InstantPaymentsInECommerceWithoutAddressData
IPEC : InstantPaymentsInECommerceWithAddressData
IPEW : InstantPaymentsInECommerce
IPPS : InstantPaymentsAtPOS
IPRT : InstantPaymentsReturn
IPU2 : InstantPaymentsUnattendedVendingMachineWith2FA
IPUW : InstantPaymentsUnattendedVendingMachineWithout2FA
IVPT : InvoicePayment
LBIN : LendingBuyInNetting
LBRI : LaborInsurance
LCOL : LendingCashCollateralFreeMovement
LFEE : LendingFees
LICF : LicenseFee
LIFI : LifeInsurance
LIMA : LiquidityManagement
LMEQ : LendingEquityMarkedToMarketCashCollateral
LMFI : LendingFixedIncomeMarkedToMarketCashCollateral
LMRK : LendingUnspecifiedTypeOfMarkedToMarketCashCollateral
LOAN : Loan
LOAR : LoanRepayment
LOTT : LotteryPayment
LREB : LendingRebatePayments
LREV : LendingRevenuePayments
LSFL : LendingClaimPayment
LTCF : LongTermCareFacility
MAFC : MedicalAidFundContribution
MARF : MedicalAidRefund
MARG : DailyMarginOnListedDerivatives
MBSB : MBSBrokerOwnedCashCollateral
MBSC : MBSClientOwnedCashCollateral
MCDM : MultiCurrenyChequeDomestic
MCFG : MultiCurrenyChequeForeign
MDCS : MedicalServices
MGCC : FuturesInitialMargin
MGSC : FuturesInitialMarginClientOwnedSegregatedCashCollateral
MOMA : MoneyMarket
MP2B : MobileP2BPayment
MP2P : MobileP2PPayment
MSVC : MultipleServiceTypes
MTUP : MobileTopUp
NETT : Netting
NITX : NetIncomeTax
NOWS : NotOtherwiseSpecified
NWCH : NetworkCharge
NWCM : NetworkCommunication
OCCC : ClientOwnedOCCPledgedCollateral
OCDM : OrderChequeDomestic
OCFG : OrderChequeForeign
OFEE : OpeningFee
OPBC : OTCOptionBrokerOwnedCashCollateral
OPCC : OTCOptionClientOwnedCashCollateral
OPSB : OTCOptionBrokerOwnedSegregatedCashCollateral
OPSC : OTCOptionClientOwnedCashSegregatedCashCollateral
OPTN : FXOption
OTCD : OTCDerivatives
OTHR : Other
OTLC : OtherTelecomRelatedBill
PADD : PreauthorizedDebit
PAYR : Payroll
PCOM : PropertyCompletionPayment
PDEP : PropertyDeposit
PEFC : PensionFundContribution
PENO : PaymentBasedOnEnforcementOrder
PENS : PensionPayment
PHON : TelephoneBill
PLDS : PropertyLoanDisbursement
PLRF : PropertyLoanRefinancing
POPE : PointOfPurchaseEntry
PPTI : PropertyInsurance
PRCP : PricePayment
PRME : PreciousMetal
PTSP : PaymentTerms
PTXP : PropertyTax
RAPI : RapidPaymentInstruction
RCKE : RepresentedCheckEntry
RCPT : ReceiptPayment
RDTX : RoadTax
REBT : Rebate
REFU : Refund
RELG : RentalLeaseGeneral
RENT : Rent
REOD : AccountOverdraftRepayment
REPO : RepurchaseAgreement
RETL : RetailPayment
RHBS : RehabilitationSupport
RIMB : ReimbursementOfAPreviousErroneousTransaction
RINP : RecurringInstallmentPayment
RLWY : Railway
ROYA : Royalties
RPBC : BilateralRepoBrokerOwnedCollateral
RPCC : RepoClientOwnedCollateral
RPNT : BilateralRepoInternetNetting
RPSB : BilateralRepoBrokerOwnedSegregatedCashCollateral
RPSC : BilateralRepoClientOwnedSegregatedCashCollateral
RRBN : RoundRobin
RRCT : ReimbursementReceivedCreditTransfer
RRTP : RelatedRequestToPay
RVPM : ReceiveAgainstPayment
RVPO : ReverseRepurchaseAgreement
SALA : SalaryPayment
SASW : ATM
SAVG : Savings
SBSC : SecuritiesBuySellSellBuyBack
SCIE : SingleCurrencyIRSExotic
SCIR : SingleCurrencyIRS
SCRP : SecuritiesCrossProducts
SCVE : PurchaseSaleOfServices
SECU : Securities
SEPI : SecuritiesPurchaseInhouse
SERV : ServiceCharges
SHBC : BrokerOwnedCollateralShortSale
SHCC : ClientOwnedCollateralShortSale
SHSL : ShortSell
SLEB : SecuritiesLendingAndBorrowing
SLOA : SecuredLoan
SLPI : PaymentSlipInstruction
SPLT : SplitPayments
SPSP : SalaryPensionSumPayment
SSBE : SocialSecurityBenefit
STDY : Study
SUBS : Subscription
SUPP : SupplierPayment
SWBC : SwapBrokerOwnedCashCollateral
SWCC : SwapClientOwnedCashCollateral
SWFP : SwapContractFinalPayment
SWPP : SwapContractPartialPayment
SWPT : Swaption
SWRS : SwapContractResetPayment
SWSB : SwapsBrokerOwnedSegregatedCashCollateral
SWSC : SwapsClientOwnedSegregatedCashCollateral
SWUF : SwapContractUpfrontPayment
TAXR : TaxRefund
TAXS : TaxPayment
TBAN : TBAPairOffNetting
TBAS : ToBeAnnounced
TBBC : TBABrokerOwnedCashCollateral
TBCC : TBAClientOwnedCashCollateral
TBIL : TelecommunicationsBill
TCSC : TownCouncilServiceCharges
TELI : TelephoneInitiatedTransaction
TLRF : NonUSMutualFundTrailerFeePayment
TLRR : NonUSMutualFundTrailerFeeRebatePayment
TMPG : TMPGClaimPayment
TPRI : TriPartyRepoInterest
TPRP : TriPartyRepoNetting
TRAD : Commercial
TRCP : TreasuryCrossProduct
TREA : TreasuryPayment
TRFD : TrustFund
TRNC : TruncatedPaymentSlip
TRPT : RoadPricing
TRVC : TravellerCheque
UBIL : Utilities
UNIT : UnitTrustPurchase
VATX : ValueAddedTaxPayment
VIEW : VisionCare
WEBI : InternetInitiatedTransaction
WHLD : WithHolding
WTER : WaterBill

SDD purpose codes

The categoryPurposeCode(1) and purposeCode(2) used in the SDDTransaction.

SALA(1) (2)Salary Payment
TREA(1) (2)Treasury Payment
ADVA(2)Advance Payment
AGRT(2)Agricultural Transfer
ALMY(2)Alimony Payment
BECH(2)Child Benefit
BENE(2)Unemployment Disability Benefit
BONU(2)Bonus Payment
CASH(1) (2)Cash Management Transfer
CBFF(2)Capital Building
CHAR(2)Charity Payment
COLL(2)Collection Payment
CMDT(2)Commodity Transfer
COMC(2)Commercial Payment
COMM(2)Commission
COST(2)Costs
CPYR(2)Copyright
DIVI(1) (2)Dividend
FREX(2)Foreign Exchange
GDDS(2)Purchase Sale Of Goods
GOVT(1) (2)Gouvernment Payment
IHRP(2)Instalment Hire Purchase Agreement
INTC(1) (2)Intra Company Payment
INSU(2)Insurance Premium
INTE(1) (2)Interest
LIFC(2)Licence Fee
LOAN(1) (2)Loan
LOAR(2)Loan Repayment
NETT(2)Netting
PAYR(2)Payment Roll
PENS(1) (2)Pension
REFU (2)Refund
RENT(2)Rent
ROYA(2)Royalties
SCVE(2)Purchase Sale Of Services
SECU(1) (2)Securities
SSBE(1) (2)Social Security Benefit
SUBS(2)Subscription
TAXS(1) (2)Tax Payment
COMT(2)Consumer Third Party Consolidated Payment
DBTC(2)Debit Collection Payment
SUPP(1) (2)Supplier Payment
HEDG(1) (2)Hedging
MSVC(2)Multiple Service Types
NOWS(2)Not Otherwise Specified
CARD(2)Card Payment
CDBL(2)Credit Card Bill
FERB(2)Ferry
AIRB(2)Air
BUSB(2)Bus
RLWY(2)Railway
CVCF(2)Convalescent Care Facility
DNTS(2)Dental Services
ANTS(2)Anesthesia Services
HLTC(2)Home Health Care
HSPC(2)Hospital Care
ICRF(2)Intermediate Care Facility
LTCF(2)Long Term Care Facility
MDCS(2)Medical Services
VIEW(2)Vision Care
DMEQ(2)Durable Medicale Equipment
CBTV(2)Cable TV Bill
ELEC(2)Electricity Bill
GASB(2)Gas Bill
PHON(2)Telephone Bill
OTLC(2)Other Telecom Related Bill
WTER(2)Water Bill
STDY(2)Study
PRCP(2)Price Payment
INSM(2)Installment
RINP(2)Recurring Installment Payment
OFEE(2)Opening Fee
CFEE(2)Cancellation Fee
GOVI(2)Government Insurance
INPC(2)Insurance Premium Car
LBRI(2)Labor Insurance
LIFI(2)Life Insurance
PPTI(2)Property Insurance
HLTI(2)Health Insurance
CLPR(2)Car Loan Principal Repayment
ESTX(2)Estate Tax
HLRP(2)Housing Loan Repayment
CSLP(2)Company Social Loan Payment To Bank
HSTX(2)Housing Tax
INTX(2)Income Tax
NITX(2)Net Income Tax
NWCH(2)Network Charge
NWCM(2)Network Communication
BEXP(2)Business Expenses
TRFD(2)Trust Fund
RCPT(2)Receipt
PTSP(2)Payment Terms
OTHR(2)Other
WHLD(1)(2)With Holding
CORT(1)Trade Settlement Payment
VATX(1)Value Added Tax Payment
TRAD(1)Trade

Error codes

ErrorDetails ATTRIBUTES
errorCodeCode indicating the type of problem identified.
errorComponentCode indicating the 3-D Secure component that identified the error.
errorDescriptionText describing the problem identified.
errorDetailAdditional detail regarding the problem identified.
ErrorCode possible values
101MESSAGE_RECEIVED_INVALID
102MESSAGE_VERSION_NUMBER_NOT_SUPPORTED
103SENT_MESSAGES_LIMIT_EXCEEDED
201REQUIRED_ELEMENT_MISSING
202CRITICAL_MESSAGE_EXTENSION_NOT_RECOGNIZED
203FORMAT_ON_ONE_OR_MORE_ELEMENTS_INVALID_ACCORDING_SPECS
204DUPLICATE_DATA_ELEMENT
301TRANSACTION_ID_NOT_RECOGNIZED
302DATA_DECRYPTION_FAILURE
303ACCESS_DENIED_INVALID_ENDPOINT
304ISO_CODE_NOT_VALID
305TRANSACTION_DATA_NOT_VALID
306MCC_NOT_VALID_FOR_PAYMENT_SYSTEM
307SERIAL_NUMBER_NOT_VALID
402TRANSACTION_TIMED_OUT
403TRANSIENT_SYSTEM_FAILURE
404PERMANENT_SYSTEM_FAILURE
405SYSTEM_CONNECTION_FAILURE
911DATA_FIELDS_RELEVANCE_CHECK_FAILURE
912DUPLICATED_TRANSACTION_ID
ErrorComponent possible values
« C »THREE_DS_SDK
« S »THREE_DS_SERVER
« D »DIRECTORY_SERVER
« A »ACCESS_CONTROL_SERVER

Test values

Test IBAN values

Find below the list of HTTP return codes:

DE75512108001245126199SOGEDEFFXXX
FR7630004000031234567890143BNPAFRPPXXX
AT483200000012345864RLNWATWWXXX
BE71096123456769GKCCBEBB
AL35202111090000000001234567SGSBALTX
EE471000001020145685EEUHEE2X
ES7921000813610123456789CAIXESBBXXX

Test cards Values

This page provides a list of test card PANs you can use to validate your CentralPay integration. Each PAN below triggers a predictable scenario (bank refusal, 3DS authentication outcome, or card attributes such as EEA / region / product type).

Note: 3DS outcome values (transStatus such as Y, C, D, I, N…) are described in the dedicated 3DS 2.2 BRW documentation.

Card details to use: for all test PANs on this page, the expiry date and CVC values are free. The only requirement is that the expiry date must be later than today’s date. The CVC must be 3 digits (for example: 123).

Legend: ✅ Success · ❌ Bank refusal · ⛔ 3DS refused · 🛡️ 3DS · 🔒 3DS Challenge · 🔁 3DS Decoupled · ℹ️ 3DS Info · 🧭 Attributes

Quick test cards (most common scenarios)

PANScenarioWhat you should observe
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)Authorization succeeds with a successful 3DS authentication.
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)Challenge flow expected (you must complete the challenge step to proceed).
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowDecoupled authentication scenario (handling depends on your 3DS implementation).
4556 1041 6038 2032⛔🛡️ 3DS authentication refused (transStatus = N)The API responds with HTTP 200, but the 3DS authentication is refused (transStatus = N) and the payment is declined.
4000 0000 0000 0077❌ Bank refusal – Insufficient funds (51)Authorization is refused with bank return code 51 (Insufficient funds).
4000 0000 0000 0085❌ Bank refusal – Do not honor (5)Authorization is refused with bank return code 5 (Do not honor / refused).

Bank refusal PANs: these PANs are refused at the bank authorization stage regardless of the authentication flow.

Visa Card numbers

1) Bank refusals (regardless of the authentication flow)

PANScenarioDescription
4000 0000 0000 0051❌ Card lost (41)This PAN simulates a bank refusal with return code 41 (Card lost), regardless of the authentication flow.
4000 0000 0000 0069❌ Fraud suspicion (59)This PAN simulates a bank refusal with return code 59 (Fraud suspicion), regardless of the authentication flow.
4000 0000 0000 0077❌ Insufficient funds (51)This PAN simulates a bank refusal with return code 51 (Insufficient funds), regardless of the authentication flow.
4000 0000 0000 0085❌ Do not honor / refused (5)This PAN simulates a bank refusal with return code 5 (Do not honor / refused), regardless of the authentication flow.

2) 3DS scenarios

These PANs are designed to reproduce specific 3DS outcomes (transStatus). If transStatus = C, a challenge flow is expected and must be completed. If transStatus = N, the 3DS authentication is refused and the payment is declined.

PANScenarioDescription
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
4024 0071 7987 2394🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
4234 6319 8242 8908ℹ️🛡️ 3DS information only (transStatus = I)This PAN simulates a 3DS authentication with transStatus = I (Information only), to validate how you handle an informational 3DS outcome.
4234 6319 8242 8916🔁🛡️ 3DS decoupled (transStatus = D) – application flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using an application flow.
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using a browser flow.
4556 1041 6038 2032⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

3) Card attributes simulation (EEA / region / productType / cardType)

These PANs are designed to simulate card metadata (EEA / region / productType / cardType). Use them to validate your business rules, reporting, segmentation, or routing logic based on card attributes.

PANAttributes returnedDescription
4032 0389 8296 2700🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=DEBITThis PAN simulates an EEA consumer debit card in Europe.
4032 0343 8883 4767🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=CREDITThis PAN simulates an EEA consumer credit card in Europe.
4020 0280 0191 2012🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates an EEA consumer card in Europe with cardType=UNKNOWN.
4032 0337 9569 2248🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
4032 0368 1354 0364🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=CREDITThis PAN simulates an EEA corporate credit card in Europe.
4032 0387 5662 0096🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates an EEA corporate card in Europe with cardType=UNKNOWN.
4032 0358 5604 7592🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=DEBITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and DEBIT.
4032 0302 9068 3219🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=CREDITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and CREDIT.
4032 0377 5134 3001🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates an EEA card in Europe with productType=UNKNOWN and cardType=UNKNOWN.
4032 0307 5488 6225🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in USA/CANADA.
4032 0310 2547 6341🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in USA/CANADA.
4032 0341 4311 3978🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates a non-EEA consumer card in USA/CANADA with cardType=UNKNOWN.
4032 0309 5816 7398🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in USA/CANADA.
4032 0375 4480 7536🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=CREDITThis PAN simulates a non-EEA corporate credit card in USA/CANADA.
4032 0366 9148 7225🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates a non-EEA corporate card in USA/CANADA with cardType=UNKNOWN.
4032 0325 8917 3860🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=DEBITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and DEBIT.
4032 0388 0897 9557🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=CREDITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and CREDIT.
4032 0374 2147 1240🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and cardType=UNKNOWN.

Mastercard Card numbers

1) 3DS scenarios

PANScenarioDescription
5333 2591 5564 3223✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
5306 8899 4283 3340🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
5187 4346 4359 3002🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
5328 7203 8458 2224⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

2) Card attributes simulation (EEA / region / productType / cardType)

PANAttributes returnedDescription
5517 4500 0000 0168🧭 EEA=false ; region=US ; productType=CONSUMER ; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in the US.
5223 8599 0000 0174🧭 EEA=false ; region=US ; productType=CORPORATE ; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in the US.
5325 0900 0000 0115🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5325 0900 0000 0008🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5486 7467 7300 0005🧭 EEA=false ; region=EUROPE ; productType=CONSUMER ; cardType=DEBIT; Country=RUSThis PAN simulates a non-EEA consumer debit card with Country=RUS.
5588 1000 0000 0007🧭 EEA=false ; region=CEMEA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in CEMEA.
5122 9400 0000 0009🧭 EEA=false ; region=LATIN_AMERICA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in LATIN_AMERICA.

Amex Card numbers

1) 3DS scenarios

PANScenarioDescription
3415 0209 8634 895✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
3486 3826 7931 507🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
3456 9539 9207 589⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

2) Card attributes simulation (EEA / region / productType)

PANAttributes returnedDescription
3415 0209 8634 895🧭 EEA=false ; region=EUROPE ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in Europe.
3486 3826 7931 507🧭 EEA=false ; region=EUROPE ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in Europe.
3718 4294 2351 004🧭 EEA=false ; region=EUROPE ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in Europe with productType=UNKNOWN.
3712 5311 3391 201🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in ASIA_PACIFIC.
3423 1631 7472 410🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in ASIA_PACIFIC.
3710 9829 7279 338🧭 EEA=false ; region=ASIA_PACIFIC ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in ASIA_PACIFIC with productType=UNKNOWN.

CB Card numbers

These PANs allow you to test how the card is classified under the CB scheme (CB vs co-badged CB_VISA / CB_MASTERCARD) in your integration and reporting.

PANScenarioDescription
4020 0235 6597 5380✅🛡️ 3DS success (transStatus = Y) – scheme: CBThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB scheme.
4020 0254 4041 8403✅🛡️ 3DS success (transStatus = Y) – scheme: CB_VISAThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB_VISA scheme.
5232 1035 2372 2651✅🛡️ 3DS success (transStatus = Y) – scheme: CB_MASTERCARDThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB_MASTERCARD scheme.

Troubleshooting (what to check)

If you don’t get the expected outcome, start by checking:

  • Bank refusals: verify the returned bank refusal code/message in your transaction response or webhook (e.g., 51, 41, 59, 5).
  • 3DS scenarios: verify the returned transStatus. If C, a challenge flow must be completed; if N, the 3DS authentication is refused and the payment is declined; if D, the expected handling depends on your decoupled implementation.
  • Card attributes: verify the returned card metadata (EEA / region / productType / cardType) in the payment method or transaction details.

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 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 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 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 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 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 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 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

REFUND_CLEARED
When a refund is cleared

REFUND_SETTLED
When a refund is settled

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

REFUND_CLEARED
When a refund is cleared

REFUND_SETTLED
When a refund is settled

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 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 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 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 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_CLEARED
When a transaction is sent to the clearing and will be debited
{
  "eventId": "ecd3fead-ccb1-44e4-b41b-5806b78dc5a5",
  "type": "TRANSACTION_CLEARED",
  "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_SETTLED
When a transaction has been sent to the clearing and has been credit to the merchant
{
  "eventId": "ecd3fead-ccb1-44e4-b41b-5806b78dc5a5",
  "type": "TRANSACTION_SETTLED",
  "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 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_CLEARED
When a transaction is sent to the clearing and will be debited
{
  "eventId": "ecd3fead-ccb1-44e4-b41b-5806b78dc5a5",
  "type": "TRANSACTION_CLEARED",
  "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_SETTLED
When a transaction has been sent to the clearing and has been credit to the merchant
{
  "eventId": "ecd3fead-ccb1-44e4-b41b-5806b78dc5a5",
  "type": "TRANSACTION_SETTLED",
  "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 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 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

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

Codes

Articles

  • HTTP Codes
  • Card authorization - Bank return codes
  • Card Disputes - Bank Return codes
  • Currency codes
  • SDD return codes
  • Country codes
  • Transfer purpose codes
  • SDD purpose codes
  • Error codes

HTTP Codes

Find below the list of HTTP return codes:

200OK
Note: The request was executed correctly
400BAD REQUEST
Note: Wrong parameter or rule
401UNAUTHORIZED
Note: Login / password are missing for HTTP authentication
402PAYMENT_REQUIRED
Note:  Authorization denied*
403FORBIDDEN
Note: Wrong authentication
404NOT FOUND
Note: Incorrect URL
500INTERNAL SERVER ERROR
Note: Server error

(*) Only possible for the creation of a transaction

Card authorization - Bank return codes

Issuer response codes returned to CentralPay after a card authorization request.

These values generally correspond to the ISO 8583 “Response code” (DE39) returned by card networks/issuers. Depending on the scheme, country, and routing, you may also receive network-specific or gateway-specific variants (for example alphanumeric or 3-digit codes).

Important: the same code can cover multiple issuer-side reasons. Unless explicitly stated, CentralPay passes these codes as received. For troubleshooting, combine the response code with your transaction context (amount, currency, 3DS result, merchant category, card brand, retries).

Most common response codes

CodeDescriptionRecommended action
00ApprovedProceed with capture / fulfillment.
02Contact card issuerAsk customer to contact their bank; retry only if customer confirms.
03Invalid acceptorCheck merchant/terminal configuration (MID/TID, acquirer routing).
04Pick up / retain cardDo not retry; follow your in-store procedure (if applicable).
05Do not honorGeneric decline: do not “loop” retries; ask customer to contact issuer or use another payment method.
07Honor with IDIf card-present: request ID verification; otherwise ask customer to contact issuer.
08Time-outRetry once after a short delay; if repeated, check connectivity/acquirer status.
10Unable to reverseEscalate to support with trace/reference; avoid repeated reversals.
11Partial approvalOnly relevant if your flow supports partial approvals (often prepaid); otherwise request another method.
12Invalid transactionCheck request consistency (type, lifecycle, capture/void rules); if persistent, escalate with logs.
13Invalid amountValidate amount format/currency decimals; check min/max constraints.
14Invalid card numberCustomer should re-enter card details; if repeated, use another card.
15Unknown issuerUse another card/payment method; escalate if routing issue suspected.
19Try again laterRetry once later; if repeated, ask customer to contact issuer.
30Format errorCheck field formats (PAN/expiry/CVV, currency, recurring flags); escalate if needed.
33Card expiredCustomer must use another card.
38PIN attempts exceededCardholder must contact issuer / reset PIN; do not retry.
39Transaction not allowedLikely product/merchant restriction; ask customer to contact issuer or use another method.
41Lost cardDo not retry; request another payment method.
43Stolen cardDo not retry; request another payment method.
51Insufficient fundsAsk customer to use another method or wait for funds; avoid repeated immediate retries.
54Expired cardCustomer must use another card.
55Incorrect PINCard-present only: customer must retry carefully or contact issuer after repeated failures.
57Transaction not permitted to cardholderIssuer restriction; ask customer to contact issuer or use another method.
58Transaction prohibited at terminalCheck merchant/terminal capabilities & configuration; may be MCC/terminal restriction.
59Suspected fraudDo not retry “blindly”; ask customer to contact issuer or use a different method; review fraud rules if frequent.
61Exceeds withdrawal/amount limitReduce amount or ask customer to contact issuer.
62Restricted cardIssuer restriction; customer should contact issuer.
65Frequency limit exceededWait and retry later; avoid repeated attempts in short timeframes.
68Response received too lateRetry once; check acquirer/network status if repeated.
75PIN attempts exceededSame as 38: cardholder must contact issuer.
82Invalid CVVCustomer should re-enter CVV; if repeated, use another card.
91Issuer/switch unavailableRetry later; if widespread, treat as incident (issuer/network outage).
94Duplicate requestAvoid immediate retries with same identifiers; ensure idempotency / unique reference.
95Contact acquirerEscalate to support/acquirer with transaction reference.
96System malfunctionRetry later; if repeated, escalate with traces/logs.

All response codes (exhaustive)

The following codes may be returned depending on the network, country, routing, or integration. This section is exhaustive compared to the previous version of this page, and includes both standard and non-standard variants.

CodeDescriptionRecommended action
00Transaction approved or successfully processedProceed with capture / fulfillment.
02Contact card issuerAsk the customer to contact their issuer; retry only if issuer confirms.
03Invalid acceptorCheck merchant/terminal configuration (MID/TID), acquirer routing, and credentials.
04Keep cardDo not retry; follow in-store procedure if applicable; request another payment method.
05Do not honorGeneric decline: avoid retry loops; ask customer to contact issuer or use another method.
06Transaction invalid for terminalCheck terminal capability / transaction type compatibility; verify integration parameters.
07Honor with IDIf card-present: request ID verification; otherwise ask customer to contact issuer.
08Time-OutRetry once after a short delay; if repeated, check network/acquirer connectivity.
09No originalFor reversals/adjustments: ensure you reference an existing original transaction; escalate if needed.
10Unable to reverseDo not repeat reversals blindly; escalate to support with transaction references.
11Partial approvalHandle partial approval if supported (often prepaid); otherwise request another method.
12Invalid transactionCheck transaction type/lifecycle (auth/capture/void/refund), parameters; escalate with logs if persistent.
13Invalid amountValidate amount format, currency decimals, and min/max constraints; retry after correction.
14Invalid cardholder numberCustomer should re-enter card details; if repeated, use another card.
15Unknown card issuerTry another card/payment method; if widespread, suspect routing/config issue and escalate.
17Invalid capture date (terminal business date)Check terminal business date / batch settings; retry after correction if applicable.
19Repeat transaction laterRetry once later; avoid multiple attempts in a short window; ask customer to contact issuer if repeated.
20No From AccountNot typical for purchase flows; verify transaction type and account fields; escalate if unexpected.
21No To AccountNot typical for purchase flows; verify transaction type and account fields; escalate if unexpected.
22Account not verifiedAsk customer to contact issuer; consider another payment method.
23Account not savedRetry later if applicable; otherwise use another method; escalate if recurring.
24No Credit AccountAsk customer to contact issuer; use another method.
25Unable to locate record in fileFor adjustments/reversals: verify original reference; escalate with trace/reference.
26Record duplicatedCheck idempotency and uniqueness of references; do not retry with same identifiers.
27‘Edit’ error in file update fieldCheck field formats and constraints; escalate with payload/logs.
28File access deniedConfiguration/permission issue: escalate to support/acquirer with context.
29File update not possibleEscalate with trace/reference; avoid repeating the same update operation.
30Format errorCheck request formatting (amount/currency, PAN/expiry, flags, message structure); escalate with logs.
31Identifier of acquiring organization unknownCheck acquirer routing and merchant configuration; escalate to support/acquirer.
32Transaction partially completedCheck final status via retrieval; avoid blind retry; escalate if inconsistent.
33Card validity date exceededCustomer must use another card.
34Implausible card dataCustomer should re-enter details; verify card data collection; use another card if repeated.
38Number of PIN attempts exceededDo not retry; customer must contact issuer / reset PIN.
39Transaction not allowedCheck transaction type and merchant capability; ask customer to contact issuer or use another method.
41Lost cardDo not retry; request another payment method.
42Special PickupDo not retry; request another method; in-store: follow procedure if applicable.
43Stolen cardDo not retry; request another payment method.
44Stolen cardDo not retry; request another payment method.
51Insufficient funds or overdraftAsk customer to use another method or wait for funds; avoid repeated immediate retries.
54Card expiredCustomer must use another card.
55Incorrect PINCard-present: retry carefully; if repeated, customer contacts issuer.
56Card not on fileVerify card details; customer should contact issuer or use another card.
57Transaction not authorized to this cardholderIssuer restriction; ask customer to contact issuer or use another method.
58Transaction prohibited at terminalCheck merchant/terminal capabilities and MCC/terminal restrictions; adjust configuration.
59Suspected fraudAvoid retry loops; customer contacts issuer or uses another method; review risk rules if frequent.
60The card acceptor must contact the buyerAsk customer to contact issuer / confirm details; avoid repeated attempts.
61Withdrawal amount over limitReduce amount or ask customer to contact issuer.
62Card use restrictedCustomer contacts issuer; use another method.
63MAC Key ErrorCryptographic/config issue: escalate to support/acquirer with trace and timestamps.
65Frequency limit exceededWait and retry later; avoid multiple attempts in short timeframe.
66Acquirer limit reachedEscalate to acquirer/support; retry only after confirmation.
67Card withheldDo not retry; request another method; in-store: follow procedure if applicable.
68Response not received or received too lateRetry once; if repeated, check acquirer/network status and escalate.
75Number of PIN attempts exceededSame as 38: do not retry; customer must contact issuer.
76Invalid AccountAsk customer to contact issuer; use another card/method.
77Issuer not participating in serviceUse another card or method; escalate if routing/regional issue suspected.
78Function not availableRemove/disable unsupported feature; verify transaction type and integration flags.
79Key validation errorCryptographic/config issue: escalate to support/acquirer with trace.
80Approved for purchase amount onlyIf you requested cash-back/extra: retry without it; otherwise proceed as approved.
81Unable to verify PINCard-present: retry; if repeated, customer contacts issuer or use another method.
82Invalid CVVRe-enter CVV; if repeated, use another card.
83Not refusedTreat as non-decline / ambiguous: verify final status via retrieval; escalate if inconsistent.
84Invalid transaction lifecycleCheck auth/capture/void/refund ordering and timing; fix integration logic.
85No key to useCryptographic/config issue: escalate to support/acquirer.
86KME synchronization errorCryptographic sync issue: escalate with logs, trace, timestamps.
87PIN errorCard-present: retry; if repeated, customer contacts issuer.
88MAC synchronization errorCryptographic sync issue: escalate with logs, trace, timestamps.
89Security violationStop retries; escalate to support/acquirer; review fraud/security configuration.
90Temporary system shutdownRetry later; if persistent, treat as incident and escalate.
91Card transmitter inaccessibleRetry later; if widespread, treat as issuer/network outage.
92Card issuer unknownUse another card; if repeated across cards, suspect routing/config and escalate.
93Transacation cannot be finalizedRetry later once; if persistent, escalate with trace/logs.
94Duplicate requestEnsure idempotency / unique references; do not resend the exact same request.
95Contact acquirerEscalate to support/acquirer with transaction reference and timestamps.
96System malfunctionRetry later; if repeated, escalate with traces/logs.
97No Funds TransferNot typical for purchase flows; verify transaction type; escalate if unexpected.
98Duplicate ReversalDo not repeat reversal; verify original reversal status; ensure idempotency.
99Duplicate TransactionCheck idempotency and client retries; ensure unique transaction identifiers.
N3Cash Service Not AvailableNot applicable to purchase flows; ignore unless supporting cash services.
N4Cash Back Request Exceeds Issuer LimitReduce cash-back amount or remove cash-back.
N7Declined for CVV2 failureRe-enter CVV; if repeated, use another card.
R0Stop Payment OrderDo not retry; customer must contact issuer.
R1Revocation of Authorisation OrderDo not retry; customer must contact issuer.
R3Revocation of all Authorisations OrderDo not retry; customer must contact issuer.
A0Withdrawal in contact modeNot applicable to e-commerce purchase flows; verify transaction type; remove cash/withdrawal feature if not supported.
A1VADS fallbackRouting/fallback case: verify gateway/acquirer configuration; escalate if frequent or unexpected.
000ApprovedProceed with capture / fulfillment.
001Approve with IDIf supported: apply ID verification; otherwise treat as approved.
002Partial approval (prepaid cards only)Handle partial approval if supported; otherwise request another method.
100RejectGeneric decline: avoid retry loops; ask customer to contact issuer or use another method.
101Card expired / invalid expiry dateCustomer must use another card.
106PIN attempts exceededDo not retry; customer must contact issuer.
107Please call issuerCustomer must contact issuer; retry only after confirmation.
109Invalid merchantCheck merchant configuration and routing; escalate to support/acquirer.
110Invalid amountValidate amount format/limits; retry after correction.
111Invalid account / Invalid MICR (traveler’s check)Ask customer to contact issuer; use another card/method.
115Requested function not supportedDisable unsupported feature/flag; verify transaction type.
117Invalid PINCard-present: retry carefully; if repeated, customer contacts issuer.
119Cardholder not registered / not authorizedCustomer must contact issuer; use another method.
122Invalid card security code (alias CID, 4DBC, 4CSC)Re-enter security code; if repeated, use another card.
125Invalid effective dateCheck date fields / terminal business date; escalate if applicable.
181Format errorCheck request formatting and fields; escalate with logs if persistent.
183Invalid currency codeVerify ISO currency code and acquirer configuration; correct and retry.
187Refuse – New card issuedCustomer must use another card; advise contacting issuer.
189Refuse – Merchant cancelled or closed / SECheck merchant status/configuration; escalate to support/acquirer.
200Refuse – Pick up cardDo not retry; request another method; in-store: follow procedure if applicable.
900Accepted – ATC synchronizationProceed but monitor; if repeated, escalate (potential chip/crypto sync issue).
909System malfunction (cryptographic error)Escalate to support/acquirer with trace, timestamps, and logs.
912Issuer not availableRetry later; if widespread, treat as issuer outage / incident.

Card Disputes - Bank Return codes

CB Scheme

CBDescriptionGIE DISPUTE
12Unauthorized TransactionTRANSACTION_NOT_AUTHORIZED
13Merchant Forced TransactionINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
14Unauthorized TransactionTRANSACTION_NOT_AUTHORIZED
15Guarantee by Card, by Day and by SIRETTRANSACTION_NOT_AUTHORIZED
16PIN Not VerifiedTRANSACTION_NOT_AUTHORIZED
17Invalid SIRETTRANSACTION_NOT_AUTHORIZED
18Certificate Not VerifiableTRANSACTION_NOT_AUTHORIZED
21Expired CardTRANSACTION_NOT_AUTHORIZED
22Late PresentmentINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
23Missing ImprintINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
25Exceeds Transaction Amount LimitINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
27Credit Not ProcessedTRANSACTION_NOT_AUTHORIZED
28Credit Processed as DebitTRANSACTION_NOT_AUTHORIZED
40Cancelled CardINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
41Documentation Not Provided or IllegibleINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
42Duplicate ProcessingDUPLICATE
43No Such Card NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
44Disputed AmountFRAUDULENT
45Disputed TransactionFRAUDULENT
46Merchant Bankruptcy or Judicial ReorganizationINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
61Merchant Suspended or TerminatedTRANSACTION_NOT_AUTHORIZED
62Transaction Not PermittedTRANSACTION_NOT_AUTHORIZED

Mastercard Scheme

MASTERCARDDescriptionGIE DISPUTE
4801Requested Transaction Data Not ReceivedTRANSACTION_NOT_AUTHORIZED
4802Cardholder Does Not Recognize TransactionTRANSACTION_NOT_AUTHORIZED
4807Cardholder Disputes a CreditFRAUDULENT
4808Authorization-Related ChargebackTRANSACTION_NOT_AUTHORIZED
4809Transaction Not AuthorizedFRAUDULENT
4810Fraud — Card-Not-Present EnvironmentFRAUDULENT
4522Goods or Services Not as Described / Not ReceivedOTHER
4811Credit Not ProcessedTRANSACTION_NOT_AUTHORIZED
4812Fraud — Card-Present EnvironmentTRANSACTION_NOT_AUTHORIZED
4831Goods or Services Not ReceivedINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4834Duplicate ProcessingDUPLICATE
4835Transaction Processing ErrorTRANSACTION_NOT_AUTHORIZED
4837No Cardholder Authorization (Lost/Stolen Card)FRAUDULENT
4840Fraudulent Processing of TransactionsFRAUDULENT
4841Cancelled Recurring TransactionTRANSACTION_NOT_AUTHORIZED
4842Counterfeit CardTRANSACTION_NOT_AUTHORIZED
4843Transaction Not Valid / Authorization ReversalTRANSACTION_NOT_AUTHORIZED
4846Non-Compliance With Authorization RequirementsINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4847Invalid Recurring TransactionINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4849Duplicate ProcessingDUPLICATE
4850ATM Cash Disbursement Not AuthorizedTRANSACTION_NOT_AUTHORIZED
4851Cardholder Disputes Transaction (Offline)TRANSACTION_NOT_AUTHORIZED
4853Cardholder Disputes Transaction Not as DescribedPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4854Exceeds Floor LimitPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4855Non-Receipt of Merchandise / ServicesPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4857Cardholder Disputes Transaction — Services Not ProvidedTRANSACTION_NOT_AUTHORIZED
4859Services Not Provided / Merchandise Not ReceivedTRANSACTION_NOT_AUTHORIZED
4860Transaction Processing ErrorTRANSACTION_NOT_AUTHORIZED
4862Cardholder Disputes Transaction — Invalid AuthorizationTRANSACTION_NOT_AUTHORIZED
4863Credit Not Processed / Cash Not DispensedFRAUDULENT
4870Chip Liability Shift — Counterfeit FraudFRAUDULENT
4871Chip Liability Shift — Lost/Stolen FraudFRAUDULENT
4880Late PresentmentTRANSACTION_NOT_AUTHORIZED
4890Currency Conversion DisputeTRANSACTION_NOT_AUTHORIZED
4900Defective/Not as Described MerchandiseOTHER
4901Credit Not ProcessedOTHER
4902Merchandise Not AcceptedOTHER
4903Incorrect Merchandise DeliveredOTHER
4905Services Not ProvidedOTHER
4908Cash Not DispensedOTHER

Visa Scheme

VISADescriptionGIE DISPUTE
10Fraud — Card-Absent EnvironmentFRAUDULENT
11Fraud — Card-Present EnvironmentTRANSACTION_NOT_AUTHORIZED
12Incorrect Transaction Amount or Account NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
13Fraudulent Transaction — No AuthorizationFRAUDULENT
30Services Not Provided or Merchandise Not ReceivedPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
41Credit Not ProcessedOTHER
53Not as Described or Defective MerchandiseOTHER
57Fraudulent Transaction — No Cardholder AuthorizationFRAUDULENT
62Counterfeit TransactionFRAUDULENT
70Processing ErrorOTHER
71Declined AuthorizationOTHER
72Cancelled TransactionOTHER
73Duplicate ProcessingOTHER
74Credit Not ProcessedOTHER
75Transaction Not RecognizedOTHER
76Incorrect Transaction Amount or Account NumberOTHER
77Non-Receipt of MerchandiseINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
78Fraudulent Transaction — No Cardholder AuthorizationOTHER
80Incorrect Transaction Amount or Account NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
81Fraudulent Transaction — Lost CardFRAUDULENT
82Fraudulent Transaction — Stolen CardDUPLICATE
83Fraudulent Transaction — Card-Absent EnvironmentFRAUDULENT
85Duplicate ProcessingOTHER
86Non-Compliance With AuthorizationDUPLICATE
93Late PresentmentFRAUDULENT
1001Fraud — Card-Absent Environment (E-Commerce)FRAUDULENT
1002Fraudulent Transaction — E-CommerceFRAUDULENT
1003Services Not Provided or Merchandise Not ReceivedFRAUDULENT
1004Fraudulent Transaction — No Cardholder AuthorizationFRAUDULENT
1005Not as Described or Defective MerchandiseFRAUDULENT
1101Processing Error — AuthorizationOTHER
1102Incorrect Transaction AmountOTHER
1103Exceeds Authorized AmountOTHER
1201Services Not Provided or Merchandise Not ReceivedOTHER
1202Not as Described Merchandise / ServiceOTHER
1203Recurring Transaction Not RecognizedOTHER
1204Defective MerchandiseINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
1205Services Not ProvidedINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
1206Non-Receipt of MerchandiseDUPLICATE
1207Duplicate ProcessingOTHER
1301Fraudulent Transaction — Card-Present EnvironmentPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
1302Fraudulent Transaction — No Cardholder AuthorizationOTHER
1303Fraudulent Transaction — Card-Absent EnvironmentOTHER
1304Duplicate ProcessingOTHER
1305Services Not Provided or Merchandise Not ReceivedOTHER
1306Credit Not ProcessedOTHER
1307Recurring Transaction Not RecognizedOTHER
1308Transaction Processing ErrorOTHER

Currency codes

List of currency codes:

AED
UAE Dirham
Currency code: 784
AFN
Afghani
Currency code: 971
ALL
Lek
Currency code: 008
AMD
Armenian Dram
Currency code: 051
ANG
Netherlands Antillean Guilder
Currency code: 532
AOA
Kwanza
Currency code: 973
ARS
Argentine Peso
Currency code: 032
AUD
Australian Dollar
Currency code: 036
AWG
Aruban Florin
Currency code: 533
AZN
Azerbaijanian Manat
Currency code: 944
BAM
Convertible Mark
Currency code: 977
BBD
Barbados Dollar
Currency code: 052
BDT
Taka
Currency code: 050
BGN
Bulgarian Lev
Currency code: 975
BHD
Bahraini Dinar
Currency code: 048
BIF
Burundi Franc
Currency code: 108
BMD
Bermudian Dollar
Currency code: 060
BND
Brunei Dollar
Currency code: 096
BOB
Boliviano
Currency code: 068
BOV
Mvdol
Currency code: 984
BRL
Brazilian Real
Currency code: 986
BSD
Bahamian Dollar
Currency code: 044
BTN
Ngultrum
Currency code: 064
BWP
Pula
Currency code: 072
BYR
Belarussian Ruble
Currency code: 974
BZD
Belize Dollar
Currency code: 084
CAD
Canadian Dollar
Currency code: 124
CDF
Congolese Franc
Currency code: 976
CHE
WIR Euro
Currency code: 947
CHF
Swiss Franc
Currency code: 756
CHW
WIR Franc
Currency code: 948
CLF
Unidad de Fomento
Currency code: 990
CLP
Chilean Peso
Currency code: 152
CNY
Yuan Renminbi
Currency code: 156
COP
Colombian Peso
Currency code: 170
COU
Unidad de Valor Real
Currency code: 970
CRC
Costa Rican Colon
Currency code: 188
CUC
Peso Convertible
Currency code: 931
CUP
Cuban Peso
Currency code: 192
CVE
Cabo Verde Escudo
Currency code: 132
CZK
Czech Koruna
Currency code: 203
DJF
Djibouti Franc
Currency code: 262
DKK
Danish Krone
Currency code: 208
DOP
Dominican Peso
Currency code: 214
DZD
Algerian Dinar
Currency code: 012
EGP
Egyptian Pound
Currency code: 818
ERN
Nakfa
Currency code: 232
ETB
Ethiopian Birr
Currency code: 230
EUR
Euro
Currency code: 978
FJD
Fiji Dollar
Currency code: 242
FKP
Falkland Islands Pound
Currency code: 238
GBP
Pound Sterling
Currency code: 826
GEL
Lari
Currency code: 981
GHS
Ghana Cedi
Currency code: 936
GIP
Gibraltar Pound
Currency code: 292
GMD
Dalasi
Currency code: 270
GNF
Guinea Franc
Currency code: 324
GTQ
Quetzal
Currency code: 320
GYD
Guyana Dollar
Currency code: 328
HKD
Hong Kong Dollar
Currency code: 344
HNL
Lempira
Currency code: 340
HRK
Kuna
Currency code: 191
HTG
Gourde
Currency code: 332
HUF
Forint
Currency code: 348
IDR
Rupiah
Currency code: 360
ILS
New Israeli Sheqel
Currency code: 376
INR
Indian Rupee
Currency code: 356
IQD
Iraqi Dinar
Currency code: 368
IRR
Iranian Rial
Currency code: 364
ISK
Iceland Krona
Currency code: 352
JMD
Jamaican Dollar
Currency code: 388
JOD
Jordanian Dinar
Currency code: 400
JPY
Yen
Currency code: 392
KES
Kenyan Shilling
Currency code: 404
KGS
Som
Currency code: 417
KHR
Riel
Currency code: 116
KMF
Comoro Franc
Currency code: 174
KPW
North Korean Won
Currency code: 408
KRW
Won
Currency code: 410
KWD
Kuwaiti Dinar
Currency code: 414
KYD
Cayman Islands Dollar
Currency code: 136
KZT
Tenge
Currency code: 398
LAK
Kip
Currency code: 418
LBP
Lebanese Pound
Currency code: 422
LKR
Sri Lanka Rupee
Currency code: 144
LRD
Liberian Dollar
Currency code: 430
LSL
Loti
Currency code: 426
LYD
Libyan Dinar
Currency code: 434
MAD
Moroccan Dirham
Currency code: 504
MDL
Moldovan Leu
Currency code: 498
MGA
Malagasy Ariary
Currency code: 969
MKD
Denar
Currency code: 807
MMK
Kyat
Currency code: 104
MNT
Tugrik
Currency code: 496
MOP
Pataca
Currency code: 446
MRO
Ouguiya
Currency code: 478
MUR
Mauritius Rupee
Currency code: 480
MVR
Rufiyaa
Currency code: 462
MWK
Kwacha
Currency code: 454
MXN
Mexican Peso
Currency code: 484
MXV
Mexican Unidad de Inversion (UDI)
Currency code: 979
MYR
Malaysian Ringgit
Currency code: 458
MZN
Mozambique Metical
Currency code: 943
NAD
Namibia Dollar
Currency code: 516
NGN
Naira
Currency code: 566
NIO
Cordoba Oro
Currency code: 558
NOK
Norwegian Krone
Currency code: 578
NPR
Nepalese Rupee
Currency code: 524
NZD
New Zealand Dollar
Currency code: 554
OMR
Rial Omani
Currency code: 512
PAB
Balboa
Currency code: 590
PEN
Nuevo Sol
Currency code: 604
PGK
Kina
Currency code: 598
PHP
Philippine Peso
Currency code: 608
PKR
Pakistan Rupee
Currency code: 586
PLN
Zloty
Currency code: 985
PYG
Guarani
Currency code: 600
QAR
Qatari Rial
Currency code: 634
RON
Romanian Leu
Currency code: 946
RSD
Serbian Dinar
Currency code: 941
RUB
Russian Ruble
Currency code: 643
RWF
Rwanda Franc
Currency code: 646
SAR
Saudi Riyal
Currency code: 682
SBD
Solomon Islands Dollar
Currency code: 090
SCR
Seychelles Rupee
Currency code: 690
SDG
Sudanese Pound
Currency code: 938
SEK
Swedish Krona
Currency code: 752
SGD
Singapore Dollar
Currency code: 702
SHP
Saint Helena Pound
Currency code: 654
SLL
Leone
Currency code: 694
SOS
Somali Shilling
Currency code: 706
SRD
Surinam Dollar
Currency code: 968
SSP
South Sudanese Pound
Currency code: 728
STD
Dobra
Currency code: 678
SVC
El Salvador Colon
Currency code: 222
SYP
Syrian Pound
Currency code: 760
SZL
Lilangeni
Currency code: 748
THB
Baht
Currency code: 764
TJS
Somoni
Currency code: 972
TMT
Turkmenistan New Manat
Currency code: 934
TND
Tunisian Dinar
Currency code: 788
TOP
Pa’anga
Currency code: 776
TRY
Turkish Lira
Currency code: 949
TTD
Trinidad and Tobago Dollar
Currency code: 780
TWD
New Taiwan Dollar
Currency code: 901
TZS
Tanzanian Shilling
Currency code: 834
UAH
Hryvnia
Currency code: 980
UGX
Uganda Shilling
Currency code: 800
USD
US Dollar
Currency code: 840
USN
US Dollar (Next day)
Currency code: 997
UYI
Uruguay Peso en Unidades Indexadas (URUIURUI)
Currency code: 940
UYU
Peso Uruguayo
Currency code: 858
UZS
Uzbekistan Sum
Currency code: 860
VEF
Bolivar
Currency code: 937
VND
Dong
Currency code: 704
VUV
Vatu
Currency code: 548
WST
Tala
Currency code: 882
XAG
Silver
Currency code: 961
XAU
Gold
Currency code: 959
XBA
Bond Markets Unit European Composite Unit (EURCO)
Currency code: 955
XBB
Bond Markets Unit European Monetary Unit (E.M.U.-6)
Currency code: 956
XBC
Bond Markets Unit European Unit of Account 9 (E.U.A.-9)
Currency code: 957
XBD
Bond Markets Unit European Unit of Account 17 (E.U.A.-17)
Currency code: 958
XCD
East Caribbean Dollar
Currency code: 951
XDR
SDR (Special Drawing Right)
Currency code: 960
XOF
CFA Franc BCEAO
Currency code: 952
XPD
Palladium
Currency code: 964
XPF
CFP Franc
Currency code: 953
XPT
Platinum
Currency code: 962
XSU
Sucre
Currency code: 994
XTS
Codes specifically reserved for testing purposes
Currency code: 963
XUA
ADB Unit of Account
Currency code: 965
XXX
The codes assigned for transactions where no currency is involved
Currency code: 999
YER
Yemeni Rial
Currency code: 886
ZAR
Rand
Currency code: 710
ZMW
Zambian Kwacha
Currency code: 967
ZWL
Zimbabwe Dollar
Currency code: 932

Description of the certification « ISO 4217:2008 » is available at this url:

  • http://www.iso.org/iso/home/standards/currency_codes.htm

SDD return codes

Return CodeDescription
AB05Timeout Creditor Agent
AB06Timeout Instructed Agent
AB07Offline Agent
AB08Offline Creditor Agent
AB09Error Creditor Agent
AB10Error Instructed Agent
AC01Incorrect Account Number
AC03Invalid Creditor Account Number
AC04Account Closed
AC06Account blocked, reason not specified
AC13Wrong Debtor account
AG01Forbidden on this type of account
AG02Operation/Transaction code incorrect, invalid file format
AG09Payment Not Received
AG10Agent Suspended
AG11Creditor Agent Suspended
AGNTIncorrect Agent
AM02Not Allowed Amount
AM04Insufficient Funds
AM05Duplicate payment
AM09Wrong Amount
AM23Amount Exceeds Settlement Limit
ARDTAlready a returned transaction
BE04Account address invalid
BE05Creditor Identifier incorrect
CUSTCustomer decision
CURRIncorrect Currency
CUTACancellation Upon Unable to Apply
CNORCreditor Bank is not Registered
DNORDebtor Bank is not Registered
DUPLDuplicate Payment
ED05Settlement Failed
ERINERI Option Not Supported
FF01Invalid File Format
FOCRPositive answer to the recall or RfRO
FRADFraudulent originated credit transfer
LEGLLegal Decision
MD01No valid mandate
MD02Mandate data missing or invalid
MD06Refund Request By End Customer
MD07Beneficiary Deceased
MS02By order of the beneficiary
MS03Reason not specified
NOASNo Answer From Customer
NOORNo Original Transaction Received
RC01Invalid BIC
RC07Invalid Creditor BIC Identifier
RR01Missing Debtor Account Or Identification
RR02Missing Debtors Name Or Address
RR03Missing Creditors Name Or Address
RR04Regulatory Reason
SL01Specific service offered by debtor Bank
TECHTechnical problems resulting in erroneous SCT’s
TM01Invalid Cut Off Time
UPAYUndue Payment

Country codes

List of country codes:

004
Afghanistan
Alpha2 code: AF
Alpha3 code: AFG
008
Albania
Alpha2 code: AL
Alpha3 code: ALB
010
Antarctica
Alpha2 code: AQ
Alpha3 code: ATA
012
Algeria
Alpha2 code: DZ
Alpha3 code: DZA
016
American Samoa
Alpha2 code: AS
Alpha3 code: ASM
020
Andorra
Alpha2 code: AD
Alpha3 code: AND
024
Angola
Alpha2 code: AO
Alpha3 code: AGO
028
Antigua and Barbuda
Alpha2 code: AG
Alpha3 code: ATG
031
Azerbaijan
Alpha2 code: AZ
Alpha3 code: AZE
032
Argentina
Alpha2 code: AR
Alpha3 code: ARG
036
Australia
Alpha2 code: AU
Alpha3 code: AUS
040
Austria
Alpha2 code: AT
Alpha3 code: AUT
044
Bahamas (the)
Alpha2 code: BS
Alpha3 code: BHS
048
Bahrain
Alpha2 code: BH
Alpha3 code: BHR
050
Bangladesh
Alpha2 code: BD
Alpha3 code: BGD
051
Armenia
Alpha2 code: AM
Alpha3 code: ARM
052
Barbados
Alpha2 code: BB
Alpha3 code: BRB
056
Belgium
Alpha2 code: BE
Alpha3 code: BEL
060
Bermuda
Alpha2 code: BM
Alpha3 code: BMU
064
Bhutan
Alpha2 code: BT
Alpha3 code: BTN
068
Bolivia, Plurinational State of
Alpha2 code: BO
Alpha3 code: BOL
070
Bosnia and Herzegovina
Alpha2 code: BA
Alpha3 code: BIH
072
Botswana
Alpha2 code: BW
Alpha3 code: BWA
074
Bouvet Island
Alpha2 code: BV
Alpha3 code: BVT
076
Brazil
Alpha2 code: BR
Alpha3 code: BRA
084
Belize
Alpha2 code: BZ
Alpha3 code: BLZ
086
British Indian Ocean Territory (the)
Alpha2 code: IO
Alpha3 code: IOT
090
Solomon Islands (the)
Alpha2 code: SB
Alpha3 code: SLB
092
Virgin Islands (British)
Alpha2 code: VG
Alpha3 code: VGB
096
Brunei Darussalam
Alpha2 code: BN
Alpha3 code: BRN
100
Bulgaria
Alpha2 code: BG
Alpha3 code: BGR
104
Myanmar
Alpha2 code: MM
Alpha3 code: MMR
108
Burundi
Alpha2 code: BI
Alpha3 code: BDI
112
Belarus
Alpha2 code: BY
Alpha3 code: BLR
116
Cambodia
Alpha2 code: KH
Alpha3 code: KHM
120
Cameroon
Alpha2 code: CM
Alpha3 code: CMR
124
Canada
Alpha2 code: CA
Alpha3 code: CAN
132
Cape Verde
Alpha2 code: CV
Alpha3 code: CPV
136
Cayman Islands (the)
Alpha2 code: KY
Alpha3 code: CYM
140
Central African Republic (the)
Alpha2 code: CF
Alpha3 code: CAF
144
Sri Lanka
Alpha2 code: LK
Alpha3 code: LKA
148
Chad
Alpha2 code: TD
Alpha3 code: TCD
152
Chile
Alpha2 code: CL
Alpha3 code: CHL
156
China
Alpha2 code: CN
Alpha3 code: CHN
158
Taiwan (Province of China)
Alpha2 code: TW
Alpha3 code: TWN
162
Christmas Island
Alpha2 code: CX
Alpha3 code: CXR
166
Cocos (Keeling) Islands (the)
Alpha2 code: CC
Alpha3 code: CCK
170
Colombia
Alpha2 code: CO
Alpha3 code: COL
174
Comoros
Alpha2 code: KM
Alpha3 code: COM
175
Mayotte
Alpha2 code: YT
Alpha3 code: MYT
178
Congo
Alpha2 code: CG
Alpha3 code: COG
180
Congo (the Democratic Republic of the)
Alpha2 code: CD
Alpha3 code: COD
184
Cook Islands (the)
Alpha2 code: CK
Alpha3 code: COK
188
Costa Rica
Alpha2 code: CR
Alpha3 code: CRI
191
Croatia
Alpha2 code: HR
Alpha3 code: HRV
192
Cuba
Alpha2 code: CU
Alpha3 code: CUB
196
Cyprus
Alpha2 code: CY
Alpha3 code: CYP
203
Czech Republic (the)
Alpha2 code: CZ
Alpha3 code: CZE
204
Benin
Alpha2 code: BJ
Alpha3 code: BEN
208
Denmark
Alpha2 code: DK
Alpha3 code: DNK
212
Dominica
Alpha2 code: DM
Alpha3 code: DMA
214
Dominican Republic (the)
Alpha2 code: DO
Alpha3 code: DOM
218
Ecuador
Alpha2 code: EC
Alpha3 code: ECU
222
El Salvador
Alpha2 code: SV
Alpha3 code: SLV
226
Equatorial Guinea
Alpha2 code: GQ
Alpha3 code: GNQ
231
Ethiopia
Alpha2 code: ET
Alpha3 code: ETH
232
Eritrea
Alpha2 code: ER
Alpha3 code: ERI
233
Estonia
Alpha2 code: EE
Alpha3 code: EST
234
Faroe Islands (the)
Alpha2 code: FO
Alpha3 code: FRO
238
Falkland Islands (the) [Malvinas]
Alpha2 code: FK
Alpha3 code: FLK
239
South Georgia and the South Sandwich Islands
Alpha2 code: GS
Alpha3 code: SGS
242
Fiji
Alpha2 code: FJ
Alpha3 code: FJI
246
Finland
Alpha2 code: FI
Alpha3 code: FIN
248
Ã…land Islands
Alpha2 code: AX
Alpha3 code: ALA
250
France
Alpha2 code: FR
Alpha3 code: FRA
254
French Guiana
Alpha2 code: GF
Alpha3 code: GUF
258
French Polynesia
Alpha2 code: PF
Alpha3 code: PYF
260
French Southern Territories (the)
Alpha2 code: TF
Alpha3 code: ATF
262
Djibouti
Alpha2 code: DJ
Alpha3 code: DJI
266
Gabon
Alpha2 code: GA
Alpha3 code: GAB
268
Georgia
Alpha2 code: GE
Alpha3 code: GEO
270
Gambia (The)
Alpha2 code: GM
Alpha3 code: GMB
275
Palestine, State of
Alpha2 code: PS
Alpha3 code: PSE
276
Germany
Alpha2 code: DE
Alpha3 code: DEU
288
Ghana
Alpha2 code: GH
Alpha3 code: GHA
292
Gibraltar
Alpha2 code: GI
Alpha3 code: GIB
296
Kiribati
Alpha2 code: KI
Alpha3 code: KIR
300
Greece
Alpha2 code: GR
Alpha3 code: GRC
304
Greenland
Alpha2 code: GL
Alpha3 code: GRL
308
Grenada
Alpha2 code: GD
Alpha3 code: GRD
312
Guadeloupe
Alpha2 code: GP
Alpha3 code: GLP
316
Guam
Alpha2 code: GU
Alpha3 code: GUM
320
Guatemala
Alpha2 code: GT
Alpha3 code: GTM
324
Guinea
Alpha2 code: GN
Alpha3 code: GIN
328
Guyana
Alpha2 code: GY
Alpha3 code: GUY
332
Haiti
Alpha2 code: HT
Alpha3 code: HTI
334
Heard Island and McDonald Islands
Alpha2 code: HM
Alpha3 code: HMD
336
Holy See (the) [Vatican City State]
Alpha2 code: VA
Alpha3 code: VAT
340
Honduras
Alpha2 code: HN
Alpha3 code: HND
344
Hong Kong
Alpha2 code: HK
Alpha3 code: HKG
348
Hungary
Alpha2 code: HU
Alpha3 code: HUN
352
Iceland
Alpha2 code: IS
Alpha3 code: ISL
356
India
Alpha2 code: IN
Alpha3 code: IND
360
Indonesia
Alpha2 code: ID
Alpha3 code: IDN
364
Iran (the Islamic Republic of)
Alpha2 code: IR
Alpha3 code: IRN
368
Iraq
Alpha2 code: IQ
Alpha3 code: IRQ
372
Ireland
Alpha2 code: IE
Alpha3 code: IRL
376
Israel
Alpha2 code: IL
Alpha3 code: ISR
380
Italy
Alpha2 code: IT
Alpha3 code: ITA
384
Ivory coast
Alpha2 code: CI
Alpha3 code: CIV
388
Jamaica
Alpha2 code: JM
Alpha3 code: JAM
392
Japan
Alpha2 code: JP
Alpha3 code: JPN
398
Kazakhstan
Alpha2 code: KZ
Alpha3 code: KAZ
400
Jordan
Alpha2 code: JO
Alpha3 code: JOR
404
Kenya
Alpha2 code: KE
Alpha3 code: KEN
408
Korea (the Democratic People’s Republic of)
Alpha2 code: KP
Alpha3 code: PRK
410
Korea (the Republic of)
Alpha2 code: KR
Alpha3 code: KOR
414
Kuwait
Alpha2 code: KW
Alpha3 code: KWT
417
Kyrgyzstan
Alpha2 code: KG
Alpha3 code: KGZ
418
Lao People’s Democratic Republic (the)
Alpha2 code: LA
Alpha3 code: LAO
422
Lebanon
Alpha2 code: LB
Alpha3 code: LBN
426
Lesotho
Alpha2 code: LS
Alpha3 code: LSO
428
Latvia
Alpha2 code: LV
Alpha3 code: LVA
430
Liberia
Alpha2 code: LR
Alpha3 code: LBR
434
Libya
Alpha2 code: LY
Alpha3 code: LBY
438
Liechtenstein
Alpha2 code: LI
Alpha3 code: LIE
440
Lithuania
Alpha2 code: LT
Alpha3 code: LTU
442
Luxembourg
Alpha2 code: LU
Alpha3 code: LUX
446
Macao
Alpha2 code: MO
Alpha3 code: MAC
450
Madagascar
Alpha2 code: MG
Alpha3 code: MDG
454
Malawi
Alpha2 code: MW
Alpha3 code: MWI
458
Malaysia
Alpha2 code: MY
Alpha3 code: MYS
462
Maldives
Alpha2 code: MV
Alpha3 code: MDV
466
Mali
Alpha2 code: ML
Alpha3 code: MLI
470
Malta
Alpha2 code: MT
Alpha3 code: MLT
474
Martinique
Alpha2 code: MQ
Alpha3 code: MTQ
478
Mauritania
Alpha2 code: MR
Alpha3 code: MRT
480
Mauritius
Alpha2 code: MU
Alpha3 code: MUS
484
Mexico
Alpha2 code: MX
Alpha3 code: MEX
492
Monaco
Alpha2 code: MC
Alpha3 code: MCO
496
Mongolia
Alpha2 code: MN
Alpha3 code: MNG
498
Moldova (the Republic of)
Alpha2 code: MD
Alpha3 code: MDA
499
Montenegro
Alpha2 code: ME
Alpha3 code: MNE
500
Montserrat
Alpha2 code: MS
Alpha3 code: MSR
504
Morocco
Alpha2 code: MA
Alpha3 code: MAR
508
Mozambique
Alpha2 code: MZ
Alpha3 code: MOZ
512
Oman
Alpha2 code: OM
Alpha3 code: OMN
516
Namibia
Alpha2 code: NA
Alpha3 code: NAM
520
Nauru
Alpha2 code: NR
Alpha3 code: NRU
524
Nepal
Alpha2 code: NP
Alpha3 code: NPL
528
Netherlands (the)
Alpha2 code: NL
Alpha3 code: NLD
531
Curacao
Alpha2 code: CW
Alpha3 code: CUW
533
Aruba
Alpha2 code: AW
Alpha3 code: ABW
534
Sint Maarten (Dutch part)
Alpha2 code: SX
Alpha3 code: SXM
535
Bonaire, Sint Eustatius and Saba
Alpha2 code: BQ
Alpha3 code: BES
540
New Caledonia
Alpha2 code: NC
Alpha3 code: NCL
548
Vanuatu
Alpha2 code: VU
Alpha3 code: VUT
554
New Zealand
Alpha2 code: NZ
Alpha3 code: NZL
558
Nicaragua
Alpha2 code: NI
Alpha3 code: NIC
562
Niger (the)
Alpha2 code: NE
Alpha3 code: NER
566
Nigeria
Alpha2 code: NG
Alpha3 code: NGA
570
Niue
Alpha2 code: NU
Alpha3 code: NIU
574
Norfolk Island
Alpha2 code: NF
Alpha3 code: NFK
578
Norway
Alpha2 code: NO
Alpha3 code: NOR
580
Northern Mariana Islands (the)
Alpha2 code: MP
Alpha3 code: MNP
581
United States Minor Outlying Islands (the)
Alpha2 code: UM
Alpha3 code: UMI
583
Micronesia (the Federated States of)
Alpha2 code: FM
Alpha3 code: FSM
584
Marshall Islands (the)
Alpha2 code: MH
Alpha3 code: MHL
585
Palau
Alpha2 code: PW
Alpha3 code: PLW
586
Pakistan
Alpha2 code: PK
Alpha3 code: PAK
591
Panama
Alpha2 code: PA
Alpha3 code: PAN
598
Papua New Guinea
Alpha2 code: PG
Alpha3 code: PNG
600
Paraguay
Alpha2 code: PY
Alpha3 code: PRY
604
Peru
Alpha2 code: PE
Alpha3 code: PER
608
Philippines (the)
Alpha2 code: PH
Alpha3 code: PHL
612
Pitcairn
Alpha2 code: PN
Alpha3 code: PCN
616
Poland
Alpha2 code: PL
Alpha3 code: POL
620
Portugal
Alpha2 code: PT
Alpha3 code: PRT
624
Guinea-Bissau
Alpha2 code: GW
Alpha3 code: GNB
626
Timor-Leste
Alpha2 code: TL
Alpha3 code: TLS
630
Puerto Rico
Alpha2 code: PR
Alpha3 code: PRI
634
Qatar
Alpha2 code: QA
Alpha3 code: QAT
638
Réunion
Alpha2 code: RE
Alpha3 code: REU
642
Romania
Alpha2 code: RO
Alpha3 code: ROU
643
Russian Federation (the)
Alpha2 code: RU
Alpha3 code: RUS
646
Rwanda
Alpha2 code: RW
Alpha3 code: RWA
652
Saint Barthélemy
Alpha2 code: BL
Alpha3 code: BLM
654
Saint Helena, Ascension and Tristan da Cunha
Alpha2 code: SH
Alpha3 code: SHN
659
Saint Kitts and Nevis
Alpha2 code: KN
Alpha3 code: KNA
660
Anguilla
Alpha2 code: AI
Alpha3 code: AIA
662
Saint Lucia
Alpha2 code: LC
Alpha3 code: LCA
663
Saint Martin (French part)
Alpha2 code: MF
Alpha3 code: MAF
666
Saint Pierre and Miquelon
Alpha2 code: PM
Alpha3 code: SPM
670
Saint Vincent and the Grenadines
Alpha2 code: VC
Alpha3 code: VCT
674
San Marino
Alpha2 code: SM
Alpha3 code: SMR
678
Sao Tome and Principe
Alpha2 code: ST
Alpha3 code: STP
682
Saudi Arabia
Alpha2 code: SA
Alpha3 code: SAU
686
Senegal
Alpha2 code: SN
Alpha3 code: SEN
688
Serbia
Alpha2 code: RS
Alpha3 code: SRB
690
Seychelles
Alpha2 code: SC
Alpha3 code: SYC
694
Sierra Leone
Alpha2 code: SL
Alpha3 code: SLE
702
Singapore
Alpha2 code: SG
Alpha3 code: SGP
703
Slovakia
Alpha2 code: SK
Alpha3 code: SVK
704
Viet Nam
Alpha2 code: VN
Alpha3 code: VNM
705
Slovenia
Alpha2 code: SI
Alpha3 code: SVN
706
Somalia
Alpha2 code: SO
Alpha3 code: SOM
710
South Africa
Alpha2 code: ZA
Alpha3 code: ZAF
716
Zimbabwe
Alpha2 code: ZW
Alpha3 code: ZWE
724
Spain
Alpha2 code: ES
Alpha3 code: ESP
728
South Sudan
Alpha2 code: SS
Alpha3 code: SSD
729
Sudan (the)
Alpha2 code: SD
Alpha3 code: SDN
732
Western Sahara
Alpha2 code: EH
Alpha3 code: ESH
740
Suriname
Alpha2 code: SR
Alpha3 code: SUR
744
Svalbard and Jan Mayen
Alpha2 code: SJ
Alpha3 code: SJM
748
Swaziland
Alpha2 code: SZ
Alpha3 code: SWZ
752
Sweden
Alpha2 code: SE
Alpha3 code: SWE
756
Switzerland
Alpha2 code: CH
Alpha3 code: CHE
760
Syrian Arab Republic (the)
Alpha2 code: SY
Alpha3 code: SYR
762
Tajikistan
Alpha2 code: TJ
Alpha3 code: TJK
764
Thailand
Alpha2 code: TH
Alpha3 code: THA
768
Togo
Alpha2 code: TG
Alpha3 code: TGO
772
Tokelau
Alpha2 code: TK
Alpha3 code: TKL
776
Tonga
Alpha2 code: TO
Alpha3 code: TON
780
Trinidad and Tobago
Alpha2 code: TT
Alpha3 code: TTO
784
United Arab Emirates (the)
Alpha2 code: AE
Alpha3 code: ARE
788
Tunisia
Alpha2 code: TN
Alpha3 code: TUN
792
Turkey
Alpha2 code: TR
Alpha3 code: TUR
795
Turkmenistan
Alpha2 code: TM
Alpha3 code: TKM
796
Turks and Caicos Islands (the)
Alpha2 code: TC
Alpha3 code: TCA
798
Tuvalu
Alpha2 code: TV
Alpha3 code: TUV
800
Uganda
Alpha2 code: UG
Alpha3 code: UGA
804
Ukraine
Alpha2 code: UA
Alpha3 code: UKR
807
Macedonia (the former Yugoslav Republic of)
Alpha2 code: MK
Alpha3 code: MKD
818
Egypt
Alpha2 code: EG
Alpha3 code: EGY
826
United Kingdom (the)
Alpha2 code: GB
Alpha3 code: GBR
831
Guernsey
Alpha2 code: GG
Alpha3 code: GGY
832
Jersey
Alpha2 code: JE
Alpha3 code: JEY
833
Isle of Man
Alpha2 code: IM
Alpha3 code: IMN
834
Tanzania, United Republic of
Alpha2 code: TZ
Alpha3 code: TZA
840
United States (the)
Alpha2 code: US
Alpha3 code: USA
850
Virgin Islands (U.S.)
Alpha2 code: VI
Alpha3 code: VIR
854
Burkina Faso
Alpha2 code: BF
Alpha3 code: BFA
858
Uruguay
Alpha2 code: UY
Alpha3 code: URY
860
Uzbekistan
Alpha2 code: UZ
Alpha3 code: UZB
862
Venezuela, Bolivarian Republic of
Alpha2 code: VE
Alpha3 code: VEN
876
Wallis and Futuna
Alpha2 code: WF
Alpha3 code: WLF
882
Samoa
Alpha2 code: WS
Alpha3 code: WSM
887
Yemen
Alpha2 code: YE
Alpha3 code: YEM
894
Zambia  
Alpha2 code: ZM
Alpha3 code: ZMB

Transfer purpose codes

ACCT : AccountManagement
ADCS : AdvisoryDonationCopyrightServices
ADMG : AdministrativeManagement
ADVA : AdvancePayment
AEMP : ActiveEmploymentPolicy
AGRT : AgriculturalTransfer
AIRB : Air
ALLW : Allowance
ALMY : AlimonyPayment
AMEX : Amex
ANNI : Annuity
ANTS : AnesthesiaServices
AREN : AccountsReceivablesEntry
AUCO : AuthenticatedCollections
B112 : TrailerFeePayment
BBSC : BabyBonusScheme
BCDM : BearerChequeDomestic
BCFG : BearerChequeForeign
BECH : ChildBenefit
BENE : UnemploymentDisabilityBenefit
BEXP : BusinessExpenses
BFWD : BondForward
BKDF : BankLoanDelayedDrawFunding
BKFE : BankLoanFees
BKFM : BankLoanFundingMemo
BKIP : BankLoanAccruedInterestPayment
BKPP : BankLoanPrincipalPaydown
BLDM : BuildingMaintenance
BNET : BondForwardNetting
BOCE : BackOfficeConversionEntry
BOND : Bonds
BONU : BonusPayment.
BR12 : TrailerFeeRebate
BUSB : Bus
CABD : CorporateActions-Bonds
CAEQ : CorporateActions-Equities
CAFI : CustodianManagementFeeInhouse
CASH : CashManagementTransfer
CBCR : CreditCard
CBFF : CapitalBuilding
CBFR : CapitalBuildingRetirement
CBLK : CardBulkClearing
CBTV : CableTVBill
CCHD : CashCompensationHelplessnessDisability
CCIR : CrossCurrencyIRS
CCPC : CCPClearedInitialMargin
CCPM : CCPClearedVariationMargin
CCRD : CreditCardPayment
CCSM : CCPClearedInitialMarginSegregatedCash
CDBL : CreditCardBill
CDCB : CardPaymentWithCashBack
CDCD : CashDisbursementCashSettlement
CDCS : CashDisbursementWithSurcharging
CDDP : CardDeferredPayment
CDEP : CreditDefaultEventPayment
CDOC : OriginalCredit
CDQC : QuasiCash
CFDI : CapitalFallingDueInhouse
CFEE : CancellationFee
CGDD : CardGeneratedDirectDebit
CHAR : CharityPayment
CLPR : CarLoanPrincipalRepayment
CMDT : CommodityTransfer
COLL : CollectionPayment
COMC : CommercialPayment
COMM : Commission
COMP : CompensationPayment
COMT : ConsumerThirdPartyConsolidatedPayment
CORT : TradeSettlementPayment
COST : Costs
CPEN : CashPenalties
CPKC : CarparkCharges
CPYR : Copyright
CRDS : CreditDefaultSwap
CRPR : CrossProduct
CRSP : CreditSupport
CRTL : CreditLine
CSDB : CashDisbursementCashManagement
CSLP : CompanySocialLoanPaymentToBank
CVCF : ConvalescentCareFacility
DBCR : DebitCard
DBTC : DebitCollectionPayment
DCRD : DebitCardPayment
DEBT : ChargesBorneByDebtor
DEPD : DependentSupportPayment
DEPT : Deposit
DERI : Derivatives
DICL : Diners
DIVD : Dividend
DMEQ : DurableMedicaleEquipment
DNTS : DentalServices
DSMT : PrintedOrderDisbursement
DVPM : DeliverAgainstPayment
ECPG : GuaranteedEPayment
ECPR : EPaymentReturn
ECPU : NonGuaranteedEPayment
EDUC : Education
EFTC : LowValueCredit
EFTD : LowValueDebit
ELEC : ElectricityBill
ENRG : Energies
EPAY : Epayment
EQPT : EquityOption
EQTS : Equities
EQUS : EquitySwap
ESTX : EstateTax
ETUP : EPurseTopUp
EXPT : ExoticOption
EXTD : ExchangeTradedDerivatives
FACT : FactorUpdateRelatedPayment
FAND : FinancialAidInCaseOfNaturalDisaster
FCOL : FeeCollection
FCPM : LatePaymentOfFeesAndCharges
FEES : PaymentOfFees
FERB : Ferry
FIXI : FixedIncome
FLCR : FleetCard
FNET : FuturesNettingPayment
FORW : ForwardForeignExchange
FREX : ForeignExchange
FUTR : Futures
FWBC : ForwardBrokerOwnedCashCollateral
FWCC : ForwardClientOwnedCashCollateral
FWLV : ForeignWorkerLevy
FWSB : ForwardBrokerOwnedCashCollateralSegregated
FWSC : ForwardClientOwnedSegregatedCashCollateral
FXNT : ForeignExchangeRelatedNetting
GAFA : GovernmentFamilyAllowance
GAHO : GovernmentHousingAllowance
GAMB : GamblingOrWageringPayment
GASB : GasBill
GDDS : PurchaseSaleOfGoods
GDSV : PurchaseSaleOfGoodsAndServices
GFRP : GuaranteeFundRightsPayment
GIFT : Gift
GOVI : GovernmentInsurance
GOVT : GovernmentPayment
GSCB : PurchaseSaleOfGoodsAndServicesWithCashBack
GSTX : GoodsServicesTax
GVEA : AustrianGovernmentEmployeesCategoryA
GVEB : AustrianGovernmentEmployeesCategoryB
GVEC : AustrianGovernmentEmployeesCategoryC
GVED : AustrianGovernmentEmployeesCategoryD
GWLT : GovermentWarLegislationTransfer
HEDG : Hedging
HLRP : PropertyLoanRepayment
HLST : PropertyLoanSettlement
HLTC : HomeHealthCare
HLTI : HealthInsurance
HREC : HousingRelatedContribution
HSPC : HospitalCare
HSTX : HousingTax
ICCP : IrrevocableCreditCardPayment
ICRF : IntermediateCareFacility
IDCP : IrrevocableDebitCardPayment
IHRP : InstalmentHirePurchaseAgreement
INPC : InsurancePremiumCar
INPR : InsurancePremiumRefund
INSC : PaymentOfInsuranceClaim
INSM : Installment
INSU : InsurancePremium
INTC : IntraCompanyPayment
INTE : Interest
INTP : IntraPartyPayment
INTX : IncomeTax
INVS : InvestmentAndSecurities
IPAY : InstantPayments
IPCA : InstantPaymentsCancellation
IPDO : InstantPaymentsForDonations
IPEA : InstantPaymentsInECommerceWithoutAddressData
IPEC : InstantPaymentsInECommerceWithAddressData
IPEW : InstantPaymentsInECommerce
IPPS : InstantPaymentsAtPOS
IPRT : InstantPaymentsReturn
IPU2 : InstantPaymentsUnattendedVendingMachineWith2FA
IPUW : InstantPaymentsUnattendedVendingMachineWithout2FA
IVPT : InvoicePayment
LBIN : LendingBuyInNetting
LBRI : LaborInsurance
LCOL : LendingCashCollateralFreeMovement
LFEE : LendingFees
LICF : LicenseFee
LIFI : LifeInsurance
LIMA : LiquidityManagement
LMEQ : LendingEquityMarkedToMarketCashCollateral
LMFI : LendingFixedIncomeMarkedToMarketCashCollateral
LMRK : LendingUnspecifiedTypeOfMarkedToMarketCashCollateral
LOAN : Loan
LOAR : LoanRepayment
LOTT : LotteryPayment
LREB : LendingRebatePayments
LREV : LendingRevenuePayments
LSFL : LendingClaimPayment
LTCF : LongTermCareFacility
MAFC : MedicalAidFundContribution
MARF : MedicalAidRefund
MARG : DailyMarginOnListedDerivatives
MBSB : MBSBrokerOwnedCashCollateral
MBSC : MBSClientOwnedCashCollateral
MCDM : MultiCurrenyChequeDomestic
MCFG : MultiCurrenyChequeForeign
MDCS : MedicalServices
MGCC : FuturesInitialMargin
MGSC : FuturesInitialMarginClientOwnedSegregatedCashCollateral
MOMA : MoneyMarket
MP2B : MobileP2BPayment
MP2P : MobileP2PPayment
MSVC : MultipleServiceTypes
MTUP : MobileTopUp
NETT : Netting
NITX : NetIncomeTax
NOWS : NotOtherwiseSpecified
NWCH : NetworkCharge
NWCM : NetworkCommunication
OCCC : ClientOwnedOCCPledgedCollateral
OCDM : OrderChequeDomestic
OCFG : OrderChequeForeign
OFEE : OpeningFee
OPBC : OTCOptionBrokerOwnedCashCollateral
OPCC : OTCOptionClientOwnedCashCollateral
OPSB : OTCOptionBrokerOwnedSegregatedCashCollateral
OPSC : OTCOptionClientOwnedCashSegregatedCashCollateral
OPTN : FXOption
OTCD : OTCDerivatives
OTHR : Other
OTLC : OtherTelecomRelatedBill
PADD : PreauthorizedDebit
PAYR : Payroll
PCOM : PropertyCompletionPayment
PDEP : PropertyDeposit
PEFC : PensionFundContribution
PENO : PaymentBasedOnEnforcementOrder
PENS : PensionPayment
PHON : TelephoneBill
PLDS : PropertyLoanDisbursement
PLRF : PropertyLoanRefinancing
POPE : PointOfPurchaseEntry
PPTI : PropertyInsurance
PRCP : PricePayment
PRME : PreciousMetal
PTSP : PaymentTerms
PTXP : PropertyTax
RAPI : RapidPaymentInstruction
RCKE : RepresentedCheckEntry
RCPT : ReceiptPayment
RDTX : RoadTax
REBT : Rebate
REFU : Refund
RELG : RentalLeaseGeneral
RENT : Rent
REOD : AccountOverdraftRepayment
REPO : RepurchaseAgreement
RETL : RetailPayment
RHBS : RehabilitationSupport
RIMB : ReimbursementOfAPreviousErroneousTransaction
RINP : RecurringInstallmentPayment
RLWY : Railway
ROYA : Royalties
RPBC : BilateralRepoBrokerOwnedCollateral
RPCC : RepoClientOwnedCollateral
RPNT : BilateralRepoInternetNetting
RPSB : BilateralRepoBrokerOwnedSegregatedCashCollateral
RPSC : BilateralRepoClientOwnedSegregatedCashCollateral
RRBN : RoundRobin
RRCT : ReimbursementReceivedCreditTransfer
RRTP : RelatedRequestToPay
RVPM : ReceiveAgainstPayment
RVPO : ReverseRepurchaseAgreement
SALA : SalaryPayment
SASW : ATM
SAVG : Savings
SBSC : SecuritiesBuySellSellBuyBack
SCIE : SingleCurrencyIRSExotic
SCIR : SingleCurrencyIRS
SCRP : SecuritiesCrossProducts
SCVE : PurchaseSaleOfServices
SECU : Securities
SEPI : SecuritiesPurchaseInhouse
SERV : ServiceCharges
SHBC : BrokerOwnedCollateralShortSale
SHCC : ClientOwnedCollateralShortSale
SHSL : ShortSell
SLEB : SecuritiesLendingAndBorrowing
SLOA : SecuredLoan
SLPI : PaymentSlipInstruction
SPLT : SplitPayments
SPSP : SalaryPensionSumPayment
SSBE : SocialSecurityBenefit
STDY : Study
SUBS : Subscription
SUPP : SupplierPayment
SWBC : SwapBrokerOwnedCashCollateral
SWCC : SwapClientOwnedCashCollateral
SWFP : SwapContractFinalPayment
SWPP : SwapContractPartialPayment
SWPT : Swaption
SWRS : SwapContractResetPayment
SWSB : SwapsBrokerOwnedSegregatedCashCollateral
SWSC : SwapsClientOwnedSegregatedCashCollateral
SWUF : SwapContractUpfrontPayment
TAXR : TaxRefund
TAXS : TaxPayment
TBAN : TBAPairOffNetting
TBAS : ToBeAnnounced
TBBC : TBABrokerOwnedCashCollateral
TBCC : TBAClientOwnedCashCollateral
TBIL : TelecommunicationsBill
TCSC : TownCouncilServiceCharges
TELI : TelephoneInitiatedTransaction
TLRF : NonUSMutualFundTrailerFeePayment
TLRR : NonUSMutualFundTrailerFeeRebatePayment
TMPG : TMPGClaimPayment
TPRI : TriPartyRepoInterest
TPRP : TriPartyRepoNetting
TRAD : Commercial
TRCP : TreasuryCrossProduct
TREA : TreasuryPayment
TRFD : TrustFund
TRNC : TruncatedPaymentSlip
TRPT : RoadPricing
TRVC : TravellerCheque
UBIL : Utilities
UNIT : UnitTrustPurchase
VATX : ValueAddedTaxPayment
VIEW : VisionCare
WEBI : InternetInitiatedTransaction
WHLD : WithHolding
WTER : WaterBill

SDD purpose codes

The categoryPurposeCode(1) and purposeCode(2) used in the SDDTransaction.

SALA(1) (2)Salary Payment
TREA(1) (2)Treasury Payment
ADVA(2)Advance Payment
AGRT(2)Agricultural Transfer
ALMY(2)Alimony Payment
BECH(2)Child Benefit
BENE(2)Unemployment Disability Benefit
BONU(2)Bonus Payment
CASH(1) (2)Cash Management Transfer
CBFF(2)Capital Building
CHAR(2)Charity Payment
COLL(2)Collection Payment
CMDT(2)Commodity Transfer
COMC(2)Commercial Payment
COMM(2)Commission
COST(2)Costs
CPYR(2)Copyright
DIVI(1) (2)Dividend
FREX(2)Foreign Exchange
GDDS(2)Purchase Sale Of Goods
GOVT(1) (2)Gouvernment Payment
IHRP(2)Instalment Hire Purchase Agreement
INTC(1) (2)Intra Company Payment
INSU(2)Insurance Premium
INTE(1) (2)Interest
LIFC(2)Licence Fee
LOAN(1) (2)Loan
LOAR(2)Loan Repayment
NETT(2)Netting
PAYR(2)Payment Roll
PENS(1) (2)Pension
REFU (2)Refund
RENT(2)Rent
ROYA(2)Royalties
SCVE(2)Purchase Sale Of Services
SECU(1) (2)Securities
SSBE(1) (2)Social Security Benefit
SUBS(2)Subscription
TAXS(1) (2)Tax Payment
COMT(2)Consumer Third Party Consolidated Payment
DBTC(2)Debit Collection Payment
SUPP(1) (2)Supplier Payment
HEDG(1) (2)Hedging
MSVC(2)Multiple Service Types
NOWS(2)Not Otherwise Specified
CARD(2)Card Payment
CDBL(2)Credit Card Bill
FERB(2)Ferry
AIRB(2)Air
BUSB(2)Bus
RLWY(2)Railway
CVCF(2)Convalescent Care Facility
DNTS(2)Dental Services
ANTS(2)Anesthesia Services
HLTC(2)Home Health Care
HSPC(2)Hospital Care
ICRF(2)Intermediate Care Facility
LTCF(2)Long Term Care Facility
MDCS(2)Medical Services
VIEW(2)Vision Care
DMEQ(2)Durable Medicale Equipment
CBTV(2)Cable TV Bill
ELEC(2)Electricity Bill
GASB(2)Gas Bill
PHON(2)Telephone Bill
OTLC(2)Other Telecom Related Bill
WTER(2)Water Bill
STDY(2)Study
PRCP(2)Price Payment
INSM(2)Installment
RINP(2)Recurring Installment Payment
OFEE(2)Opening Fee
CFEE(2)Cancellation Fee
GOVI(2)Government Insurance
INPC(2)Insurance Premium Car
LBRI(2)Labor Insurance
LIFI(2)Life Insurance
PPTI(2)Property Insurance
HLTI(2)Health Insurance
CLPR(2)Car Loan Principal Repayment
ESTX(2)Estate Tax
HLRP(2)Housing Loan Repayment
CSLP(2)Company Social Loan Payment To Bank
HSTX(2)Housing Tax
INTX(2)Income Tax
NITX(2)Net Income Tax
NWCH(2)Network Charge
NWCM(2)Network Communication
BEXP(2)Business Expenses
TRFD(2)Trust Fund
RCPT(2)Receipt
PTSP(2)Payment Terms
OTHR(2)Other
WHLD(1)(2)With Holding
CORT(1)Trade Settlement Payment
VATX(1)Value Added Tax Payment
TRAD(1)Trade

Error codes

ErrorDetails ATTRIBUTES
errorCodeCode indicating the type of problem identified.
errorComponentCode indicating the 3-D Secure component that identified the error.
errorDescriptionText describing the problem identified.
errorDetailAdditional detail regarding the problem identified.
ErrorCode possible values
101MESSAGE_RECEIVED_INVALID
102MESSAGE_VERSION_NUMBER_NOT_SUPPORTED
103SENT_MESSAGES_LIMIT_EXCEEDED
201REQUIRED_ELEMENT_MISSING
202CRITICAL_MESSAGE_EXTENSION_NOT_RECOGNIZED
203FORMAT_ON_ONE_OR_MORE_ELEMENTS_INVALID_ACCORDING_SPECS
204DUPLICATE_DATA_ELEMENT
301TRANSACTION_ID_NOT_RECOGNIZED
302DATA_DECRYPTION_FAILURE
303ACCESS_DENIED_INVALID_ENDPOINT
304ISO_CODE_NOT_VALID
305TRANSACTION_DATA_NOT_VALID
306MCC_NOT_VALID_FOR_PAYMENT_SYSTEM
307SERIAL_NUMBER_NOT_VALID
402TRANSACTION_TIMED_OUT
403TRANSIENT_SYSTEM_FAILURE
404PERMANENT_SYSTEM_FAILURE
405SYSTEM_CONNECTION_FAILURE
911DATA_FIELDS_RELEVANCE_CHECK_FAILURE
912DUPLICATED_TRANSACTION_ID
ErrorComponent possible values
« C »THREE_DS_SDK
« S »THREE_DS_SERVER
« D »DIRECTORY_SERVER
« A »ACCESS_CONTROL_SERVER

Codes

Articles

  • HTTP Codes
  • Card authorization - Bank return codes
  • Card Disputes - Bank Return codes
  • Currency codes
  • SDD return codes
  • Country codes
  • Transfer purpose codes
  • SDD purpose codes
  • Error codes

HTTP Codes

Find below the list of HTTP return codes:

200OK
Note: The request was executed correctly
400BAD REQUEST
Note: Wrong parameter or rule
401UNAUTHORIZED
Note: Login / password are missing for HTTP authentication
402PAYMENT_REQUIRED
Note:  Authorization denied*
403FORBIDDEN
Note: Wrong authentication
404NOT FOUND
Note: Incorrect URL
500INTERNAL SERVER ERROR
Note: Server error

(*) Only possible for the creation of a transaction

Card authorization - Bank return codes

Issuer response codes returned to CentralPay after a card authorization request.

These values generally correspond to the ISO 8583 “Response code” (DE39) returned by card networks/issuers. Depending on the scheme, country, and routing, you may also receive network-specific or gateway-specific variants (for example alphanumeric or 3-digit codes).

Important: the same code can cover multiple issuer-side reasons. Unless explicitly stated, CentralPay passes these codes as received. For troubleshooting, combine the response code with your transaction context (amount, currency, 3DS result, merchant category, card brand, retries).

Most common response codes

CodeDescriptionRecommended action
00ApprovedProceed with capture / fulfillment.
02Contact card issuerAsk customer to contact their bank; retry only if customer confirms.
03Invalid acceptorCheck merchant/terminal configuration (MID/TID, acquirer routing).
04Pick up / retain cardDo not retry; follow your in-store procedure (if applicable).
05Do not honorGeneric decline: do not “loop” retries; ask customer to contact issuer or use another payment method.
07Honor with IDIf card-present: request ID verification; otherwise ask customer to contact issuer.
08Time-outRetry once after a short delay; if repeated, check connectivity/acquirer status.
10Unable to reverseEscalate to support with trace/reference; avoid repeated reversals.
11Partial approvalOnly relevant if your flow supports partial approvals (often prepaid); otherwise request another method.
12Invalid transactionCheck request consistency (type, lifecycle, capture/void rules); if persistent, escalate with logs.
13Invalid amountValidate amount format/currency decimals; check min/max constraints.
14Invalid card numberCustomer should re-enter card details; if repeated, use another card.
15Unknown issuerUse another card/payment method; escalate if routing issue suspected.
19Try again laterRetry once later; if repeated, ask customer to contact issuer.
30Format errorCheck field formats (PAN/expiry/CVV, currency, recurring flags); escalate if needed.
33Card expiredCustomer must use another card.
38PIN attempts exceededCardholder must contact issuer / reset PIN; do not retry.
39Transaction not allowedLikely product/merchant restriction; ask customer to contact issuer or use another method.
41Lost cardDo not retry; request another payment method.
43Stolen cardDo not retry; request another payment method.
51Insufficient fundsAsk customer to use another method or wait for funds; avoid repeated immediate retries.
54Expired cardCustomer must use another card.
55Incorrect PINCard-present only: customer must retry carefully or contact issuer after repeated failures.
57Transaction not permitted to cardholderIssuer restriction; ask customer to contact issuer or use another method.
58Transaction prohibited at terminalCheck merchant/terminal capabilities & configuration; may be MCC/terminal restriction.
59Suspected fraudDo not retry “blindly”; ask customer to contact issuer or use a different method; review fraud rules if frequent.
61Exceeds withdrawal/amount limitReduce amount or ask customer to contact issuer.
62Restricted cardIssuer restriction; customer should contact issuer.
65Frequency limit exceededWait and retry later; avoid repeated attempts in short timeframes.
68Response received too lateRetry once; check acquirer/network status if repeated.
75PIN attempts exceededSame as 38: cardholder must contact issuer.
82Invalid CVVCustomer should re-enter CVV; if repeated, use another card.
91Issuer/switch unavailableRetry later; if widespread, treat as incident (issuer/network outage).
94Duplicate requestAvoid immediate retries with same identifiers; ensure idempotency / unique reference.
95Contact acquirerEscalate to support/acquirer with transaction reference.
96System malfunctionRetry later; if repeated, escalate with traces/logs.

All response codes (exhaustive)

The following codes may be returned depending on the network, country, routing, or integration. This section is exhaustive compared to the previous version of this page, and includes both standard and non-standard variants.

CodeDescriptionRecommended action
00Transaction approved or successfully processedProceed with capture / fulfillment.
02Contact card issuerAsk the customer to contact their issuer; retry only if issuer confirms.
03Invalid acceptorCheck merchant/terminal configuration (MID/TID), acquirer routing, and credentials.
04Keep cardDo not retry; follow in-store procedure if applicable; request another payment method.
05Do not honorGeneric decline: avoid retry loops; ask customer to contact issuer or use another method.
06Transaction invalid for terminalCheck terminal capability / transaction type compatibility; verify integration parameters.
07Honor with IDIf card-present: request ID verification; otherwise ask customer to contact issuer.
08Time-OutRetry once after a short delay; if repeated, check network/acquirer connectivity.
09No originalFor reversals/adjustments: ensure you reference an existing original transaction; escalate if needed.
10Unable to reverseDo not repeat reversals blindly; escalate to support with transaction references.
11Partial approvalHandle partial approval if supported (often prepaid); otherwise request another method.
12Invalid transactionCheck transaction type/lifecycle (auth/capture/void/refund), parameters; escalate with logs if persistent.
13Invalid amountValidate amount format, currency decimals, and min/max constraints; retry after correction.
14Invalid cardholder numberCustomer should re-enter card details; if repeated, use another card.
15Unknown card issuerTry another card/payment method; if widespread, suspect routing/config issue and escalate.
17Invalid capture date (terminal business date)Check terminal business date / batch settings; retry after correction if applicable.
19Repeat transaction laterRetry once later; avoid multiple attempts in a short window; ask customer to contact issuer if repeated.
20No From AccountNot typical for purchase flows; verify transaction type and account fields; escalate if unexpected.
21No To AccountNot typical for purchase flows; verify transaction type and account fields; escalate if unexpected.
22Account not verifiedAsk customer to contact issuer; consider another payment method.
23Account not savedRetry later if applicable; otherwise use another method; escalate if recurring.
24No Credit AccountAsk customer to contact issuer; use another method.
25Unable to locate record in fileFor adjustments/reversals: verify original reference; escalate with trace/reference.
26Record duplicatedCheck idempotency and uniqueness of references; do not retry with same identifiers.
27‘Edit’ error in file update fieldCheck field formats and constraints; escalate with payload/logs.
28File access deniedConfiguration/permission issue: escalate to support/acquirer with context.
29File update not possibleEscalate with trace/reference; avoid repeating the same update operation.
30Format errorCheck request formatting (amount/currency, PAN/expiry, flags, message structure); escalate with logs.
31Identifier of acquiring organization unknownCheck acquirer routing and merchant configuration; escalate to support/acquirer.
32Transaction partially completedCheck final status via retrieval; avoid blind retry; escalate if inconsistent.
33Card validity date exceededCustomer must use another card.
34Implausible card dataCustomer should re-enter details; verify card data collection; use another card if repeated.
38Number of PIN attempts exceededDo not retry; customer must contact issuer / reset PIN.
39Transaction not allowedCheck transaction type and merchant capability; ask customer to contact issuer or use another method.
41Lost cardDo not retry; request another payment method.
42Special PickupDo not retry; request another method; in-store: follow procedure if applicable.
43Stolen cardDo not retry; request another payment method.
44Stolen cardDo not retry; request another payment method.
51Insufficient funds or overdraftAsk customer to use another method or wait for funds; avoid repeated immediate retries.
54Card expiredCustomer must use another card.
55Incorrect PINCard-present: retry carefully; if repeated, customer contacts issuer.
56Card not on fileVerify card details; customer should contact issuer or use another card.
57Transaction not authorized to this cardholderIssuer restriction; ask customer to contact issuer or use another method.
58Transaction prohibited at terminalCheck merchant/terminal capabilities and MCC/terminal restrictions; adjust configuration.
59Suspected fraudAvoid retry loops; customer contacts issuer or uses another method; review risk rules if frequent.
60The card acceptor must contact the buyerAsk customer to contact issuer / confirm details; avoid repeated attempts.
61Withdrawal amount over limitReduce amount or ask customer to contact issuer.
62Card use restrictedCustomer contacts issuer; use another method.
63MAC Key ErrorCryptographic/config issue: escalate to support/acquirer with trace and timestamps.
65Frequency limit exceededWait and retry later; avoid multiple attempts in short timeframe.
66Acquirer limit reachedEscalate to acquirer/support; retry only after confirmation.
67Card withheldDo not retry; request another method; in-store: follow procedure if applicable.
68Response not received or received too lateRetry once; if repeated, check acquirer/network status and escalate.
75Number of PIN attempts exceededSame as 38: do not retry; customer must contact issuer.
76Invalid AccountAsk customer to contact issuer; use another card/method.
77Issuer not participating in serviceUse another card or method; escalate if routing/regional issue suspected.
78Function not availableRemove/disable unsupported feature; verify transaction type and integration flags.
79Key validation errorCryptographic/config issue: escalate to support/acquirer with trace.
80Approved for purchase amount onlyIf you requested cash-back/extra: retry without it; otherwise proceed as approved.
81Unable to verify PINCard-present: retry; if repeated, customer contacts issuer or use another method.
82Invalid CVVRe-enter CVV; if repeated, use another card.
83Not refusedTreat as non-decline / ambiguous: verify final status via retrieval; escalate if inconsistent.
84Invalid transaction lifecycleCheck auth/capture/void/refund ordering and timing; fix integration logic.
85No key to useCryptographic/config issue: escalate to support/acquirer.
86KME synchronization errorCryptographic sync issue: escalate with logs, trace, timestamps.
87PIN errorCard-present: retry; if repeated, customer contacts issuer.
88MAC synchronization errorCryptographic sync issue: escalate with logs, trace, timestamps.
89Security violationStop retries; escalate to support/acquirer; review fraud/security configuration.
90Temporary system shutdownRetry later; if persistent, treat as incident and escalate.
91Card transmitter inaccessibleRetry later; if widespread, treat as issuer/network outage.
92Card issuer unknownUse another card; if repeated across cards, suspect routing/config and escalate.
93Transacation cannot be finalizedRetry later once; if persistent, escalate with trace/logs.
94Duplicate requestEnsure idempotency / unique references; do not resend the exact same request.
95Contact acquirerEscalate to support/acquirer with transaction reference and timestamps.
96System malfunctionRetry later; if repeated, escalate with traces/logs.
97No Funds TransferNot typical for purchase flows; verify transaction type; escalate if unexpected.
98Duplicate ReversalDo not repeat reversal; verify original reversal status; ensure idempotency.
99Duplicate TransactionCheck idempotency and client retries; ensure unique transaction identifiers.
N3Cash Service Not AvailableNot applicable to purchase flows; ignore unless supporting cash services.
N4Cash Back Request Exceeds Issuer LimitReduce cash-back amount or remove cash-back.
N7Declined for CVV2 failureRe-enter CVV; if repeated, use another card.
R0Stop Payment OrderDo not retry; customer must contact issuer.
R1Revocation of Authorisation OrderDo not retry; customer must contact issuer.
R3Revocation of all Authorisations OrderDo not retry; customer must contact issuer.
A0Withdrawal in contact modeNot applicable to e-commerce purchase flows; verify transaction type; remove cash/withdrawal feature if not supported.
A1VADS fallbackRouting/fallback case: verify gateway/acquirer configuration; escalate if frequent or unexpected.
000ApprovedProceed with capture / fulfillment.
001Approve with IDIf supported: apply ID verification; otherwise treat as approved.
002Partial approval (prepaid cards only)Handle partial approval if supported; otherwise request another method.
100RejectGeneric decline: avoid retry loops; ask customer to contact issuer or use another method.
101Card expired / invalid expiry dateCustomer must use another card.
106PIN attempts exceededDo not retry; customer must contact issuer.
107Please call issuerCustomer must contact issuer; retry only after confirmation.
109Invalid merchantCheck merchant configuration and routing; escalate to support/acquirer.
110Invalid amountValidate amount format/limits; retry after correction.
111Invalid account / Invalid MICR (traveler’s check)Ask customer to contact issuer; use another card/method.
115Requested function not supportedDisable unsupported feature/flag; verify transaction type.
117Invalid PINCard-present: retry carefully; if repeated, customer contacts issuer.
119Cardholder not registered / not authorizedCustomer must contact issuer; use another method.
122Invalid card security code (alias CID, 4DBC, 4CSC)Re-enter security code; if repeated, use another card.
125Invalid effective dateCheck date fields / terminal business date; escalate if applicable.
181Format errorCheck request formatting and fields; escalate with logs if persistent.
183Invalid currency codeVerify ISO currency code and acquirer configuration; correct and retry.
187Refuse – New card issuedCustomer must use another card; advise contacting issuer.
189Refuse – Merchant cancelled or closed / SECheck merchant status/configuration; escalate to support/acquirer.
200Refuse – Pick up cardDo not retry; request another method; in-store: follow procedure if applicable.
900Accepted – ATC synchronizationProceed but monitor; if repeated, escalate (potential chip/crypto sync issue).
909System malfunction (cryptographic error)Escalate to support/acquirer with trace, timestamps, and logs.
912Issuer not availableRetry later; if widespread, treat as issuer outage / incident.

Card Disputes - Bank Return codes

CB Scheme

CBDescriptionGIE DISPUTE
12Unauthorized TransactionTRANSACTION_NOT_AUTHORIZED
13Merchant Forced TransactionINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
14Unauthorized TransactionTRANSACTION_NOT_AUTHORIZED
15Guarantee by Card, by Day and by SIRETTRANSACTION_NOT_AUTHORIZED
16PIN Not VerifiedTRANSACTION_NOT_AUTHORIZED
17Invalid SIRETTRANSACTION_NOT_AUTHORIZED
18Certificate Not VerifiableTRANSACTION_NOT_AUTHORIZED
21Expired CardTRANSACTION_NOT_AUTHORIZED
22Late PresentmentINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
23Missing ImprintINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
25Exceeds Transaction Amount LimitINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
27Credit Not ProcessedTRANSACTION_NOT_AUTHORIZED
28Credit Processed as DebitTRANSACTION_NOT_AUTHORIZED
40Cancelled CardINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
41Documentation Not Provided or IllegibleINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
42Duplicate ProcessingDUPLICATE
43No Such Card NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
44Disputed AmountFRAUDULENT
45Disputed TransactionFRAUDULENT
46Merchant Bankruptcy or Judicial ReorganizationINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
61Merchant Suspended or TerminatedTRANSACTION_NOT_AUTHORIZED
62Transaction Not PermittedTRANSACTION_NOT_AUTHORIZED

Mastercard Scheme

MASTERCARDDescriptionGIE DISPUTE
4801Requested Transaction Data Not ReceivedTRANSACTION_NOT_AUTHORIZED
4802Cardholder Does Not Recognize TransactionTRANSACTION_NOT_AUTHORIZED
4807Cardholder Disputes a CreditFRAUDULENT
4808Authorization-Related ChargebackTRANSACTION_NOT_AUTHORIZED
4809Transaction Not AuthorizedFRAUDULENT
4810Fraud — Card-Not-Present EnvironmentFRAUDULENT
4522Goods or Services Not as Described / Not ReceivedOTHER
4811Credit Not ProcessedTRANSACTION_NOT_AUTHORIZED
4812Fraud — Card-Present EnvironmentTRANSACTION_NOT_AUTHORIZED
4831Goods or Services Not ReceivedINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4834Duplicate ProcessingDUPLICATE
4835Transaction Processing ErrorTRANSACTION_NOT_AUTHORIZED
4837No Cardholder Authorization (Lost/Stolen Card)FRAUDULENT
4840Fraudulent Processing of TransactionsFRAUDULENT
4841Cancelled Recurring TransactionTRANSACTION_NOT_AUTHORIZED
4842Counterfeit CardTRANSACTION_NOT_AUTHORIZED
4843Transaction Not Valid / Authorization ReversalTRANSACTION_NOT_AUTHORIZED
4846Non-Compliance With Authorization RequirementsINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4847Invalid Recurring TransactionINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
4849Duplicate ProcessingDUPLICATE
4850ATM Cash Disbursement Not AuthorizedTRANSACTION_NOT_AUTHORIZED
4851Cardholder Disputes Transaction (Offline)TRANSACTION_NOT_AUTHORIZED
4853Cardholder Disputes Transaction Not as DescribedPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4854Exceeds Floor LimitPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4855Non-Receipt of Merchandise / ServicesPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
4857Cardholder Disputes Transaction — Services Not ProvidedTRANSACTION_NOT_AUTHORIZED
4859Services Not Provided / Merchandise Not ReceivedTRANSACTION_NOT_AUTHORIZED
4860Transaction Processing ErrorTRANSACTION_NOT_AUTHORIZED
4862Cardholder Disputes Transaction — Invalid AuthorizationTRANSACTION_NOT_AUTHORIZED
4863Credit Not Processed / Cash Not DispensedFRAUDULENT
4870Chip Liability Shift — Counterfeit FraudFRAUDULENT
4871Chip Liability Shift — Lost/Stolen FraudFRAUDULENT
4880Late PresentmentTRANSACTION_NOT_AUTHORIZED
4890Currency Conversion DisputeTRANSACTION_NOT_AUTHORIZED
4900Defective/Not as Described MerchandiseOTHER
4901Credit Not ProcessedOTHER
4902Merchandise Not AcceptedOTHER
4903Incorrect Merchandise DeliveredOTHER
4905Services Not ProvidedOTHER
4908Cash Not DispensedOTHER

Visa Scheme

VISADescriptionGIE DISPUTE
10Fraud — Card-Absent EnvironmentFRAUDULENT
11Fraud — Card-Present EnvironmentTRANSACTION_NOT_AUTHORIZED
12Incorrect Transaction Amount or Account NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
13Fraudulent Transaction — No AuthorizationFRAUDULENT
30Services Not Provided or Merchandise Not ReceivedPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
41Credit Not ProcessedOTHER
53Not as Described or Defective MerchandiseOTHER
57Fraudulent Transaction — No Cardholder AuthorizationFRAUDULENT
62Counterfeit TransactionFRAUDULENT
70Processing ErrorOTHER
71Declined AuthorizationOTHER
72Cancelled TransactionOTHER
73Duplicate ProcessingOTHER
74Credit Not ProcessedOTHER
75Transaction Not RecognizedOTHER
76Incorrect Transaction Amount or Account NumberOTHER
77Non-Receipt of MerchandiseINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
78Fraudulent Transaction — No Cardholder AuthorizationOTHER
80Incorrect Transaction Amount or Account NumberINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
81Fraudulent Transaction — Lost CardFRAUDULENT
82Fraudulent Transaction — Stolen CardDUPLICATE
83Fraudulent Transaction — Card-Absent EnvironmentFRAUDULENT
85Duplicate ProcessingOTHER
86Non-Compliance With AuthorizationDUPLICATE
93Late PresentmentFRAUDULENT
1001Fraud — Card-Absent Environment (E-Commerce)FRAUDULENT
1002Fraudulent Transaction — E-CommerceFRAUDULENT
1003Services Not Provided or Merchandise Not ReceivedFRAUDULENT
1004Fraudulent Transaction — No Cardholder AuthorizationFRAUDULENT
1005Not as Described or Defective MerchandiseFRAUDULENT
1101Processing Error — AuthorizationOTHER
1102Incorrect Transaction AmountOTHER
1103Exceeds Authorized AmountOTHER
1201Services Not Provided or Merchandise Not ReceivedOTHER
1202Not as Described Merchandise / ServiceOTHER
1203Recurring Transaction Not RecognizedOTHER
1204Defective MerchandiseINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
1205Services Not ProvidedINCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
1206Non-Receipt of MerchandiseDUPLICATE
1207Duplicate ProcessingOTHER
1301Fraudulent Transaction — Card-Present EnvironmentPRODUCT_NOT_RECEIVED_OR_SERVICE_NOT_PROVIDED
1302Fraudulent Transaction — No Cardholder AuthorizationOTHER
1303Fraudulent Transaction — Card-Absent EnvironmentOTHER
1304Duplicate ProcessingOTHER
1305Services Not Provided or Merchandise Not ReceivedOTHER
1306Credit Not ProcessedOTHER
1307Recurring Transaction Not RecognizedOTHER
1308Transaction Processing ErrorOTHER

Currency codes

List of currency codes:

AED
UAE Dirham
Currency code: 784
AFN
Afghani
Currency code: 971
ALL
Lek
Currency code: 008
AMD
Armenian Dram
Currency code: 051
ANG
Netherlands Antillean Guilder
Currency code: 532
AOA
Kwanza
Currency code: 973
ARS
Argentine Peso
Currency code: 032
AUD
Australian Dollar
Currency code: 036
AWG
Aruban Florin
Currency code: 533
AZN
Azerbaijanian Manat
Currency code: 944
BAM
Convertible Mark
Currency code: 977
BBD
Barbados Dollar
Currency code: 052
BDT
Taka
Currency code: 050
BGN
Bulgarian Lev
Currency code: 975
BHD
Bahraini Dinar
Currency code: 048
BIF
Burundi Franc
Currency code: 108
BMD
Bermudian Dollar
Currency code: 060
BND
Brunei Dollar
Currency code: 096
BOB
Boliviano
Currency code: 068
BOV
Mvdol
Currency code: 984
BRL
Brazilian Real
Currency code: 986
BSD
Bahamian Dollar
Currency code: 044
BTN
Ngultrum
Currency code: 064
BWP
Pula
Currency code: 072
BYR
Belarussian Ruble
Currency code: 974
BZD
Belize Dollar
Currency code: 084
CAD
Canadian Dollar
Currency code: 124
CDF
Congolese Franc
Currency code: 976
CHE
WIR Euro
Currency code: 947
CHF
Swiss Franc
Currency code: 756
CHW
WIR Franc
Currency code: 948
CLF
Unidad de Fomento
Currency code: 990
CLP
Chilean Peso
Currency code: 152
CNY
Yuan Renminbi
Currency code: 156
COP
Colombian Peso
Currency code: 170
COU
Unidad de Valor Real
Currency code: 970
CRC
Costa Rican Colon
Currency code: 188
CUC
Peso Convertible
Currency code: 931
CUP
Cuban Peso
Currency code: 192
CVE
Cabo Verde Escudo
Currency code: 132
CZK
Czech Koruna
Currency code: 203
DJF
Djibouti Franc
Currency code: 262
DKK
Danish Krone
Currency code: 208
DOP
Dominican Peso
Currency code: 214
DZD
Algerian Dinar
Currency code: 012
EGP
Egyptian Pound
Currency code: 818
ERN
Nakfa
Currency code: 232
ETB
Ethiopian Birr
Currency code: 230
EUR
Euro
Currency code: 978
FJD
Fiji Dollar
Currency code: 242
FKP
Falkland Islands Pound
Currency code: 238
GBP
Pound Sterling
Currency code: 826
GEL
Lari
Currency code: 981
GHS
Ghana Cedi
Currency code: 936
GIP
Gibraltar Pound
Currency code: 292
GMD
Dalasi
Currency code: 270
GNF
Guinea Franc
Currency code: 324
GTQ
Quetzal
Currency code: 320
GYD
Guyana Dollar
Currency code: 328
HKD
Hong Kong Dollar
Currency code: 344
HNL
Lempira
Currency code: 340
HRK
Kuna
Currency code: 191
HTG
Gourde
Currency code: 332
HUF
Forint
Currency code: 348
IDR
Rupiah
Currency code: 360
ILS
New Israeli Sheqel
Currency code: 376
INR
Indian Rupee
Currency code: 356
IQD
Iraqi Dinar
Currency code: 368
IRR
Iranian Rial
Currency code: 364
ISK
Iceland Krona
Currency code: 352
JMD
Jamaican Dollar
Currency code: 388
JOD
Jordanian Dinar
Currency code: 400
JPY
Yen
Currency code: 392
KES
Kenyan Shilling
Currency code: 404
KGS
Som
Currency code: 417
KHR
Riel
Currency code: 116
KMF
Comoro Franc
Currency code: 174
KPW
North Korean Won
Currency code: 408
KRW
Won
Currency code: 410
KWD
Kuwaiti Dinar
Currency code: 414
KYD
Cayman Islands Dollar
Currency code: 136
KZT
Tenge
Currency code: 398
LAK
Kip
Currency code: 418
LBP
Lebanese Pound
Currency code: 422
LKR
Sri Lanka Rupee
Currency code: 144
LRD
Liberian Dollar
Currency code: 430
LSL
Loti
Currency code: 426
LYD
Libyan Dinar
Currency code: 434
MAD
Moroccan Dirham
Currency code: 504
MDL
Moldovan Leu
Currency code: 498
MGA
Malagasy Ariary
Currency code: 969
MKD
Denar
Currency code: 807
MMK
Kyat
Currency code: 104
MNT
Tugrik
Currency code: 496
MOP
Pataca
Currency code: 446
MRO
Ouguiya
Currency code: 478
MUR
Mauritius Rupee
Currency code: 480
MVR
Rufiyaa
Currency code: 462
MWK
Kwacha
Currency code: 454
MXN
Mexican Peso
Currency code: 484
MXV
Mexican Unidad de Inversion (UDI)
Currency code: 979
MYR
Malaysian Ringgit
Currency code: 458
MZN
Mozambique Metical
Currency code: 943
NAD
Namibia Dollar
Currency code: 516
NGN
Naira
Currency code: 566
NIO
Cordoba Oro
Currency code: 558
NOK
Norwegian Krone
Currency code: 578
NPR
Nepalese Rupee
Currency code: 524
NZD
New Zealand Dollar
Currency code: 554
OMR
Rial Omani
Currency code: 512
PAB
Balboa
Currency code: 590
PEN
Nuevo Sol
Currency code: 604
PGK
Kina
Currency code: 598
PHP
Philippine Peso
Currency code: 608
PKR
Pakistan Rupee
Currency code: 586
PLN
Zloty
Currency code: 985
PYG
Guarani
Currency code: 600
QAR
Qatari Rial
Currency code: 634
RON
Romanian Leu
Currency code: 946
RSD
Serbian Dinar
Currency code: 941
RUB
Russian Ruble
Currency code: 643
RWF
Rwanda Franc
Currency code: 646
SAR
Saudi Riyal
Currency code: 682
SBD
Solomon Islands Dollar
Currency code: 090
SCR
Seychelles Rupee
Currency code: 690
SDG
Sudanese Pound
Currency code: 938
SEK
Swedish Krona
Currency code: 752
SGD
Singapore Dollar
Currency code: 702
SHP
Saint Helena Pound
Currency code: 654
SLL
Leone
Currency code: 694
SOS
Somali Shilling
Currency code: 706
SRD
Surinam Dollar
Currency code: 968
SSP
South Sudanese Pound
Currency code: 728
STD
Dobra
Currency code: 678
SVC
El Salvador Colon
Currency code: 222
SYP
Syrian Pound
Currency code: 760
SZL
Lilangeni
Currency code: 748
THB
Baht
Currency code: 764
TJS
Somoni
Currency code: 972
TMT
Turkmenistan New Manat
Currency code: 934
TND
Tunisian Dinar
Currency code: 788
TOP
Pa’anga
Currency code: 776
TRY
Turkish Lira
Currency code: 949
TTD
Trinidad and Tobago Dollar
Currency code: 780
TWD
New Taiwan Dollar
Currency code: 901
TZS
Tanzanian Shilling
Currency code: 834
UAH
Hryvnia
Currency code: 980
UGX
Uganda Shilling
Currency code: 800
USD
US Dollar
Currency code: 840
USN
US Dollar (Next day)
Currency code: 997
UYI
Uruguay Peso en Unidades Indexadas (URUIURUI)
Currency code: 940
UYU
Peso Uruguayo
Currency code: 858
UZS
Uzbekistan Sum
Currency code: 860
VEF
Bolivar
Currency code: 937
VND
Dong
Currency code: 704
VUV
Vatu
Currency code: 548
WST
Tala
Currency code: 882
XAG
Silver
Currency code: 961
XAU
Gold
Currency code: 959
XBA
Bond Markets Unit European Composite Unit (EURCO)
Currency code: 955
XBB
Bond Markets Unit European Monetary Unit (E.M.U.-6)
Currency code: 956
XBC
Bond Markets Unit European Unit of Account 9 (E.U.A.-9)
Currency code: 957
XBD
Bond Markets Unit European Unit of Account 17 (E.U.A.-17)
Currency code: 958
XCD
East Caribbean Dollar
Currency code: 951
XDR
SDR (Special Drawing Right)
Currency code: 960
XOF
CFA Franc BCEAO
Currency code: 952
XPD
Palladium
Currency code: 964
XPF
CFP Franc
Currency code: 953
XPT
Platinum
Currency code: 962
XSU
Sucre
Currency code: 994
XTS
Codes specifically reserved for testing purposes
Currency code: 963
XUA
ADB Unit of Account
Currency code: 965
XXX
The codes assigned for transactions where no currency is involved
Currency code: 999
YER
Yemeni Rial
Currency code: 886
ZAR
Rand
Currency code: 710
ZMW
Zambian Kwacha
Currency code: 967
ZWL
Zimbabwe Dollar
Currency code: 932

Description of the certification « ISO 4217:2008 » is available at this url:

  • http://www.iso.org/iso/home/standards/currency_codes.htm

SDD return codes

Return CodeDescription
AB05Timeout Creditor Agent
AB06Timeout Instructed Agent
AB07Offline Agent
AB08Offline Creditor Agent
AB09Error Creditor Agent
AB10Error Instructed Agent
AC01Incorrect Account Number
AC03Invalid Creditor Account Number
AC04Account Closed
AC06Account blocked, reason not specified
AC13Wrong Debtor account
AG01Forbidden on this type of account
AG02Operation/Transaction code incorrect, invalid file format
AG09Payment Not Received
AG10Agent Suspended
AG11Creditor Agent Suspended
AGNTIncorrect Agent
AM02Not Allowed Amount
AM04Insufficient Funds
AM05Duplicate payment
AM09Wrong Amount
AM23Amount Exceeds Settlement Limit
ARDTAlready a returned transaction
BE04Account address invalid
BE05Creditor Identifier incorrect
CUSTCustomer decision
CURRIncorrect Currency
CUTACancellation Upon Unable to Apply
CNORCreditor Bank is not Registered
DNORDebtor Bank is not Registered
DUPLDuplicate Payment
ED05Settlement Failed
ERINERI Option Not Supported
FF01Invalid File Format
FOCRPositive answer to the recall or RfRO
FRADFraudulent originated credit transfer
LEGLLegal Decision
MD01No valid mandate
MD02Mandate data missing or invalid
MD06Refund Request By End Customer
MD07Beneficiary Deceased
MS02By order of the beneficiary
MS03Reason not specified
NOASNo Answer From Customer
NOORNo Original Transaction Received
RC01Invalid BIC
RC07Invalid Creditor BIC Identifier
RR01Missing Debtor Account Or Identification
RR02Missing Debtors Name Or Address
RR03Missing Creditors Name Or Address
RR04Regulatory Reason
SL01Specific service offered by debtor Bank
TECHTechnical problems resulting in erroneous SCT’s
TM01Invalid Cut Off Time
UPAYUndue Payment

Country codes

List of country codes:

004
Afghanistan
Alpha2 code: AF
Alpha3 code: AFG
008
Albania
Alpha2 code: AL
Alpha3 code: ALB
010
Antarctica
Alpha2 code: AQ
Alpha3 code: ATA
012
Algeria
Alpha2 code: DZ
Alpha3 code: DZA
016
American Samoa
Alpha2 code: AS
Alpha3 code: ASM
020
Andorra
Alpha2 code: AD
Alpha3 code: AND
024
Angola
Alpha2 code: AO
Alpha3 code: AGO
028
Antigua and Barbuda
Alpha2 code: AG
Alpha3 code: ATG
031
Azerbaijan
Alpha2 code: AZ
Alpha3 code: AZE
032
Argentina
Alpha2 code: AR
Alpha3 code: ARG
036
Australia
Alpha2 code: AU
Alpha3 code: AUS
040
Austria
Alpha2 code: AT
Alpha3 code: AUT
044
Bahamas (the)
Alpha2 code: BS
Alpha3 code: BHS
048
Bahrain
Alpha2 code: BH
Alpha3 code: BHR
050
Bangladesh
Alpha2 code: BD
Alpha3 code: BGD
051
Armenia
Alpha2 code: AM
Alpha3 code: ARM
052
Barbados
Alpha2 code: BB
Alpha3 code: BRB
056
Belgium
Alpha2 code: BE
Alpha3 code: BEL
060
Bermuda
Alpha2 code: BM
Alpha3 code: BMU
064
Bhutan
Alpha2 code: BT
Alpha3 code: BTN
068
Bolivia, Plurinational State of
Alpha2 code: BO
Alpha3 code: BOL
070
Bosnia and Herzegovina
Alpha2 code: BA
Alpha3 code: BIH
072
Botswana
Alpha2 code: BW
Alpha3 code: BWA
074
Bouvet Island
Alpha2 code: BV
Alpha3 code: BVT
076
Brazil
Alpha2 code: BR
Alpha3 code: BRA
084
Belize
Alpha2 code: BZ
Alpha3 code: BLZ
086
British Indian Ocean Territory (the)
Alpha2 code: IO
Alpha3 code: IOT
090
Solomon Islands (the)
Alpha2 code: SB
Alpha3 code: SLB
092
Virgin Islands (British)
Alpha2 code: VG
Alpha3 code: VGB
096
Brunei Darussalam
Alpha2 code: BN
Alpha3 code: BRN
100
Bulgaria
Alpha2 code: BG
Alpha3 code: BGR
104
Myanmar
Alpha2 code: MM
Alpha3 code: MMR
108
Burundi
Alpha2 code: BI
Alpha3 code: BDI
112
Belarus
Alpha2 code: BY
Alpha3 code: BLR
116
Cambodia
Alpha2 code: KH
Alpha3 code: KHM
120
Cameroon
Alpha2 code: CM
Alpha3 code: CMR
124
Canada
Alpha2 code: CA
Alpha3 code: CAN
132
Cape Verde
Alpha2 code: CV
Alpha3 code: CPV
136
Cayman Islands (the)
Alpha2 code: KY
Alpha3 code: CYM
140
Central African Republic (the)
Alpha2 code: CF
Alpha3 code: CAF
144
Sri Lanka
Alpha2 code: LK
Alpha3 code: LKA
148
Chad
Alpha2 code: TD
Alpha3 code: TCD
152
Chile
Alpha2 code: CL
Alpha3 code: CHL
156
China
Alpha2 code: CN
Alpha3 code: CHN
158
Taiwan (Province of China)
Alpha2 code: TW
Alpha3 code: TWN
162
Christmas Island
Alpha2 code: CX
Alpha3 code: CXR
166
Cocos (Keeling) Islands (the)
Alpha2 code: CC
Alpha3 code: CCK
170
Colombia
Alpha2 code: CO
Alpha3 code: COL
174
Comoros
Alpha2 code: KM
Alpha3 code: COM
175
Mayotte
Alpha2 code: YT
Alpha3 code: MYT
178
Congo
Alpha2 code: CG
Alpha3 code: COG
180
Congo (the Democratic Republic of the)
Alpha2 code: CD
Alpha3 code: COD
184
Cook Islands (the)
Alpha2 code: CK
Alpha3 code: COK
188
Costa Rica
Alpha2 code: CR
Alpha3 code: CRI
191
Croatia
Alpha2 code: HR
Alpha3 code: HRV
192
Cuba
Alpha2 code: CU
Alpha3 code: CUB
196
Cyprus
Alpha2 code: CY
Alpha3 code: CYP
203
Czech Republic (the)
Alpha2 code: CZ
Alpha3 code: CZE
204
Benin
Alpha2 code: BJ
Alpha3 code: BEN
208
Denmark
Alpha2 code: DK
Alpha3 code: DNK
212
Dominica
Alpha2 code: DM
Alpha3 code: DMA
214
Dominican Republic (the)
Alpha2 code: DO
Alpha3 code: DOM
218
Ecuador
Alpha2 code: EC
Alpha3 code: ECU
222
El Salvador
Alpha2 code: SV
Alpha3 code: SLV
226
Equatorial Guinea
Alpha2 code: GQ
Alpha3 code: GNQ
231
Ethiopia
Alpha2 code: ET
Alpha3 code: ETH
232
Eritrea
Alpha2 code: ER
Alpha3 code: ERI
233
Estonia
Alpha2 code: EE
Alpha3 code: EST
234
Faroe Islands (the)
Alpha2 code: FO
Alpha3 code: FRO
238
Falkland Islands (the) [Malvinas]
Alpha2 code: FK
Alpha3 code: FLK
239
South Georgia and the South Sandwich Islands
Alpha2 code: GS
Alpha3 code: SGS
242
Fiji
Alpha2 code: FJ
Alpha3 code: FJI
246
Finland
Alpha2 code: FI
Alpha3 code: FIN
248
Ã…land Islands
Alpha2 code: AX
Alpha3 code: ALA
250
France
Alpha2 code: FR
Alpha3 code: FRA
254
French Guiana
Alpha2 code: GF
Alpha3 code: GUF
258
French Polynesia
Alpha2 code: PF
Alpha3 code: PYF
260
French Southern Territories (the)
Alpha2 code: TF
Alpha3 code: ATF
262
Djibouti
Alpha2 code: DJ
Alpha3 code: DJI
266
Gabon
Alpha2 code: GA
Alpha3 code: GAB
268
Georgia
Alpha2 code: GE
Alpha3 code: GEO
270
Gambia (The)
Alpha2 code: GM
Alpha3 code: GMB
275
Palestine, State of
Alpha2 code: PS
Alpha3 code: PSE
276
Germany
Alpha2 code: DE
Alpha3 code: DEU
288
Ghana
Alpha2 code: GH
Alpha3 code: GHA
292
Gibraltar
Alpha2 code: GI
Alpha3 code: GIB
296
Kiribati
Alpha2 code: KI
Alpha3 code: KIR
300
Greece
Alpha2 code: GR
Alpha3 code: GRC
304
Greenland
Alpha2 code: GL
Alpha3 code: GRL
308
Grenada
Alpha2 code: GD
Alpha3 code: GRD
312
Guadeloupe
Alpha2 code: GP
Alpha3 code: GLP
316
Guam
Alpha2 code: GU
Alpha3 code: GUM
320
Guatemala
Alpha2 code: GT
Alpha3 code: GTM
324
Guinea
Alpha2 code: GN
Alpha3 code: GIN
328
Guyana
Alpha2 code: GY
Alpha3 code: GUY
332
Haiti
Alpha2 code: HT
Alpha3 code: HTI
334
Heard Island and McDonald Islands
Alpha2 code: HM
Alpha3 code: HMD
336
Holy See (the) [Vatican City State]
Alpha2 code: VA
Alpha3 code: VAT
340
Honduras
Alpha2 code: HN
Alpha3 code: HND
344
Hong Kong
Alpha2 code: HK
Alpha3 code: HKG
348
Hungary
Alpha2 code: HU
Alpha3 code: HUN
352
Iceland
Alpha2 code: IS
Alpha3 code: ISL
356
India
Alpha2 code: IN
Alpha3 code: IND
360
Indonesia
Alpha2 code: ID
Alpha3 code: IDN
364
Iran (the Islamic Republic of)
Alpha2 code: IR
Alpha3 code: IRN
368
Iraq
Alpha2 code: IQ
Alpha3 code: IRQ
372
Ireland
Alpha2 code: IE
Alpha3 code: IRL
376
Israel
Alpha2 code: IL
Alpha3 code: ISR
380
Italy
Alpha2 code: IT
Alpha3 code: ITA
384
Ivory coast
Alpha2 code: CI
Alpha3 code: CIV
388
Jamaica
Alpha2 code: JM
Alpha3 code: JAM
392
Japan
Alpha2 code: JP
Alpha3 code: JPN
398
Kazakhstan
Alpha2 code: KZ
Alpha3 code: KAZ
400
Jordan
Alpha2 code: JO
Alpha3 code: JOR
404
Kenya
Alpha2 code: KE
Alpha3 code: KEN
408
Korea (the Democratic People’s Republic of)
Alpha2 code: KP
Alpha3 code: PRK
410
Korea (the Republic of)
Alpha2 code: KR
Alpha3 code: KOR
414
Kuwait
Alpha2 code: KW
Alpha3 code: KWT
417
Kyrgyzstan
Alpha2 code: KG
Alpha3 code: KGZ
418
Lao People’s Democratic Republic (the)
Alpha2 code: LA
Alpha3 code: LAO
422
Lebanon
Alpha2 code: LB
Alpha3 code: LBN
426
Lesotho
Alpha2 code: LS
Alpha3 code: LSO
428
Latvia
Alpha2 code: LV
Alpha3 code: LVA
430
Liberia
Alpha2 code: LR
Alpha3 code: LBR
434
Libya
Alpha2 code: LY
Alpha3 code: LBY
438
Liechtenstein
Alpha2 code: LI
Alpha3 code: LIE
440
Lithuania
Alpha2 code: LT
Alpha3 code: LTU
442
Luxembourg
Alpha2 code: LU
Alpha3 code: LUX
446
Macao
Alpha2 code: MO
Alpha3 code: MAC
450
Madagascar
Alpha2 code: MG
Alpha3 code: MDG
454
Malawi
Alpha2 code: MW
Alpha3 code: MWI
458
Malaysia
Alpha2 code: MY
Alpha3 code: MYS
462
Maldives
Alpha2 code: MV
Alpha3 code: MDV
466
Mali
Alpha2 code: ML
Alpha3 code: MLI
470
Malta
Alpha2 code: MT
Alpha3 code: MLT
474
Martinique
Alpha2 code: MQ
Alpha3 code: MTQ
478
Mauritania
Alpha2 code: MR
Alpha3 code: MRT
480
Mauritius
Alpha2 code: MU
Alpha3 code: MUS
484
Mexico
Alpha2 code: MX
Alpha3 code: MEX
492
Monaco
Alpha2 code: MC
Alpha3 code: MCO
496
Mongolia
Alpha2 code: MN
Alpha3 code: MNG
498
Moldova (the Republic of)
Alpha2 code: MD
Alpha3 code: MDA
499
Montenegro
Alpha2 code: ME
Alpha3 code: MNE
500
Montserrat
Alpha2 code: MS
Alpha3 code: MSR
504
Morocco
Alpha2 code: MA
Alpha3 code: MAR
508
Mozambique
Alpha2 code: MZ
Alpha3 code: MOZ
512
Oman
Alpha2 code: OM
Alpha3 code: OMN
516
Namibia
Alpha2 code: NA
Alpha3 code: NAM
520
Nauru
Alpha2 code: NR
Alpha3 code: NRU
524
Nepal
Alpha2 code: NP
Alpha3 code: NPL
528
Netherlands (the)
Alpha2 code: NL
Alpha3 code: NLD
531
Curacao
Alpha2 code: CW
Alpha3 code: CUW
533
Aruba
Alpha2 code: AW
Alpha3 code: ABW
534
Sint Maarten (Dutch part)
Alpha2 code: SX
Alpha3 code: SXM
535
Bonaire, Sint Eustatius and Saba
Alpha2 code: BQ
Alpha3 code: BES
540
New Caledonia
Alpha2 code: NC
Alpha3 code: NCL
548
Vanuatu
Alpha2 code: VU
Alpha3 code: VUT
554
New Zealand
Alpha2 code: NZ
Alpha3 code: NZL
558
Nicaragua
Alpha2 code: NI
Alpha3 code: NIC
562
Niger (the)
Alpha2 code: NE
Alpha3 code: NER
566
Nigeria
Alpha2 code: NG
Alpha3 code: NGA
570
Niue
Alpha2 code: NU
Alpha3 code: NIU
574
Norfolk Island
Alpha2 code: NF
Alpha3 code: NFK
578
Norway
Alpha2 code: NO
Alpha3 code: NOR
580
Northern Mariana Islands (the)
Alpha2 code: MP
Alpha3 code: MNP
581
United States Minor Outlying Islands (the)
Alpha2 code: UM
Alpha3 code: UMI
583
Micronesia (the Federated States of)
Alpha2 code: FM
Alpha3 code: FSM
584
Marshall Islands (the)
Alpha2 code: MH
Alpha3 code: MHL
585
Palau
Alpha2 code: PW
Alpha3 code: PLW
586
Pakistan
Alpha2 code: PK
Alpha3 code: PAK
591
Panama
Alpha2 code: PA
Alpha3 code: PAN
598
Papua New Guinea
Alpha2 code: PG
Alpha3 code: PNG
600
Paraguay
Alpha2 code: PY
Alpha3 code: PRY
604
Peru
Alpha2 code: PE
Alpha3 code: PER
608
Philippines (the)
Alpha2 code: PH
Alpha3 code: PHL
612
Pitcairn
Alpha2 code: PN
Alpha3 code: PCN
616
Poland
Alpha2 code: PL
Alpha3 code: POL
620
Portugal
Alpha2 code: PT
Alpha3 code: PRT
624
Guinea-Bissau
Alpha2 code: GW
Alpha3 code: GNB
626
Timor-Leste
Alpha2 code: TL
Alpha3 code: TLS
630
Puerto Rico
Alpha2 code: PR
Alpha3 code: PRI
634
Qatar
Alpha2 code: QA
Alpha3 code: QAT
638
Réunion
Alpha2 code: RE
Alpha3 code: REU
642
Romania
Alpha2 code: RO
Alpha3 code: ROU
643
Russian Federation (the)
Alpha2 code: RU
Alpha3 code: RUS
646
Rwanda
Alpha2 code: RW
Alpha3 code: RWA
652
Saint Barthélemy
Alpha2 code: BL
Alpha3 code: BLM
654
Saint Helena, Ascension and Tristan da Cunha
Alpha2 code: SH
Alpha3 code: SHN
659
Saint Kitts and Nevis
Alpha2 code: KN
Alpha3 code: KNA
660
Anguilla
Alpha2 code: AI
Alpha3 code: AIA
662
Saint Lucia
Alpha2 code: LC
Alpha3 code: LCA
663
Saint Martin (French part)
Alpha2 code: MF
Alpha3 code: MAF
666
Saint Pierre and Miquelon
Alpha2 code: PM
Alpha3 code: SPM
670
Saint Vincent and the Grenadines
Alpha2 code: VC
Alpha3 code: VCT
674
San Marino
Alpha2 code: SM
Alpha3 code: SMR
678
Sao Tome and Principe
Alpha2 code: ST
Alpha3 code: STP
682
Saudi Arabia
Alpha2 code: SA
Alpha3 code: SAU
686
Senegal
Alpha2 code: SN
Alpha3 code: SEN
688
Serbia
Alpha2 code: RS
Alpha3 code: SRB
690
Seychelles
Alpha2 code: SC
Alpha3 code: SYC
694
Sierra Leone
Alpha2 code: SL
Alpha3 code: SLE
702
Singapore
Alpha2 code: SG
Alpha3 code: SGP
703
Slovakia
Alpha2 code: SK
Alpha3 code: SVK
704
Viet Nam
Alpha2 code: VN
Alpha3 code: VNM
705
Slovenia
Alpha2 code: SI
Alpha3 code: SVN
706
Somalia
Alpha2 code: SO
Alpha3 code: SOM
710
South Africa
Alpha2 code: ZA
Alpha3 code: ZAF
716
Zimbabwe
Alpha2 code: ZW
Alpha3 code: ZWE
724
Spain
Alpha2 code: ES
Alpha3 code: ESP
728
South Sudan
Alpha2 code: SS
Alpha3 code: SSD
729
Sudan (the)
Alpha2 code: SD
Alpha3 code: SDN
732
Western Sahara
Alpha2 code: EH
Alpha3 code: ESH
740
Suriname
Alpha2 code: SR
Alpha3 code: SUR
744
Svalbard and Jan Mayen
Alpha2 code: SJ
Alpha3 code: SJM
748
Swaziland
Alpha2 code: SZ
Alpha3 code: SWZ
752
Sweden
Alpha2 code: SE
Alpha3 code: SWE
756
Switzerland
Alpha2 code: CH
Alpha3 code: CHE
760
Syrian Arab Republic (the)
Alpha2 code: SY
Alpha3 code: SYR
762
Tajikistan
Alpha2 code: TJ
Alpha3 code: TJK
764
Thailand
Alpha2 code: TH
Alpha3 code: THA
768
Togo
Alpha2 code: TG
Alpha3 code: TGO
772
Tokelau
Alpha2 code: TK
Alpha3 code: TKL
776
Tonga
Alpha2 code: TO
Alpha3 code: TON
780
Trinidad and Tobago
Alpha2 code: TT
Alpha3 code: TTO
784
United Arab Emirates (the)
Alpha2 code: AE
Alpha3 code: ARE
788
Tunisia
Alpha2 code: TN
Alpha3 code: TUN
792
Turkey
Alpha2 code: TR
Alpha3 code: TUR
795
Turkmenistan
Alpha2 code: TM
Alpha3 code: TKM
796
Turks and Caicos Islands (the)
Alpha2 code: TC
Alpha3 code: TCA
798
Tuvalu
Alpha2 code: TV
Alpha3 code: TUV
800
Uganda
Alpha2 code: UG
Alpha3 code: UGA
804
Ukraine
Alpha2 code: UA
Alpha3 code: UKR
807
Macedonia (the former Yugoslav Republic of)
Alpha2 code: MK
Alpha3 code: MKD
818
Egypt
Alpha2 code: EG
Alpha3 code: EGY
826
United Kingdom (the)
Alpha2 code: GB
Alpha3 code: GBR
831
Guernsey
Alpha2 code: GG
Alpha3 code: GGY
832
Jersey
Alpha2 code: JE
Alpha3 code: JEY
833
Isle of Man
Alpha2 code: IM
Alpha3 code: IMN
834
Tanzania, United Republic of
Alpha2 code: TZ
Alpha3 code: TZA
840
United States (the)
Alpha2 code: US
Alpha3 code: USA
850
Virgin Islands (U.S.)
Alpha2 code: VI
Alpha3 code: VIR
854
Burkina Faso
Alpha2 code: BF
Alpha3 code: BFA
858
Uruguay
Alpha2 code: UY
Alpha3 code: URY
860
Uzbekistan
Alpha2 code: UZ
Alpha3 code: UZB
862
Venezuela, Bolivarian Republic of
Alpha2 code: VE
Alpha3 code: VEN
876
Wallis and Futuna
Alpha2 code: WF
Alpha3 code: WLF
882
Samoa
Alpha2 code: WS
Alpha3 code: WSM
887
Yemen
Alpha2 code: YE
Alpha3 code: YEM
894
Zambia  
Alpha2 code: ZM
Alpha3 code: ZMB

Transfer purpose codes

ACCT : AccountManagement
ADCS : AdvisoryDonationCopyrightServices
ADMG : AdministrativeManagement
ADVA : AdvancePayment
AEMP : ActiveEmploymentPolicy
AGRT : AgriculturalTransfer
AIRB : Air
ALLW : Allowance
ALMY : AlimonyPayment
AMEX : Amex
ANNI : Annuity
ANTS : AnesthesiaServices
AREN : AccountsReceivablesEntry
AUCO : AuthenticatedCollections
B112 : TrailerFeePayment
BBSC : BabyBonusScheme
BCDM : BearerChequeDomestic
BCFG : BearerChequeForeign
BECH : ChildBenefit
BENE : UnemploymentDisabilityBenefit
BEXP : BusinessExpenses
BFWD : BondForward
BKDF : BankLoanDelayedDrawFunding
BKFE : BankLoanFees
BKFM : BankLoanFundingMemo
BKIP : BankLoanAccruedInterestPayment
BKPP : BankLoanPrincipalPaydown
BLDM : BuildingMaintenance
BNET : BondForwardNetting
BOCE : BackOfficeConversionEntry
BOND : Bonds
BONU : BonusPayment.
BR12 : TrailerFeeRebate
BUSB : Bus
CABD : CorporateActions-Bonds
CAEQ : CorporateActions-Equities
CAFI : CustodianManagementFeeInhouse
CASH : CashManagementTransfer
CBCR : CreditCard
CBFF : CapitalBuilding
CBFR : CapitalBuildingRetirement
CBLK : CardBulkClearing
CBTV : CableTVBill
CCHD : CashCompensationHelplessnessDisability
CCIR : CrossCurrencyIRS
CCPC : CCPClearedInitialMargin
CCPM : CCPClearedVariationMargin
CCRD : CreditCardPayment
CCSM : CCPClearedInitialMarginSegregatedCash
CDBL : CreditCardBill
CDCB : CardPaymentWithCashBack
CDCD : CashDisbursementCashSettlement
CDCS : CashDisbursementWithSurcharging
CDDP : CardDeferredPayment
CDEP : CreditDefaultEventPayment
CDOC : OriginalCredit
CDQC : QuasiCash
CFDI : CapitalFallingDueInhouse
CFEE : CancellationFee
CGDD : CardGeneratedDirectDebit
CHAR : CharityPayment
CLPR : CarLoanPrincipalRepayment
CMDT : CommodityTransfer
COLL : CollectionPayment
COMC : CommercialPayment
COMM : Commission
COMP : CompensationPayment
COMT : ConsumerThirdPartyConsolidatedPayment
CORT : TradeSettlementPayment
COST : Costs
CPEN : CashPenalties
CPKC : CarparkCharges
CPYR : Copyright
CRDS : CreditDefaultSwap
CRPR : CrossProduct
CRSP : CreditSupport
CRTL : CreditLine
CSDB : CashDisbursementCashManagement
CSLP : CompanySocialLoanPaymentToBank
CVCF : ConvalescentCareFacility
DBCR : DebitCard
DBTC : DebitCollectionPayment
DCRD : DebitCardPayment
DEBT : ChargesBorneByDebtor
DEPD : DependentSupportPayment
DEPT : Deposit
DERI : Derivatives
DICL : Diners
DIVD : Dividend
DMEQ : DurableMedicaleEquipment
DNTS : DentalServices
DSMT : PrintedOrderDisbursement
DVPM : DeliverAgainstPayment
ECPG : GuaranteedEPayment
ECPR : EPaymentReturn
ECPU : NonGuaranteedEPayment
EDUC : Education
EFTC : LowValueCredit
EFTD : LowValueDebit
ELEC : ElectricityBill
ENRG : Energies
EPAY : Epayment
EQPT : EquityOption
EQTS : Equities
EQUS : EquitySwap
ESTX : EstateTax
ETUP : EPurseTopUp
EXPT : ExoticOption
EXTD : ExchangeTradedDerivatives
FACT : FactorUpdateRelatedPayment
FAND : FinancialAidInCaseOfNaturalDisaster
FCOL : FeeCollection
FCPM : LatePaymentOfFeesAndCharges
FEES : PaymentOfFees
FERB : Ferry
FIXI : FixedIncome
FLCR : FleetCard
FNET : FuturesNettingPayment
FORW : ForwardForeignExchange
FREX : ForeignExchange
FUTR : Futures
FWBC : ForwardBrokerOwnedCashCollateral
FWCC : ForwardClientOwnedCashCollateral
FWLV : ForeignWorkerLevy
FWSB : ForwardBrokerOwnedCashCollateralSegregated
FWSC : ForwardClientOwnedSegregatedCashCollateral
FXNT : ForeignExchangeRelatedNetting
GAFA : GovernmentFamilyAllowance
GAHO : GovernmentHousingAllowance
GAMB : GamblingOrWageringPayment
GASB : GasBill
GDDS : PurchaseSaleOfGoods
GDSV : PurchaseSaleOfGoodsAndServices
GFRP : GuaranteeFundRightsPayment
GIFT : Gift
GOVI : GovernmentInsurance
GOVT : GovernmentPayment
GSCB : PurchaseSaleOfGoodsAndServicesWithCashBack
GSTX : GoodsServicesTax
GVEA : AustrianGovernmentEmployeesCategoryA
GVEB : AustrianGovernmentEmployeesCategoryB
GVEC : AustrianGovernmentEmployeesCategoryC
GVED : AustrianGovernmentEmployeesCategoryD
GWLT : GovermentWarLegislationTransfer
HEDG : Hedging
HLRP : PropertyLoanRepayment
HLST : PropertyLoanSettlement
HLTC : HomeHealthCare
HLTI : HealthInsurance
HREC : HousingRelatedContribution
HSPC : HospitalCare
HSTX : HousingTax
ICCP : IrrevocableCreditCardPayment
ICRF : IntermediateCareFacility
IDCP : IrrevocableDebitCardPayment
IHRP : InstalmentHirePurchaseAgreement
INPC : InsurancePremiumCar
INPR : InsurancePremiumRefund
INSC : PaymentOfInsuranceClaim
INSM : Installment
INSU : InsurancePremium
INTC : IntraCompanyPayment
INTE : Interest
INTP : IntraPartyPayment
INTX : IncomeTax
INVS : InvestmentAndSecurities
IPAY : InstantPayments
IPCA : InstantPaymentsCancellation
IPDO : InstantPaymentsForDonations
IPEA : InstantPaymentsInECommerceWithoutAddressData
IPEC : InstantPaymentsInECommerceWithAddressData
IPEW : InstantPaymentsInECommerce
IPPS : InstantPaymentsAtPOS
IPRT : InstantPaymentsReturn
IPU2 : InstantPaymentsUnattendedVendingMachineWith2FA
IPUW : InstantPaymentsUnattendedVendingMachineWithout2FA
IVPT : InvoicePayment
LBIN : LendingBuyInNetting
LBRI : LaborInsurance
LCOL : LendingCashCollateralFreeMovement
LFEE : LendingFees
LICF : LicenseFee
LIFI : LifeInsurance
LIMA : LiquidityManagement
LMEQ : LendingEquityMarkedToMarketCashCollateral
LMFI : LendingFixedIncomeMarkedToMarketCashCollateral
LMRK : LendingUnspecifiedTypeOfMarkedToMarketCashCollateral
LOAN : Loan
LOAR : LoanRepayment
LOTT : LotteryPayment
LREB : LendingRebatePayments
LREV : LendingRevenuePayments
LSFL : LendingClaimPayment
LTCF : LongTermCareFacility
MAFC : MedicalAidFundContribution
MARF : MedicalAidRefund
MARG : DailyMarginOnListedDerivatives
MBSB : MBSBrokerOwnedCashCollateral
MBSC : MBSClientOwnedCashCollateral
MCDM : MultiCurrenyChequeDomestic
MCFG : MultiCurrenyChequeForeign
MDCS : MedicalServices
MGCC : FuturesInitialMargin
MGSC : FuturesInitialMarginClientOwnedSegregatedCashCollateral
MOMA : MoneyMarket
MP2B : MobileP2BPayment
MP2P : MobileP2PPayment
MSVC : MultipleServiceTypes
MTUP : MobileTopUp
NETT : Netting
NITX : NetIncomeTax
NOWS : NotOtherwiseSpecified
NWCH : NetworkCharge
NWCM : NetworkCommunication
OCCC : ClientOwnedOCCPledgedCollateral
OCDM : OrderChequeDomestic
OCFG : OrderChequeForeign
OFEE : OpeningFee
OPBC : OTCOptionBrokerOwnedCashCollateral
OPCC : OTCOptionClientOwnedCashCollateral
OPSB : OTCOptionBrokerOwnedSegregatedCashCollateral
OPSC : OTCOptionClientOwnedCashSegregatedCashCollateral
OPTN : FXOption
OTCD : OTCDerivatives
OTHR : Other
OTLC : OtherTelecomRelatedBill
PADD : PreauthorizedDebit
PAYR : Payroll
PCOM : PropertyCompletionPayment
PDEP : PropertyDeposit
PEFC : PensionFundContribution
PENO : PaymentBasedOnEnforcementOrder
PENS : PensionPayment
PHON : TelephoneBill
PLDS : PropertyLoanDisbursement
PLRF : PropertyLoanRefinancing
POPE : PointOfPurchaseEntry
PPTI : PropertyInsurance
PRCP : PricePayment
PRME : PreciousMetal
PTSP : PaymentTerms
PTXP : PropertyTax
RAPI : RapidPaymentInstruction
RCKE : RepresentedCheckEntry
RCPT : ReceiptPayment
RDTX : RoadTax
REBT : Rebate
REFU : Refund
RELG : RentalLeaseGeneral
RENT : Rent
REOD : AccountOverdraftRepayment
REPO : RepurchaseAgreement
RETL : RetailPayment
RHBS : RehabilitationSupport
RIMB : ReimbursementOfAPreviousErroneousTransaction
RINP : RecurringInstallmentPayment
RLWY : Railway
ROYA : Royalties
RPBC : BilateralRepoBrokerOwnedCollateral
RPCC : RepoClientOwnedCollateral
RPNT : BilateralRepoInternetNetting
RPSB : BilateralRepoBrokerOwnedSegregatedCashCollateral
RPSC : BilateralRepoClientOwnedSegregatedCashCollateral
RRBN : RoundRobin
RRCT : ReimbursementReceivedCreditTransfer
RRTP : RelatedRequestToPay
RVPM : ReceiveAgainstPayment
RVPO : ReverseRepurchaseAgreement
SALA : SalaryPayment
SASW : ATM
SAVG : Savings
SBSC : SecuritiesBuySellSellBuyBack
SCIE : SingleCurrencyIRSExotic
SCIR : SingleCurrencyIRS
SCRP : SecuritiesCrossProducts
SCVE : PurchaseSaleOfServices
SECU : Securities
SEPI : SecuritiesPurchaseInhouse
SERV : ServiceCharges
SHBC : BrokerOwnedCollateralShortSale
SHCC : ClientOwnedCollateralShortSale
SHSL : ShortSell
SLEB : SecuritiesLendingAndBorrowing
SLOA : SecuredLoan
SLPI : PaymentSlipInstruction
SPLT : SplitPayments
SPSP : SalaryPensionSumPayment
SSBE : SocialSecurityBenefit
STDY : Study
SUBS : Subscription
SUPP : SupplierPayment
SWBC : SwapBrokerOwnedCashCollateral
SWCC : SwapClientOwnedCashCollateral
SWFP : SwapContractFinalPayment
SWPP : SwapContractPartialPayment
SWPT : Swaption
SWRS : SwapContractResetPayment
SWSB : SwapsBrokerOwnedSegregatedCashCollateral
SWSC : SwapsClientOwnedSegregatedCashCollateral
SWUF : SwapContractUpfrontPayment
TAXR : TaxRefund
TAXS : TaxPayment
TBAN : TBAPairOffNetting
TBAS : ToBeAnnounced
TBBC : TBABrokerOwnedCashCollateral
TBCC : TBAClientOwnedCashCollateral
TBIL : TelecommunicationsBill
TCSC : TownCouncilServiceCharges
TELI : TelephoneInitiatedTransaction
TLRF : NonUSMutualFundTrailerFeePayment
TLRR : NonUSMutualFundTrailerFeeRebatePayment
TMPG : TMPGClaimPayment
TPRI : TriPartyRepoInterest
TPRP : TriPartyRepoNetting
TRAD : Commercial
TRCP : TreasuryCrossProduct
TREA : TreasuryPayment
TRFD : TrustFund
TRNC : TruncatedPaymentSlip
TRPT : RoadPricing
TRVC : TravellerCheque
UBIL : Utilities
UNIT : UnitTrustPurchase
VATX : ValueAddedTaxPayment
VIEW : VisionCare
WEBI : InternetInitiatedTransaction
WHLD : WithHolding
WTER : WaterBill

SDD purpose codes

The categoryPurposeCode(1) and purposeCode(2) used in the SDDTransaction.

SALA(1) (2)Salary Payment
TREA(1) (2)Treasury Payment
ADVA(2)Advance Payment
AGRT(2)Agricultural Transfer
ALMY(2)Alimony Payment
BECH(2)Child Benefit
BENE(2)Unemployment Disability Benefit
BONU(2)Bonus Payment
CASH(1) (2)Cash Management Transfer
CBFF(2)Capital Building
CHAR(2)Charity Payment
COLL(2)Collection Payment
CMDT(2)Commodity Transfer
COMC(2)Commercial Payment
COMM(2)Commission
COST(2)Costs
CPYR(2)Copyright
DIVI(1) (2)Dividend
FREX(2)Foreign Exchange
GDDS(2)Purchase Sale Of Goods
GOVT(1) (2)Gouvernment Payment
IHRP(2)Instalment Hire Purchase Agreement
INTC(1) (2)Intra Company Payment
INSU(2)Insurance Premium
INTE(1) (2)Interest
LIFC(2)Licence Fee
LOAN(1) (2)Loan
LOAR(2)Loan Repayment
NETT(2)Netting
PAYR(2)Payment Roll
PENS(1) (2)Pension
REFU (2)Refund
RENT(2)Rent
ROYA(2)Royalties
SCVE(2)Purchase Sale Of Services
SECU(1) (2)Securities
SSBE(1) (2)Social Security Benefit
SUBS(2)Subscription
TAXS(1) (2)Tax Payment
COMT(2)Consumer Third Party Consolidated Payment
DBTC(2)Debit Collection Payment
SUPP(1) (2)Supplier Payment
HEDG(1) (2)Hedging
MSVC(2)Multiple Service Types
NOWS(2)Not Otherwise Specified
CARD(2)Card Payment
CDBL(2)Credit Card Bill
FERB(2)Ferry
AIRB(2)Air
BUSB(2)Bus
RLWY(2)Railway
CVCF(2)Convalescent Care Facility
DNTS(2)Dental Services
ANTS(2)Anesthesia Services
HLTC(2)Home Health Care
HSPC(2)Hospital Care
ICRF(2)Intermediate Care Facility
LTCF(2)Long Term Care Facility
MDCS(2)Medical Services
VIEW(2)Vision Care
DMEQ(2)Durable Medicale Equipment
CBTV(2)Cable TV Bill
ELEC(2)Electricity Bill
GASB(2)Gas Bill
PHON(2)Telephone Bill
OTLC(2)Other Telecom Related Bill
WTER(2)Water Bill
STDY(2)Study
PRCP(2)Price Payment
INSM(2)Installment
RINP(2)Recurring Installment Payment
OFEE(2)Opening Fee
CFEE(2)Cancellation Fee
GOVI(2)Government Insurance
INPC(2)Insurance Premium Car
LBRI(2)Labor Insurance
LIFI(2)Life Insurance
PPTI(2)Property Insurance
HLTI(2)Health Insurance
CLPR(2)Car Loan Principal Repayment
ESTX(2)Estate Tax
HLRP(2)Housing Loan Repayment
CSLP(2)Company Social Loan Payment To Bank
HSTX(2)Housing Tax
INTX(2)Income Tax
NITX(2)Net Income Tax
NWCH(2)Network Charge
NWCM(2)Network Communication
BEXP(2)Business Expenses
TRFD(2)Trust Fund
RCPT(2)Receipt
PTSP(2)Payment Terms
OTHR(2)Other
WHLD(1)(2)With Holding
CORT(1)Trade Settlement Payment
VATX(1)Value Added Tax Payment
TRAD(1)Trade

Error codes

ErrorDetails ATTRIBUTES
errorCodeCode indicating the type of problem identified.
errorComponentCode indicating the 3-D Secure component that identified the error.
errorDescriptionText describing the problem identified.
errorDetailAdditional detail regarding the problem identified.
ErrorCode possible values
101MESSAGE_RECEIVED_INVALID
102MESSAGE_VERSION_NUMBER_NOT_SUPPORTED
103SENT_MESSAGES_LIMIT_EXCEEDED
201REQUIRED_ELEMENT_MISSING
202CRITICAL_MESSAGE_EXTENSION_NOT_RECOGNIZED
203FORMAT_ON_ONE_OR_MORE_ELEMENTS_INVALID_ACCORDING_SPECS
204DUPLICATE_DATA_ELEMENT
301TRANSACTION_ID_NOT_RECOGNIZED
302DATA_DECRYPTION_FAILURE
303ACCESS_DENIED_INVALID_ENDPOINT
304ISO_CODE_NOT_VALID
305TRANSACTION_DATA_NOT_VALID
306MCC_NOT_VALID_FOR_PAYMENT_SYSTEM
307SERIAL_NUMBER_NOT_VALID
402TRANSACTION_TIMED_OUT
403TRANSIENT_SYSTEM_FAILURE
404PERMANENT_SYSTEM_FAILURE
405SYSTEM_CONNECTION_FAILURE
911DATA_FIELDS_RELEVANCE_CHECK_FAILURE
912DUPLICATED_TRANSACTION_ID
ErrorComponent possible values
« C »THREE_DS_SDK
« S »THREE_DS_SERVER
« D »DIRECTORY_SERVER
« A »ACCESS_CONTROL_SERVER

Test values

Articles

  • Test IBAN values
  • Test cards Values

Test IBAN values

Find below the list of HTTP return codes:

DE75512108001245126199SOGEDEFFXXX
FR7630004000031234567890143BNPAFRPPXXX
AT483200000012345864RLNWATWWXXX
BE71096123456769GKCCBEBB
AL35202111090000000001234567SGSBALTX
EE471000001020145685EEUHEE2X
ES7921000813610123456789CAIXESBBXXX

Test cards Values

This page provides a list of test card PANs you can use to validate your CentralPay integration. Each PAN below triggers a predictable scenario (bank refusal, 3DS authentication outcome, or card attributes such as EEA / region / product type).

Note: 3DS outcome values (transStatus such as Y, C, D, I, N…) are described in the dedicated 3DS 2.2 BRW documentation.

Card details to use: for all test PANs on this page, the expiry date and CVC values are free. The only requirement is that the expiry date must be later than today’s date. The CVC must be 3 digits (for example: 123).

Legend: ✅ Success · ❌ Bank refusal · ⛔ 3DS refused · 🛡️ 3DS · 🔒 3DS Challenge · 🔁 3DS Decoupled · ℹ️ 3DS Info · 🧭 Attributes

Quick test cards (most common scenarios)

PANScenarioWhat you should observe
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)Authorization succeeds with a successful 3DS authentication.
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)Challenge flow expected (you must complete the challenge step to proceed).
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowDecoupled authentication scenario (handling depends on your 3DS implementation).
4556 1041 6038 2032⛔🛡️ 3DS authentication refused (transStatus = N)The API responds with HTTP 200, but the 3DS authentication is refused (transStatus = N) and the payment is declined.
4000 0000 0000 0077❌ Bank refusal – Insufficient funds (51)Authorization is refused with bank return code 51 (Insufficient funds).
4000 0000 0000 0085❌ Bank refusal – Do not honor (5)Authorization is refused with bank return code 5 (Do not honor / refused).

Bank refusal PANs: these PANs are refused at the bank authorization stage regardless of the authentication flow.

Visa Card numbers

1) Bank refusals (regardless of the authentication flow)

PANScenarioDescription
4000 0000 0000 0051❌ Card lost (41)This PAN simulates a bank refusal with return code 41 (Card lost), regardless of the authentication flow.
4000 0000 0000 0069❌ Fraud suspicion (59)This PAN simulates a bank refusal with return code 59 (Fraud suspicion), regardless of the authentication flow.
4000 0000 0000 0077❌ Insufficient funds (51)This PAN simulates a bank refusal with return code 51 (Insufficient funds), regardless of the authentication flow.
4000 0000 0000 0085❌ Do not honor / refused (5)This PAN simulates a bank refusal with return code 5 (Do not honor / refused), regardless of the authentication flow.

2) 3DS scenarios

These PANs are designed to reproduce specific 3DS outcomes (transStatus). If transStatus = C, a challenge flow is expected and must be completed. If transStatus = N, the 3DS authentication is refused and the payment is declined.

PANScenarioDescription
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
4024 0071 7987 2394🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
4234 6319 8242 8908ℹ️🛡️ 3DS information only (transStatus = I)This PAN simulates a 3DS authentication with transStatus = I (Information only), to validate how you handle an informational 3DS outcome.
4234 6319 8242 8916🔁🛡️ 3DS decoupled (transStatus = D) – application flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using an application flow.
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using a browser flow.
4556 1041 6038 2032⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

3) Card attributes simulation (EEA / region / productType / cardType)

These PANs are designed to simulate card metadata (EEA / region / productType / cardType). Use them to validate your business rules, reporting, segmentation, or routing logic based on card attributes.

PANAttributes returnedDescription
4032 0389 8296 2700🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=DEBITThis PAN simulates an EEA consumer debit card in Europe.
4032 0343 8883 4767🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=CREDITThis PAN simulates an EEA consumer credit card in Europe.
4020 0280 0191 2012🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates an EEA consumer card in Europe with cardType=UNKNOWN.
4032 0337 9569 2248🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
4032 0368 1354 0364🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=CREDITThis PAN simulates an EEA corporate credit card in Europe.
4032 0387 5662 0096🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates an EEA corporate card in Europe with cardType=UNKNOWN.
4032 0358 5604 7592🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=DEBITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and DEBIT.
4032 0302 9068 3219🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=CREDITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and CREDIT.
4032 0377 5134 3001🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates an EEA card in Europe with productType=UNKNOWN and cardType=UNKNOWN.
4032 0307 5488 6225🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in USA/CANADA.
4032 0310 2547 6341🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in USA/CANADA.
4032 0341 4311 3978🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates a non-EEA consumer card in USA/CANADA with cardType=UNKNOWN.
4032 0309 5816 7398🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in USA/CANADA.
4032 0375 4480 7536🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=CREDITThis PAN simulates a non-EEA corporate credit card in USA/CANADA.
4032 0366 9148 7225🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates a non-EEA corporate card in USA/CANADA with cardType=UNKNOWN.
4032 0325 8917 3860🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=DEBITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and DEBIT.
4032 0388 0897 9557🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=CREDITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and CREDIT.
4032 0374 2147 1240🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and cardType=UNKNOWN.

Mastercard Card numbers

1) 3DS scenarios

PANScenarioDescription
5333 2591 5564 3223✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
5306 8899 4283 3340🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
5187 4346 4359 3002🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
5328 7203 8458 2224⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

2) Card attributes simulation (EEA / region / productType / cardType)

PANAttributes returnedDescription
5517 4500 0000 0168🧭 EEA=false ; region=US ; productType=CONSUMER ; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in the US.
5223 8599 0000 0174🧭 EEA=false ; region=US ; productType=CORPORATE ; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in the US.
5325 0900 0000 0115🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5325 0900 0000 0008🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5486 7467 7300 0005🧭 EEA=false ; region=EUROPE ; productType=CONSUMER ; cardType=DEBIT; Country=RUSThis PAN simulates a non-EEA consumer debit card with Country=RUS.
5588 1000 0000 0007🧭 EEA=false ; region=CEMEA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in CEMEA.
5122 9400 0000 0009🧭 EEA=false ; region=LATIN_AMERICA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in LATIN_AMERICA.

Amex Card numbers

1) 3DS scenarios

PANScenarioDescription
3415 0209 8634 895✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
3486 3826 7931 507🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
3456 9539 9207 589⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

2) Card attributes simulation (EEA / region / productType)

PANAttributes returnedDescription
3415 0209 8634 895🧭 EEA=false ; region=EUROPE ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in Europe.
3486 3826 7931 507🧭 EEA=false ; region=EUROPE ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in Europe.
3718 4294 2351 004🧭 EEA=false ; region=EUROPE ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in Europe with productType=UNKNOWN.
3712 5311 3391 201🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in ASIA_PACIFIC.
3423 1631 7472 410🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in ASIA_PACIFIC.
3710 9829 7279 338🧭 EEA=false ; region=ASIA_PACIFIC ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in ASIA_PACIFIC with productType=UNKNOWN.

CB Card numbers

These PANs allow you to test how the card is classified under the CB scheme (CB vs co-badged CB_VISA / CB_MASTERCARD) in your integration and reporting.

PANScenarioDescription
4020 0235 6597 5380✅🛡️ 3DS success (transStatus = Y) – scheme: CBThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB scheme.
4020 0254 4041 8403✅🛡️ 3DS success (transStatus = Y) – scheme: CB_VISAThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB_VISA scheme.
5232 1035 2372 2651✅🛡️ 3DS success (transStatus = Y) – scheme: CB_MASTERCARDThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB_MASTERCARD scheme.

Troubleshooting (what to check)

If you don’t get the expected outcome, start by checking:

  • Bank refusals: verify the returned bank refusal code/message in your transaction response or webhook (e.g., 51, 41, 59, 5).
  • 3DS scenarios: verify the returned transStatus. If C, a challenge flow must be completed; if N, the 3DS authentication is refused and the payment is declined; if D, the expected handling depends on your decoupled implementation.
  • Card attributes: verify the returned card metadata (EEA / region / productType / cardType) in the payment method or transaction details.

Test values

Articles

  • Test IBAN values
  • Test cards Values

Test IBAN values

Find below the list of HTTP return codes:

DE75512108001245126199SOGEDEFFXXX
FR7630004000031234567890143BNPAFRPPXXX
AT483200000012345864RLNWATWWXXX
BE71096123456769GKCCBEBB
AL35202111090000000001234567SGSBALTX
EE471000001020145685EEUHEE2X
ES7921000813610123456789CAIXESBBXXX

Test cards Values

This page provides a list of test card PANs you can use to validate your CentralPay integration. Each PAN below triggers a predictable scenario (bank refusal, 3DS authentication outcome, or card attributes such as EEA / region / product type).

Note: 3DS outcome values (transStatus such as Y, C, D, I, N…) are described in the dedicated 3DS 2.2 BRW documentation.

Card details to use: for all test PANs on this page, the expiry date and CVC values are free. The only requirement is that the expiry date must be later than today’s date. The CVC must be 3 digits (for example: 123).

Legend: ✅ Success · ❌ Bank refusal · ⛔ 3DS refused · 🛡️ 3DS · 🔒 3DS Challenge · 🔁 3DS Decoupled · ℹ️ 3DS Info · 🧭 Attributes

Quick test cards (most common scenarios)

PANScenarioWhat you should observe
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)Authorization succeeds with a successful 3DS authentication.
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)Challenge flow expected (you must complete the challenge step to proceed).
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowDecoupled authentication scenario (handling depends on your 3DS implementation).
4556 1041 6038 2032⛔🛡️ 3DS authentication refused (transStatus = N)The API responds with HTTP 200, but the 3DS authentication is refused (transStatus = N) and the payment is declined.
4000 0000 0000 0077❌ Bank refusal – Insufficient funds (51)Authorization is refused with bank return code 51 (Insufficient funds).
4000 0000 0000 0085❌ Bank refusal – Do not honor (5)Authorization is refused with bank return code 5 (Do not honor / refused).

Bank refusal PANs: these PANs are refused at the bank authorization stage regardless of the authentication flow.

Visa Card numbers

1) Bank refusals (regardless of the authentication flow)

PANScenarioDescription
4000 0000 0000 0051❌ Card lost (41)This PAN simulates a bank refusal with return code 41 (Card lost), regardless of the authentication flow.
4000 0000 0000 0069❌ Fraud suspicion (59)This PAN simulates a bank refusal with return code 59 (Fraud suspicion), regardless of the authentication flow.
4000 0000 0000 0077❌ Insufficient funds (51)This PAN simulates a bank refusal with return code 51 (Insufficient funds), regardless of the authentication flow.
4000 0000 0000 0085❌ Do not honor / refused (5)This PAN simulates a bank refusal with return code 5 (Do not honor / refused), regardless of the authentication flow.

2) 3DS scenarios

These PANs are designed to reproduce specific 3DS outcomes (transStatus). If transStatus = C, a challenge flow is expected and must be completed. If transStatus = N, the 3DS authentication is refused and the payment is declined.

PANScenarioDescription
4556 5579 5572 6624✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
4916 9940 6425 2017🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
4024 0071 7987 2394🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
4234 6319 8242 8908ℹ️🛡️ 3DS information only (transStatus = I)This PAN simulates a 3DS authentication with transStatus = I (Information only), to validate how you handle an informational 3DS outcome.
4234 6319 8242 8916🔁🛡️ 3DS decoupled (transStatus = D) – application flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using an application flow.
4234 6319 8242 8924🔁🛡️ 3DS decoupled (transStatus = D) – browser flowThis PAN simulates a 3DS decoupled authentication outcome (transStatus = D) using a browser flow.
4556 1041 6038 2032⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

3) Card attributes simulation (EEA / region / productType / cardType)

These PANs are designed to simulate card metadata (EEA / region / productType / cardType). Use them to validate your business rules, reporting, segmentation, or routing logic based on card attributes.

PANAttributes returnedDescription
4032 0389 8296 2700🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=DEBITThis PAN simulates an EEA consumer debit card in Europe.
4032 0343 8883 4767🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=CREDITThis PAN simulates an EEA consumer credit card in Europe.
4020 0280 0191 2012🧭 EEA=true ; region=EUROPE; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates an EEA consumer card in Europe with cardType=UNKNOWN.
4032 0337 9569 2248🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
4032 0368 1354 0364🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=CREDITThis PAN simulates an EEA corporate credit card in Europe.
4032 0387 5662 0096🧭 EEA=true ; region=EUROPE; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates an EEA corporate card in Europe with cardType=UNKNOWN.
4032 0358 5604 7592🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=DEBITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and DEBIT.
4032 0302 9068 3219🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=CREDITThis PAN simulates an EEA card in Europe with productType=UNKNOWN and CREDIT.
4032 0377 5134 3001🧭 EEA=true ; region=EUROPE; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates an EEA card in Europe with productType=UNKNOWN and cardType=UNKNOWN.
4032 0307 5488 6225🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in USA/CANADA.
4032 0310 2547 6341🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in USA/CANADA.
4032 0341 4311 3978🧭 EEA=false ; region=USA_CANADA; productType=CONSUMER; cardType=UNKNOWNThis PAN simulates a non-EEA consumer card in USA/CANADA with cardType=UNKNOWN.
4032 0309 5816 7398🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in USA/CANADA.
4032 0375 4480 7536🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=CREDITThis PAN simulates a non-EEA corporate credit card in USA/CANADA.
4032 0366 9148 7225🧭 EEA=false ; region=USA_CANADA; productType=CORPORATE; cardType=UNKNOWNThis PAN simulates a non-EEA corporate card in USA/CANADA with cardType=UNKNOWN.
4032 0325 8917 3860🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=DEBITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and DEBIT.
4032 0388 0897 9557🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=CREDITThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and CREDIT.
4032 0374 2147 1240🧭 EEA=false ; region=USA_CANADA; productType=UNKNOWN; cardType=UNKNOWNThis PAN simulates a non-EEA card in USA/CANADA with productType=UNKNOWN and cardType=UNKNOWN.

Mastercard Card numbers

1) 3DS scenarios

PANScenarioDescription
5333 2591 5564 3223✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
5306 8899 4283 3340🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
5187 4346 4359 3002🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
5328 7203 8458 2224⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

2) Card attributes simulation (EEA / region / productType / cardType)

PANAttributes returnedDescription
5517 4500 0000 0168🧭 EEA=false ; region=US ; productType=CONSUMER ; cardType=CREDITThis PAN simulates a non-EEA consumer credit card in the US.
5223 8599 0000 0174🧭 EEA=false ; region=US ; productType=CORPORATE ; cardType=DEBITThis PAN simulates a non-EEA corporate debit card in the US.
5325 0900 0000 0115🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5325 0900 0000 0008🧭 EEA=true ; region=EUROPE ; productType=CORPORATE ; cardType=DEBITThis PAN simulates an EEA corporate debit card in Europe.
5486 7467 7300 0005🧭 EEA=false ; region=EUROPE ; productType=CONSUMER ; cardType=DEBIT; Country=RUSThis PAN simulates a non-EEA consumer debit card with Country=RUS.
5588 1000 0000 0007🧭 EEA=false ; region=CEMEA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in CEMEA.
5122 9400 0000 0009🧭 EEA=false ; region=LATIN_AMERICA ; productType=CONSUMER ; cardType=DEBITThis PAN simulates a non-EEA consumer debit card in LATIN_AMERICA.

Amex Card numbers

1) 3DS scenarios

PANScenarioDescription
3415 0209 8634 895✅🛡️ 3DS success (transStatus = Y)This PAN simulates a successful authorization with a successful 3DS authentication (transStatus = Y).
3486 3826 7931 507🔒🛡️ 3DS challenge required (transStatus = C)This PAN simulates a 3DS authentication requiring a challenge (transStatus = C). You must complete the challenge step to proceed.
3456 9539 9207 589⛔🛡️ 3DS authentication refused (transStatus = N)This PAN triggers a 3DS authentication flow that is refused (transStatus = N). The API responds with HTTP 200 but the payment is declined.

2) Card attributes simulation (EEA / region / productType)

PANAttributes returnedDescription
3415 0209 8634 895🧭 EEA=false ; region=EUROPE ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in Europe.
3486 3826 7931 507🧭 EEA=false ; region=EUROPE ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in Europe.
3718 4294 2351 004🧭 EEA=false ; region=EUROPE ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in Europe with productType=UNKNOWN.
3712 5311 3391 201🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CONSUMERThis PAN simulates a non-EEA consumer Amex card in ASIA_PACIFIC.
3423 1631 7472 410🧭 EEA=false ; region=ASIA_PACIFIC ; productType=CORPORATEThis PAN simulates a non-EEA corporate Amex card in ASIA_PACIFIC.
3710 9829 7279 338🧭 EEA=false ; region=ASIA_PACIFIC ; productType=UNKNOWNThis PAN simulates a non-EEA Amex card in ASIA_PACIFIC with productType=UNKNOWN.

CB Card numbers

These PANs allow you to test how the card is classified under the CB scheme (CB vs co-badged CB_VISA / CB_MASTERCARD) in your integration and reporting.

PANScenarioDescription
4020 0235 6597 5380✅🛡️ 3DS success (transStatus = Y) – scheme: CBThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB scheme.
4020 0254 4041 8403✅🛡️ 3DS success (transStatus = Y) – scheme: CB_VISAThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB_VISA scheme.
5232 1035 2372 2651✅🛡️ 3DS success (transStatus = Y) – scheme: CB_MASTERCARDThis PAN simulates a successful authorization with 3DS (transStatus = Y) on the CB_MASTERCARD scheme.

Troubleshooting (what to check)

If you don’t get the expected outcome, start by checking:

  • Bank refusals: verify the returned bank refusal code/message in your transaction response or webhook (e.g., 51, 41, 59, 5).
  • 3DS scenarios: verify the returned transStatus. If C, a challenge flow must be completed; if N, the 3DS authentication is refused and the payment is declined; if D, the expected handling depends on your decoupled implementation.
  • Card attributes: verify the returned card metadata (EEA / region / productType / cardType) in the payment method or transaction details.

Doc Contents

Doc Footnotes

Doc Elements

  • Mentions légales
  • Politique de confidentialité

© 2026 CentralPay

You must log in to continue.

Connectez-vous à CentralPay Documentation

Compte oublié ?

Reset your password

Enter your username or email address and we will send you a link to reset your password.

Back to login