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/plan.md ADDED
@@ -0,0 +1,99 @@
1
+ # Plan
2
+
3
+ A collection of endpoints for creating and managing recurring payment configuration
4
+
5
+ ## Methods
6
+
7
+ | Method | HTTP | Path | Summary |
8
+ |---|---|---|---|
9
+ | `create` | `POST` | `/plan` | Create Plan |
10
+ | `fetch` | `GET` | `/plan/{code}` | Fetch Plan |
11
+ | `list` | `GET` | `/plan` | List Plans |
12
+ | `update` | `PUT` | `/plan/{code}` | Update Plan |
13
+
14
+ ---
15
+
16
+ ## `create`
17
+
18
+ **HTTP:** `POST`
19
+ **Path:** `/plan`
20
+
21
+ ```ruby
22
+ paystack.plan.create({ ... })
23
+ ```
24
+
25
+ ### Body Fields
26
+
27
+ | Name | Required |
28
+ |---|---|
29
+ | `name` | true |
30
+ | `amount` | true |
31
+ | `interval` | true |
32
+ | `description` | false |
33
+ | `send_invoices` | false |
34
+ | `send_sms` | false |
35
+ | `currency` | false |
36
+ | `invoice_limit` | false |
37
+
38
+ ## `fetch`
39
+
40
+ **HTTP:** `GET`
41
+ **Path:** `/plan/{code}`
42
+
43
+ ```ruby
44
+ paystack.plan.fetch(code)
45
+ ```
46
+
47
+ ### Path Parameters
48
+
49
+ | Name | Required |
50
+ |---|---|
51
+ | `code` | true |
52
+
53
+ ## `list`
54
+
55
+ **HTTP:** `GET`
56
+ **Path:** `/plan`
57
+
58
+ ```ruby
59
+ paystack.plan.list({ ... })
60
+ ```
61
+
62
+ ### Query Fields
63
+
64
+ | Name | Required |
65
+ |---|---|
66
+ | `perPage` | false |
67
+ | `page` | false |
68
+ | `interval` | false |
69
+ | `amount` | false |
70
+ | `from` | false |
71
+ | `to` | false |
72
+
73
+ ## `update`
74
+
75
+ **HTTP:** `PUT`
76
+ **Path:** `/plan/{code}`
77
+
78
+ ```ruby
79
+ paystack.plan.update(code, { ... })
80
+ ```
81
+
82
+ ### Path Parameters
83
+
84
+ | Name | Required |
85
+ |---|---|
86
+ | `code` | true |
87
+
88
+ ### Body Fields
89
+
90
+ | Name | Required |
91
+ |---|---|
92
+ | `name` | false |
93
+ | `amount` | false |
94
+ | `interval` | false |
95
+ | `description` | false |
96
+ | `send_invoices` | false |
97
+ | `send_sms` | false |
98
+ | `currency` | false |
99
+ | `invoice_limit` | false |
data/docs/product.md ADDED
@@ -0,0 +1,114 @@
1
+ # Product
2
+
3
+ A collection of endpoints for creating and managing inventories
4
+
5
+ ## Methods
6
+
7
+ | Method | HTTP | Path | Summary |
8
+ |---|---|---|---|
9
+ | `create` | `POST` | `/product` | Create Product |
10
+ | `delete` | `DELETE` | `/product/{id}` | Delete Product |
11
+ | `fetch` | `GET` | `/product/{id}` | Fetch Product |
12
+ | `list` | `GET` | `/product` | List Products |
13
+ | `update` | `PUT` | `/product/{id}` | Update product |
14
+
15
+ ---
16
+
17
+ ## `create`
18
+
19
+ **HTTP:** `POST`
20
+ **Path:** `/product`
21
+
22
+ ```ruby
23
+ paystack.product.create({ ... })
24
+ ```
25
+
26
+ ### Body Fields
27
+
28
+ | Name | Required |
29
+ |---|---|
30
+ | `name` | true |
31
+ | `description` | true |
32
+ | `price` | true |
33
+ | `currency` | true |
34
+ | `unlimited` | false |
35
+ | `quantity` | false |
36
+ | `split_code` | false |
37
+ | `metadata` | false |
38
+
39
+ ## `delete`
40
+
41
+ **HTTP:** `DELETE`
42
+ **Path:** `/product/{id}`
43
+
44
+ ```ruby
45
+ paystack.product.delete(id)
46
+ ```
47
+
48
+ ### Path Parameters
49
+
50
+ | Name | Required |
51
+ |---|---|
52
+ | `id` | true |
53
+
54
+ ## `fetch`
55
+
56
+ **HTTP:** `GET`
57
+ **Path:** `/product/{id}`
58
+
59
+ ```ruby
60
+ paystack.product.fetch(id)
61
+ ```
62
+
63
+ ### Path Parameters
64
+
65
+ | Name | Required |
66
+ |---|---|
67
+ | `id` | true |
68
+
69
+ ## `list`
70
+
71
+ **HTTP:** `GET`
72
+ **Path:** `/product`
73
+
74
+ ```ruby
75
+ paystack.product.list({ ... })
76
+ ```
77
+
78
+ ### Query Fields
79
+
80
+ | Name | Required |
81
+ |---|---|
82
+ | `perPage` | false |
83
+ | `page` | false |
84
+ | `active` | false |
85
+ | `from` | false |
86
+ | `to` | false |
87
+
88
+ ## `update`
89
+
90
+ **HTTP:** `PUT`
91
+ **Path:** `/product/{id}`
92
+
93
+ ```ruby
94
+ paystack.product.update(id, { ... })
95
+ ```
96
+
97
+ ### Path Parameters
98
+
99
+ | Name | Required |
100
+ |---|---|
101
+ | `id` | true |
102
+
103
+ ### Body Fields
104
+
105
+ | Name | Required |
106
+ |---|---|
107
+ | `name` | false |
108
+ | `description` | false |
109
+ | `price` | false |
110
+ | `currency` | false |
111
+ | `unlimited` | false |
112
+ | `quantity` | false |
113
+ | `split_code` | false |
114
+ | `metadata` | false |
data/docs/refund.md ADDED
@@ -0,0 +1,87 @@
1
+ # Refund
2
+
3
+ A collection of endpoints for creating and managing transaction reimbursement
4
+
5
+ ## Methods
6
+
7
+ | Method | HTTP | Path | Summary |
8
+ |---|---|---|---|
9
+ | `create` | `POST` | `/refund` | Create Refund |
10
+ | `fetch` | `GET` | `/refund/{id}` | Fetch Refund |
11
+ | `list` | `GET` | `/refund` | List Refunds |
12
+ | `retry_` | `POST` | `/refund/retry_with_customer_details/{id}` | Retry Refund |
13
+
14
+ ---
15
+
16
+ ## `create`
17
+
18
+ **HTTP:** `POST`
19
+ **Path:** `/refund`
20
+
21
+ ```ruby
22
+ paystack.refund.create({ ... })
23
+ ```
24
+
25
+ ### Body Fields
26
+
27
+ | Name | Required |
28
+ |---|---|
29
+ | `transaction` | true |
30
+ | `amount` | false |
31
+ | `currency` | false |
32
+ | `customer_note` | false |
33
+ | `merchant_note` | false |
34
+
35
+ ## `fetch`
36
+
37
+ **HTTP:** `GET`
38
+ **Path:** `/refund/{id}`
39
+
40
+ ```ruby
41
+ paystack.refund.fetch(id)
42
+ ```
43
+
44
+ ### Path Parameters
45
+
46
+ | Name | Required |
47
+ |---|---|
48
+ | `id` | true |
49
+
50
+ ## `list`
51
+
52
+ **HTTP:** `GET`
53
+ **Path:** `/refund`
54
+
55
+ ```ruby
56
+ paystack.refund.list({ ... })
57
+ ```
58
+
59
+ ### Query Fields
60
+
61
+ | Name | Required |
62
+ |---|---|
63
+ | `perPage` | false |
64
+ | `page` | false |
65
+ | `from` | false |
66
+ | `to` | false |
67
+
68
+ ## `retry_`
69
+
70
+ **HTTP:** `POST`
71
+ **Path:** `/refund/retry_with_customer_details/{id}`
72
+
73
+ ```ruby
74
+ paystack.refund.retry_(id, { ... })
75
+ ```
76
+
77
+ ### Path Parameters
78
+
79
+ | Name | Required |
80
+ |---|---|
81
+ | `id` | true |
82
+
83
+ ### Body Fields
84
+
85
+ | Name | Required |
86
+ |---|---|
87
+ | `refund_account_details` | true |
@@ -0,0 +1,43 @@
1
+ # Settlement
2
+
3
+ A collection of endpoints for gaining insights into payouts
4
+
5
+ ## Methods
6
+
7
+ | Method | HTTP | Path | Summary |
8
+ |---|---|---|---|
9
+ | `settlements_fetch` | `GET` | `/settlement` | List Settlements |
10
+ | `settlements_transaction` | `GET` | `/settlement/{id}/transactions` | Fetch Settlement Transactions |
11
+
12
+ ---
13
+
14
+ ## `settlements_fetch`
15
+
16
+ **HTTP:** `GET`
17
+ **Path:** `/settlement`
18
+
19
+ ```ruby
20
+ paystack.settlement.settlements_fetch({ ... })
21
+ ```
22
+
23
+ ### Query Fields
24
+
25
+ | Name | Required |
26
+ |---|---|
27
+ | `perPage` | false |
28
+ | `page` | false |
29
+
30
+ ## `settlements_transaction`
31
+
32
+ **HTTP:** `GET`
33
+ **Path:** `/settlement/{id}/transactions`
34
+
35
+ ```ruby
36
+ paystack.settlement.settlements_transaction(id)
37
+ ```
38
+
39
+ ### Path Parameters
40
+
41
+ | Name | Required |
42
+ |---|---|
43
+ | `id` | true |
data/docs/split.md ADDED
@@ -0,0 +1,140 @@
1
+ # Split
2
+
3
+ A collection of endpoints for spliting a transaction and managing the splits
4
+
5
+ ## Methods
6
+
7
+ | Method | HTTP | Path | Summary |
8
+ |---|---|---|---|
9
+ | `add_subaccount` | `POST` | `/split/{id}/subaccount/add` | Add Subaccount to Split |
10
+ | `create` | `POST` | `/split` | Create Split |
11
+ | `fetch` | `GET` | `/split/{id}` | Fetch Split |
12
+ | `list` | `GET` | `/split` | List Splits |
13
+ | `remove_subaccount` | `POST` | `/split/{id}/subaccount/remove` | Remove Subaccount from split |
14
+ | `update` | `PUT` | `/split/{id}` | Update Split |
15
+
16
+ ---
17
+
18
+ ## `add_subaccount`
19
+
20
+ **HTTP:** `POST`
21
+ **Path:** `/split/{id}/subaccount/add`
22
+
23
+ ```ruby
24
+ paystack.split.add_subaccount(id, { ... })
25
+ ```
26
+
27
+ ### Path Parameters
28
+
29
+ | Name | Required |
30
+ |---|---|
31
+ | `id` | true |
32
+
33
+ ### Body Fields
34
+
35
+ | Name | Required |
36
+ |---|---|
37
+ | `subaccount` | false |
38
+ | `share` | false |
39
+
40
+ ## `create`
41
+
42
+ **HTTP:** `POST`
43
+ **Path:** `/split`
44
+
45
+ ```ruby
46
+ paystack.split.create({ ... })
47
+ ```
48
+
49
+ ### Body Fields
50
+
51
+ | Name | Required |
52
+ |---|---|
53
+ | `name` | true |
54
+ | `type` | true |
55
+ | `subaccounts` | true |
56
+ | `currency` | true |
57
+ | `bearer_type` | false |
58
+ | `bearer_subaccount` | false |
59
+
60
+ ## `fetch`
61
+
62
+ **HTTP:** `GET`
63
+ **Path:** `/split/{id}`
64
+
65
+ ```ruby
66
+ paystack.split.fetch(id)
67
+ ```
68
+
69
+ ### Path Parameters
70
+
71
+ | Name | Required |
72
+ |---|---|
73
+ | `id` | true |
74
+
75
+ ## `list`
76
+
77
+ **HTTP:** `GET`
78
+ **Path:** `/split`
79
+
80
+ ```ruby
81
+ paystack.split.list({ ... })
82
+ ```
83
+
84
+ ### Query Fields
85
+
86
+ | Name | Required |
87
+ |---|---|
88
+ | `subaccount_code` | false |
89
+ | `name` | false |
90
+ | `active` | false |
91
+ | `per_page` | false |
92
+ | `page` | false |
93
+ | `from` | false |
94
+ | `to` | false |
95
+
96
+ ## `remove_subaccount`
97
+
98
+ **HTTP:** `POST`
99
+ **Path:** `/split/{id}/subaccount/remove`
100
+
101
+ ```ruby
102
+ paystack.split.remove_subaccount(id, { ... })
103
+ ```
104
+
105
+ ### Path Parameters
106
+
107
+ | Name | Required |
108
+ |---|---|
109
+ | `id` | true |
110
+
111
+ ### Body Fields
112
+
113
+ | Name | Required |
114
+ |---|---|
115
+ | `subaccount` | false |
116
+ | `share` | false |
117
+
118
+ ## `update`
119
+
120
+ **HTTP:** `PUT`
121
+ **Path:** `/split/{id}`
122
+
123
+ ```ruby
124
+ paystack.split.update(id, { ... })
125
+ ```
126
+
127
+ ### Path Parameters
128
+
129
+ | Name | Required |
130
+ |---|---|
131
+ | `id` | true |
132
+
133
+ ### Body Fields
134
+
135
+ | Name | Required |
136
+ |---|---|
137
+ | `name` | false |
138
+ | `active` | false |
139
+ | `bearer_type` | false |
140
+ | `bearer_subaccount` | false |
@@ -0,0 +1,205 @@
1
+ # Storefront
2
+
3
+ A collection of endpoints for creating and managing storefronts
4
+
5
+ ## Methods
6
+
7
+ | Method | HTTP | Path | Summary |
8
+ |---|---|---|---|
9
+ | `add_products` | `POST` | `/storefront/{id}/product` | Add Products to Storefront |
10
+ | `create` | `POST` | `/storefront` | Create Storefront |
11
+ | `delete` | `DELETE` | `/storefront/{id}` | Delete Storefront |
12
+ | `duplicate` | `POST` | `/storefront/{id}/duplicate` | Duplicate Storefront |
13
+ | `fetch` | `GET` | `/storefront/{id}` | Fetch Storefront |
14
+ | `fetch_orders` | `GET` | `/storefront/{id}/order` | Fetch Storefront Orders |
15
+ | `list` | `GET` | `/storefront` | List Storefronts |
16
+ | `list_products` | `GET` | `/storefront/{id}/product` | List Storefront Products |
17
+ | `publish` | `POST` | `/storefront/{id}/publish` | Publish Storefront |
18
+ | `update` | `PUT` | `/storefront/{id}` | Update Storefront |
19
+ | `verify_slug` | `GET` | `/storefront/verify/{slug}` | Verify Storefront Slug |
20
+
21
+ ---
22
+
23
+ ## `add_products`
24
+
25
+ **HTTP:** `POST`
26
+ **Path:** `/storefront/{id}/product`
27
+
28
+ ```ruby
29
+ paystack.storefront.add_products(id, { ... })
30
+ ```
31
+
32
+ ### Path Parameters
33
+
34
+ | Name | Required |
35
+ |---|---|
36
+ | `id` | true |
37
+
38
+ ### Body Fields
39
+
40
+ | Name | Required |
41
+ |---|---|
42
+ | `products` | true |
43
+
44
+ ## `create`
45
+
46
+ **HTTP:** `POST`
47
+ **Path:** `/storefront`
48
+
49
+ ```ruby
50
+ paystack.storefront.create({ ... })
51
+ ```
52
+
53
+ ### Body Fields
54
+
55
+ | Name | Required |
56
+ |---|---|
57
+ | `name` | true |
58
+ | `slug` | true |
59
+ | `currency` | true |
60
+ | `description` | false |
61
+
62
+ ## `delete`
63
+
64
+ **HTTP:** `DELETE`
65
+ **Path:** `/storefront/{id}`
66
+
67
+ ```ruby
68
+ paystack.storefront.delete(id)
69
+ ```
70
+
71
+ ### Path Parameters
72
+
73
+ | Name | Required |
74
+ |---|---|
75
+ | `id` | true |
76
+
77
+ ## `duplicate`
78
+
79
+ **HTTP:** `POST`
80
+ **Path:** `/storefront/{id}/duplicate`
81
+
82
+ ```ruby
83
+ paystack.storefront.duplicate(id)
84
+ ```
85
+
86
+ ### Path Parameters
87
+
88
+ | Name | Required |
89
+ |---|---|
90
+ | `id` | true |
91
+
92
+ ## `fetch`
93
+
94
+ **HTTP:** `GET`
95
+ **Path:** `/storefront/{id}`
96
+
97
+ ```ruby
98
+ paystack.storefront.fetch(id)
99
+ ```
100
+
101
+ ### Path Parameters
102
+
103
+ | Name | Required |
104
+ |---|---|
105
+ | `id` | true |
106
+
107
+ ## `fetch_orders`
108
+
109
+ **HTTP:** `GET`
110
+ **Path:** `/storefront/{id}/order`
111
+
112
+ ```ruby
113
+ paystack.storefront.fetch_orders(id)
114
+ ```
115
+
116
+ ### Path Parameters
117
+
118
+ | Name | Required |
119
+ |---|---|
120
+ | `id` | true |
121
+
122
+ ## `list`
123
+
124
+ **HTTP:** `GET`
125
+ **Path:** `/storefront`
126
+
127
+ ```ruby
128
+ paystack.storefront.list({ ... })
129
+ ```
130
+
131
+ ### Query Fields
132
+
133
+ | Name | Required |
134
+ |---|---|
135
+ | `perPage` | false |
136
+ | `page` | false |
137
+ | `status` | false |
138
+
139
+ ## `list_products`
140
+
141
+ **HTTP:** `GET`
142
+ **Path:** `/storefront/{id}/product`
143
+
144
+ ```ruby
145
+ paystack.storefront.list_products(id)
146
+ ```
147
+
148
+ ### Path Parameters
149
+
150
+ | Name | Required |
151
+ |---|---|
152
+ | `id` | true |
153
+
154
+ ## `publish`
155
+
156
+ **HTTP:** `POST`
157
+ **Path:** `/storefront/{id}/publish`
158
+
159
+ ```ruby
160
+ paystack.storefront.publish(id)
161
+ ```
162
+
163
+ ### Path Parameters
164
+
165
+ | Name | Required |
166
+ |---|---|
167
+ | `id` | true |
168
+
169
+ ## `update`
170
+
171
+ **HTTP:** `PUT`
172
+ **Path:** `/storefront/{id}`
173
+
174
+ ```ruby
175
+ paystack.storefront.update(id, { ... })
176
+ ```
177
+
178
+ ### Path Parameters
179
+
180
+ | Name | Required |
181
+ |---|---|
182
+ | `id` | true |
183
+
184
+ ### Body Fields
185
+
186
+ | Name | Required |
187
+ |---|---|
188
+ | `name` | false |
189
+ | `slug` | false |
190
+ | `description` | false |
191
+
192
+ ## `verify_slug`
193
+
194
+ **HTTP:** `GET`
195
+ **Path:** `/storefront/verify/{slug}`
196
+
197
+ ```ruby
198
+ paystack.storefront.verify_slug(slug)
199
+ ```
200
+
201
+ ### Path Parameters
202
+
203
+ | Name | Required |
204
+ |---|---|
205
+ | `slug` | true |