FeniciaDocs
DocumentaciónAPICambiosSoporte
Buscar⌘K
API de ÓrdenesListar PedidosCrear un pedidoBuscar PedidosConsultar un pedidoActualizar un pedidoTransiciones de Estado de PedidosPreparación y EnvíoDevoluciones y ReembolsosAdjuntosHistorial y ExportaciónCarritos AbandonadosCatálogo de Errores

Producto

  • Características
  • Precios
  • Integraciones

Recursos

  • Documentación
  • API
  • Cambios
  • Blog

Empresa

  • Sobre nosotros
  • Contacto
  • Carreras

Legal

  • Privacidad
  • Términos
FeniciaLa plataforma de e-commerce para merchants profesionales

© 2026 Hobbio Inc. Todos los derechos reservados.

Actualizar un pedido

Este endpoint realiza una actualización parcial de un pedido existente. Solo los campos que envíes en el cuerpo se modifican; los demás permanecen intactos. No es un reemplazo completo del documento.

Se usa típicamente para:

  • Corregir la dirección de envío antes de embarcar.
  • Actualizar datos de contacto del cliente (teléfono, email).
  • Agregar o quitar etiquetas y notas internas.
  • Guardar metafields personalizados para tu integración.

No modifiques items ni totales

Los items, totales, impuestos y descuentos son inmutables después de crear el pedido. Para cambiar productos o cantidades, usa el flujo de devoluciones y reembolsos que mantiene la trazabilidad contable.

Endpoint

Actualiza parcialmente un pedido existente

Permiso requerido: orders:update

Campos editables vs. solo lectura

CampoEditableMotivo
customerInfoSíLos datos de contacto pueden corregirse.
deliveryInfoSíPuedes ajustar método o agregar guía.
shippingAddressSíSolo hasta que el pedido se embarque.
billingAddressSíEditable en cualquier momento antes de facturar.
tagsSíClasificación interna.
notesSíNotas operativas.
metafieldsSíCampos personalizados.
_idNoIdentificador inmutable.
externalIdNoNúmero público del pedido.
orderCreatedNoFecha de creación es auditoría.
channelId / channelTypeNoOrigen del pedido.
itemsNoUsa devoluciones / reembolsos.
subtotal, tax, totalNoSe recalculan automáticamente.
orderStatusNoUsa transiciones de estado.

Ejemplo de actualización parcial

curl -X PUT https://api.fenicia.io/orders/65f3a1b2c4d5e6f7a8b9c0d1 \
  -H "Authorization: Bearer fn_live_tu_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "shippingAddress": {
      "street": "Calle Insurgentes 456, Depto 3B",
      "city": "Ciudad de México",
      "state": "CDMX",
      "zipCode": "03100",
      "country": "MX"
    },
    "customerInfo": { "phone": "+525598765432" },
    "tags": ["telefono", "vip", "direccion-corregida"],
    "notes": "Cliente cambió dirección por teléfono el 11-abr-2026"
  }'

Respuesta de ejemplo

La respuesta contiene el pedido completo con los cambios aplicados:

{
  "_id": "65f3a1b2c4d5e6f7a8b9c0d1",
  "externalId": "FEN-10042",
  "orderStatus": "accepted",
  "paymentStatus": "paid",
  "total": 1986.26,
  "shippingAddress": {
    "street": "Calle Insurgentes 456, Depto 3B",
    "city": "Ciudad de México",
    "state": "CDMX",
    "zipCode": "03100",
    "country": "MX"
  },
  "customerInfo": {
    "customerId": "65f3a1b2c4d5e6f7a8b9c0d2",
    "firstName": "María",
    "lastName": "González",
    "email": "maria.gonzalez@example.com",
    "phone": "+525598765432"
  },
  "tags": ["telefono", "vip", "direccion-corregida"],
  "notes": "Cliente cambió dirección por teléfono el 11-abr-2026",
  "orderCreated": "2026-04-11T14:23:11.000Z",
  "updatedAt": "2026-04-11T15:02:44.000Z"
}

Tip

Al enviar tags, reemplazas el array completo. Si quieres añadir sin perder las existentes, primero consulta el pedido y fusiona los tags en tu cliente.

Errores

CódigoStatusDescripción
VALIDATION_ERROR400Enviaste un campo de solo lectura o con formato inválido.
READ_ONLY_FIELD400Intentaste modificar items, total, externalId u otro campo inmutable.
ORDER_NOT_FOUND404No existe un pedido con ese ID en tu tenant.
INVALID_STATUS_FOR_UPDATE409El pedido está en un estado que no permite edición (por ejemplo delivered o cancelled).
INSUFFICIENT_PERMISSIONS403La API key no tiene el scope orders:update.
INVALID_API_KEY401La API key es inválida o fue revocada.

Siguientes pasos

  • Consultar un pedido
  • Crear un pedido
  • Transiciones de estado
  • Devoluciones