Que ce soit pour un Audit, pour faire du reporting ou pour concevoir un tableau de bord, vous avez avec FPay la possibilité de poser des questions au système concernant l'ensemble des actions étant intervenues sur votre compte. Avec toujours la même simplicité, voici un exemple de questions que vous serez capable de poser à FPay :

AuthAccess comme expliqué sur la page d'Authentification.secretKey de l'objet AuthAccess doit voir sa valeur absolument tenue sécrète et utilisée sur vos serveurs uniquement. Il ne sera jamais transmis lors des échanges avec les server-urs de FPay.const fPay = sdk.FPayClient(sdk.Auth({token: '<token>', secretKey: '<secretKey>' }));const fPay = sdk.FPayClient(sdk.Auth({token: '<token>', secretKey: '<secretKey>' }));Pour lister des éléments correspondant à des critères particuliers, nous devons commençer par prendre en considération le type de l'objet qui sera retourné par notre listing.
Par exemple, si nous voulons lister des Wallet
foreignId qui est de type String et dont la valeur peut être absente, nous avons le droit de faire les requêtes suivantes:const walletsCollectionPromise =
fPay.wallet.list({
filter: "foreignId isDefined"
});const walletsCollectionPromise =
fPay.wallet.list({
filter: "foreignId !isDefined"
});const walletsCollectionPromise =
fPay.wallet.list({
filter: "foreignId = '1234'"
});const walletsCollectionPromise =
fPay.wallet.list({
filter: "foreignId = '1234'",
sortBy: "foreignId"
});const walletsCollectionPromise =
fPay.wallet.list({
filter: "foreignId != '1234'"
});const walletsCollectionPromise =
fPay.wallet.list({
filter: "foreignId startsWith '1234'"
});Wallet à retourner possèdent un champ mainPocket et que ce champ possède un champ balance qui possède lui même un champ available qui est de type Number, nous avons le droit de faire les requêtes suivantes:const walletsCollectionPromise =
fPay.wallet.list({
filter: "mainPocket.balance.available = 10000"
});const walletsCollectionPromise =
fPay.wallet.list({
sortBy: "mainPocket.balance.available:ASC"
});const walletsCollectionPromise =
fPay.wallet.list({
sortBy: "mainPocket.balance.available:DESC"
});const walletsCollectionPromise =
fPay.wallet.list({
filter: "mainPocket.balance.available > 100000"
});const walletsCollectionPromise =
fPay.wallet.list({
filter: "mainPocket.balance.available >= 5000"
});const walletsCollectionPromise =
fPay.wallet.list({
filter: "mainPocket.balance.available != 100000"
});const walletsCollectionPromise =
fPay.wallet.list({
filter: "mainPocket.balance.available <= 100000"
});const walletsCollectionPromise =
fPay.wallet.list({
filter: "mainPocket.balance.available < 100000"
});Wallet à retourner possèdent un champ createdTime qui est de type DateTime (Date et Heure conformes au standard ISO 8601), nous avons le droit de faire les requêtes suivantes:const walletsCollectionPromise =
fPay.wallet.list({
filter: "createdTime = '2024-10-01T01:30Z'"
});const walletsCollectionPromise =
fPay.wallet.list({
filter: "createdTime.iso8601 = '2024-10-01T01:30Z'"
});const walletsCollectionPromise =
fPay.wallet.list({
filter: "createdTime = '2024-10-01'"
});const walletsCollectionPromise =
fPay.wallet.list({
filter: "createdTime.iso8601 = '2024-10-01'"
});const walletsCollectionPromise =
fPay.wallet.list({
filter: "createdTime isBefore '2024-10-01T01:30Z'"
});const walletsCollectionPromise =
fPay.wallet.list({
filter: "createdTime isBefore '2024-10-01'"
});const walletsCollectionPromise =
fPay.wallet.list({
filter: "createdTime.timestamp.seconds <= 19817999"
});const walletsCollectionPromise =
fPay.wallet.list({
filter: "createdTime.timestamp.milliseconds <= 19817999000"
});const walletsCollectionPromise =
fPay.wallet.list({
filter: "createdTime isAfter '2024-10-01T01:30Z'"
});const walletsCollectionPromise =
fPay.wallet.list({
filter: "createdTime isAfter '2024-10-01'"
});const walletsCollectionPromise =
fPay.wallet.list({
filter: "createdTime in CurrentYear"
});const walletsCollectionPromise =
fPay.wallet.list({
filter: "createdTime in CurrentMonth"
});const walletsCollectionPromise =
fPay.wallet.list({
filter: "createdTime in Today"
});const walletsCollectionPromise =
fPay.wallet.list({
filter: "createdTime in Yesterday",
sortBy: "createdTime:ASC"
});const walletsCollectionPromise =
fPay.wallet.list({
sortBy: "createdTime:DESC"
});Maintenant que nous avons posé les bases logiques pour éffectuer des requêtes, nous allons répondre aux questions soulevées ci dessus
Question 1const transactionsCollectionPromise =
fPay.transaction.list({
filter: "status = 'Successful'"
+ " AND amount.value >= 500_000"
+ " AND dc = 'Debit'"
+ " AND wallet.isMain = true"
+ " AND createdTime in LastMonth",
sortBy: "amount.value:DESC"
});Question 2const walletsCollectionPromise =
fPay.wallet.list({
filter: "mainPocket.balance < 1_000_000"
});Question 3const transfersCollectionPromise =
fPay.transfer.list({
filter: "status = 'Successful'"
+ " AND destination.account.provider.key = 'OrangeMoney'"
+ " AND createdTime in Yesterday "
});Question 4const transactionsCollectionPromise =
fPay.transaction.list({
filter: "status = 'Successful'"
+ " AND (source.provider.key = 'MtnMoney' OR destination.provider.key = 'MtnMoney')"
+ " AND createdTime in CurrentMonth",
sortBy: "amount.value:DESC",
limit: 1
});Question 5const transactionsCollectionPromise =
fPay.transaction.list({
filter: "status = 'Failure'"
+ " AND dc = 'Debit'"
+ " AND destination.provider.key in {'MoovMoney', 'OrangeMoney'}"
});const transactionsCollectionPromise =
fPay.transaction.list({
filter: "status = 'Failure'"
+ " AND dc = 'Debit'"
+ " AND (destination.provider.key = 'MoovMoney' OR destination.provider.key = OrangeMoney)"
});Question 6const transactionsCollectionPromise =
fPay.transaction.list({
filter: "status = 'Successful'"
+ " AND dc = 'Credit'"
+ " AND source.provider.key = 'MoovMoney'"
+ " AND createdTime isBefore Today",
sortBy: "createdTime:DESC"
});