Desarrolladores · API v1 · versión 2026-10-22
Nómina electrónica
Emite el documento soporte de pago de nómina electrónica (102) de cada trabajador y, si hay que cambiarlo, su nota de ajuste (103): Reemplazar o Eliminar. Trevol calcula los totales, numera, firma y envía a la DIAN.
1. Antes de emitir
- La nómina de la empresa tiene que estar habilitada ante la DIAN (en la app: Nómina → Configurar habilitación). Con una llave de producción (
tvl_live_…) debe estarhabilitada; con una de pruebas basta con el set de pruebas registrado.GET /v1/company→capabilities.payroll.statusdiceenabled,testing,not_registeredonot_enabledpara el ambiente de tu llave. Si no,422 company_not_enabledconreason: "payroll_not_enabled", antes de numerar. - Los prefijos de la nómina (
capabilities.payroll.prefixes) se cambian en la app.
2. Emitir una nómina
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.
curl https://api.trevol.si/v1/payrolls \
-H "Authorization: Bearer $TREVOL_LLAVE" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"external_id": "NOM-2026-09-001",
"period": {
"hire_date": "2024-03-01",
"start": "2026-09-01",
"end": "2026-09-30"
},
"pay_period": "5",
"notes": [
"Nómina de septiembre de 2026"
],
"employee": {
"type": "01",
"subtype": "00",
"high_risk_pension": false,
"document_type": "13",
"document_number": "1000000101",
"first_surname": "PRUEBA",
"second_surname": "NOMINA01",
"first_name": "TRABAJADOR",
"other_names": "DE PRUEBA",
"workplace": {
"country": "CO",
"municipality_code": "76001",
"address": "Calle 1 # 1-1"
},
"integral_salary": false,
"contract_type": "2",
"salary": "1423500",
"code": "TRAB-01"
},
"payment": {
"form": "1",
"method": "42",
"bank": "Banco de Pruebas",
"account_type": "Ahorros",
"account_number": "0001234501"
},
"payment_dates": [
"2026-09-30"
],
"earnings": {
"basic": {
"days": 30,
"amount": "1423500"
},
"transport": [
{
"allowance": "200000"
}
]
},
"deductions": {
"health": {
"percent": "4",
"amount": "56940"
},
"pension": {
"percent": "4",
"amount": "56940"
}
}
}'HTTP/1.1 201 Created
Location: /v1/payrolls/pr_3f0c1a2b3f0c1a2b3f0c1a2b3f0c1a2b
{
"id": "pr_3f0c1a2b3f0c1a2b3f0c1a2b3f0c1a2b",
"object": "payroll",
"environment": "live",
"status": "accepted",
"number": "NE15",
"prefix": "NE",
"external_id": "NOM-2026-09-001",
"origin": "api",
"cune": "abababababababababababababababababababababababababababababababababababababababababababababababab",
"qr": "https://catalogo-vpfe.dian.gov.co/document/searchqr?documentkey=abababababababababababababababababababababababababababababababababababababababababababababababab",
"issued_at": "2026-10-23T09:15:02-05:00",
"submission": "sync",
"period": {
"hire_date": "2024-03-01",
"start": "2026-09-01",
"end": "2026-09-30"
},
"pay_period": "5",
"currency": "COP",
"notes": [
"Nómina de septiembre de 2026"
],
"employee": {
"type": "01",
"subtype": "00",
"high_risk_pension": false,
"document_type": "13",
"document_number": "1000000101",
"first_surname": "PRUEBA",
"second_surname": "NOMINA01",
"first_name": "TRABAJADOR",
"other_names": "DE PRUEBA",
"workplace": {
"country": "CO",
"municipality_code": "76001",
"address": "Calle 1 # 1-1"
},
"integral_salary": false,
"contract_type": "2",
"salary": "1423500",
"code": "TRAB-01"
},
"payment": {
"form": "1",
"method": "42",
"bank": "Banco de Pruebas",
"account_type": "Ahorros",
"account_number": "0001234501"
},
"payment_dates": [
"2026-09-30"
],
"earnings": {
"basic": {
"days": 30,
"amount": "1423500"
},
"transport": [
{
"allowance": "200000"
}
]
},
"deductions": {
"health": {
"percent": "4",
"amount": "56940"
},
"pension": {
"percent": "4",
"amount": "56940"
}
},
"totals": {
"earnings": "1623500.00",
"deductions": "113880.00",
"net": "1509620.00"
},
"dian": {
"status_code": "00",
"message": "Procesado Correctamente.",
"rules": []
},
"files": {
"xml": true,
"zip": true,
"dian_response": true
},
"created_at": "2026-10-23T09:15:02-05:00",
"updated_at": "2026-10-23T09:15:03-05:00"
}
3. Reemplazar o eliminar: la nota de ajuste
Emite la nota de ajuste de nómina electrónica (103). type: "replace" (Reemplazar) lleva la nómina completa corregida; type: "delete" (Eliminar) solo el predecesor y las notas. El predecessor es una nómina de Trevol (pr_… o pra_…, validada) o una de otra plataforma (number, cune, issue_date); es de la misma empresa y ambiente de la llave, del mismo trabajador, y el último de su cadena. Una nómina eliminada no se ajusta.
Reemplazar: la nómina completa corregida, más type y predecessor.
curl https://api.trevol.si/v1/payroll_adjustments \
-H "Authorization: Bearer $TREVOL_LLAVE" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"external_id": "NOM-2026-09-001-R",
"period": {
"hire_date": "2024-03-01",
"start": "2026-09-01",
"end": "2026-09-30"
},
"pay_period": "5",
"notes": [
"Nómina de septiembre de 2026"
],
"employee": {
"type": "01",
"subtype": "00",
"high_risk_pension": false,
"document_type": "13",
"document_number": "1000000101",
"first_surname": "PRUEBA",
"second_surname": "NOMINA01",
"first_name": "TRABAJADOR",
"other_names": "DE PRUEBA",
"workplace": {
"country": "CO",
"municipality_code": "76001",
"address": "Calle 1 # 1-1"
},
"integral_salary": false,
"contract_type": "2",
"salary": "1423500",
"code": "TRAB-01"
},
"payment": {
"form": "1",
"method": "42",
"bank": "Banco de Pruebas",
"account_type": "Ahorros",
"account_number": "0001234501"
},
"payment_dates": [
"2026-09-30"
],
"earnings": {
"basic": {
"days": 30,
"amount": "1423500"
},
"transport": [
{
"allowance": "210000"
}
]
},
"deductions": {
"health": {
"percent": "4",
"amount": "56940"
},
"pension": {
"percent": "4",
"amount": "56940"
}
},
"type": "replace",
"predecessor": {
"id": "pr_3f0c1a2b3f0c1a2b3f0c1a2b3f0c1a2b"
}
}'Eliminar: solo el predecesor y las notas.
curl https://api.trevol.si/v1/payroll_adjustments \
-H "Authorization: Bearer $TREVOL_LLAVE" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"external_id": "NOM-2026-09-001-E",
"type": "delete",
"predecessor": {
"id": "pr_3f0c1a2b3f0c1a2b3f0c1a2b3f0c1a2b"
},
"notes": [
"Enviada por error"
]
}'
4. Lo que hay que saber
- Un 102 por trabajador y por mes en producción. Otro igual es
409 duplicate_document(conexisting_id, solo de la misma empresa y ambiente); para cambiarlo se usa la nota de ajuste. Dos pedidos simultáneos del mismo trabajador y mes no pasan los dos. - Set de pruebas. En habilitación con el set pendiente, la respuesta es
202constatus: "validating"en las dos versiones; reintentar con la misma clave oPOST …/sendno lo reenvía, yPUTen ese estado es409 invalid_state. - Sin PDF ni correo. Se descargan
…/xml,…/zipy…/dian_response. - Datos del trabajador. Solo salen en las respuestas de tu llave. Los avisos (webhooks) llevan un resumen sin trabajador ni montos, el registro de peticiones no guarda cuerpos, y lo que se guarda para repetir una
Idempotency-Keyes solo{id, object, status, number}. Por eso no se puede filtrar por la cédula (quedaría en las direcciones que registran los servidores): las listas se filtran poremployee_code(tu código interno del empleado),external_idyperiod_end_from/period_end_to. - El
second_surnamedel trabajador es obligatorio. - El
external_ides único entre las nóminas y sus ajustes (aparte de las facturas). - Cobro por empleado: cada nómina o nota de ajuste de producción se cobra con la lista de nómina del canal API; la habilitación no cobra.
Las respuestas son las de toda la API: 201 cuando la DIAN valida, 422 dian_rejected con document cuando la rechaza, 422 validation_error si Trevol lo rechaza antes de numerar (no se gasta ningún número), 402 sin saldo, y con la DIAN sin contestar un 202 processing (versión 2026-10-22) o un 503 dian_unavailable (2026-10-21). Idempotency-Key es obligatoria al crear o corregir, y external_id es opcional.
5. Rutas
| Método | Ruta | Qué hace |
|---|---|---|
| POST | /v1/payrolls | Emitir una nómina electrónica |
| GET | /v1/payrolls | Listar (nómina electrónica) |
| POST | /v1/payrolls/preview | Calcular una nómina electrónica sin emitirla |
| GET | /v1/payrolls/{id} | Una nómina electrónica |
| PUT | /v1/payrolls/{id} | Corregir una nómina electrónica rechazada (mismo número) y reenviarla |
| POST | /v1/payrolls/{id}/send | Reenviar una pendiente o en error |
| GET | /v1/payrolls/{id}/xml | Archivo xml |
| GET | /v1/payrolls/{id}/zip | Archivo zip |
| GET | /v1/payrolls/{id}/dian_response | Archivo dian_response |
| POST | /v1/payroll_adjustments | Emitir una nota de ajuste de nómina |
| GET | /v1/payroll_adjustments | Listar (nota de ajuste de nómina) |
| POST | /v1/payroll_adjustments/preview | Calcular una nota de ajuste de nómina sin emitirla |
| GET | /v1/payroll_adjustments/{id} | Una nota de ajuste de nómina |
| PUT | /v1/payroll_adjustments/{id} | Corregir una nota de ajuste de nómina rechazada (mismo número) y reenviarla |
| POST | /v1/payroll_adjustments/{id}/send | Reenviar una pendiente o en error |
| GET | /v1/payroll_adjustments/{id}/xml | Archivo xml |
| GET | /v1/payroll_adjustments/{id}/zip | Archivo zip |
| GET | /v1/payroll_adjustments/{id}/dian_response | Archivo dian_response |
6. Avisos (webhooks)
Salen por cualquier camino. El data es un resumen sin el trabajador ni los montos.
| Tipo | Cuándo |
|---|---|
payroll.accepted | La DIAN validó la nómina electrónica. Pasa por cualquier camino (API, app, conector o verificación de fondo). (Catálogo 2: un * de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
payroll.rejected | La DIAN rechazó la nómina electrónica. Corrígela con PUT y se reenvía con el mismo número. (Catálogo 2: un * de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
payroll.error | La nómina electrónica quedó en error: la DIAN no confirmó y Trevol dejó de reintentar. data.error lleva un code y un texto fijo (nunca el mensaje de la DIAN). (Catálogo 2: un * de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
payroll_adjustment.accepted | La DIAN validó la nota de ajuste de nómina. Pasa por cualquier camino (API, app, conector o verificación de fondo). (Catálogo 2: un * de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
payroll_adjustment.rejected | La DIAN rechazó la nota de ajuste de nómina. Corrígela con PUT y se reenvía con el mismo número. (Catálogo 2: un * de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
payroll_adjustment.error | La nota de ajuste de nómina quedó en error: la DIAN no confirmó y Trevol dejó de reintentar. data.error lleva un code y un texto fijo (nunca el mensaje de la DIAN). (Catálogo 2: un * de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
{
"id": "evt_3f0c1a2b3f0c1a2b3f0c1a2b3f0c1a2b",
"object": "event",
"type": "payroll.accepted",
"timestamp": "2026-10-23T14:15:03Z",
"environment": "live",
"api_version": "2026-10-22",
"data": {
"object": "payroll",
"id": "pr_3f0c1a2b3f0c1a2b3f0c1a2b3f0c1a2b",
"status": "accepted",
"environment": "live",
"number": "NE15",
"prefix": "NE",
"external_id": "NOM-2026-09-001",
"origin": "api",
"cune": "abababababababababababababababababababababababababababababababababababababababababababababababab",
"issued_at": "2026-10-23T09:15:02-05:00",
"type": null,
"predecessor": null,
"submission": "sync",
"dian": {
"status_code": "00",
"rules": [
{
"code": "NIE038",
"severity": "notification"
}
]
}
}
}
7. Campos
Nómina (cuerpo de POST y PUT)
| Campo | Tipo | Qué es |
|---|---|---|
external_id | texto | Tu identificador del documento: único entre los documentos API de la empresa y el ambiente. En las nóminas es único entre las nóminas y sus ajustes (aparte de las facturas y los eventos). |
period obligatorio | PayrollPeriod | El periodo que se liquida y el tiempo laborado (time_worked se calcula si no se manda: años de 360 días y meses de 30). |
pay_period obligatorio | texto | Periodo de nómina (tabla 5.5.1): "1" semanal, "2" decenal, "3" catorcenal, "4" quincenal, "5" mensual, "6" otro. |
currency | texto | Moneda (ISO 4217). Por defecto COP; con otra va exchange_rate. |
exchange_rate | decimal | Tasa de cambio a pesos. Obligatoria con una moneda distinta de COP y prohibida con COP. |
novelty | PayrollNovelty | El CUNE del documento con la novedad contractual, si la hay. Solo en la nómina. |
notes | lista de texto | Máximo 20. |
employee obligatorio | PayrollEmployee | El trabajador. Sus datos solo salen en las respuestas a esta llave (la del empleador): nunca en webhooks, en el registro de peticiones ni en lo que se guarda de la idempotencia. |
payment obligatorio | PayrollPayment | |
payment_dates obligatorio | lista de fecha (AAAA-MM-DD) | Las fechas de pago (1 a 31). Máximo 31. |
earnings obligatorio | PayrollEarnings | |
deductions obligatorio | PayrollDeductions | |
rounding | decimal | Redondeo hasta 2.00; no suma a los totales. |
generation_place | PayrollPlace | Dónde se generó el documento. Por defecto, el municipio de la empresa. |
employer | PayrollEmployer | Solo si la empresa es persona natural: sus apellidos y nombres (si la razón social no se separa bien en «apellido1 apellido2 nombre1»). |
Periodo (period)
| Campo | Tipo | Qué es |
|---|---|---|
hire_date obligatorio | fecha (AAAA-MM-DD) | |
start obligatorio | fecha (AAAA-MM-DD) | |
end obligatorio | fecha (AAAA-MM-DD) | |
termination_date | fecha (AAAA-MM-DD) | |
time_worked | entero |
Trabajador (employee)
| Campo | Tipo | Qué es |
|---|---|---|
type obligatorio | texto | Tipo de trabajador (tabla 5.5.3). |
subtype | texto | |
high_risk_pension | booleano | |
document_type obligatorio | texto | Tipo de documento del trabajador (tabla 5.2.1). |
document_number obligatorio | texto | Solo dígitos, sin puntos ni comas ni espacios. |
first_surname obligatorio | texto | |
second_surname obligatorio | texto | Obligatorio (NIE047): la DIAN lo exige aunque la base no. |
first_name obligatorio | texto | |
other_names | texto | |
workplace obligatorio | PayrollWorkplace | |
integral_salary | booleano | |
contract_type obligatorio | texto | Tipo de contrato (tabla 5.5.2). |
salary obligatorio | decimal | Número o texto decimal con punto («150000.50»). |
code | texto | El código interno del empleado (filtra las listas con employee_code; no es un dato de identificación). |
Lugar de trabajo (employee.workplace)
| Campo | Tipo | Qué es |
|---|---|---|
country | texto | |
department_code | texto | |
municipality_code | texto | Código DANE del municipio (5 dígitos). |
address | texto |
Pago (payment)
| Campo | Tipo | Qué es |
|---|---|---|
form | texto | Forma de pago (tabla 5.3.3.1); por defecto "1" (contado). |
method obligatorio | texto | Medio de pago (tabla 5.3.3.2). |
bank | texto | |
account_type | texto | |
account_number | texto |
Devengados (earnings)
| Campo | Tipo | Qué es |
|---|---|---|
basic obligatorio | PayrollBasic | El sueldo básico (obligatorio). |
transport | lista de PayrollTransport | Máximo 100. |
overtime | lista de PayrollOvertime | Máximo 500. |
vacation | PayrollVacation | |
service_bonus | PayrollServiceBonus | |
severance | PayrollSeverance | |
disabilities | lista de PayrollDisability | Máximo 100. |
leaves | PayrollLeaves | |
bonuses | lista de PayrollSalaryAmounts | Máximo 100. |
allowances | lista de PayrollSalaryAmounts | Máximo 100. |
strikes | lista de PayrollUnpaidPeriod | Máximo 100. |
other_concepts | lista de PayrollOtherConcept | Máximo 100. |
compensations | lista de PayrollCompensation | Máximo 100. |
epctv_bonuses | lista de PayrollEpctvBonus | Máximo 100. |
commissions | lista de decimal | Máximo 100. |
third_party_payments | lista de decimal | Máximo 100. |
advances | lista de decimal | Máximo 100. |
endowment | decimal | Número o texto decimal con punto («150000.50»). |
sustenance_support | decimal | Número o texto decimal con punto («150000.50»). |
telework | decimal | Número o texto decimal con punto («150000.50»). |
retirement_bonus | decimal | Número o texto decimal con punto («150000.50»). |
indemnity | decimal | Número o texto decimal con punto («150000.50»). |
refund | decimal | Número o texto decimal con punto («150000.50»). |
Deducciones (deductions)
| Campo | Tipo | Qué es |
|---|---|---|
health obligatorio | PayrollPercentAmount | Salud (obligatoria). |
pension obligatorio | PayrollPercentAmount | Pensión (obligatoria). |
solidarity_fund | PayrollSolidarityFund | |
unions | lista de PayrollPercentAmount | Máximo 100. |
sanctions | lista de PayrollSanction | Máximo 100. |
payroll_loans | lista de PayrollLoan | Máximo 100. |
third_party_payments | lista de decimal | Máximo 100. |
advances | lista de decimal | Máximo 100. |
other | lista de decimal | Máximo 100. |
voluntary_pension | decimal | Número o texto decimal con punto («150000.50»). |
withholding_tax | decimal | Número o texto decimal con punto («150000.50»). |
afc | decimal | Número o texto decimal con punto («150000.50»). |
cooperative | decimal | Número o texto decimal con punto («150000.50»). |
tax_garnishment | decimal | Número o texto decimal con punto («150000.50»). |
complementary_plan | decimal | Número o texto decimal con punto («150000.50»). |
education | decimal | Número o texto decimal con punto («150000.50»). |
refund | decimal | Número o texto decimal con punto («150000.50»). |
debt | decimal | Número o texto decimal con punto («150000.50»). |
PayrollPlace
| Campo | Tipo | Qué es |
|---|---|---|
country | texto | |
department_code | texto | |
municipality_code | texto | Código DANE del municipio (5 dígitos). |
PayrollNovelty
| Campo | Tipo | Qué es |
|---|---|---|
cune obligatorio | texto |
PayrollEmployer
| Campo | Tipo | Qué es |
|---|---|---|
first_surname obligatorio | texto | |
second_surname obligatorio | texto | |
first_name obligatorio | texto | |
other_names | texto |
PayrollBasic
| Campo | Tipo | Qué es |
|---|---|---|
days obligatorio | entero | |
amount obligatorio | decimal | Número o texto decimal con punto («150000.50»). |
PayrollTransport
| Campo | Tipo | Qué es |
|---|---|---|
allowance | decimal | Número o texto decimal con punto («150000.50»). |
salary_per_diem | decimal | Número o texto decimal con punto («150000.50»). |
non_salary_per_diem | decimal | Número o texto decimal con punto («150000.50»). |
PayrollOvertime
| Campo | Tipo | Qué es |
|---|---|---|
type obligatorio | texto | Tabla 5.5.5: HED, HEN, HRN, HEDDF, HRDDF, HENDF, HRNDF. El porcentaje sale de la tabla. |
quantity obligatorio | decimal | Número o texto decimal con punto («150000.50»). |
amount obligatorio | decimal | Número o texto decimal con punto («150000.50»). |
start | texto | AAAA-MM-DDTHH:MM:SS (NIE074). |
end | texto | AAAA-MM-DDTHH:MM:SS (NIE074). |
percent | decimal | Número o texto decimal con punto («150000.50»). |
PayrollPaidPeriod
| Campo | Tipo | Qué es |
|---|---|---|
start | fecha (AAAA-MM-DD) | |
end | fecha (AAAA-MM-DD) | |
days obligatorio | entero | |
amount obligatorio | decimal | Número o texto decimal con punto («150000.50»). |
PayrollCompensatedVacation
| Campo | Tipo | Qué es |
|---|---|---|
days obligatorio | entero | |
amount obligatorio | decimal | Número o texto decimal con punto («150000.50»). |
PayrollVacation
| Campo | Tipo | Qué es |
|---|---|---|
regular | lista de PayrollPaidPeriod | Máximo 100. |
compensated | lista de PayrollCompensatedVacation | Máximo 100. |
PayrollServiceBonus
| Campo | Tipo | Qué es |
|---|---|---|
days obligatorio | entero | |
amount obligatorio | decimal | Número o texto decimal con punto («150000.50»). |
non_salary_amount | decimal | Número o texto decimal con punto («150000.50»). |
PayrollSeverance
| Campo | Tipo | Qué es |
|---|---|---|
amount obligatorio | decimal | Número o texto decimal con punto («150000.50»). |
percent obligatorio | decimal | Número o texto decimal con punto («150000.50»). |
interest obligatorio | decimal | Número o texto decimal con punto («150000.50»). |
PayrollDisability
| Campo | Tipo | Qué es |
|---|---|---|
start | fecha (AAAA-MM-DD) | |
end | fecha (AAAA-MM-DD) | |
days obligatorio | entero | |
type obligatorio | texto | Tabla 5.5.6: "1" común, "2" profesional, "3" laboral. |
amount obligatorio | decimal | Número o texto decimal con punto («150000.50»). |
PayrollUnpaidPeriod
| Campo | Tipo | Qué es |
|---|---|---|
start | fecha (AAAA-MM-DD) | |
end | fecha (AAAA-MM-DD) | |
days obligatorio | entero |
PayrollLeaves
| Campo | Tipo | Qué es |
|---|---|---|
maternity_paternity | lista de PayrollPaidPeriod | Máximo 100. |
paid | lista de PayrollPaidPeriod | Máximo 100. |
unpaid | lista de PayrollUnpaidPeriod | Máximo 100. |
PayrollSalaryAmounts
| Campo | Tipo | Qué es |
|---|---|---|
salary | decimal | Número o texto decimal con punto («150000.50»). |
non_salary | decimal | Número o texto decimal con punto («150000.50»). |
PayrollOtherConcept
| Campo | Tipo | Qué es |
|---|---|---|
description obligatorio | texto | |
salary | decimal | Número o texto decimal con punto («150000.50»). |
non_salary | decimal | Número o texto decimal con punto («150000.50»). |
PayrollCompensation
| Campo | Tipo | Qué es |
|---|---|---|
ordinary obligatorio | decimal | Número o texto decimal con punto («150000.50»). |
extraordinary obligatorio | decimal | Número o texto decimal con punto («150000.50»). |
PayrollEpctvBonus
| Campo | Tipo | Qué es |
|---|---|---|
salary_payment | decimal | Número o texto decimal con punto («150000.50»). |
non_salary_payment | decimal | Número o texto decimal con punto («150000.50»). |
food_salary | decimal | Número o texto decimal con punto («150000.50»). |
food_non_salary | decimal | Número o texto decimal con punto («150000.50»). |
PayrollPercentAmount
| Campo | Tipo | Qué es |
|---|---|---|
percent obligatorio | decimal | Número o texto decimal con punto («150000.50»). |
amount obligatorio | decimal | Número o texto decimal con punto («150000.50»). |
PayrollSolidarityFund
| Campo | Tipo | Qué es |
|---|---|---|
percent | decimal | Número o texto decimal con punto («150000.50»). |
amount | decimal | Número o texto decimal con punto («150000.50»). |
subsistence_percent | decimal | Número o texto decimal con punto («150000.50»). |
subsistence_amount | decimal | Número o texto decimal con punto («150000.50»). |
PayrollSanction
| Campo | Tipo | Qué es |
|---|---|---|
public obligatorio | decimal | Número o texto decimal con punto («150000.50»). |
private obligatorio | decimal | Número o texto decimal con punto («150000.50»). |
PayrollLoan
| Campo | Tipo | Qué es |
|---|---|---|
description obligatorio | texto | |
amount obligatorio | decimal | Número o texto decimal con punto («150000.50»). |
Nota de ajuste (cuerpo)
| Campo | Tipo | Qué es |
|---|---|---|
external_id | texto | Tu identificador del documento: único entre los documentos API de la empresa y el ambiente. En las nóminas es único entre las nóminas y sus ajustes (aparte de las facturas y los eventos). |
type obligatorio | replace | delete | "replace" (Reemplazar: el ajuste lleva todos los datos de la nómina menos novelty) o "delete" (Eliminar: solo predecessor, notes, generation_place y employer). |
predecessor obligatorio | PayrollReference | El documento que se ajusta: {"id": "pr_…"} (una nómina de Trevol) o {"id": "pra_…"} (otro ajuste, el último de la cadena), o sus datos {number, cune, issue_date}. |
period | PayrollPeriod | |
pay_period | texto | |
currency | texto | |
exchange_rate | decimal | Número o texto decimal con punto («150000.50»). |
notes | lista de texto | Máximo 20. |
employee | PayrollEmployee | |
payment | PayrollPayment | |
payment_dates | lista de fecha (AAAA-MM-DD) | Máximo 31. |
earnings | PayrollEarnings | |
deductions | PayrollDeductions | |
rounding | decimal | true = redondeo al peso; o un valor entre -2.00 y 2.00. |
generation_place | PayrollPlace | |
employer | PayrollEmployer |
Documento que se ajusta (predecessor)
- id (obligatorios: id)
- number, cune, issue_date (obligatorios: number, cune, issue_date)