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.
Files changed (208) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/LICENSE +22 -0
  3. package/README.md +300 -0
  4. package/dist/config.d.ts +35 -0
  5. package/dist/config.js +4 -0
  6. package/dist/error-handler.d.ts +7 -0
  7. package/dist/error-handler.js +52 -0
  8. package/dist/errors.d.ts +25 -0
  9. package/dist/errors.js +40 -0
  10. package/dist/examples.d.ts +8 -0
  11. package/dist/examples.js +91 -0
  12. package/dist/generated/core/ApiError.d.ts +10 -0
  13. package/dist/generated/core/ApiError.js +11 -0
  14. package/dist/generated/core/ApiRequestOptions.d.ts +13 -0
  15. package/dist/generated/core/ApiRequestOptions.js +1 -0
  16. package/dist/generated/core/ApiResult.d.ts +7 -0
  17. package/dist/generated/core/ApiResult.js +1 -0
  18. package/dist/generated/core/CancelablePromise.d.ts +20 -0
  19. package/dist/generated/core/CancelablePromise.js +111 -0
  20. package/dist/generated/core/OpenAPI.d.ts +16 -0
  21. package/dist/generated/core/OpenAPI.js +11 -0
  22. package/dist/generated/core/request.d.ts +34 -0
  23. package/dist/generated/core/request.js +269 -0
  24. package/dist/generated/index.d.ts +78 -0
  25. package/dist/generated/index.js +43 -0
  26. package/dist/generated/models/AliasCreationReponse.d.ts +22 -0
  27. package/dist/generated/models/AliasCreationReponse.js +1 -0
  28. package/dist/generated/models/AliasCreationRequest.d.ts +11 -0
  29. package/dist/generated/models/AliasCreationRequest.js +1 -0
  30. package/dist/generated/models/AliasReponseListe.d.ts +26 -0
  31. package/dist/generated/models/AliasReponseListe.js +1 -0
  32. package/dist/generated/models/AnnulationStatut.d.ts +13 -0
  33. package/dist/generated/models/AnnulationStatut.js +18 -0
  34. package/dist/generated/models/Champs.d.ts +1 -0
  35. package/dist/generated/models/Champs.js +1 -0
  36. package/dist/generated/models/CompteOperation.d.ts +72 -0
  37. package/dist/generated/models/CompteOperation.js +24 -0
  38. package/dist/generated/models/CompteOperationListe.d.ts +18 -0
  39. package/dist/generated/models/CompteOperationListe.js +1 -0
  40. package/dist/generated/models/CompteSolde.d.ts +129 -0
  41. package/dist/generated/models/CompteSolde.js +71 -0
  42. package/dist/generated/models/CompteTransfertIntraReponse.d.ts +33 -0
  43. package/dist/generated/models/CompteTransfertIntraReponse.js +12 -0
  44. package/dist/generated/models/CompteTransfertIntraRequest.d.ts +9 -0
  45. package/dist/generated/models/CompteTransfertIntraRequest.js +1 -0
  46. package/dist/generated/models/DemandePaiementConfirmationAnnulationRaison.d.ts +14 -0
  47. package/dist/generated/models/DemandePaiementConfirmationAnnulationRaison.js +19 -0
  48. package/dist/generated/models/DemandePaiementConfirmationReponse.d.ts +41 -0
  49. package/dist/generated/models/DemandePaiementConfirmationReponse.js +13 -0
  50. package/dist/generated/models/DemandePaiementConfirmationRequest.d.ts +3 -0
  51. package/dist/generated/models/DemandePaiementConfirmationRequest.js +1 -0
  52. package/dist/generated/models/DemandePaiementConfirmationRequestAccepter.d.ts +9 -0
  53. package/dist/generated/models/DemandePaiementConfirmationRequestAccepter.js +1 -0
  54. package/dist/generated/models/DemandePaiementConfirmationRequestRejeter.d.ts +9 -0
  55. package/dist/generated/models/DemandePaiementConfirmationRequestRejeter.js +1 -0
  56. package/dist/generated/models/DemandePaiementConsultationReponse.d.ts +151 -0
  57. package/dist/generated/models/DemandePaiementConsultationReponse.js +27 -0
  58. package/dist/generated/models/DemandePaiementEnMasseConfirmationRequest.d.ts +3 -0
  59. package/dist/generated/models/DemandePaiementEnMasseConfirmationRequest.js +1 -0
  60. package/dist/generated/models/DemandePaiementEnMasseConfirmationRequestAccepter.d.ts +9 -0
  61. package/dist/generated/models/DemandePaiementEnMasseConfirmationRequestAccepter.js +1 -0
  62. package/dist/generated/models/DemandePaiementEnMasseConfirmationRequestRejeter.d.ts +9 -0
  63. package/dist/generated/models/DemandePaiementEnMasseConfirmationRequestRejeter.js +1 -0
  64. package/dist/generated/models/DemandePaiementEnMasseRequest.d.ts +74 -0
  65. package/dist/generated/models/DemandePaiementEnMasseRequest.js +1 -0
  66. package/dist/generated/models/DemandePaiementEnMasseStatutReponse.d.ts +98 -0
  67. package/dist/generated/models/DemandePaiementEnMasseStatutReponse.js +20 -0
  68. package/dist/generated/models/DemandePaiementListe.d.ts +26 -0
  69. package/dist/generated/models/DemandePaiementListe.js +1 -0
  70. package/dist/generated/models/DemandePaiementListeItem.d.ts +163 -0
  71. package/dist/generated/models/DemandePaiementListeItem.js +27 -0
  72. package/dist/generated/models/DemandePaiementReponse.d.ts +129 -0
  73. package/dist/generated/models/DemandePaiementReponse.js +1 -0
  74. package/dist/generated/models/DemandePaiementReponseRequest.d.ts +21 -0
  75. package/dist/generated/models/DemandePaiementReponseRequest.js +11 -0
  76. package/dist/generated/models/DemandePaiementRequest.d.ts +98 -0
  77. package/dist/generated/models/DemandePaiementRequest.js +7 -0
  78. package/dist/generated/models/DemandePaiementRequestBase.d.ts +42 -0
  79. package/dist/generated/models/DemandePaiementRequestBase.js +1 -0
  80. package/dist/generated/models/DemandePaiementRequestCategorie.d.ts +12 -0
  81. package/dist/generated/models/DemandePaiementRequestCategorie.js +17 -0
  82. package/dist/generated/models/DemandePaiementStatut.d.ts +13 -0
  83. package/dist/generated/models/DemandePaiementStatut.js +18 -0
  84. package/dist/generated/models/DemandePaiementStatutRaison.d.ts +46 -0
  85. package/dist/generated/models/DemandePaiementStatutRaison.js +51 -0
  86. package/dist/generated/models/ListeMeta.d.ts +14 -0
  87. package/dist/generated/models/ListeMeta.js +1 -0
  88. package/dist/generated/models/Paiement.d.ts +156 -0
  89. package/dist/generated/models/Paiement.js +28 -0
  90. package/dist/generated/models/PaiementAnnulationMotif.d.ts +17 -0
  91. package/dist/generated/models/PaiementAnnulationMotif.js +22 -0
  92. package/dist/generated/models/PaiementAnnulationReponseRequest.d.ts +11 -0
  93. package/dist/generated/models/PaiementAnnulationReponseRequest.js +1 -0
  94. package/dist/generated/models/PaiementAnnulationReponseRequestAccepter.d.ts +9 -0
  95. package/dist/generated/models/PaiementAnnulationReponseRequestAccepter.js +1 -0
  96. package/dist/generated/models/PaiementAnnulationReponseRequestRejeter.d.ts +9 -0
  97. package/dist/generated/models/PaiementAnnulationReponseRequestRejeter.js +1 -0
  98. package/dist/generated/models/PaiementAnnulationRequest.d.ts +4 -0
  99. package/dist/generated/models/PaiementAnnulationRequest.js +1 -0
  100. package/dist/generated/models/PaiementAnnulationStatutRaison.d.ts +21 -0
  101. package/dist/generated/models/PaiementAnnulationStatutRaison.js +26 -0
  102. package/dist/generated/models/PaiementEnMasseConfirmationRequest.d.ts +3 -0
  103. package/dist/generated/models/PaiementEnMasseConfirmationRequest.js +1 -0
  104. package/dist/generated/models/PaiementEnMasseConfirmationRequestAccepter.d.ts +9 -0
  105. package/dist/generated/models/PaiementEnMasseConfirmationRequestAccepter.js +1 -0
  106. package/dist/generated/models/PaiementEnMasseConfirmationRequestRejeter.d.ts +9 -0
  107. package/dist/generated/models/PaiementEnMasseConfirmationRequestRejeter.js +1 -0
  108. package/dist/generated/models/PaiementEnMasseReponseStatut.d.ts +97 -0
  109. package/dist/generated/models/PaiementEnMasseReponseStatut.js +20 -0
  110. package/dist/generated/models/PaiementEnMasseRequest.d.ts +54 -0
  111. package/dist/generated/models/PaiementEnMasseRequest.js +1 -0
  112. package/dist/generated/models/PaiementImmediatConfirmationReponse.d.ts +31 -0
  113. package/dist/generated/models/PaiementImmediatConfirmationReponse.js +7 -0
  114. package/dist/generated/models/PaiementImmediatConfirmationRequest.d.ts +3 -0
  115. package/dist/generated/models/PaiementImmediatConfirmationRequest.js +1 -0
  116. package/dist/generated/models/PaiementImmediatConfirmationRequestAccepter.d.ts +9 -0
  117. package/dist/generated/models/PaiementImmediatConfirmationRequestAccepter.js +1 -0
  118. package/dist/generated/models/PaiementImmediatConfirmationRequestRejeter.d.ts +9 -0
  119. package/dist/generated/models/PaiementImmediatConfirmationRequestRejeter.js +1 -0
  120. package/dist/generated/models/PaiementImmediatReponse.d.ts +98 -0
  121. package/dist/generated/models/PaiementImmediatReponse.js +7 -0
  122. package/dist/generated/models/PaiementImmediatRequest.d.ts +13 -0
  123. package/dist/generated/models/PaiementImmediatRequest.js +1 -0
  124. package/dist/generated/models/PaiementListe.d.ts +6 -0
  125. package/dist/generated/models/PaiementListe.js +1 -0
  126. package/dist/generated/models/PaiementRequest.d.ts +33 -0
  127. package/dist/generated/models/PaiementRequest.js +1 -0
  128. package/dist/generated/models/PaiementStatut.d.ts +13 -0
  129. package/dist/generated/models/PaiementStatut.js +18 -0
  130. package/dist/generated/models/PaiementStatutRaison.d.ts +56 -0
  131. package/dist/generated/models/PaiementStatutRaison.js +61 -0
  132. package/dist/generated/models/Problem7807.d.ts +31 -0
  133. package/dist/generated/models/Problem7807.js +1 -0
  134. package/dist/generated/models/RefDocType.d.ts +38 -0
  135. package/dist/generated/models/RefDocType.js +43 -0
  136. package/dist/generated/models/RetourStatut.d.ts +13 -0
  137. package/dist/generated/models/RetourStatut.js +18 -0
  138. package/dist/generated/models/RetourStatutRaison.d.ts +25 -0
  139. package/dist/generated/models/RetourStatutRaison.js +30 -0
  140. package/dist/generated/models/WebhookCreationRequest.d.ts +14 -0
  141. package/dist/generated/models/WebhookCreationRequest.js +1 -0
  142. package/dist/generated/models/WebhookCreationResponse.d.ts +12 -0
  143. package/dist/generated/models/WebhookCreationResponse.js +1 -0
  144. package/dist/generated/models/WebhookData.d.ts +8 -0
  145. package/dist/generated/models/WebhookData.js +1 -0
  146. package/dist/generated/models/WebhookEvent.d.ts +191 -0
  147. package/dist/generated/models/WebhookEvent.js +42 -0
  148. package/dist/generated/models/WebhookEventsList.d.ts +13 -0
  149. package/dist/generated/models/WebhookEventsList.js +1 -0
  150. package/dist/generated/models/WebhookList.d.ts +13 -0
  151. package/dist/generated/models/WebhookList.js +1 -0
  152. package/dist/generated/models/WebhookModificationRequest.d.ts +4 -0
  153. package/dist/generated/models/WebhookModificationRequest.js +1 -0
  154. package/dist/generated/models/WebhooksEvents.d.ts +12 -0
  155. package/dist/generated/models/WebhooksEvents.js +17 -0
  156. package/dist/generated/services/AliasService.d.ts +63 -0
  157. package/dist/generated/services/AliasService.js +84 -0
  158. package/dist/generated/services/ComptesService.d.ts +64 -0
  159. package/dist/generated/services/ComptesService.js +86 -0
  160. package/dist/generated/services/DemandeAnnulationService.d.ts +84 -0
  161. package/dist/generated/services/DemandeAnnulationService.js +99 -0
  162. package/dist/generated/services/DemandesDePaiementEnMasseService.d.ts +161 -0
  163. package/dist/generated/services/DemandesDePaiementEnMasseService.js +189 -0
  164. package/dist/generated/services/DemandesDePaiementService.d.ts +123 -0
  165. package/dist/generated/services/DemandesDePaiementService.js +161 -0
  166. package/dist/generated/services/NotificationService.d.ts +80 -0
  167. package/dist/generated/services/NotificationService.js +132 -0
  168. package/dist/generated/services/PaiementEnMasseService.d.ts +159 -0
  169. package/dist/generated/services/PaiementEnMasseService.js +187 -0
  170. package/dist/generated/services/PaiementImmediatService.d.ts +135 -0
  171. package/dist/generated/services/PaiementImmediatService.js +176 -0
  172. package/dist/generated/services/RetoursdeFondsService.d.ts +28 -0
  173. package/dist/generated/services/RetoursdeFondsService.js +37 -0
  174. package/dist/index.d.ts +14 -0
  175. package/dist/index.js +23 -0
  176. package/dist/query-builder.d.ts +91 -0
  177. package/dist/query-builder.js +187 -0
  178. package/dist/sdk.d.ts +88 -0
  179. package/dist/sdk.js +107 -0
  180. package/dist/services/alias.d.ts +72 -0
  181. package/dist/services/alias.js +82 -0
  182. package/dist/services/base.d.ts +9 -0
  183. package/dist/services/base.js +17 -0
  184. package/dist/services/comptes.d.ts +149 -0
  185. package/dist/services/comptes.js +158 -0
  186. package/dist/services/demandes-annulation.d.ts +97 -0
  187. package/dist/services/demandes-annulation.js +104 -0
  188. package/dist/services/demandes-paiement-en-masse.d.ts +139 -0
  189. package/dist/services/demandes-paiement-en-masse.js +139 -0
  190. package/dist/services/demandes-paiement.d.ts +144 -0
  191. package/dist/services/demandes-paiement.js +151 -0
  192. package/dist/services/paiements-en-masse.d.ts +152 -0
  193. package/dist/services/paiements-en-masse.js +153 -0
  194. package/dist/services/paiements.d.ts +135 -0
  195. package/dist/services/paiements.js +135 -0
  196. package/dist/services/retours-fonds.d.ts +94 -0
  197. package/dist/services/retours-fonds.js +100 -0
  198. package/dist/services/webhooks.d.ts +131 -0
  199. package/dist/services/webhooks.js +142 -0
  200. package/dist/types/alias.d.ts +64 -0
  201. package/dist/types/alias.js +73 -0
  202. package/dist/utils/constants.d.ts +93 -0
  203. package/dist/utils/constants.js +93 -0
  204. package/dist/utils/index.d.ts +60 -0
  205. package/dist/utils/index.js +115 -0
  206. package/package.json +81 -0
  207. package/scripts/post-generate.js +129 -0
  208. package/scripts/pre-generate.js +106 -0
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Accounts (Comptes) service wrapper
3
+ *
4
+ * Provides methods for managing accounts, viewing balances,
5
+ * listing operations, and performing intra-account transfers.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * // Get account balance and details
10
+ * const account = await sdk.comptes.getAccount('CIC2344256727788288822');
11
+ * console.log('Balance:', account.solde); // Amount in centimes
12
+ * console.log('Status:', account.statut); // 'OUVERT', 'BLOQUE', or 'CLOTURE'
13
+ *
14
+ * // List operations with pagination
15
+ * const operations = await sdk.comptes.listOperations({
16
+ * comptePayeur: 'CIC2344256727788288822',
17
+ * page: 1,
18
+ * size: 20
19
+ * });
20
+ * ```
21
+ */
22
+ import { BaseService } from './base';
23
+ import type { QueryParams } from '../query-builder';
24
+ export declare class ComptesService extends BaseService {
25
+ /**
26
+ * Get account details and balance
27
+ *
28
+ * **Returns:**
29
+ * - Account type (CACC, SVGS, etc.)
30
+ * - Account number
31
+ * - Current balance (`solde` in centimes)
32
+ * - Account status (OUVERT, BLOQUE, CLOTURE)
33
+ * - Opening date
34
+ * - Pre-confirmation indicator
35
+ *
36
+ * @param numero - Account number (e.g., 'CIC2344256727788288822')
37
+ * @returns Account details including balance
38
+ * @throws {PiSpiNotFoundError} If account not found
39
+ * @throws {PiSpiAuthError} If authentication fails
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * const account = await sdk.comptes.getAccount('CIC2344256727788288822');
44
+ * // Returns: {
45
+ * // type: 'CACC',
46
+ * // numero: 'CIC2344256727788288822',
47
+ * // solde: 150000000, // 1,500,000 XOF in centimes
48
+ * // statut: 'OUVERT',
49
+ * // dateOuverture: '2023-02-21T15:30:01.250Z'
50
+ * // }
51
+ * ```
52
+ */
53
+ getAccount(numero: string): Promise<never>;
54
+ /**
55
+ * List account operations (transactions)
56
+ *
57
+ * **Filtering Options:**
58
+ * - Filter by account number (`comptePayeur`, `comptePaye`)
59
+ * - Filter by status (`statut`: INITIE, ENVOYE, IRREVOCABLE, REJETE)
60
+ * - Filter by dates (`dateEnvoi`, `dateIrrevocabilite`)
61
+ * - Use QueryBuilder for advanced filtering
62
+ *
63
+ * @param params - Query parameters for filtering and pagination
64
+ * @param params.comptePayeur - Filter by payer account number
65
+ * @param params.comptePaye - Filter by payee account number
66
+ * @param params.statut - Filter by transaction status
67
+ * @param params.dateEnvoi - Filter by send date
68
+ * @param params.dateIrrevocabilite - Filter by irrevocability date
69
+ * @param params.page - Page number (default: 1)
70
+ * @param params.size - Page size (default: 20, max: 100)
71
+ * @returns Paginated list of operations
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * // List all operations for an account
76
+ * const operations = await sdk.comptes.listOperations({
77
+ * comptePayeur: 'CIC2344256727788288822',
78
+ * page: 1,
79
+ * size: 20
80
+ * });
81
+ *
82
+ * // Filter by status
83
+ * const completed = await sdk.comptes.listOperations({
84
+ * comptePayeur: 'CIC2344256727788288822',
85
+ * statut: 'IRREVOCABLE'
86
+ * });
87
+ * ```
88
+ */
89
+ listOperations(params?: QueryParams & {
90
+ comptePayeur?: string;
91
+ comptePaye?: string;
92
+ statut?: string;
93
+ dateEnvoi?: string;
94
+ dateIrrevocabilite?: string;
95
+ }): Promise<never>;
96
+ /**
97
+ * Transfer funds between accounts owned by the same client
98
+ *
99
+ * **Intra-Account Transfer:**
100
+ * - Transfers between accounts owned by the same legal entity
101
+ * - Accounts must be at the same financial institution
102
+ * - Can use account numbers or aliases
103
+ *
104
+ * **Transfer Methods:**
105
+ * - Using account numbers: `comptePayeur` and `comptePaye`
106
+ * - Using aliases: `payeurAlias` and `payeAlias`
107
+ *
108
+ * @param transfer - Transfer request details
109
+ * @param transfer.comptePayeur - Payer account number (if using account numbers)
110
+ * @param transfer.comptePaye - Payee account number (if using account numbers)
111
+ * @param transfer.payeurAlias - Payer alias (if using aliases)
112
+ * @param transfer.payeAlias - Payee alias (if using aliases)
113
+ * @param transfer.montant - Amount in centimes (e.g., 150000 = 1,500 XOF)
114
+ * @param transfer.motif - Transfer reason/description
115
+ * @param transfer.txId - Unique transaction ID (optional, auto-generated if not provided)
116
+ * @returns Transfer response with status
117
+ * @throws {PiSpiValidationError} If transfer fails validation
118
+ * @throws {PiSpiError} If account blocked or insufficient funds
119
+ *
120
+ * @example
121
+ * ```typescript
122
+ * // Transfer using account numbers
123
+ * await sdk.comptes.transfer({
124
+ * comptePayeur: 'CIC2344256727788288822',
125
+ * comptePaye: 'SNC2344256727788288822',
126
+ * montant: 150000, // 1,500 XOF
127
+ * motif: 'Transfert de fonds',
128
+ * txId: '23511722'
129
+ * });
130
+ *
131
+ * // Transfer using aliases
132
+ * await sdk.comptes.transfer({
133
+ * payeurAlias: '8b1b2499-3e50-435b-b757-ac7a83d8aa7f',
134
+ * payeAlias: '4r5ty499-3e50-435b-b757-ac7a83d67juio',
135
+ * montant: 150000,
136
+ * motif: 'Transfert entre comptes'
137
+ * });
138
+ * ```
139
+ */
140
+ transfer(transfer: {
141
+ comptePayeur?: string;
142
+ comptePaye?: string;
143
+ payeurAlias?: string;
144
+ payeAlias?: string;
145
+ montant: number;
146
+ motif?: string;
147
+ txId?: string;
148
+ }): Promise<never>;
149
+ }
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Accounts (Comptes) service wrapper
3
+ *
4
+ * Provides methods for managing accounts, viewing balances,
5
+ * listing operations, and performing intra-account transfers.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * // Get account balance and details
10
+ * const account = await sdk.comptes.getAccount('CIC2344256727788288822');
11
+ * console.log('Balance:', account.solde); // Amount in centimes
12
+ * console.log('Status:', account.statut); // 'OUVERT', 'BLOQUE', or 'CLOTURE'
13
+ *
14
+ * // List operations with pagination
15
+ * const operations = await sdk.comptes.listOperations({
16
+ * comptePayeur: 'CIC2344256727788288822',
17
+ * page: 1,
18
+ * size: 20
19
+ * });
20
+ * ```
21
+ */
22
+ import { BaseService } from './base';
23
+ // Import generated types and services
24
+ // These will be available after running the generate script
25
+ // import { CompteSolde, CompteTransfertIntraRequest, CompteTransfertIntraReponse } from '../generated';
26
+ // import { DefaultService } from '../generated/services/DefaultService';
27
+ export class ComptesService extends BaseService {
28
+ /**
29
+ * Get account details and balance
30
+ *
31
+ * **Returns:**
32
+ * - Account type (CACC, SVGS, etc.)
33
+ * - Account number
34
+ * - Current balance (`solde` in centimes)
35
+ * - Account status (OUVERT, BLOQUE, CLOTURE)
36
+ * - Opening date
37
+ * - Pre-confirmation indicator
38
+ *
39
+ * @param numero - Account number (e.g., 'CIC2344256727788288822')
40
+ * @returns Account details including balance
41
+ * @throws {PiSpiNotFoundError} If account not found
42
+ * @throws {PiSpiAuthError} If authentication fails
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const account = await sdk.comptes.getAccount('CIC2344256727788288822');
47
+ * // Returns: {
48
+ * // type: 'CACC',
49
+ * // numero: 'CIC2344256727788288822',
50
+ * // solde: 150000000, // 1,500,000 XOF in centimes
51
+ * // statut: 'OUVERT',
52
+ * // dateOuverture: '2023-02-21T15:30:01.250Z'
53
+ * // }
54
+ * ```
55
+ */
56
+ async getAccount(numero) {
57
+ return this.execute(async () => {
58
+ // This will call the generated service after codegen
59
+ // return await DefaultService.compteSoldeConsulter({ numero });
60
+ throw new Error('Service not yet generated. Run "pnpm run generate" first.');
61
+ });
62
+ }
63
+ /**
64
+ * List account operations (transactions)
65
+ *
66
+ * **Filtering Options:**
67
+ * - Filter by account number (`comptePayeur`, `comptePaye`)
68
+ * - Filter by status (`statut`: INITIE, ENVOYE, IRREVOCABLE, REJETE)
69
+ * - Filter by dates (`dateEnvoi`, `dateIrrevocabilite`)
70
+ * - Use QueryBuilder for advanced filtering
71
+ *
72
+ * @param params - Query parameters for filtering and pagination
73
+ * @param params.comptePayeur - Filter by payer account number
74
+ * @param params.comptePaye - Filter by payee account number
75
+ * @param params.statut - Filter by transaction status
76
+ * @param params.dateEnvoi - Filter by send date
77
+ * @param params.dateIrrevocabilite - Filter by irrevocability date
78
+ * @param params.page - Page number (default: 1)
79
+ * @param params.size - Page size (default: 20, max: 100)
80
+ * @returns Paginated list of operations
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * // List all operations for an account
85
+ * const operations = await sdk.comptes.listOperations({
86
+ * comptePayeur: 'CIC2344256727788288822',
87
+ * page: 1,
88
+ * size: 20
89
+ * });
90
+ *
91
+ * // Filter by status
92
+ * const completed = await sdk.comptes.listOperations({
93
+ * comptePayeur: 'CIC2344256727788288822',
94
+ * statut: 'IRREVOCABLE'
95
+ * });
96
+ * ```
97
+ */
98
+ async listOperations(params) {
99
+ return this.execute(async () => {
100
+ // This will call the generated service after codegen
101
+ // return await DefaultService.compteTransfertIntraLister(params);
102
+ throw new Error('Service not yet generated. Run "pnpm run generate" first.');
103
+ });
104
+ }
105
+ /**
106
+ * Transfer funds between accounts owned by the same client
107
+ *
108
+ * **Intra-Account Transfer:**
109
+ * - Transfers between accounts owned by the same legal entity
110
+ * - Accounts must be at the same financial institution
111
+ * - Can use account numbers or aliases
112
+ *
113
+ * **Transfer Methods:**
114
+ * - Using account numbers: `comptePayeur` and `comptePaye`
115
+ * - Using aliases: `payeurAlias` and `payeAlias`
116
+ *
117
+ * @param transfer - Transfer request details
118
+ * @param transfer.comptePayeur - Payer account number (if using account numbers)
119
+ * @param transfer.comptePaye - Payee account number (if using account numbers)
120
+ * @param transfer.payeurAlias - Payer alias (if using aliases)
121
+ * @param transfer.payeAlias - Payee alias (if using aliases)
122
+ * @param transfer.montant - Amount in centimes (e.g., 150000 = 1,500 XOF)
123
+ * @param transfer.motif - Transfer reason/description
124
+ * @param transfer.txId - Unique transaction ID (optional, auto-generated if not provided)
125
+ * @returns Transfer response with status
126
+ * @throws {PiSpiValidationError} If transfer fails validation
127
+ * @throws {PiSpiError} If account blocked or insufficient funds
128
+ *
129
+ * @example
130
+ * ```typescript
131
+ * // Transfer using account numbers
132
+ * await sdk.comptes.transfer({
133
+ * comptePayeur: 'CIC2344256727788288822',
134
+ * comptePaye: 'SNC2344256727788288822',
135
+ * montant: 150000, // 1,500 XOF
136
+ * motif: 'Transfert de fonds',
137
+ * txId: '23511722'
138
+ * });
139
+ *
140
+ * // Transfer using aliases
141
+ * await sdk.comptes.transfer({
142
+ * payeurAlias: '8b1b2499-3e50-435b-b757-ac7a83d8aa7f',
143
+ * payeAlias: '4r5ty499-3e50-435b-b757-ac7a83d67juio',
144
+ * montant: 150000,
145
+ * motif: 'Transfert entre comptes'
146
+ * });
147
+ * ```
148
+ */
149
+ async transfer(transfer) {
150
+ return this.execute(async () => {
151
+ // This will call the generated service after codegen
152
+ // return await DefaultService.compteTransfertIntraCreer({
153
+ // requestBody: transfer
154
+ // });
155
+ throw new Error('Service not yet generated. Run "pnpm run generate" first.');
156
+ });
157
+ }
158
+ }
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Cancellation Requests (Demandes d'Annulation) service wrapper
3
+ *
4
+ * Provides methods for requesting cancellation of sent payments.
5
+ *
6
+ * **Cancellation Rules:**
7
+ * - Can only request cancellation of payments sent by the business
8
+ * - Must be requested within 90 days of original payment
9
+ * - Payee must accept the cancellation for funds to be returned
10
+ * - Payee can reject the cancellation request
11
+ * - Multiple cancellation requests can be sent for the same payment
12
+ *
13
+ * **Cancellation Flow:**
14
+ * 1. Business requests cancellation of a sent payment
15
+ * 2. Payee receives cancellation request
16
+ * 3. Payee can accept (triggers fund return) or reject
17
+ * 4. Business receives notification of payee's decision
18
+ *
19
+ * **Use Cases:**
20
+ * - Payment sent to wrong recipient
21
+ * - Duplicate payment
22
+ * - Service cancellation
23
+ * - Agreement cancellation
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * // Request cancellation of a sent payment
28
+ * const cancellation = await sdk.demandesAnnulation.create({
29
+ * comptePayeur: 'CIC2344256727788288822',
30
+ * txId: '23552722', // Original payment transaction ID
31
+ * motif: 'CUST' // Cancellation reason code
32
+ * });
33
+ * ```
34
+ */
35
+ import { BaseService } from './base';
36
+ import type { QueryParams } from '../query-builder';
37
+ export declare class DemandesAnnulationService extends BaseService {
38
+ /**
39
+ * Create a cancellation request
40
+ *
41
+ * **Cancellation Process:**
42
+ * 1. Business identifies payment to cancel
43
+ * 2. Creates cancellation request (must be within 90 days)
44
+ * 3. Payee receives cancellation request
45
+ * 4. Payee accepts or rejects
46
+ * 5. If accepted, funds are returned via fund return mechanism
47
+ *
48
+ * **Status Values:**
49
+ * - `INITIE`: Cancellation request sent, awaiting payee response
50
+ * - `ACCEPTE`: Payee accepted cancellation (funds returned)
51
+ * - `REJETE`: Payee rejected cancellation request
52
+ *
53
+ * **Rejection Reasons:**
54
+ * - `CUST`: Customer rejection (payee refuses cancellation)
55
+ * - `AM09`: Wrong amount
56
+ * - `AC06`: Blocked account
57
+ * - `FR01`: Fraud suspicion
58
+ *
59
+ * @param request - Cancellation request data
60
+ * @param request.comptePayeur - Business account number (original payer)
61
+ * @param request.txId - Original payment transaction ID to cancel
62
+ * @param request.motif - Cancellation reason code (e.g., 'CUST' for customer request)
63
+ * @returns Cancellation request response
64
+ * @throws {PiSpiValidationError} If cancellation fails validation (e.g., > 90 days, invalid txId)
65
+ * @throws {PiSpiNotFoundError} If payment not found
66
+ *
67
+ * @example
68
+ * ```typescript
69
+ * // Request cancellation
70
+ * await sdk.demandesAnnulation.create({
71
+ * comptePayeur: 'CIC2344256727788288822',
72
+ * txId: '23552722', // Payment to cancel
73
+ * motif: 'CUST' // Customer request
74
+ * });
75
+ * ```
76
+ */
77
+ create(request: {
78
+ comptePayeur: string;
79
+ txId: string;
80
+ motif: string;
81
+ }): Promise<never>;
82
+ /**
83
+ * Get cancellation request details by transaction ID
84
+ *
85
+ * @param id - Cancellation request transaction ID
86
+ * @returns Cancellation request details
87
+ * @throws {PiSpiNotFoundError} If cancellation request not found
88
+ */
89
+ get(id: string): Promise<never>;
90
+ /**
91
+ * List cancellation requests with filtering and pagination
92
+ *
93
+ * @param params - Query parameters for filtering and pagination
94
+ * @returns Paginated list of cancellation requests
95
+ */
96
+ list(params?: QueryParams): Promise<never>;
97
+ }
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Cancellation Requests (Demandes d'Annulation) service wrapper
3
+ *
4
+ * Provides methods for requesting cancellation of sent payments.
5
+ *
6
+ * **Cancellation Rules:**
7
+ * - Can only request cancellation of payments sent by the business
8
+ * - Must be requested within 90 days of original payment
9
+ * - Payee must accept the cancellation for funds to be returned
10
+ * - Payee can reject the cancellation request
11
+ * - Multiple cancellation requests can be sent for the same payment
12
+ *
13
+ * **Cancellation Flow:**
14
+ * 1. Business requests cancellation of a sent payment
15
+ * 2. Payee receives cancellation request
16
+ * 3. Payee can accept (triggers fund return) or reject
17
+ * 4. Business receives notification of payee's decision
18
+ *
19
+ * **Use Cases:**
20
+ * - Payment sent to wrong recipient
21
+ * - Duplicate payment
22
+ * - Service cancellation
23
+ * - Agreement cancellation
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * // Request cancellation of a sent payment
28
+ * const cancellation = await sdk.demandesAnnulation.create({
29
+ * comptePayeur: 'CIC2344256727788288822',
30
+ * txId: '23552722', // Original payment transaction ID
31
+ * motif: 'CUST' // Cancellation reason code
32
+ * });
33
+ * ```
34
+ */
35
+ import { BaseService } from './base';
36
+ export class DemandesAnnulationService extends BaseService {
37
+ /**
38
+ * Create a cancellation request
39
+ *
40
+ * **Cancellation Process:**
41
+ * 1. Business identifies payment to cancel
42
+ * 2. Creates cancellation request (must be within 90 days)
43
+ * 3. Payee receives cancellation request
44
+ * 4. Payee accepts or rejects
45
+ * 5. If accepted, funds are returned via fund return mechanism
46
+ *
47
+ * **Status Values:**
48
+ * - `INITIE`: Cancellation request sent, awaiting payee response
49
+ * - `ACCEPTE`: Payee accepted cancellation (funds returned)
50
+ * - `REJETE`: Payee rejected cancellation request
51
+ *
52
+ * **Rejection Reasons:**
53
+ * - `CUST`: Customer rejection (payee refuses cancellation)
54
+ * - `AM09`: Wrong amount
55
+ * - `AC06`: Blocked account
56
+ * - `FR01`: Fraud suspicion
57
+ *
58
+ * @param request - Cancellation request data
59
+ * @param request.comptePayeur - Business account number (original payer)
60
+ * @param request.txId - Original payment transaction ID to cancel
61
+ * @param request.motif - Cancellation reason code (e.g., 'CUST' for customer request)
62
+ * @returns Cancellation request response
63
+ * @throws {PiSpiValidationError} If cancellation fails validation (e.g., > 90 days, invalid txId)
64
+ * @throws {PiSpiNotFoundError} If payment not found
65
+ *
66
+ * @example
67
+ * ```typescript
68
+ * // Request cancellation
69
+ * await sdk.demandesAnnulation.create({
70
+ * comptePayeur: 'CIC2344256727788288822',
71
+ * txId: '23552722', // Payment to cancel
72
+ * motif: 'CUST' // Customer request
73
+ * });
74
+ * ```
75
+ */
76
+ async create(request) {
77
+ return this.execute(async () => {
78
+ throw new Error('Service not yet generated. Run "pnpm run generate" first.');
79
+ });
80
+ }
81
+ /**
82
+ * Get cancellation request details by transaction ID
83
+ *
84
+ * @param id - Cancellation request transaction ID
85
+ * @returns Cancellation request details
86
+ * @throws {PiSpiNotFoundError} If cancellation request not found
87
+ */
88
+ async get(id) {
89
+ return this.execute(async () => {
90
+ throw new Error('Service not yet generated. Run "pnpm run generate" first.');
91
+ });
92
+ }
93
+ /**
94
+ * List cancellation requests with filtering and pagination
95
+ *
96
+ * @param params - Query parameters for filtering and pagination
97
+ * @returns Paginated list of cancellation requests
98
+ */
99
+ async list(params) {
100
+ return this.execute(async () => {
101
+ throw new Error('Service not yet generated. Run "pnpm run generate" first.');
102
+ });
103
+ }
104
+ }
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Bulk Payment Requests (Demandes de Paiement en Masse) service wrapper
3
+ *
4
+ * Provides methods for creating and managing bulk payment requests.
5
+ *
6
+ * **Bulk Payment Request Features:**
7
+ * - Send multiple payment requests in a single operation
8
+ * - Useful for invoicing multiple customers
9
+ * - Each request can have different amounts and recipients
10
+ * - All requests share the same `instructionId`
11
+ * - Can confirm entire bulk at once
12
+ *
13
+ * **Use Cases:**
14
+ * - Mass invoicing
15
+ * - Subscription billing
16
+ * - Bulk bill collection
17
+ * - Multiple invoice requests
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * // Create bulk payment requests
22
+ * const bulkRequests = await sdk.demandesPaiementEnMasse.create({
23
+ * comptePaye: 'CIC2344256727788288822',
24
+ * transactions: [
25
+ * { txId: 'INV-001', payeurAlias: 'alias1', montant: 50000, motif: 'Facture' },
26
+ * { txId: 'INV-002', payeurAlias: 'alias2', montant: 75000, motif: 'Facture' }
27
+ * ]
28
+ * });
29
+ * ```
30
+ */
31
+ import { BaseService } from './base';
32
+ export declare class DemandesPaiementEnMasseService extends BaseService {
33
+ /**
34
+ * Create bulk payment requests
35
+ *
36
+ * **Bulk Request Process:**
37
+ * 1. Create bulk with multiple payment requests
38
+ * 2. All requests are created with status `INITIE`
39
+ * 3. Confirm bulk to send all requests to recipients
40
+ * 4. Each recipient receives their individual payment request
41
+ *
42
+ * **Confirmation:**
43
+ * - Use `confirm()` method to send all requests
44
+ * - Individual requests can be accepted/rejected by recipients
45
+ * - Each request follows standard payment request flow
46
+ *
47
+ * @param request - Bulk payment request creation data
48
+ * @param request.comptePaye - Business account number (payee)
49
+ * @param request.transactions - Array of payment request transactions
50
+ * @param request.transactions[].txId - Unique transaction ID (must be unique within bulk)
51
+ * @param request.transactions[].payeurAlias - Customer alias (payer)
52
+ * @param request.transactions[].montant - Amount in centimes (e.g., 50000 = 500 XOF)
53
+ * @param request.transactions[].motif - Payment reason/description
54
+ * @param request.transactions[].categorie - Request category (optional, defaults to '401')
55
+ * @param request.transactions[].dateLimitePaiement - Payment due date (optional)
56
+ * @param request.transactions[].refDocType - Reference document type (optional)
57
+ * @param request.transactions[].refDocNumero - Reference document number (optional)
58
+ * @returns Bulk payment request response
59
+ * @throws {PiSpiValidationError} If bulk fails validation (e.g., duplicate txId, invalid alias)
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * // Create bulk invoice requests
64
+ * await sdk.demandesPaiementEnMasse.create({
65
+ * comptePaye: 'CIC2344256727788288822',
66
+ * transactions: [
67
+ * {
68
+ * txId: 'INV-2023-001',
69
+ * payeurAlias: '9b1b3499-3e50-435b-b757-ac7a83d8aa96',
70
+ * montant: 150000, // 1,500 XOF
71
+ * motif: 'Facture électricité mars 2023',
72
+ * categorie: '401',
73
+ * dateLimitePaiement: '2023-12-31T23:59:59.999Z',
74
+ * refDocType: 'CINV',
75
+ * refDocNumero: 'FACT-ELEC-202303-001'
76
+ * },
77
+ * {
78
+ * txId: 'INV-2023-002',
79
+ * payeurAlias: '8b1b2499-3e50-435b-b757-ac7a83d8aa7f',
80
+ * montant: 200000, // 2,000 XOF
81
+ * motif: 'Facture téléphone mars 2023',
82
+ * categorie: '401',
83
+ * dateLimitePaiement: '2023-12-31T23:59:59.999Z',
84
+ * refDocType: 'CINV',
85
+ * refDocNumero: 'FACT-TEL-202303-002'
86
+ * }
87
+ * ]
88
+ * });
89
+ * ```
90
+ */
91
+ create(request: {
92
+ comptePaye: string;
93
+ transactions: Array<{
94
+ txId: string;
95
+ payeurAlias: string;
96
+ montant: number;
97
+ motif: string;
98
+ categorie?: string;
99
+ dateLimitePaiement?: string;
100
+ refDocType?: string;
101
+ refDocNumero?: string;
102
+ }>;
103
+ }): Promise<never>;
104
+ /**
105
+ * Get bulk payment request details and status
106
+ *
107
+ * **Response Includes:**
108
+ * - Overall bulk status
109
+ * - Individual request statuses
110
+ * - Accepted/rejected counts
111
+ * - Payment statuses
112
+ *
113
+ * @param instructionId - Bulk instruction ID
114
+ * @returns Bulk payment request details with individual request statuses
115
+ * @throws {PiSpiNotFoundError} If bulk payment request not found
116
+ */
117
+ get(instructionId: string): Promise<never>;
118
+ /**
119
+ * Confirm and send bulk payment requests
120
+ *
121
+ * **Confirmation Process:**
122
+ * - All requests in bulk are sent to recipients
123
+ * - Each recipient receives their individual payment request
124
+ * - Recipients can accept/reject independently
125
+ * - Bulk status updates as recipients respond
126
+ *
127
+ * @param instructionId - Bulk instruction ID
128
+ * @returns Confirmation response
129
+ * @throws {PiSpiNotFoundError} If bulk payment request not found
130
+ * @throws {PiSpiError} If bulk already confirmed
131
+ *
132
+ * @example
133
+ * ```typescript
134
+ * // Confirm and send all requests
135
+ * await sdk.demandesPaiementEnMasse.confirm('BULK-INV-2023-03');
136
+ * ```
137
+ */
138
+ confirm(instructionId: string): Promise<never>;
139
+ }