Resolver filas en lote
La misma acción sobre varias filas: lineIds (hasta 1.000) o filter ({} = todas; los mismos campos del listado de filas, con status como arreglo). Por filtro se toman las primeras 1.000 que la acción puede resolver con esta llave y remaining dice cuántas quedan. Lo que no aplica sale en skipped sin tumbar el resto. reset por filtro con más de 1.000 filas es 422 BULK_TOO_LARGE.
Autorización
apiKey reconciliation.writeLa llave del negocio, creada en el panel: Integraciones → API pública. vk_live_… es una llave real; vk_test_…, una llave de modo prueba (verificaciones simuladas, nada toca el libro real). Ver la guía «Modo de prueba».
Va en: header
Permiso: reconciliation.write
Parámetros de la ruta
Parámetros de consulta
Sobre qué negocio actúa la petición. Obligatorio solo si la llave entra a varios negocios; con uno solo, se deduce.
Parámetros de cabecera
Llave única de la operación. Un reintento con la misma llave y el mismo cuerpo devuelve la respuesta original en vez de volver a ejecutar. Ver la guía de idempotencia.
length <= 255Cuerpo de la petición
application/json
Tipos de TypeScript
Usa el tipo request body en TypeScript.
Cuerpo de la respuesta
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/bank-statements/cmuh8q2r70044x8w1b6n3m1kd/lines/bulk" \ -H "Content-Type: application/json" \ -d '{ "action": "register_income", "filter": { "status": [ "UNMATCHED" ], "direction": "in" } }'{ "object": "bankStatementBulkAction", "action": "register_income", "selected": 5, "applied": 5, "alreadyDone": 0, "skipped": [], "remaining": 0, "created": { "incomes": 5, "expenses": 0 }, "statement": { "id": "cmuh8q2r70044x8w1b6n3m1kd", "progress": { "total": 64, "resolved": 52, "pending": 12, "percentResolved": 81 }, "groups": { "matched": { "count": 38, "amount": 4104300 }, "registered": { "count": 1, "amount": 120000 }, "bankFees": { "count": 13, "amount": 26443.62 }, "ignored": { "count": 0, "amount": 0 }, "missingIncomes": { "count": 5, "amount": 648000 }, "missingExpenses": { "count": 7, "amount": 1843200 }, "onlyInVerifika": { "count": 2, "amount": 95000 } } }}Deshacer una fila POST
Deshace lo resuelto y la vuelve a cruzar. **No borra** lo que se registró en el libro: casi siempre la fila vuelve a quedar `MATCHED` con ese mismo movimiento.
Archivar un cliente POST
Lo saca del tablero, de la lista y de los totales (ya no se le cobra, se mudó…). **No perdona la deuda** —para eso está condonar— ni borra el historial: se lee igual y se restaura cuando quieras. Mientras esté archivado no admite movimientos ni ediciones. Archivar uno que ya estaba archivado responde `404`. Permiso: `receivables.write`.