# Cambio de cuenta bancaria(Solicitar cambio de cuenta (1)) - [store]

## 🧾 Descripción

*Registra una nueva **solicitud de cambio de cuenta bancaria** para un empleado, validando previamente:*

- Que la información esté completa.
- Que el formato del número de cuenta coincida con las reglas del banco seleccionado.
- Que el empleado **no tenga ya una solicitud en estado Borrador**.
- Que se adjunte el documento de acreditación de la nueva cuenta bancaria.

*Si todo es correcto, crea un nuevo documento en el ERP: **`Cambio de Cuenta Bancaria`***

---

## 🚀 Endpoint

### **POST** `/cambio-cuenta-bancaria/store`

---

## 📥 Request Body

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-%7B-%22empleado%22%3A-%22emp-0"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`<span class="hljs-punctuation">{</span>  <span class="hljs-attr">"empleado"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"EMP-0001"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"nuevo_banco"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"Banco de Crédito del Perú"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"nueva_cuenta_bancaria"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"12345678901234"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"documento_cuenta"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"/files/archivo.pdf"</span><span class="hljs-punctuation">}</span>`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>### Campos requeridos

<div class="_tableContainer_1rjym_1" id="bkmrk-campo-tipo-obligator"><div class="group _tableWrapper_1rjym_13 flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="1425" data-start="1093"><thead data-end="1137" data-start="1093"><tr data-end="1137" data-start="1093"><th data-col-size="sm" data-end="1101" data-start="1093">Campo</th><th data-col-size="sm" data-end="1108" data-start="1101">Tipo</th><th data-col-size="sm" data-end="1122" data-start="1108">Obligatorio</th><th data-col-size="sm" data-end="1137" data-start="1122">Descripción</th></tr></thead><tbody data-end="1425" data-start="1182"><tr data-end="1226" data-start="1182"><td data-col-size="sm" data-end="1193" data-start="1182">empleado</td><td data-col-size="sm" data-end="1202" data-start="1193">string</td><td data-col-size="sm" data-end="1207" data-start="1202">✔️</td><td data-col-size="sm" data-end="1226" data-start="1207">ID del empleado</td></tr><tr data-end="1278" data-start="1227"><td data-col-size="sm" data-end="1241" data-start="1227">nuevo\_banco</td><td data-col-size="sm" data-end="1250" data-start="1241">string</td><td data-col-size="sm" data-end="1255" data-start="1250">✔️</td><td data-col-size="sm" data-end="1278" data-start="1255">Nuevo banco elegido</td></tr><tr data-end="1353" data-start="1279"><td data-col-size="sm" data-end="1303" data-start="1279">nueva\_cuenta\_bancaria</td><td data-col-size="sm" data-end="1312" data-start="1303">string</td><td data-col-size="sm" data-end="1317" data-start="1312">✔️</td><td data-col-size="sm" data-end="1353" data-start="1317">Número de cuenta del nuevo banco</td></tr><tr data-end="1425" data-start="1354"><td data-col-size="sm" data-end="1373" data-start="1354">documento\_cuenta</td><td data-col-size="sm" data-end="1382" data-start="1373">string</td><td data-col-size="sm" data-end="1387" data-start="1382">✔️</td><td data-col-size="sm" data-end="1425" data-start="1387">Archivo previamente cargado en ERP</td></tr></tbody></table>

</div></div>---

## 🔐 Seguridad

Requiere autenticación interna mediante `ServiceErp()` y `dbErp()` hacia el ERP corporativo.

---

## 🧠 Flujo del Servicio (resumen real)

### **1. Validaciones iniciales**

- Verifica que todos los campos obligatorios estén presentes.
- Valida longitud del número de cuenta según el banco:

<div class="_tableContainer_1rjym_1" id="bkmrk-banco-longitudes-v%C3%A1l"><div class="group _tableWrapper_1rjym_13 flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="1882" data-start="1741"><thead data-end="1771" data-start="1741"><tr data-end="1771" data-start="1741"><th data-col-size="sm" data-end="1749" data-start="1741">Banco</th><th data-col-size="sm" data-end="1771" data-start="1749">Longitudes válidas</th></tr></thead><tbody data-end="1882" data-start="1803"><tr data-end="1820" data-start="1803"><td data-col-size="sm" data-end="1809" data-start="1803">BCP</td><td data-col-size="sm" data-end="1820" data-start="1809">14 o 20</td></tr><tr data-end="1843" data-start="1821"><td data-col-size="sm" data-end="1828" data-start="1821">BBVA</td><td data-col-size="sm" data-end="1843" data-start="1828">16, 18 o 20</td></tr><tr data-end="1867" data-start="1844"><td data-col-size="sm" data-end="1856" data-start="1844">Interbank</td><td data-col-size="sm" data-end="1867" data-start="1856">18 o 20</td></tr><tr data-end="1882" data-start="1868"><td data-col-size="sm" data-end="1876" data-start="1868">Otros</td><td data-col-size="sm" data-end="1882" data-start="1876">20</td></tr></tbody></table>

</div></div>Si no cumple → devuelve error.

---

### **2. Verifica si el empleado ya tiene una solicitud en estado Borrador**

Se consulta en el ERP:

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-get-cambio-de-cuenta"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`GET Cambio de Cuenta <span class="hljs-type">Bancaria</span><span class="hljs-variable">filters</span> <span class="hljs-operator">=</span> [[<span class="hljs-string">"empleado"</span>,<span class="hljs-string">"="</span>, empleado],[<span class="hljs-string">"docstatus"</span>,<span class="hljs-string">"="</span>,<span class="hljs-number">0</span>]]`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>Si ya existe un documento en borrador → error.

---

### **3. Registrar la nueva solicitud**

Si no existe borrador, crea el documento:

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-post-resource%2Fcambio"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`POST resource/Cambio de Cuenta Bancaria{  <span class="hljs-string">"empleado"</span>: empleado,  <span class="hljs-string">"nombre_de_banco_nuevo"</span>: nuevo_banco,  <span class="hljs-string">"nuevo_num_de_cuenta_bancaria"</span>: nueva_cuenta_bancaria,  <span class="hljs-string">"documento_cuenta"</span>: documento_cuenta}`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>---

## 📤 Response 200 – Éxitoso

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-%7B-%22valor%22%3A-true%2C-%22ms"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`<span class="hljs-punctuation">{</span>  <span class="hljs-attr">"valor"</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">true</span></span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"msn"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"Registrado con éxito"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"response"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>    <span class="hljs-attr">"name"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"CCB-000123"</span><span class="hljs-punctuation">,</span>    <span class="hljs-attr">"empleado"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"EMP-0001"</span><span class="hljs-punctuation">,</span>    <span class="hljs-attr">"nombre_de_banco_nuevo"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"Banco de Crédito del Perú"</span><span class="hljs-punctuation">,</span>    <span class="hljs-attr">"nuevo_num_de_cuenta_bancaria"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"12345678901234"</span>  <span class="hljs-punctuation">}</span><span class="hljs-punctuation">}</span>`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>---

## ❗ Posibles Errores

### 1. Falta un dato obligatorio

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-%7B-%22valor%22%3A-false%2C-%22m"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`<span class="hljs-punctuation">{</span>  <span class="hljs-attr">"valor"</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">false</span></span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"msn"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"Debe adjuntar un documento de acreditación de cuenta bancaria"</span><span class="hljs-punctuation">}</span>`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>### 2. Número de cuenta inválido

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-%7B-%22valor%22%3A-false%2C-%22m-1"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`<span class="hljs-punctuation">{</span>  <span class="hljs-attr">"valor"</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">false</span></span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"msn"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"Cantidad de dígitos de número de cuenta incorrecto"</span><span class="hljs-punctuation">}</span>`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>### 3. Ya existe solicitud en borrador

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-%7B-%22valor%22%3A-false%2C-%22m-2"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`<span class="hljs-punctuation">{</span>  <span class="hljs-attr">"valor"</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">false</span></span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"msn"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"Ya cuenta con una solicitud en Borrador pendiente de validar"</span><span class="hljs-punctuation">}</span>`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>### 4. Error al registrar en ERP

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-%7B-%22valor%22%3A-false%2C-%22m-3"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`<span class="hljs-punctuation">{</span>  <span class="hljs-attr">"valor"</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">false</span></span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"msn"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"Ocurrió un error al registrar el cambio de cuenta bancaria"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"error"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> ... <span class="hljs-punctuation">}</span><span class="hljs-punctuation">}</span>`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>---

## 📚 Schemas utilizados

### **Cambio de Cuenta Bancaria (POST)**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-%7B-%22empleado%22%3A-%22strin"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`<span class="hljs-punctuation">{</span>  <span class="hljs-attr">"empleado"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"string"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"nombre_de_banco_nuevo"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"string"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"nuevo_num_de_cuenta_bancaria"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"string"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"documento_cuenta"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"string"</span><span class="hljs-punctuation">}</span>`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>### **Consulta de solicitudes**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-%7B-%22name%22%3A-%22string%22-%7D"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`<span class="hljs-punctuation">{</span>  <span class="hljs-attr">"name"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"string"</span><span class="hljs-punctuation">}</span>`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>---

## 🗃 Lógica en pseudo-código

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-if-faltan_datos%3A-ret"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`if faltan_datos:    return errorvalidar_longitud_segun_banco()buscar_borrador = GET CambioCuentaBancaria where empleado and docstatus=0if existe_borrador:    return error "Ya cuenta con una solicitud"crear_documento = POST CambioCuentaBancaria {    empleado,    banco,    cuenta,    documento}return éxito`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>