---
title: "Crear un movimiento de wallet de usuario | Documentación de Ordering.co"
description: "Usa POST /users/{user_id}/wallets/{wallet_id}/events para crear un movimiento manual de wallet."
canonical: https://docs.ordering.co/es/api-reference/guides/create-event-by-user/
---

# Crear un movimiento de wallet de usuario

> **API operation:** [Abrir la operación en la Referencia de la API](https://docs.ordering.co/es/api-reference/#tag/users/POST/users/{user_id}/wallets/{wallet_id}/events)

Usa `POST /users/{user_id}/wallets/{wallet_id}/events` para crear un movimiento manual de wallet. La operación pública actual es `WalletEvent.register`.

El comportamiento descrito requiere autenticación de administrador. `amount` es obligatorio y puede ser positivo o negativo; `description` es opcional. La wallet debe pertenecer al usuario seleccionado, estar habilitada por la configuración del proyecto y no estar bloqueada. Un movimiento exitoso cambia el saldo de la wallet y registra el autor autenticado y la huella de auditoría (fingerprint).

Los movimientos de wallet afectan el valor almacenado. Valida la autorización, el importe, la moneda o el tipo de valor y la intención comercial antes de crear uno. Consulta [Modelo de movimientos de wallet](https://docs.ordering.co/es/api-reference/guides/wallet-event-model/).

## Referencia de OpenAPI

**Operación:** `POST /users/{user_id}/wallets/{wallet_id}/events`

**Parámetros de ruta**

| Nombre      | Tipo    | Obligatorio | Descripción |
| ----------- | ------- | ----------- | ----------- |
| `user_id`   | integer | Sí          | —           |
| `wallet_id` | integer | Sí          | —           |

**Parámetros de encabezado**

| Nombre                 | Tipo   | Obligatorio | Descripción |
| ---------------------- | ------ | ----------- | ----------- |
| `User-Agent`           | string | No          | —           |
| `X-Forwarded-For`      | string | No          | —           |
| `X-Internal-Product-X` | string | No          | —           |

**Campos del cuerpo de la solicitud**

| Nombre        | Tipo   | Obligatorio |
| ------------- | ------ | ----------- |
| `amount`      | number | Sí          |
| `description` | any    | No          |

**Respuestas**

| Código | Descripción                                                                                                                                                                                                                                                                        |
| ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 200    | Respuesta exitosa. El contenido de `result` varía según la operación y se devuelve como JSON.                                                                                                                                                                                      |
| 400    | Respuesta de error (error=true). Los errores de validación y de negocio comparten este código.                                                                                                                                                                                     |
| 401    | Respuesta de error: sesión ausente, inválida, o nivel de usuario fuera de los permitidos. Respuesta de error: el proyecto no existe o no tiene una suscripción activa.                                                                                                             |
| 404    | Respuesta vacía: la versión de API solicitada no está admitida.                                                                                                                                                                                                                    |
| 429    | Envelope de error: se excedió un límite de consumo del proyecto (o el sujeto está baneado). Lleva Retry-After y X-RateLimit-Limit/Remaining/Reset/Scope/Key.                                                                                                                       |
| 500    | Respuesta de error: falló la búsqueda o inicialización del proyecto.                                                                                                                                                                                                               |
| 503    | Envelope de error: la aplicación está temporalmente en mantenimiento. Envelope de error: el proyecto está temporalmente en mantenimiento, o los límites de consumo no se pudieron evaluar y el límite aplicable está configurado con on\_error = closed (cabecera Retry-After: 1). |

[Abrir esta operación en la Referencia de la API](https://docs.ordering.co/es/api-reference/#tag/users/POST/users/{user_id}/wallets/{wallet_id}/events)
