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 1
const 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 2
const walletsCollectionPromise =
fPay.wallet.list({
filter: "mainPocket.balance < 1_000_000"
});
Question 3
const transfersCollectionPromise =
fPay.transfer.list({
filter: "status = 'Successful'"
+ " AND destination.account.provider.key = 'OrangeMoney'"
+ " AND createdTime in Yesterday "
});
Question 4
const 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 5
const 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 6
const transactionsCollectionPromise =
fPay.transaction.list({
filter: "status = 'Successful'"
+ " AND dc = 'Credit'"
+ " AND source.provider.key = 'MoovMoney'"
+ " AND createdTime isBefore Today",
sortBy: "createdTime:DESC"
});