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
@@ -0,0 +1,99 @@
1
+ # Subaccount
2
+
3
+ A collection of endpoints for creating and managing accounts for sharing a transaction with
4
+
5
+ ## Methods
6
+
7
+ | Method | HTTP | Path | Summary |
8
+ |---|---|---|---|
9
+ | `create` | `POST` | `/subaccount` | Create Subaccount |
10
+ | `fetch` | `GET` | `/subaccount/{code}` | Fetch Subaccount |
11
+ | `list` | `GET` | `/subaccount` | List Subaccounts |
12
+ | `update` | `PUT` | `/subaccount/{code}` | Update Subaccount |
13
+
14
+ ---
15
+
16
+ ## `create`
17
+
18
+ **HTTP:** `POST`
19
+ **Path:** `/subaccount`
20
+
21
+ ```ruby
22
+ paystack.subaccount.create({ ... })
23
+ ```
24
+
25
+ ### Body Fields
26
+
27
+ | Name | Required |
28
+ |---|---|
29
+ | `business_name` | true |
30
+ | `settlement_bank` | true |
31
+ | `account_number` | true |
32
+ | `percentage_charge` | true |
33
+ | `description` | false |
34
+ | `primary_contact_email` | false |
35
+ | `primary_contact_name` | false |
36
+ | `primary_contact_phone` | false |
37
+ | `metadata` | false |
38
+
39
+ ## `fetch`
40
+
41
+ **HTTP:** `GET`
42
+ **Path:** `/subaccount/{code}`
43
+
44
+ ```ruby
45
+ paystack.subaccount.fetch(code)
46
+ ```
47
+
48
+ ### Path Parameters
49
+
50
+ | Name | Required |
51
+ |---|---|
52
+ | `code` | true |
53
+
54
+ ## `list`
55
+
56
+ **HTTP:** `GET`
57
+ **Path:** `/subaccount`
58
+
59
+ ```ruby
60
+ paystack.subaccount.list({ ... })
61
+ ```
62
+
63
+ ### Query Fields
64
+
65
+ | Name | Required |
66
+ |---|---|
67
+ | `perPage` | false |
68
+ | `page` | false |
69
+ | `active` | false |
70
+
71
+ ## `update`
72
+
73
+ **HTTP:** `PUT`
74
+ **Path:** `/subaccount/{code}`
75
+
76
+ ```ruby
77
+ paystack.subaccount.update(code, { ... })
78
+ ```
79
+
80
+ ### Path Parameters
81
+
82
+ | Name | Required |
83
+ |---|---|
84
+ | `code` | true |
85
+
86
+ ### Body Fields
87
+
88
+ | Name | Required |
89
+ |---|---|
90
+ | `business_name` | false |
91
+ | `settlement_bank` | false |
92
+ | `account_number` | false |
93
+ | `active` | false |
94
+ | `percentage_charge` | false |
95
+ | `description` | false |
96
+ | `primary_contact_email` | false |
97
+ | `primary_contact_name` | false |
98
+ | `primary_contact_phone` | false |
99
+ | `metadata` | false |
@@ -0,0 +1,132 @@
1
+ # Subscription
2
+
3
+ A collection of endpoints for creating and managing recurring payments
4
+
5
+ ## Methods
6
+
7
+ | Method | HTTP | Path | Summary |
8
+ |---|---|---|---|
9
+ | `create` | `POST` | `/subscription` | Create Subscription |
10
+ | `disable` | `POST` | `/subscription/disable` | Disable Subscription |
11
+ | `enable` | `POST` | `/subscription/enable` | Enable Subscription |
12
+ | `fetch` | `GET` | `/subscription/{code}` | Fetch Subscription |
13
+ | `list` | `GET` | `/subscription` | List Subscriptions |
14
+ | `manage_email` | `POST` | `/subscription/{code}/manage/email` | Send Update Subscription Link |
15
+ | `manage_link` | `GET` | `/subscription/{code}/manage/link` | Generate Update Subscription Link |
16
+
17
+ ---
18
+
19
+ ## `create`
20
+
21
+ **HTTP:** `POST`
22
+ **Path:** `/subscription`
23
+
24
+ ```ruby
25
+ paystack.subscription.create({ ... })
26
+ ```
27
+
28
+ ### Body Fields
29
+
30
+ | Name | Required |
31
+ |---|---|
32
+ | `customer` | true |
33
+ | `plan` | true |
34
+ | `authorization` | false |
35
+ | `start_date` | false |
36
+
37
+ ## `disable`
38
+
39
+ **HTTP:** `POST`
40
+ **Path:** `/subscription/disable`
41
+
42
+ ```ruby
43
+ paystack.subscription.disable({ ... })
44
+ ```
45
+
46
+ ### Body Fields
47
+
48
+ | Name | Required |
49
+ |---|---|
50
+ | `code` | true |
51
+ | `token` | true |
52
+
53
+ ## `enable`
54
+
55
+ **HTTP:** `POST`
56
+ **Path:** `/subscription/enable`
57
+
58
+ ```ruby
59
+ paystack.subscription.enable({ ... })
60
+ ```
61
+
62
+ ### Body Fields
63
+
64
+ | Name | Required |
65
+ |---|---|
66
+ | `code` | true |
67
+ | `token` | true |
68
+
69
+ ## `fetch`
70
+
71
+ **HTTP:** `GET`
72
+ **Path:** `/subscription/{code}`
73
+
74
+ ```ruby
75
+ paystack.subscription.fetch(code)
76
+ ```
77
+
78
+ ### Path Parameters
79
+
80
+ | Name | Required |
81
+ |---|---|
82
+ | `code` | true |
83
+
84
+ ## `list`
85
+
86
+ **HTTP:** `GET`
87
+ **Path:** `/subscription`
88
+
89
+ ```ruby
90
+ paystack.subscription.list({ ... })
91
+ ```
92
+
93
+ ### Query Fields
94
+
95
+ | Name | Required |
96
+ |---|---|
97
+ | `perPage` | false |
98
+ | `page` | false |
99
+ | `plan` | false |
100
+ | `customer` | false |
101
+ | `from` | false |
102
+ | `to` | false |
103
+
104
+ ## `manage_email`
105
+
106
+ **HTTP:** `POST`
107
+ **Path:** `/subscription/{code}/manage/email`
108
+
109
+ ```ruby
110
+ paystack.subscription.manage_email(code)
111
+ ```
112
+
113
+ ### Path Parameters
114
+
115
+ | Name | Required |
116
+ |---|---|
117
+ | `code` | true |
118
+
119
+ ## `manage_link`
120
+
121
+ **HTTP:** `GET`
122
+ **Path:** `/subscription/{code}/manage/link`
123
+
124
+ ```ruby
125
+ paystack.subscription.manage_link(code)
126
+ ```
127
+
128
+ ### Path Parameters
129
+
130
+ | Name | Required |
131
+ |---|---|
132
+ | `code` | true |
data/docs/terminal.md ADDED
@@ -0,0 +1,156 @@
1
+ # Terminal
2
+
3
+ A collection of endpoints for building delightful in-person payment experiences
4
+
5
+ ## Methods
6
+
7
+ | Method | HTTP | Path | Summary |
8
+ |---|---|---|---|
9
+ | `commission` | `POST` | `/terminal/commission_device` | Commission Terminal |
10
+ | `decommission` | `POST` | `/terminal/decommission_device` | Decommission Terminal |
11
+ | `fetch` | `GET` | `/terminal/{terminal_id}` | Fetch Terminal |
12
+ | `fetch_event_status` | `GET` | `/terminal/{terminal_id}/event/{event_id}` | Fetch Event Status |
13
+ | `fetch_terminal_status` | `GET` | `/terminal/{terminal_id}/presence` | Fetch Terminal Status |
14
+ | `list` | `GET` | `/terminal` | List Terminals |
15
+ | `send_event` | `POST` | `/terminal/{id}/event` | Send Event |
16
+ | `update` | `PUT` | `/terminal/{terminal_id}` | Update Terminal |
17
+
18
+ ---
19
+
20
+ ## `commission`
21
+
22
+ **HTTP:** `POST`
23
+ **Path:** `/terminal/commission_device`
24
+
25
+ ```ruby
26
+ paystack.terminal.commission({ ... })
27
+ ```
28
+
29
+ ### Body Fields
30
+
31
+ | Name | Required |
32
+ |---|---|
33
+ | `serial_number` | true |
34
+
35
+ ## `decommission`
36
+
37
+ **HTTP:** `POST`
38
+ **Path:** `/terminal/decommission_device`
39
+
40
+ ```ruby
41
+ paystack.terminal.decommission({ ... })
42
+ ```
43
+
44
+ ### Body Fields
45
+
46
+ | Name | Required |
47
+ |---|---|
48
+ | `serial_number` | true |
49
+
50
+ ## `fetch`
51
+
52
+ **HTTP:** `GET`
53
+ **Path:** `/terminal/{terminal_id}`
54
+
55
+ ```ruby
56
+ paystack.terminal.fetch(terminal_id)
57
+ ```
58
+
59
+ ### Path Parameters
60
+
61
+ | Name | Required |
62
+ |---|---|
63
+ | `terminal_id` | true |
64
+
65
+ ## `fetch_event_status`
66
+
67
+ **HTTP:** `GET`
68
+ **Path:** `/terminal/{terminal_id}/event/{event_id}`
69
+
70
+ ```ruby
71
+ paystack.terminal.fetch_event_status(terminal_id, event_id)
72
+ ```
73
+
74
+ ### Path Parameters
75
+
76
+ | Name | Required |
77
+ |---|---|
78
+ | `terminal_id` | true |
79
+ | `event_id` | true |
80
+
81
+ ## `fetch_terminal_status`
82
+
83
+ **HTTP:** `GET`
84
+ **Path:** `/terminal/{terminal_id}/presence`
85
+
86
+ ```ruby
87
+ paystack.terminal.fetch_terminal_status(terminal_id)
88
+ ```
89
+
90
+ ### Path Parameters
91
+
92
+ | Name | Required |
93
+ |---|---|
94
+ | `terminal_id` | true |
95
+
96
+ ## `list`
97
+
98
+ **HTTP:** `GET`
99
+ **Path:** `/terminal`
100
+
101
+ ```ruby
102
+ paystack.terminal.list({ ... })
103
+ ```
104
+
105
+ ### Query Fields
106
+
107
+ | Name | Required |
108
+ |---|---|
109
+ | `next` | false |
110
+ | `previous` | false |
111
+ | `per_page` | false |
112
+
113
+ ## `send_event`
114
+
115
+ **HTTP:** `POST`
116
+ **Path:** `/terminal/{id}/event`
117
+
118
+ ```ruby
119
+ paystack.terminal.send_event(id, { ... })
120
+ ```
121
+
122
+ ### Path Parameters
123
+
124
+ | Name | Required |
125
+ |---|---|
126
+ | `id` | true |
127
+
128
+ ### Body Fields
129
+
130
+ | Name | Required |
131
+ |---|---|
132
+ | `type` | false |
133
+ | `action` | false |
134
+ | `data` | false |
135
+
136
+ ## `update`
137
+
138
+ **HTTP:** `PUT`
139
+ **Path:** `/terminal/{terminal_id}`
140
+
141
+ ```ruby
142
+ paystack.terminal.update(terminal_id, { ... })
143
+ ```
144
+
145
+ ### Path Parameters
146
+
147
+ | Name | Required |
148
+ |---|---|
149
+ | `terminal_id` | true |
150
+
151
+ ### Body Fields
152
+
153
+ | Name | Required |
154
+ |---|---|
155
+ | `name` | false |
156
+ | `address` | false |
@@ -0,0 +1,206 @@
1
+ # Transaction
2
+
3
+ A collection of endpoints for managing payments
4
+
5
+ ## Methods
6
+
7
+ | Method | HTTP | Path | Summary |
8
+ |---|---|---|---|
9
+ | `charge_authorization` | `POST` | `/transaction/charge_authorization` | Charge Authorization |
10
+ | `export` | `GET` | `/transaction/export` | Export Transactions |
11
+ | `fetch` | `GET` | `/transaction/{id}` | Fetch Transaction |
12
+ | `initialize` | `POST` | `/transaction/initialize` | Initialize Transaction |
13
+ | `list` | `GET` | `/transaction` | List Transactions |
14
+ | `partial_debit` | `POST` | `/transaction/partial_debit` | Partial Debit |
15
+ | `timeline` | `GET` | `/transaction/timeline/{id}` | Fetch Transaction Timeline |
16
+ | `totals` | `GET` | `/transaction/totals` | Transaction Totals |
17
+ | `verify` | `GET` | `/transaction/verify/{reference}` | Verify Transaction |
18
+
19
+ ---
20
+
21
+ ## `charge_authorization`
22
+
23
+ **HTTP:** `POST`
24
+ **Path:** `/transaction/charge_authorization`
25
+
26
+ ```ruby
27
+ paystack.transaction.charge_authorization({ ... })
28
+ ```
29
+
30
+ ### Body Fields
31
+
32
+ | Name | Required |
33
+ |---|---|
34
+ | `email` | true |
35
+ | `amount` | true |
36
+ | `authorization_code` | true |
37
+ | `reference` | false |
38
+ | `currency` | false |
39
+ | `split_code` | false |
40
+ | `split` | false |
41
+ | `subaccount` | false |
42
+ | `transaction_charge` | false |
43
+ | `bearer` | false |
44
+ | `metadata` | false |
45
+ | `queue` | false |
46
+
47
+ ## `export`
48
+
49
+ **HTTP:** `GET`
50
+ **Path:** `/transaction/export`
51
+
52
+ ```ruby
53
+ paystack.transaction.export({ ... })
54
+ ```
55
+
56
+ ### Query Fields
57
+
58
+ | Name | Required |
59
+ |---|---|
60
+ | `from` | false |
61
+ | `to` | false |
62
+ | `status` | false |
63
+ | `customer` | false |
64
+ | `subaccount_code` | false |
65
+ | `settlement` | false |
66
+
67
+ ## `fetch`
68
+
69
+ **HTTP:** `GET`
70
+ **Path:** `/transaction/{id}`
71
+
72
+ ```ruby
73
+ paystack.transaction.fetch(id)
74
+ ```
75
+
76
+ ### Path Parameters
77
+
78
+ | Name | Required |
79
+ |---|---|
80
+ | `id` | true |
81
+
82
+ ## `initialize`
83
+
84
+ **HTTP:** `POST`
85
+ **Path:** `/transaction/initialize`
86
+
87
+ ```ruby
88
+ paystack.transaction.initialize({ ... })
89
+ ```
90
+
91
+ ### Body Fields
92
+
93
+ | Name | Required |
94
+ |---|---|
95
+ | `email` | true |
96
+ | `amount` | true |
97
+ | `currency` | false |
98
+ | `reference` | false |
99
+ | `channels` | false |
100
+ | `callback_url` | false |
101
+ | `plan` | false |
102
+ | `invoice_limit` | false |
103
+ | `split_code` | false |
104
+ | `split` | false |
105
+ | `subaccount` | false |
106
+ | `transaction_charge` | false |
107
+ | `bearer` | false |
108
+ | `label` | false |
109
+ | `metadata` | false |
110
+
111
+ ## `list`
112
+
113
+ **HTTP:** `GET`
114
+ **Path:** `/transaction`
115
+
116
+ ```ruby
117
+ paystack.transaction.list({ ... })
118
+ ```
119
+
120
+ ### Query Fields
121
+
122
+ | Name | Required |
123
+ |---|---|
124
+ | `use_cursor` | false |
125
+ | `next` | false |
126
+ | `previous` | false |
127
+ | `per_page` | false |
128
+ | `page` | false |
129
+ | `from` | false |
130
+ | `to` | false |
131
+ | `status` | false |
132
+ | `source` | false |
133
+ | `terminal_id` | false |
134
+ | `virtual_account_number` | false |
135
+ | `customer_code` | false |
136
+ | `amount` | false |
137
+ | `settlement` | false |
138
+ | `channel` | false |
139
+ | `subaccount_code` | false |
140
+ | `split_code` | false |
141
+
142
+ ## `partial_debit`
143
+
144
+ **HTTP:** `POST`
145
+ **Path:** `/transaction/partial_debit`
146
+
147
+ ```ruby
148
+ paystack.transaction.partial_debit({ ... })
149
+ ```
150
+
151
+ ### Body Fields
152
+
153
+ | Name | Required |
154
+ |---|---|
155
+ | `email` | true |
156
+ | `amount` | true |
157
+ | `authorization_code` | true |
158
+ | `currency` | true |
159
+ | `at_least` | false |
160
+ | `reference` | false |
161
+
162
+ ## `timeline`
163
+
164
+ **HTTP:** `GET`
165
+ **Path:** `/transaction/timeline/{id}`
166
+
167
+ ```ruby
168
+ paystack.transaction.timeline(id)
169
+ ```
170
+
171
+ ### Path Parameters
172
+
173
+ | Name | Required |
174
+ |---|---|
175
+ | `id` | true |
176
+
177
+ ## `totals`
178
+
179
+ **HTTP:** `GET`
180
+ **Path:** `/transaction/totals`
181
+
182
+ ```ruby
183
+ paystack.transaction.totals({ ... })
184
+ ```
185
+
186
+ ### Query Fields
187
+
188
+ | Name | Required |
189
+ |---|---|
190
+ | `from` | false |
191
+ | `to` | false |
192
+
193
+ ## `verify`
194
+
195
+ **HTTP:** `GET`
196
+ **Path:** `/transaction/verify/{reference}`
197
+
198
+ ```ruby
199
+ paystack.transaction.verify(reference)
200
+ ```
201
+
202
+ ### Path Parameters
203
+
204
+ | Name | Required |
205
+ |---|---|
206
+ | `reference` | true |