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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +15 -0
- data/GENERADO.md +14 -0
- data/LICENSE +21 -0
- data/README.md +173 -0
- data/lib/trevol/client.rb +94 -0
- data/lib/trevol/errors.rb +152 -0
- data/lib/trevol/llave.rb +21 -0
- data/lib/trevol/paginacion.rb +41 -0
- data/lib/trevol/transporte.rb +173 -0
- data/lib/trevol/webhook.rb +100 -0
- data/lib/trevol.rb +18 -0
- data/lib/trevol_generado/api/balance_api.rb +220 -0
- data/lib/trevol_generado/api/credit_notes_api.rb +671 -0
- data/lib/trevol_generado/api/debit_notes_api.rb +671 -0
- data/lib/trevol_generado/api/equivalent_document_adjustments_api.rb +691 -0
- data/lib/trevol_generado/api/equivalent_documents_api.rb +698 -0
- data/lib/trevol_generado/api/events_api.rb +231 -0
- data/lib/trevol_generado/api/general_api.rb +201 -0
- data/lib/trevol_generado/api/invoices_api.rb +736 -0
- data/lib/trevol_generado/api/payroll_adjustments_api.rb +637 -0
- data/lib/trevol_generado/api/payrolls_api.rb +637 -0
- data/lib/trevol_generado/api/radian_events_api.rb +431 -0
- data/lib/trevol_generado/api/requests_api.rb +97 -0
- data/lib/trevol_generado/api/support_document_adjustments_api.rb +565 -0
- data/lib/trevol_generado/api/support_documents_api.rb +565 -0
- data/lib/trevol_generado/api/webhook_endpoints_api.rb +556 -0
- data/lib/trevol_generado/api_client.rb +441 -0
- data/lib/trevol_generado/api_error.rb +58 -0
- data/lib/trevol_generado/api_model_base.rb +88 -0
- data/lib/trevol_generado/configuration.rb +392 -0
- data/lib/trevol_generado/models/acquirer.rb +209 -0
- data/lib/trevol_generado/models/air_collection.rb +205 -0
- data/lib/trevol_generado/models/air_extension.rb +216 -0
- data/lib/trevol_generado/models/allowance_charge.rb +250 -0
- data/lib/trevol_generado/models/alternative_currency.rb +180 -0
- data/lib/trevol_generado/models/balance.rb +244 -0
- data/lib/trevol_generado/models/balance_event_data.rb +172 -0
- data/lib/trevol_generado/models/balance_transaction.rb +265 -0
- data/lib/trevol_generado/models/balance_transaction_company.rb +172 -0
- data/lib/trevol_generado/models/balance_transaction_document.rb +173 -0
- data/lib/trevol_generado/models/balance_transaction_list.rb +191 -0
- data/lib/trevol_generado/models/carrier.rb +219 -0
- data/lib/trevol_generado/models/certificate_event_data.rb +180 -0
- data/lib/trevol_generado/models/cinema_extension.rb +214 -0
- data/lib/trevol_generado/models/cinema_screening.rb +256 -0
- data/lib/trevol_generado/models/company.rb +267 -0
- data/lib/trevol_generado/models/company_key.rb +182 -0
- data/lib/trevol_generado/models/company_numbering.rb +201 -0
- data/lib/trevol_generado/models/consumption.rb +246 -0
- data/lib/trevol_generado/models/consumption_adjustment.rb +204 -0
- data/lib/trevol_generado/models/contingency.rb +160 -0
- data/lib/trevol_generado/models/credit_note_list.rb +191 -0
- data/lib/trevol_generado/models/currency.rb +241 -0
- data/lib/trevol_generado/models/customer.rb +360 -0
- data/lib/trevol_generado/models/debit_note_list.rb +191 -0
- data/lib/trevol_generado/models/deleted_object.rb +178 -0
- data/lib/trevol_generado/models/delivery.rb +200 -0
- data/lib/trevol_generado/models/delivery_email.rb +181 -0
- data/lib/trevol_generado/models/delivery_terms.rb +169 -0
- data/lib/trevol_generado/models/dian_result.rb +182 -0
- data/lib/trevol_generado/models/dian_rule.rb +216 -0
- data/lib/trevol_generado/models/document.rb +432 -0
- data/lib/trevol_generado/models/document_event_data.rb +315 -0
- data/lib/trevol_generado/models/document_reference.rb +169 -0
- data/lib/trevol_generado/models/document_totals.rb +299 -0
- data/lib/trevol_generado/models/document_totals_currency.rb +197 -0
- data/lib/trevol_generado/models/document_totals_item.rb +196 -0
- data/lib/trevol_generado/models/document_totals_tax.rb +197 -0
- data/lib/trevol_generado/models/document_totals_withholding.rb +206 -0
- data/lib/trevol_generado/models/equivalent_adjustment_item.rb +374 -0
- data/lib/trevol_generado/models/equivalent_document.rb +470 -0
- data/lib/trevol_generado/models/equivalent_document_adjustment.rb +440 -0
- data/lib/trevol_generado/models/equivalent_document_adjustment_input.rb +388 -0
- data/lib/trevol_generado/models/equivalent_document_adjustment_list.rb +191 -0
- data/lib/trevol_generado/models/equivalent_document_contingency.rb +181 -0
- data/lib/trevol_generado/models/equivalent_document_contingency_backup.rb +171 -0
- data/lib/trevol_generado/models/equivalent_document_event_data.rb +313 -0
- data/lib/trevol_generado/models/equivalent_document_input.rb +365 -0
- data/lib/trevol_generado/models/equivalent_document_list.rb +191 -0
- data/lib/trevol_generado/models/equivalent_document_reference.rb +241 -0
- data/lib/trevol_generado/models/equivalent_item.rb +387 -0
- data/lib/trevol_generado/models/event.rb +223 -0
- data/lib/trevol_generado/models/event_claim.rb +170 -0
- data/lib/trevol_generado/models/event_delivery.rb +178 -0
- data/lib/trevol_generado/models/event_delivery_email.rb +161 -0
- data/lib/trevol_generado/models/event_dian_result.rb +173 -0
- data/lib/trevol_generado/models/event_dian_rule.rb +170 -0
- data/lib/trevol_generado/models/event_document_error.rb +170 -0
- data/lib/trevol_generado/models/event_equivalent_document_ref.rb +161 -0
- data/lib/trevol_generado/models/event_error.rb +170 -0
- data/lib/trevol_generado/models/event_invoice_ref.rb +161 -0
- data/lib/trevol_generado/models/event_list.rb +191 -0
- data/lib/trevol_generado/models/event_payroll_ref.rb +160 -0
- data/lib/trevol_generado/models/event_radian_invoice_ref.rb +181 -0
- data/lib/trevol_generado/models/event_resend_input.rb +177 -0
- data/lib/trevol_generado/models/event_support_document_ref.rb +161 -0
- data/lib/trevol_generado/models/extension.rb +215 -0
- data/lib/trevol_generado/models/foreign_address.rb +218 -0
- data/lib/trevol_generado/models/free_of_charge.rb +170 -0
- data/lib/trevol_generado/models/game.rb +203 -0
- data/lib/trevol_generado/models/game_credit.rb +204 -0
- data/lib/trevol_generado/models/games_extension.rb +216 -0
- data/lib/trevol_generado/models/games_venue.rb +204 -0
- data/lib/trevol_generado/models/interoperability.rb +205 -0
- data/lib/trevol_generado/models/interoperability_collection.rb +171 -0
- data/lib/trevol_generado/models/interoperability_data.rb +186 -0
- data/lib/trevol_generado/models/invoice_input.rb +364 -0
- data/lib/trevol_generado/models/invoice_list.rb +191 -0
- data/lib/trevol_generado/models/invoice_reference.rb +198 -0
- data/lib/trevol_generado/models/item.rb +439 -0
- data/lib/trevol_generado/models/item_allowance.rb +190 -0
- data/lib/trevol_generado/models/item_consignment.rb +286 -0
- data/lib/trevol_generado/models/item_mandator.rb +231 -0
- data/lib/trevol_generado/models/item_notary.rb +204 -0
- data/lib/trevol_generado/models/item_property.rb +223 -0
- data/lib/trevol_generado/models/item_tax.rb +246 -0
- data/lib/trevol_generado/models/item_withholding.rb +214 -0
- data/lib/trevol_generado/models/meter.rb +233 -0
- data/lib/trevol_generado/models/note_input.rb +329 -0
- data/lib/trevol_generado/models/numbering.rb +178 -0
- data/lib/trevol_generado/models/numbering_expiring_event_data.rb +209 -0
- data/lib/trevol_generado/models/numbering_low_event_data.rb +209 -0
- data/lib/trevol_generado/models/origin_note.rb +230 -0
- data/lib/trevol_generado/models/payment.rb +232 -0
- data/lib/trevol_generado/models/payment_method.rb +187 -0
- data/lib/trevol_generado/models/payroll.rb +455 -0
- data/lib/trevol_generado/models/payroll_adjustment.rb +467 -0
- data/lib/trevol_generado/models/payroll_adjustment_input.rb +362 -0
- data/lib/trevol_generado/models/payroll_adjustment_list.rb +191 -0
- data/lib/trevol_generado/models/payroll_basic.rb +204 -0
- data/lib/trevol_generado/models/payroll_compensated_vacation.rb +204 -0
- data/lib/trevol_generado/models/payroll_compensation.rb +205 -0
- data/lib/trevol_generado/models/payroll_deductions.rb +370 -0
- data/lib/trevol_generado/models/payroll_disability.rb +249 -0
- data/lib/trevol_generado/models/payroll_earnings.rb +406 -0
- data/lib/trevol_generado/models/payroll_employee.rb +437 -0
- data/lib/trevol_generado/models/payroll_employer.rb +238 -0
- data/lib/trevol_generado/models/payroll_epctv_bonus.rb +191 -0
- data/lib/trevol_generado/models/payroll_event_data.rb +303 -0
- data/lib/trevol_generado/models/payroll_files.rb +179 -0
- data/lib/trevol_generado/models/payroll_input.rb +420 -0
- data/lib/trevol_generado/models/payroll_leaves.rb +184 -0
- data/lib/trevol_generado/models/payroll_list.rb +191 -0
- data/lib/trevol_generado/models/payroll_loan.rb +204 -0
- data/lib/trevol_generado/models/payroll_novelty.rb +177 -0
- data/lib/trevol_generado/models/payroll_other_concept.rb +197 -0
- data/lib/trevol_generado/models/payroll_overtime.rb +262 -0
- data/lib/trevol_generado/models/payroll_paid_period.rb +222 -0
- data/lib/trevol_generado/models/payroll_payment.rb +215 -0
- data/lib/trevol_generado/models/payroll_percent_amount.rb +205 -0
- data/lib/trevol_generado/models/payroll_period.rb +247 -0
- data/lib/trevol_generado/models/payroll_place.rb +179 -0
- data/lib/trevol_generado/models/payroll_reference.rb +188 -0
- data/lib/trevol_generado/models/payroll_salary_amounts.rb +171 -0
- data/lib/trevol_generado/models/payroll_sanction.rb +205 -0
- data/lib/trevol_generado/models/payroll_service_bonus.rb +214 -0
- data/lib/trevol_generado/models/payroll_severance.rb +232 -0
- data/lib/trevol_generado/models/payroll_solidarity_fund.rb +191 -0
- data/lib/trevol_generado/models/payroll_totals.rb +188 -0
- data/lib/trevol_generado/models/payroll_transport.rb +181 -0
- data/lib/trevol_generado/models/payroll_unpaid_period.rb +195 -0
- data/lib/trevol_generado/models/payroll_vacation.rb +173 -0
- data/lib/trevol_generado/models/payroll_workplace.rb +188 -0
- data/lib/trevol_generado/models/period.rb +169 -0
- data/lib/trevol_generado/models/physical_document.rb +179 -0
- data/lib/trevol_generado/models/pos.rb +186 -0
- data/lib/trevol_generado/models/pos_buyer.rb +181 -0
- data/lib/trevol_generado/models/pos_register.rb +269 -0
- data/lib/trevol_generado/models/prepayment.rb +248 -0
- data/lib/trevol_generado/models/preview.rb +195 -0
- data/lib/trevol_generado/models/problem.rb +329 -0
- data/lib/trevol_generado/models/problem_error.rb +178 -0
- data/lib/trevol_generado/models/public_services_extension.rb +385 -0
- data/lib/trevol_generado/models/radian_event.rb +359 -0
- data/lib/trevol_generado/models/radian_event_data.rb +289 -0
- data/lib/trevol_generado/models/radian_event_input.rb +284 -0
- data/lib/trevol_generado/models/radian_event_invoice.rb +208 -0
- data/lib/trevol_generado/models/radian_event_list.rb +191 -0
- data/lib/trevol_generado/models/received_invoice.rb +200 -0
- data/lib/trevol_generado/models/received_invoice_issuer.rb +190 -0
- data/lib/trevol_generado/models/references.rb +182 -0
- data/lib/trevol_generado/models/request_list.rb +191 -0
- data/lib/trevol_generado/models/request_log.rb +275 -0
- data/lib/trevol_generado/models/seller.rb +385 -0
- data/lib/trevol_generado/models/shipment.rb +178 -0
- data/lib/trevol_generado/models/show_event.rb +276 -0
- data/lib/trevol_generado/models/show_extension.rb +203 -0
- data/lib/trevol_generado/models/show_producer.rb +212 -0
- data/lib/trevol_generado/models/standard_code.rb +169 -0
- data/lib/trevol_generado/models/stock_exchange_extension.rb +320 -0
- data/lib/trevol_generado/models/stock_exchange_prices.rb +169 -0
- data/lib/trevol_generado/models/support_adjustment_item.rb +295 -0
- data/lib/trevol_generado/models/support_adjustment_reference.rb +188 -0
- data/lib/trevol_generado/models/support_currency.rb +231 -0
- data/lib/trevol_generado/models/support_document.rb +401 -0
- data/lib/trevol_generado/models/support_document_adjustment.rb +409 -0
- data/lib/trevol_generado/models/support_document_adjustment_input.rb +331 -0
- data/lib/trevol_generado/models/support_document_adjustment_list.rb +191 -0
- data/lib/trevol_generado/models/support_document_delivery.rb +199 -0
- data/lib/trevol_generado/models/support_document_event_data.rb +305 -0
- data/lib/trevol_generado/models/support_document_input.rb +331 -0
- data/lib/trevol_generado/models/support_document_list.rb +191 -0
- data/lib/trevol_generado/models/support_document_reference.rb +198 -0
- data/lib/trevol_generado/models/support_item.rb +317 -0
- data/lib/trevol_generado/models/support_item_charge.rb +180 -0
- data/lib/trevol_generado/models/support_item_tax.rb +197 -0
- data/lib/trevol_generado/models/support_item_withholding.rb +205 -0
- data/lib/trevol_generado/models/tacit_acceptance.rb +224 -0
- data/lib/trevol_generado/models/tacit_acceptance_rule.rb +226 -0
- data/lib/trevol_generado/models/test_event_data.rb +171 -0
- data/lib/trevol_generado/models/third_party_charge.rb +277 -0
- data/lib/trevol_generado/models/third_party_company.rb +203 -0
- data/lib/trevol_generado/models/top_up.rb +199 -0
- data/lib/trevol_generado/models/top_up_buyer.rb +352 -0
- data/lib/trevol_generado/models/top_up_input.rb +187 -0
- data/lib/trevol_generado/models/top_up_wompi.rb +209 -0
- data/lib/trevol_generado/models/transport_extension.rb +281 -0
- data/lib/trevol_generado/models/webhook_delivery.rb +267 -0
- data/lib/trevol_generado/models/webhook_delivery_attempt.rb +192 -0
- data/lib/trevol_generado/models/webhook_delivery_list.rb +191 -0
- data/lib/trevol_generado/models/webhook_endpoint.rb +317 -0
- data/lib/trevol_generado/models/webhook_endpoint_input.rb +229 -0
- data/lib/trevol_generado/models/webhook_endpoint_list.rb +191 -0
- data/lib/trevol_generado/models/webhook_endpoint_rotate_input.rb +160 -0
- data/lib/trevol_generado/models/webhook_endpoint_update.rb +227 -0
- data/lib/trevol_generado/models/withholding.rb +224 -0
- data/lib/trevol_generado/tablas.rb +243 -0
- data/lib/trevol_generado/version.rb +15 -0
- data/lib/trevol_generado.rb +251 -0
- 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 `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.
|
|
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 `ApplicationResponse` con que la DIAN contestó (`application/xml`), 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 (`application/xml`).
|
|
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 (`application/zip`).
|
|
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 `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.
|
|
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 `Idempotency-Key` 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 (`earnings`, `deductions`, `net`).
|
|
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 `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).
|
|
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
|