@lepresk/momo-api 1.0.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 (58) hide show
  1. package/README.md +224 -0
  2. package/dist/MomoApi.d.ts +30 -0
  3. package/dist/MomoApi.d.ts.map +1 -0
  4. package/dist/MomoApi.js +53 -0
  5. package/dist/MomoApi.js.map +1 -0
  6. package/dist/exceptions/MomoException.d.ts +21 -0
  7. package/dist/exceptions/MomoException.d.ts.map +1 -0
  8. package/dist/exceptions/MomoException.js +66 -0
  9. package/dist/exceptions/MomoException.js.map +1 -0
  10. package/dist/index.d.ts +16 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +55 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/models/AccountBalance.d.ts +9 -0
  15. package/dist/models/AccountBalance.d.ts.map +1 -0
  16. package/dist/models/AccountBalance.js +22 -0
  17. package/dist/models/AccountBalance.js.map +1 -0
  18. package/dist/models/ApiToken.d.ts +16 -0
  19. package/dist/models/ApiToken.d.ts.map +1 -0
  20. package/dist/models/ApiToken.js +27 -0
  21. package/dist/models/ApiToken.js.map +1 -0
  22. package/dist/models/Config.d.ts +19 -0
  23. package/dist/models/Config.d.ts.map +1 -0
  24. package/dist/models/Config.js +31 -0
  25. package/dist/models/Config.js.map +1 -0
  26. package/dist/models/PaymentRequest.d.ts +12 -0
  27. package/dist/models/PaymentRequest.d.ts.map +1 -0
  28. package/dist/models/PaymentRequest.js +37 -0
  29. package/dist/models/PaymentRequest.js.map +1 -0
  30. package/dist/models/RefundRequest.d.ts +12 -0
  31. package/dist/models/RefundRequest.d.ts.map +1 -0
  32. package/dist/models/RefundRequest.js +34 -0
  33. package/dist/models/RefundRequest.js.map +1 -0
  34. package/dist/models/Transaction.d.ts +19 -0
  35. package/dist/models/Transaction.d.ts.map +1 -0
  36. package/dist/models/Transaction.js +52 -0
  37. package/dist/models/Transaction.js.map +1 -0
  38. package/dist/models/TransferRequest.d.ts +12 -0
  39. package/dist/models/TransferRequest.d.ts.map +1 -0
  40. package/dist/models/TransferRequest.js +37 -0
  41. package/dist/models/TransferRequest.js.map +1 -0
  42. package/dist/products/CollectionApi.d.ts +19 -0
  43. package/dist/products/CollectionApi.d.ts.map +1 -0
  44. package/dist/products/CollectionApi.js +97 -0
  45. package/dist/products/CollectionApi.js.map +1 -0
  46. package/dist/products/DisbursementApi.d.ts +24 -0
  47. package/dist/products/DisbursementApi.d.ts.map +1 -0
  48. package/dist/products/DisbursementApi.js +166 -0
  49. package/dist/products/DisbursementApi.js.map +1 -0
  50. package/dist/products/SandboxApi.d.ts +10 -0
  51. package/dist/products/SandboxApi.d.ts.map +1 -0
  52. package/dist/products/SandboxApi.js +60 -0
  53. package/dist/products/SandboxApi.js.map +1 -0
  54. package/dist/support/uuid.d.ts +2 -0
  55. package/dist/support/uuid.d.ts.map +1 -0
  56. package/dist/support/uuid.js +8 -0
  57. package/dist/support/uuid.js.map +1 -0
  58. package/package.json +38 -0
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Config = void 0;
4
+ class Config {
5
+ subscriptionKey;
6
+ apiUser;
7
+ apiKey;
8
+ callbackUri;
9
+ constructor(options) {
10
+ this.subscriptionKey = options.subscriptionKey;
11
+ this.apiUser = options.apiUser;
12
+ this.apiKey = options.apiKey;
13
+ this.callbackUri = options.callbackUri;
14
+ }
15
+ static sandbox(subscriptionKey) {
16
+ return new Config({
17
+ subscriptionKey,
18
+ apiUser: '',
19
+ apiKey: '',
20
+ callbackUri: '',
21
+ });
22
+ }
23
+ static collection(subscriptionKey, apiUser, apiKey, callbackUri) {
24
+ return new Config({ subscriptionKey, apiUser, apiKey, callbackUri });
25
+ }
26
+ static disbursement(subscriptionKey, apiUser, apiKey, callbackUri) {
27
+ return new Config({ subscriptionKey, apiUser, apiKey, callbackUri });
28
+ }
29
+ }
30
+ exports.Config = Config;
31
+ //# sourceMappingURL=Config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/models/Config.ts"],"names":[],"mappings":";;;AAOA,MAAa,MAAM;IACR,eAAe,CAAQ;IACvB,OAAO,CAAQ;IACf,MAAM,CAAQ;IACd,WAAW,CAAQ;IAE5B,YAAY,OAAsB;QAChC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAA;QAC9C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;IACxC,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,eAAuB;QACpC,OAAO,IAAI,MAAM,CAAC;YAChB,eAAe;YACf,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,EAAE;YACV,WAAW,EAAE,EAAE;SAChB,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,CAAC,UAAU,CACf,eAAuB,EACvB,OAAe,EACf,MAAc,EACd,WAAmB;QAEnB,OAAO,IAAI,MAAM,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAA;IACtE,CAAC;IAED,MAAM,CAAC,YAAY,CACjB,eAAuB,EACvB,OAAe,EACf,MAAc,EACd,WAAmB;QAEnB,OAAO,IAAI,MAAM,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAA;IACtE,CAAC;CACF;AAvCD,wBAuCC"}
@@ -0,0 +1,12 @@
1
+ export declare class PaymentRequest {
2
+ readonly amount: string;
3
+ readonly currency: string;
4
+ readonly externalId: string;
5
+ readonly payer: string;
6
+ readonly payerMessage: string;
7
+ readonly payeeNote: string;
8
+ constructor(amount: string, currency: string, externalId: string, payer: string, payerMessage?: string, payeeNote?: string);
9
+ static make(amount: string, payer: string, externalId: string, currency?: string, payerMessage?: string, payeeNote?: string): PaymentRequest;
10
+ toBody(): object;
11
+ }
12
+ //# sourceMappingURL=PaymentRequest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaymentRequest.d.ts","sourceRoot":"","sources":["../../src/models/PaymentRequest.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAc;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;gBAGxB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,YAAY,GAAE,MAAW,EACzB,SAAS,GAAE,MAAW;IAUxB,MAAM,CAAC,IAAI,CACT,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,MAAc,EACxB,YAAY,GAAE,MAAW,EACzB,SAAS,GAAE,MAAW,GACrB,cAAc;IAIjB,MAAM,IAAI,MAAM;CAajB"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PaymentRequest = void 0;
4
+ class PaymentRequest {
5
+ amount;
6
+ currency;
7
+ externalId;
8
+ payer;
9
+ payerMessage;
10
+ payeeNote;
11
+ constructor(amount, currency, externalId, payer, payerMessage = '', payeeNote = '') {
12
+ this.amount = amount;
13
+ this.currency = currency;
14
+ this.externalId = externalId;
15
+ this.payer = payer;
16
+ this.payerMessage = payerMessage;
17
+ this.payeeNote = payeeNote;
18
+ }
19
+ static make(amount, payer, externalId, currency = 'EUR', payerMessage = '', payeeNote = '') {
20
+ return new PaymentRequest(amount, currency, externalId, payer, payerMessage, payeeNote);
21
+ }
22
+ toBody() {
23
+ return {
24
+ amount: this.amount,
25
+ currency: this.currency,
26
+ externalId: this.externalId,
27
+ payer: {
28
+ partyIdType: 'MSISDN',
29
+ partyId: this.payer,
30
+ },
31
+ payerMessage: this.payerMessage,
32
+ payeeNote: this.payeeNote,
33
+ };
34
+ }
35
+ }
36
+ exports.PaymentRequest = PaymentRequest;
37
+ //# sourceMappingURL=PaymentRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaymentRequest.js","sourceRoot":"","sources":["../../src/models/PaymentRequest.ts"],"names":[],"mappings":";;;AAAA,MAAa,cAAc;IAChB,MAAM,CAAQ;IACd,QAAQ,CAAQ;IAChB,UAAU,CAAQ;IAClB,KAAK,CAAQ;IACb,YAAY,CAAQ;IACpB,SAAS,CAAQ;IAE1B,YACE,MAAc,EACd,QAAgB,EAChB,UAAkB,EAClB,KAAa,EACb,eAAuB,EAAE,EACzB,YAAoB,EAAE;QAEtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAED,MAAM,CAAC,IAAI,CACT,MAAc,EACd,KAAa,EACb,UAAkB,EAClB,WAAmB,KAAK,EACxB,eAAuB,EAAE,EACzB,YAAoB,EAAE;QAEtB,OAAO,IAAI,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,CAAC,CAAA;IACzF,CAAC;IAED,MAAM;QACJ,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,KAAK,EAAE;gBACL,WAAW,EAAE,QAAQ;gBACrB,OAAO,EAAE,IAAI,CAAC,KAAK;aACpB;YACD,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAA;IACH,CAAC;CACF;AAhDD,wCAgDC"}
@@ -0,0 +1,12 @@
1
+ export declare class RefundRequest {
2
+ readonly amount: string;
3
+ readonly currency: string;
4
+ readonly externalId: string;
5
+ readonly referenceIdToRefund: string;
6
+ readonly payerMessage: string;
7
+ readonly payeeNote: string;
8
+ constructor(amount: string, currency: string, externalId: string, referenceIdToRefund: string, payerMessage?: string, payeeNote?: string);
9
+ static make(amount: string, referenceIdToRefund: string, externalId: string, currency?: string, payerMessage?: string, payeeNote?: string): RefundRequest;
10
+ toBody(): object;
11
+ }
12
+ //# sourceMappingURL=RefundRequest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RefundRequest.d.ts","sourceRoot":"","sources":["../../src/models/RefundRequest.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAa;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;gBAGxB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,mBAAmB,EAAE,MAAM,EAC3B,YAAY,GAAE,MAAW,EACzB,SAAS,GAAE,MAAW;IAUxB,MAAM,CAAC,IAAI,CACT,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,MAAM,EAC3B,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,MAAc,EACxB,YAAY,GAAE,MAAW,EACzB,SAAS,GAAE,MAAW,GACrB,aAAa;IAWhB,MAAM,IAAI,MAAM;CAUjB"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RefundRequest = void 0;
4
+ class RefundRequest {
5
+ amount;
6
+ currency;
7
+ externalId;
8
+ referenceIdToRefund;
9
+ payerMessage;
10
+ payeeNote;
11
+ constructor(amount, currency, externalId, referenceIdToRefund, payerMessage = '', payeeNote = '') {
12
+ this.amount = amount;
13
+ this.currency = currency;
14
+ this.externalId = externalId;
15
+ this.referenceIdToRefund = referenceIdToRefund;
16
+ this.payerMessage = payerMessage;
17
+ this.payeeNote = payeeNote;
18
+ }
19
+ static make(amount, referenceIdToRefund, externalId, currency = 'EUR', payerMessage = '', payeeNote = '') {
20
+ return new RefundRequest(amount, currency, externalId, referenceIdToRefund, payerMessage, payeeNote);
21
+ }
22
+ toBody() {
23
+ return {
24
+ amount: this.amount,
25
+ currency: this.currency,
26
+ externalId: this.externalId,
27
+ referenceIdToRefund: this.referenceIdToRefund,
28
+ payerMessage: this.payerMessage,
29
+ payeeNote: this.payeeNote,
30
+ };
31
+ }
32
+ }
33
+ exports.RefundRequest = RefundRequest;
34
+ //# sourceMappingURL=RefundRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RefundRequest.js","sourceRoot":"","sources":["../../src/models/RefundRequest.ts"],"names":[],"mappings":";;;AAAA,MAAa,aAAa;IACf,MAAM,CAAQ;IACd,QAAQ,CAAQ;IAChB,UAAU,CAAQ;IAClB,mBAAmB,CAAQ;IAC3B,YAAY,CAAQ;IACpB,SAAS,CAAQ;IAE1B,YACE,MAAc,EACd,QAAgB,EAChB,UAAkB,EAClB,mBAA2B,EAC3B,eAAuB,EAAE,EACzB,YAAoB,EAAE;QAEtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAA;QAC9C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAED,MAAM,CAAC,IAAI,CACT,MAAc,EACd,mBAA2B,EAC3B,UAAkB,EAClB,WAAmB,KAAK,EACxB,eAAuB,EAAE,EACzB,YAAoB,EAAE;QAEtB,OAAO,IAAI,aAAa,CACtB,MAAM,EACN,QAAQ,EACR,UAAU,EACV,mBAAmB,EACnB,YAAY,EACZ,SAAS,CACV,CAAA;IACH,CAAC;IAED,MAAM;QACJ,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAA;IACH,CAAC;CACF;AApDD,sCAoDC"}
@@ -0,0 +1,19 @@
1
+ export type TransactionStatus = 'SUCCESSFUL' | 'PENDING' | 'FAILED';
2
+ export declare class Transaction {
3
+ private readonly data;
4
+ private constructor();
5
+ static parse(data: Record<string, unknown>): Transaction;
6
+ getStatus(): TransactionStatus;
7
+ isSuccessful(): boolean;
8
+ isPending(): boolean;
9
+ isFailed(): boolean;
10
+ getAmount(): string;
11
+ getCurrency(): string;
12
+ getPayer(): string | null;
13
+ getPayee(): string | null;
14
+ getFinancialTransactionId(): string | null;
15
+ getExternalId(): string | null;
16
+ getPayerMessage(): string | null;
17
+ getPayeeNote(): string | null;
18
+ }
19
+ //# sourceMappingURL=Transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../src/models/Transaction.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAA;AAEnE,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyB;IAE9C,OAAO;IAIP,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW;IAIxD,SAAS,IAAI,iBAAiB;IAI9B,YAAY,IAAI,OAAO;IAIvB,SAAS,IAAI,OAAO;IAIpB,QAAQ,IAAI,OAAO;IAInB,SAAS,IAAI,MAAM;IAInB,WAAW,IAAI,MAAM;IAIrB,QAAQ,IAAI,MAAM,GAAG,IAAI;IAKzB,QAAQ,IAAI,MAAM,GAAG,IAAI;IAKzB,yBAAyB,IAAI,MAAM,GAAG,IAAI;IAI1C,aAAa,IAAI,MAAM,GAAG,IAAI;IAI9B,eAAe,IAAI,MAAM,GAAG,IAAI;IAIhC,YAAY,IAAI,MAAM,GAAG,IAAI;CAG9B"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Transaction = void 0;
4
+ class Transaction {
5
+ data;
6
+ constructor(data) {
7
+ this.data = data;
8
+ }
9
+ static parse(data) {
10
+ return new Transaction(data);
11
+ }
12
+ getStatus() {
13
+ return this.data['status'];
14
+ }
15
+ isSuccessful() {
16
+ return this.getStatus() === 'SUCCESSFUL';
17
+ }
18
+ isPending() {
19
+ return this.getStatus() === 'PENDING';
20
+ }
21
+ isFailed() {
22
+ return this.getStatus() === 'FAILED';
23
+ }
24
+ getAmount() {
25
+ return this.data['amount'];
26
+ }
27
+ getCurrency() {
28
+ return this.data['currency'];
29
+ }
30
+ getPayer() {
31
+ const payer = this.data['payer'];
32
+ return payer?.['partyId'] ?? null;
33
+ }
34
+ getPayee() {
35
+ const payee = this.data['payee'];
36
+ return payee?.['partyId'] ?? null;
37
+ }
38
+ getFinancialTransactionId() {
39
+ return this.data['financialTransactionId'] ?? null;
40
+ }
41
+ getExternalId() {
42
+ return this.data['externalId'] ?? null;
43
+ }
44
+ getPayerMessage() {
45
+ return this.data['payerMessage'] ?? null;
46
+ }
47
+ getPayeeNote() {
48
+ return this.data['payeeNote'] ?? null;
49
+ }
50
+ }
51
+ exports.Transaction = Transaction;
52
+ //# sourceMappingURL=Transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../src/models/Transaction.ts"],"names":[],"mappings":";;;AAEA,MAAa,WAAW;IACL,IAAI,CAAyB;IAE9C,YAAoB,IAA6B;QAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAA6B;QACxC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAsB,CAAA;IACjD,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,EAAE,KAAK,YAAY,CAAA;IAC1C,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,SAAS,EAAE,KAAK,SAAS,CAAA;IACvC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,SAAS,EAAE,KAAK,QAAQ,CAAA;IACtC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAW,CAAA;IACtC,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAW,CAAA;IACxC,CAAC;IAED,QAAQ;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAwC,CAAA;QACvE,OAAQ,KAAK,EAAE,CAAC,SAAS,CAAY,IAAI,IAAI,CAAA;IAC/C,CAAC;IAED,QAAQ;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAwC,CAAA;QACvE,OAAQ,KAAK,EAAE,CAAC,SAAS,CAAY,IAAI,IAAI,CAAA;IAC/C,CAAC;IAED,yBAAyB;QACvB,OAAQ,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAY,IAAI,IAAI,CAAA;IAChE,CAAC;IAED,aAAa;QACX,OAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAY,IAAI,IAAI,CAAA;IACpD,CAAC;IAED,eAAe;QACb,OAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,CAAY,IAAI,IAAI,CAAA;IACtD,CAAC;IAED,YAAY;QACV,OAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAY,IAAI,IAAI,CAAA;IACnD,CAAC;CACF;AA5DD,kCA4DC"}
@@ -0,0 +1,12 @@
1
+ export declare class TransferRequest {
2
+ readonly amount: string;
3
+ readonly currency: string;
4
+ readonly externalId: string;
5
+ readonly payee: string;
6
+ readonly payerMessage: string;
7
+ readonly payeeNote: string;
8
+ constructor(amount: string, currency: string, externalId: string, payee: string, payerMessage?: string, payeeNote?: string);
9
+ static make(amount: string, payee: string, externalId: string, currency?: string, payerMessage?: string, payeeNote?: string): TransferRequest;
10
+ toBody(): object;
11
+ }
12
+ //# sourceMappingURL=TransferRequest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransferRequest.d.ts","sourceRoot":"","sources":["../../src/models/TransferRequest.ts"],"names":[],"mappings":"AAAA,qBAAa,eAAe;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;gBAGxB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,YAAY,GAAE,MAAW,EACzB,SAAS,GAAE,MAAW;IAUxB,MAAM,CAAC,IAAI,CACT,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,MAAc,EACxB,YAAY,GAAE,MAAW,EACzB,SAAS,GAAE,MAAW,GACrB,eAAe;IAIlB,MAAM,IAAI,MAAM;CAajB"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransferRequest = void 0;
4
+ class TransferRequest {
5
+ amount;
6
+ currency;
7
+ externalId;
8
+ payee;
9
+ payerMessage;
10
+ payeeNote;
11
+ constructor(amount, currency, externalId, payee, payerMessage = '', payeeNote = '') {
12
+ this.amount = amount;
13
+ this.currency = currency;
14
+ this.externalId = externalId;
15
+ this.payee = payee;
16
+ this.payerMessage = payerMessage;
17
+ this.payeeNote = payeeNote;
18
+ }
19
+ static make(amount, payee, externalId, currency = 'EUR', payerMessage = '', payeeNote = '') {
20
+ return new TransferRequest(amount, currency, externalId, payee, payerMessage, payeeNote);
21
+ }
22
+ toBody() {
23
+ return {
24
+ amount: this.amount,
25
+ currency: this.currency,
26
+ externalId: this.externalId,
27
+ payee: {
28
+ partyIdType: 'MSISDN',
29
+ partyId: this.payee,
30
+ },
31
+ payerMessage: this.payerMessage,
32
+ payeeNote: this.payeeNote,
33
+ };
34
+ }
35
+ }
36
+ exports.TransferRequest = TransferRequest;
37
+ //# sourceMappingURL=TransferRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransferRequest.js","sourceRoot":"","sources":["../../src/models/TransferRequest.ts"],"names":[],"mappings":";;;AAAA,MAAa,eAAe;IACjB,MAAM,CAAQ;IACd,QAAQ,CAAQ;IAChB,UAAU,CAAQ;IAClB,KAAK,CAAQ;IACb,YAAY,CAAQ;IACpB,SAAS,CAAQ;IAE1B,YACE,MAAc,EACd,QAAgB,EAChB,UAAkB,EAClB,KAAa,EACb,eAAuB,EAAE,EACzB,YAAoB,EAAE;QAEtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAED,MAAM,CAAC,IAAI,CACT,MAAc,EACd,KAAa,EACb,UAAkB,EAClB,WAAmB,KAAK,EACxB,eAAuB,EAAE,EACzB,YAAoB,EAAE;QAEtB,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,CAAC,CAAA;IAC1F,CAAC;IAED,MAAM;QACJ,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,KAAK,EAAE;gBACL,WAAW,EAAE,QAAQ;gBACrB,OAAO,EAAE,IAAI,CAAC,KAAK;aACpB;YACD,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAA;IACH,CAAC;CACF;AAhDD,0CAgDC"}
@@ -0,0 +1,19 @@
1
+ import { Config } from '../models/Config.js';
2
+ import { ApiToken } from '../models/ApiToken.js';
3
+ import { AccountBalance } from '../models/AccountBalance.js';
4
+ import { PaymentRequest } from '../models/PaymentRequest.js';
5
+ import { Transaction } from '../models/Transaction.js';
6
+ export declare class CollectionApi {
7
+ private readonly config;
8
+ private readonly baseUrl;
9
+ private readonly environment;
10
+ constructor(config: Config, baseUrl: string, environment: string);
11
+ private getBasicAuth;
12
+ private handleResponse;
13
+ getAccessToken(): Promise<ApiToken>;
14
+ requestToPay(request: PaymentRequest): Promise<string>;
15
+ getPaymentStatus(paymentId: string): Promise<Transaction>;
16
+ getBalance(): Promise<AccountBalance>;
17
+ quickPay(amount: string, phone: string, reference: string, currency?: string): Promise<string>;
18
+ }
19
+ //# sourceMappingURL=CollectionApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollectionApi.d.ts","sourceRoot":"","sources":["../../src/products/CollectionApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAItD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;gBAExB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAMhE,OAAO,CAAC,YAAY;YAKN,cAAc;IAQtB,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC;IAanC,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IA8BtD,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAmBzD,UAAU,IAAI,OAAO,CAAC,cAAc,CAAC;IAgBrC,QAAQ,CACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,MAAc,GACvB,OAAO,CAAC,MAAM,CAAC;CAInB"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CollectionApi = void 0;
4
+ const ApiToken_js_1 = require("../models/ApiToken.js");
5
+ const AccountBalance_js_1 = require("../models/AccountBalance.js");
6
+ const PaymentRequest_js_1 = require("../models/PaymentRequest.js");
7
+ const Transaction_js_1 = require("../models/Transaction.js");
8
+ const MomoException_js_1 = require("../exceptions/MomoException.js");
9
+ const uuid_js_1 = require("../support/uuid.js");
10
+ class CollectionApi {
11
+ config;
12
+ baseUrl;
13
+ environment;
14
+ constructor(config, baseUrl, environment) {
15
+ this.config = config;
16
+ this.baseUrl = baseUrl;
17
+ this.environment = environment;
18
+ }
19
+ getBasicAuth() {
20
+ const credentials = `${this.config.apiUser}:${this.config.apiKey}`;
21
+ return `Basic ${Buffer.from(credentials).toString('base64')}`;
22
+ }
23
+ async handleResponse(response) {
24
+ if (!response.ok) {
25
+ const text = await response.text().catch(() => '');
26
+ throw (0, MomoException_js_1.createException)(response.status, text || undefined);
27
+ }
28
+ return response.json();
29
+ }
30
+ async getAccessToken() {
31
+ const response = await fetch(`${this.baseUrl}/collection/token/`, {
32
+ method: 'POST',
33
+ headers: {
34
+ 'Authorization': this.getBasicAuth(),
35
+ 'Ocp-Apim-Subscription-Key': this.config.subscriptionKey,
36
+ },
37
+ });
38
+ const data = await this.handleResponse(response);
39
+ return ApiToken_js_1.ApiToken.fromObject(data);
40
+ }
41
+ async requestToPay(request) {
42
+ const referenceId = (0, uuid_js_1.generateUUID)();
43
+ const token = await this.getAccessToken();
44
+ const headers = {
45
+ 'Authorization': `Bearer ${token.getAccessToken()}`,
46
+ 'Ocp-Apim-Subscription-Key': this.config.subscriptionKey,
47
+ 'X-Target-Environment': this.environment,
48
+ 'X-Reference-Id': referenceId,
49
+ 'Content-Type': 'application/json',
50
+ };
51
+ if (this.config.callbackUri) {
52
+ headers['X-Callback-Url'] = this.config.callbackUri;
53
+ }
54
+ const response = await fetch(`${this.baseUrl}/collection/v1_0/requesttopay`, {
55
+ method: 'POST',
56
+ headers,
57
+ body: JSON.stringify(request.toBody()),
58
+ });
59
+ if (!response.ok) {
60
+ const text = await response.text().catch(() => '');
61
+ throw (0, MomoException_js_1.createException)(response.status, text || undefined);
62
+ }
63
+ return referenceId;
64
+ }
65
+ async getPaymentStatus(paymentId) {
66
+ const token = await this.getAccessToken();
67
+ const response = await fetch(`${this.baseUrl}/collection/v1_0/requesttopay/${paymentId}`, {
68
+ method: 'GET',
69
+ headers: {
70
+ 'Authorization': `Bearer ${token.getAccessToken()}`,
71
+ 'Ocp-Apim-Subscription-Key': this.config.subscriptionKey,
72
+ 'X-Target-Environment': this.environment,
73
+ },
74
+ });
75
+ const data = await this.handleResponse(response);
76
+ return Transaction_js_1.Transaction.parse(data);
77
+ }
78
+ async getBalance() {
79
+ const token = await this.getAccessToken();
80
+ const response = await fetch(`${this.baseUrl}/collection/v1_0/account/balance`, {
81
+ method: 'GET',
82
+ headers: {
83
+ 'Authorization': `Bearer ${token.getAccessToken()}`,
84
+ 'Ocp-Apim-Subscription-Key': this.config.subscriptionKey,
85
+ 'X-Target-Environment': this.environment,
86
+ },
87
+ });
88
+ const data = await this.handleResponse(response);
89
+ return AccountBalance_js_1.AccountBalance.parse(data);
90
+ }
91
+ async quickPay(amount, phone, reference, currency = 'EUR') {
92
+ const request = PaymentRequest_js_1.PaymentRequest.make(amount, phone, reference, currency);
93
+ return this.requestToPay(request);
94
+ }
95
+ }
96
+ exports.CollectionApi = CollectionApi;
97
+ //# sourceMappingURL=CollectionApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollectionApi.js","sourceRoot":"","sources":["../../src/products/CollectionApi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { Config } from '../models/Config.js';
2
+ import { ApiToken } from '../models/ApiToken.js';
3
+ import { AccountBalance } from '../models/AccountBalance.js';
4
+ import { PaymentRequest } from '../models/PaymentRequest.js';
5
+ import { TransferRequest } from '../models/TransferRequest.js';
6
+ import { RefundRequest } from '../models/RefundRequest.js';
7
+ import { Transaction } from '../models/Transaction.js';
8
+ export declare class DisbursementApi {
9
+ private readonly config;
10
+ private readonly baseUrl;
11
+ private readonly environment;
12
+ constructor(config: Config, baseUrl: string, environment: string);
13
+ private getBasicAuth;
14
+ private handleResponse;
15
+ getAccessToken(): Promise<ApiToken>;
16
+ getBalance(): Promise<AccountBalance>;
17
+ deposit(request: PaymentRequest): Promise<string>;
18
+ getDepositStatus(depositId: string): Promise<Transaction>;
19
+ transfer(request: TransferRequest): Promise<string>;
20
+ getTransferStatus(transferId: string): Promise<Transaction>;
21
+ refund(request: RefundRequest): Promise<string>;
22
+ getRefundStatus(refundId: string): Promise<Transaction>;
23
+ }
24
+ //# sourceMappingURL=DisbursementApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DisbursementApi.d.ts","sourceRoot":"","sources":["../../src/products/DisbursementApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAItD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;gBAExB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAMhE,OAAO,CAAC,YAAY;YAKN,cAAc;IAQtB,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC;IAanC,UAAU,IAAI,OAAO,CAAC,cAAc,CAAC;IAgBrC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IA8BjD,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAmBzD,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IA8BnD,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAmB3D,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IA8B/C,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAkB9D"}
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DisbursementApi = void 0;
4
+ const ApiToken_js_1 = require("../models/ApiToken.js");
5
+ const AccountBalance_js_1 = require("../models/AccountBalance.js");
6
+ const Transaction_js_1 = require("../models/Transaction.js");
7
+ const MomoException_js_1 = require("../exceptions/MomoException.js");
8
+ const uuid_js_1 = require("../support/uuid.js");
9
+ class DisbursementApi {
10
+ config;
11
+ baseUrl;
12
+ environment;
13
+ constructor(config, baseUrl, environment) {
14
+ this.config = config;
15
+ this.baseUrl = baseUrl;
16
+ this.environment = environment;
17
+ }
18
+ getBasicAuth() {
19
+ const credentials = `${this.config.apiUser}:${this.config.apiKey}`;
20
+ return `Basic ${Buffer.from(credentials).toString('base64')}`;
21
+ }
22
+ async handleResponse(response) {
23
+ if (!response.ok) {
24
+ const text = await response.text().catch(() => '');
25
+ throw (0, MomoException_js_1.createException)(response.status, text || undefined);
26
+ }
27
+ return response.json();
28
+ }
29
+ async getAccessToken() {
30
+ const response = await fetch(`${this.baseUrl}/disbursement/token/`, {
31
+ method: 'POST',
32
+ headers: {
33
+ 'Authorization': this.getBasicAuth(),
34
+ 'Ocp-Apim-Subscription-Key': this.config.subscriptionKey,
35
+ },
36
+ });
37
+ const data = await this.handleResponse(response);
38
+ return ApiToken_js_1.ApiToken.fromObject(data);
39
+ }
40
+ async getBalance() {
41
+ const token = await this.getAccessToken();
42
+ const response = await fetch(`${this.baseUrl}/disbursement/v1_0/account/balance`, {
43
+ method: 'GET',
44
+ headers: {
45
+ 'Authorization': `Bearer ${token.getAccessToken()}`,
46
+ 'Ocp-Apim-Subscription-Key': this.config.subscriptionKey,
47
+ 'X-Target-Environment': this.environment,
48
+ },
49
+ });
50
+ const data = await this.handleResponse(response);
51
+ return AccountBalance_js_1.AccountBalance.parse(data);
52
+ }
53
+ async deposit(request) {
54
+ const referenceId = (0, uuid_js_1.generateUUID)();
55
+ const token = await this.getAccessToken();
56
+ const headers = {
57
+ 'Authorization': `Bearer ${token.getAccessToken()}`,
58
+ 'Ocp-Apim-Subscription-Key': this.config.subscriptionKey,
59
+ 'X-Target-Environment': this.environment,
60
+ 'X-Reference-Id': referenceId,
61
+ 'Content-Type': 'application/json',
62
+ };
63
+ if (this.config.callbackUri) {
64
+ headers['X-Callback-Url'] = this.config.callbackUri;
65
+ }
66
+ const response = await fetch(`${this.baseUrl}/disbursement/v1_0/deposit`, {
67
+ method: 'POST',
68
+ headers,
69
+ body: JSON.stringify(request.toBody()),
70
+ });
71
+ if (!response.ok) {
72
+ const text = await response.text().catch(() => '');
73
+ throw (0, MomoException_js_1.createException)(response.status, text || undefined);
74
+ }
75
+ return referenceId;
76
+ }
77
+ async getDepositStatus(depositId) {
78
+ const token = await this.getAccessToken();
79
+ const response = await fetch(`${this.baseUrl}/disbursement/v1_0/deposit/${depositId}`, {
80
+ method: 'GET',
81
+ headers: {
82
+ 'Authorization': `Bearer ${token.getAccessToken()}`,
83
+ 'Ocp-Apim-Subscription-Key': this.config.subscriptionKey,
84
+ 'X-Target-Environment': this.environment,
85
+ },
86
+ });
87
+ const data = await this.handleResponse(response);
88
+ return Transaction_js_1.Transaction.parse(data);
89
+ }
90
+ async transfer(request) {
91
+ const referenceId = (0, uuid_js_1.generateUUID)();
92
+ const token = await this.getAccessToken();
93
+ const headers = {
94
+ 'Authorization': `Bearer ${token.getAccessToken()}`,
95
+ 'Ocp-Apim-Subscription-Key': this.config.subscriptionKey,
96
+ 'X-Target-Environment': this.environment,
97
+ 'X-Reference-Id': referenceId,
98
+ 'Content-Type': 'application/json',
99
+ };
100
+ if (this.config.callbackUri) {
101
+ headers['X-Callback-Url'] = this.config.callbackUri;
102
+ }
103
+ const response = await fetch(`${this.baseUrl}/disbursement/v1_0/transfer`, {
104
+ method: 'POST',
105
+ headers,
106
+ body: JSON.stringify(request.toBody()),
107
+ });
108
+ if (!response.ok) {
109
+ const text = await response.text().catch(() => '');
110
+ throw (0, MomoException_js_1.createException)(response.status, text || undefined);
111
+ }
112
+ return referenceId;
113
+ }
114
+ async getTransferStatus(transferId) {
115
+ const token = await this.getAccessToken();
116
+ const response = await fetch(`${this.baseUrl}/disbursement/v1_0/transfer/${transferId}`, {
117
+ method: 'GET',
118
+ headers: {
119
+ 'Authorization': `Bearer ${token.getAccessToken()}`,
120
+ 'Ocp-Apim-Subscription-Key': this.config.subscriptionKey,
121
+ 'X-Target-Environment': this.environment,
122
+ },
123
+ });
124
+ const data = await this.handleResponse(response);
125
+ return Transaction_js_1.Transaction.parse(data);
126
+ }
127
+ async refund(request) {
128
+ const referenceId = (0, uuid_js_1.generateUUID)();
129
+ const token = await this.getAccessToken();
130
+ const headers = {
131
+ 'Authorization': `Bearer ${token.getAccessToken()}`,
132
+ 'Ocp-Apim-Subscription-Key': this.config.subscriptionKey,
133
+ 'X-Target-Environment': this.environment,
134
+ 'X-Reference-Id': referenceId,
135
+ 'Content-Type': 'application/json',
136
+ };
137
+ if (this.config.callbackUri) {
138
+ headers['X-Callback-Url'] = this.config.callbackUri;
139
+ }
140
+ const response = await fetch(`${this.baseUrl}/disbursement/v1_0/refund`, {
141
+ method: 'POST',
142
+ headers,
143
+ body: JSON.stringify(request.toBody()),
144
+ });
145
+ if (!response.ok) {
146
+ const text = await response.text().catch(() => '');
147
+ throw (0, MomoException_js_1.createException)(response.status, text || undefined);
148
+ }
149
+ return referenceId;
150
+ }
151
+ async getRefundStatus(refundId) {
152
+ const token = await this.getAccessToken();
153
+ const response = await fetch(`${this.baseUrl}/disbursement/v1_0/refund/${refundId}`, {
154
+ method: 'GET',
155
+ headers: {
156
+ 'Authorization': `Bearer ${token.getAccessToken()}`,
157
+ 'Ocp-Apim-Subscription-Key': this.config.subscriptionKey,
158
+ 'X-Target-Environment': this.environment,
159
+ },
160
+ });
161
+ const data = await this.handleResponse(response);
162
+ return Transaction_js_1.Transaction.parse(data);
163
+ }
164
+ }
165
+ exports.DisbursementApi = DisbursementApi;
166
+ //# sourceMappingURL=DisbursementApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DisbursementApi.js","sourceRoot":"","sources":["../../src/products/DisbursementApi.ts"],"names":[],"mappings":"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"}