swagger: '2.0' info: description: | Prepago Multicaja - API Alpha ** Este es una API en alpha y por lo tanto sufrirá muchos cambios ** Mientras está en modo alpha, no mantendremos versiones anteriores version: '0.10' title: API Multicaja (Alpha) host: 'api.multicaja.cl' basePath: /v0.10-alpha/ consumes: - application/json produces: - application/json tags: - name: prepaid description: Métodos públicos de la API de prepago - name: prepaid-signup description: Registro de usuarios de prepago paths: /prepaid/{user_id}/signup: post: tags: - prepaid-signup summary: Inicia un proceso de registro para obtener la tarjeta de prepago description: | Inicia un proceso de registro. Retorna `prepaid_user`, el que indica qué pasos se deben realizar. Llamadas permitidas cuando el cliente está registrándose: ``` # API-Prepaid POST /prepaid/signup GET /prepaid/signup/{signup_id} # API-Users GET /users/{user_id} POST /users/{user_id}/update_personal_data POST /users/{user_id}/validate_rut POST /users/{user_id}/validate_email PUT /users/{user_id}/mail POST /users/{user_id}/validate_cellphone PUT /users/{user_id}/sms POST /users/{user_id}/sign_contract POST /users/{user_id}/update_password # debe ser la última llamada ``` parameters: - in: path name: user_id description: ID del Cliente required: true type: integer responses: '200': description: | OK - Usuario registrado en prepago. schema: $ref: '#/definitions/prepaid_user' '400': description: Error en parámetros, se lanza a cuando un parámetro es requerido y no se ha enviado schema: $ref: '#/definitions/error_obj' '404': description: Cliente no existe o no tiene prepago schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado, se lanza cuando ocurre un error imprevisto de sistema schema: $ref: '#/definitions/error_obj' /prepaid/{user_id}/finish_signup: post: tags: - prepaid_finish_signup summary: Termina un proceso de registro para obtener la tarjeta de prepago description: | Termina un proceso de registro. Retorna `prepaid_user`. parameters: - in: path name: user_id description: ID del Cliente required: true type: integer responses: '200': description: | OK - Usuario prepago. schema: $ref: '#/definitions/prepaid_user' '400': description: Error en parámetros, se lanza a cuando un parámetro es requerido y no se ha enviado schema: $ref: '#/definitions/error_obj' '422': description: Carga no exitosa, revise error schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado, se lanza cuando ocurre un error imprevisto de sistema schema: $ref: '#/definitions/error_obj' /prepaid/{user_id}/signup/tac: get: tags: - prepaid-signup summary: Terminos y Condiciones description: | Informacion de los terminos y condiciones vigentes para Prepago parameters: - in: path name: user_id description: ID del Cliente required: true type: integer responses: '200': description: | OK schema: $ref: '#/definitions/prepaid_tac' '404': description: Cliente no existe o no tiene prepago schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado, se lanza cuando ocurre un error imprevisto de sistema schema: $ref: '#/definitions/error_obj' post: tags: - prepaid-signup summary: Aceptar Terminos y Condiciones description: | Aceptar los beneficios y los terminos y condiciones del producto Prepago parameters: - in: path name: user_id description: ID del Cliente required: true type: integer - in: body name: new_tac description: Detalle required: true schema: $ref: '#/definitions/prepaid_tac_new' responses: '200': description: | OK '400': description: Error en parámetros, se lanza a cuando un parámetro es requerido y no se ha enviado schema: $ref: '#/definitions/error_obj' '404': description: Cliente no existe o no tiene prepago schema: $ref: '#/definitions/error_obj' '422': description: Error de validación de negocio, revise error schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado, se lanza cuando ocurre un error imprevisto de sistema schema: $ref: '#/definitions/error_obj' /prepaid/topup: post: tags: - prepaid summary: Carga una tarjeta consumes: - application/json description: | Carga una tarjeta ### Notas * Valida que el usuario esté habilitado para cargar. Esto significa que el usuario debe estar validado hasta nivel 1 o nivel 2. * Valida que la carga no exceda los límites * Abona a la Cuenta de Traspaso Personal (CTP) y gatilla un proceso asíncrono que debita la CTP para abonar a la Tarjeta de Prepago. ### Responderá `400` en los siguientes casos: * 101004: Si un parámetro es requerido y no se ha enviado. * 101007: Si un parámetro no cumple formato. ### Responderá `401` en los siguientes casos: * 401: Si faltó incluir la key de suscripción en el header, o si la key es incorrecta. ### Responderá `404` en los siguientes casos: * 102001: Si el cliente no está registrado en Tenpo. * 102003: Si el cliente no tiene prepago. ### Responderá `422` en los siguientes casos: * 102002: Si el cliente está bloqueado o borrado. * 102004: Si el cliente está bloqueado o borrado de prepago. * 102015: Si el cliente está en una lista negra, por lo tanto no puede realizar la carga. * 106000: Si la tarjeta está expirada o tiene un bloqueo duro. * 106001: La procesadora rechazó la carga, verificar mensaje. * 106002: Si la tarjeta no existe. * 106011: Si la tarjeta está bloqueada. * 108000: Error al validar transacción. * 108001: El usuario en nivel 1 solo puede realizar 1 carga. * 108201: La carga supera el monto máximo de carga web. * 108202: La carga supera el monto máximo de carga pos. * 108203: La carga es menor al mínimo de carga. * 108204: La carga supera el monto máximo de cargas mensuales. * 108901: La carga supera el monto máximo de carga permitida. * 108902: El importe es menor al mínimo permitido. * 108903: Excedido límite diario en cajeros. * 108205 y 108206: La carga supera el monto máximo de primera carga. * 130005: Si es que se recibio una reversa para la carga previamente. * 140003: Si la cuenta está cerrada. * 140004: Si la cuenta está bloqueada. * 140005: Si la cuenta está inactiva. * 108909: Si el saldo es mayor al saldo permitido. ### Responderá `500` en los siguientes casos: * Error imprevisto de sistema parameters: - in: header name: Ocp-Apim-Subscription-Key description: Key de subscripción requerido (es entregado por Tenpo) required: true type: string - in: body name: new_topup description: Detalle de la carga a realizar required: true schema: $ref: '#/definitions/prepaid_topup_new' responses: '201': description: | OK - Carga se realizará en los próximos segundos headers: Content-Type: type: string Transfer-Encoding: type: string Date: type: string schema: $ref: '#/definitions/prepaid_topup' '400': description: Error en parámetros, se lanza a cuando un parámetro es requerido y no se ha enviado ó no cumple formato headers: Content-Type: type: string Transfer-Encoding: type: string Date: type: string tracer-id: description: Id Interno type: string schema: $ref: '#/definitions/error_obj' '401': description: Error de key, se lanza a cuando el key de suscripción no fue incluido en el header o está incorrecto headers: Content-Type: type: string Content-Length: type: integer Date: type: string WWW-Authenticate: description: Metodo de autenticación type: string schema: $ref: '#/definitions/error_obj_401' '404': description: Cliente no existe o no tiene prepago headers: Content-Type: type: string Transfer-Encoding: type: string Date: type: string tracer-id: description: Id Interno type: string schema: $ref: '#/definitions/error_obj' '422': description: Carga no exitosa, revise error headers: Content-Type: type: string Transfer-Encoding: type: string Date: type: string tracer-id: description: Id Interno type: string schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado, se lanza cuando ocurre un error imprevisto de sistema headers: Content-Type: type: string Transfer-Encoding: type: string Date: type: string tracer-id: description: Id Interno type: string schema: $ref: '#/definitions/error_obj' /prepaid/topup/reverse: post: tags: - prepaid summary: Reversa una carga consumes: - application/json description: | Reversa una carga que a) coincida en todos los campos de prepaid_topup_new y b) se haya recibido en las últimas 24 horas. ### Responderá `201` en los siguientes casos: * Si la carga se recibió, en cuyo caso iniciara el proceso de reversa. ### Responderá `202` en los siguientes casos: * 130001: Si la carga nunca se recibió, en cuyo caso se dejara registro de la reversa en caso de recibir la carga mas adelante. * 130003: Si la reversa fue recibida previamente para su procesamiento. ### Responderá `400` en los siguientes casos: * 101004: Si un parámetro es requerido y no se ha enviado. * 101007: Si un parámetro no cumple formato. ### Responderá `401` en los siguientes casos: * 401: Si faltó incluir la key de suscripción en el header, o si la key es incorrecta. ### Responderá `404` en los siguientes casos: * 102001: Si el cliente no está registrado en Tenpo. * 102003: Si el cliente no tiene prepago. ### Responderá `410` en los siguientes casos: * 130004: Si es que la carga fue recibida y no está reversada, pero el plazo para reversarla ya expiró. ### Responderá `422` en los siguientes casos: * 130002: Si es que la carga fue recibida y la información de la reversa no concuerda. parameters: - in: header name: Ocp-Apim-Subscription-Key description: Key de subscripción requerido (es entregado por Tenpo) required: true type: string - in: header name: user-timezone description: La zona horaria del cliente (default America/Santiago) required: false type: string - in: body name: new_topup description: Detalle de la carga a realizar required: true schema: $ref: '#/definitions/prepaid_topup_new' responses: '201': description: OK - Proceso de reversa iniciado headers: Content-Length: type: string Date: type: string '202': description: OK - Reversa recibida previamente headers: Content-Type: type: string Transfer-Encoding: type: string Date: type: string tracer-id: description: Id Interno type: string schema: $ref: '#/definitions/error_obj' '400': description: Error en parámetros, se lanza a cuando un parámetro es requerido y no se ha enviado headers: Content-Type: type: string Transfer-Encoding: type: string Date: type: string tracer-id: description: Id Interno type: string schema: $ref: '#/definitions/error_obj' '401': description: Error de key, se lanza a cuando el key de suscripción no fue incluido en el header o está incorrecto headers: Content-Type: type: string Content-Length: type: integer Date: type: string WWW-Authenticate: description: Metodo de autenticación type: string schema: $ref: '#/definitions/error_obj_401' '404': description: Cliente no existe o no tiene prepago headers: Content-Type: type: string Transfer-Encoding: type: string Date: type: string tracer-id: description: Id Interno type: string schema: $ref: '#/definitions/error_obj' '410': description: Plazo para reversar expirado headers: Content-Type: type: string Transfer-Encoding: type: string Date: type: string tracer-id: description: Id Interno type: string schema: $ref: '#/definitions/error_obj' '422': description: Información de reversa no concuerda con la carga headers: Content-Type: type: string Transfer-Encoding: type: string Date: type: string tracer-id: description: Id Interno type: string schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado, se lanza cuando ocurre un error imprevisto de sistema headers: Content-Type: type: string Transfer-Encoding: type: string Date: type: string tracer-id: description: Id Interno type: string schema: $ref: '#/definitions/error_obj' /prepaid/withdrawal: post: tags: - prepaid summary: Retira dinero de una tarjeta consumes: - application/json description: | Debita una tarjeta ### Notas * Valida que el usuario esté habilitado para retirar. * Valida que el retiro no exceda los límites * Debita la Tarjeta de Prepago y abona a la Cuenta de Traspaso Personal (CTP), luego debita la CTP y abona a la cuenta de destino. ### Responderá `400` en los siguientes casos: * 101004: Si un parámetro es requerido y no se ha enviado. * 101007: Si un parámetro no cumple formato. ### Responderá `401` en los siguientes casos: * 401: Si faltó incluir la key de suscripción en el header, o si la key es incorrecta. ### Responderá `404` en los siguientes casos: * 102001: Si el cliente no está registrado en Tenpo. * 102003: Si el cliente no tiene prepago. ### Responderá `422` en los siguientes casos: * 102002: Si el cliente está bloqueado o borrado. * 102004: Si el cliente está bloqueado o borrado de prepago. * 102053: Si la clave ingresada no coincide. * 102015: Si el cliente está en una lista negra, por lo tanto no puede realizar la carga. * 103001: Si la cuenta bancaria seleccionada no está asociada al cliente. * 106000: Si la tarjeta está expirada o tiene un bloqueo duro. * 106001: La procesadora rechazó el retiro, verificar mensaje. * 106002: Si la tarjeta no existe. * 106011: Si la tarjeta está bloqueada. * 108000: Error al validar transacción. * 108301: El retiro supera el monto máximo de un retiro web. * 108302: El retiro supera el monto máximo de un retiro pos. * 108303: El monto de retiro es menor al monto mínimo de retiros. * 108304: El retiro supera el monto máximo de retiros mensuales. * 108901: El retiro supera el monto máximo de un retiro. * 108902: El importe es menor al mínimo permitido. * 108903: Excedido límite diario en cajeros. * 140003: Si la cuenta está cerrada. * 140004: Si la cuenta está bloqueada. * 140005: Si la cuenta está inactiva. * 108909: Si el saldo es mayor al saldo permitido. ### Responderá `500` en los siguientes casos: * Error imprevisto de sistema parameters: - in: header name: Ocp-Apim-Subscription-Key description: Key de subscripción requerido (es entregado por Tenpo) required: true type: string - in: body name: new_withdrawal description: Detalle del retiro a realizar required: true schema: $ref: '#/definitions/prepaid_withdrawal_new' responses: '201': description: | OK - Retiro realizado headers: Content-Type: type: string Transfer-Encoding: type: string Date: type: string schema: $ref: '#/definitions/prepaid_withdrawal' '400': description: Error en parámetros, se lanza a cuando un parámetro es requerido y no se ha enviado ó no cumple formato headers: Content-Type: type: string Transfer-Encoding: type: string Date: type: string tracer-id: description: Id Interno type: string schema: $ref: '#/definitions/error_obj' '401': description: Error de key, se lanza a cuando el key de suscripción no fue incluido en el header o está incorrecto headers: Content-Type: type: string Content-Length: type: integer Date: type: string WWW-Authenticate: description: Metodo de autenticación type: string schema: $ref: '#/definitions/error_obj_401' '404': description: Cliente no existe o no tiene prepago headers: Content-Type: type: string Transfer-Encoding: type: string Date: type: string tracer-id: description: Id Interno type: string schema: $ref: '#/definitions/error_obj' '422': description: Retiro no exitoso, revise error headers: Content-Type: type: string Transfer-Encoding: type: string Date: type: string tracer-id: description: Id Interno type: string schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado, se lanza cuando ocurre un error imprevisto de sistema headers: Content-Type: type: string Transfer-Encoding: type: string Date: type: string tracer-id: description: Id Interno type: string schema: $ref: '#/definitions/error_obj' /prepaid/withdrawal/reverse: post: tags: - prepaid summary: Reversa un retiro consumes: - application/json description: | Reversa un retiro que a) coincida en todos los campos de prepaid_withdrawal_new y b) se haya recibido en las últimas 24 horas. ### Responderá `201` (éxito) en los siguientes casos: * Si el retiro se recibió, en cuyo caso iniciara el proceso de reversa. ### Responderá `202` en los siguientes casos: * 130001: Si el retiro nunca se recibió, en cuyo caso se dejara registro de la reversa en caso de recibir el retiro mas adelante. * 130003: Si la reversa fue recibida previamente para su procesamiento. ### Responderá `400` en los siguientes casos: * 101004: Si un parámetro es requerido y no se ha enviado. * 101007: Si un parámetro no cumple formato. ### Responderá `401` en los siguientes casos: * 401: Si faltó incluir la key de suscripción en el header, o si la key es incorrecta. ### Responderá `404` en los siguientes casos: * 102001: Si el cliente no está registrado en Tenpo. * 102003: Si el cliente no tiene prepago. ### Responderá `410` en los siguientes casos: * 130004: Si es que el retiro fue recibido y no está reversado, pero el plazo para reversarlo ya expiró. ### Responderá `422` en los siguientes casos: * 130002: Si es que el retiro fue recibido la información de la reversa no concuerda. parameters: - in: header name: Ocp-Apim-Subscription-Key description: Key de subscripción requerido (es entregado por Tenpo) required: true type: string - in: header name: user-timezone description: La zona horaria del cliente (default America/Santiago) required: false type: string - in: body name: new_withdrawal description: Detalle de la carga a realizar required: true schema: $ref: '#/definitions/prepaid_withdrawal_new' responses: '201': description: OK - Proceso de reversa iniciado headers: Content-Length: type: string Date: type: string '202': description: OK - Reversa recibida previamente headers: Content-Type: type: string Transfer-Encoding: type: string Date: type: string tracer-id: description: Id Interno type: string schema: $ref: '#/definitions/error_obj' '400': description: Error en parámetros, se lanza a cuando un parámetro es requerido y no se ha enviado headers: Content-Type: type: string Transfer-Encoding: type: string Date: type: string tracer-id: description: Id Interno type: string schema: $ref: '#/definitions/error_obj' '401': description: Error de key, se lanza a cuando el key de suscripción no fue incluido en el header o está incorrecto headers: Content-Type: type: string Content-Length: type: integer Date: type: string WWW-Authenticate: description: Metodo de autenticación type: string schema: $ref: '#/definitions/error_obj_401' '404': description: Cliente no existe o no tiene prepago headers: Content-Type: type: string Transfer-Encoding: type: string Date: type: string tracer-id: description: Id Interno type: string schema: $ref: '#/definitions/error_obj' '410': description: Plazo para reversar expirado headers: Content-Type: type: string Transfer-Encoding: type: string Date: type: string tracer-id: description: Id Interno type: string schema: $ref: '#/definitions/error_obj' '422': description: Información de reversa no concuerda con el retiro headers: Content-Type: type: string Transfer-Encoding: type: string Date: type: string tracer-id: description: Id Interno type: string schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado, se lanza cuando ocurre un error imprevisto de sistema headers: Content-Type: type: string Transfer-Encoding: type: string Date: type: string tracer-id: description: Id Interno type: string schema: $ref: '#/definitions/error_obj' /prepaid/{user_id}/topup: get: tags: - prepaid summary: Lista las cargas de un cliente description: | Retorna un listado con todas las cargas que ha realizado el cliente, junto a su estatus parameters: - in: path name: user_id description: ID del Cliente required: true type: integer - in: query name: page description: Página type: integer responses: '200': description: | OK - Búsqueda exitosa schema: type: array items: $ref: '#/definitions/prepaid_topup' '400': description: Error en parámetros, se lanza a cuando un parámetro es requerido y no se ha enviado schema: $ref: '#/definitions/error_obj' '404': description: Cliente no existe o no tiene prepago schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado, se lanza cuando ocurre un error imprevisto de sistema schema: $ref: '#/definitions/error_obj' /prepaid/processor/notification: post: summary: Notificación (Callback) tags: - prepaid description: | **Mensaje invocado por el procesador/emisor** Notifica una transacción ocurrida en una tarjeta de prepago Para invocar este servicio se debe incluir el API Key en el header __`X-API-KEY`__ ### Responderá `401` en los siguientes casos: * API Key faltante o invalido. ### Responderá `400` en los siguientes casos: * 101004: Si faltan parametros en el header o body. Ver información del error para mas detalle. ### Responderá `422` en los siguientes casos: * 101007: Si el atributo `base64_data` no es un Base64 valido. parameters: - in: body name: transaction description: Transacción required: true schema: $ref: '#/definitions/raw_transaction_new' responses: '202': description: OK '401': description: Unauthorized '400': description: Error en parámetros, se lanza a cuando un parámetro es requerido y no se ha enviado schema: $ref: '#/definitions/error_obj' '422': description: El mensaje `raw_transaction_new` tiene un error schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado, se lanza cuando ocurre un error imprevisto de sistema schema: $ref: '#/definitions/error_obj' /prepaid/{user_id}/balance: get: tags: - prepaid summary: Retorna el saldo de un cliente prepago description: | Retorna el saldo del cliente prepago ### Responderá `404` con código de error en los siguientes casos: * 102001: Si el cliente no existe * 102003: Si el cliente no está registrado en prepago ### Responderá `422` con código de error en los siguientes casos: * 102002: Cliente bloqueado o borrado * 102004: Cliente prepago bloqueado o borrado * 106007: Si cliente no tiene saldo o tiene saldo expirado y además tiene una carga pendiente * 106008: Si cliente no tiene saldo o tiene saldo expirado y además tiene una carga en proceso * 109002: Saldo no disponible (significa que no tenia saldo en cache o su saldo estaba expirado y fallo al consultar el nuevo saldo a tecnocom) parameters: - in: path name: user_id description: ID del Cliente required: true type: integer responses: '200': description: | OK - Saldo obtenido schema: $ref: '#/definitions/prepaid_balance' '400': description: Error en parámetros, se lanza a cuando un parámetro es requerido y no se ha enviado schema: $ref: '#/definitions/error_obj' '404': description: Cliente no existe o no tiene prepago schema: $ref: '#/definitions/error_obj' '422': description: Valicación de cliente o saldo schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado, se lanza cuando ocurre un error imprevisto de sistema schema: $ref: '#/definitions/error_obj' /prepaid/{user_id}/simulation/topup: post: tags: - prepaid summary: Calculadora de carga description: | Calculadora simulación de carga En caso de que una simulación tenga un error especifico, el mismo viene definido en los campos `code` y `message` ### Responderá `404` en los siguientes casos: * 102001: Si el cliente no existe * 102003: Si el cliente no está registrado en prepago ### Responderá `422` en los siguientes casos: * 108000: Error generico en CDT * 108203: Error en CDT (LA_CARGA_ES_MENOR_AL_MINIMO_DE_CARGA) * 108204: Error en CDT (LA_CARGA_SUPERA_EL_MONTO_MAXIMO_DE_CARGAS_MENSUALES) * 108206: Error en CDT (LA_CARGA_SUPERA_EL_MONTO_MAXIMO_DE_PRIMERA_CARGA) * 109000: Saldo supera el monto maximo parameters: - in: path name: user_id description: ID del Cliente required: true type: integer - in: body name: simulation_topup_new description: Requerimiento de calculo required: true schema: $ref: '#/definitions/simulation_topup_new' responses: '200': description: OK - Respuesta exitosa. schema: $ref: '#/definitions/simulation_group' '400': description: Error en parámetros, se lanza a cuando un parámetro es requerido y no se ha enviado schema: $ref: '#/definitions/error_obj' '404': description: Cliente no existe o no tiene prepago schema: $ref: '#/definitions/error_obj' '422': description: Error en validación schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado, se lanza cuando ocurre un error imprevisto de sistema schema: $ref: '#/definitions/error_obj' /prepaid/{user_id}/simulation/withdrawal: post: tags: - prepaid summary: Calculadora de retiro description: | Calculadora de retiro ### Responderá `404` en los siguientes casos: * 102001: Si el cliente no existe * 102003: Si el cliente no está registrado en prepago ### Responderá `422` en los siguientes casos: * 108000: Error generico en CDT * 108301: Error en CDT (EL_RETIRO_SUPERA_EL_MONTO_MAXIMO_DE_UN_RETIRO_WEB) * 108302: Error en CDT (EL_RETIRO_SUPERA_EL_MONTO_MAXIMO_DE_UN_RETIRO_POS) * 108303: Error en CDT (EL_MONTO_DE_RETIRO_ES_MENOR_AL_MONTO_MINIMO_DE_RETIROS) * 108304: Error en CDT (EL_RETIRO_SUPERA_EL_MONTO_MAXIMO_DE_RETIROS_MENSUALES) * 109001: Saldo insuficiente parameters: - in: path name: user_id description: ID del Cliente required: true type: integer - in: body name: simulation_withdraw_new description: Requerimiento de calculo required: true schema: $ref: '#/definitions/simulation_withdraw_new' responses: '200': description: OK - Respuesta exitosa schema: $ref: '#/definitions/simulation_withdrawal' '400': description: Error en parámetros, se lanza a cuando un parámetro es requerido y no se ha enviado schema: $ref: '#/definitions/error_obj' '404': description: Cliente no existe o no tiene prepago schema: $ref: '#/definitions/error_obj' '422': description: Error en validación schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado, se lanza cuando ocurre un error imprevisto de sistema schema: $ref: '#/definitions/error_obj' /prepaid/{user_id}/card: get: tags: - prepaid summary: Información de la tarjeta prepago description: | Retorna la información de la tarjeta prepago ### Responderá `404` en los siguientes casos: * 102001: Si el cliente no existe * 102003: Si el cliente no está registrado en prepago ### Responderá `422` en los siguientes casos: * 102002: Cliente bloqueado o borrado * 102004: Cliente prepago bloqueado o borrado * 106007: Si el cliente está registrado en prepago, pero no ha realizado la primera carga * 106008: Si cliente está registrado en prepago, ya realizo la primera carga y la misma esta en proceso parameters: - in: path name: user_id description: ID del Cliente required: true type: integer responses: '200': description: | OK - Información de la tarjeta prepago schema: $ref: '#/definitions/prepaid_card' '404': description: Cliente no existe o no tiene tarjeta prepago schema: $ref: '#/definitions/error_obj' '422': description: Cliente tiene primera carga en proceso schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado schema: $ref: '#/definitions/error_obj' /prepaid/{user_id}/card/lock: put: tags: - prepaid summary: Bloquea la tarjeta prepago description: | Bloquea la tarjeta prepago. Si la tarjeta ya esta bloqueada este metodo no hace nada ### Responderá `404` en los siguientes casos: * Si el cliente no existe * Si el cliente no está registrado en prepago ### Responderá `422` en los siguientes casos: * Si el cliente está registrado en prepago, pero no ha realizado la primera carga * Si cliente está registrado en prepago, ya realizo la primera carga y la misma esta en proceso parameters: - in: path name: user_id description: ID del Cliente required: true type: integer responses: '204': description: | OK '404': description: Cliente no existe o no tiene tarjeta prepago schema: $ref: '#/definitions/error_obj' '422': description: Cliente tiene primera carga en proceso schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado schema: $ref: '#/definitions/error_obj' /prepaid/{user_id}/card/unlock: put: tags: - prepaid summary: Desbloquea la tarjeta prepago description: | Desbloquea la tarjeta prepago Si la tarjeta esta activa este metodo no hace nada ### Responderá `404` en los siguientes casos: * Si el cliente no existe * Si el cliente no está registrado en prepago ### Responderá `422` en los siguientes casos: * Si el cliente está registrado en prepago, pero no ha realizado la primera carga * Si cliente está registrado en prepago, ya realizo la primera carga y la misma esta en proceso parameters: - in: path name: user_id description: ID del Cliente required: true type: integer responses: '204': description: | OK '404': description: Cliente no existe o no tiene tarjeta prepago schema: $ref: '#/definitions/error_obj' '422': description: Cliente tiene primera carga en proceso schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado schema: $ref: '#/definitions/error_obj' /prepaid/: get: tags: - prepaid summary: Buscar usuario prepago description: | Retorna la información del usuario prepago por rut ### Responderá `404` en los siguientes casos: * 102001: Si el cliente no existe * 102003: Si el cliente no está registrado en prepago parameters: - in: query name: rut description: Rut sin puntos, guion ni digito verificador required: true type: integer responses: '200': description: | OK - Información del usuario prepago schema: $ref: '#/definitions/prepaid_user' '404': description: Cliente no existe o no tiene tarjeta prepago schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado schema: $ref: '#/definitions/error_obj' /prepaid/{user_id}: get: tags: - prepaid summary: Información del usuario prepago description: | Retorna la información del usuario prepago ### Responderá `404` en los siguientes casos: * 102001: Si el cliente no existe * 102003: Si el cliente no está registrado en prepago parameters: - in: path name: user_id description: ID del Cliente required: true type: integer responses: '200': description: | OK - Información del usuario prepago schema: $ref: '#/definitions/prepaid_user' '404': description: Cliente no existe o no tiene tarjeta prepago schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado schema: $ref: '#/definitions/error_obj' /prepaid/{user_id}/transactions: get: tags: - prepaid summary: Lista de transacciones description: | Retorna una lista con las transacciones del cliente ### Responderá `404` en los siguientes casos: * 102001: Si el cliente no existe * 102003: Si el cliente no está registrado en prepago ### Responderá `422` con código de error en los siguientes casos: * 102002: Cliente bloqueado o borrado * 102004: Cliente prepago bloqueado o borrado * 106007: Si el cliente está registrado en prepago, pero no ha realizado la primera carga * 106008: Si cliente está registrado en prepago, ya realizo la primera carga y la misma esta en proceso parameters: - in: path name: user_id description: ID del Cliente required: true type: integer - in: query name: from description: Fecha desde (yyyy-mm-dd) type: string format: date - in: query name: to description: Fecha hasta (yyyy-mm-dd) type: string format: date - in: query name: count description: Total de registros a extraer, si no se envia significa que son todos los registros, si se envia solo se retornan la cantidad especificada type: integer responses: '200': description: | OK - Transacciones schema: type: array items: $ref: '#/definitions/prepaid_transaction' '400': description: Error en parámetros, se lanza a cuando un parámetro es requerido y no se ha enviado schema: $ref: '#/definitions/error_obj' '404': description: Cliente no existe o no tiene tarjeta prepago schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado schema: $ref: '#/definitions/error_obj' /prepaid/{user_id}/identity/files: post: tags: - prepaid summary: Carga fotos de verificacion de identidad description: | Carga la informacion de las fotos de verificacion de identidad - CI lado frontal - CI lado posterior - Selfie con CI ### Responderá `400` en los siguientes casos: * 101004: Si falta un parametro requerido. ### Responderá `404` en los siguientes casos: * 102001: Si el cliente no existe * 102003: Si el cliente no está registrado en prepago ### Responderá `422` en los siguientes casos: * 102002: Si el cliente esta bloqueado o borrado. * 102004: Si el cliente prepago esta bloqueado o borrado. parameters: - in: path name: user_id description: ID del Cliente required: true type: integer - in: body name: prepaid_identity_verification_files_new description: Informacion de fotos required: true schema: $ref: '#/definitions/prepaid_identity_verification_files_new' responses: '201': description: OK - Respuesta exitosa '400': description: Error en parámetros, se lanza a cuando un parámetro es requerido y no se ha enviado. Verificar detalle del error. schema: $ref: '#/definitions/error_obj' '404': description: Cliente no existe o no tiene prepago schema: $ref: '#/definitions/error_obj' '422': description: Error en validación. Verificar detalle del error. schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado, se lanza cuando ocurre un error imprevisto de sistema schema: $ref: '#/definitions/error_obj' /prepaid/Queue: post: tags: - prepaid summary: Busca un mensaje en la cola y lo reinjecta en la cola en la cual falló description: | Busca un mensaje en la cola y lo reinjecta en la cola en la cual falló las colas son - TopUp (Carga) - WithDrawal (Retiro) - PendingCreateCard (Obtencion de Datos y Creacion) - ReverseTopup (Reversa Carga) - ReverseWithdrawal (Reversa de Retiro) - SendMail(Envio mail Tarjeta) - PendingEmision (Alta Cliente) - IssuanceFee (Cobro de comision) ### Responderá `400` en los siguientes casos: * 101004: Si falta un parametro requerido. parameters: - in: body name: reproces_queue description: Informacion de la cola required: true schema: $ref: '#/definitions/reproces_queue' responses: '201': description: OK - Respuesta exitosa '400': description: Error en parámetros, se lanza a cuando un parámetro es requerido y no se ha enviado. Verificar detalle del error. schema: $ref: '#/definitions/error_obj' '404': description: Cliente no existe o no tiene prepago schema: $ref: '#/definitions/error_obj' '422': description: Error en validación. Verificar detalle del error. schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado, se lanza cuando ocurre un error imprevisto de sistema schema: $ref: '#/definitions/error_obj' /prepaid/{user_id}/identity_verification: post: tags: - prepaid summary: Procesa la validación de identidad realizada en Freshdesk description: | Procesa la validación de identidad realizada en Freshdesk parameters: - in: path name: user_id description: ID del Cliente required: true type: integer - in: body name: prepaid_identity_verification_new description: Informacion de verificacion required: true schema: $ref: '#/definitions/prepaid_identity_verification_new' responses: '201': description: OK - Respuesta exitosa /prepaid/{user_id}/mail: post: summary: Enviar correo al cliente tags: - prepaid description: | Envía comunicacion al email del cliente. ### Notas * Si el template indicado es `Prepago/EnvioTarjeta`, entonces se envia la tarjeta como adjunto al mail cliente. parameters: - in: path name: user_id description: ID del usuario required: true type: "integer" - in: body name: mail description: Correo electrónico a enviar required: true schema: $ref: '#/definitions/email_new' responses: '202': description: Accepted '404': description: Cliente no existe schema: $ref: '#/definitions/error_obj' '422': description: El mail contiene datos inválidos schema: $ref: '#/definitions/error_obj' definitions: prepaid_topup_base: type: object description: | Contenido mínimo de una carga properties: amount: $ref: '#/definitions/amount_and_currency_new' transaction_id: type: string description: | Identificador único que genera quien invoca a esta API ## Consideraciones * Debe ser único dentro del día * Cargas con este dato repetido dentro del día serán rechazadas * Cuando quiera reversar la carga, se le pedirá este dato example: "MC_12312309123" prepaid_topup_new: type: object description: | Solicitud de carga **(Request)** allOf: - $ref: "#/definitions/prepaid_topup_base" - type: object properties: rut: type: integer description: El rut sin puntos, guión, ni dígito verificador example: 14569484 merchant_code: type: string maxLength: 15 description: Código de comercio MC. (máx. 15 dígitos) example: "0023434" merchant_category: type: integer description: Código de actividad del comercio example: 112 merchant_name: type: string description: Nombre del comercio example: "Carnicería el tajo" prepaid_withdrawal_new: type: object description: | Solicitud de retiro **(Request)** allOf: - $ref: "#/definitions/prepaid_topup_new" - type: object properties: password: type: integer description: La clave del usuario example: 132465 variable_data: type: object description: Dato de tipo llave=valor **(Response)** properties: name: type: string description: Nombre del dato example: 'amount_paid' value: type: string description: Valor del dato example: "10.500" prepaid_topup: type: object description: | Respuesta a solicitud de carga **(Response)** allOf: - $ref: "#/definitions/prepaid_topup_base" - type: object properties: id: type: integer description: Identificador de la carga example: 7783834 mc_voucher_type: type: string enum: ["A", "B"] description: | Identificador del tipo de voucher que se debe imprimir * 'A': Imprimir un voucher de tipo A * 'B': Imprimir un voucher de tipo B example: 'A' mc_voucher_data: type: array description: Lista de variables para usar en el voucher items: $ref: '#/definitions/variable_data' example: [{"name" : "amount_paid", "value" : "3.300"}, {"name" : "rut", "value" : "17.680.522-6"}] timestamps: $ref: '#/definitions/timestamps' prepaid_withdrawal: type: object description: | Solicitud de retiro **(Response)** allOf: - $ref: "#/definitions/prepaid_topup" prepaid_user_signup_new: type: object description: | Solicitud de registro de un Cliente Multicaja.cl **(Request)** properties: email: type: string description: email del prospecto de cliente example: "pepito@gmail.com" rut: type: integer description: rut del prospecto de cliente, sin puntos, guión ni DV example: 15776844 prepaid_user_signup: type: object description: | Solicitud de registro de un Cliente Multicaja.cl **(Response)** allOf: - $ref: "#/definitions/prepaid_user_signup_new" - type: object properties: id: type: integer description: Identificador interno. Campo read-only. example: 7783834 user_id: type: integer description: Identificador del Cliente involucrado en este proceso de registro example: 9012331 name: type: string description: Nombre o nombres de pila. Si vienen, mostrarlos en la pantalla de datos personales. example: "Juan Carlos" lastname_1: type: string description: Apellido paterno. Si viene, mostrarlo en la pantalla de datos personales. example: "López" cellphone: type: integer description: Número de celular. Si viene, mostrarlo en la pantalla de ingreso de celular. example: 912345678 terms_and_conditions_list: type: array items: type: string description: Link a los términos y condiciones que se deben desplegar para este usuario example: 'https://multicaja.cl/tac/contract-v1.3.1.html' must_validate_email: type: string description: Booleano. Si es `true`, el cliente requiere pasar por una validación de correo. example: true must_validate_cellphone: type: string description: Booleano. Si es `true`, el cliente requiere pasar por una validación de celular. example: true must_accept_terms_and_conditions: type: string description: Booleano. Si es `true`, el cliente requiere pasar por una aceptación de los últimos términos y condiciones. example: true must_choose_password: type: string description: Booleano. Si es `true`, el cliente requiere escoger un password. example: true timestamps: $ref: '#/definitions/timestamps' timestamps: type: object description: | Fecha de creación y de última modificación **(Response)** properties: created_at: type: string format: date-time example: "2018-01-14T15:27:42.669Z" updated_at: type: string format: date-time example: "2018-03-02T10:03:12.123Z" raw_transaction_header_new: type: object description: | Encabezado de transacción notificada en vivo por el procesador **(Request)** properties: entidad: type: string description: | Código de entidad en el procesador. (máx. 4 dígitos) example: "9603" maxLength: 4 centro_alta: type: string description: Sucursal donde se dio de alta al cliente. (máx. 4 dígitos) example: "0001" maxLength: 4 cuenta: type: string description: Identificador del cliente. (máx. 12 dígitos) example: "000000012345" maxLength: 12 pan: type: string description: PAN truncado. (máx. 22 dígitos) example: "411111******1111" maxLength: 22 raw_transaction_body_new: type: object description: | Campos interpretados de transacción notificada en vivo por el procesador **(Request)** properties: # sd_: Saldo disponible. Sólo para los casos donde existe sd_currency_code: type: integer description: | Saldo disponible: Código ISO 4217 (numeric) de la moneda example: 152 sd_value: type: number format: double description: | Saldo disponible: Monto en formato decimal example: 1000.01 # il: Importe local. OPE-SIA-IM + COD-MONEDA il_currency_code: type: integer description: | Importe local: Código ISO 4217 (numeric) de la moneda example: 152 il_value: type: number format: double description: | Importe local: Monto en formato decimal example: 1000.01 # id: Importe divisa. OPE-DIV-IM + COD-MONEDA-DIV id_currency_code: type: integer description: | Importe divisa: Código ISO 4217 (numeric) de la moneda example: 152 id_value: type: number format: double description: | Importe divisa: Monto en formato decimal example: 1000.01 tipo_tx: # OPE-SIA-CD type: integer description: Código que identifica el tipo de transacción example: 100 id_mensaje: # IDTM type: integer description: Identificador del mensaje (4 dìgitos) example: 1200 # CODFUC merchant_code: type: string description: Código único que identifica al comercio. (máx. 15 dígitos) example: "0008902131" maxLength: 15 # LIT-NOMBRE merchant_name: type: string description: Nombre del comercio. (máx. 30 caracteres) example: "AMAZON UK" maxLength: 30 # LIT-CD-PAIS country_iso_3266_code: type: integer description: Código ISO 3266-1 (numeric) del país example: 152 country_description: type: string description: Nombre del país en español. (máx. 30 caracteres) example: "República de Chile" maxLength: 30 # LIT-CIUDAD place_name: type: string description: Nombre del lugar donde ocurrió el movimiento. (máx. 26 caracteres) example: "Santiago" maxLength: 26 resolucion_tx: # RSL-SIA-CD type: integer description: Código que identifica el resultado de la transacción example: 100 raw_transaction_new: type: object description: | Transacción notificada en vivo por el procesador **(Request)** properties: header: $ref: "#/definitions/raw_transaction_header_new" body: $ref: "#/definitions/raw_transaction_body_new" base64_data: type: string description: String concatenado con todos los campos disponibles, codificado en base 64 example: "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvS4==" amount_and_currency_new: type: object description: Monto en una moneda específica required: - currency_code - value properties: currency_code: type: integer description: Código ISO 4217 (numeric) de la moneda example: 152 value: type: number description: Monto en formato decimal example: "1000.00" prepaid_balance: type: object description: Saldo del cliente properties: balance: $ref: "#/definitions/amount_and_currency_new" pca_main: $ref: "#/definitions/amount_and_currency_new" pca_secondary: $ref: "#/definitions/amount_and_currency_new" updated: type: boolean description: true o false dependiendo si fue actualizado desde el procesador simulation_topup_new: type: object description: Requerimiento para la calculadora de carga properties: amount: $ref: "#/definitions/amount_and_currency_new" simulation_withdraw_new: type: object description: Requerimiento para la calculadora de retiro properties: amount: $ref: "#/definitions/amount_and_currency_new" method: type: string enum: ['POS', 'WEB'] simulation_group: type: object description: Retorna simulacion web y pos properties: simulation_topup_web: $ref: "#/definitions/simulation_topup" simulation_topup_pos: $ref: "#/definitions/simulation_topup" simulation_topup: type: object description: Respuesta de la calculadora de carga properties: code: type: integer format: int32 description: Código que representa el error. No será igual al código HTTP. example: 1024 message: type: string description: Descripción corta del error example: "La carga supera el monto máximo carga" fee: $ref: "#/definitions/amount_and_currency_new" amount_to_pay: $ref: "#/definitions/amount_and_currency_new" pca: $ref: "#/definitions/amount_and_currency_new" eed: $ref: "#/definitions/amount_and_currency_new" opening_fee: $ref: "#/definitions/amount_and_currency_new" initial_amount: $ref: "#/definitions/amount_and_currency_new" simulation_withdrawal: type: object description: Respuesta de la calculadora de retiro properties: fee: $ref: "#/definitions/amount_and_currency_new" amount_to_discount: $ref: "#/definitions/amount_and_currency_new" error_obj: type: object description: Error que devuelve la api ante un `HTTP 422` **(Response)** required: - code properties: code: type: integer format: int32 description: Código que representa el error. No será igual al código HTTP. example: 1024 message: type: string description: Descripción corta del error example: "El cliente no pasó la validación" error_obj_401: type: object description: Error que devuelve la api ante un `HTTP 401` **(Response)** required: - code properties: code: type: integer description: Código que representa el error. example: 401 message: type: string description: Descripción corta del error example: "Access denied due to missing subscription key. Make sure to include subscription key when making requests to an API." prepaid_card: type: object description: | Información de la tarjeta prepago properties: processor_user_id: type: string description: | Id de usuario en el procesador externo. example: "43438500955156352167" pan: type: string description: | Número de pan de la tarjeta example: "517608XXXXXX4840" name_on_card: type: string description: | Nombre impreso en la tarjeta example: "Pedro Perez" expiration_date: type: integer description: | Fecha de expiración de la tarjeta ### Consideraciones * Esta en formato `YYYYMM` example: 202301 status: type: string enum: ["ACTIVE", "PENDING", "LOCKED", "LOCKED_HARD", "EXPIRED"] description: | Estatus de la tarjeta * 'PENDING': Pendiente * 'ACTIVE': Activa * 'LOCKED': Bloqueada * 'LOCKED_HARD': Bloqueada por emisor * 'EXPIRED': Expirada timestamps: $ref: '#/definitions/timestamps' prepaid_user: type: object description: | Información del usuario prepago properties: id: type: number description: | Id de usuario prepago example: 123456 user_id: type: number description: | Id de usuario Multicaja example: 654321 rut: type: number description: | Numero de rut del usuario, sin puntos, guion ni digito verificador example: 11111111 status: type: string enum: ["ACTIVE", "DISABLED"] description: | Estatus del usuario prepago * 'ACTIVE': Activo * 'DISABLED': Deshabilitado user_level: type: string enum: ["LEVEL_1", "LEVEL_2"] description: | Nivel del usuario prepago * 'LEVEL_1': Cuando el `status` del nombre no esta verificado * 'LEVEL_2': Cuando el `status` del rut y nombre esta verificado timestamps: $ref: '#/definitions/timestamps' prepaid_transaction: type: object description: | Transacción (Carga, retiro o compra) properties: date: type: string format: date description: | Fecha de la transacción example: "2018-10-05" exchange_rate: type: number description: | Cambio Aplicado (CMBAPLI) example: 650 commerce_code: type: string description: | Codigo Comercio (CODCOM) economic_concept1: type: number description: | Codigo de concepto economico (CODCONECO) example: 1234 desc_economic_concept1: type: string description: | Descripcion de concepto economico (DESCONECO) amount_description_type1: type: string description: | Descripcion tipo de importe (DESTIPIMP) application_amount1: type: number description: | Importe de aplicacion (IMPAPLECO) example: 1234 gross_value1: type: number description: | Importe bruto (IMPRUECO) example: 1234 economic_concept2: type: number description: | Codigo de concepto economico (CODCONECO) example: 1234 desc_economic_concept2: type: string description: | Descripcion de concepto economico (DESCONECO) amount_description_type2: type: string description: | Descripcion tipo de importe (DESTIPIMP) application_amount2: type: number description: | Importe de aplicacion (IMPAPLECO) example: 1234 gross_value2: type: number description: | Importe bruto (IMPRUECO) example: 1234 invoice_description: type: string description: | Descripcion tipo de factura (DESTIPFAC) example: "CARGA POR TRANSFERENCIA" extract_account: type: number description: | Numero extracto cuenta (NUMEXTCTA) example: 1234 extract_transaction: type: number description: | Numero movimiento extracto (NUMMOVEXT) example: 1234 invoice_type: type: number description: | Tipo de factura (TIPOFAC) example: 1234 amount_primary: $ref: '#/definitions/amount_and_currency_new' amount_secondary: $ref: '#/definitions/amount_and_currency_new' prepaid_tac_new: type: object description: | Objeto para aceptar los terminos y condiciones properties: version: type: string description: | Version de los terminos y condiciones aceptados por el usuario example: "v1.0" benefits_accepted: type: boolean description: | Cliente acepta recibir beneficios relacionados con el producto prepago example: false prepaid_tac: type: object description: | Objeto que representa los terminos y condiciones properties: version: type: string description: | Version de los terminos y condiciones aceptados por el usuario example: "v1.0" location: type: string description: | URL en el cual se encuentran los Terminos y Condiciones example: "/prepaid/terms_and_conditions_v10" prepaid_identity_verification_file_new: type: object description: | Archivo para verificacion de identidad properties: name: type: string description: | Nombre del archivo example: "USER_CI_FRONTAL" mime_type: type: string description: | MimeType del archivo example: "image/jpeg" location: type: string description: | URL donde se encuentra el archivo example: "/path/to/image" prepaid_identity_verification_files_new: type: object description: | Objeto que contiene la informacion de fotos para la verificacion de identidad properties: USER_CI_FRONTAL: $ref: "#/definitions/prepaid_identity_verification_file_new" USER_ID_BACK: $ref: "#/definitions/prepaid_identity_verification_file_new" USER_SELFIE: $ref: "#/definitions/prepaid_identity_verification_file_new" reproces_queue: type: object description: | Objeto que permite reinjectar una mensaje de una cola properties: id_queue: type: string description: | Id del mensaje de la cola a ser reinjectado example: "xkfuqwofklasjf" queues_name_type: type: string enum: ['TopUp', 'WithDrawal','PendingCreateCard','ReverseTopup','ReverseWithdrawal','SendMail','PendingEmision','IssuanceFee'] prepaid_identity_verification_new: type: object description: | Objeto que contiene la informacion de verificacion de identidad realizada en Freshdesk properties: is_ci_valid: type: string description: | ¿Posee cédula vigente en Registro Civil? example: "Si" user_photo_matches_ci: type: string description: | ¿Concuerda la foto de la persona con la persona de la cédula identidad? example: "Si" name_and_lastname_matches_ci: type: string description: | ¿El nombre y primer apellido del cliente concuerda con los de la cédula de identidad? example: "No" new_name: type: string description: | Sobreescribir Nombre example: "Jose" new_lastname: type: string description: | Sobreescribir Apellido example: "Perez" is_gsintel_ok: type: string description: | ¿Pasa la validación de Gesintel? example: "Si" rut_matches_ci: type: string description: | ¿El RUT concuerda con el de la cédula de identidad? example: "Si" email_attachment_new: type: object description: Archivo a adjuntar en un email required: - file_name - mime_type - content_file properties: file_name: type: string description: Nombre del archivo example: "Test.pdf" mime_type: type: string description: MimeType del archivo example: "application/pdf" content_file: type: string description: | El texto del contenido en base64 no debe contener `data:image/jpeg;base64`, Solo el cuerpo del archivo example: "VGVzdA==" email_new: type: object description: | Email **(Request)** required: - template properties: template: type: string description: Tipo de correo electrónico a enviar example: "Prepago/ValidacionCorreo" template_data: type: string description: JSON con tantos pares llave-valor como requiera el template del correo a enviar example: "{'saludo': 'Estimado Pepito', 'despedida': 'Chao!'}" address: type: string description: Correo electrónico al que se enviará este mensaje. Si no se incluye este campo, se usará el campo `email.value` del Cliente. example: "pepito@gmail.com" attachments: type: array items: $ref: '#/definitions/email_attachment_new'