Logo Blue Finalse
Console 
  Français   English


C#


  • DÉMARRER
  • Authentification
  • Hello World
  • Tarification
  • Rate Limit
  • CAS D'UTILISATION
  • Intégration UI FPay
  • Intégration UI personalisé
  • Interopérabilité  New
  • Liens et QRCodes de Paiement
  • Argent des tiers  New
  • Audit & Tableau de bord  New
  • REFÉRENCES
  • Attempt
  • AuthAccess
  • Deposit
  • FundRequest
  • QuasiTransfer
  • Transaction
  • Transfer
  • Wallet
Logo Blue FinalseLogo Blue Finalse
Javascript
Console 
  Français   English
  • DÉMARRER
  • Authentification
  • Hello World
  • Tarification
  • Rate Limit
  • CAS D'UTILISATION
  • Intégration UI FPay
  • Intégration UI personalisé
  • Interopérabilité  New
  • Liens et QRCodes de Paiement
  • Argent des tiers  New
  • Audit & Tableau de bord  New
  • REFÉRENCES
  • Attempt
  • AuthAccess
  • Deposit
  • FundRequest
  • QuasiTransfer
  • Transaction
  • Transfer
  • Wallet

Wallet

Présentation  

Signifiant littéralement "portefeuille" en anglais, un Wallet est un endroit ou est stocké de l'argent. Nous l'avons modélisé comme un portefeuille dans la vrai vie : Ainsi, chaque portefeuille possède des "poches" dont nous détaillerons l'utilité plus tard. Pour l'heure nous considérerons que nous avons une seule "poche principal".
Lorsque vous vous inscrivez sur FPay, nous vous créons un portefeuille automatiquement : Il s'agit de votre portefeuille principal.
Vous alimentez tout portefeuille avec vos opérations classiques de Deposit, Transfer, QuasiTransfer et FundRequest. Chaque fois que vous créez un des objets précédent si vous ne précisez rien, votre compte principal sera utilisé. Par exemple, si vous faite un dépôt que vous ne précisez pas la destination de l'argent, cet argent ira par défaut sur votre compte principal. De même si vous transférez de l'argent sans préciser la source de cet argent, cet argent sera par défaut prélevé de votre compte principal.

Soldes

Pour consulter le solde disponible sur un portefeuille, vous devez accéder au champ mainPocket.balance.available. Une particularité des soldes d'un portefeuille est la disponibilité de 2 soldes additionnels : Le solde des montants vérrouillés en cours d'entrée sur le portefeuille et le solde des montants en cours de sortie du portefeuille. Ces soldes sont accessibles avec le champ mainPocket.balance.lockedOut et avec le champ mainPocket.balance.lockedIn. Ces montants sont tous toujours positifs. Ils permettent d'afficher à votre client le montants des opérations à venir sur son compte : Il suffira de faire une simple différence entre les 2 derniers soldes.

Volumes

Il vous est également possible de consulter les volumes de toutes les transactions entrées et sorties survenues sur un portefeuille depuis sa création. Vous pourrez par conséquent connaitre le volume des entrées d'argents, le volume des sorties d'argent ainsi que le volume total qui est la somme des 2 volumes précédents en valeur absolue. Les champs auxquels il faudrait accéder pour ce faire sont respectivement  
  • mainPocket.volume.input
  • mainPocket.volume.total
  • mainPocket.volume.output
Un cas d'utilisation très intéressant des Wallet est expliqué sur la page concernant le cas d'utilisation  si vous gérez l'argent pour le compte de tiers.

Opérations  

create  

Créer un nouvel objet Wallet et retourne l'objet nouvellement créé.
Cette opération prend en entrée les paramètres suivants:

CreateWalletForm
name
Obligatoire
string
Nom du portefeuille
description
string | undefined
Détails, explications, annotations concernant cet objet pour mieux vous organiser et vous retrouvez plus tard.
foreignData
string | undefined
Données qui vous sont propres que vous pouvez attacher à l'objet créé. Il peut s'agir de données de type JSON XML, d'autres format de données ou simplement des Strings.
La longueur maximale autorisée est de 255 caractères.
foreignId
string | undefined
ID Personalisé ou bien ID de votre système interne que vous souhaitez attacher à cet objet pour vous permettre de le récupérer plus tard.
Une fois créée, cette valeur est non modifiable.
Cette valeur doit être unique pour chaque type.
La longueur maximale autorisée est de 128 caractères.

Voici un exemple de code pour éffectuer une création d'un objet Wallet:

const walletPromise = 
    fPay.wallet.create({
        name: "My First Wallet",
        description: "My description",
        foreignData: "{\"myKey\": 19, \"myOtherKey\": \"myOtherValue\"}",
        foreignId: "123456789"
    });


get  

Retourne un objet Wallet identifié par un identifiant.
Vous avez la possibilité d'utiliser un ID unique propre à votre système. Pour utiliser votre propre ID au lieu de celui généré par FPay, vous devez préciser le champ foreignId lors de la création de cet objet. Ainsi, vous pourrez récupérer cet objet par le champ foreignId ainsi ajouté qui doit être unique pour tous les objets de type Wallet.  Voici tous les champs dont les valeurs peuvent servir d'identifiant pour cette opération:

  • id
  • foreignId
  • mars.alpha
  • man.alpha

const walletPromise = fPay.wallet.get("identifier");


list  

Retourne une collection d'objets Wallet éventuellement filtrée et/ou triée. Voici les paramètres supportés par cette opération.

NOMTYPEDESCRIPTIONVALEUR PAR DÉFAUT
filterstring | undefinedCondition que doit respecter tout objet qui sera retourné dans cette collection
undefined
sortBystring | undefinedSpécification du champ ainsi que de l'ordre (ascendant ou descendant) par lesquels seront triés les objets retournés
createdTime:ASC
limitnumber | undefinedNombre total de résultats à retourner dans cette collection
50

Voici quelques exemples de code pour éffectuer un listing afin de retourner une collection d'objets Wallet:

const walletsCollectionPromise = fPay.wallet.listAll();
const walletsCollectionPromise = 
    fPay.wallet.list({
        sortBy: "id:ASC"
    });
const walletsCollectionPromise = 
    fPay.wallet.list({
        limit: 5
    });
const walletsCollectionPromise = 
    fPay.wallet.list({
        filter: "id in {'31234', '5678', '9990'}"
    });
const walletsCollectionPromise = 
    fPay.wallet.list({
        filter: "createdTime isBefore Yesterday",
        sortBy: "foreignId:DESC"
    });
const walletsCollectionPromise = 
    fPay.wallet.list({
        filter: "id startsWith abcd",
        sortBy: "createdTime:ASC",
        limit: 25
    });


fetchPage  

Lorsque vous récupérez une liste de Wallet, les résultats retournés par le serveur peuvent être paginés c'est dire que ces résultats seront disposés sur plusieurs pages. Cette fonction fetchPage permet de naviguer de page en page afin d'itérer sur tous les éléments. Par conséquent cette fonction retourne une collection de Wallet.

Imaginons que vous ayez récupéré une collection de Walletavec le code suivant:

const walletsCollectionPromise = fPay.wallet.listAll();

Si jamais le resultat est disposé sur plusieurs pages, pour consulter la page suivante, vous devez faire:

walletsCollectionPromise.then(walletCollection => {
    if(walletCollection.hasNextPage()) {
        const nextWalletPromise = fPay.wallet.fetchPage(walletCollection.pagination.nextPage);
    }
});


update  

Modifie un objet Wallet et retourne la version modifiée de celui ci.
 Voici tous les champs dont les valeurs peuvent servir d'identifiant pour cette opération:

  • id
  • foreignId
  • mars.alpha
  • man.alpha
Modifier un objet revient à modifier ses champs modifiables. Les champs modifiables peuvent être soit mis à jour ou soit supprimés. Voici la liste des champs modifiables de tout objet de type Wallet:

NOMTYPEDESCRIPTION
descriptionstring | undefinedPeut être mis à Jour   Peut être Supprimé
foreignDatastring | undefinedPeut être mis à Jour   Peut être Supprimé
namestringPeut être mis à Jour

Voici quelques exemples de code pour éffectuer une modification:

walletPromise = 
    fPay.wallet.update({
         id: "<id | foreignId>",
         change: {
            description: "<new value>",
            foreignData: "<new value>",
            name: "<new value>"
         }
    });
walletPromise = 
    fPay.wallet.update({
         id: "<id | foreignId>",
         change: {
            description: "<new value>"
         },
         'remove': ['foreignData']
    });
walletPromise = 
    fPay.wallet.update({
         id: "<id | foreignId>",
         'remove': ['description', 'foreignData']
    });

Liste Filtre & Tri  

Champs  

Lorsque vous récupérez une liste, voici les champs par lesquels il est possible de faire des filtres ainsi que des tris.

NOMTYPEDESCRIPTION
createdTimestring
createdTime.iso8601string
createdTime.timestamp.millisecondsnumber
createdTime.timestamp.secondsnumber
creatorstring
creator._typestring
creator.accountIdstring
creator.authAccessIdstring
creator.personIdstring
descriptionstring
foreignIdstring
idstring
isMainboolean
mainPocket.balancenumber
mainPocket.balance.availablenumber
mainPocket.balance.lockedInnumber
mainPocket.balance.lockedOutnumber
mainPocket.volume.inputnumber
mainPocket.volume.outputnumber
mainPocket.volume.totalnumber
man.alphastring
mars.alphastring
namestring

Exemples de Code  

Des exemples de code sont disponibles sur la page Audit Reporting & Tableau de bord.

Champs  

Wallet
createdTime
UTCDateTime
Date et heure auxquelles cet objet a été créé. Valeur toujours stockée en UTC (Temps universel), ce champ contient une representation de cet instant au format ISO 8601 ainsi qu'une representation de ce même instant en timestamp secondes et millisecondes.
iso8601
string
Date et heure au format ISO 8601
timestamp
Timestamp
milliseconds
number
Date et heure exprimées en Timestamp milli secondes
seconds
Double
Date et heure exprimées en Timestamp secondes
creator
Creator
Creator.Api
Api
_type
string
La seule valeur possible est: "Api"  
accountId
string
authAccessId
string

Creator.Ui
Ui
_type
string
La seule valeur possible est: "Ui"  
accountId
string
personId
string

description
string | undefined
Détails, explications, annotations concernant cet objet pour mieux vous organiser et vous retrouvez plus tard.
foreignData
string | undefined
Données qui vous sont propres que vous pouvez attacher à l'objet créé. Il peut s'agir de données de type JSON XML, d'autres format de données ou simplement des Strings.
La longueur maximale autorisée est de 255 caractères.
foreignId
string | undefined
ID Personalisé ou bien ID de votre système interne que vous souhaitez attacher à cet objet pour vous permettre de le récupérer plus tard.
Une fois créée, cette valeur est non modifiable.
Cette valeur doit être unique pour chaque type.
La longueur maximale autorisée est de 128 caractères.
id
string
Identifiant unique et non modifiable formé de chiffres et de lettres.
isMain
boolean
Indique si ce portefeuille est le portefeuille principal.
Lorsque vous vous inscrivez sur FPay, nous vous créons un portefeuille qui est donc le principal, le premier à être créé.
mainPocket
Pocket
balance
Balance
available
number
Solde disponible pouvant être utilisé
lockedIn
number
Solde verrouillé qui représente la somme de toutes les entrées d'argent à venir sur ce portefeuille.
lockedOut
number
Solde verrouillé qui représente la somme de toutes les sorties d'argent à venir depuis ce portefeuille.
volume
Volume
input
number
Ce volume d'entrée représente la somme de toutes les entrées d'argent reçues sur le portefeuille.
output
number
Ce volume de sortie représente la somme de toutes les sorties d'argent effectuée depuis ce portefeuille.
total
number
Ce volume total représente la somme de toutes les entrées et de toutes les sorties d'argent effectuée depuis ou vers ce portefeuille.
man
Man
alpha
string
Valeur du man (Money Account Number), valeur unique pour chaque portefeuille créé sur FPay.
mars
Mars
alpha
string
name
string
Nom du portefeuille
url
string
URL sur laquelle une methode GET convenablement autorisée renverra l'instance de l'objet sur lequel ce champ est défini.

WALLET
  • Présentation
  • Opérations
    • Create
    • Get
    • List
    • FetchPage
    • Update
  • Liste Filtre & Tri
    • Champs
    • Exemple de Code
  • Champs de l'objet