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/dispute.md ADDED
@@ -0,0 +1,175 @@
1
+ # Dispute
2
+
3
+ A collection of endpoints for managing transactions complaint made by customers
4
+
5
+ ## Methods
6
+
7
+ | Method | HTTP | Path | Summary |
8
+ |---|---|---|---|
9
+ | `download` | `GET` | `/dispute/export` | Export Disputes |
10
+ | `evidence` | `POST` | `/dispute/{id}/evidence` | Add Evidence |
11
+ | `fetch` | `GET` | `/dispute/{id}` | Fetch Dispute |
12
+ | `list` | `GET` | `/dispute` | List Disputes |
13
+ | `resolve` | `PUT` | `/dispute/{id}/resolve` | Resolve Dispute |
14
+ | `transaction` | `GET` | `/dispute/transaction/{id}` | List Transaction Disputes |
15
+ | `update` | `PUT` | `/dispute/{id}` | Update Dispute |
16
+ | `upload_url` | `GET` | `/dispute/{id}/upload_url` | Fetch Upload URL |
17
+
18
+ ---
19
+
20
+ ## `download`
21
+
22
+ **HTTP:** `GET`
23
+ **Path:** `/dispute/export`
24
+
25
+ ```ruby
26
+ paystack.dispute.download({ ... })
27
+ ```
28
+
29
+ ### Query Fields
30
+
31
+ | Name | Required |
32
+ |---|---|
33
+ | `perPage` | false |
34
+ | `page` | false |
35
+ | `status` | false |
36
+ | `from` | false |
37
+ | `to` | false |
38
+
39
+ ## `evidence`
40
+
41
+ **HTTP:** `POST`
42
+ **Path:** `/dispute/{id}/evidence`
43
+
44
+ ```ruby
45
+ paystack.dispute.evidence(id, { ... })
46
+ ```
47
+
48
+ ### Path Parameters
49
+
50
+ | Name | Required |
51
+ |---|---|
52
+ | `id` | true |
53
+
54
+ ### Body Fields
55
+
56
+ | Name | Required |
57
+ |---|---|
58
+ | `customer_email` | true |
59
+ | `customer_name` | true |
60
+ | `customer_phone` | true |
61
+ | `service_details` | true |
62
+ | `delivery_address` | false |
63
+ | `delivery_date` | false |
64
+
65
+ ## `fetch`
66
+
67
+ **HTTP:** `GET`
68
+ **Path:** `/dispute/{id}`
69
+
70
+ ```ruby
71
+ paystack.dispute.fetch(id)
72
+ ```
73
+
74
+ ### Path Parameters
75
+
76
+ | Name | Required |
77
+ |---|---|
78
+ | `id` | true |
79
+
80
+ ## `list`
81
+
82
+ **HTTP:** `GET`
83
+ **Path:** `/dispute`
84
+
85
+ ```ruby
86
+ paystack.dispute.list({ ... })
87
+ ```
88
+
89
+ ### Query Fields
90
+
91
+ | Name | Required |
92
+ |---|---|
93
+ | `perPage` | false |
94
+ | `page` | false |
95
+ | `status` | false |
96
+ | `transaction` | false |
97
+ | `from` | false |
98
+ | `to` | false |
99
+
100
+ ## `resolve`
101
+
102
+ **HTTP:** `PUT`
103
+ **Path:** `/dispute/{id}/resolve`
104
+
105
+ ```ruby
106
+ paystack.dispute.resolve(id, { ... })
107
+ ```
108
+
109
+ ### Path Parameters
110
+
111
+ | Name | Required |
112
+ |---|---|
113
+ | `id` | true |
114
+
115
+ ### Body Fields
116
+
117
+ | Name | Required |
118
+ |---|---|
119
+ | `resolution` | true |
120
+ | `message` | true |
121
+ | `refund_amount` | true |
122
+ | `uploaded_filename` | true |
123
+ | `evidence` | false |
124
+
125
+ ## `transaction`
126
+
127
+ **HTTP:** `GET`
128
+ **Path:** `/dispute/transaction/{id}`
129
+
130
+ ```ruby
131
+ paystack.dispute.transaction(id)
132
+ ```
133
+
134
+ ### Path Parameters
135
+
136
+ | Name | Required |
137
+ |---|---|
138
+ | `id` | true |
139
+
140
+ ## `update`
141
+
142
+ **HTTP:** `PUT`
143
+ **Path:** `/dispute/{id}`
144
+
145
+ ```ruby
146
+ paystack.dispute.update(id, { ... })
147
+ ```
148
+
149
+ ### Path Parameters
150
+
151
+ | Name | Required |
152
+ |---|---|
153
+ | `id` | true |
154
+
155
+ ### Body Fields
156
+
157
+ | Name | Required |
158
+ |---|---|
159
+ | `refund_amount` | true |
160
+ | `uploaded_filename` | false |
161
+
162
+ ## `upload_url`
163
+
164
+ **HTTP:** `GET`
165
+ **Path:** `/dispute/{id}/upload_url`
166
+
167
+ ```ruby
168
+ paystack.dispute.upload_url(id)
169
+ ```
170
+
171
+ ### Path Parameters
172
+
173
+ | Name | Required |
174
+ |---|---|
175
+ | `id` | true |
@@ -0,0 +1,36 @@
1
+ # Integration
2
+
3
+ A collection of endpoints for managing some settings on an integration
4
+
5
+ ## Methods
6
+
7
+ | Method | HTTP | Path | Summary |
8
+ |---|---|---|---|
9
+ | `fetch_payment_session_timeout` | `GET` | `/integration/payment_session_timeout` | Fetch Payment Session Timeout |
10
+ | `update_payment_session_timeout` | `PUT` | `/integration/payment_session_timeout` | Update Payment Session Timeout |
11
+
12
+ ---
13
+
14
+ ## `fetch_payment_session_timeout`
15
+
16
+ **HTTP:** `GET`
17
+ **Path:** `/integration/payment_session_timeout`
18
+
19
+ ```ruby
20
+ paystack.integration.fetch_payment_session_timeout
21
+ ```
22
+
23
+ ## `update_payment_session_timeout`
24
+
25
+ **HTTP:** `PUT`
26
+ **Path:** `/integration/payment_session_timeout`
27
+
28
+ ```ruby
29
+ paystack.integration.update_payment_session_timeout({ ... })
30
+ ```
31
+
32
+ ### Body Fields
33
+
34
+ | Name | Required |
35
+ |---|---|
36
+ | `timeout` | true |
@@ -0,0 +1,52 @@
1
+ # Miscellaneous
2
+
3
+ A collection of endpoints that provides utility functions
4
+
5
+ ## Methods
6
+
7
+ | Method | HTTP | Path | Summary |
8
+ |---|---|---|---|
9
+ | `avs` | `GET` | `/address_verification/states` | List States (AVS) |
10
+ | `list_countries` | `GET` | `/country` | List Countries |
11
+ | `resolve_card_bin` | `GET` | `/decision/bin/{bin}` | Resolve Card BIN |
12
+
13
+ ---
14
+
15
+ ## `avs`
16
+
17
+ **HTTP:** `GET`
18
+ **Path:** `/address_verification/states`
19
+
20
+ ```ruby
21
+ paystack.miscellaneous.avs({ ... })
22
+ ```
23
+
24
+ ### Query Fields
25
+
26
+ | Name | Required |
27
+ |---|---|
28
+ | `country` | false |
29
+
30
+ ## `list_countries`
31
+
32
+ **HTTP:** `GET`
33
+ **Path:** `/country`
34
+
35
+ ```ruby
36
+ paystack.miscellaneous.list_countries
37
+ ```
38
+
39
+ ## `resolve_card_bin`
40
+
41
+ **HTTP:** `GET`
42
+ **Path:** `/decision/bin/{bin}`
43
+
44
+ ```ruby
45
+ paystack.miscellaneous.resolve_card_bin(bin)
46
+ ```
47
+
48
+ ### Path Parameters
49
+
50
+ | Name | Required |
51
+ |---|---|
52
+ | `bin` | true |
data/docs/order.md ADDED
@@ -0,0 +1,101 @@
1
+ # Order
2
+
3
+ A collection of endpoints for creating and managing orders
4
+
5
+ ## Methods
6
+
7
+ | Method | HTTP | Path | Summary |
8
+ |---|---|---|---|
9
+ | `create` | `POST` | `/order` | Create Order |
10
+ | `fetch` | `GET` | `/order/{id}` | Fetch Order |
11
+ | `list` | `GET` | `/order` | List Orders |
12
+ | `product` | `GET` | `/order/product/{id}` | Fetch Product Orders |
13
+ | `validate` | `GET` | `/order/{code}/validate` | Validate Order |
14
+
15
+ ---
16
+
17
+ ## `create`
18
+
19
+ **HTTP:** `POST`
20
+ **Path:** `/order`
21
+
22
+ ```ruby
23
+ paystack.order.create({ ... })
24
+ ```
25
+
26
+ ### Body Fields
27
+
28
+ | Name | Required |
29
+ |---|---|
30
+ | `email` | true |
31
+ | `first_name` | true |
32
+ | `last_name` | true |
33
+ | `phone` | true |
34
+ | `currency` | true |
35
+ | `items` | true |
36
+ | `shipping` | true |
37
+ | `is_gift` | false |
38
+ | `pay_for_me` | false |
39
+
40
+ ## `fetch`
41
+
42
+ **HTTP:** `GET`
43
+ **Path:** `/order/{id}`
44
+
45
+ ```ruby
46
+ paystack.order.fetch(id)
47
+ ```
48
+
49
+ ### Path Parameters
50
+
51
+ | Name | Required |
52
+ |---|---|
53
+ | `id` | true |
54
+
55
+ ## `list`
56
+
57
+ **HTTP:** `GET`
58
+ **Path:** `/order`
59
+
60
+ ```ruby
61
+ paystack.order.list({ ... })
62
+ ```
63
+
64
+ ### Query Fields
65
+
66
+ | Name | Required |
67
+ |---|---|
68
+ | `perPage` | false |
69
+ | `page` | false |
70
+ | `from` | false |
71
+ | `to` | false |
72
+
73
+ ## `product`
74
+
75
+ **HTTP:** `GET`
76
+ **Path:** `/order/product/{id}`
77
+
78
+ ```ruby
79
+ paystack.order.product(id)
80
+ ```
81
+
82
+ ### Path Parameters
83
+
84
+ | Name | Required |
85
+ |---|---|
86
+ | `id` | true |
87
+
88
+ ## `validate`
89
+
90
+ **HTTP:** `GET`
91
+ **Path:** `/order/{code}/validate`
92
+
93
+ ```ruby
94
+ paystack.order.validate(code)
95
+ ```
96
+
97
+ ### Path Parameters
98
+
99
+ | Name | Required |
100
+ |---|---|
101
+ | `code` | true |
data/docs/page.md ADDED
@@ -0,0 +1,138 @@
1
+ # Page
2
+
3
+ A collection of endpoints for creating and managing links for the collection of payment for products
4
+
5
+ ## Methods
6
+
7
+ | Method | HTTP | Path | Summary |
8
+ |---|---|---|---|
9
+ | `add_products` | `POST` | `/page/{id}/product` | Add Products |
10
+ | `check_slug_availability` | `GET` | `/page/check_slug_availability/{slug}` | Check Slug Availability |
11
+ | `create` | `POST` | `/page` | Create Page |
12
+ | `fetch` | `GET` | `/page/{id}` | Fetch Page |
13
+ | `list` | `GET` | `/page` | List Pages |
14
+ | `update` | `PUT` | `/page/{id}` | Update Page |
15
+
16
+ ---
17
+
18
+ ## `add_products`
19
+
20
+ **HTTP:** `POST`
21
+ **Path:** `/page/{id}/product`
22
+
23
+ ```ruby
24
+ paystack.page.add_products(id, { ... })
25
+ ```
26
+
27
+ ### Path Parameters
28
+
29
+ | Name | Required |
30
+ |---|---|
31
+ | `id` | true |
32
+
33
+ ### Body Fields
34
+
35
+ | Name | Required |
36
+ |---|---|
37
+ | `products` | true |
38
+
39
+ ## `check_slug_availability`
40
+
41
+ **HTTP:** `GET`
42
+ **Path:** `/page/check_slug_availability/{slug}`
43
+
44
+ ```ruby
45
+ paystack.page.check_slug_availability(slug)
46
+ ```
47
+
48
+ ### Path Parameters
49
+
50
+ | Name | Required |
51
+ |---|---|
52
+ | `slug` | true |
53
+
54
+ ## `create`
55
+
56
+ **HTTP:** `POST`
57
+ **Path:** `/page`
58
+
59
+ ```ruby
60
+ paystack.page.create({ ... })
61
+ ```
62
+
63
+ ### Body Fields
64
+
65
+ | Name | Required |
66
+ |---|---|
67
+ | `name` | true |
68
+ | `description` | false |
69
+ | `amount` | false |
70
+ | `currency` | false |
71
+ | `slug` | false |
72
+ | `type` | false |
73
+ | `plan` | false |
74
+ | `fixed_amount` | false |
75
+ | `split_code` | false |
76
+ | `metadata` | false |
77
+ | `redirect_url` | false |
78
+ | `success_message` | false |
79
+ | `notification_email` | false |
80
+ | `collect_phone` | false |
81
+ | `custom_fields` | false |
82
+
83
+ ## `fetch`
84
+
85
+ **HTTP:** `GET`
86
+ **Path:** `/page/{id}`
87
+
88
+ ```ruby
89
+ paystack.page.fetch(id)
90
+ ```
91
+
92
+ ### Path Parameters
93
+
94
+ | Name | Required |
95
+ |---|---|
96
+ | `id` | true |
97
+
98
+ ## `list`
99
+
100
+ **HTTP:** `GET`
101
+ **Path:** `/page`
102
+
103
+ ```ruby
104
+ paystack.page.list({ ... })
105
+ ```
106
+
107
+ ### Query Fields
108
+
109
+ | Name | Required |
110
+ |---|---|
111
+ | `perPage` | false |
112
+ | `page` | false |
113
+ | `from` | false |
114
+ | `to` | false |
115
+
116
+ ## `update`
117
+
118
+ **HTTP:** `PUT`
119
+ **Path:** `/page/{id}`
120
+
121
+ ```ruby
122
+ paystack.page.update(id, { ... })
123
+ ```
124
+
125
+ ### Path Parameters
126
+
127
+ | Name | Required |
128
+ |---|---|
129
+ | `id` | true |
130
+
131
+ ### Body Fields
132
+
133
+ | Name | Required |
134
+ |---|---|
135
+ | `name` | false |
136
+ | `description` | false |
137
+ | `amount` | false |
138
+ | `active` | false |
@@ -0,0 +1,182 @@
1
+ # PaymentRequest
2
+
3
+ A collection of endpoints for managing invoices for the payment of goods and services
4
+
5
+ ## Methods
6
+
7
+ | Method | HTTP | Path | Summary |
8
+ |---|---|---|---|
9
+ | `archive` | `POST` | `/paymentrequest/archive/{id}` | Archive Payment Request |
10
+ | `create` | `POST` | `/paymentrequest` | Create Payment Request |
11
+ | `fetch` | `GET` | `/paymentrequest/{id}` | Fetch Payment Request |
12
+ | `finalize` | `POST` | `/paymentrequest/finalize/{id}` | Finalize Payment Request |
13
+ | `list` | `GET` | `/paymentrequest` | List Payment Request |
14
+ | `notify` | `POST` | `/paymentrequest/notify/{id}` | Send Notification |
15
+ | `totals` | `GET` | `/paymentrequest/totals` | Payment Request Total |
16
+ | `update` | `PUT` | `/paymentrequest/{id}` | Update Payment Request |
17
+ | `verify` | `GET` | `/paymentrequest/verify/{id}` | Verify Payment Request |
18
+
19
+ ---
20
+
21
+ ## `archive`
22
+
23
+ **HTTP:** `POST`
24
+ **Path:** `/paymentrequest/archive/{id}`
25
+
26
+ ```ruby
27
+ paystack.payment_request.archive(id)
28
+ ```
29
+
30
+ ### Path Parameters
31
+
32
+ | Name | Required |
33
+ |---|---|
34
+ | `id` | true |
35
+
36
+ ## `create`
37
+
38
+ **HTTP:** `POST`
39
+ **Path:** `/paymentrequest`
40
+
41
+ ```ruby
42
+ paystack.payment_request.create({ ... })
43
+ ```
44
+
45
+ ### Body Fields
46
+
47
+ | Name | Required |
48
+ |---|---|
49
+ | `customer` | true |
50
+ | `amount` | true |
51
+ | `currency` | false |
52
+ | `due_date` | false |
53
+ | `description` | false |
54
+ | `line_items` | false |
55
+ | `tax` | false |
56
+ | `send_notification` | false |
57
+ | `draft` | false |
58
+ | `has_invoice` | false |
59
+ | `invoice_number` | false |
60
+ | `split_code` | false |
61
+
62
+ ## `fetch`
63
+
64
+ **HTTP:** `GET`
65
+ **Path:** `/paymentrequest/{id}`
66
+
67
+ ```ruby
68
+ paystack.payment_request.fetch(id)
69
+ ```
70
+
71
+ ### Path Parameters
72
+
73
+ | Name | Required |
74
+ |---|---|
75
+ | `id` | true |
76
+
77
+ ## `finalize`
78
+
79
+ **HTTP:** `POST`
80
+ **Path:** `/paymentrequest/finalize/{id}`
81
+
82
+ ```ruby
83
+ paystack.payment_request.finalize(id)
84
+ ```
85
+
86
+ ### Path Parameters
87
+
88
+ | Name | Required |
89
+ |---|---|
90
+ | `id` | true |
91
+
92
+ ## `list`
93
+
94
+ **HTTP:** `GET`
95
+ **Path:** `/paymentrequest`
96
+
97
+ ```ruby
98
+ paystack.payment_request.list({ ... })
99
+ ```
100
+
101
+ ### Query Fields
102
+
103
+ | Name | Required |
104
+ |---|---|
105
+ | `perPage` | false |
106
+ | `page` | false |
107
+ | `customer` | false |
108
+ | `status` | false |
109
+ | `currency` | false |
110
+ | `from` | false |
111
+ | `to` | false |
112
+
113
+ ## `notify`
114
+
115
+ **HTTP:** `POST`
116
+ **Path:** `/paymentrequest/notify/{id}`
117
+
118
+ ```ruby
119
+ paystack.payment_request.notify(id)
120
+ ```
121
+
122
+ ### Path Parameters
123
+
124
+ | Name | Required |
125
+ |---|---|
126
+ | `id` | true |
127
+
128
+ ## `totals`
129
+
130
+ **HTTP:** `GET`
131
+ **Path:** `/paymentrequest/totals`
132
+
133
+ ```ruby
134
+ paystack.payment_request.totals
135
+ ```
136
+
137
+ ## `update`
138
+
139
+ **HTTP:** `PUT`
140
+ **Path:** `/paymentrequest/{id}`
141
+
142
+ ```ruby
143
+ paystack.payment_request.update(id, { ... })
144
+ ```
145
+
146
+ ### Path Parameters
147
+
148
+ | Name | Required |
149
+ |---|---|
150
+ | `id` | true |
151
+
152
+ ### Body Fields
153
+
154
+ | Name | Required |
155
+ |---|---|
156
+ | `customer` | false |
157
+ | `amount` | false |
158
+ | `currency` | false |
159
+ | `due_date` | false |
160
+ | `description` | false |
161
+ | `line_items` | false |
162
+ | `tax` | false |
163
+ | `send_notification` | false |
164
+ | `draft` | false |
165
+ | `has_invoice` | false |
166
+ | `invoice_number` | false |
167
+ | `split_code` | false |
168
+
169
+ ## `verify`
170
+
171
+ **HTTP:** `GET`
172
+ **Path:** `/paymentrequest/verify/{id}`
173
+
174
+ ```ruby
175
+ paystack.payment_request.verify(id)
176
+ ```
177
+
178
+ ### Path Parameters
179
+
180
+ | Name | Required |
181
+ |---|---|
182
+ | `id` | true |