{"expense":{"id":1,"project":null,//IDdelproyecto"quote":1,//IDdecotización"company":null,//IDdemarca"amount":50000,//Gastototalencentavos"type":"cash",//cash:Efectivo,card:Tarjeta"concept":"Alimentos",//cash:Efectivo,card:Tarjeta"description":"Gasto de $500 en alimentos para el equipo de producción",//Nota"note":"Gasto de comida en Corna Capital",//Notaextra"status":"accepted","accepted_at":null,"accepted_by":null,//IDdeusuarioquerechazoelgasto"rejected_by":22,//IDdeusuarioquerechazoelgasto"rejected_at":"2019-11-15 15:00:00"//Fechaenqueelgastoserechazó}}
nullable : El valor puede ser null. Los atributos que NO tengan esta etiqueta, no tienen permitido ser null.
required : El campo bajo validación debe estar presente en los datos de entrada y no estar vacío. Un campo se considera "vacío" si se cumple una de las siguientes condiciones:
El valor es nulo.
El valor es una cadena vacía.
El valor es una matriz vacía o un objeto contable vacío.
size:[value]: El campo bajo validación debe tener un tamaño que coincida con el valor dado. Para los datos de cadena, el valor corresponde al número de caracteres. Para datos numéricos, el valor corresponde a un valor entero dado. Para una matriz, el tamaño corresponde al recuento de la matriz. Para los archivos, el tamaño corresponde al tamaño del archivo en kilobytes.
unique:[tabla],[columna] : Validación de unicidad en la base. No debe existir en la tabla [tabla]
en la columna [columna]ninguna coincidencia con el valor del atributo a validar.
exists:[tabla],[columna] : Validación de existencia en la base. Debe existir en la tabla [tabla]
en la columna [columna]al menos una coincidencia con el valor del atributo a validar.
confirmation : Debe ser enviado otro parámetro llamado attr_confirmation cuyo valor sea el mismo que el del parámetro attr. Comunmente usado para validar que las contraseñas coincidan.
min:[len]: Si se está validado un número se validará que el número a validar sea mayor o igual que len. Si se valida una cadena la longitud de la cadena debe ser mayor o igual que len.
min:[len]: Si se está validado un número se validará que el número a validar sea menor o igual que len. Si se valida una cadena la longitud de la cadena debe ser menor o igual que len.
exact:[len]: Si se está validado un número se validará que el número a validar tenga el valor exacto que len. Si se valida una cadena la longitud de la cadena sea exactamente len.
{code:422,message:"Hay errores semánticos y no se puede procesar el contenido de la solicitud.",errors:[{code:4222,fields:"email",message:"El formato del correo electrónico es incorrecto"},{code:4221,fields:"name",message:"El nombre no puede contener caracteres especiales"}]}
Todos los errores del API deben proveer una respuesta JSON que informe sobre el error. El formato de los errores se dividen en 2 dependiendo su código de estado HTTP:
1. Los errores de validación de campos que corresponden en mayor parte a códigos 400 y 422. Por ejemplo, La contraseña no debe tener más de 16 caracteres, El campo email no puede ser vacío, etc.
message : es el mensaje corres
ondiente para el código HTTP enviado. Por ejemplo, si se envía el código HTTP 400 el mensaje es: Algún campo no ha sido enviado.
errors : es un arreglo de objetos que contienen el detalle de los campos que fallarón. Cada objeto del arreglo contiene:
fields : Campo que no pasó las validaciones.
message : Mensaje detallado del error.
{code:"4033",message:"No fue posible verificar la autenticidad de la firma."}
2. Los errores que no correspondan a errores de campos. Por ejemplo, No cuentas con los permisos necesarios para realizar esta acción, Token inválido, etc.
Para este tipo de errores se envía un JSON con el siguiente formato:
El lenguaje del mensaje de error depende del código de lenguaje que se envíe en la cabecera Accept-Language de la petición que provoque el error. Si la cabecera no se encuentra o el código es diferente de es o en el lenguaje por defecto es Español.
HTTP Errors y Códigos de Error
Error Code
Meaning
400
Bad Request - No se puede procesar la solicitud debido a algo que se percibe como un error del cliente.
401
Unauthorized - Hay un error con la autorización.
403
Forbidden - No es posible otorgar acceso.
404
Not Found - No se encontró el recurso de destino.
409
Conflict - La solicitud no pudo completarse debido a un conflicto con el estado actual.
410
Gone - El recurso objetivo ya no está disponible.
415
Unsupported Media Type - Hay un problema con el archivo.
422
Unprocessable Entry - Hay errores semánticos y no se puede procesar el contenido de la solicitud
423
Locked - No puedes realizar esta acción ya que esta bloqueada
424
Failed Dependency - La acción solicitada dependía de otra acción y esa acción falló
500
Server Error - El servidor encontró una condición inesperada que le impidió cumplir con la solicitud.
1081
El pago fue realizado con éxito, pero no se ha recibido la confimación.
4001
El campo no ha sido enviado.
4002
Tiene valores duplicados.
4011
Token inválido.
4012
Credenciales incorrectas.
4013
La sesión no es válida.
4014
Se requiere el encabezado Authorization.
4015
Falta subject en payload.
4016
La sesión expiró.
4031
No cuentas con los permisos para realizar esta acción.
4032
No existe una solicitud para establecer contraseña.
4033
No fue posible verificar la autenticidad de la firma.
4041
El recurso que buscas no existe.
4042 {{model}}
La instancia del modelo {{model}} no se encontró.
4091
El administrador debe tener los permisos básicos.
4092
Este correo electrónico ya ha sido tomado.
4093 {{thing}}{{value}}
{{thing}}{{value}} ya ha sido tomado.
4101
El recurso solicitado ya no está disponible
4151
El formato debe ser uno de los siguientes: jpg, jpeg, png, pdf.
4152 {{h}}{{w}}
El tamaño de la imagen debe ser mayor a {{h}} x {{w}} px.
4153 {{size}}
El archivo debe pesar a lo más {{size}} Kb.
4154
Debe ser un archivo (Hint: Content-Type: multipart/form-data)
4221
No puede ser vacío onull.
4222 {{len}}
Debe tener {{len}} o más caracteres.
4223 {{len}}
Debe tener a lo más {{len}} caracteres.
4224
El formato no es válido.
4225
Las contraseñas no coinciden.
4226 {{len}}
La longitud del debe ser {{len}}.
4227
Debe tener sólo letras.
4228
Debe tener sólo letras y números.
4229 {{format}}
Debe tener el formato {{format}}
42210 {{list}}
Debe ser uno de los siguientes valores: {{list}}
42211
Debe ser true o false
42212 {{min}}{{max}}
Debe ser mayor que {{min}} y menor o igual que {{max}}
42213
No es una URL válida.
42214 {{type}}
Debe ser del tipo: {{type}}
42215
El rango de fechas es incorrecto.
42216
Correo electrónico inválido.
42217
Debe ser una cadena.
42218
Debe ser un número.
42219
Debe ser un Objeto JSON.
42220
Debe ser un arreglo.
42221
Debe ser un valor booleano.
42222
Debe ser una cadena de números.
42223
Debe ser una fecha.
42224
Debe tener sólo letras y .
42225
Identificador Único inválido.
42226
Número de teléfono inválido.
4231
No puedes cambiar tu rol.
4232
No puedes desactivarte.
4241
No fue posible enviar el correo electrónico debido a problemas con el servidor SMTP.