citypay_api_client 1.0.2 → 1.1.1

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 (243) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +105 -34
  3. data/citypay_api_client.gemspec +4 -5
  4. data/docs/AccountCreate.md +10 -9
  5. data/docs/AccountStatus.md +8 -7
  6. data/docs/Acknowledgement.md +14 -13
  7. data/docs/AclCheckRequest.md +18 -0
  8. data/docs/AclCheckResponseModel.md +24 -0
  9. data/docs/AirlineAdvice.md +38 -37
  10. data/docs/AirlineSegment.md +22 -21
  11. data/docs/AuthReference.md +34 -33
  12. data/docs/AuthReferences.md +8 -7
  13. data/docs/AuthRequest.md +50 -49
  14. data/docs/AuthResponse.md +60 -59
  15. data/docs/AuthenRequired.md +12 -11
  16. data/docs/AuthorisationAndPaymentApi.md +559 -0
  17. data/docs/Batch.md +22 -0
  18. data/docs/BatchProcessingApi.md +214 -0
  19. data/docs/BatchReportRequest.md +20 -0
  20. data/docs/BatchReportResponseModel.md +28 -0
  21. data/docs/BatchTransaction.md +24 -0
  22. data/docs/BatchTransactionResultModel.md +40 -0
  23. data/docs/Bin.md +34 -0
  24. data/docs/BinLookup.md +18 -0
  25. data/docs/CResAuthRequest.md +8 -7
  26. data/docs/CaptureRequest.md +18 -17
  27. data/docs/Card.md +46 -41
  28. data/docs/CardHolderAccount.md +24 -21
  29. data/docs/CardHolderAccountApi.md +326 -105
  30. data/docs/CardStatus.md +10 -9
  31. data/docs/ChargeRequest.md +36 -31
  32. data/docs/CheckBatchStatus.md +20 -0
  33. data/docs/CheckBatchStatusResponse.md +18 -0
  34. data/docs/ContactDetails.md +32 -31
  35. data/docs/Decision.md +12 -11
  36. data/docs/DirectPostApi.md +365 -0
  37. data/docs/DirectPostRequest.md +58 -0
  38. data/docs/DirectTokenAuthRequest.md +24 -0
  39. data/docs/DomainKeyCheckRequest.md +18 -0
  40. data/docs/DomainKeyRequest.md +22 -0
  41. data/docs/DomainKeyResponse.md +26 -0
  42. data/docs/Error.md +16 -13
  43. data/docs/EventDataModel.md +26 -0
  44. data/docs/Exists.md +22 -0
  45. data/docs/ExternalMPI.md +16 -15
  46. data/docs/ListMerchantsResponse.md +12 -11
  47. data/docs/MCC6012.md +14 -13
  48. data/docs/Merchant.md +16 -15
  49. data/docs/OperationalApi.md +124 -22
  50. data/docs/OperationalFunctionsApi.md +355 -0
  51. data/docs/PaResAuthRequest.md +10 -9
  52. data/docs/PaylinkAddress.md +30 -0
  53. data/docs/PaylinkAdjustmentRequest.md +22 -0
  54. data/docs/PaylinkApi.md +630 -0
  55. data/docs/PaylinkAttachmentRequest.md +26 -0
  56. data/docs/PaylinkAttachmentResult.md +22 -0
  57. data/docs/PaylinkBillPaymentTokenRequest.md +32 -0
  58. data/docs/PaylinkCardHolder.md +36 -0
  59. data/docs/PaylinkCart.md +30 -0
  60. data/docs/PaylinkCartItemModel.md +32 -0
  61. data/docs/PaylinkConfig.md +60 -0
  62. data/docs/PaylinkCustomParam.md +36 -0
  63. data/docs/PaylinkEmailNotificationPath.md +26 -0
  64. data/docs/PaylinkErrorCode.md +20 -0
  65. data/docs/PaylinkFieldGuardModel.md +30 -0
  66. data/docs/PaylinkPartPayments.md +28 -0
  67. data/docs/PaylinkSMSNotificationPath.md +20 -0
  68. data/docs/PaylinkStateEvent.md +22 -0
  69. data/docs/PaylinkTokenCreated.md +44 -0
  70. data/docs/PaylinkTokenRequestModel.md +38 -0
  71. data/docs/PaylinkTokenStatus.md +72 -0
  72. data/docs/PaylinkTokenStatusChangeRequest.md +26 -0
  73. data/docs/PaylinkTokenStatusChangeResponse.md +20 -0
  74. data/docs/PaylinkUI.md +24 -0
  75. data/docs/PaymentProcessingApi.md +307 -68
  76. data/docs/Ping.md +8 -7
  77. data/docs/ProcessBatchRequest.md +24 -0
  78. data/docs/ProcessBatchResponse.md +20 -0
  79. data/docs/RefundRequest.md +26 -0
  80. data/docs/RegisterCard.md +16 -13
  81. data/docs/RequestChallenged.md +16 -15
  82. data/docs/RetrieveRequest.md +12 -11
  83. data/docs/ThreeDSecure.md +32 -15
  84. data/docs/TokenisationResponseModel.md +36 -0
  85. data/docs/VoidRequest.md +12 -13
  86. data/lib/.DS_Store +0 -0
  87. data/lib/citypay_api_client/api/authorisation_and_payment_api__.rb +565 -0
  88. data/lib/citypay_api_client/api/batch_processing_api__.rb +225 -0
  89. data/lib/citypay_api_client/api/{card_holder_account_api.rb → card_holder_account_api__.rb} +136 -46
  90. data/lib/citypay_api_client/api/direct_post_api__.rb +373 -0
  91. data/lib/citypay_api_client/api/operational_functions_api__.rb +356 -0
  92. data/lib/citypay_api_client/api/paylink_api__.rb +614 -0
  93. data/lib/citypay_api_client/api_client.rb +59 -59
  94. data/lib/citypay_api_client/api_error.rb +2 -2
  95. data/lib/citypay_api_client/configuration.rb +53 -15
  96. data/lib/citypay_api_client/models/account_create.rb +21 -8
  97. data/lib/citypay_api_client/models/account_status.rb +21 -8
  98. data/lib/citypay_api_client/models/acknowledgement.rb +21 -8
  99. data/lib/citypay_api_client/models/acl_check_request.rb +224 -0
  100. data/lib/citypay_api_client/models/acl_check_response_model.rb +249 -0
  101. data/lib/citypay_api_client/models/airline_advice.rb +23 -10
  102. data/lib/citypay_api_client/models/airline_segment.rb +21 -8
  103. data/lib/citypay_api_client/models/api_key.rb +16 -0
  104. data/lib/citypay_api_client/models/auth_reference.rb +45 -11
  105. data/lib/citypay_api_client/models/auth_references.rb +21 -8
  106. data/lib/citypay_api_client/models/auth_request.rb +79 -33
  107. data/lib/citypay_api_client/models/auth_response.rb +43 -106
  108. data/lib/citypay_api_client/models/authen_required.rb +21 -8
  109. data/lib/citypay_api_client/models/batch.rb +264 -0
  110. data/lib/citypay_api_client/models/batch_report_request.rb +277 -0
  111. data/lib/citypay_api_client/models/batch_report_response_model.rb +357 -0
  112. data/lib/citypay_api_client/models/batch_transaction.rb +321 -0
  113. data/lib/citypay_api_client/models/batch_transaction_result_model.rb +421 -0
  114. data/lib/citypay_api_client/models/bin.rb +299 -0
  115. data/lib/citypay_api_client/models/bin_lookup.rb +234 -0
  116. data/lib/citypay_api_client/models/c_res_auth_request.rb +21 -8
  117. data/lib/citypay_api_client/models/capture_request.rb +38 -20
  118. data/lib/citypay_api_client/models/card.rb +67 -10
  119. data/lib/citypay_api_client/models/card_holder_account.rb +35 -12
  120. data/lib/citypay_api_client/models/card_status.rb +21 -8
  121. data/lib/citypay_api_client/models/charge_request.rb +96 -24
  122. data/lib/citypay_api_client/models/check_batch_status.rb +259 -0
  123. data/lib/citypay_api_client/models/check_batch_status_response.rb +220 -0
  124. data/lib/citypay_api_client/models/contact_details.rb +87 -44
  125. data/lib/citypay_api_client/models/decision.rb +21 -8
  126. data/lib/citypay_api_client/models/direct_post_request.rb +670 -0
  127. data/lib/citypay_api_client/models/direct_token_auth_request.rb +249 -0
  128. data/lib/citypay_api_client/models/domain_key_check_request.rb +252 -0
  129. data/lib/citypay_api_client/models/domain_key_request.rb +250 -0
  130. data/lib/citypay_api_client/models/domain_key_response.rb +294 -0
  131. data/lib/citypay_api_client/models/error.rb +35 -12
  132. data/lib/citypay_api_client/models/event_data_model.rb +259 -0
  133. data/lib/citypay_api_client/models/exists.rb +244 -0
  134. data/lib/citypay_api_client/models/external_mpi.rb +27 -8
  135. data/lib/citypay_api_client/models/list_merchants_response.rb +21 -8
  136. data/lib/citypay_api_client/models/mcc6012.rb +21 -8
  137. data/lib/citypay_api_client/models/merchant.rb +21 -8
  138. data/lib/citypay_api_client/models/pa_res_auth_request.rb +22 -9
  139. data/lib/citypay_api_client/models/paylink_address.rb +402 -0
  140. data/lib/citypay_api_client/models/paylink_adjustment_request.rb +269 -0
  141. data/lib/citypay_api_client/models/paylink_attachment_request.rb +269 -0
  142. data/lib/citypay_api_client/models/paylink_attachment_result.rb +249 -0
  143. data/lib/citypay_api_client/models/paylink_bill_payment_token_request.rb +292 -0
  144. data/lib/citypay_api_client/models/paylink_card_holder.rb +353 -0
  145. data/lib/citypay_api_client/models/paylink_cart.rb +280 -0
  146. data/lib/citypay_api_client/models/paylink_cart_item_model.rb +289 -0
  147. data/lib/citypay_api_client/models/paylink_config.rb +433 -0
  148. data/lib/citypay_api_client/models/paylink_custom_param.rb +314 -0
  149. data/lib/citypay_api_client/models/paylink_email_notification_path.rb +268 -0
  150. data/lib/citypay_api_client/models/paylink_error_code.rb +239 -0
  151. data/lib/citypay_api_client/models/paylink_field_guard_model.rb +279 -0
  152. data/lib/citypay_api_client/models/paylink_part_payments.rb +269 -0
  153. data/lib/citypay_api_client/models/paylink_sms_notification_path.rb +234 -0
  154. data/lib/citypay_api_client/models/paylink_state_event.rb +239 -0
  155. data/lib/citypay_api_client/models/paylink_token_created.rb +364 -0
  156. data/lib/citypay_api_client/models/paylink_token_request_model.rb +374 -0
  157. data/lib/citypay_api_client/models/paylink_token_status.rb +490 -0
  158. data/lib/citypay_api_client/models/paylink_token_status_change_request.rb +270 -0
  159. data/lib/citypay_api_client/models/paylink_token_status_change_response.rb +235 -0
  160. data/lib/citypay_api_client/models/paylink_ui.rb +249 -0
  161. data/lib/citypay_api_client/models/ping.rb +21 -8
  162. data/lib/citypay_api_client/models/process_batch_request.rb +308 -0
  163. data/lib/citypay_api_client/models/process_batch_response.rb +234 -0
  164. data/lib/citypay_api_client/models/refund_request.rb +332 -0
  165. data/lib/citypay_api_client/models/register_card.rb +59 -12
  166. data/lib/citypay_api_client/models/request_challenged.rb +29 -16
  167. data/lib/citypay_api_client/models/retrieve_request.rb +21 -8
  168. data/lib/citypay_api_client/models/three_d_secure.rb +106 -13
  169. data/lib/citypay_api_client/models/tokenisation_response_model.rb +333 -0
  170. data/lib/citypay_api_client/models/void_request.rb +22 -19
  171. data/lib/citypay_api_client/utils/digest_utils.rb +18 -0
  172. data/lib/citypay_api_client/utils/direct_post_mac.rb +22 -0
  173. data/lib/citypay_api_client/version.rb +3 -3
  174. data/lib/citypay_api_client.rb +53 -6
  175. data/spec/.DS_Store +0 -0
  176. data/spec/api/authorisation_and_payment_api___spec.rb +130 -0
  177. data/spec/api/batch_processing_api___spec.rb +70 -0
  178. data/spec/api/{card_holder_account_api_spec.rb → card_holder_account_api___spec.rb} +15 -3
  179. data/spec/api/direct_post_api___spec.rb +98 -0
  180. data/spec/api/operational_functions_api___spec.rb +94 -0
  181. data/spec/api/paylink_api___spec.rb +131 -0
  182. data/spec/api_client_spec.rb +4 -4
  183. data/spec/configuration_spec.rb +5 -5
  184. data/spec/it_api_sandbox_spec.rb +222 -0
  185. data/spec/models/acknowledgement_spec.rb +6 -8
  186. data/spec/models/acl_check_request_spec.rb +33 -0
  187. data/spec/models/acl_check_response_model_spec.rb +51 -0
  188. data/spec/models/auth_references_spec.rb +7 -8
  189. data/spec/models/auth_response_spec.rb +29 -30
  190. data/spec/models/batch_report_request_spec.rb +39 -0
  191. data/spec/models/batch_report_response_model_spec.rb +63 -0
  192. data/spec/models/batch_spec.rb +45 -0
  193. data/spec/models/batch_transaction_result_model_spec.rb +87 -0
  194. data/spec/models/batch_transaction_spec.rb +51 -0
  195. data/spec/models/bin_lookup_spec.rb +33 -0
  196. data/spec/models/bin_spec.rb +81 -0
  197. data/spec/models/card_holder_account_spec.rb +8 -5
  198. data/spec/models/check_batch_status_response_spec.rb +45 -0
  199. data/spec/models/check_batch_status_spec.rb +39 -0
  200. data/spec/models/decision_spec.rb +1 -1
  201. data/spec/models/direct_post_request_spec.rb +153 -0
  202. data/spec/models/direct_token_auth_request_spec.rb +51 -0
  203. data/spec/models/domain_key_check_request_spec.rb +33 -0
  204. data/spec/models/domain_key_request_spec.rb +45 -0
  205. data/spec/models/domain_key_response_spec.rb +57 -0
  206. data/spec/models/event_data_model_spec.rb +57 -0
  207. data/spec/{api/operational_api_spec.rb → models/exists_spec.rb} +14 -20
  208. data/spec/models/list_merchants_response_spec.rb +2 -2
  209. data/spec/models/paylink_address_spec.rb +69 -0
  210. data/spec/models/paylink_adjustment_request_spec.rb +45 -0
  211. data/spec/models/paylink_attachment_request_spec.rb +45 -0
  212. data/spec/models/paylink_attachment_result_spec.rb +45 -0
  213. data/spec/models/paylink_bill_payment_token_request_spec.rb +63 -0
  214. data/spec/models/paylink_card_holder_spec.rb +87 -0
  215. data/spec/models/paylink_cart_item_model_spec.rb +75 -0
  216. data/spec/models/paylink_cart_spec.rb +69 -0
  217. data/spec/models/paylink_config_spec.rb +159 -0
  218. data/spec/models/paylink_custom_param_spec.rb +87 -0
  219. data/spec/models/paylink_email_notification_path_spec.rb +57 -0
  220. data/spec/models/paylink_error_code_spec.rb +39 -0
  221. data/spec/models/paylink_field_guard_model_spec.rb +45 -0
  222. data/spec/models/paylink_part_payments_spec.rb +63 -0
  223. data/spec/models/paylink_sms_notification_path_spec.rb +39 -0
  224. data/spec/models/paylink_state_event_spec.rb +45 -0
  225. data/spec/models/paylink_token_created_spec.rb +111 -0
  226. data/spec/models/paylink_token_request_model_spec.rb +93 -0
  227. data/spec/models/paylink_token_status_change_request_spec.rb +57 -0
  228. data/spec/models/paylink_token_status_change_response_spec.rb +39 -0
  229. data/spec/models/paylink_token_status_spec.rb +195 -0
  230. data/spec/models/paylink_ui_spec.rb +51 -0
  231. data/spec/models/process_batch_request_spec.rb +51 -0
  232. data/spec/models/process_batch_response_spec.rb +39 -0
  233. data/spec/models/refund_request_spec.rb +64 -0
  234. data/spec/models/tokenisation_response_model_spec.rb +87 -0
  235. data/spec/spec_helper.rb +2 -2
  236. data/spec/utils/direct_post_mac_spec.rb +13 -0
  237. metadata +212 -37
  238. data/Gemfile.lock +0 -70
  239. data/git_push.sh +0 -58
  240. data/lib/citypay_api_client/api/operational_api.rb +0 -147
  241. data/lib/citypay_api_client/api/payment_processing_api.rb +0 -405
  242. data/lib/citypay_api_client/test.rb +0 -20
  243. data/spec/api/payment_processing_api_spec.rb +0 -106
@@ -0,0 +1,630 @@
1
+ # CityPayApiClient::PaylinkApi
2
+
3
+ All URIs are relative to *https://api.citypay.com*
4
+
5
+ | Method | HTTP request | Description |
6
+ | ------ | ------------ | ----------- |
7
+ | [**token_adjustment_request**](PaylinkApi.md#token_adjustment_request) | **POST** /paylink/{token}/adjustment | Paylink Token Adjustment |
8
+ | [**token_close_request**](PaylinkApi.md#token_close_request) | **PUT** /paylink/{token}/close | Close Paylink Token |
9
+ | [**token_create_bill_payment_request**](PaylinkApi.md#token_create_bill_payment_request) | **POST** /paylink/bill-payment | Create Bill Payment Paylink Token |
10
+ | [**token_create_request**](PaylinkApi.md#token_create_request) | **POST** /paylink/create | Create Paylink Token |
11
+ | [**token_purge_attachments_request**](PaylinkApi.md#token_purge_attachments_request) | **PUT** /paylink/{token}/purge-attachments | Purges any attachments for a Paylink Token |
12
+ | [**token_reconciled_request**](PaylinkApi.md#token_reconciled_request) | **PUT** /paylink/{token}/reconciled | Reconcile Paylink Token |
13
+ | [**token_reopen_request**](PaylinkApi.md#token_reopen_request) | **PUT** /paylink/{token}/reopen | Reopen Paylink Token |
14
+ | [**token_status_changes_request**](PaylinkApi.md#token_status_changes_request) | **POST** /paylink/token/changes | Paylink Token Audit |
15
+ | [**token_status_request**](PaylinkApi.md#token_status_request) | **GET** /paylink/{token}/status | Paylink Token Status |
16
+
17
+
18
+ ## token_adjustment_request
19
+
20
+ > <Acknowledgement> token_adjustment_request(token, paylink_adjustment_request)
21
+
22
+ Paylink Token Adjustment
23
+
24
+ Adjusts a TokenRequest's amount value when for instance 1. a Token is created and the shopping cart is updated 2. an invoice is adjusted either due to part payment or due to increased incurred costs.
25
+
26
+ ### Examples
27
+
28
+ ```ruby
29
+ require 'time'
30
+ require 'citypay_api_client'
31
+ # setup authorization
32
+ CityPayApiClient.configure do |config|
33
+ config.api_key['cp-api-key'] = CityPayApiClient::ApiKey.new(client_id: 'YourClientId', licence_key: 'YourLicenceKey').generate
34
+ end
35
+
36
+ api_instance = CityPayApiClient::PaylinkApi.new
37
+ token = 'token_example' # String | The token returned by the create token process.
38
+ paylink_adjustment_request = CityPayApiClient::PaylinkAdjustmentRequest.new # PaylinkAdjustmentRequest |
39
+
40
+ begin
41
+ # Paylink Token Adjustment
42
+ result = api_instance.token_adjustment_request(token, paylink_adjustment_request)
43
+ p result
44
+ rescue CityPayApiClient::ApiError => e
45
+ puts "Error when calling PaylinkApi->token_adjustment_request: #{e}"
46
+ end
47
+ ```
48
+
49
+ #### Using the token_adjustment_request_with_http_info variant
50
+
51
+ This returns an Array which contains the response data, status code and headers.
52
+
53
+ > <Array(<Acknowledgement>, Integer, Hash)> token_adjustment_request_with_http_info(token, paylink_adjustment_request)
54
+
55
+ ```ruby
56
+ begin
57
+ # Paylink Token Adjustment
58
+ data, status_code, headers = api_instance.token_adjustment_request_with_http_info(token, paylink_adjustment_request)
59
+ p status_code # => 2xx
60
+ p headers # => { ... }
61
+ p data # => <Acknowledgement>
62
+ rescue CityPayApiClient::ApiError => e
63
+ puts "Error when calling PaylinkApi->token_adjustment_request_with_http_info: #{e}"
64
+ end
65
+ ```
66
+
67
+ ### Parameters
68
+
69
+ | Name | Type | Description | Notes |
70
+ | ---- | ---- | ----------- | ----- |
71
+ | **token** | **String** | The token returned by the create token process. | |
72
+ | **paylink_adjustment_request** | [**PaylinkAdjustmentRequest**](PaylinkAdjustmentRequest.md) | | |
73
+
74
+ ### Return type
75
+
76
+ [**Acknowledgement**](Acknowledgement.md)
77
+
78
+ ### Authorization
79
+
80
+ [cp-api-key](../README.md#cp-api-key)
81
+
82
+ ### HTTP request headers
83
+
84
+ - **Content-Type**: application/json, text/xml
85
+ - **Accept**: application/json, text/xml
86
+
87
+
88
+ ## token_close_request
89
+
90
+ > <Acknowledgement> token_close_request(token)
91
+
92
+ Close Paylink Token
93
+
94
+ Marks a Paylink Token as closed. This closes the Token for any future action and the Token will not appear in any status request calls.
95
+
96
+ ### Examples
97
+
98
+ ```ruby
99
+ require 'time'
100
+ require 'citypay_api_client'
101
+ # setup authorization
102
+ CityPayApiClient.configure do |config|
103
+ config.api_key['cp-api-key'] = CityPayApiClient::ApiKey.new(client_id: 'YourClientId', licence_key: 'YourLicenceKey').generate
104
+ end
105
+
106
+ api_instance = CityPayApiClient::PaylinkApi.new
107
+ token = 'token_example' # String | The token returned by the create token process.
108
+
109
+ begin
110
+ # Close Paylink Token
111
+ result = api_instance.token_close_request(token)
112
+ p result
113
+ rescue CityPayApiClient::ApiError => e
114
+ puts "Error when calling PaylinkApi->token_close_request: #{e}"
115
+ end
116
+ ```
117
+
118
+ #### Using the token_close_request_with_http_info variant
119
+
120
+ This returns an Array which contains the response data, status code and headers.
121
+
122
+ > <Array(<Acknowledgement>, Integer, Hash)> token_close_request_with_http_info(token)
123
+
124
+ ```ruby
125
+ begin
126
+ # Close Paylink Token
127
+ data, status_code, headers = api_instance.token_close_request_with_http_info(token)
128
+ p status_code # => 2xx
129
+ p headers # => { ... }
130
+ p data # => <Acknowledgement>
131
+ rescue CityPayApiClient::ApiError => e
132
+ puts "Error when calling PaylinkApi->token_close_request_with_http_info: #{e}"
133
+ end
134
+ ```
135
+
136
+ ### Parameters
137
+
138
+ | Name | Type | Description | Notes |
139
+ | ---- | ---- | ----------- | ----- |
140
+ | **token** | **String** | The token returned by the create token process. | |
141
+
142
+ ### Return type
143
+
144
+ [**Acknowledgement**](Acknowledgement.md)
145
+
146
+ ### Authorization
147
+
148
+ [cp-api-key](../README.md#cp-api-key)
149
+
150
+ ### HTTP request headers
151
+
152
+ - **Content-Type**: Not defined
153
+ - **Accept**: application/json, text/xml
154
+
155
+
156
+ ## token_create_bill_payment_request
157
+
158
+ > <PaylinkTokenCreated> token_create_bill_payment_request(paylink_bill_payment_token_request)
159
+
160
+ Create Bill Payment Paylink Token
161
+
162
+ CityPay Paylink supports invoice and bill payment services by allowing merchants to raise an invoice in their systems and associate the invoice with a Paylink checkout token. CityPay will co-ordinate the checkout flow in relationship with your customer. Our bill payment solution may be used to streamline the payment flow with cardholders to allow your invoice to be paid promptly and via multiple payment channels such as Card Payment, Apple Pay or Google Pay. The bill payment service allows 1. setting up notification paths to an end customer, such as SMS or Email 2. enabling attachments to be included with Paylink tokens 3. produce chaser notifications for unpaid invoices 4. provide callbacks for notification of the payment of an invoice 5. support part payments against an invoice 6. support of field guards to protect the payment screen 7. support of status reporting on tokens 8. URL short codes for SMS notifications <img src=\"../images/merchant-BPS-workflow.png\" alt=\"Paylink BPSv2 Overview\" width=\"50%\"/> ### Notification Paths Notification paths can be provided which identify the channels for communication of the invoice availability. Up to 3 notification paths may be provided per request. Each notification uses a template to generate the body of the message. This allows for variable text to be sent out and customised for each call. SMS messages use URL Short Codes (USC) as a payment link to the invoice payment page. This allows for a standard payment URL to be shortened for optimised usage in SMS. For instance a URL of `https://checkout.citypay.com/PL1234/s348yb8yna4a48n2f8nq2f3msgyng-psn348ynaw8ynaw/en` becomes `citypay.com/Za48na3x`. Each USC is unique however it is a requirement that each USC generated is protected with Field Guards to ensure that sensitive data (such as customer contact details and GDPR) is protected. To send a notification path, append a `notification-path` property to the request. ```json { \"sms_notification_path\": { \"to\": \"+441534884000\" }, \"email_notification_path\": { \"to\": [\"help-desk@citypay.com\"], \"cc\": [\"third-party@citypay.com\"], \"reply\": [\"help@my-company.com\"] } } ``` Notification paths trigger a number of events which are stored as part of the timeline of events of a Paylink token - `BillPaymentSmsNotificationQueued` - identifies when an SMS notification has been queued for delivery - `BillPaymentSmsNotificationSent` - identifies when an SMS notification has been sent to the upstream network - `BillPaymentSmsNotificationDelivered` - identifies when an SMS notification has been delivered as notified by the upstream network - `BillPaymentSmsNotificationUndelivered` - identifies when an SMS notification has undelivered notification is provided by the upstream network - `BillPaymentSmsNotificationFailure` - identifies when an SMS notification has failed - `BillPaymentEmailNotificationQueued` - identifies when an email notification has been queued for delivery - `BillPaymentEmailNotificationSent` - identifies when an email notification has been accepted by our SMS forwarder - `BillPaymentEmailNotificationFailure` - identifies when an email notification has failed delivery #### SMS Notification Path SMS originated from a CityPay pool of numbers and by default only sends to country codes where the service is registered. SMSs may contain a From field which is configured as part of you onboarding and have a name associated to identify the service origin. For example if your business is titled `Health Surgery Ltd` the SMS may be sent to originate from `Health Surgery`. SMS is also configured for a \"polite mode\". This mode ensures that SMSs aren't sent in the middle of the night when backend services ordinarily run. SMSs will be queued until the time range is deemed as polite. Normally this is between 8am and 9pm. | Field | Type | Usage | Description | |----------|----------|----------|-------------------------------------------------------------------------------------------------| | template | string | Reserved | An optional template name to use a template other than the default. | | to | string | Reserved | The phone number in [E.164](https://en.wikipedia.org/wiki/E.164) format to send the message to. | #### Email Notification Paths | Field | Type | Usage | Description | |----------|----------|----------|-------------------------------------------------------------------------------------------------| | template | string | Reserved | An optional template name to use a template other than the default. | | to | string[] | Required | An array of email addresses to be used for delivery. A maximum of 5 addresses can be added. | | cc | string[] | Required | An array of email addresses to be used for cc delivery. A maximum of 5 addresses can be added. | | bcc | string[] | Required | An array of email addresses to be used for bcc delivery. A maximum of 5 addresses can be added. | | reply_to | string[] | Required | An array of email addresses to be used for the Reply-To header of an email. | ### Field Guards To ensure that invoices are paid by the intended recipient, Paylink supports the addition of Field Guards. A Field Guard is an intended field which is to be used as a form of guarded authentication. More than 1 field can be requested. <img src=\"../images/paylink-field-guards.png\" alt=\"Paylink Field Guards\" width=\"50%\"/> To determine the source value of the field, each field name is searched in the order of - identifier - cardholder data such as name - custom parameters - pass through data If no field values are found, the token request returns a D041 validation error. #### Authentication and Validation When values are entered by the user, resultant comparisons are performed by 1. Transliteration of both the source value and entered value. For example, names with accents (e.g. é will become e) 2. Only Alphanumeric values are retained any whitespace or special characters are ignored 3. Case is ignored Should all values match, the user is authenticated and can continue to the payment form rendered by the Paylink server. On successful login, an event will be added to include that the access guard validated access. #### Access-Key To ensure that a user does not need to re-enter these values multiple times, a cookie is pushed to the user’s browser with an access-key digest value. This value will be presented to the server on each refresh therefore allowing the guard to accept the call. Each value is uniquely stored per merchant account and cannot be shared cross merchant. The lifetime of the cookie is set to 24 hours. #### Brute Force Prevention To prevent multiple calls hitting the server, attempting a brute force attack, the login process 1. is fronted by a contemporary web application firewall 2. creates an event for each token when access was denied 3. should the number of failed events breach more than 5 in 30 minutes, the token is locked for an hour 4. should the number of events breach more than 20 the token is fully locked ### Attachments Attachments can be included in the request in 2 ways 1. Via a data element direct in the request 2. Via a URL upload to a provided pre-signed URL The decision of which option is dependent on the size of the attachments. Should the attachment size be greater than 32kb a URL upload is required. Small attachments can be included in the JSON request. This is to prevent our web firewall from blocking your request and to also ensure efficiency of larger file uploads. There is a maximum of 3 attachments that can be added to a request. ```json [{ \"filename\": \"invoice1.pdf\", \"mime-type\": \"application/pdf\" },{ \"filename\": \"invoice2.pdf\", \"data\": \"b4sE64Enc0dEd...=\", \"mime-type\": \"application/pdf\" }] ``` | Field | Type | Usage | Description | |-----------|--------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------| | filename | string | Required | The name of the attachment normally taken from the filename. You should not include the filename path as appropriate | | data | string | Optional | base64 encoding of the file if less than 32kb in size | | mime-type | string | Required | The mime type of the attachment as defined in [RFC 9110](https://www.rfc-editor.org/rfc/rfc9110.html). Currently only `application/pdf` is supported | #### Attachment Result A result of an attachment specifies whether the attachment was successfully added or whether a further upload is requried | Field | Type | Usage | Description | |--------|--------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------| | result | string | Required | `OK` should the file have uploaded or `UPLOAD` if the file is required to be uploaded. | | name | string | Required | The filename that was specified in the upload process | | url | string | Optional | Should an upload be required, this URL is available for an upload to be issued. The URL is only available for uploads for 24 hours from creation. |
163
+
164
+ ### Examples
165
+
166
+ ```ruby
167
+ require 'time'
168
+ require 'citypay_api_client'
169
+ # setup authorization
170
+ CityPayApiClient.configure do |config|
171
+ config.api_key['cp-api-key'] = CityPayApiClient::ApiKey.new(client_id: 'YourClientId', licence_key: 'YourLicenceKey').generate
172
+ end
173
+
174
+ api_instance = CityPayApiClient::PaylinkApi.new
175
+ paylink_bill_payment_token_request = CityPayApiClient::PaylinkBillPaymentTokenRequest.new({request: CityPayApiClient::PaylinkTokenRequestModel.new({amount: 37, identifier: '95b857a1-5955-4b86-963c-5a6dbfc4fb95', merchantid: 11223344})}) # PaylinkBillPaymentTokenRequest |
176
+
177
+ begin
178
+ # Create Bill Payment Paylink Token
179
+ result = api_instance.token_create_bill_payment_request(paylink_bill_payment_token_request)
180
+ p result
181
+ rescue CityPayApiClient::ApiError => e
182
+ puts "Error when calling PaylinkApi->token_create_bill_payment_request: #{e}"
183
+ end
184
+ ```
185
+
186
+ #### Using the token_create_bill_payment_request_with_http_info variant
187
+
188
+ This returns an Array which contains the response data, status code and headers.
189
+
190
+ > <Array(<PaylinkTokenCreated>, Integer, Hash)> token_create_bill_payment_request_with_http_info(paylink_bill_payment_token_request)
191
+
192
+ ```ruby
193
+ begin
194
+ # Create Bill Payment Paylink Token
195
+ data, status_code, headers = api_instance.token_create_bill_payment_request_with_http_info(paylink_bill_payment_token_request)
196
+ p status_code # => 2xx
197
+ p headers # => { ... }
198
+ p data # => <PaylinkTokenCreated>
199
+ rescue CityPayApiClient::ApiError => e
200
+ puts "Error when calling PaylinkApi->token_create_bill_payment_request_with_http_info: #{e}"
201
+ end
202
+ ```
203
+
204
+ ### Parameters
205
+
206
+ | Name | Type | Description | Notes |
207
+ | ---- | ---- | ----------- | ----- |
208
+ | **paylink_bill_payment_token_request** | [**PaylinkBillPaymentTokenRequest**](PaylinkBillPaymentTokenRequest.md) | | |
209
+
210
+ ### Return type
211
+
212
+ [**PaylinkTokenCreated**](PaylinkTokenCreated.md)
213
+
214
+ ### Authorization
215
+
216
+ [cp-api-key](../README.md#cp-api-key)
217
+
218
+ ### HTTP request headers
219
+
220
+ - **Content-Type**: application/json, text/xml
221
+ - **Accept**: application/json, text/xml
222
+
223
+
224
+ ## token_create_request
225
+
226
+ > <PaylinkTokenCreated> token_create_request(paylink_token_request_model)
227
+
228
+ Create Paylink Token
229
+
230
+ Creates a Paylink token from the CityPay API.
231
+
232
+ ### Examples
233
+
234
+ ```ruby
235
+ require 'time'
236
+ require 'citypay_api_client'
237
+ # setup authorization
238
+ CityPayApiClient.configure do |config|
239
+ config.api_key['cp-api-key'] = CityPayApiClient::ApiKey.new(client_id: 'YourClientId', licence_key: 'YourLicenceKey').generate
240
+ end
241
+
242
+ api_instance = CityPayApiClient::PaylinkApi.new
243
+ paylink_token_request_model = CityPayApiClient::PaylinkTokenRequestModel.new({amount: 37, identifier: '95b857a1-5955-4b86-963c-5a6dbfc4fb95', merchantid: 11223344}) # PaylinkTokenRequestModel |
244
+
245
+ begin
246
+ # Create Paylink Token
247
+ result = api_instance.token_create_request(paylink_token_request_model)
248
+ p result
249
+ rescue CityPayApiClient::ApiError => e
250
+ puts "Error when calling PaylinkApi->token_create_request: #{e}"
251
+ end
252
+ ```
253
+
254
+ #### Using the token_create_request_with_http_info variant
255
+
256
+ This returns an Array which contains the response data, status code and headers.
257
+
258
+ > <Array(<PaylinkTokenCreated>, Integer, Hash)> token_create_request_with_http_info(paylink_token_request_model)
259
+
260
+ ```ruby
261
+ begin
262
+ # Create Paylink Token
263
+ data, status_code, headers = api_instance.token_create_request_with_http_info(paylink_token_request_model)
264
+ p status_code # => 2xx
265
+ p headers # => { ... }
266
+ p data # => <PaylinkTokenCreated>
267
+ rescue CityPayApiClient::ApiError => e
268
+ puts "Error when calling PaylinkApi->token_create_request_with_http_info: #{e}"
269
+ end
270
+ ```
271
+
272
+ ### Parameters
273
+
274
+ | Name | Type | Description | Notes |
275
+ | ---- | ---- | ----------- | ----- |
276
+ | **paylink_token_request_model** | [**PaylinkTokenRequestModel**](PaylinkTokenRequestModel.md) | | |
277
+
278
+ ### Return type
279
+
280
+ [**PaylinkTokenCreated**](PaylinkTokenCreated.md)
281
+
282
+ ### Authorization
283
+
284
+ [cp-api-key](../README.md#cp-api-key)
285
+
286
+ ### HTTP request headers
287
+
288
+ - **Content-Type**: application/json, text/xml
289
+ - **Accept**: application/json, text/xml
290
+
291
+
292
+ ## token_purge_attachments_request
293
+
294
+ > <Acknowledgement> token_purge_attachments_request(token)
295
+
296
+ Purges any attachments for a Paylink Token
297
+
298
+ Purges any attachments for a token for GDPR or DP reasons.
299
+
300
+ ### Examples
301
+
302
+ ```ruby
303
+ require 'time'
304
+ require 'citypay_api_client'
305
+ # setup authorization
306
+ CityPayApiClient.configure do |config|
307
+ config.api_key['cp-api-key'] = CityPayApiClient::ApiKey.new(client_id: 'YourClientId', licence_key: 'YourLicenceKey').generate
308
+ end
309
+
310
+ api_instance = CityPayApiClient::PaylinkApi.new
311
+ token = 'token_example' # String | The token returned by the create token process.
312
+
313
+ begin
314
+ # Purges any attachments for a Paylink Token
315
+ result = api_instance.token_purge_attachments_request(token)
316
+ p result
317
+ rescue CityPayApiClient::ApiError => e
318
+ puts "Error when calling PaylinkApi->token_purge_attachments_request: #{e}"
319
+ end
320
+ ```
321
+
322
+ #### Using the token_purge_attachments_request_with_http_info variant
323
+
324
+ This returns an Array which contains the response data, status code and headers.
325
+
326
+ > <Array(<Acknowledgement>, Integer, Hash)> token_purge_attachments_request_with_http_info(token)
327
+
328
+ ```ruby
329
+ begin
330
+ # Purges any attachments for a Paylink Token
331
+ data, status_code, headers = api_instance.token_purge_attachments_request_with_http_info(token)
332
+ p status_code # => 2xx
333
+ p headers # => { ... }
334
+ p data # => <Acknowledgement>
335
+ rescue CityPayApiClient::ApiError => e
336
+ puts "Error when calling PaylinkApi->token_purge_attachments_request_with_http_info: #{e}"
337
+ end
338
+ ```
339
+
340
+ ### Parameters
341
+
342
+ | Name | Type | Description | Notes |
343
+ | ---- | ---- | ----------- | ----- |
344
+ | **token** | **String** | The token returned by the create token process. | |
345
+
346
+ ### Return type
347
+
348
+ [**Acknowledgement**](Acknowledgement.md)
349
+
350
+ ### Authorization
351
+
352
+ [cp-api-key](../README.md#cp-api-key)
353
+
354
+ ### HTTP request headers
355
+
356
+ - **Content-Type**: Not defined
357
+ - **Accept**: application/json, text/xml
358
+
359
+
360
+ ## token_reconciled_request
361
+
362
+ > <Acknowledgement> token_reconciled_request(token)
363
+
364
+ Reconcile Paylink Token
365
+
366
+ Marks a Paylink Token as reconciled when reconcilation is performed on the merchant's side.
367
+
368
+ ### Examples
369
+
370
+ ```ruby
371
+ require 'time'
372
+ require 'citypay_api_client'
373
+ # setup authorization
374
+ CityPayApiClient.configure do |config|
375
+ config.api_key['cp-api-key'] = CityPayApiClient::ApiKey.new(client_id: 'YourClientId', licence_key: 'YourLicenceKey').generate
376
+ end
377
+
378
+ api_instance = CityPayApiClient::PaylinkApi.new
379
+ token = 'token_example' # String | The token returned by the create token process.
380
+
381
+ begin
382
+ # Reconcile Paylink Token
383
+ result = api_instance.token_reconciled_request(token)
384
+ p result
385
+ rescue CityPayApiClient::ApiError => e
386
+ puts "Error when calling PaylinkApi->token_reconciled_request: #{e}"
387
+ end
388
+ ```
389
+
390
+ #### Using the token_reconciled_request_with_http_info variant
391
+
392
+ This returns an Array which contains the response data, status code and headers.
393
+
394
+ > <Array(<Acknowledgement>, Integer, Hash)> token_reconciled_request_with_http_info(token)
395
+
396
+ ```ruby
397
+ begin
398
+ # Reconcile Paylink Token
399
+ data, status_code, headers = api_instance.token_reconciled_request_with_http_info(token)
400
+ p status_code # => 2xx
401
+ p headers # => { ... }
402
+ p data # => <Acknowledgement>
403
+ rescue CityPayApiClient::ApiError => e
404
+ puts "Error when calling PaylinkApi->token_reconciled_request_with_http_info: #{e}"
405
+ end
406
+ ```
407
+
408
+ ### Parameters
409
+
410
+ | Name | Type | Description | Notes |
411
+ | ---- | ---- | ----------- | ----- |
412
+ | **token** | **String** | The token returned by the create token process. | |
413
+
414
+ ### Return type
415
+
416
+ [**Acknowledgement**](Acknowledgement.md)
417
+
418
+ ### Authorization
419
+
420
+ [cp-api-key](../README.md#cp-api-key)
421
+
422
+ ### HTTP request headers
423
+
424
+ - **Content-Type**: Not defined
425
+ - **Accept**: application/json, text/xml
426
+
427
+
428
+ ## token_reopen_request
429
+
430
+ > <Acknowledgement> token_reopen_request(token)
431
+
432
+ Reopen Paylink Token
433
+
434
+ Allows for a Paylink Token to be reopened if a Token has been previously closed and payment has not yet been made.
435
+
436
+ ### Examples
437
+
438
+ ```ruby
439
+ require 'time'
440
+ require 'citypay_api_client'
441
+ # setup authorization
442
+ CityPayApiClient.configure do |config|
443
+ config.api_key['cp-api-key'] = CityPayApiClient::ApiKey.new(client_id: 'YourClientId', licence_key: 'YourLicenceKey').generate
444
+ end
445
+
446
+ api_instance = CityPayApiClient::PaylinkApi.new
447
+ token = 'token_example' # String | The token returned by the create token process.
448
+
449
+ begin
450
+ # Reopen Paylink Token
451
+ result = api_instance.token_reopen_request(token)
452
+ p result
453
+ rescue CityPayApiClient::ApiError => e
454
+ puts "Error when calling PaylinkApi->token_reopen_request: #{e}"
455
+ end
456
+ ```
457
+
458
+ #### Using the token_reopen_request_with_http_info variant
459
+
460
+ This returns an Array which contains the response data, status code and headers.
461
+
462
+ > <Array(<Acknowledgement>, Integer, Hash)> token_reopen_request_with_http_info(token)
463
+
464
+ ```ruby
465
+ begin
466
+ # Reopen Paylink Token
467
+ data, status_code, headers = api_instance.token_reopen_request_with_http_info(token)
468
+ p status_code # => 2xx
469
+ p headers # => { ... }
470
+ p data # => <Acknowledgement>
471
+ rescue CityPayApiClient::ApiError => e
472
+ puts "Error when calling PaylinkApi->token_reopen_request_with_http_info: #{e}"
473
+ end
474
+ ```
475
+
476
+ ### Parameters
477
+
478
+ | Name | Type | Description | Notes |
479
+ | ---- | ---- | ----------- | ----- |
480
+ | **token** | **String** | The token returned by the create token process. | |
481
+
482
+ ### Return type
483
+
484
+ [**Acknowledgement**](Acknowledgement.md)
485
+
486
+ ### Authorization
487
+
488
+ [cp-api-key](../README.md#cp-api-key)
489
+
490
+ ### HTTP request headers
491
+
492
+ - **Content-Type**: Not defined
493
+ - **Accept**: application/json, text/xml
494
+
495
+
496
+ ## token_status_changes_request
497
+
498
+ > <PaylinkTokenStatusChangeResponse> token_status_changes_request(paylink_token_status_change_request)
499
+
500
+ Paylink Token Audit
501
+
502
+ Obtains any changes on Paylink Tokens since a given date and time. This allows for a merchant to regularly check on activity over a collection of Paylink Tokens and to check on any events that may have occurred. If a Token is `Closed` it is not considered. Only statuses that have been appended since the given date and time is returned.
503
+
504
+ ### Examples
505
+
506
+ ```ruby
507
+ require 'time'
508
+ require 'citypay_api_client'
509
+ # setup authorization
510
+ CityPayApiClient.configure do |config|
511
+ config.api_key['cp-api-key'] = CityPayApiClient::ApiKey.new(client_id: 'YourClientId', licence_key: 'YourLicenceKey').generate
512
+ end
513
+
514
+ api_instance = CityPayApiClient::PaylinkApi.new
515
+ paylink_token_status_change_request = CityPayApiClient::PaylinkTokenStatusChangeRequest.new({after: Time.now, merchantid: 11223344}) # PaylinkTokenStatusChangeRequest |
516
+
517
+ begin
518
+ # Paylink Token Audit
519
+ result = api_instance.token_status_changes_request(paylink_token_status_change_request)
520
+ p result
521
+ rescue CityPayApiClient::ApiError => e
522
+ puts "Error when calling PaylinkApi->token_status_changes_request: #{e}"
523
+ end
524
+ ```
525
+
526
+ #### Using the token_status_changes_request_with_http_info variant
527
+
528
+ This returns an Array which contains the response data, status code and headers.
529
+
530
+ > <Array(<PaylinkTokenStatusChangeResponse>, Integer, Hash)> token_status_changes_request_with_http_info(paylink_token_status_change_request)
531
+
532
+ ```ruby
533
+ begin
534
+ # Paylink Token Audit
535
+ data, status_code, headers = api_instance.token_status_changes_request_with_http_info(paylink_token_status_change_request)
536
+ p status_code # => 2xx
537
+ p headers # => { ... }
538
+ p data # => <PaylinkTokenStatusChangeResponse>
539
+ rescue CityPayApiClient::ApiError => e
540
+ puts "Error when calling PaylinkApi->token_status_changes_request_with_http_info: #{e}"
541
+ end
542
+ ```
543
+
544
+ ### Parameters
545
+
546
+ | Name | Type | Description | Notes |
547
+ | ---- | ---- | ----------- | ----- |
548
+ | **paylink_token_status_change_request** | [**PaylinkTokenStatusChangeRequest**](PaylinkTokenStatusChangeRequest.md) | | |
549
+
550
+ ### Return type
551
+
552
+ [**PaylinkTokenStatusChangeResponse**](PaylinkTokenStatusChangeResponse.md)
553
+
554
+ ### Authorization
555
+
556
+ [cp-api-key](../README.md#cp-api-key)
557
+
558
+ ### HTTP request headers
559
+
560
+ - **Content-Type**: application/json, text/xml
561
+ - **Accept**: application/json, text/xml
562
+
563
+
564
+ ## token_status_request
565
+
566
+ > <PaylinkTokenStatus> token_status_request(token)
567
+
568
+ Paylink Token Status
569
+
570
+ Obtains the full status of a given Paylink Token.
571
+
572
+ ### Examples
573
+
574
+ ```ruby
575
+ require 'time'
576
+ require 'citypay_api_client'
577
+ # setup authorization
578
+ CityPayApiClient.configure do |config|
579
+ config.api_key['cp-api-key'] = CityPayApiClient::ApiKey.new(client_id: 'YourClientId', licence_key: 'YourLicenceKey').generate
580
+ end
581
+
582
+ api_instance = CityPayApiClient::PaylinkApi.new
583
+ token = 'token_example' # String | The token returned by the create token process.
584
+
585
+ begin
586
+ # Paylink Token Status
587
+ result = api_instance.token_status_request(token)
588
+ p result
589
+ rescue CityPayApiClient::ApiError => e
590
+ puts "Error when calling PaylinkApi->token_status_request: #{e}"
591
+ end
592
+ ```
593
+
594
+ #### Using the token_status_request_with_http_info variant
595
+
596
+ This returns an Array which contains the response data, status code and headers.
597
+
598
+ > <Array(<PaylinkTokenStatus>, Integer, Hash)> token_status_request_with_http_info(token)
599
+
600
+ ```ruby
601
+ begin
602
+ # Paylink Token Status
603
+ data, status_code, headers = api_instance.token_status_request_with_http_info(token)
604
+ p status_code # => 2xx
605
+ p headers # => { ... }
606
+ p data # => <PaylinkTokenStatus>
607
+ rescue CityPayApiClient::ApiError => e
608
+ puts "Error when calling PaylinkApi->token_status_request_with_http_info: #{e}"
609
+ end
610
+ ```
611
+
612
+ ### Parameters
613
+
614
+ | Name | Type | Description | Notes |
615
+ | ---- | ---- | ----------- | ----- |
616
+ | **token** | **String** | The token returned by the create token process. | |
617
+
618
+ ### Return type
619
+
620
+ [**PaylinkTokenStatus**](PaylinkTokenStatus.md)
621
+
622
+ ### Authorization
623
+
624
+ [cp-api-key](../README.md#cp-api-key)
625
+
626
+ ### HTTP request headers
627
+
628
+ - **Content-Type**: Not defined
629
+ - **Accept**: application/json, text/xml
630
+
@@ -0,0 +1,26 @@
1
+ # CityPayApiClient::PaylinkAttachmentRequest
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **data** | **String** | base64 encoding of the file if less than 32kb in size. | [optional] |
8
+ | **filename** | **String** | The name of the attachment normally taken from the filename. You should not include the filename path as appropriate. | |
9
+ | **mime_type** | **String** | The mime type of the attachment as defined in [RFC 9110](https://www.rfc-editor.org/rfc/rfc9110.html). Currently only &#x60;application/pdf&#x60; is supported. | |
10
+ | **name** | **String** | A name for the file to identify it to the card holder when it is displayed in the payment form. For example Invoice, Statement. | [optional] |
11
+ | **retention** | **Integer** | The retention period in days of the attachment. Defaults to 180 days. | [optional] |
12
+
13
+ ## Example
14
+
15
+ ```ruby
16
+ require 'citypay_api_client'
17
+
18
+ instance = CityPayApiClient::PaylinkAttachmentRequest.new(
19
+ data: null,
20
+ filename: null,
21
+ mime_type: null,
22
+ name: null,
23
+ retention: null
24
+ )
25
+ ```
26
+
@@ -0,0 +1,22 @@
1
+ # CityPayApiClient::PaylinkAttachmentResult
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **name** | **String** | The name of the attachment. | |
8
+ | **result** | **String** | The result of an uploaded attachment such as &#x60;OK&#x60; or &#x60;UPLOAD&#x60;. | |
9
+ | **url** | **String** | If the attachment is to be uploaded, a URL that can be used for Multipart upload of the attachment. | [optional] |
10
+
11
+ ## Example
12
+
13
+ ```ruby
14
+ require 'citypay_api_client'
15
+
16
+ instance = CityPayApiClient::PaylinkAttachmentResult.new(
17
+ name: null,
18
+ result: null,
19
+ url: null
20
+ )
21
+ ```
22
+