paystack-sdk 1.0.13 → 1.0.17
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/README.md +8 -1
- package/dist/charge/charge.js +50 -24
- package/dist/charge/index.js +14 -2
- package/dist/charge/interface.js +2 -1
- package/dist/customer/customer.d.ts +60 -0
- package/dist/customer/customer.js +102 -0
- package/dist/customer/interface.d.ts +177 -0
- package/dist/customer/interface.js +13 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +5 -2
- package/dist/paystack.js +13 -14
- package/dist/plan/index.js +14 -2
- package/dist/plan/interface.js +2 -1
- package/dist/plan/plan.js +35 -15
- package/dist/transaction/index.js +14 -2
- package/dist/transaction/interface.d.ts +4 -2
- package/dist/transaction/interface.js +2 -1
- package/dist/transaction/transaction.js +68 -36
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
# Paystack SDK
|
|
2
2
|
|
|
3
3
|
#### Why Another [Paystack](https://paystack.com) Package?
|
|
4
|
+
|
|
4
5
|
Other packages are either outdated or don't support types.
|
|
5
6
|
|
|
6
7
|
### Installation
|
|
8
|
+
|
|
7
9
|
For Yarn
|
|
8
10
|
`yarn add paystack-sdk`
|
|
9
11
|
|
|
@@ -11,7 +13,9 @@ For NPM
|
|
|
11
13
|
`npm install paystack-sdk`
|
|
12
14
|
|
|
13
15
|
### Usage
|
|
16
|
+
|
|
14
17
|
For Typescript
|
|
18
|
+
|
|
15
19
|
```
|
|
16
20
|
import Paystack from 'paystack-sdk';
|
|
17
21
|
|
|
@@ -19,6 +23,7 @@ const paystack = new Paystack("secret_key);
|
|
|
19
23
|
```
|
|
20
24
|
|
|
21
25
|
For Javscript
|
|
26
|
+
|
|
22
27
|
```
|
|
23
28
|
const Paystack = require('paystack-sdk');
|
|
24
29
|
const paystack = new Paystack("secret_key");
|
|
@@ -26,7 +31,9 @@ const paystack = new Paystack("secret_key");
|
|
|
26
31
|
|
|
27
32
|
All methods use promise meaning you can either use the `async...await` or `then...catch` or `try...catch`
|
|
28
33
|
|
|
29
|
-
### Available
|
|
34
|
+
### Available Endpoints
|
|
35
|
+
|
|
30
36
|
- [Charge](https://github.com/en1tan/paystack-node/blob/main/src/charge/README.md)
|
|
31
37
|
- [Transaction](https://github.com/en1tan/paystack-node/blob/main/src/transaction/README.md)
|
|
32
38
|
- [Plan](https://github.com/en1tan/paystack-node/blob/main/src/plan/README.md)
|
|
39
|
+
- [Customer](https://github.com/en1tan/paystack-node/blob/main/src/customer/README.md)
|
package/dist/charge/charge.js
CHANGED
|
@@ -1,36 +1,62 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.Charge = void 0;
|
|
13
|
+
class Charge {
|
|
3
14
|
constructor(http) {
|
|
4
15
|
this.http = http;
|
|
5
16
|
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
17
|
+
create(data) {
|
|
18
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
19
|
+
const response = yield this.http.post('/charge', JSON.stringify(data));
|
|
20
|
+
return JSON.parse(response.data);
|
|
21
|
+
});
|
|
9
22
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
23
|
+
submitPIN(data) {
|
|
24
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
const response = yield this.http.post('/charge/submit_pin', JSON.stringify(data));
|
|
26
|
+
return JSON.parse(response.data);
|
|
27
|
+
});
|
|
13
28
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
29
|
+
submitOTP(data) {
|
|
30
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
const response = yield this.http.post('/charge/submit_otp', JSON.stringify(data));
|
|
32
|
+
return JSON.parse(response.data);
|
|
33
|
+
});
|
|
17
34
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
35
|
+
submitPhone(data) {
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
const response = yield this.http.post('/charge/submit_phone', JSON.stringify(data));
|
|
38
|
+
return JSON.parse(response.data);
|
|
39
|
+
});
|
|
21
40
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
41
|
+
submitBirthday(data) {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
const response = yield this.http.post('/charge/submit_birthday', JSON.stringify(data));
|
|
44
|
+
return JSON.parse(response.data);
|
|
45
|
+
});
|
|
25
46
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
47
|
+
submitAddress(data) {
|
|
48
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
const response = yield this.http.post('/charge/submit_address', JSON.stringify(data));
|
|
50
|
+
return JSON.parse(response.data);
|
|
51
|
+
});
|
|
29
52
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
53
|
+
checkPending(reference) {
|
|
54
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
const response = yield this.http.get('/charge/submit_address', {
|
|
56
|
+
params: { reference },
|
|
57
|
+
});
|
|
58
|
+
return JSON.parse(response.data);
|
|
33
59
|
});
|
|
34
|
-
return JSON.parse(response.data);
|
|
35
60
|
}
|
|
36
61
|
}
|
|
62
|
+
exports.Charge = Charge;
|
package/dist/charge/index.js
CHANGED
|
@@ -1,2 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./charge"), exports);
|
|
14
|
+
__exportStar(require("./interface"), exports);
|
package/dist/charge/interface.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Axios } from 'axios';
|
|
2
|
+
import { Meta } from '../transaction';
|
|
3
|
+
import { CreateCustomer, CustomerCreated, CustomerData, ListCustomerQueryParams, ListCustomers, Response, SetRiskAction, UpdateCustomer, ValidateCustomer } from './interface';
|
|
4
|
+
interface BadRequest {
|
|
5
|
+
status: boolean;
|
|
6
|
+
message: string;
|
|
7
|
+
data: null;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* # Customers
|
|
11
|
+
* The Customers API allows you create and manage
|
|
12
|
+
* customers on your integration
|
|
13
|
+
*/
|
|
14
|
+
export declare class Customer {
|
|
15
|
+
private http;
|
|
16
|
+
constructor(http: Axios);
|
|
17
|
+
/**
|
|
18
|
+
* ## Create Customer
|
|
19
|
+
* Create a customer on your integration
|
|
20
|
+
* @param {CreateCustomer} data
|
|
21
|
+
*/
|
|
22
|
+
create(data: CreateCustomer): Promise<CustomerCreated | BadRequest>;
|
|
23
|
+
/**
|
|
24
|
+
* ## List Customers
|
|
25
|
+
* List customers available on your integration
|
|
26
|
+
* @param {ListCustomerQueryParams} queryParams
|
|
27
|
+
*/
|
|
28
|
+
list(queryParams?: ListCustomerQueryParams): Promise<(Response & ListCustomers[] & Meta) | BadRequest>;
|
|
29
|
+
/**
|
|
30
|
+
* ## Fetch Customer
|
|
31
|
+
* Get details of a customer on your integration
|
|
32
|
+
* @param {String} email_or_code
|
|
33
|
+
*/
|
|
34
|
+
fetch(emailCode: string): Promise<CustomerData | BadRequest>;
|
|
35
|
+
/**
|
|
36
|
+
* ## Update CUstomer
|
|
37
|
+
* Update a customer's details on your integration
|
|
38
|
+
*/
|
|
39
|
+
update(code: string, data: UpdateCustomer): Promise<CustomerData | BadRequest>;
|
|
40
|
+
/**
|
|
41
|
+
* ## Validate Customer
|
|
42
|
+
* Validate a customer's identity
|
|
43
|
+
* @param {String} customer_code
|
|
44
|
+
* @param {ValidateCustomer} data
|
|
45
|
+
*/
|
|
46
|
+
validate(customerCode: string, data: ValidateCustomer): Promise<Response | BadRequest>;
|
|
47
|
+
/**
|
|
48
|
+
* ## Whitelist/Blacklist Customer
|
|
49
|
+
* Whitelist or black a customer on your integration
|
|
50
|
+
* @param {SetRiskAction} data
|
|
51
|
+
*/
|
|
52
|
+
setRiskAction(data: SetRiskAction): Promise<CustomerData | BadRequest>;
|
|
53
|
+
/**
|
|
54
|
+
* ## Deactivate Authorization
|
|
55
|
+
* Deactivate an authorization when the card needs to be forgotten
|
|
56
|
+
* @param {String} authorizaion_code
|
|
57
|
+
*/
|
|
58
|
+
deactivateAutorization(authorizationCode: string): Promise<Response>;
|
|
59
|
+
}
|
|
60
|
+
export {};
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.Customer = void 0;
|
|
13
|
+
/**
|
|
14
|
+
* # Customers
|
|
15
|
+
* The Customers API allows you create and manage
|
|
16
|
+
* customers on your integration
|
|
17
|
+
*/
|
|
18
|
+
class Customer {
|
|
19
|
+
constructor(http) {
|
|
20
|
+
this.http = http;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* ## Create Customer
|
|
24
|
+
* Create a customer on your integration
|
|
25
|
+
* @param {CreateCustomer} data
|
|
26
|
+
*/
|
|
27
|
+
create(data) {
|
|
28
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
const response = yield this.http.post('/customer', JSON.stringify(data));
|
|
30
|
+
return JSON.parse(response.data);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* ## List Customers
|
|
35
|
+
* List customers available on your integration
|
|
36
|
+
* @param {ListCustomerQueryParams} queryParams
|
|
37
|
+
*/
|
|
38
|
+
list(queryParams) {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
const response = yield this.http.get('/customer', {
|
|
41
|
+
params: Object.assign({}, queryParams),
|
|
42
|
+
});
|
|
43
|
+
return JSON.parse(response.data);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* ## Fetch Customer
|
|
48
|
+
* Get details of a customer on your integration
|
|
49
|
+
* @param {String} email_or_code
|
|
50
|
+
*/
|
|
51
|
+
fetch(emailCode) {
|
|
52
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
const response = yield this.http.get(`/customer/${emailCode}`);
|
|
54
|
+
return JSON.parse(response.data);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* ## Update CUstomer
|
|
59
|
+
* Update a customer's details on your integration
|
|
60
|
+
*/
|
|
61
|
+
update(code, data) {
|
|
62
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
63
|
+
const response = yield this.http.put(`/customer/${code}`, JSON.stringify(data));
|
|
64
|
+
return JSON.parse(response.data);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* ## Validate Customer
|
|
69
|
+
* Validate a customer's identity
|
|
70
|
+
* @param {String} customer_code
|
|
71
|
+
* @param {ValidateCustomer} data
|
|
72
|
+
*/
|
|
73
|
+
validate(customerCode, data) {
|
|
74
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
75
|
+
const response = yield this.http.post(`/customer/${customerCode}/identification`, JSON.stringify(data));
|
|
76
|
+
return JSON.parse(response.data);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* ## Whitelist/Blacklist Customer
|
|
81
|
+
* Whitelist or black a customer on your integration
|
|
82
|
+
* @param {SetRiskAction} data
|
|
83
|
+
*/
|
|
84
|
+
setRiskAction(data) {
|
|
85
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
const response = yield this.http.post('/customer/set_risk_action', JSON.stringify(data));
|
|
87
|
+
return JSON.parse(response.data);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* ## Deactivate Authorization
|
|
92
|
+
* Deactivate an authorization when the card needs to be forgotten
|
|
93
|
+
* @param {String} authorizaion_code
|
|
94
|
+
*/
|
|
95
|
+
deactivateAutorization(authorizationCode) {
|
|
96
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
97
|
+
const response = yield this.http.post('/customer/deactivate_authorization', JSON.stringify({ authorizaion_code: authorizationCode }));
|
|
98
|
+
return JSON.parse(response.data);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
exports.Customer = Customer;
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { Authorization } from '../charge';
|
|
2
|
+
import { Subscription, TransactionData } from '../transaction';
|
|
3
|
+
export interface CreateCustomer {
|
|
4
|
+
email: string;
|
|
5
|
+
first_name: string;
|
|
6
|
+
last_name: string;
|
|
7
|
+
phone: string;
|
|
8
|
+
metadata: Record<string, any>;
|
|
9
|
+
}
|
|
10
|
+
export interface Response {
|
|
11
|
+
status: boolean;
|
|
12
|
+
message: string;
|
|
13
|
+
}
|
|
14
|
+
export interface CustomerCreated extends Response {
|
|
15
|
+
email: string;
|
|
16
|
+
integration: number;
|
|
17
|
+
domain: string;
|
|
18
|
+
customer_code: string;
|
|
19
|
+
id: number;
|
|
20
|
+
identified: boolean;
|
|
21
|
+
identifications: null;
|
|
22
|
+
createdAt: Date;
|
|
23
|
+
updatedAt: Date;
|
|
24
|
+
}
|
|
25
|
+
export interface CustomerData extends Response {
|
|
26
|
+
integration: number;
|
|
27
|
+
first_name: string;
|
|
28
|
+
last_name: string;
|
|
29
|
+
email: string;
|
|
30
|
+
phone: string | null;
|
|
31
|
+
dedicated_account: DedicatedAccount | null;
|
|
32
|
+
identified: boolean;
|
|
33
|
+
identifications: CustomerIdentification[] | null;
|
|
34
|
+
metadata: Record<string, any> | null;
|
|
35
|
+
domain: string;
|
|
36
|
+
customer_code: string;
|
|
37
|
+
id: string;
|
|
38
|
+
transactions: TransactionData[];
|
|
39
|
+
subscriptions: Subscription[];
|
|
40
|
+
authorizations: Authorization[];
|
|
41
|
+
createdAt: Date;
|
|
42
|
+
updatedAt: Date;
|
|
43
|
+
}
|
|
44
|
+
export interface ListCustomers {
|
|
45
|
+
integration: number;
|
|
46
|
+
first_name: string;
|
|
47
|
+
last_name: string;
|
|
48
|
+
email: string;
|
|
49
|
+
phone: string | null;
|
|
50
|
+
metadata: Record<string, any> | null;
|
|
51
|
+
domain: string;
|
|
52
|
+
customer_code: string;
|
|
53
|
+
id: number;
|
|
54
|
+
createdAt: Date;
|
|
55
|
+
updatedAt: Date;
|
|
56
|
+
}
|
|
57
|
+
export interface ListCustomerQueryParams {
|
|
58
|
+
/**
|
|
59
|
+
* Specify how many records you want to retrieve per page.
|
|
60
|
+
* If not specify we use a default value of 50.
|
|
61
|
+
*/
|
|
62
|
+
perPage?: number;
|
|
63
|
+
/**
|
|
64
|
+
* Specify exactly what page you want to retrieve.
|
|
65
|
+
* If not specify we use a default value of 1.
|
|
66
|
+
*/
|
|
67
|
+
page?: number;
|
|
68
|
+
/**
|
|
69
|
+
* Specify an ID for the customer whose transactions
|
|
70
|
+
* you want to retrieve
|
|
71
|
+
*/
|
|
72
|
+
customer?: number;
|
|
73
|
+
/**
|
|
74
|
+
* Filter transactions by status ('failed', 'success', 'abandoned')
|
|
75
|
+
*/
|
|
76
|
+
status?: string;
|
|
77
|
+
/**
|
|
78
|
+
* A timestamp from which to start listing transaction
|
|
79
|
+
* e.g `2021-10-25T00.00.05.000z`, `2021-12-25`
|
|
80
|
+
*/
|
|
81
|
+
from?: Date;
|
|
82
|
+
/**
|
|
83
|
+
* A timestamp from which to stop listing transaction
|
|
84
|
+
* e.g `2021-10-25T00.00.05.000z`, `2021-12-25`
|
|
85
|
+
*/
|
|
86
|
+
to?: Date;
|
|
87
|
+
}
|
|
88
|
+
export interface SplitConfig {
|
|
89
|
+
id: number;
|
|
90
|
+
name: string;
|
|
91
|
+
type: string;
|
|
92
|
+
currency: string;
|
|
93
|
+
integration: number;
|
|
94
|
+
domain: string;
|
|
95
|
+
split_code: string;
|
|
96
|
+
active: boolean;
|
|
97
|
+
bearer_type: string;
|
|
98
|
+
bearer_subaccount: string | null;
|
|
99
|
+
createdAt: Date;
|
|
100
|
+
updatedAt: Date;
|
|
101
|
+
is_dynamic: boolean;
|
|
102
|
+
subaccounts: SubAccount[];
|
|
103
|
+
total_subaccounts: number;
|
|
104
|
+
}
|
|
105
|
+
export interface SubAccount {
|
|
106
|
+
subaccount: {
|
|
107
|
+
id: number;
|
|
108
|
+
sunaccount_code: string;
|
|
109
|
+
business_name: string;
|
|
110
|
+
description: string;
|
|
111
|
+
primary_contact_name: string | null;
|
|
112
|
+
primary_contact_email: string | null;
|
|
113
|
+
primary_contact_phone: string | null;
|
|
114
|
+
metadata: Record<string, any>;
|
|
115
|
+
settlement_bank: string;
|
|
116
|
+
currency: string;
|
|
117
|
+
account_number: string;
|
|
118
|
+
};
|
|
119
|
+
share: number;
|
|
120
|
+
}
|
|
121
|
+
export interface CustomerIdentification {
|
|
122
|
+
country: string;
|
|
123
|
+
type: string;
|
|
124
|
+
value: string;
|
|
125
|
+
}
|
|
126
|
+
export interface DedicatedAccount {
|
|
127
|
+
bank: {
|
|
128
|
+
name: string;
|
|
129
|
+
id: number;
|
|
130
|
+
slug: string;
|
|
131
|
+
};
|
|
132
|
+
id: number;
|
|
133
|
+
account_name: string;
|
|
134
|
+
account_number: string;
|
|
135
|
+
created_at: Date;
|
|
136
|
+
updated_at: Date;
|
|
137
|
+
currency: string;
|
|
138
|
+
split_config: SplitConfig;
|
|
139
|
+
active: boolean;
|
|
140
|
+
assigned: boolean;
|
|
141
|
+
assignment: {
|
|
142
|
+
assignee_id: number;
|
|
143
|
+
assignee_type: string;
|
|
144
|
+
account_type: string;
|
|
145
|
+
integration: number;
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
export interface UpdateCustomer {
|
|
149
|
+
first_name: string;
|
|
150
|
+
last_name: string;
|
|
151
|
+
phone: string;
|
|
152
|
+
metadata: Record<string, any>;
|
|
153
|
+
}
|
|
154
|
+
export interface SetRiskAction {
|
|
155
|
+
customer: string;
|
|
156
|
+
risk_action: RiskAction;
|
|
157
|
+
}
|
|
158
|
+
export interface ValidateCustomer {
|
|
159
|
+
first_name: string;
|
|
160
|
+
last_name: string;
|
|
161
|
+
type: ValidationType;
|
|
162
|
+
value: string;
|
|
163
|
+
country: string;
|
|
164
|
+
bvn: string;
|
|
165
|
+
bank_code: string;
|
|
166
|
+
account_number: string;
|
|
167
|
+
}
|
|
168
|
+
declare enum RiskAction {
|
|
169
|
+
default = 0,
|
|
170
|
+
allow = 1,
|
|
171
|
+
deny = 2
|
|
172
|
+
}
|
|
173
|
+
declare enum ValidationType {
|
|
174
|
+
bvn = 0,
|
|
175
|
+
bank_account = 1
|
|
176
|
+
}
|
|
177
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var RiskAction;
|
|
4
|
+
(function (RiskAction) {
|
|
5
|
+
RiskAction[RiskAction["default"] = 0] = "default";
|
|
6
|
+
RiskAction[RiskAction["allow"] = 1] = "allow";
|
|
7
|
+
RiskAction[RiskAction["deny"] = 2] = "deny";
|
|
8
|
+
})(RiskAction || (RiskAction = {}));
|
|
9
|
+
var ValidationType;
|
|
10
|
+
(function (ValidationType) {
|
|
11
|
+
ValidationType[ValidationType["bvn"] = 0] = "bvn";
|
|
12
|
+
ValidationType[ValidationType["bank_account"] = 1] = "bank_account";
|
|
13
|
+
})(ValidationType || (ValidationType = {}));
|
package/dist/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export { Paystack } from './paystack';
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
exports
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Paystack = void 0;
|
|
4
|
+
var paystack_1 = require("./paystack");
|
|
5
|
+
Object.defineProperty(exports, "Paystack", { enumerable: true, get: function () { return paystack_1.Paystack; } });
|
package/dist/paystack.js
CHANGED
|
@@ -1,27 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Paystack = void 0;
|
|
4
|
+
const axios_1 = require("axios");
|
|
5
|
+
const charge_1 = require("./charge");
|
|
6
|
+
const plan_1 = require("./plan");
|
|
7
|
+
const transaction_1 = require("./transaction");
|
|
5
8
|
/**
|
|
6
9
|
* Paystack SDK
|
|
7
10
|
* @author Asaju Enitan <@en1tan>
|
|
8
11
|
*/
|
|
9
|
-
|
|
10
|
-
key;
|
|
11
|
-
http;
|
|
12
|
-
charge;
|
|
13
|
-
transaction;
|
|
14
|
-
plan;
|
|
12
|
+
class Paystack {
|
|
15
13
|
constructor(key) {
|
|
16
14
|
this.key = key;
|
|
17
|
-
this.http = new Axios({
|
|
15
|
+
this.http = new axios_1.Axios({
|
|
18
16
|
baseURL: 'https://api.paystack.co',
|
|
19
17
|
headers: {
|
|
20
18
|
Authorization: `Bearer ${this.key}`,
|
|
21
19
|
},
|
|
22
20
|
});
|
|
23
|
-
this.charge = new Charge(this.http);
|
|
24
|
-
this.transaction = new Transaction(this.http);
|
|
25
|
-
this.plan = new Plan(this.http);
|
|
21
|
+
this.charge = new charge_1.Charge(this.http);
|
|
22
|
+
this.transaction = new transaction_1.Transaction(this.http);
|
|
23
|
+
this.plan = new plan_1.Plan(this.http);
|
|
26
24
|
}
|
|
27
25
|
}
|
|
26
|
+
exports.Paystack = Paystack;
|
package/dist/plan/index.js
CHANGED
|
@@ -1,2 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./interface"), exports);
|
|
14
|
+
__exportStar(require("./plan"), exports);
|
package/dist/plan/interface.js
CHANGED
package/dist/plan/plan.js
CHANGED
|
@@ -1,11 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.Plan = void 0;
|
|
1
13
|
/**
|
|
2
14
|
* ## Plans
|
|
3
15
|
* The Plans API allows you create and manage installment
|
|
4
16
|
* payment options on your integration
|
|
5
17
|
* @class Plan
|
|
6
18
|
*/
|
|
7
|
-
|
|
8
|
-
http;
|
|
19
|
+
class Plan {
|
|
9
20
|
constructor(http) {
|
|
10
21
|
this.http = http;
|
|
11
22
|
}
|
|
@@ -15,9 +26,11 @@ export class Plan {
|
|
|
15
26
|
* @param {CreatePlan} data Body Param
|
|
16
27
|
* @returns {Promise<PlanResponse | BadRequest>}
|
|
17
28
|
*/
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
29
|
+
create(data) {
|
|
30
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
const response = yield this.http.post('/plan', JSON.stringify(data));
|
|
32
|
+
return JSON.parse(response.data);
|
|
33
|
+
});
|
|
21
34
|
}
|
|
22
35
|
/**
|
|
23
36
|
* ### List Plans
|
|
@@ -25,11 +38,13 @@ export class Plan {
|
|
|
25
38
|
* @param queryParams Query Parameters
|
|
26
39
|
* @returns {Promise<PlanResponse | BadRequest>}
|
|
27
40
|
*/
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
41
|
+
list(queryParams) {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
const response = yield this.http.get('/plan', {
|
|
44
|
+
params: Object.assign({}, queryParams),
|
|
45
|
+
});
|
|
46
|
+
return JSON.parse(response.data);
|
|
31
47
|
});
|
|
32
|
-
return JSON.parse(response.data);
|
|
33
48
|
}
|
|
34
49
|
/**
|
|
35
50
|
* ### Fetch Plan
|
|
@@ -37,9 +52,11 @@ export class Plan {
|
|
|
37
52
|
* @param id The plan `ID` or `code` you want to fetch
|
|
38
53
|
* @returns {Promise<PlanResponse | BadRequest>}
|
|
39
54
|
*/
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
55
|
+
fetch(id) {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
const response = yield this.http.get(`/plan/${id}`);
|
|
58
|
+
return JSON.parse(response.data);
|
|
59
|
+
});
|
|
43
60
|
}
|
|
44
61
|
/**
|
|
45
62
|
* ### Update Plan
|
|
@@ -48,8 +65,11 @@ export class Plan {
|
|
|
48
65
|
* @param {UpdatePlan} data Update Plan Data
|
|
49
66
|
* @returns {Promise<PlanResponse | BadRequest>}
|
|
50
67
|
*/
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
68
|
+
update(id, data) {
|
|
69
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
70
|
+
const response = yield this.http.put(`/plan/${id}`, JSON.stringify(data));
|
|
71
|
+
return JSON.parse(response.data);
|
|
72
|
+
});
|
|
54
73
|
}
|
|
55
74
|
}
|
|
75
|
+
exports.Plan = Plan;
|
|
@@ -1,2 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./interface"), exports);
|
|
14
|
+
__exportStar(require("./transaction"), exports);
|
|
@@ -83,7 +83,7 @@ interface TransactionInitializedOk {
|
|
|
83
83
|
access_code: string;
|
|
84
84
|
reference: string;
|
|
85
85
|
}
|
|
86
|
-
interface TransactionData {
|
|
86
|
+
export interface TransactionData {
|
|
87
87
|
amount: number;
|
|
88
88
|
currency: string;
|
|
89
89
|
transaction_date: Date;
|
|
@@ -92,7 +92,7 @@ interface TransactionData {
|
|
|
92
92
|
domain: string;
|
|
93
93
|
metadata: number;
|
|
94
94
|
gateway_response: string;
|
|
95
|
-
message?:
|
|
95
|
+
message?: any;
|
|
96
96
|
channel: string;
|
|
97
97
|
ip_address: string;
|
|
98
98
|
log: {
|
|
@@ -292,4 +292,6 @@ export interface PartialDebit {
|
|
|
292
292
|
*/
|
|
293
293
|
at_least: string;
|
|
294
294
|
}
|
|
295
|
+
export interface Subscription {
|
|
296
|
+
}
|
|
295
297
|
export {};
|
|
@@ -1,10 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.Transaction = void 0;
|
|
1
13
|
/**
|
|
2
14
|
* # Tansactions
|
|
3
15
|
* The transaction API allows you create and manage
|
|
4
16
|
* payments on your integration
|
|
5
17
|
*/
|
|
6
|
-
|
|
7
|
-
http;
|
|
18
|
+
class Transaction {
|
|
8
19
|
constructor(http) {
|
|
9
20
|
this.http = http;
|
|
10
21
|
}
|
|
@@ -12,52 +23,73 @@ export class Transaction {
|
|
|
12
23
|
* Initialize a transaction
|
|
13
24
|
* @param {InitializeTransaction} data **Body Param**
|
|
14
25
|
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
26
|
+
initialize(data) {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
const response = yield this.http.post('/transaction/initialize', JSON.stringify(data));
|
|
29
|
+
return JSON.parse(response.data);
|
|
30
|
+
});
|
|
18
31
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
32
|
+
verify(reference) {
|
|
33
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
const response = yield this.http.get('/transaction/verify', {
|
|
35
|
+
params: { reference },
|
|
36
|
+
});
|
|
37
|
+
return JSON.parse(response.data);
|
|
22
38
|
});
|
|
23
|
-
return JSON.parse(response.data);
|
|
24
39
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
40
|
+
list(queryParams) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
const response = yield this.http.get('/transaction', {
|
|
43
|
+
params: Object.assign({}, queryParams),
|
|
44
|
+
});
|
|
45
|
+
return JSON.parse(response.data);
|
|
28
46
|
});
|
|
29
|
-
return JSON.parse(response.data);
|
|
30
47
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
48
|
+
fetch(id) {
|
|
49
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
const response = yield this.http.get(`/transaction/:${id}`);
|
|
51
|
+
return JSON.parse(response.data);
|
|
52
|
+
});
|
|
34
53
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
54
|
+
chargeAuthorization(data) {
|
|
55
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
const response = yield this.http.post('/transaction/charge_authorization', JSON.stringify(data));
|
|
57
|
+
return JSON.parse(response.data);
|
|
58
|
+
});
|
|
38
59
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
60
|
+
checkAuthorization(data) {
|
|
61
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
+
const response = yield this.http.post('/transaction/check_authorization', JSON.stringify(data));
|
|
63
|
+
return JSON.parse(response.data);
|
|
64
|
+
});
|
|
42
65
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
66
|
+
viewTimeline(id) {
|
|
67
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
68
|
+
const response = yield this.http.get(`/transaction/timeline/${id}`);
|
|
69
|
+
return JSON.parse(response.data);
|
|
70
|
+
});
|
|
46
71
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
72
|
+
totals(queryParams) {
|
|
73
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
+
const response = yield this.http.get('/transaction/totals', {
|
|
75
|
+
params: Object.assign({}, queryParams),
|
|
76
|
+
});
|
|
77
|
+
return JSON.parse(response.data);
|
|
50
78
|
});
|
|
51
|
-
return JSON.parse(response.data);
|
|
52
79
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
80
|
+
export(queryParams) {
|
|
81
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
82
|
+
const response = yield this.http.get('/transaction/export', {
|
|
83
|
+
params: Object.assign({}, queryParams),
|
|
84
|
+
});
|
|
85
|
+
return JSON.parse(response.data);
|
|
56
86
|
});
|
|
57
|
-
return JSON.parse(response.data);
|
|
58
87
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
88
|
+
partialDebit(data) {
|
|
89
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
90
|
+
const response = yield this.http.post('/transaction/partial_debit', JSON.stringify(data));
|
|
91
|
+
return JSON.parse(response.data);
|
|
92
|
+
});
|
|
62
93
|
}
|
|
63
94
|
}
|
|
95
|
+
exports.Transaction = Transaction;
|