Initier un paiement
Envoyer une demande d'initiation de paiement unique en €
➤ Contexte
Cet appel permet d'envoyer à la banque teneur de compte (ASPSP) d'un client d'une banque (PAO) une demande d'initiation de paiement venant débiter le compte du PAO pour créditer le compte de l'usager du service de paiement (PSU) pour lequel le Prestataire de service de paiement (PISP) est connecté.
Dans un premier temps, seule l'initiation de paiement unique en euros est acceptée dans nos traitements.
A la soumission de la requête, et si toutes les données sont correctement formatées, une réponse (HTPP 201) vous sera retournée.
➤ Prérequis
Pour procéder à cette requête il est nécessaire de remplir les prérequis d’éligibilité pour le rôle TPP "PISP" (voir la section "Eligibilité"), et d'avoir récupéré le jeton d'accès OAUTH2.
➤ Requête POST
Le point d'entrée dépendra du code établissement.
Vous devez insérer la même valeur du paramètre <cdetab> que celle utilisée pour le jeton d'accès.
Pour rappel, la liste de nos établissements et les valeurs possibles des <cdetab> sont précisées dans la section "Limitations", cf. extrait ci-dessous :
Code établissement <cdetab> | Nom de l'établissement |
30007 | Natixis Corporate & Investment Banking (CIB) ex - Natixis Trade Treasury Solution (TTS) ex - Natixis Global Trade (GTB) |
30021 | Natixis Corporate & Investment Banking (Sandbox only) |
Nous avons par exemple :
- POST https://www.30007.live.api.89c3.com/stet/psd2/v1.6.2/payment-requests pour initier un paiement pour un client de Natixis CIB en production
- POST https://www.30021.live.api.89c3.com/stet/psd2/v1.6.2/payment-requests pour initier un paiement pour un client de Natixis CIB en sanbdox
➤ Paramètres obligatoires ou facultatifs du body
La structure du body et les champs obligatoires sont décrits dans la norme STET.
Les informations suivantes doivent être valorisées dans la requête comme suit :
- La donnée serviceLevel doit être renseigné à SEPA
- La donnée currency doit être renseignée à EUR (pas de virements en devises)
- La donnée requestedExecutionDate doit être égale ou supérieure à la date du jour
- La requête doit contenir une demande d'initiation pour un seul paiement
- La donnée numberOfTransactions doit être valorisée à "1"
- La donnée executionRule doit être valorisée à "FWNG--following" (exécution le premier jour ouvré suivant) pour préciser les corrections de date d'exécution des paiements, si la date de traitement tombe un week-end ou un jour fermé pour la banque
- La donnée frequency ne doit pas être alimentée, les virements récurrents n'étant pas autorisés
- La donnée localInstrument ne doit pas être valorisée, seuls les SCT étant acceptés pour le moment
- Seuls les IBAN sont supportés pour les données "Iban", "debtorAccount" et "creditorAccount"
- La donnée "successfullReportUrl" est obligatoire pour le mode d'authentification REDIRECT mis en oeuvre
- Si la donnée "unsuccessfullReportUrl" n'est pas renseignée, c'est la donnée valorisée au niveau de "successfullReportUrl" qui sera utilisée
- La donnée supplementaryData doit être alimentée avec la valeur "REDIRECT"
- La donnée scaHint est ignorée pour l'instant => les exemptions d'AF ne seront pas possibles en 2020
- Le format autorisé pour la donnée creationDateTime est le format ISO8601. Les trois expressions régulières autorisées sont
- YYYY-MM-DDTHH:MM:SS.SSS+HH:MM
- YYYY-MM-DDTHH:MM:SS.SSS+HHMM
- YYYY-MM-DDTHH:MM:SS.SSS
- Exemples :
- 2019-11-12T00:00:00.000+02:00
- 2019-11-12T00:00:00.000+0200
- 2019-11-12T00:00:00.000
➤ Codes erreur
Type d'erreur | Code HTTP | Libellé | Motif |
Générique, mauvaise structure | 400 | Bad request | error code : FF01 |
Mauvais format du BIC | 400 | Bad request | error code : FF01 |
Mauvais format du serviceLevel | 400 | Bad request | error code : FF01 |
Mauvais format, chargeBearer autre que SLEV | 400 | Bad request | error code: FF01 |
Mauvais format du schemeName | 400 | Bad request | error code: FF01 |
Mauvais format du purpose | 400 | Bad request | error code: FF01 message: RJCT error: value not one of declared Enum instance names: [TRPT, CASH, CPKC, ACCT, COMC] |
Mauvais format du categoryPurpose | 400 | Bad request | error code: FF01 |
Mauvais jeton d'accès, problème d'authentification | 403 | Forbidden | |
Request resource inconnu | 404 | Not Found | |
Mauvaise requête ou requête hors périmètre autorisé | 405 | Method not allowed | |
Message générique | 500 | Internal server error | |
Requête en doublon | 500 | Internal server error | error : Problème d'insertion en base de donnée, clé unique dupliquée |
➤ Exemple
Requête : POST /stet/psd2/v1.6.2/payment-requests
Body :
{ }, "creditorAgent": { |
Résultat : Status code HTTP 201
{ "appliedAuthenticationApproach": "REDIRECT", "_links": { "consentApproval": { "href": "TPPPISPurlConsentApproval/psuId.html?resourceId=0000000180-1551358254000131359238543&nonce=Id-2ed9775ce61639e9a3c94ecc", "templated": null } } } |