pi-spi-sdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/LICENSE +22 -0
- package/README.md +300 -0
- package/dist/config.d.ts +35 -0
- package/dist/config.js +4 -0
- package/dist/error-handler.d.ts +7 -0
- package/dist/error-handler.js +52 -0
- package/dist/errors.d.ts +25 -0
- package/dist/errors.js +40 -0
- package/dist/examples.d.ts +8 -0
- package/dist/examples.js +91 -0
- package/dist/generated/core/ApiError.d.ts +10 -0
- package/dist/generated/core/ApiError.js +11 -0
- package/dist/generated/core/ApiRequestOptions.d.ts +13 -0
- package/dist/generated/core/ApiRequestOptions.js +1 -0
- package/dist/generated/core/ApiResult.d.ts +7 -0
- package/dist/generated/core/ApiResult.js +1 -0
- package/dist/generated/core/CancelablePromise.d.ts +20 -0
- package/dist/generated/core/CancelablePromise.js +111 -0
- package/dist/generated/core/OpenAPI.d.ts +16 -0
- package/dist/generated/core/OpenAPI.js +11 -0
- package/dist/generated/core/request.d.ts +34 -0
- package/dist/generated/core/request.js +269 -0
- package/dist/generated/index.d.ts +78 -0
- package/dist/generated/index.js +43 -0
- package/dist/generated/models/AliasCreationReponse.d.ts +22 -0
- package/dist/generated/models/AliasCreationReponse.js +1 -0
- package/dist/generated/models/AliasCreationRequest.d.ts +11 -0
- package/dist/generated/models/AliasCreationRequest.js +1 -0
- package/dist/generated/models/AliasReponseListe.d.ts +26 -0
- package/dist/generated/models/AliasReponseListe.js +1 -0
- package/dist/generated/models/AnnulationStatut.d.ts +13 -0
- package/dist/generated/models/AnnulationStatut.js +18 -0
- package/dist/generated/models/Champs.d.ts +1 -0
- package/dist/generated/models/Champs.js +1 -0
- package/dist/generated/models/CompteOperation.d.ts +72 -0
- package/dist/generated/models/CompteOperation.js +24 -0
- package/dist/generated/models/CompteOperationListe.d.ts +18 -0
- package/dist/generated/models/CompteOperationListe.js +1 -0
- package/dist/generated/models/CompteSolde.d.ts +129 -0
- package/dist/generated/models/CompteSolde.js +71 -0
- package/dist/generated/models/CompteTransfertIntraReponse.d.ts +33 -0
- package/dist/generated/models/CompteTransfertIntraReponse.js +12 -0
- package/dist/generated/models/CompteTransfertIntraRequest.d.ts +9 -0
- package/dist/generated/models/CompteTransfertIntraRequest.js +1 -0
- package/dist/generated/models/DemandePaiementConfirmationAnnulationRaison.d.ts +14 -0
- package/dist/generated/models/DemandePaiementConfirmationAnnulationRaison.js +19 -0
- package/dist/generated/models/DemandePaiementConfirmationReponse.d.ts +41 -0
- package/dist/generated/models/DemandePaiementConfirmationReponse.js +13 -0
- package/dist/generated/models/DemandePaiementConfirmationRequest.d.ts +3 -0
- package/dist/generated/models/DemandePaiementConfirmationRequest.js +1 -0
- package/dist/generated/models/DemandePaiementConfirmationRequestAccepter.d.ts +9 -0
- package/dist/generated/models/DemandePaiementConfirmationRequestAccepter.js +1 -0
- package/dist/generated/models/DemandePaiementConfirmationRequestRejeter.d.ts +9 -0
- package/dist/generated/models/DemandePaiementConfirmationRequestRejeter.js +1 -0
- package/dist/generated/models/DemandePaiementConsultationReponse.d.ts +151 -0
- package/dist/generated/models/DemandePaiementConsultationReponse.js +27 -0
- package/dist/generated/models/DemandePaiementEnMasseConfirmationRequest.d.ts +3 -0
- package/dist/generated/models/DemandePaiementEnMasseConfirmationRequest.js +1 -0
- package/dist/generated/models/DemandePaiementEnMasseConfirmationRequestAccepter.d.ts +9 -0
- package/dist/generated/models/DemandePaiementEnMasseConfirmationRequestAccepter.js +1 -0
- package/dist/generated/models/DemandePaiementEnMasseConfirmationRequestRejeter.d.ts +9 -0
- package/dist/generated/models/DemandePaiementEnMasseConfirmationRequestRejeter.js +1 -0
- package/dist/generated/models/DemandePaiementEnMasseRequest.d.ts +74 -0
- package/dist/generated/models/DemandePaiementEnMasseRequest.js +1 -0
- package/dist/generated/models/DemandePaiementEnMasseStatutReponse.d.ts +98 -0
- package/dist/generated/models/DemandePaiementEnMasseStatutReponse.js +20 -0
- package/dist/generated/models/DemandePaiementListe.d.ts +26 -0
- package/dist/generated/models/DemandePaiementListe.js +1 -0
- package/dist/generated/models/DemandePaiementListeItem.d.ts +163 -0
- package/dist/generated/models/DemandePaiementListeItem.js +27 -0
- package/dist/generated/models/DemandePaiementReponse.d.ts +129 -0
- package/dist/generated/models/DemandePaiementReponse.js +1 -0
- package/dist/generated/models/DemandePaiementReponseRequest.d.ts +21 -0
- package/dist/generated/models/DemandePaiementReponseRequest.js +11 -0
- package/dist/generated/models/DemandePaiementRequest.d.ts +98 -0
- package/dist/generated/models/DemandePaiementRequest.js +7 -0
- package/dist/generated/models/DemandePaiementRequestBase.d.ts +42 -0
- package/dist/generated/models/DemandePaiementRequestBase.js +1 -0
- package/dist/generated/models/DemandePaiementRequestCategorie.d.ts +12 -0
- package/dist/generated/models/DemandePaiementRequestCategorie.js +17 -0
- package/dist/generated/models/DemandePaiementStatut.d.ts +13 -0
- package/dist/generated/models/DemandePaiementStatut.js +18 -0
- package/dist/generated/models/DemandePaiementStatutRaison.d.ts +46 -0
- package/dist/generated/models/DemandePaiementStatutRaison.js +51 -0
- package/dist/generated/models/ListeMeta.d.ts +14 -0
- package/dist/generated/models/ListeMeta.js +1 -0
- package/dist/generated/models/Paiement.d.ts +156 -0
- package/dist/generated/models/Paiement.js +28 -0
- package/dist/generated/models/PaiementAnnulationMotif.d.ts +17 -0
- package/dist/generated/models/PaiementAnnulationMotif.js +22 -0
- package/dist/generated/models/PaiementAnnulationReponseRequest.d.ts +11 -0
- package/dist/generated/models/PaiementAnnulationReponseRequest.js +1 -0
- package/dist/generated/models/PaiementAnnulationReponseRequestAccepter.d.ts +9 -0
- package/dist/generated/models/PaiementAnnulationReponseRequestAccepter.js +1 -0
- package/dist/generated/models/PaiementAnnulationReponseRequestRejeter.d.ts +9 -0
- package/dist/generated/models/PaiementAnnulationReponseRequestRejeter.js +1 -0
- package/dist/generated/models/PaiementAnnulationRequest.d.ts +4 -0
- package/dist/generated/models/PaiementAnnulationRequest.js +1 -0
- package/dist/generated/models/PaiementAnnulationStatutRaison.d.ts +21 -0
- package/dist/generated/models/PaiementAnnulationStatutRaison.js +26 -0
- package/dist/generated/models/PaiementEnMasseConfirmationRequest.d.ts +3 -0
- package/dist/generated/models/PaiementEnMasseConfirmationRequest.js +1 -0
- package/dist/generated/models/PaiementEnMasseConfirmationRequestAccepter.d.ts +9 -0
- package/dist/generated/models/PaiementEnMasseConfirmationRequestAccepter.js +1 -0
- package/dist/generated/models/PaiementEnMasseConfirmationRequestRejeter.d.ts +9 -0
- package/dist/generated/models/PaiementEnMasseConfirmationRequestRejeter.js +1 -0
- package/dist/generated/models/PaiementEnMasseReponseStatut.d.ts +97 -0
- package/dist/generated/models/PaiementEnMasseReponseStatut.js +20 -0
- package/dist/generated/models/PaiementEnMasseRequest.d.ts +54 -0
- package/dist/generated/models/PaiementEnMasseRequest.js +1 -0
- package/dist/generated/models/PaiementImmediatConfirmationReponse.d.ts +31 -0
- package/dist/generated/models/PaiementImmediatConfirmationReponse.js +7 -0
- package/dist/generated/models/PaiementImmediatConfirmationRequest.d.ts +3 -0
- package/dist/generated/models/PaiementImmediatConfirmationRequest.js +1 -0
- package/dist/generated/models/PaiementImmediatConfirmationRequestAccepter.d.ts +9 -0
- package/dist/generated/models/PaiementImmediatConfirmationRequestAccepter.js +1 -0
- package/dist/generated/models/PaiementImmediatConfirmationRequestRejeter.d.ts +9 -0
- package/dist/generated/models/PaiementImmediatConfirmationRequestRejeter.js +1 -0
- package/dist/generated/models/PaiementImmediatReponse.d.ts +98 -0
- package/dist/generated/models/PaiementImmediatReponse.js +7 -0
- package/dist/generated/models/PaiementImmediatRequest.d.ts +13 -0
- package/dist/generated/models/PaiementImmediatRequest.js +1 -0
- package/dist/generated/models/PaiementListe.d.ts +6 -0
- package/dist/generated/models/PaiementListe.js +1 -0
- package/dist/generated/models/PaiementRequest.d.ts +33 -0
- package/dist/generated/models/PaiementRequest.js +1 -0
- package/dist/generated/models/PaiementStatut.d.ts +13 -0
- package/dist/generated/models/PaiementStatut.js +18 -0
- package/dist/generated/models/PaiementStatutRaison.d.ts +56 -0
- package/dist/generated/models/PaiementStatutRaison.js +61 -0
- package/dist/generated/models/Problem7807.d.ts +31 -0
- package/dist/generated/models/Problem7807.js +1 -0
- package/dist/generated/models/RefDocType.d.ts +38 -0
- package/dist/generated/models/RefDocType.js +43 -0
- package/dist/generated/models/RetourStatut.d.ts +13 -0
- package/dist/generated/models/RetourStatut.js +18 -0
- package/dist/generated/models/RetourStatutRaison.d.ts +25 -0
- package/dist/generated/models/RetourStatutRaison.js +30 -0
- package/dist/generated/models/WebhookCreationRequest.d.ts +14 -0
- package/dist/generated/models/WebhookCreationRequest.js +1 -0
- package/dist/generated/models/WebhookCreationResponse.d.ts +12 -0
- package/dist/generated/models/WebhookCreationResponse.js +1 -0
- package/dist/generated/models/WebhookData.d.ts +8 -0
- package/dist/generated/models/WebhookData.js +1 -0
- package/dist/generated/models/WebhookEvent.d.ts +191 -0
- package/dist/generated/models/WebhookEvent.js +42 -0
- package/dist/generated/models/WebhookEventsList.d.ts +13 -0
- package/dist/generated/models/WebhookEventsList.js +1 -0
- package/dist/generated/models/WebhookList.d.ts +13 -0
- package/dist/generated/models/WebhookList.js +1 -0
- package/dist/generated/models/WebhookModificationRequest.d.ts +4 -0
- package/dist/generated/models/WebhookModificationRequest.js +1 -0
- package/dist/generated/models/WebhooksEvents.d.ts +12 -0
- package/dist/generated/models/WebhooksEvents.js +17 -0
- package/dist/generated/services/AliasService.d.ts +63 -0
- package/dist/generated/services/AliasService.js +84 -0
- package/dist/generated/services/ComptesService.d.ts +64 -0
- package/dist/generated/services/ComptesService.js +86 -0
- package/dist/generated/services/DemandeAnnulationService.d.ts +84 -0
- package/dist/generated/services/DemandeAnnulationService.js +99 -0
- package/dist/generated/services/DemandesDePaiementEnMasseService.d.ts +161 -0
- package/dist/generated/services/DemandesDePaiementEnMasseService.js +189 -0
- package/dist/generated/services/DemandesDePaiementService.d.ts +123 -0
- package/dist/generated/services/DemandesDePaiementService.js +161 -0
- package/dist/generated/services/NotificationService.d.ts +80 -0
- package/dist/generated/services/NotificationService.js +132 -0
- package/dist/generated/services/PaiementEnMasseService.d.ts +159 -0
- package/dist/generated/services/PaiementEnMasseService.js +187 -0
- package/dist/generated/services/PaiementImmediatService.d.ts +135 -0
- package/dist/generated/services/PaiementImmediatService.js +176 -0
- package/dist/generated/services/RetoursdeFondsService.d.ts +28 -0
- package/dist/generated/services/RetoursdeFondsService.js +37 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +23 -0
- package/dist/query-builder.d.ts +91 -0
- package/dist/query-builder.js +187 -0
- package/dist/sdk.d.ts +88 -0
- package/dist/sdk.js +107 -0
- package/dist/services/alias.d.ts +72 -0
- package/dist/services/alias.js +82 -0
- package/dist/services/base.d.ts +9 -0
- package/dist/services/base.js +17 -0
- package/dist/services/comptes.d.ts +149 -0
- package/dist/services/comptes.js +158 -0
- package/dist/services/demandes-annulation.d.ts +97 -0
- package/dist/services/demandes-annulation.js +104 -0
- package/dist/services/demandes-paiement-en-masse.d.ts +139 -0
- package/dist/services/demandes-paiement-en-masse.js +139 -0
- package/dist/services/demandes-paiement.d.ts +144 -0
- package/dist/services/demandes-paiement.js +151 -0
- package/dist/services/paiements-en-masse.d.ts +152 -0
- package/dist/services/paiements-en-masse.js +153 -0
- package/dist/services/paiements.d.ts +135 -0
- package/dist/services/paiements.js +135 -0
- package/dist/services/retours-fonds.d.ts +94 -0
- package/dist/services/retours-fonds.js +100 -0
- package/dist/services/webhooks.d.ts +131 -0
- package/dist/services/webhooks.js +142 -0
- package/dist/types/alias.d.ts +64 -0
- package/dist/types/alias.js +73 -0
- package/dist/utils/constants.d.ts +93 -0
- package/dist/utils/constants.js +93 -0
- package/dist/utils/index.d.ts +60 -0
- package/dist/utils/index.js +115 -0
- package/package.json +81 -0
- package/scripts/post-generate.js +129 -0
- package/scripts/pre-generate.js +106 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { WebhookEvent } from './WebhookEvent';
|
|
2
|
+
export type WebhookEventsList = {
|
|
3
|
+
/**
|
|
4
|
+
* Liste des événements notifiés
|
|
5
|
+
*/
|
|
6
|
+
data: Array<WebhookEvent>;
|
|
7
|
+
meta: {
|
|
8
|
+
/**
|
|
9
|
+
* Nombre total d'événements dans cette notification
|
|
10
|
+
*/
|
|
11
|
+
total: number;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { WebhookCreationResponse } from './WebhookCreationResponse';
|
|
2
|
+
export type WebhookList = {
|
|
3
|
+
/**
|
|
4
|
+
* Liste des webhooks configurés
|
|
5
|
+
*/
|
|
6
|
+
data: Array<WebhookCreationResponse>;
|
|
7
|
+
meta: {
|
|
8
|
+
/**
|
|
9
|
+
* Nombre total de webhooks configurés
|
|
10
|
+
*/
|
|
11
|
+
total: number;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare enum WebhooksEvents {
|
|
2
|
+
PAIEMENT_RECU = "PAIEMENT_RECU",
|
|
3
|
+
PAIEMENT_ENVOYE = "PAIEMENT_ENVOYE",
|
|
4
|
+
PAIEMENT_REJETE = "PAIEMENT_REJETE",
|
|
5
|
+
RTP_RECU = "RTP_RECU",
|
|
6
|
+
RTP_REJETE = "RTP_REJETE",
|
|
7
|
+
ANNULATION_DEMANDE = "ANNULATION_DEMANDE",
|
|
8
|
+
ANNULATION_REJETE = "ANNULATION_REJETE",
|
|
9
|
+
RETOUR_ENVOYE = "RETOUR_ENVOYE",
|
|
10
|
+
RETOUR_REJETE = "RETOUR_REJETE",
|
|
11
|
+
RETOUR_RECU = "RETOUR_RECU"
|
|
12
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/* generated using openapi-typescript-codegen -- do not edit */
|
|
2
|
+
/* istanbul ignore file */
|
|
3
|
+
/* tslint:disable */
|
|
4
|
+
/* eslint-disable */
|
|
5
|
+
export var WebhooksEvents;
|
|
6
|
+
(function (WebhooksEvents) {
|
|
7
|
+
WebhooksEvents["PAIEMENT_RECU"] = "PAIEMENT_RECU";
|
|
8
|
+
WebhooksEvents["PAIEMENT_ENVOYE"] = "PAIEMENT_ENVOYE";
|
|
9
|
+
WebhooksEvents["PAIEMENT_REJETE"] = "PAIEMENT_REJETE";
|
|
10
|
+
WebhooksEvents["RTP_RECU"] = "RTP_RECU";
|
|
11
|
+
WebhooksEvents["RTP_REJETE"] = "RTP_REJETE";
|
|
12
|
+
WebhooksEvents["ANNULATION_DEMANDE"] = "ANNULATION_DEMANDE";
|
|
13
|
+
WebhooksEvents["ANNULATION_REJETE"] = "ANNULATION_REJETE";
|
|
14
|
+
WebhooksEvents["RETOUR_ENVOYE"] = "RETOUR_ENVOYE";
|
|
15
|
+
WebhooksEvents["RETOUR_REJETE"] = "RETOUR_REJETE";
|
|
16
|
+
WebhooksEvents["RETOUR_RECU"] = "RETOUR_RECU";
|
|
17
|
+
})(WebhooksEvents || (WebhooksEvents = {}));
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { AliasCreationReponse } from '../models/AliasCreationReponse';
|
|
2
|
+
import type { AliasCreationRequest } from '../models/AliasCreationRequest';
|
|
3
|
+
import type { AliasReponseListe } from '../models/AliasReponseListe';
|
|
4
|
+
import type { CancelablePromise } from '../core/CancelablePromise';
|
|
5
|
+
export declare class AliasService {
|
|
6
|
+
/**
|
|
7
|
+
* Créer un alias
|
|
8
|
+
* Le répertoire des alias de compte permet de créer les types d'alias suivants :
|
|
9
|
+
* - Une adresse de paiement, codifiée par SHID: cet alias est obtenu par génération d'une clé aléatoire unique sur 36 positions par le système.
|
|
10
|
+
* - Un identifiant de compte marchand, codifié par MCOD: ce type d'alias est prévu pour supporter les paiements par code USSD.
|
|
11
|
+
* - Un numéro de téléphone mobile, codifié par MBNO.
|
|
12
|
+
*
|
|
13
|
+
* Les types d'alias qu'on peut créer dépendent du type de client.
|
|
14
|
+
* Les clients de type P (particuliers, personnes physiques) peuvent créer des alias de types MBNO et SHID.
|
|
15
|
+
* Les clients de types C, B, et G (commerçants ou entreprises individuelles, entreprises, entités gouvernementales) peuvent créer des alias de types SHID et MCOD.
|
|
16
|
+
*
|
|
17
|
+
* Un client business peut créer plusieurs alias pour un compte donné.
|
|
18
|
+
* Une limite de 20 alias par compte est fixée par défaut. Cette limite peut être augmentée selon les besoins du client.
|
|
19
|
+
*
|
|
20
|
+
* @returns AliasCreationReponse Opération effectuée avec succès
|
|
21
|
+
* @throws ApiError
|
|
22
|
+
*/
|
|
23
|
+
static aliasCreer({ numero, requestBody, }: {
|
|
24
|
+
/**
|
|
25
|
+
* Le numéro de compte sur lequel porte la demande
|
|
26
|
+
*/
|
|
27
|
+
numero: string;
|
|
28
|
+
/**
|
|
29
|
+
* Données pour la création d'alias.
|
|
30
|
+
*/
|
|
31
|
+
requestBody: AliasCreationRequest;
|
|
32
|
+
}): CancelablePromise<AliasCreationReponse>;
|
|
33
|
+
/**
|
|
34
|
+
* Lister les alias
|
|
35
|
+
* Ce point de terminaison permet de consulter la liste des alias d'un compte.
|
|
36
|
+
*
|
|
37
|
+
* @returns AliasReponseListe Succès de l'opération
|
|
38
|
+
* @throws ApiError
|
|
39
|
+
*/
|
|
40
|
+
static aliasLister({ numero, }: {
|
|
41
|
+
/**
|
|
42
|
+
* Le numéro de compte sur lequel porte la demande
|
|
43
|
+
*/
|
|
44
|
+
numero: string;
|
|
45
|
+
}): CancelablePromise<AliasReponseListe>;
|
|
46
|
+
/**
|
|
47
|
+
* Supprimer un alias
|
|
48
|
+
* Le client peut supprimer à tout moment un alias de compte.
|
|
49
|
+
*
|
|
50
|
+
* @returns void
|
|
51
|
+
* @throws ApiError
|
|
52
|
+
*/
|
|
53
|
+
static aliasSupprimer({ numero, cle, }: {
|
|
54
|
+
/**
|
|
55
|
+
* Le numéro de compte
|
|
56
|
+
*/
|
|
57
|
+
numero: string;
|
|
58
|
+
/**
|
|
59
|
+
* La cle de l'alias
|
|
60
|
+
*/
|
|
61
|
+
cle: string;
|
|
62
|
+
}): CancelablePromise<void>;
|
|
63
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { OpenAPI } from '../core/OpenAPI';
|
|
2
|
+
import { request as __request } from '../core/request';
|
|
3
|
+
export class AliasService {
|
|
4
|
+
/**
|
|
5
|
+
* Créer un alias
|
|
6
|
+
* Le répertoire des alias de compte permet de créer les types d'alias suivants :
|
|
7
|
+
* - Une adresse de paiement, codifiée par SHID: cet alias est obtenu par génération d'une clé aléatoire unique sur 36 positions par le système.
|
|
8
|
+
* - Un identifiant de compte marchand, codifié par MCOD: ce type d'alias est prévu pour supporter les paiements par code USSD.
|
|
9
|
+
* - Un numéro de téléphone mobile, codifié par MBNO.
|
|
10
|
+
*
|
|
11
|
+
* Les types d'alias qu'on peut créer dépendent du type de client.
|
|
12
|
+
* Les clients de type P (particuliers, personnes physiques) peuvent créer des alias de types MBNO et SHID.
|
|
13
|
+
* Les clients de types C, B, et G (commerçants ou entreprises individuelles, entreprises, entités gouvernementales) peuvent créer des alias de types SHID et MCOD.
|
|
14
|
+
*
|
|
15
|
+
* Un client business peut créer plusieurs alias pour un compte donné.
|
|
16
|
+
* Une limite de 20 alias par compte est fixée par défaut. Cette limite peut être augmentée selon les besoins du client.
|
|
17
|
+
*
|
|
18
|
+
* @returns AliasCreationReponse Opération effectuée avec succès
|
|
19
|
+
* @throws ApiError
|
|
20
|
+
*/
|
|
21
|
+
static aliasCreer({ numero, requestBody, }) {
|
|
22
|
+
return __request(OpenAPI, {
|
|
23
|
+
method: 'POST',
|
|
24
|
+
url: '/comptes/{numero}/alias',
|
|
25
|
+
path: {
|
|
26
|
+
'numero': numero,
|
|
27
|
+
},
|
|
28
|
+
body: requestBody,
|
|
29
|
+
mediaType: 'application/json',
|
|
30
|
+
errors: {
|
|
31
|
+
400: `La requête est malformée`,
|
|
32
|
+
401: `Autorisations manquantes`,
|
|
33
|
+
403: `Opération interdite`,
|
|
34
|
+
404: `La ressource n'existe pas dans le système`,
|
|
35
|
+
429: `Erreur inattendue`,
|
|
36
|
+
503: `Erreur inattendue du serveur`,
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Lister les alias
|
|
42
|
+
* Ce point de terminaison permet de consulter la liste des alias d'un compte.
|
|
43
|
+
*
|
|
44
|
+
* @returns AliasReponseListe Succès de l'opération
|
|
45
|
+
* @throws ApiError
|
|
46
|
+
*/
|
|
47
|
+
static aliasLister({ numero, }) {
|
|
48
|
+
return __request(OpenAPI, {
|
|
49
|
+
method: 'GET',
|
|
50
|
+
url: '/comptes/{numero}/alias',
|
|
51
|
+
path: {
|
|
52
|
+
'numero': numero,
|
|
53
|
+
},
|
|
54
|
+
errors: {
|
|
55
|
+
401: `Autorisations manquantes`,
|
|
56
|
+
429: `Erreur inattendue`,
|
|
57
|
+
503: `Erreur inattendue du serveur`,
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Supprimer un alias
|
|
63
|
+
* Le client peut supprimer à tout moment un alias de compte.
|
|
64
|
+
*
|
|
65
|
+
* @returns void
|
|
66
|
+
* @throws ApiError
|
|
67
|
+
*/
|
|
68
|
+
static aliasSupprimer({ numero, cle, }) {
|
|
69
|
+
return __request(OpenAPI, {
|
|
70
|
+
method: 'DELETE',
|
|
71
|
+
url: '/comptes/{numero}/alias/{cle}',
|
|
72
|
+
path: {
|
|
73
|
+
'numero': numero,
|
|
74
|
+
'cle': cle,
|
|
75
|
+
},
|
|
76
|
+
errors: {
|
|
77
|
+
401: `Autorisations manquantes`,
|
|
78
|
+
404: `La ressource n'existe pas dans le système`,
|
|
79
|
+
429: `Erreur inattendue`,
|
|
80
|
+
503: `Erreur inattendue du serveur`,
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { CompteOperationListe } from '../models/CompteOperationListe';
|
|
2
|
+
import type { CompteSolde } from '../models/CompteSolde';
|
|
3
|
+
import type { CompteTransfertIntraReponse } from '../models/CompteTransfertIntraReponse';
|
|
4
|
+
import type { CompteTransfertIntraRequest } from '../models/CompteTransfertIntraRequest';
|
|
5
|
+
import type { CancelablePromise } from '../core/CancelablePromise';
|
|
6
|
+
export declare class ComptesService {
|
|
7
|
+
/**
|
|
8
|
+
* Détails d'un compte
|
|
9
|
+
* Cet endpoint permet au client de consulter à tout moment les informations détaillées relatives à un compte spécifique.
|
|
10
|
+
*
|
|
11
|
+
* Les informations retournées incluent :
|
|
12
|
+
* - Le type de compte (compte courant, épargne, etc.)
|
|
13
|
+
* - Le numéro du compte
|
|
14
|
+
* - La date d'ouverture du compte
|
|
15
|
+
* - Le solde actuel du compte
|
|
16
|
+
* - Le statut du compte (ouvert, bloqué ou clôturé)
|
|
17
|
+
* - L'indicateur de pré-confirmation pour les opérations
|
|
18
|
+
*
|
|
19
|
+
* Cette consultation permet au client business de surveiller l'état de ses comptes en temps réel et de prendre des décisions éclairées concernant ses opérations financières.
|
|
20
|
+
*
|
|
21
|
+
* @returns CompteSolde Succès de l'opération
|
|
22
|
+
* @throws ApiError
|
|
23
|
+
*/
|
|
24
|
+
static compteSoldeConsulter({ numero, }: {
|
|
25
|
+
/**
|
|
26
|
+
* Le numéro de compte sur lequel porte la demande
|
|
27
|
+
*/
|
|
28
|
+
numero: string;
|
|
29
|
+
}): CancelablePromise<CompteSolde>;
|
|
30
|
+
/**
|
|
31
|
+
* Transfert intra-comptes
|
|
32
|
+
* Le transfert intra-comptes est un transfert de fonds entre deux comptes détenus par la même entité juridique et domiciliés au sein de la même institution financière. Le compte source (débiteur/payeur) et le compte destination (créditeur/bénéficiaire) appartiennent donc au même client.
|
|
33
|
+
*
|
|
34
|
+
* @returns CompteTransfertIntraReponse Transfert initié avec succès.
|
|
35
|
+
* @throws ApiError
|
|
36
|
+
*/
|
|
37
|
+
static compteTransfertIntraCreer({ requestBody, }: {
|
|
38
|
+
/**
|
|
39
|
+
* Données à fournir pour effectuer un transfert intra-comptes.
|
|
40
|
+
*
|
|
41
|
+
* Le client business peut effectuer un transfert intra-comptes en utilisant les numéros de compte ou les alias de compte.
|
|
42
|
+
* La création d'alias n'étant possible que sur certains types de comptes, le participant doit supporter les deux modes de transfert.
|
|
43
|
+
*
|
|
44
|
+
*/
|
|
45
|
+
requestBody: CompteTransfertIntraRequest;
|
|
46
|
+
}): CancelablePromise<CompteTransfertIntraReponse>;
|
|
47
|
+
/**
|
|
48
|
+
* Lister les transferts intra-comptes
|
|
49
|
+
* @returns CompteOperationListe Succès de l'opération
|
|
50
|
+
* @throws ApiError
|
|
51
|
+
*/
|
|
52
|
+
static compteTransfertIntraLister({ statut, comptePayeur, comptePaye, dateEnvoi, dateIrrevocabilite, motif, page, size, sort, fields, }: {
|
|
53
|
+
statut?: string;
|
|
54
|
+
comptePayeur?: string;
|
|
55
|
+
comptePaye?: string;
|
|
56
|
+
dateEnvoi?: string;
|
|
57
|
+
dateIrrevocabilite?: string;
|
|
58
|
+
motif?: string;
|
|
59
|
+
page?: string;
|
|
60
|
+
size?: string;
|
|
61
|
+
sort?: string;
|
|
62
|
+
fields?: any;
|
|
63
|
+
}): CancelablePromise<CompteOperationListe>;
|
|
64
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { OpenAPI } from '../core/OpenAPI';
|
|
2
|
+
import { request as __request } from '../core/request';
|
|
3
|
+
export class ComptesService {
|
|
4
|
+
/**
|
|
5
|
+
* Détails d'un compte
|
|
6
|
+
* Cet endpoint permet au client de consulter à tout moment les informations détaillées relatives à un compte spécifique.
|
|
7
|
+
*
|
|
8
|
+
* Les informations retournées incluent :
|
|
9
|
+
* - Le type de compte (compte courant, épargne, etc.)
|
|
10
|
+
* - Le numéro du compte
|
|
11
|
+
* - La date d'ouverture du compte
|
|
12
|
+
* - Le solde actuel du compte
|
|
13
|
+
* - Le statut du compte (ouvert, bloqué ou clôturé)
|
|
14
|
+
* - L'indicateur de pré-confirmation pour les opérations
|
|
15
|
+
*
|
|
16
|
+
* Cette consultation permet au client business de surveiller l'état de ses comptes en temps réel et de prendre des décisions éclairées concernant ses opérations financières.
|
|
17
|
+
*
|
|
18
|
+
* @returns CompteSolde Succès de l'opération
|
|
19
|
+
* @throws ApiError
|
|
20
|
+
*/
|
|
21
|
+
static compteSoldeConsulter({ numero, }) {
|
|
22
|
+
return __request(OpenAPI, {
|
|
23
|
+
method: 'GET',
|
|
24
|
+
url: '/comptes/{numero}',
|
|
25
|
+
path: {
|
|
26
|
+
'numero': numero,
|
|
27
|
+
},
|
|
28
|
+
errors: {
|
|
29
|
+
401: `Autorisations manquantes`,
|
|
30
|
+
404: `La ressource n'existe pas dans le système`,
|
|
31
|
+
429: `Erreur inattendue`,
|
|
32
|
+
503: `Erreur inattendue du serveur`,
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Transfert intra-comptes
|
|
38
|
+
* Le transfert intra-comptes est un transfert de fonds entre deux comptes détenus par la même entité juridique et domiciliés au sein de la même institution financière. Le compte source (débiteur/payeur) et le compte destination (créditeur/bénéficiaire) appartiennent donc au même client.
|
|
39
|
+
*
|
|
40
|
+
* @returns CompteTransfertIntraReponse Transfert initié avec succès.
|
|
41
|
+
* @throws ApiError
|
|
42
|
+
*/
|
|
43
|
+
static compteTransfertIntraCreer({ requestBody, }) {
|
|
44
|
+
return __request(OpenAPI, {
|
|
45
|
+
method: 'POST',
|
|
46
|
+
url: '/comptes/transactions',
|
|
47
|
+
body: requestBody,
|
|
48
|
+
mediaType: 'application/json',
|
|
49
|
+
errors: {
|
|
50
|
+
400: `La requête est malformée`,
|
|
51
|
+
401: `Autorisations manquantes`,
|
|
52
|
+
403: `Interdiction d'effectuer le paiement`,
|
|
53
|
+
429: `Erreur inattendue`,
|
|
54
|
+
503: `Erreur inattendue du serveur`,
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Lister les transferts intra-comptes
|
|
60
|
+
* @returns CompteOperationListe Succès de l'opération
|
|
61
|
+
* @throws ApiError
|
|
62
|
+
*/
|
|
63
|
+
static compteTransfertIntraLister({ statut, comptePayeur, comptePaye, dateEnvoi, dateIrrevocabilite, motif, page, size, sort, fields, }) {
|
|
64
|
+
return __request(OpenAPI, {
|
|
65
|
+
method: 'GET',
|
|
66
|
+
url: '/comptes/transactions',
|
|
67
|
+
query: {
|
|
68
|
+
'statut': statut,
|
|
69
|
+
'comptePayeur': comptePayeur,
|
|
70
|
+
'comptePaye': comptePaye,
|
|
71
|
+
'dateEnvoi': dateEnvoi,
|
|
72
|
+
'dateIrrevocabilite': dateIrrevocabilite,
|
|
73
|
+
'motif': motif,
|
|
74
|
+
'page': page,
|
|
75
|
+
'size': size,
|
|
76
|
+
'sort': sort,
|
|
77
|
+
'fields': fields,
|
|
78
|
+
},
|
|
79
|
+
errors: {
|
|
80
|
+
401: `Autorisations manquantes`,
|
|
81
|
+
429: `Erreur inattendue`,
|
|
82
|
+
503: `Erreur inattendue du serveur`,
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { Paiement } from '../models/Paiement';
|
|
2
|
+
import type { PaiementAnnulationReponseRequest } from '../models/PaiementAnnulationReponseRequest';
|
|
3
|
+
import type { PaiementAnnulationRequest } from '../models/PaiementAnnulationRequest';
|
|
4
|
+
import type { CancelablePromise } from '../core/CancelablePromise';
|
|
5
|
+
export declare class DemandeAnnulationService {
|
|
6
|
+
/**
|
|
7
|
+
* Demander l'annulation d'un paiement
|
|
8
|
+
* Ce point de terminaison permet de demander l'annulation d'un paiement envoyé.
|
|
9
|
+
*
|
|
10
|
+
* À l'acceptation de la demande d'annulation, le payé effectue un retour de fonds et le business recevra une notification `RETOUR_RECU` s'il a souscrit au service de webhook.
|
|
11
|
+
*
|
|
12
|
+
* Si le payé refuse la demande d'annulation, le business recevra une notification `ANNULATION_REJETE`.
|
|
13
|
+
*
|
|
14
|
+
* **Note importante sur l'idempotence :**
|
|
15
|
+
*
|
|
16
|
+
* Cet endpoint utilise **POST (pas PUT)** car chaque appel envoie une **nouvelle demande d'annulation** au PSP bénéficiaire.
|
|
17
|
+
*
|
|
18
|
+
* **Comportement :**
|
|
19
|
+
* - Premier appel → Nouvelle demande d'annulation envoyée
|
|
20
|
+
* - Deuxième appel → **Nouvelle demande d'annulation envoyée** (pas idempotent)
|
|
21
|
+
* - Troisième appel → **Nouvelle demande d'annulation envoyée**
|
|
22
|
+
*
|
|
23
|
+
* **Cas d'usage :**
|
|
24
|
+
* - La première demande a été refusée, vous réessayez
|
|
25
|
+
* - Vous voulez relancer une demande en attente
|
|
26
|
+
* - Vous avez de nouvelles informations justifiant l'annulation
|
|
27
|
+
*
|
|
28
|
+
* @returns Paiement Demande d'annulation envoyée
|
|
29
|
+
* @throws ApiError
|
|
30
|
+
*/
|
|
31
|
+
static demandeAnnulationEnvoyer({ end2EndId, requestBody, }: {
|
|
32
|
+
/**
|
|
33
|
+
* L'identifiant unique de bout en bout de la transaction
|
|
34
|
+
*/
|
|
35
|
+
end2EndId: string;
|
|
36
|
+
requestBody: PaiementAnnulationRequest;
|
|
37
|
+
}): CancelablePromise<Paiement>;
|
|
38
|
+
/**
|
|
39
|
+
* Répondre à une demande d'annulation
|
|
40
|
+
* Ce point de terminaison permet au business de répondre à une demande d'annulation de paiement.
|
|
41
|
+
*
|
|
42
|
+
* Le business peut accepter ou refuser la demande d'annulation :
|
|
43
|
+
* - `decision: true` : Accepte la demande d'annulation (le business effectuera un retour de fonds)
|
|
44
|
+
* - `decision: false` : Refuse la demande d'annulation
|
|
45
|
+
*
|
|
46
|
+
* **Idempotence** : Cet endpoint est idempotent.
|
|
47
|
+
* - Premier appel avec `decision: true` → Accepte la demande, retourne `200 OK {statut: "ACCEPTEE"}`
|
|
48
|
+
* - Appels suivants avec `decision: true` → Retourne `200 OK` avec l'état actuel - idempotent
|
|
49
|
+
* - Premier appel avec `decision: false` → Refuse la demande, retourne `200 OK {statut: "REJETEE"}`
|
|
50
|
+
* - Appels suivants avec `decision: false` → Retourne `200 OK {statut: "REJETEE"}` (idempotent)
|
|
51
|
+
* - `decision: true` après `decision: false` → Retourne `403 Forbidden` (déjà refusée)
|
|
52
|
+
* - `decision: false` après `decision: true` → Retourne `403 Forbidden` (déjà acceptée)
|
|
53
|
+
*
|
|
54
|
+
* @returns Paiement Réponse à la demande d'annulation enregistrée.
|
|
55
|
+
*
|
|
56
|
+
* La réponse retourne l'objet `Paiement` complet avec les champs mis à jour selon la décision :
|
|
57
|
+
*
|
|
58
|
+
* **En cas d'acceptation (`decision: true`)** :
|
|
59
|
+
* - `annulationStatut` : Mis à jour pour indiquer l'acceptation
|
|
60
|
+
* - `annulationDateReponse` : Date et heure de la réponse à la demande d'annulation
|
|
61
|
+
* - Un retour de fonds est automatiquement initié par le participant, donc les champs suivants sont également renseignés :
|
|
62
|
+
* - `retourStatut` : Statut du retour de fonds (ex: `INITIE`, `ENVOYE`, `IRREVOCABLE`)
|
|
63
|
+
* - `retourStatutRaison` : Raison du statut du retour de fonds
|
|
64
|
+
* - `retourDateDemande` : Date de création du retour de fonds
|
|
65
|
+
* - `retourDateIrrevocabilite` : Date à laquelle le retour de fonds est irrévocable (si applicable)
|
|
66
|
+
*
|
|
67
|
+
* **En cas de rejet (`decision: false`)** :
|
|
68
|
+
* - `annulationStatut` : Mis à jour pour indiquer le rejet (ex: `REJETE`)
|
|
69
|
+
* - `annulationDateReponse` : Date et heure de la réponse à la demande d'annulation
|
|
70
|
+
* - Les champs `retour*` ne sont **pas** renseignés car aucun retour de fonds n'est effectué
|
|
71
|
+
*
|
|
72
|
+
* @throws ApiError
|
|
73
|
+
*/
|
|
74
|
+
static demandeAnnulationRepondre({ end2EndId, requestBody, }: {
|
|
75
|
+
/**
|
|
76
|
+
* L'identifiant unique de bout en bout de la transaction
|
|
77
|
+
*/
|
|
78
|
+
end2EndId: string;
|
|
79
|
+
/**
|
|
80
|
+
* La réponse du business à la demande d'annulation
|
|
81
|
+
*/
|
|
82
|
+
requestBody: PaiementAnnulationReponseRequest;
|
|
83
|
+
}): CancelablePromise<Paiement>;
|
|
84
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { OpenAPI } from '../core/OpenAPI';
|
|
2
|
+
import { request as __request } from '../core/request';
|
|
3
|
+
export class DemandeAnnulationService {
|
|
4
|
+
/**
|
|
5
|
+
* Demander l'annulation d'un paiement
|
|
6
|
+
* Ce point de terminaison permet de demander l'annulation d'un paiement envoyé.
|
|
7
|
+
*
|
|
8
|
+
* À l'acceptation de la demande d'annulation, le payé effectue un retour de fonds et le business recevra une notification `RETOUR_RECU` s'il a souscrit au service de webhook.
|
|
9
|
+
*
|
|
10
|
+
* Si le payé refuse la demande d'annulation, le business recevra une notification `ANNULATION_REJETE`.
|
|
11
|
+
*
|
|
12
|
+
* **Note importante sur l'idempotence :**
|
|
13
|
+
*
|
|
14
|
+
* Cet endpoint utilise **POST (pas PUT)** car chaque appel envoie une **nouvelle demande d'annulation** au PSP bénéficiaire.
|
|
15
|
+
*
|
|
16
|
+
* **Comportement :**
|
|
17
|
+
* - Premier appel → Nouvelle demande d'annulation envoyée
|
|
18
|
+
* - Deuxième appel → **Nouvelle demande d'annulation envoyée** (pas idempotent)
|
|
19
|
+
* - Troisième appel → **Nouvelle demande d'annulation envoyée**
|
|
20
|
+
*
|
|
21
|
+
* **Cas d'usage :**
|
|
22
|
+
* - La première demande a été refusée, vous réessayez
|
|
23
|
+
* - Vous voulez relancer une demande en attente
|
|
24
|
+
* - Vous avez de nouvelles informations justifiant l'annulation
|
|
25
|
+
*
|
|
26
|
+
* @returns Paiement Demande d'annulation envoyée
|
|
27
|
+
* @throws ApiError
|
|
28
|
+
*/
|
|
29
|
+
static demandeAnnulationEnvoyer({ end2EndId, requestBody, }) {
|
|
30
|
+
return __request(OpenAPI, {
|
|
31
|
+
method: 'POST',
|
|
32
|
+
url: '/paiements/{end2endId}/annulations',
|
|
33
|
+
path: {
|
|
34
|
+
'end2endId': end2EndId,
|
|
35
|
+
},
|
|
36
|
+
body: requestBody,
|
|
37
|
+
mediaType: 'application/json',
|
|
38
|
+
errors: {
|
|
39
|
+
401: `Autorisations manquantes`,
|
|
40
|
+
403: `Interdiction d'effectuer la demande d'annulation`,
|
|
41
|
+
429: `Erreur inattendue`,
|
|
42
|
+
503: `Erreur inattendue du serveur`,
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Répondre à une demande d'annulation
|
|
48
|
+
* Ce point de terminaison permet au business de répondre à une demande d'annulation de paiement.
|
|
49
|
+
*
|
|
50
|
+
* Le business peut accepter ou refuser la demande d'annulation :
|
|
51
|
+
* - `decision: true` : Accepte la demande d'annulation (le business effectuera un retour de fonds)
|
|
52
|
+
* - `decision: false` : Refuse la demande d'annulation
|
|
53
|
+
*
|
|
54
|
+
* **Idempotence** : Cet endpoint est idempotent.
|
|
55
|
+
* - Premier appel avec `decision: true` → Accepte la demande, retourne `200 OK {statut: "ACCEPTEE"}`
|
|
56
|
+
* - Appels suivants avec `decision: true` → Retourne `200 OK` avec l'état actuel - idempotent
|
|
57
|
+
* - Premier appel avec `decision: false` → Refuse la demande, retourne `200 OK {statut: "REJETEE"}`
|
|
58
|
+
* - Appels suivants avec `decision: false` → Retourne `200 OK {statut: "REJETEE"}` (idempotent)
|
|
59
|
+
* - `decision: true` après `decision: false` → Retourne `403 Forbidden` (déjà refusée)
|
|
60
|
+
* - `decision: false` après `decision: true` → Retourne `403 Forbidden` (déjà acceptée)
|
|
61
|
+
*
|
|
62
|
+
* @returns Paiement Réponse à la demande d'annulation enregistrée.
|
|
63
|
+
*
|
|
64
|
+
* La réponse retourne l'objet `Paiement` complet avec les champs mis à jour selon la décision :
|
|
65
|
+
*
|
|
66
|
+
* **En cas d'acceptation (`decision: true`)** :
|
|
67
|
+
* - `annulationStatut` : Mis à jour pour indiquer l'acceptation
|
|
68
|
+
* - `annulationDateReponse` : Date et heure de la réponse à la demande d'annulation
|
|
69
|
+
* - Un retour de fonds est automatiquement initié par le participant, donc les champs suivants sont également renseignés :
|
|
70
|
+
* - `retourStatut` : Statut du retour de fonds (ex: `INITIE`, `ENVOYE`, `IRREVOCABLE`)
|
|
71
|
+
* - `retourStatutRaison` : Raison du statut du retour de fonds
|
|
72
|
+
* - `retourDateDemande` : Date de création du retour de fonds
|
|
73
|
+
* - `retourDateIrrevocabilite` : Date à laquelle le retour de fonds est irrévocable (si applicable)
|
|
74
|
+
*
|
|
75
|
+
* **En cas de rejet (`decision: false`)** :
|
|
76
|
+
* - `annulationStatut` : Mis à jour pour indiquer le rejet (ex: `REJETE`)
|
|
77
|
+
* - `annulationDateReponse` : Date et heure de la réponse à la demande d'annulation
|
|
78
|
+
* - Les champs `retour*` ne sont **pas** renseignés car aucun retour de fonds n'est effectué
|
|
79
|
+
*
|
|
80
|
+
* @throws ApiError
|
|
81
|
+
*/
|
|
82
|
+
static demandeAnnulationRepondre({ end2EndId, requestBody, }) {
|
|
83
|
+
return __request(OpenAPI, {
|
|
84
|
+
method: 'PUT',
|
|
85
|
+
url: '/paiements/{end2endId}/annulations/reponses',
|
|
86
|
+
path: {
|
|
87
|
+
'end2endId': end2EndId,
|
|
88
|
+
},
|
|
89
|
+
body: requestBody,
|
|
90
|
+
mediaType: 'application/json',
|
|
91
|
+
errors: {
|
|
92
|
+
401: `Autorisations manquantes`,
|
|
93
|
+
403: `Opération interdite`,
|
|
94
|
+
429: `Erreur inattendue`,
|
|
95
|
+
503: `Erreur inattendue du serveur`,
|
|
96
|
+
},
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}
|