paystack-ruby 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 (70) hide show
  1. checksums.yaml +7 -0
  2. data/.standard.yml +3 -0
  3. data/CHANGELOG.md +5 -0
  4. data/CODE_OF_CONDUCT.md +132 -0
  5. data/LICENSE.txt +21 -0
  6. data/README.md +153 -0
  7. data/Rakefile +8 -0
  8. data/docs/apple_pay.md +60 -0
  9. data/docs/balance.md +39 -0
  10. data/docs/bank.md +77 -0
  11. data/docs/bulk_charge.md +110 -0
  12. data/docs/charge.md +124 -0
  13. data/docs/customer.md +253 -0
  14. data/docs/dedicated_virtual_account.md +171 -0
  15. data/docs/direct_debit.md +44 -0
  16. data/docs/dispute.md +175 -0
  17. data/docs/integration.md +36 -0
  18. data/docs/miscellaneous.md +52 -0
  19. data/docs/order.md +101 -0
  20. data/docs/page.md +138 -0
  21. data/docs/payment_request.md +182 -0
  22. data/docs/plan.md +99 -0
  23. data/docs/product.md +114 -0
  24. data/docs/refund.md +87 -0
  25. data/docs/settlement.md +43 -0
  26. data/docs/split.md +140 -0
  27. data/docs/storefront.md +205 -0
  28. data/docs/subaccount.md +99 -0
  29. data/docs/subscription.md +132 -0
  30. data/docs/terminal.md +156 -0
  31. data/docs/transaction.md +206 -0
  32. data/docs/transfer.md +183 -0
  33. data/docs/transfer_recipient.md +124 -0
  34. data/docs/virtual_terminal.md +188 -0
  35. data/lib/paystack/base_resource.rb +13 -0
  36. data/lib/paystack/client.rb +146 -0
  37. data/lib/paystack/errors.rb +20 -0
  38. data/lib/paystack/resources/apple_pay.rb +31 -0
  39. data/lib/paystack/resources/balance.rb +24 -0
  40. data/lib/paystack/resources/bank.rb +31 -0
  41. data/lib/paystack/resources/bulk_charge.rb +52 -0
  42. data/lib/paystack/resources/charge.rb +59 -0
  43. data/lib/paystack/resources/customer.rb +94 -0
  44. data/lib/paystack/resources/dedicated_virtual_account.rb +73 -0
  45. data/lib/paystack/resources/direct_debit.rb +24 -0
  46. data/lib/paystack/resources/dispute.rb +66 -0
  47. data/lib/paystack/resources/integration.rb +24 -0
  48. data/lib/paystack/resources/miscellaneous.rb +31 -0
  49. data/lib/paystack/resources/order.rb +45 -0
  50. data/lib/paystack/resources/page.rb +52 -0
  51. data/lib/paystack/resources/payment_request.rb +73 -0
  52. data/lib/paystack/resources/plan.rb +38 -0
  53. data/lib/paystack/resources/product.rb +45 -0
  54. data/lib/paystack/resources/refund.rb +38 -0
  55. data/lib/paystack/resources/settlement.rb +24 -0
  56. data/lib/paystack/resources/split.rb +52 -0
  57. data/lib/paystack/resources/storefront.rb +87 -0
  58. data/lib/paystack/resources/subaccount.rb +38 -0
  59. data/lib/paystack/resources/subscription.rb +59 -0
  60. data/lib/paystack/resources/terminal.rb +66 -0
  61. data/lib/paystack/resources/transaction.rb +75 -0
  62. data/lib/paystack/resources/transfer.rb +87 -0
  63. data/lib/paystack/resources/transfer_recipient.rb +52 -0
  64. data/lib/paystack/resources/virtual_terminal.rb +73 -0
  65. data/lib/paystack/response.rb +40 -0
  66. data/lib/paystack/transport.rb +64 -0
  67. data/lib/paystack/version.rb +6 -0
  68. data/lib/paystack.rb +40 -0
  69. data/sig/paystack/ruby.rbs +6 -0
  70. metadata +110 -0
data/docs/charge.md ADDED
@@ -0,0 +1,124 @@
1
+ # Charge
2
+
3
+ A collection of endpoints for configuring and managing the payment channels when initiating a payment
4
+
5
+ ## Methods
6
+
7
+ | Method | HTTP | Path | Summary |
8
+ |---|---|---|---|
9
+ | `check` | `GET` | `/charge/{reference}` | Check pending charge |
10
+ | `create` | `POST` | `/charge` | Create Charge |
11
+ | `submit_address` | `POST` | `/charge/submit_address` | Submit Address |
12
+ | `submit_birthday` | `POST` | `/charge/submit_birthday` | Submit Birthday |
13
+ | `submit_otp` | `POST` | `/charge/submit_otp` | Submit OTP |
14
+ | `submit_phone` | `POST` | `/charge/submit_phone` | Submit Phone |
15
+ | `submit_pin` | `POST` | `/charge/submit_pin` | Submit PIN |
16
+
17
+ ---
18
+
19
+ ## `check`
20
+
21
+ **HTTP:** `GET`
22
+ **Path:** `/charge/{reference}`
23
+
24
+ ```ruby
25
+ paystack.charge.check(reference)
26
+ ```
27
+
28
+ ### Path Parameters
29
+
30
+ | Name | Required |
31
+ |---|---|
32
+ | `reference` | true |
33
+
34
+ ## `create`
35
+
36
+ **HTTP:** `POST`
37
+ **Path:** `/charge`
38
+
39
+ ```ruby
40
+ paystack.charge.create({ ... })
41
+ ```
42
+
43
+ ## `submit_address`
44
+
45
+ **HTTP:** `POST`
46
+ **Path:** `/charge/submit_address`
47
+
48
+ ```ruby
49
+ paystack.charge.submit_address({ ... })
50
+ ```
51
+
52
+ ### Body Fields
53
+
54
+ | Name | Required |
55
+ |---|---|
56
+ | `address` | true |
57
+ | `city` | true |
58
+ | `state` | true |
59
+ | `zip_code` | true |
60
+ | `reference` | true |
61
+
62
+ ## `submit_birthday`
63
+
64
+ **HTTP:** `POST`
65
+ **Path:** `/charge/submit_birthday`
66
+
67
+ ```ruby
68
+ paystack.charge.submit_birthday({ ... })
69
+ ```
70
+
71
+ ### Body Fields
72
+
73
+ | Name | Required |
74
+ |---|---|
75
+ | `birthday` | true |
76
+ | `reference` | true |
77
+
78
+ ## `submit_otp`
79
+
80
+ **HTTP:** `POST`
81
+ **Path:** `/charge/submit_otp`
82
+
83
+ ```ruby
84
+ paystack.charge.submit_otp({ ... })
85
+ ```
86
+
87
+ ### Body Fields
88
+
89
+ | Name | Required |
90
+ |---|---|
91
+ | `otp` | true |
92
+ | `reference` | true |
93
+
94
+ ## `submit_phone`
95
+
96
+ **HTTP:** `POST`
97
+ **Path:** `/charge/submit_phone`
98
+
99
+ ```ruby
100
+ paystack.charge.submit_phone({ ... })
101
+ ```
102
+
103
+ ### Body Fields
104
+
105
+ | Name | Required |
106
+ |---|---|
107
+ | `phone` | true |
108
+ | `reference` | true |
109
+
110
+ ## `submit_pin`
111
+
112
+ **HTTP:** `POST`
113
+ **Path:** `/charge/submit_pin`
114
+
115
+ ```ruby
116
+ paystack.charge.submit_pin({ ... })
117
+ ```
118
+
119
+ ### Body Fields
120
+
121
+ | Name | Required |
122
+ |---|---|
123
+ | `pin` | true |
124
+ | `reference` | true |
data/docs/customer.md ADDED
@@ -0,0 +1,253 @@
1
+ # Customer
2
+
3
+ A collection of endpoints for creating and managing customers on an integration
4
+
5
+ ## Methods
6
+
7
+ | Method | HTTP | Path | Summary |
8
+ |---|---|---|---|
9
+ | `create` | `POST` | `/customer` | Create Customer |
10
+ | `deactivate_authorization` | `POST` | `/customer/authorization/deactivate` | Deactivate Authorization |
11
+ | `direct_debit_activation_charge` | `PUT` | `/customer/{id}/directdebit-activation-charge` | Direct Debit Activation Charge |
12
+ | `fetch` | `GET` | `/customer/{code}` | Fetch Customer |
13
+ | `fetch_mandate_authorizations` | `GET` | `/customer/{id}/directdebit-mandate-authorizations` | Fetch Mandate Authorizations |
14
+ | `initialize_authorization` | `POST` | `/customer/authorization/initialize` | Initialize Authorization |
15
+ | `initialize_direct_debit` | `POST` | `/customer/{id}/initialize-direct-debit` | Initialize Direct Debit |
16
+ | `list` | `GET` | `/customer` | List Customers |
17
+ | `risk_action` | `POST` | `/customer/set_risk_action` | Set Risk Action |
18
+ | `update` | `PUT` | `/customer/{code}` | Update Customer |
19
+ | `validate` | `POST` | `/customer/{code}/identification` | Validate Customer |
20
+ | `verify_authorization` | `GET` | `/customer/authorization/verify/{reference}` | Verify Authorization |
21
+
22
+ ---
23
+
24
+ ## `create`
25
+
26
+ **HTTP:** `POST`
27
+ **Path:** `/customer`
28
+
29
+ ```ruby
30
+ paystack.customer.create({ ... })
31
+ ```
32
+
33
+ ### Body Fields
34
+
35
+ | Name | Required |
36
+ |---|---|
37
+ | `email` | true |
38
+ | `first_name` | false |
39
+ | `last_name` | false |
40
+ | `phone` | false |
41
+ | `metadata` | false |
42
+
43
+ ## `deactivate_authorization`
44
+
45
+ **HTTP:** `POST`
46
+ **Path:** `/customer/authorization/deactivate`
47
+
48
+ ```ruby
49
+ paystack.customer.deactivate_authorization({ ... })
50
+ ```
51
+
52
+ ### Body Fields
53
+
54
+ | Name | Required |
55
+ |---|---|
56
+ | `authorization_code` | true |
57
+
58
+ ## `direct_debit_activation_charge`
59
+
60
+ **HTTP:** `PUT`
61
+ **Path:** `/customer/{id}/directdebit-activation-charge`
62
+
63
+ ```ruby
64
+ paystack.customer.direct_debit_activation_charge(id, { ... })
65
+ ```
66
+
67
+ ### Path Parameters
68
+
69
+ | Name | Required |
70
+ |---|---|
71
+ | `id` | true |
72
+
73
+ ### Body Fields
74
+
75
+ | Name | Required |
76
+ |---|---|
77
+ | `authorization_id` | true |
78
+
79
+ ## `fetch`
80
+
81
+ **HTTP:** `GET`
82
+ **Path:** `/customer/{code}`
83
+
84
+ ```ruby
85
+ paystack.customer.fetch(code)
86
+ ```
87
+
88
+ ### Path Parameters
89
+
90
+ | Name | Required |
91
+ |---|---|
92
+ | `code` | true |
93
+
94
+ ## `fetch_mandate_authorizations`
95
+
96
+ **HTTP:** `GET`
97
+ **Path:** `/customer/{id}/directdebit-mandate-authorizations`
98
+
99
+ ```ruby
100
+ paystack.customer.fetch_mandate_authorizations(id)
101
+ ```
102
+
103
+ ### Path Parameters
104
+
105
+ | Name | Required |
106
+ |---|---|
107
+ | `id` | true |
108
+
109
+ ## `initialize_authorization`
110
+
111
+ **HTTP:** `POST`
112
+ **Path:** `/customer/authorization/initialize`
113
+
114
+ ```ruby
115
+ paystack.customer.initialize_authorization({ ... })
116
+ ```
117
+
118
+ ### Body Fields
119
+
120
+ | Name | Required |
121
+ |---|---|
122
+ | `email` | true |
123
+ | `channel` | true |
124
+ | `callback_url` | false |
125
+ | `account` | false |
126
+ | `address` | false |
127
+
128
+ ## `initialize_direct_debit`
129
+
130
+ **HTTP:** `POST`
131
+ **Path:** `/customer/{id}/initialize-direct-debit`
132
+
133
+ ```ruby
134
+ paystack.customer.initialize_direct_debit(id, { ... })
135
+ ```
136
+
137
+ ### Path Parameters
138
+
139
+ | Name | Required |
140
+ |---|---|
141
+ | `id` | true |
142
+
143
+ ### Body Fields
144
+
145
+ | Name | Required |
146
+ |---|---|
147
+ | `account` | true |
148
+ | `address` | true |
149
+
150
+ ## `list`
151
+
152
+ **HTTP:** `GET`
153
+ **Path:** `/customer`
154
+
155
+ ```ruby
156
+ paystack.customer.list({ ... })
157
+ ```
158
+
159
+ ### Query Fields
160
+
161
+ | Name | Required |
162
+ |---|---|
163
+ | `use_cursor` | false |
164
+ | `next` | false |
165
+ | `previous` | false |
166
+ | `from` | false |
167
+ | `to` | false |
168
+ | `perPage` | false |
169
+ | `page` | false |
170
+
171
+ ## `risk_action`
172
+
173
+ **HTTP:** `POST`
174
+ **Path:** `/customer/set_risk_action`
175
+
176
+ ```ruby
177
+ paystack.customer.risk_action({ ... })
178
+ ```
179
+
180
+ ### Body Fields
181
+
182
+ | Name | Required |
183
+ |---|---|
184
+ | `customer` | true |
185
+ | `risk_action` | false |
186
+
187
+ ## `update`
188
+
189
+ **HTTP:** `PUT`
190
+ **Path:** `/customer/{code}`
191
+
192
+ ```ruby
193
+ paystack.customer.update(code, { ... })
194
+ ```
195
+
196
+ ### Path Parameters
197
+
198
+ | Name | Required |
199
+ |---|---|
200
+ | `code` | true |
201
+
202
+ ### Body Fields
203
+
204
+ | Name | Required |
205
+ |---|---|
206
+ | `first_name` | false |
207
+ | `last_name` | false |
208
+ | `phone` | false |
209
+ | `metadata` | false |
210
+
211
+ ## `validate`
212
+
213
+ **HTTP:** `POST`
214
+ **Path:** `/customer/{code}/identification`
215
+
216
+ ```ruby
217
+ paystack.customer.validate(code, { ... })
218
+ ```
219
+
220
+ ### Path Parameters
221
+
222
+ | Name | Required |
223
+ |---|---|
224
+ | `code` | true |
225
+
226
+ ### Body Fields
227
+
228
+ | Name | Required |
229
+ |---|---|
230
+ | `first_name` | true |
231
+ | `middle_name` | false |
232
+ | `last_name` | true |
233
+ | `type` | true |
234
+ | `value` | false |
235
+ | `country` | true |
236
+ | `bvn` | true |
237
+ | `bank_code` | true |
238
+ | `account_number` | true |
239
+
240
+ ## `verify_authorization`
241
+
242
+ **HTTP:** `GET`
243
+ **Path:** `/customer/authorization/verify/{reference}`
244
+
245
+ ```ruby
246
+ paystack.customer.verify_authorization(reference)
247
+ ```
248
+
249
+ ### Path Parameters
250
+
251
+ | Name | Required |
252
+ |---|---|
253
+ | `reference` | true |
@@ -0,0 +1,171 @@
1
+ # DedicatedVirtualAccount
2
+
3
+ A collection of endpoints for creating and managing payment accounts for customers
4
+
5
+ ## Methods
6
+
7
+ | Method | HTTP | Path | Summary |
8
+ |---|---|---|---|
9
+ | `dedicated_account_add_split` | `POST` | `/dedicated_account/split` | Split Dedicated Account Transaction |
10
+ | `dedicated_account_assign` | `POST` | `/dedicated_account/assign` | Assign Dedicated Account |
11
+ | `dedicated_account_available_providers` | `GET` | `/dedicated_account/available_providers` | Fetch Bank Providers |
12
+ | `dedicated_account_create` | `POST` | `/dedicated_account` | Create Dedicated Account |
13
+ | `dedicated_account_deactivate` | `DELETE` | `/dedicated_account/{id}` | Deactivate Dedicated Account |
14
+ | `dedicated_account_fetch` | `GET` | `/dedicated_account/{id}` | Fetch Dedicated Account |
15
+ | `dedicated_account_list` | `GET` | `/dedicated_account` | List Dedicated Accounts |
16
+ | `dedicated_account_remove_split` | `DELETE` | `/dedicated_account/split` | Remove Split from Dedicated Account |
17
+ | `dedicated_account_requery` | `GET` | `/dedicated_account/requery` | Requery Dedicated Account |
18
+
19
+ ---
20
+
21
+ ## `dedicated_account_add_split`
22
+
23
+ **HTTP:** `POST`
24
+ **Path:** `/dedicated_account/split`
25
+
26
+ ```ruby
27
+ paystack.dedicated_virtual_account.dedicated_account_add_split({ ... })
28
+ ```
29
+
30
+ ### Body Fields
31
+
32
+ | Name | Required |
33
+ |---|---|
34
+ | `account_number` | true |
35
+ | `subaccount` | false |
36
+ | `split_code` | false |
37
+
38
+ ## `dedicated_account_assign`
39
+
40
+ **HTTP:** `POST`
41
+ **Path:** `/dedicated_account/assign`
42
+
43
+ ```ruby
44
+ paystack.dedicated_virtual_account.dedicated_account_assign({ ... })
45
+ ```
46
+
47
+ ### Body Fields
48
+
49
+ | Name | Required |
50
+ |---|---|
51
+ | `email` | true |
52
+ | `first_name` | true |
53
+ | `last_name` | true |
54
+ | `phone` | true |
55
+ | `preferred_bank` | true |
56
+ | `country` | true |
57
+ | `account_number` | false |
58
+ | `bvn` | false |
59
+ | `bank_code` | false |
60
+ | `subaccount` | false |
61
+ | `split_code` | false |
62
+
63
+ ## `dedicated_account_available_providers`
64
+
65
+ **HTTP:** `GET`
66
+ **Path:** `/dedicated_account/available_providers`
67
+
68
+ ```ruby
69
+ paystack.dedicated_virtual_account.dedicated_account_available_providers
70
+ ```
71
+
72
+ ## `dedicated_account_create`
73
+
74
+ **HTTP:** `POST`
75
+ **Path:** `/dedicated_account`
76
+
77
+ ```ruby
78
+ paystack.dedicated_virtual_account.dedicated_account_create({ ... })
79
+ ```
80
+
81
+ ### Body Fields
82
+
83
+ | Name | Required |
84
+ |---|---|
85
+ | `customer` | true |
86
+ | `preferred_bank` | false |
87
+ | `subaccount` | false |
88
+ | `split_code` | false |
89
+
90
+ ## `dedicated_account_deactivate`
91
+
92
+ **HTTP:** `DELETE`
93
+ **Path:** `/dedicated_account/{id}`
94
+
95
+ ```ruby
96
+ paystack.dedicated_virtual_account.dedicated_account_deactivate(id)
97
+ ```
98
+
99
+ ### Path Parameters
100
+
101
+ | Name | Required |
102
+ |---|---|
103
+ | `id` | true |
104
+
105
+ ## `dedicated_account_fetch`
106
+
107
+ **HTTP:** `GET`
108
+ **Path:** `/dedicated_account/{id}`
109
+
110
+ ```ruby
111
+ paystack.dedicated_virtual_account.dedicated_account_fetch(id)
112
+ ```
113
+
114
+ ### Path Parameters
115
+
116
+ | Name | Required |
117
+ |---|---|
118
+ | `id` | true |
119
+
120
+ ## `dedicated_account_list`
121
+
122
+ **HTTP:** `GET`
123
+ **Path:** `/dedicated_account`
124
+
125
+ ```ruby
126
+ paystack.dedicated_virtual_account.dedicated_account_list({ ... })
127
+ ```
128
+
129
+ ### Query Fields
130
+
131
+ | Name | Required |
132
+ |---|---|
133
+ | `active` | false |
134
+ | `customer` | false |
135
+ | `currency` | false |
136
+ | `provider_slug` | false |
137
+ | `bank_id` | false |
138
+ | `perPage` | false |
139
+ | `page` | false |
140
+
141
+ ## `dedicated_account_remove_split`
142
+
143
+ **HTTP:** `DELETE`
144
+ **Path:** `/dedicated_account/split`
145
+
146
+ ```ruby
147
+ paystack.dedicated_virtual_account.dedicated_account_remove_split({ ... })
148
+ ```
149
+
150
+ ### Body Fields
151
+
152
+ | Name | Required |
153
+ |---|---|
154
+ | `account_number` | true |
155
+
156
+ ## `dedicated_account_requery`
157
+
158
+ **HTTP:** `GET`
159
+ **Path:** `/dedicated_account/requery`
160
+
161
+ ```ruby
162
+ paystack.dedicated_virtual_account.dedicated_account_requery({ ... })
163
+ ```
164
+
165
+ ### Query Fields
166
+
167
+ | Name | Required |
168
+ |---|---|
169
+ | `account_number` | false |
170
+ | `provider_slug` | false |
171
+ | `date` | false |
@@ -0,0 +1,44 @@
1
+ # DirectDebit
2
+
3
+ A collection of endpoints for managing Direct Debit
4
+
5
+ ## Methods
6
+
7
+ | Method | HTTP | Path | Summary |
8
+ |---|---|---|---|
9
+ | `directdebit_list_mandate_authorizations` | `GET` | `/directdebit/mandate-authorizations` | List Mandate Authorizations |
10
+ | `directdebit_trigger_activation_charge` | `PUT` | `/directdebit/activation-charge` | Trigger Activation Charge |
11
+
12
+ ---
13
+
14
+ ## `directdebit_list_mandate_authorizations`
15
+
16
+ **HTTP:** `GET`
17
+ **Path:** `/directdebit/mandate-authorizations`
18
+
19
+ ```ruby
20
+ paystack.direct_debit.directdebit_list_mandate_authorizations({ ... })
21
+ ```
22
+
23
+ ### Query Fields
24
+
25
+ | Name | Required |
26
+ |---|---|
27
+ | `cursor` | false |
28
+ | `status` | false |
29
+ | `per_page` | false |
30
+
31
+ ## `directdebit_trigger_activation_charge`
32
+
33
+ **HTTP:** `PUT`
34
+ **Path:** `/directdebit/activation-charge`
35
+
36
+ ```ruby
37
+ paystack.direct_debit.directdebit_trigger_activation_charge({ ... })
38
+ ```
39
+
40
+ ### Body Fields
41
+
42
+ | Name | Required |
43
+ |---|---|
44
+ | `customer_ids` | true |