swagger: '2.0' info: description: | API-PREPAID ** Este es una API alpha y por lo tanto sufrirá muchos cambios ** Mientras está en modo alpha, no mantendremos versiones anteriores version: '1.0' title: API Prepaid host: 'api-prepaid.cl' basePath: /v1/ consumes: - application/json produces: - application/json tags: - name: prepaid description: Operaciones contra contratos y tarjetas. paths: /prepaid/{user_id}/cash_in: post: tags: - prepaid summary: Cash-in y emite tarjeta description: | Cash-in de tarjeta ### Notas * Si no se proporciona account_id y card_id se buscara el contrato principal y la tarjeta principal y se asocia la carga a ellos. * Si el usuario no tiene contratos se le crea uno y se le emite su primera tarjeta. * Requiere un web service en api-users que retorne (Nombre, Apellido, Tipo Doc,Num Doc, Nivel). ### 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á `404` en los siguientes casos: * 102001: Si el cliente no existe en el ws de api-users. ### Responderá `422` en los siguientes casos: * 102004: Si el cliente está bloqueado o borrado de prepago. * 106000: Si la tarjeta está expirada o tiene un bloqueo duro. * 106001: La procesadora rechazó el Cash-in, verificar mensaje. * 108000: Transacción duplicada CDT. * 108201: El Cash-in supera el monto máximo de Cash-in web. * 108202: El Cash-in supera el monto máximo de Cash-in pos. * 108203: El Cash-in es menor al mínimo de Cash-in. * 108204: El Cash-in supera el monto máximo de Cash-in mensuales. * 130005: Si es que se recibio una reversa para la Cash-in previamente. ### Responderá `500` en los siguientes casos: * Error imprevisto de sistema parameters: - in: path name: user_id description: ID del Cliente required: true type: string format: uuid - in: body name: new_topup description: Detalle del Cash-in a realizar required: true schema: $ref: '#/definitions/prepaid_topup_new' responses: '201': description: | OK - Cash-in se realizará en los próximos segundos 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 schema: $ref: '#/definitions/error_obj' '404': description: Cliente no existe schema: $ref: '#/definitions/error_obj' '422': description: Cash-in 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}/cash_in/reverse: post: tags: - prepaid summary: Reversa un Cash-in description: | Reversa un Cash-in que: 1. Coincida en todos los campos de prepaid_topup_new. 2. Se haya recibido en las últimas 24 horas. ### Responderá `201` en los siguientes casos: * Si el Cash-in se recibió, en cuyo caso iniciara el proceso de reversa. ### Responderá `202` en los siguientes casos: * 130001: Si el Cash-in nunca se recibió, en cuyo caso se dejara registro de la reversa en caso de recibirlo más adelante. * 130003: Si la reversa fue recibida previamente para su procesamiento. ### Responderá `410` en los siguientes casos: * 130004: Si es que el Cash-in fue recibido y no está reversado, pero el plazo para reversarlo ya expiró. ### Responderá `422` en los siguientes casos: * 130002: Si es que el Cash-in fue recibido y el monto y moneda no concuerda. parameters: - in: path name: user_id description: ID del Cliente required: true type: string format: uuid - in: body name: new_topup description: Detalle del Cash-in a realizar required: true schema: $ref: '#/definitions/prepaid_topup_new' responses: '201': description: OK - Proceso de reversa iniciado '202': description: OK - Reversa recibida previamente 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 schema: $ref: '#/definitions/error_obj' '404': description: Cliente no existe o no tiene prepago schema: $ref: '#/definitions/error_obj' '410': description: Plazo para reversar expirado schema: $ref: '#/definitions/error_obj' '422': description: Información de reversa no concuerda con el Cash-in 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}/cash_out: post: tags: - prepaid summary: Cash-out de dinero description: | Debita una tarjeta ### 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á `404` en los siguientes casos: * 102001: Si el cliente no existe. * 102003: Si el cliente no tiene prepago. ### Responderá `422` en los siguientes casos: * 102004: Si el cliente está bloqueado o borrado de prepago. * 106000: Si la tarjeta está expirada o tiene un bloqueo duro. * 106001: La procesadora rechazó el retiro, verificar mensaje. * 108000: Transacción duplicada CDT. * 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. ### Responderá `500` en los siguientes casos: * Error imprevisto de sistema parameters: - in: path name: user_id description: ID del Cliente required: true type: string format: uuid - in: body name: new_topup description: Detalle del Cash-out a realizar required: true schema: $ref: '#/definitions/prepaid_topup_new' responses: '201': description: | OK - Retiro realizado 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 schema: $ref: '#/definitions/error_obj' '404': description: Cliente no existe o no tiene prepago schema: $ref: '#/definitions/error_obj' '422': description: Retiro no exitoso, 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}/cash_out/reverse: post: tags: - prepaid summary: Reversa un Cash-out description: | Reversa un Cash-out que: 1. Coincida en todos los campos de prepaid_withdrawal_new. 2. Se haya recibido en las últimas 24 horas. ### Responderá `201` (éxito) en los siguientes casos: * Si el Cash-out se recibió, en cuyo caso iniciara el proceso de reversa. ### Responderá `202` en los siguientes casos: * 130001: Si el Cash-out nunca se recibió, en cuyo caso se dejara registro de la reversa en caso de recibirlo más adelante. * 130003: Si la reversa fue recibida previamente para su procesamiento. ### Responderá `410` en los siguientes casos: * 130004: Si es que el Cash-out fue recibido y no está reversado, pero el plazo para reversarlo ya expiró. ### Responderá `422` en los siguientes casos: * 130002: Si es que el Cash-out fue recibido y el monto y moneda no concuerda. parameters: - in: path name: user_id description: ID del Cliente required: true type: string format: uuid - in: body name: new_topup description: Detalle del Cash-out a realizar required: true schema: $ref: '#/definitions/prepaid_topup_new' responses: '201': description: OK - Proceso de reversa iniciado '202': description: OK - Reversa recibida previamente 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 schema: $ref: '#/definitions/error_obj' '404': description: Cliente no existe o no tiene prepago schema: $ref: '#/definitions/error_obj' '410': description: Plazo para reversar expirado schema: $ref: '#/definitions/error_obj' '422': description: Información de reversa no concuerda con el Cash-out 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}/withdraw: post: tags: - prepaid summary: Retiro generico de dinero description: | Debita una tarjeta Utilizado para Recarga y Pago de cuenta ### 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á `404` en los siguientes casos: * 102001: Si el cliente no existe. * 102003: Si el cliente no tiene prepago. ### Responderá `422` en los siguientes casos: * 102004: Si el cliente está bloqueado o borrado de prepago. * 106000: Si la tarjeta está expirada o tiene un bloqueo duro. * 106001: La procesadora rechazó el retiro, verificar mensaje. * 108000: Transacción duplicada CDT. * 108304: El retiro supera el monto máximo de retiros mensuales. ### Responderá `500` en los siguientes casos: * Error imprevisto de sistema parameters: - in: path name: user_id description: ID del Cliente required: true type: string format: uuid - in: body name: new_topup description: Detalle del withdraw a realizar required: true schema: $ref: '#/definitions/prepaid_generic_withdraw_new' responses: '201': description: | OK - Retiro realizado schema: $ref: '#/definitions/prepaid_generic_withdraw_response' '400': description: Error en parámetros, se lanza a cuando un parámetro es requerido y no se ha enviado ó no cumple formato schema: $ref: '#/definitions/error_obj' '404': description: Cliente no existe o no tiene prepago schema: $ref: '#/definitions/error_obj' '422': description: Retiro no exitoso, 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}/withdraw/{transaction_id}/reverse: post: tags: - prepaid summary: Reversa un retiro generico description: | Reversa un retiro generico Utilizado para Recarga y Pago de cuenta ### 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: * 130003: Si la reversa fue recibida previamente para su procesamiento. parameters: - in: path name: user_id description: ID del Cliente required: true type: string format: uuid - in: path name: transaction_id description: ID de transaccion required: true type: string format: uuid responses: '201': description: OK - Proceso de reversa iniciado '202': description: OK - Reversa recibida previamente 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 schema: $ref: '#/definitions/error_obj' '404': description: Cliente no existe o no tiene prepago schema: $ref: '#/definitions/error_obj' '422': description: Error de validacion schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado, se lanza cuando ocurre un error imprevisto de sistema schema: $ref: '#/definitions/error_obj' /prepaid/cl/{user_id}/defered_cash_out: post: tags: - prepaid summary: Retira dinero de una tarjeta a una cuenta bancaria description: | Debita una tarjeta ### 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á `404` en los siguientes casos: * 102001: Si el cliente no existe. * 102003: Si el cliente no tiene prepago. ### Responderá `422` en los siguientes casos: * 102004: Si el cliente está bloqueado o borrado de prepago. * 106000: Si la tarjeta está expirada o tiene un bloqueo duro. * 106001: La procesadora rechazó el Cash-out, verificar mensaje. * 108000: Transacción duplicada CDT. * 108302: El Cash-out supera el monto máximo de un Cash-out pos. * 108303: El monto de Cash-out es menor al monto mínimo de Cash-out. * 108304: El Cash-out supera el monto máximo de Cash-out mensuales. ### Responderá `500` en los siguientes casos: * Error imprevisto de sistema parameters: - in: path name: user_id description: ID del Cliente required: true type: string format: uuid - in: body name: new_topup description: Detalle del Cash-out a realizar required: true schema: $ref: '#/definitions/prepaid_defered_cashout_new' responses: '201': description: | OK - Cash-out realizado 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 schema: $ref: '#/definitions/error_obj' '404': description: Cliente no existe o no tiene prepago schema: $ref: '#/definitions/error_obj' '422': description: Cash-out no exitoso, 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/cl/{user_id}/defered_cash_out/reverse: post: tags: - prepaid summary: Reversa un Cash-out description: | Reversa un retiCash-outro que: 1. Coincida en todos los campos de prepaid_withdrawal_new. 2. Se haya recibido en las últimas 24 horas. ### Responderá `201` (éxito) en los siguientes casos: * Si el Cash-out se recibió, en cuyo caso iniciara el proceso de reversa. ### Responderá `202` en los siguientes casos: * 130001: Si el Cash-out nunca se recibió, en cuyo caso se dejara registro de la reversa en caso de recibirlo más adelante. * 130003: Si la reversa fue recibida previamente para su procesamiento. ### Responderá `410` en los siguientes casos: * 130004: Si es que el Cash-out fue recibido y no está reversado, pero el plazo para reversarlo ya expiró. ### Responderá `422` en los siguientes casos: * 130002: Si es que el Cash-out fue recibido y el monto y moneda no concuerda. parameters: - in: path name: user_id description: ID del Cliente required: true type: string format: uuid - in: body name: new_topup description: Detalle del Cash-out a realizar required: true schema: $ref: '#/definitions/prepaid_defered_cashout_new' responses: '201': description: OK - Proceso de reversa iniciado '202': description: OK - Reversa recibida previamente 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 schema: $ref: '#/definitions/error_obj' '404': description: Cliente no existe o no tiene prepago schema: $ref: '#/definitions/error_obj' '410': description: Plazo para reversar expirado schema: $ref: '#/definitions/error_obj' '422': description: Información de reversa no concuerda con el Cash-out 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}/account/{account_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: * 102003: Si el cliente no está registrado en prepago ### Responderá `422` con código de error en los siguientes casos: * 109002: Saldo no disponible, significa que: - La cuenta no existe. - La cuenta no pertenece al usuario indicado. - 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: string format: uuid - in: path name: account_id description: ID Contrato o Cuenta required: true type: string format: uuid 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}/account/{account_id}/card: get: tags: - prepaid summary: Listado de tarjetas de una cuenta description: Retorna la lista de tarjetas de una cuenta parameters: - in: path name: user_id description: ID del Cliente required: true type: string format: uuid - in: path name: account_id description: ID Contrato o Cuenta required: true type: string format: uuid responses: '200': description: | OK - Lista de tarjetas prepago schema: type: array items: $ref: '#/definitions/truncated_prepaid_card' '500': description: Error indeterminado schema: $ref: '#/definitions/error_obj' /prepaid/{user_id}/account/{account_id}/card/{card_id}: get: tags: - prepaid summary: Información de la tarjeta prepago description: | Retorna la información de la tarjeta prepago __Nota__: Este servicio solo retornara informacion si el cliente posee tarjeta de Nivel 2. ### Responderá `404` en los siguientes casos: * 102001: Si el cliente no existe * 102003: Si la tarjeta no es de Nivel 2 ### Responderá `422` en los siguientes casos: * 102002: Cliente bloqueado o borrado * 102004: Cliente prepago bloqueado o borrado parameters: - in: path name: user_id description: ID del Cliente required: true type: string format: uuid - in: path name: account_id description: ID Contrato o Cuenta required: true type: string format: uuid - in: path name: card_id description: ID Tarjeta required: true type: string format: uuid responses: '200': description: | OK - Información encriptada de la tarjeta prepago schema: type: string example: | -----BEGIN PGP MESSAGE----- Version: BCPG v1.59 hQEMA8lrFZvFE3EOAQgA1vKQ4i5a/pYl9EtHGPR+o5rcqY3ggQIijnOIJVVTI/Nj qYZ3937xoxQEvWn6D6LnDGjMT8Csz2ANuoZI4XGtrhvJhsh5DVda7QMBSe7akNUg IqW6t4vgvHHjpFD85npBgzBEa3KE/xQQMpY/jd75NYUl9UAdt3UM+iXizT1eIIK9 UU0Y4eHY/xkWfPJTCt8O9wdDMjWax+ATE4JcgtAvkQ6y68h8EgHWYaJ0PkRXO/7t nRsPr7d0OqpP+Fi6sI/GNSyOi0tLe9WbPn4vzrZiUuSsaQEftA36yQ5KMT3LpOq3 qNbY6HLoWSfF/uZ2Ra1Y17fYOW8ko7X/mOyCxVbtlNLB5AFTGflCQITw7WGoo25+ 2zglqkA7+GSLLFhEOvstJZTmRRM0X96NNJdwbTkCEdUurYgNjC+3vm4zDU1cYmMy wzR2DRHjO2jFjxKNArw+yjuI4MBte9Kz2T31UpwSs+iZndZxMspQqRCH3DZMrMKa TGI6xLNkrpzuZyz9tUdliKFMyURRJq8jAvtaYX5eaWt3AHHpa0KFdTi5aAPkAVAt FL8VzxHMJgQkXUdX061Cc9TUqSv872grCo8ozqhCq/NRJRdSyJobtOoFAC8Y3XJq nF4kShX1Q1ibwqx9jiQ1t4mYsYzrZ3vV3a3XVmjTx7d//maC9geNsonQD1F/ERyh MVQRIz2yVno5UOYZtQyyubeiFmdAcO2HgxfdYp/TKyHuMPcv1amxiEwrLqjj5Rmf ZlKPmzbkgwclfdbilPB8e87WBLFNdnJq7UmMb7NpU8BsITp0QpoiSiSEQ/2DZZqW clJ3zZ+zachkp/1zoBlP8UgBS/XCN3VQLvL7Xf5p9OuiL/GOFVZRonLtwRnrq8i8 OO8FrXwKDkllPb5TVPp9ShcHdm4q6tdYe6W3iKMuY8S81fg6mRVfCPN81m6o1L1V fg2L3xg8+PdZTcsGUTD/7xqnaQA78XfqKuVg5bCxgAvQ28MFz7/6RlpLoXNpA7tA UBf6tYnx3UYCCZ3r4DpR58aqOIqBs2z7gpv6zNQZ5LSPv07NFyhwkmx73J5ufXqA M8VnlBro900mWKyrf+GQxvzgHEZBdB/isXS0O0CfTctezi5V8wNhSj9Oiin8xcEB vnSSZ7y0x57JCK13vFwdCZRDVr6JUsvpabQbvePzO/bcpOimvVJd/LGk40KCU7mm IU5VfI8kC6vTwTqTULq2ztVsBIqOHvNYcl2NHsEhftlHzrVUjyU= =mE45 -----END PGP MESSAGE----- '404': description: Tarjeta no existe 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}/account/{account_id}/card/{card_id}/reissue: post: tags: - prepaid summary: Reemisión de tarjeta description: | Esta llamada cierra la tarjeta informada con `card_id` y emite una nueva. ### Responderá `404` en los siguientes casos: * 102001: Si el cliente no existe ### Responderá `422` en los siguientes casos: * 102003: Si la tarjeta no es de Nivel 2 parameters: - in: path name: user_id description: ID del Cliente required: true type: string format: uuid - in: path name: account_id description: ID Contrato o Cuenta required: true type: string format: uuid - in: path name: card_id description: ID Tarjeta required: true type: string format: uuid responses: '200': description: | OK - Información de la tarjeta prepago schema: $ref: '#/definitions/truncated_prepaid_card' '404': description: Cliente o Tarjeta no existe schema: $ref: '#/definitions/error_obj' '422': description: Si la tarjeta no es de Nivel 2 schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado schema: $ref: '#/definitions/error_obj' /prepaid/{user_id}/account/{account_id}/card/{card_id}/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 o la tarjeta no existe. parameters: - in: path name: user_id description: ID del Cliente required: true type: string format: uuid - in: path name: account_id description: ID Contrato o Cuenta required: true type: string format: uuid - in: path name: card_id description: ID Tarjeta required: true type: string format: uuid responses: '200': description: | OK schema: $ref: '#/definitions/truncated_prepaid_card' '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}/account/{account_id}/card/{card_id}/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 o la tarjeta no existe. parameters: - in: path name: user_id description: ID del Cliente required: true type: string format: uuid - in: path name: account_id description: ID Contrato o Cuenta required: true type: string format: uuid - in: path name: card_id description: ID Tarjeta required: true type: string format: uuid responses: '200': description: | OK schema: $ref: '#/definitions/truncated_prepaid_card' '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}/account/{account_id}/upgrade_card: put: tags: - prepaid summary: Sube un usuario a nivel 2. description: | Sube a nivel 2 al usuario, permitiendole utilizar la tarjeta Mastercard. Si el usuario ya tiene nivel 2 retorna error. ### Responderá `404` en los siguientes casos: * 102003: Si el cliente no existe. * 140002: Si la cuenta no existe. * 106002: Si el usuario no tiene tarjeta activa. ### Responderá `422` en los siguientes casos: * 102017: Si el cliente ya tiene nivel 2. parameters: - in: path name: user_id description: ID del Cliente required: true type: string format: uuid - in: path name: account_id description: ID Contrato o Cuenta required: true type: string format: uuid responses: '200': description: | OK schema: $ref: '#/definitions/truncated_prepaid_card' '404': description: Cliente no existe, cuenta no existe o no tiene tarjeta prepago schema: $ref: '#/definitions/error_obj' '422': description: Cliente ya tiene nivel 2. schema: $ref: '#/definitions/error_obj' '500': description: Error indeterminado schema: $ref: '#/definitions/error_obj' /prepaid/processor/notification: post: summary: Notificación de transacción (Callback del Procesador) 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/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 - Cash-in - Cash-out - PendingCreateCard (Obtencion de Datos y Creacion) - Reverse_Cash_in - ReverseCash-out - PendingEmision (Alta Cliente) - IssuanceFee (Cobro de emisión) ### 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' 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: "12312309123" prepaid_topup_new: type: object required: - merchant_code description: | Solicitud de carga **(Request)** allOf: - $ref: "#/definitions/prepaid_topup_base" - type: object properties: merchant_code: type: string maxLength: 15 description: Código de comercio de la Red. 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" variable_data: type: object description: Dato de tipo llave=valor **(Response)** required: - code 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 (Deprecated) * '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 (Deprecated) items: $ref: '#/definitions/variable_data' timestamps: $ref: '#/definitions/timestamps' prepaid_withdrawal: type: object description: | Solicitud de retiro **(Response)** allOf: - $ref: "#/definitions/prepaid_topup" prepaid_defered_cashout_new: type: object description: | Solicitud de retiro diferido allOf: - $ref: "#/definitions/prepaid_topup_new" - type: object properties: bank_id: type: integer description: Codigo SBIF del banco example: 4 account_type: type: string description: Tipo de cuenta enum: - vista - corriente - ahorro - cuenta rut account_name: type: string description: Nombre completo del destinatario example: "Juan Perez" account_number: type: integer description: Número de cuenta sin puntos, guiones, ni ceros a la izquierda rut: type: string description: El rut destinatario sin puntos example: "12345678-9" prepaid_defered_cashout: type: object description: | Respuesta a una solicitud de retiro diferido **(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 (Deprecated) * '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 (Deprecated) items: $ref: '#/definitions/variable_data' timestamps: $ref: '#/definitions/timestamps' timestamps: type: object description: | Fecha de creación y de última modificación **(Response)** La fecha devuelta esta en UTC con formato ISO-8601. 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" fee_new: type: object description: Comision properties: amount: $ref: "#/definitions/amount_and_currency_new" category: type: string enum: ['FX', 'CL_IVA','CL_FEE'] 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 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" prepaid_card: type: object description: | Información de la tarjeta prepago properties: id: type: string description: | Id de la tarjeta example: "a4579ad7-e016-4118-afbe-ea939e6c616b" pan: type: string description: | Número de pan example: "5176081234564840" 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 security_code: type: integer description: | Código de seguridad de la tarjeta. (CVC/CVV) example: 123 status: type: string enum: ["ACTIVE", "LOCKED", "CLOSED", "EXPIRED"] description: | Estatus de la tarjeta * 'ACTIVE': Activa * 'LOCKED': Bloqueada * 'CLOSED': Cerrada * 'EXPIRED': Expirada timestamps: $ref: '#/definitions/timestamps' truncated_prepaid_card: type: object description: | Información de la tarjeta prepago properties: id: type: string description: | Id de la tarjeta example: "a4579ad7-e016-4118-afbe-ea939e6c616b" pan: type: string description: | Número de pan truncado example: "517608XXXXXX4840" name_on_card: type: string description: | Nombre impreso en la tarjeta example: "Pedro Perez" status: type: string enum: ["ACTIVE", "LOCKED", "CLOSED", "EXPIRED"] description: | Estatus de la tarjeta * 'ACTIVE': Activa * 'LOCKED': Bloqueada * 'CLOSED': Cerrada * '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" merchant_code: type: string description: | Codigo Comercio merchant_category: type: string description: | Categoria Comercio 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' 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'] merchant: type: object properties: code: type: string description: Codigo de comercio example: "987654321" name: type: string description: Nombre del comercio example: "Merchant name" prepaid_generic_withdraw_new: type: object required: - transaction_type_id - transaction_reference_id - amount - merchant description: | Solicitud de retiro generico properties: transaction_type_id: type: number description: Tipo de transaccion example: 3025 enum: [3025, 3026] transaction_reference_id: type: string description: Id de tranasccion externo example: "1234567890" transaction_description: type: string description: Descripcion de transaccion example: "Recarga en ..." amount: $ref: '#/definitions/amount_and_currency_new' merchant: $ref: '#/definitions/merchant' prepaid_generic_withdraw_response: type: object description: | Response de retiro generico properties: id: type: string format: uuid description: Id de transaccion example: "6f813496-ac93-4ee7-a14d-21cc07a2a2a0" account_id: type: string format: uuid description: Id de cuenta example: "0cfd47de-b67f-41b0-9648-6a5af33cfac1" card_id: type: string format: uuid description: Id de tarjeta example: "dee33b24-80f1-4915-bd11-57e448ee7369" amount: description: Monto $ref: '#/definitions/amount_and_currency_new' id_transaction: type: string description: Id de tranasccion externo example: "1234567890" status: type: string description: Status example: "OK" timestamps: $ref: '#/definitions/timestamps' description: type: string description: Descripcion de transaccion example: "Recarga en ..."