Cet objet permet d'éffectuer des transferts d'argent depuis un portefeuille FPay vers un autre portefeuille FPay ou vers un compte mobile money.
Lorsqu'il est initié, un Transfer déclenche immédiatement un transfert depuis le Wallet indiqué comme source vers un compte mobile money avec le montant spécifié.
Toute instance de ce type passe par plusieurs états qu'il est possible de suivre en observant le champ status : Au début il sera Starting et à la fin, l'état sera soit Successful ou soit Failure.
Une fois le dépôt terminé, un objet Transaction sera créé pour matérialiser la sortie d'argent depuis le portefeuille FPay, objet Transaction dont le titre est controllable depuis l'objet Transfert en spécifiant le champ h1. Si vous omettez ce champ, un titre par défaut sera ajoutée lorsque l'objet Transaction sera créé, titre visible en accédant au champ h1 de l'objet Transaction.
get Retourne un objet Transfer 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 Transfer. Voici tous les champs dont les valeurs peuvent servir d'identifiant pour cette opération:
idforeignIdattempt.idconst transferPromise = fPay.transfer.get("identifier");initiate Initie une nouvelle opération de Transfer et retourne l'instance associée à cette opération.
Cette opération prend en entrée les paramètres suivants:
InitiateTransferFormamountAmountFormcurrencystringvaluestringdestinationDestinationFormDestinationForm.MultipleDestinationFormMultipleDestinationFormDestinationForm.SingleDestinationFormSingleDestinationFormaccountMoneyAccountFormcountrystringidentifierstringid du Wallet, du portefeuille FPay OUproviderKeystringdescriptionstring | undefinedfeesFeesForm | undefinedpayerstringforeignDatastring | undefinedforeignIdstring | undefinedh1H1DescriptorForm | undefinedenstring | undefinedfrstring | undefinedsourceSourceForm | undefinedSourceForm.MultipleSourceFormMultipleSourceFormSourceForm.SingleSourceFormSingleSourceFormaccountMoneyAccountFormcountrystringidentifierstringid du Wallet, du portefeuille FPayproviderKeystringVoici un exemple de code pour initier un Transfer:
const transferPromise =
fPay.transfer.initiate({
amount: {
currency: "XOF",
value: "10_000"
},
destination: {
_type: "Single",
account: {
country: "CI",
identifier: "+2250700000000",
providerKey: "OrangeMoney"
}
},
description: "My description",
fees: {
payer: "CounterPart"
},
foreignData: "{\"myKey\": 19, \"myOtherKey\": \"myOtherValue\"}",
foreignId: "123456789",
h1: {
en: "Payment description",
fr: "Description du paiement"
},
source: {
_type: "Single",
account: {
country: "CI",
identifier: "123456789",
providerKey: "FPay"
}
}
});list Retourne une collection d'objets Transfer éventuellement filtrée et/ou triée. Voici les paramètres supportés par cette opération.
| NOM | TYPE | DESCRIPTION | VALEUR PAR DÉFAUT |
|---|---|---|---|
filter | string | undefined | Condition que doit respecter tout objet qui sera retourné dans cette collection | |
sortBy | string | undefined | Spécification du champ ainsi que de l'ordre (ascendant ou descendant) par lesquels seront triés les objets retournés | |
limit | number | undefined | Nombre total de résultats à retourner dans cette collection | |
Voici quelques exemples de code pour éffectuer un listing afin de retourner une collection d'objets Transfer:
const transfersCollectionPromise = fPay.transfer.listAll();const transfersCollectionPromise =
fPay.transfer.list({
sortBy: "id:ASC"
});const transfersCollectionPromise =
fPay.transfer.list({
limit: 5
});const transfersCollectionPromise =
fPay.transfer.list({
filter: "id in {'31234', '5678', '9990'}"
});const transfersCollectionPromise =
fPay.transfer.list({
filter: "createdTime isBefore Yesterday",
sortBy: "foreignId:DESC"
});const transfersCollectionPromise =
fPay.transfer.list({
filter: "id startsWith abcd",
sortBy: "createdTime:ASC",
limit: 25
});fetchPage Lorsque vous récupérez une liste de Transfer, 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 Transfer.
Imaginons que vous ayez récupéré une collection de Transferavec le code suivant:
const transfersCollectionPromise = fPay.transfer.listAll();Si jamais le resultat est disposé sur plusieurs pages, pour consulter la page suivante, vous devez faire:
transfersCollectionPromise.then(transferCollection => {
if(transferCollection.hasNextPage()) {
const nextTransferPromise = fPay.transfer.fetchPage(transferCollection.pagination.nextPage);
}
});update Modifie un objet Transfer et retourne la version modifiée de celui ci.
Voici tous les champs dont les valeurs peuvent servir d'identifiant pour cette opération:
idforeignIdattempt.idTransfer:| NOM | TYPE | DESCRIPTION |
|---|---|---|
description | string | undefined | Peut être mis à Jour Peut être Supprimé |
foreignData | string | undefined | Peut être mis à Jour Peut être Supprimé |
Voici quelques exemples de code pour éffectuer une modification:
transferPromise =
fPay.transfer.update({
id: "<id | foreignId>",
change: {
description: "<new value>",
foreignData: "<new value>"
}
});transferPromise =
fPay.transfer.update({
id: "<id | foreignId>",
change: {
description: "<new value>"
},
'remove': ['foreignData']
});transferPromise =
fPay.transfer.update({
id: "<id | foreignId>",
'remove': ['description', 'foreignData']
});Lorsque vous récupérez une liste, voici les champs par lesquels il est possible de faire des filtres ainsi que des tris.
| NOM | TYPE | DESCRIPTION |
|---|---|---|
amount.currency.code | string | |
amount.value | number | |
attempt.id | string | |
completedTime | string | |
completedTime.iso8601 | string | |
completedTime.timestamp.milliseconds | number | |
completedTime.timestamp.seconds | number | |
createdTime | string | |
createdTime.iso8601 | string | |
createdTime.timestamp.milliseconds | number | |
createdTime.timestamp.seconds | number | |
creator | string | |
creator._type | string | |
creator.accountId | string | |
creator.authAccessId | string | |
creator.personId | string | |
description | string | |
destination | string | |
destination._type | string | |
destination.account.balanceType | string | |
destination.account.identifier._type | string | |
destination.account.identifier.value | string | |
destination.account.provider.country.iso3166.alpha2 | string | |
destination.account.provider.country.iso3166.alpha3 | string | |
destination.account.provider.country.name | string | |
destination.account.provider.key | string | |
destination.account.provider.name | string | |
destination.amount.currency.code | string | |
destination.amount.value | number | |
fees.amount.currency.code | string | |
fees.amount.value | number | |
fees.payer | string | |
fees.value.fixe | number | |
fees.value.percent | number | |
foreignId | string | |
h1Descriptor.en | string | |
h1Descriptor.fr | string | |
id | string | |
sending | string | |
source | string | |
source._type | string | |
source.account.balanceType | string | |
source.account.identifier._type | string | |
source.account.identifier.value | string | |
source.account.provider.country.iso3166.alpha2 | string | |
source.account.provider.country.iso3166.alpha3 | string | |
source.account.provider.country.name | string | |
source.account.provider.key | string | |
source.account.provider.name | string | |
source.amount.currency.code | string | |
source.amount.value | number | |
status | string | |
status._type | string | |
status.cancelled.afterTimeout | boolean | |
status.reason.en | string | |
status.reason.fr | string |
Des exemples de code sont disponibles sur la page Audit Reporting & Tableau de bord.
TransferamountAmountcurrencyAmountCurrencycodestringunitstringvaluenumberattemptLightAttemptidstringcompletedTimeUTCDateTime | undefinediso8601stringtimestampTimestampmillisecondsnumbersecondsDoublecreatedTimeUTCDateTimeiso8601stringtimestampTimestampmillisecondsnumbersecondsDoublecreatorCreatorCreator.ApiApi_typestringaccountIdstringauthAccessIdstringCreator.UiUi_typestringaccountIdstringpersonIdstringdescriptionstring | undefineddestinationDestinationDestination.MultipleMultiple_typestringDestination.SingleSingle_typestringaccountMoneyAccountbalanceTypestringidentifierMoneyAccountIdentifier_typestringvaluestringid du Wallet FPay.man du Wallet FPay.providerMoneyAccountProvidercountryCountryiso3166Iso3166Countryalpha2stringalpha3stringnamestringkeystringnamestringamountAmountcurrencyAmountCurrencycodestringunitstringvaluenumberfeesFeesamountAmountcurrencyAmountCurrencycodestringunitstringvaluenumberpayerstring | undefinedvalueFeesValuefixenumberpercentnumberforeignDatastring | undefinedforeignIdstring | undefinedh1DescriptorH1Descriptor | undefinedenstring | undefinedfrstring | undefinedidstringsendingstringsourceSourceSource.MultipleMultiple_typestringSource.SingleSingle_typestringaccountMoneyAccountbalanceTypestringidentifierMoneyAccountIdentifier_typestringvaluestringid du Wallet FPay.man du Wallet FPay.providerMoneyAccountProvidercountryCountryiso3166Iso3166Countryalpha2stringalpha3stringnamestringkeystringnamestringamountAmountcurrencyAmountCurrencycodestringunitstringvaluenumberstatusTransferStatusTransferStatus.CompletingCompleting_typestringTransferStatus.FailureFailure_typestringcancelledCancelled | undefinedafterTimeoutbooleanreasonLocalizedTextenstringfrstringTransferStatus.ProcessingProcessing_typestringreasonLocalizedTextenstringfrstringTransferStatus.StartedStarted_typestringTransferStatus.StartingStarting_typestringTransferStatus.SuccessfulSuccessful_typestringTransferStatus.WaitingToStartWaitingToStart_typestringurlstring