# Actualizar un empleado

`POST https://api.fiscalisto.com/v1/employees/{id}`

Cambia solo los campos que manda; los recibos ya timbrados no cambian.

## Parámetros

| Nombre | Dónde | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `id` | ruta | sí | El id del objeto. |
| `Idempotency-Key` | encabezado |  | Opcional (los SDK la mandan solos). Si la respuesta se pierde, repita la solicitud con el mismo valor durante 24 horas: contesta lo mismo, con idempotent-replayed: true, y no lo hace dos veces (ni crea, ni manda correos, ni cobra). |

## Cuerpo

| Campo | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `number` | string |  | Número de empleado (NumEmpleado). (hasta 15 caracteres) |
| `name` | string |  | Nombre completo del empleado, como en su constancia de situación fiscal. (hasta 300 caracteres) |
| `tax_id` | string |  | RFC (Rfc), 12 caracteres una persona moral y 13 una física. |
| `curp` | string |  | CURP, 18 caracteres. |
| `social_security_number` | string |  | Número de seguridad social (NumSeguridadSocial), 11 dígitos. |
| `zip` | string |  | Código postal del domicilio fiscal, 5 dígitos, como en la constancia de situación fiscal. El de un emisor es el lugar de expedición (LugarExpedicion) de sus comprobantes. |
| `email` | string o null |  | Correo del empleado, a donde van sus recibos con send_email. |
| `start_date` | string |  | Fecha de inicio de la relación laboral (FechaInicioRelLaboral), AAAA-MM-DD. |
| `end_date` | string o null |  | Último día trabajado si ya no trabaja ahí, AAAA-MM-DD. |
| `daily_salary` | number |  | Salario diario. |
| `integrated_daily_salary` | number |  | Salario diario integrado (SalarioDiarioIntegrado): no menor al salario diario. |
| `contract_type` | `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08` |  | Tipo de contrato (TipoContrato), c_TipoContrato. Por omisión 01, por tiempo indeterminado. |
| `workday_type` | string |  | Tipo de jornada (TipoJornada), c_TipoJornada. Por omisión 01, diurna. |
| `periodicity` | string |  | Periodicidad del pago (PeriodicidadPago): 02 semanal, 03 catorcenal, 04 quincenal (por omisión), 05 mensual. |
| `risk_class` | string |  | Clase de riesgo del puesto ante el IMSS (RiesgoPuesto), 1 a 5. Por omisión 1. |
| `state` | string |  | Entidad federativa donde trabaja (ClaveEntFed): JAL, CMX, NLE… |
| `border_zone` | boolean |  | true si trabaja en la zona libre de la frontera norte (salario mínimo de frontera). |
| `unionized` | boolean |  | true si es sindicalizado (Sindicalizado). |
| `department` | string o null |  | Departamento (Departamento). |
| `position` | string o null |  | Puesto (Puesto). |

Ejemplo:

```json
{
  "daily_salary": 350,
  "integrated_daily_salary": 366
}
```

## Con el SDK de TypeScript

```ts
import { Fiscalisto } from "fiscalisto";

// La llave viene de FISCALISTO_API_KEY.
const fiscalisto = new Fiscalisto();

const employee = await fiscalisto.employees.update("emp_OufpKqnrvx9p3RxmD1RIDgEHzKYPYnYBlV", {
  daily_salary: 350,
  integrated_daily_salary: 366,
}, { idempotencyKey: "pedido-A-1042" });
```

## Con el SDK de Python

```python
from fiscalisto import Fiscalisto

# La llave viene de FISCALISTO_API_KEY.
fiscalisto = Fiscalisto()

employee = fiscalisto.employees.update("emp_OufpKqnrvx9p3RxmD1RIDgEHzKYPYnYBlV", {
    "daily_salary": 350,
    "integrated_daily_salary": 366,
}, idempotency_key="pedido-A-1042")
```

## Con el SDK de PHP

```php
<?php

use Fiscalisto\Fiscalisto;

// La llave viene de FISCALISTO_API_KEY.
$fiscalisto = new Fiscalisto();

$employee = $fiscalisto->employees->update('emp_OufpKqnrvx9p3RxmD1RIDgEHzKYPYnYBlV', [
    'daily_salary' => 350,
    'integrated_daily_salary' => 366,
], ['idempotency_key' => 'pedido-A-1042']);
```

## Con el SDK de .NET

```csharp
using Fiscalisto;

// La llave viene de FISCALISTO_API_KEY.
var fiscalisto = new FiscalistoClient();

var employee = await fiscalisto.Employees.UpdateAsync("emp_OufpKqnrvx9p3RxmD1RIDgEHzKYPYnYBlV", new UpdateEmployeeParams
{
    DailySalary = 350,
    IntegratedDailySalary = 366,
}, new RequestOptions { IdempotencyKey = "pedido-A-1042" });
```

## Con el SDK de Go

```go
package main

import (
	"context"
	"fmt"
	"log"

	fiscalisto "fiscalisto.com/go"
)

func main() {
	// La llave viene de FISCALISTO_API_KEY.
	client, err := fiscalisto.NewClient("")
	if err != nil {
		log.Fatal(err)
	}
	ctx := context.Background()

	employee, err := client.Employees.Update(ctx, "emp_OufpKqnrvx9p3RxmD1RIDgEHzKYPYnYBlV", &fiscalisto.UpdateEmployeeParams{
		DailySalary:           fiscalisto.Float64(350),
		IntegratedDailySalary: fiscalisto.Float64(366),
	}, fiscalisto.WithIdempotencyKey("pedido-A-1042"))
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(employee.ID)
}
```

## Con el SDK de Java

```java
import com.fiscalisto.FiscalistoClient;
import com.fiscalisto.RequestOptions;
import com.fiscalisto.model.UpdateEmployeeParams;

// La llave viene de FISCALISTO_API_KEY.
var fiscalisto = new FiscalistoClient();

var employee = fiscalisto.employees().update("emp_OufpKqnrvx9p3RxmD1RIDgEHzKYPYnYBlV", new UpdateEmployeeParams()
        .setDailySalary(350)
        .setIntegratedDailySalary(366), RequestOptions.idempotencyKey("pedido-A-1042"));
System.out.println(employee.getId());
```

## Respuesta 200

Correcto.

Un objeto `Employee`:

| Campo | Tipo | Siempre viene | Descripción |
| --- | --- | --- | --- |
| `id` | string | sí | Identificador del objeto, con su prefijo (iss_, inv_, ret_, cus_, prd_, emp_, bat_, brn_, whs_, stm_, adj_, evt_, whe_). |
| `livemode` | boolean | sí | true en producción (llaves fk_live_), false en pruebas (fk_test_). Lo de pruebas no vale ante el SAT. |
| `object` | `"employee"` | sí | Qué tipo de objeto es («invoice», «customer»…). |
| `issuer` | string | sí | El emisor (iss_…). |
| `number` | string | sí | Número de empleado (NumEmpleado). |
| `name` | string | sí | Nombre completo del empleado. |
| `tax_id` | string | sí | RFC (Rfc), 12 caracteres una persona moral y 13 una física. |
| `curp` | string | sí | CURP, 18 caracteres. |
| `social_security_number` | string | sí | Número de seguridad social (NumSeguridadSocial), 11 dígitos. |
| `zip` | string | sí | Código postal del domicilio fiscal, 5 dígitos, como en la constancia de situación fiscal. El de un emisor es el lugar de expedición (LugarExpedicion) de sus comprobantes. |
| `email` | string o null | sí | Correo del empleado, a donde van sus recibos. |
| `start_date` | string | sí | Fecha de inicio de la relación laboral (FechaInicioRelLaboral), AAAA-MM-DD. |
| `end_date` | string o null | sí | Último día trabajado si ya no trabaja ahí, AAAA-MM-DD. |
| `daily_salary` | number | sí | Salario diario. |
| `integrated_daily_salary` | number | sí | Salario diario integrado (SalarioDiarioIntegrado): no menor al salario diario. |
| `contract_type` | string | sí | Tipo de contrato (TipoContrato), c_TipoContrato. Por omisión 01, por tiempo indeterminado. |
| `workday_type` | string | sí | Tipo de jornada (TipoJornada), c_TipoJornada. Por omisión 01, diurna. |
| `regime_type` | string | sí | Tipo de régimen (TipoRegimen): 02 sueldos y salarios. |
| `periodicity` | string | sí | Periodicidad del pago (PeriodicidadPago): 02 semanal, 03 catorcenal, 04 quincenal (por omisión), 05 mensual. |
| `risk_class` | string | sí | Clase de riesgo del puesto ante el IMSS (RiesgoPuesto), 1 a 5. Por omisión 1. |
| `state` | string | sí | Entidad federativa donde trabaja (ClaveEntFed): JAL, CMX, NLE… |
| `border_zone` | boolean | sí | true si trabaja en la zona libre de la frontera norte (salario mínimo de frontera). |
| `unionized` | boolean | sí | true si es sindicalizado (Sindicalizado). |
| `department` | string o null | sí | Departamento (Departamento). |
| `position` | string o null | sí | Puesto (Puesto). |
| `warnings` | arreglo de string | sí | Lo que el SAT podría observar de sus datos, antes de timbrar. |
| `created_at` | string (date-time) | sí | Cuándo se creó, ISO 8601 con la hora de la Ciudad de México (-06:00). |

```json
{
  "id": "emp_OufpKqnrvx9p3RxmD1RIDgEHzKYPYnYBlV",
  "object": "employee",
  "livemode": false,
  "issuer": "iss_OufpKqnrvx9p",
  "number": "9",
  "name": "ANA GÓMEZ RUIZ",
  "tax_id": "GORA800101JK2",
  "curp": "GORA800101MDFMZN09",
  "social_security_number": "12345678903",
  "zip": "06000",
  "email": null,
  "start_date": "2024-03-04",
  "end_date": null,
  "daily_salary": 320,
  "integrated_daily_salary": 334.66,
  "contract_type": "01",
  "workday_type": "01",
  "regime_type": "02",
  "periodicity": "02",
  "risk_class": "1",
  "state": "CMX",
  "border_zone": false,
  "unionized": false,
  "department": null,
  "position": null,
  "warnings": [],
  "created_at": "2026-10-20T09:02:11-06:00"
}
```

## Errores

Puede responder 400, 401, 403, 404, 429, 500 con el cuerpo de error de siempre; cada código está en https://fiscalisto.com/docs/api/errores.md.
