trevol 0.1.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 (231) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +15 -0
  3. data/GENERADO.md +14 -0
  4. data/LICENSE +21 -0
  5. data/README.md +173 -0
  6. data/lib/trevol/client.rb +94 -0
  7. data/lib/trevol/errors.rb +152 -0
  8. data/lib/trevol/llave.rb +21 -0
  9. data/lib/trevol/paginacion.rb +41 -0
  10. data/lib/trevol/transporte.rb +173 -0
  11. data/lib/trevol/webhook.rb +100 -0
  12. data/lib/trevol.rb +18 -0
  13. data/lib/trevol_generado/api/balance_api.rb +220 -0
  14. data/lib/trevol_generado/api/credit_notes_api.rb +671 -0
  15. data/lib/trevol_generado/api/debit_notes_api.rb +671 -0
  16. data/lib/trevol_generado/api/equivalent_document_adjustments_api.rb +691 -0
  17. data/lib/trevol_generado/api/equivalent_documents_api.rb +698 -0
  18. data/lib/trevol_generado/api/events_api.rb +231 -0
  19. data/lib/trevol_generado/api/general_api.rb +201 -0
  20. data/lib/trevol_generado/api/invoices_api.rb +736 -0
  21. data/lib/trevol_generado/api/payroll_adjustments_api.rb +637 -0
  22. data/lib/trevol_generado/api/payrolls_api.rb +637 -0
  23. data/lib/trevol_generado/api/radian_events_api.rb +431 -0
  24. data/lib/trevol_generado/api/requests_api.rb +97 -0
  25. data/lib/trevol_generado/api/support_document_adjustments_api.rb +565 -0
  26. data/lib/trevol_generado/api/support_documents_api.rb +565 -0
  27. data/lib/trevol_generado/api/webhook_endpoints_api.rb +556 -0
  28. data/lib/trevol_generado/api_client.rb +441 -0
  29. data/lib/trevol_generado/api_error.rb +58 -0
  30. data/lib/trevol_generado/api_model_base.rb +88 -0
  31. data/lib/trevol_generado/configuration.rb +392 -0
  32. data/lib/trevol_generado/models/acquirer.rb +209 -0
  33. data/lib/trevol_generado/models/air_collection.rb +205 -0
  34. data/lib/trevol_generado/models/air_extension.rb +216 -0
  35. data/lib/trevol_generado/models/allowance_charge.rb +250 -0
  36. data/lib/trevol_generado/models/alternative_currency.rb +180 -0
  37. data/lib/trevol_generado/models/balance.rb +244 -0
  38. data/lib/trevol_generado/models/balance_event_data.rb +172 -0
  39. data/lib/trevol_generado/models/balance_transaction.rb +265 -0
  40. data/lib/trevol_generado/models/balance_transaction_company.rb +172 -0
  41. data/lib/trevol_generado/models/balance_transaction_document.rb +173 -0
  42. data/lib/trevol_generado/models/balance_transaction_list.rb +191 -0
  43. data/lib/trevol_generado/models/carrier.rb +219 -0
  44. data/lib/trevol_generado/models/certificate_event_data.rb +180 -0
  45. data/lib/trevol_generado/models/cinema_extension.rb +214 -0
  46. data/lib/trevol_generado/models/cinema_screening.rb +256 -0
  47. data/lib/trevol_generado/models/company.rb +267 -0
  48. data/lib/trevol_generado/models/company_key.rb +182 -0
  49. data/lib/trevol_generado/models/company_numbering.rb +201 -0
  50. data/lib/trevol_generado/models/consumption.rb +246 -0
  51. data/lib/trevol_generado/models/consumption_adjustment.rb +204 -0
  52. data/lib/trevol_generado/models/contingency.rb +160 -0
  53. data/lib/trevol_generado/models/credit_note_list.rb +191 -0
  54. data/lib/trevol_generado/models/currency.rb +241 -0
  55. data/lib/trevol_generado/models/customer.rb +360 -0
  56. data/lib/trevol_generado/models/debit_note_list.rb +191 -0
  57. data/lib/trevol_generado/models/deleted_object.rb +178 -0
  58. data/lib/trevol_generado/models/delivery.rb +200 -0
  59. data/lib/trevol_generado/models/delivery_email.rb +181 -0
  60. data/lib/trevol_generado/models/delivery_terms.rb +169 -0
  61. data/lib/trevol_generado/models/dian_result.rb +182 -0
  62. data/lib/trevol_generado/models/dian_rule.rb +216 -0
  63. data/lib/trevol_generado/models/document.rb +432 -0
  64. data/lib/trevol_generado/models/document_event_data.rb +315 -0
  65. data/lib/trevol_generado/models/document_reference.rb +169 -0
  66. data/lib/trevol_generado/models/document_totals.rb +299 -0
  67. data/lib/trevol_generado/models/document_totals_currency.rb +197 -0
  68. data/lib/trevol_generado/models/document_totals_item.rb +196 -0
  69. data/lib/trevol_generado/models/document_totals_tax.rb +197 -0
  70. data/lib/trevol_generado/models/document_totals_withholding.rb +206 -0
  71. data/lib/trevol_generado/models/equivalent_adjustment_item.rb +374 -0
  72. data/lib/trevol_generado/models/equivalent_document.rb +470 -0
  73. data/lib/trevol_generado/models/equivalent_document_adjustment.rb +440 -0
  74. data/lib/trevol_generado/models/equivalent_document_adjustment_input.rb +388 -0
  75. data/lib/trevol_generado/models/equivalent_document_adjustment_list.rb +191 -0
  76. data/lib/trevol_generado/models/equivalent_document_contingency.rb +181 -0
  77. data/lib/trevol_generado/models/equivalent_document_contingency_backup.rb +171 -0
  78. data/lib/trevol_generado/models/equivalent_document_event_data.rb +313 -0
  79. data/lib/trevol_generado/models/equivalent_document_input.rb +365 -0
  80. data/lib/trevol_generado/models/equivalent_document_list.rb +191 -0
  81. data/lib/trevol_generado/models/equivalent_document_reference.rb +241 -0
  82. data/lib/trevol_generado/models/equivalent_item.rb +387 -0
  83. data/lib/trevol_generado/models/event.rb +223 -0
  84. data/lib/trevol_generado/models/event_claim.rb +170 -0
  85. data/lib/trevol_generado/models/event_delivery.rb +178 -0
  86. data/lib/trevol_generado/models/event_delivery_email.rb +161 -0
  87. data/lib/trevol_generado/models/event_dian_result.rb +173 -0
  88. data/lib/trevol_generado/models/event_dian_rule.rb +170 -0
  89. data/lib/trevol_generado/models/event_document_error.rb +170 -0
  90. data/lib/trevol_generado/models/event_equivalent_document_ref.rb +161 -0
  91. data/lib/trevol_generado/models/event_error.rb +170 -0
  92. data/lib/trevol_generado/models/event_invoice_ref.rb +161 -0
  93. data/lib/trevol_generado/models/event_list.rb +191 -0
  94. data/lib/trevol_generado/models/event_payroll_ref.rb +160 -0
  95. data/lib/trevol_generado/models/event_radian_invoice_ref.rb +181 -0
  96. data/lib/trevol_generado/models/event_resend_input.rb +177 -0
  97. data/lib/trevol_generado/models/event_support_document_ref.rb +161 -0
  98. data/lib/trevol_generado/models/extension.rb +215 -0
  99. data/lib/trevol_generado/models/foreign_address.rb +218 -0
  100. data/lib/trevol_generado/models/free_of_charge.rb +170 -0
  101. data/lib/trevol_generado/models/game.rb +203 -0
  102. data/lib/trevol_generado/models/game_credit.rb +204 -0
  103. data/lib/trevol_generado/models/games_extension.rb +216 -0
  104. data/lib/trevol_generado/models/games_venue.rb +204 -0
  105. data/lib/trevol_generado/models/interoperability.rb +205 -0
  106. data/lib/trevol_generado/models/interoperability_collection.rb +171 -0
  107. data/lib/trevol_generado/models/interoperability_data.rb +186 -0
  108. data/lib/trevol_generado/models/invoice_input.rb +364 -0
  109. data/lib/trevol_generado/models/invoice_list.rb +191 -0
  110. data/lib/trevol_generado/models/invoice_reference.rb +198 -0
  111. data/lib/trevol_generado/models/item.rb +439 -0
  112. data/lib/trevol_generado/models/item_allowance.rb +190 -0
  113. data/lib/trevol_generado/models/item_consignment.rb +286 -0
  114. data/lib/trevol_generado/models/item_mandator.rb +231 -0
  115. data/lib/trevol_generado/models/item_notary.rb +204 -0
  116. data/lib/trevol_generado/models/item_property.rb +223 -0
  117. data/lib/trevol_generado/models/item_tax.rb +246 -0
  118. data/lib/trevol_generado/models/item_withholding.rb +214 -0
  119. data/lib/trevol_generado/models/meter.rb +233 -0
  120. data/lib/trevol_generado/models/note_input.rb +329 -0
  121. data/lib/trevol_generado/models/numbering.rb +178 -0
  122. data/lib/trevol_generado/models/numbering_expiring_event_data.rb +209 -0
  123. data/lib/trevol_generado/models/numbering_low_event_data.rb +209 -0
  124. data/lib/trevol_generado/models/origin_note.rb +230 -0
  125. data/lib/trevol_generado/models/payment.rb +232 -0
  126. data/lib/trevol_generado/models/payment_method.rb +187 -0
  127. data/lib/trevol_generado/models/payroll.rb +455 -0
  128. data/lib/trevol_generado/models/payroll_adjustment.rb +467 -0
  129. data/lib/trevol_generado/models/payroll_adjustment_input.rb +362 -0
  130. data/lib/trevol_generado/models/payroll_adjustment_list.rb +191 -0
  131. data/lib/trevol_generado/models/payroll_basic.rb +204 -0
  132. data/lib/trevol_generado/models/payroll_compensated_vacation.rb +204 -0
  133. data/lib/trevol_generado/models/payroll_compensation.rb +205 -0
  134. data/lib/trevol_generado/models/payroll_deductions.rb +370 -0
  135. data/lib/trevol_generado/models/payroll_disability.rb +249 -0
  136. data/lib/trevol_generado/models/payroll_earnings.rb +406 -0
  137. data/lib/trevol_generado/models/payroll_employee.rb +437 -0
  138. data/lib/trevol_generado/models/payroll_employer.rb +238 -0
  139. data/lib/trevol_generado/models/payroll_epctv_bonus.rb +191 -0
  140. data/lib/trevol_generado/models/payroll_event_data.rb +303 -0
  141. data/lib/trevol_generado/models/payroll_files.rb +179 -0
  142. data/lib/trevol_generado/models/payroll_input.rb +420 -0
  143. data/lib/trevol_generado/models/payroll_leaves.rb +184 -0
  144. data/lib/trevol_generado/models/payroll_list.rb +191 -0
  145. data/lib/trevol_generado/models/payroll_loan.rb +204 -0
  146. data/lib/trevol_generado/models/payroll_novelty.rb +177 -0
  147. data/lib/trevol_generado/models/payroll_other_concept.rb +197 -0
  148. data/lib/trevol_generado/models/payroll_overtime.rb +262 -0
  149. data/lib/trevol_generado/models/payroll_paid_period.rb +222 -0
  150. data/lib/trevol_generado/models/payroll_payment.rb +215 -0
  151. data/lib/trevol_generado/models/payroll_percent_amount.rb +205 -0
  152. data/lib/trevol_generado/models/payroll_period.rb +247 -0
  153. data/lib/trevol_generado/models/payroll_place.rb +179 -0
  154. data/lib/trevol_generado/models/payroll_reference.rb +188 -0
  155. data/lib/trevol_generado/models/payroll_salary_amounts.rb +171 -0
  156. data/lib/trevol_generado/models/payroll_sanction.rb +205 -0
  157. data/lib/trevol_generado/models/payroll_service_bonus.rb +214 -0
  158. data/lib/trevol_generado/models/payroll_severance.rb +232 -0
  159. data/lib/trevol_generado/models/payroll_solidarity_fund.rb +191 -0
  160. data/lib/trevol_generado/models/payroll_totals.rb +188 -0
  161. data/lib/trevol_generado/models/payroll_transport.rb +181 -0
  162. data/lib/trevol_generado/models/payroll_unpaid_period.rb +195 -0
  163. data/lib/trevol_generado/models/payroll_vacation.rb +173 -0
  164. data/lib/trevol_generado/models/payroll_workplace.rb +188 -0
  165. data/lib/trevol_generado/models/period.rb +169 -0
  166. data/lib/trevol_generado/models/physical_document.rb +179 -0
  167. data/lib/trevol_generado/models/pos.rb +186 -0
  168. data/lib/trevol_generado/models/pos_buyer.rb +181 -0
  169. data/lib/trevol_generado/models/pos_register.rb +269 -0
  170. data/lib/trevol_generado/models/prepayment.rb +248 -0
  171. data/lib/trevol_generado/models/preview.rb +195 -0
  172. data/lib/trevol_generado/models/problem.rb +329 -0
  173. data/lib/trevol_generado/models/problem_error.rb +178 -0
  174. data/lib/trevol_generado/models/public_services_extension.rb +385 -0
  175. data/lib/trevol_generado/models/radian_event.rb +359 -0
  176. data/lib/trevol_generado/models/radian_event_data.rb +289 -0
  177. data/lib/trevol_generado/models/radian_event_input.rb +284 -0
  178. data/lib/trevol_generado/models/radian_event_invoice.rb +208 -0
  179. data/lib/trevol_generado/models/radian_event_list.rb +191 -0
  180. data/lib/trevol_generado/models/received_invoice.rb +200 -0
  181. data/lib/trevol_generado/models/received_invoice_issuer.rb +190 -0
  182. data/lib/trevol_generado/models/references.rb +182 -0
  183. data/lib/trevol_generado/models/request_list.rb +191 -0
  184. data/lib/trevol_generado/models/request_log.rb +275 -0
  185. data/lib/trevol_generado/models/seller.rb +385 -0
  186. data/lib/trevol_generado/models/shipment.rb +178 -0
  187. data/lib/trevol_generado/models/show_event.rb +276 -0
  188. data/lib/trevol_generado/models/show_extension.rb +203 -0
  189. data/lib/trevol_generado/models/show_producer.rb +212 -0
  190. data/lib/trevol_generado/models/standard_code.rb +169 -0
  191. data/lib/trevol_generado/models/stock_exchange_extension.rb +320 -0
  192. data/lib/trevol_generado/models/stock_exchange_prices.rb +169 -0
  193. data/lib/trevol_generado/models/support_adjustment_item.rb +295 -0
  194. data/lib/trevol_generado/models/support_adjustment_reference.rb +188 -0
  195. data/lib/trevol_generado/models/support_currency.rb +231 -0
  196. data/lib/trevol_generado/models/support_document.rb +401 -0
  197. data/lib/trevol_generado/models/support_document_adjustment.rb +409 -0
  198. data/lib/trevol_generado/models/support_document_adjustment_input.rb +331 -0
  199. data/lib/trevol_generado/models/support_document_adjustment_list.rb +191 -0
  200. data/lib/trevol_generado/models/support_document_delivery.rb +199 -0
  201. data/lib/trevol_generado/models/support_document_event_data.rb +305 -0
  202. data/lib/trevol_generado/models/support_document_input.rb +331 -0
  203. data/lib/trevol_generado/models/support_document_list.rb +191 -0
  204. data/lib/trevol_generado/models/support_document_reference.rb +198 -0
  205. data/lib/trevol_generado/models/support_item.rb +317 -0
  206. data/lib/trevol_generado/models/support_item_charge.rb +180 -0
  207. data/lib/trevol_generado/models/support_item_tax.rb +197 -0
  208. data/lib/trevol_generado/models/support_item_withholding.rb +205 -0
  209. data/lib/trevol_generado/models/tacit_acceptance.rb +224 -0
  210. data/lib/trevol_generado/models/tacit_acceptance_rule.rb +226 -0
  211. data/lib/trevol_generado/models/test_event_data.rb +171 -0
  212. data/lib/trevol_generado/models/third_party_charge.rb +277 -0
  213. data/lib/trevol_generado/models/third_party_company.rb +203 -0
  214. data/lib/trevol_generado/models/top_up.rb +199 -0
  215. data/lib/trevol_generado/models/top_up_buyer.rb +352 -0
  216. data/lib/trevol_generado/models/top_up_input.rb +187 -0
  217. data/lib/trevol_generado/models/top_up_wompi.rb +209 -0
  218. data/lib/trevol_generado/models/transport_extension.rb +281 -0
  219. data/lib/trevol_generado/models/webhook_delivery.rb +267 -0
  220. data/lib/trevol_generado/models/webhook_delivery_attempt.rb +192 -0
  221. data/lib/trevol_generado/models/webhook_delivery_list.rb +191 -0
  222. data/lib/trevol_generado/models/webhook_endpoint.rb +317 -0
  223. data/lib/trevol_generado/models/webhook_endpoint_input.rb +229 -0
  224. data/lib/trevol_generado/models/webhook_endpoint_list.rb +191 -0
  225. data/lib/trevol_generado/models/webhook_endpoint_rotate_input.rb +160 -0
  226. data/lib/trevol_generado/models/webhook_endpoint_update.rb +227 -0
  227. data/lib/trevol_generado/models/withholding.rb +224 -0
  228. data/lib/trevol_generado/tablas.rb +243 -0
  229. data/lib/trevol_generado/version.rb +15 -0
  230. data/lib/trevol_generado.rb +251 -0
  231. metadata +386 -0
@@ -0,0 +1,637 @@
1
+ =begin
2
+ #API de Trevol
3
+
4
+ #Trevol API. Documentación: https://platform.trevol.si/docs
5
+
6
+ The version of the OpenAPI document: 2026-10-22
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.26.0
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module TrevolGenerado
16
+ class PayrollsApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Corregir una nómina electrónica rechazada (mismo número) y reenviarla
23
+ # Corrige una nómina rechazada con el **mismo número** y la vuelve a enviar. `409 invalid_state` si el set de pruebas la está validando. Solo si el documento está `rejected`, `error` o `pending`. Uno `accepted` no se corrige (se ajusta con una nota) y uno que la DIAN todavía verifica es `409 invalid_state`: espera el resultado. El `external_id` y la numeración no se cambian. Pide `Idempotency-Key`.
24
+ # @param id [String]
25
+ # @param payroll_input [PayrollInput]
26
+ # @param [Hash] opts the optional parameters
27
+ # @option opts [String] :idempotency_key Obligatoria: 1 a 255 caracteres ASCII visibles, única por pedido (7 días).
28
+ # @return [Payroll]
29
+ def correct_payroll(id, payroll_input, opts = {})
30
+ data, _status_code, _headers = correct_payroll_with_http_info(id, payroll_input, opts)
31
+ data
32
+ end
33
+
34
+ # Corregir una nómina electrónica rechazada (mismo número) y reenviarla
35
+ # Corrige una nómina rechazada con el **mismo número** y la vuelve a enviar. `409 invalid_state` si el set de pruebas la está validando. Solo si el documento está `rejected`, `error` o `pending`. Uno `accepted` no se corrige (se ajusta con una nota) y uno que la DIAN todavía verifica es `409 invalid_state`: espera el resultado. El `external_id` y la numeración no se cambian. Pide `Idempotency-Key`.
36
+ # @param id [String]
37
+ # @param payroll_input [PayrollInput]
38
+ # @param [Hash] opts the optional parameters
39
+ # @option opts [String] :idempotency_key Obligatoria: 1 a 255 caracteres ASCII visibles, única por pedido (7 días).
40
+ # @return [Array<(Payroll, Integer, Hash)>] Payroll data, response status code and response headers
41
+ def correct_payroll_with_http_info(id, payroll_input, opts = {})
42
+ if @api_client.config.debugging
43
+ @api_client.config.logger.debug 'Calling API: PayrollsApi.correct_payroll ...'
44
+ end
45
+ # verify the required parameter 'id' is set
46
+ if @api_client.config.client_side_validation && id.nil?
47
+ fail ArgumentError, "Missing the required parameter 'id' when calling PayrollsApi.correct_payroll"
48
+ end
49
+ # verify the required parameter 'payroll_input' is set
50
+ if @api_client.config.client_side_validation && payroll_input.nil?
51
+ fail ArgumentError, "Missing the required parameter 'payroll_input' when calling PayrollsApi.correct_payroll"
52
+ end
53
+ # resource path
54
+ local_var_path = '/payrolls/{id}'.sub('{id}', CGI.escape(id.to_s))
55
+
56
+ # query parameters
57
+ query_params = opts[:query_params] || {}
58
+
59
+ # header parameters
60
+ header_params = opts[:header_params] || {}
61
+ # HTTP header 'Accept' (if needed)
62
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'application/problem+json']) unless header_params['Accept']
63
+ # HTTP header 'Content-Type'
64
+ content_type = @api_client.select_header_content_type(['application/json'])
65
+ if !content_type.nil?
66
+ header_params['Content-Type'] = content_type
67
+ end
68
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
69
+
70
+ # form parameters
71
+ form_params = opts[:form_params] || {}
72
+
73
+ # http body (model)
74
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(payroll_input)
75
+
76
+ # return_type
77
+ return_type = opts[:debug_return_type] || 'Payroll'
78
+
79
+ # auth_names
80
+ auth_names = opts[:debug_auth_names] || ['llave']
81
+
82
+ new_options = opts.merge(
83
+ :operation => :"PayrollsApi.correct_payroll",
84
+ :header_params => header_params,
85
+ :query_params => query_params,
86
+ :form_params => form_params,
87
+ :body => post_body,
88
+ :auth_names => auth_names,
89
+ :return_type => return_type
90
+ )
91
+
92
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
93
+ if @api_client.config.debugging
94
+ @api_client.config.logger.debug "API called: PayrollsApi#correct_payroll\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
95
+ end
96
+ return data, status_code, headers
97
+ end
98
+
99
+ # Emitir una nómina electrónica
100
+ # Emite el documento soporte de pago de **nómina electrónica** (102) de un trabajador para un periodo. Trevol valida todo el contrato (periodo, trabajador, devengados y deducciones) ANTES de reservar, calcula los totales, numera (prefijo de nómina de la empresa), firma y lo manda a la DIAN. **En producción hay un solo 102 por trabajador y por mes** (art. 1.5.3.2.2): otro es `409 duplicate_document` con `existing_id`; para cambiarlo usa `POST /v1/payroll_adjustments`. La empresa debe tener la nómina habilitada ante la DIAN (`company_not_enabled`, `payroll_not_enabled`): con una llave `live`, `habilitada`; con una `test`, también el set de pruebas (`GET /v1/company` → `capabilities.payroll`). En el set de pruebas de habilitación responde `202 validating` en las dos versiones y reintentar no lo reenvía. No hay PDF ni correo: `xml`, `zip` y `dian_response`. Se cobra por empleado. Los datos del trabajador solo salen al dueño de la llave: no van en los webhooks ni en el registro de peticiones, y la respuesta guardada para la idempotencia no los copia. **Respuestas.** `201` la DIAN lo validó (`status: accepted`). `202` solo en la versión 2026-10-22: la DIAN no contestó (`processing`), otra petición lo está enviando (`sending`) o, en habilitación, el set de pruebas todavía lo valida (`validating`, en las dos versiones); trae `Location` y `Retry-After`, y el resultado llega por GET y por webhook: **no crees otro documento para la misma operación**. `422` `validation_error` (se revisó a fondo ANTES de reservar: no se gastó el número, y `errors[]` dice el campo), `dian_rejected` (con `document` y las reglas traducidas; corrige con `PUT` y el mismo número), `company_not_enabled` o `numbering_unavailable` (con `reason`). `402` `insufficient_balance` (producción sin saldo: queda `pending` con su número). `409` `external_id_in_use` o `duplicate_document` (con `existing_id`). `503` `dian_unavailable` en la 2026-10-21. Pide `Idempotency-Key`: repetir la misma devuelve lo mismo sin enviar nada.
101
+ # @param payroll_input [PayrollInput]
102
+ # @param [Hash] opts the optional parameters
103
+ # @option opts [String] :idempotency_key Obligatoria: 1 a 255 caracteres ASCII visibles, única por pedido (7 días).
104
+ # @return [Payroll]
105
+ def create_payroll(payroll_input, opts = {})
106
+ data, _status_code, _headers = create_payroll_with_http_info(payroll_input, opts)
107
+ data
108
+ end
109
+
110
+ # Emitir una nómina electrónica
111
+ # Emite el documento soporte de pago de **nómina electrónica** (102) de un trabajador para un periodo. Trevol valida todo el contrato (periodo, trabajador, devengados y deducciones) ANTES de reservar, calcula los totales, numera (prefijo de nómina de la empresa), firma y lo manda a la DIAN. **En producción hay un solo 102 por trabajador y por mes** (art. 1.5.3.2.2): otro es &#x60;409 duplicate_document&#x60; con &#x60;existing_id&#x60;; para cambiarlo usa &#x60;POST /v1/payroll_adjustments&#x60;. La empresa debe tener la nómina habilitada ante la DIAN (&#x60;company_not_enabled&#x60;, &#x60;payroll_not_enabled&#x60;): con una llave &#x60;live&#x60;, &#x60;habilitada&#x60;; con una &#x60;test&#x60;, también el set de pruebas (&#x60;GET /v1/company&#x60; → &#x60;capabilities.payroll&#x60;). En el set de pruebas de habilitación responde &#x60;202 validating&#x60; en las dos versiones y reintentar no lo reenvía. No hay PDF ni correo: &#x60;xml&#x60;, &#x60;zip&#x60; y &#x60;dian_response&#x60;. Se cobra por empleado. Los datos del trabajador solo salen al dueño de la llave: no van en los webhooks ni en el registro de peticiones, y la respuesta guardada para la idempotencia no los copia. **Respuestas.** &#x60;201&#x60; la DIAN lo validó (&#x60;status: accepted&#x60;). &#x60;202&#x60; solo en la versión 2026-10-22: la DIAN no contestó (&#x60;processing&#x60;), otra petición lo está enviando (&#x60;sending&#x60;) o, en habilitación, el set de pruebas todavía lo valida (&#x60;validating&#x60;, en las dos versiones); trae &#x60;Location&#x60; y &#x60;Retry-After&#x60;, y el resultado llega por GET y por webhook: **no crees otro documento para la misma operación**. &#x60;422&#x60; &#x60;validation_error&#x60; (se revisó a fondo ANTES de reservar: no se gastó el número, y &#x60;errors[]&#x60; dice el campo), &#x60;dian_rejected&#x60; (con &#x60;document&#x60; y las reglas traducidas; corrige con &#x60;PUT&#x60; y el mismo número), &#x60;company_not_enabled&#x60; o &#x60;numbering_unavailable&#x60; (con &#x60;reason&#x60;). &#x60;402&#x60; &#x60;insufficient_balance&#x60; (producción sin saldo: queda &#x60;pending&#x60; con su número). &#x60;409&#x60; &#x60;external_id_in_use&#x60; o &#x60;duplicate_document&#x60; (con &#x60;existing_id&#x60;). &#x60;503&#x60; &#x60;dian_unavailable&#x60; en la 2026-10-21. Pide &#x60;Idempotency-Key&#x60;: repetir la misma devuelve lo mismo sin enviar nada.
112
+ # @param payroll_input [PayrollInput]
113
+ # @param [Hash] opts the optional parameters
114
+ # @option opts [String] :idempotency_key Obligatoria: 1 a 255 caracteres ASCII visibles, única por pedido (7 días).
115
+ # @return [Array<(Payroll, Integer, Hash)>] Payroll data, response status code and response headers
116
+ def create_payroll_with_http_info(payroll_input, opts = {})
117
+ if @api_client.config.debugging
118
+ @api_client.config.logger.debug 'Calling API: PayrollsApi.create_payroll ...'
119
+ end
120
+ # verify the required parameter 'payroll_input' is set
121
+ if @api_client.config.client_side_validation && payroll_input.nil?
122
+ fail ArgumentError, "Missing the required parameter 'payroll_input' when calling PayrollsApi.create_payroll"
123
+ end
124
+ # resource path
125
+ local_var_path = '/payrolls'
126
+
127
+ # query parameters
128
+ query_params = opts[:query_params] || {}
129
+
130
+ # header parameters
131
+ header_params = opts[:header_params] || {}
132
+ # HTTP header 'Accept' (if needed)
133
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'application/problem+json']) unless header_params['Accept']
134
+ # HTTP header 'Content-Type'
135
+ content_type = @api_client.select_header_content_type(['application/json'])
136
+ if !content_type.nil?
137
+ header_params['Content-Type'] = content_type
138
+ end
139
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
140
+
141
+ # form parameters
142
+ form_params = opts[:form_params] || {}
143
+
144
+ # http body (model)
145
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(payroll_input)
146
+
147
+ # return_type
148
+ return_type = opts[:debug_return_type] || 'Payroll'
149
+
150
+ # auth_names
151
+ auth_names = opts[:debug_auth_names] || ['llave']
152
+
153
+ new_options = opts.merge(
154
+ :operation => :"PayrollsApi.create_payroll",
155
+ :header_params => header_params,
156
+ :query_params => query_params,
157
+ :form_params => form_params,
158
+ :body => post_body,
159
+ :auth_names => auth_names,
160
+ :return_type => return_type
161
+ )
162
+
163
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
164
+ if @api_client.config.debugging
165
+ @api_client.config.logger.debug "API called: PayrollsApi#create_payroll\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
166
+ end
167
+ return data, status_code, headers
168
+ end
169
+
170
+ # Archivo dian_response
171
+ # El `ApplicationResponse` con que la DIAN contestó (`application/xml`), si la DIAN lo devolvió.
172
+ # @param id [String]
173
+ # @param [Hash] opts the optional parameters
174
+ # @return [File]
175
+ def download_payroll_dian_response(id, opts = {})
176
+ data, _status_code, _headers = download_payroll_dian_response_with_http_info(id, opts)
177
+ data
178
+ end
179
+
180
+ # Archivo dian_response
181
+ # El &#x60;ApplicationResponse&#x60; con que la DIAN contestó (&#x60;application/xml&#x60;), si la DIAN lo devolvió.
182
+ # @param id [String]
183
+ # @param [Hash] opts the optional parameters
184
+ # @return [Array<(File, Integer, Hash)>] File data, response status code and response headers
185
+ def download_payroll_dian_response_with_http_info(id, opts = {})
186
+ if @api_client.config.debugging
187
+ @api_client.config.logger.debug 'Calling API: PayrollsApi.download_payroll_dian_response ...'
188
+ end
189
+ # verify the required parameter 'id' is set
190
+ if @api_client.config.client_side_validation && id.nil?
191
+ fail ArgumentError, "Missing the required parameter 'id' when calling PayrollsApi.download_payroll_dian_response"
192
+ end
193
+ # resource path
194
+ local_var_path = '/payrolls/{id}/dian_response'.sub('{id}', CGI.escape(id.to_s))
195
+
196
+ # query parameters
197
+ query_params = opts[:query_params] || {}
198
+
199
+ # header parameters
200
+ header_params = opts[:header_params] || {}
201
+ # HTTP header 'Accept' (if needed)
202
+ header_params['Accept'] = @api_client.select_header_accept(['application/xml', 'application/problem+json']) unless header_params['Accept']
203
+
204
+ # form parameters
205
+ form_params = opts[:form_params] || {}
206
+
207
+ # http body (model)
208
+ post_body = opts[:debug_body]
209
+
210
+ # return_type
211
+ return_type = opts[:debug_return_type] || 'File'
212
+
213
+ # auth_names
214
+ auth_names = opts[:debug_auth_names] || ['llave']
215
+
216
+ new_options = opts.merge(
217
+ :operation => :"PayrollsApi.download_payroll_dian_response",
218
+ :header_params => header_params,
219
+ :query_params => query_params,
220
+ :form_params => form_params,
221
+ :body => post_body,
222
+ :auth_names => auth_names,
223
+ :return_type => return_type
224
+ )
225
+
226
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
227
+ if @api_client.config.debugging
228
+ @api_client.config.logger.debug "API called: PayrollsApi#download_payroll_dian_response\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
229
+ end
230
+ return data, status_code, headers
231
+ end
232
+
233
+ # Archivo xml
234
+ # El XML firmado que se mandó a la DIAN (`application/xml`).
235
+ # @param id [String]
236
+ # @param [Hash] opts the optional parameters
237
+ # @return [File]
238
+ def download_payroll_xml(id, opts = {})
239
+ data, _status_code, _headers = download_payroll_xml_with_http_info(id, opts)
240
+ data
241
+ end
242
+
243
+ # Archivo xml
244
+ # El XML firmado que se mandó a la DIAN (&#x60;application/xml&#x60;).
245
+ # @param id [String]
246
+ # @param [Hash] opts the optional parameters
247
+ # @return [Array<(File, Integer, Hash)>] File data, response status code and response headers
248
+ def download_payroll_xml_with_http_info(id, opts = {})
249
+ if @api_client.config.debugging
250
+ @api_client.config.logger.debug 'Calling API: PayrollsApi.download_payroll_xml ...'
251
+ end
252
+ # verify the required parameter 'id' is set
253
+ if @api_client.config.client_side_validation && id.nil?
254
+ fail ArgumentError, "Missing the required parameter 'id' when calling PayrollsApi.download_payroll_xml"
255
+ end
256
+ # resource path
257
+ local_var_path = '/payrolls/{id}/xml'.sub('{id}', CGI.escape(id.to_s))
258
+
259
+ # query parameters
260
+ query_params = opts[:query_params] || {}
261
+
262
+ # header parameters
263
+ header_params = opts[:header_params] || {}
264
+ # HTTP header 'Accept' (if needed)
265
+ header_params['Accept'] = @api_client.select_header_accept(['application/xml', 'application/problem+json']) unless header_params['Accept']
266
+
267
+ # form parameters
268
+ form_params = opts[:form_params] || {}
269
+
270
+ # http body (model)
271
+ post_body = opts[:debug_body]
272
+
273
+ # return_type
274
+ return_type = opts[:debug_return_type] || 'File'
275
+
276
+ # auth_names
277
+ auth_names = opts[:debug_auth_names] || ['llave']
278
+
279
+ new_options = opts.merge(
280
+ :operation => :"PayrollsApi.download_payroll_xml",
281
+ :header_params => header_params,
282
+ :query_params => query_params,
283
+ :form_params => form_params,
284
+ :body => post_body,
285
+ :auth_names => auth_names,
286
+ :return_type => return_type
287
+ )
288
+
289
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
290
+ if @api_client.config.debugging
291
+ @api_client.config.logger.debug "API called: PayrollsApi#download_payroll_xml\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
292
+ end
293
+ return data, status_code, headers
294
+ end
295
+
296
+ # Archivo zip
297
+ # El ZIP del documento (`application/zip`).
298
+ # @param id [String]
299
+ # @param [Hash] opts the optional parameters
300
+ # @return [File]
301
+ def download_payroll_zip(id, opts = {})
302
+ data, _status_code, _headers = download_payroll_zip_with_http_info(id, opts)
303
+ data
304
+ end
305
+
306
+ # Archivo zip
307
+ # El ZIP del documento (&#x60;application/zip&#x60;).
308
+ # @param id [String]
309
+ # @param [Hash] opts the optional parameters
310
+ # @return [Array<(File, Integer, Hash)>] File data, response status code and response headers
311
+ def download_payroll_zip_with_http_info(id, opts = {})
312
+ if @api_client.config.debugging
313
+ @api_client.config.logger.debug 'Calling API: PayrollsApi.download_payroll_zip ...'
314
+ end
315
+ # verify the required parameter 'id' is set
316
+ if @api_client.config.client_side_validation && id.nil?
317
+ fail ArgumentError, "Missing the required parameter 'id' when calling PayrollsApi.download_payroll_zip"
318
+ end
319
+ # resource path
320
+ local_var_path = '/payrolls/{id}/zip'.sub('{id}', CGI.escape(id.to_s))
321
+
322
+ # query parameters
323
+ query_params = opts[:query_params] || {}
324
+
325
+ # header parameters
326
+ header_params = opts[:header_params] || {}
327
+ # HTTP header 'Accept' (if needed)
328
+ header_params['Accept'] = @api_client.select_header_accept(['application/zip', 'application/problem+json']) unless header_params['Accept']
329
+
330
+ # form parameters
331
+ form_params = opts[:form_params] || {}
332
+
333
+ # http body (model)
334
+ post_body = opts[:debug_body]
335
+
336
+ # return_type
337
+ return_type = opts[:debug_return_type] || 'File'
338
+
339
+ # auth_names
340
+ auth_names = opts[:debug_auth_names] || ['llave']
341
+
342
+ new_options = opts.merge(
343
+ :operation => :"PayrollsApi.download_payroll_zip",
344
+ :header_params => header_params,
345
+ :query_params => query_params,
346
+ :form_params => form_params,
347
+ :body => post_body,
348
+ :auth_names => auth_names,
349
+ :return_type => return_type
350
+ )
351
+
352
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
353
+ if @api_client.config.debugging
354
+ @api_client.config.logger.debug "API called: PayrollsApi#download_payroll_zip\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
355
+ end
356
+ return data, status_code, headers
357
+ end
358
+
359
+ # Listar (nómina electrónica)
360
+ # Paginación por cursor y filtros `status`, `external_id`, `created_from`, `created_to`, `employee_code` (el código interno del empleado) y `period_end_from` / `period_end_to`. **No se filtra por el documento del trabajador**: la cédula en la URL quedaría en los registros del servidor.
361
+ # @param [Hash] opts the optional parameters
362
+ # @option opts [Integer] :limit
363
+ # @option opts [String] :starting_after
364
+ # @option opts [String] :status
365
+ # @option opts [String] :external_id
366
+ # @option opts [String] :created_from
367
+ # @option opts [String] :created_to
368
+ # @option opts [String] :employee_code
369
+ # @option opts [Date] :period_end_from
370
+ # @option opts [Date] :period_end_to
371
+ # @return [PayrollList]
372
+ def list_payrolls(opts = {})
373
+ data, _status_code, _headers = list_payrolls_with_http_info(opts)
374
+ data
375
+ end
376
+
377
+ # Listar (nómina electrónica)
378
+ # Paginación por cursor y filtros &#x60;status&#x60;, &#x60;external_id&#x60;, &#x60;created_from&#x60;, &#x60;created_to&#x60;, &#x60;employee_code&#x60; (el código interno del empleado) y &#x60;period_end_from&#x60; / &#x60;period_end_to&#x60;. **No se filtra por el documento del trabajador**: la cédula en la URL quedaría en los registros del servidor.
379
+ # @param [Hash] opts the optional parameters
380
+ # @option opts [Integer] :limit
381
+ # @option opts [String] :starting_after
382
+ # @option opts [String] :status
383
+ # @option opts [String] :external_id
384
+ # @option opts [String] :created_from
385
+ # @option opts [String] :created_to
386
+ # @option opts [String] :employee_code
387
+ # @option opts [Date] :period_end_from
388
+ # @option opts [Date] :period_end_to
389
+ # @return [Array<(PayrollList, Integer, Hash)>] PayrollList data, response status code and response headers
390
+ def list_payrolls_with_http_info(opts = {})
391
+ if @api_client.config.debugging
392
+ @api_client.config.logger.debug 'Calling API: PayrollsApi.list_payrolls ...'
393
+ end
394
+ # resource path
395
+ local_var_path = '/payrolls'
396
+
397
+ # query parameters
398
+ query_params = opts[:query_params] || {}
399
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
400
+ query_params[:'starting_after'] = opts[:'starting_after'] if !opts[:'starting_after'].nil?
401
+ query_params[:'status'] = opts[:'status'] if !opts[:'status'].nil?
402
+ query_params[:'external_id'] = opts[:'external_id'] if !opts[:'external_id'].nil?
403
+ query_params[:'created_from'] = opts[:'created_from'] if !opts[:'created_from'].nil?
404
+ query_params[:'created_to'] = opts[:'created_to'] if !opts[:'created_to'].nil?
405
+ query_params[:'employee_code'] = opts[:'employee_code'] if !opts[:'employee_code'].nil?
406
+ query_params[:'period_end_from'] = opts[:'period_end_from'] if !opts[:'period_end_from'].nil?
407
+ query_params[:'period_end_to'] = opts[:'period_end_to'] if !opts[:'period_end_to'].nil?
408
+
409
+ # header parameters
410
+ header_params = opts[:header_params] || {}
411
+ # HTTP header 'Accept' (if needed)
412
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'application/problem+json']) unless header_params['Accept']
413
+
414
+ # form parameters
415
+ form_params = opts[:form_params] || {}
416
+
417
+ # http body (model)
418
+ post_body = opts[:debug_body]
419
+
420
+ # return_type
421
+ return_type = opts[:debug_return_type] || 'PayrollList'
422
+
423
+ # auth_names
424
+ auth_names = opts[:debug_auth_names] || ['llave']
425
+
426
+ new_options = opts.merge(
427
+ :operation => :"PayrollsApi.list_payrolls",
428
+ :header_params => header_params,
429
+ :query_params => query_params,
430
+ :form_params => form_params,
431
+ :body => post_body,
432
+ :auth_names => auth_names,
433
+ :return_type => return_type
434
+ )
435
+
436
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
437
+ if @api_client.config.debugging
438
+ @api_client.config.logger.debug "API called: PayrollsApi#list_payrolls\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
439
+ end
440
+ return data, status_code, headers
441
+ end
442
+
443
+ # Calcular una nómina electrónica sin emitirla
444
+ # Valida y calcula los totales de la nómina **sin** reservar un número ni enviar nada. No pide `Idempotency-Key` y no se cobra. El trabajador que mandaste vuelve en la respuesta; Trevol no lo guarda.
445
+ # @param payroll_input [PayrollInput]
446
+ # @param [Hash] opts the optional parameters
447
+ # @return [Preview]
448
+ def preview_payroll(payroll_input, opts = {})
449
+ data, _status_code, _headers = preview_payroll_with_http_info(payroll_input, opts)
450
+ data
451
+ end
452
+
453
+ # Calcular una nómina electrónica sin emitirla
454
+ # Valida y calcula los totales de la nómina **sin** reservar un número ni enviar nada. No pide &#x60;Idempotency-Key&#x60; y no se cobra. El trabajador que mandaste vuelve en la respuesta; Trevol no lo guarda.
455
+ # @param payroll_input [PayrollInput]
456
+ # @param [Hash] opts the optional parameters
457
+ # @return [Array<(Preview, Integer, Hash)>] Preview data, response status code and response headers
458
+ def preview_payroll_with_http_info(payroll_input, opts = {})
459
+ if @api_client.config.debugging
460
+ @api_client.config.logger.debug 'Calling API: PayrollsApi.preview_payroll ...'
461
+ end
462
+ # verify the required parameter 'payroll_input' is set
463
+ if @api_client.config.client_side_validation && payroll_input.nil?
464
+ fail ArgumentError, "Missing the required parameter 'payroll_input' when calling PayrollsApi.preview_payroll"
465
+ end
466
+ # resource path
467
+ local_var_path = '/payrolls/preview'
468
+
469
+ # query parameters
470
+ query_params = opts[:query_params] || {}
471
+
472
+ # header parameters
473
+ header_params = opts[:header_params] || {}
474
+ # HTTP header 'Accept' (if needed)
475
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'application/problem+json']) unless header_params['Accept']
476
+ # HTTP header 'Content-Type'
477
+ content_type = @api_client.select_header_content_type(['application/json'])
478
+ if !content_type.nil?
479
+ header_params['Content-Type'] = content_type
480
+ end
481
+
482
+ # form parameters
483
+ form_params = opts[:form_params] || {}
484
+
485
+ # http body (model)
486
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(payroll_input)
487
+
488
+ # return_type
489
+ return_type = opts[:debug_return_type] || 'Preview'
490
+
491
+ # auth_names
492
+ auth_names = opts[:debug_auth_names] || ['llave']
493
+
494
+ new_options = opts.merge(
495
+ :operation => :"PayrollsApi.preview_payroll",
496
+ :header_params => header_params,
497
+ :query_params => query_params,
498
+ :form_params => form_params,
499
+ :body => post_body,
500
+ :auth_names => auth_names,
501
+ :return_type => return_type
502
+ )
503
+
504
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
505
+ if @api_client.config.debugging
506
+ @api_client.config.logger.debug "API called: PayrollsApi#preview_payroll\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
507
+ end
508
+ return data, status_code, headers
509
+ end
510
+
511
+ # Una nómina electrónica
512
+ # La nómina tal como se emitió, con el trabajador, los devengados, las deducciones y los totales (`earnings`, `deductions`, `net`).
513
+ # @param id [String]
514
+ # @param [Hash] opts the optional parameters
515
+ # @return [Payroll]
516
+ def retrieve_payroll(id, opts = {})
517
+ data, _status_code, _headers = retrieve_payroll_with_http_info(id, opts)
518
+ data
519
+ end
520
+
521
+ # Una nómina electrónica
522
+ # La nómina tal como se emitió, con el trabajador, los devengados, las deducciones y los totales (&#x60;earnings&#x60;, &#x60;deductions&#x60;, &#x60;net&#x60;).
523
+ # @param id [String]
524
+ # @param [Hash] opts the optional parameters
525
+ # @return [Array<(Payroll, Integer, Hash)>] Payroll data, response status code and response headers
526
+ def retrieve_payroll_with_http_info(id, opts = {})
527
+ if @api_client.config.debugging
528
+ @api_client.config.logger.debug 'Calling API: PayrollsApi.retrieve_payroll ...'
529
+ end
530
+ # verify the required parameter 'id' is set
531
+ if @api_client.config.client_side_validation && id.nil?
532
+ fail ArgumentError, "Missing the required parameter 'id' when calling PayrollsApi.retrieve_payroll"
533
+ end
534
+ # resource path
535
+ local_var_path = '/payrolls/{id}'.sub('{id}', CGI.escape(id.to_s))
536
+
537
+ # query parameters
538
+ query_params = opts[:query_params] || {}
539
+
540
+ # header parameters
541
+ header_params = opts[:header_params] || {}
542
+ # HTTP header 'Accept' (if needed)
543
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'application/problem+json']) unless header_params['Accept']
544
+
545
+ # form parameters
546
+ form_params = opts[:form_params] || {}
547
+
548
+ # http body (model)
549
+ post_body = opts[:debug_body]
550
+
551
+ # return_type
552
+ return_type = opts[:debug_return_type] || 'Payroll'
553
+
554
+ # auth_names
555
+ auth_names = opts[:debug_auth_names] || ['llave']
556
+
557
+ new_options = opts.merge(
558
+ :operation => :"PayrollsApi.retrieve_payroll",
559
+ :header_params => header_params,
560
+ :query_params => query_params,
561
+ :form_params => form_params,
562
+ :body => post_body,
563
+ :auth_names => auth_names,
564
+ :return_type => return_type
565
+ )
566
+
567
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
568
+ if @api_client.config.debugging
569
+ @api_client.config.logger.debug "API called: PayrollsApi#retrieve_payroll\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
570
+ end
571
+ return data, status_code, headers
572
+ end
573
+
574
+ # Reenviar una pendiente o en error
575
+ # Vuelve a enviar una nómina `pending` o `error`. Si el set de pruebas la valida (`validating`), solo consulta. Sin cuerpo. Con un documento `accepted` responde `200` con el documento tal cual; con uno que la DIAN todavía verifica no reenvía nada (`202`); con uno `rejected` es `409 invalid_state` (se corrige con `PUT`). No pide `Idempotency-Key` (reintentarlo es seguro).
576
+ # @param id [String]
577
+ # @param [Hash] opts the optional parameters
578
+ # @return [Payroll]
579
+ def send_payroll(id, opts = {})
580
+ data, _status_code, _headers = send_payroll_with_http_info(id, opts)
581
+ data
582
+ end
583
+
584
+ # Reenviar una pendiente o en error
585
+ # Vuelve a enviar una nómina &#x60;pending&#x60; o &#x60;error&#x60;. Si el set de pruebas la valida (&#x60;validating&#x60;), solo consulta. Sin cuerpo. Con un documento &#x60;accepted&#x60; responde &#x60;200&#x60; con el documento tal cual; con uno que la DIAN todavía verifica no reenvía nada (&#x60;202&#x60;); con uno &#x60;rejected&#x60; es &#x60;409 invalid_state&#x60; (se corrige con &#x60;PUT&#x60;). No pide &#x60;Idempotency-Key&#x60; (reintentarlo es seguro).
586
+ # @param id [String]
587
+ # @param [Hash] opts the optional parameters
588
+ # @return [Array<(Payroll, Integer, Hash)>] Payroll data, response status code and response headers
589
+ def send_payroll_with_http_info(id, opts = {})
590
+ if @api_client.config.debugging
591
+ @api_client.config.logger.debug 'Calling API: PayrollsApi.send_payroll ...'
592
+ end
593
+ # verify the required parameter 'id' is set
594
+ if @api_client.config.client_side_validation && id.nil?
595
+ fail ArgumentError, "Missing the required parameter 'id' when calling PayrollsApi.send_payroll"
596
+ end
597
+ # resource path
598
+ local_var_path = '/payrolls/{id}/send'.sub('{id}', CGI.escape(id.to_s))
599
+
600
+ # query parameters
601
+ query_params = opts[:query_params] || {}
602
+
603
+ # header parameters
604
+ header_params = opts[:header_params] || {}
605
+ # HTTP header 'Accept' (if needed)
606
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'application/problem+json']) unless header_params['Accept']
607
+
608
+ # form parameters
609
+ form_params = opts[:form_params] || {}
610
+
611
+ # http body (model)
612
+ post_body = opts[:debug_body]
613
+
614
+ # return_type
615
+ return_type = opts[:debug_return_type] || 'Payroll'
616
+
617
+ # auth_names
618
+ auth_names = opts[:debug_auth_names] || ['llave']
619
+
620
+ new_options = opts.merge(
621
+ :operation => :"PayrollsApi.send_payroll",
622
+ :header_params => header_params,
623
+ :query_params => query_params,
624
+ :form_params => form_params,
625
+ :body => post_body,
626
+ :auth_names => auth_names,
627
+ :return_type => return_type
628
+ )
629
+
630
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
631
+ if @api_client.config.debugging
632
+ @api_client.config.logger.debug "API called: PayrollsApi#send_payroll\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
633
+ end
634
+ return data, status_code, headers
635
+ end
636
+ end
637
+ end