Estándar Electrónico - Pagos Monedero Bancario

Anuncio
Estándar Electrónico - Pagos Monedero Bancario
E S T Á N D AR
E L E C T R Ó N I C O
PAGOS MONEDERO
BANCARIO
SERIE DE NORMAS Y PR OCEDIMIENTOS
Público
EE-PMB
Estándar Electrónico - Pagos Monedero Bancario
ESTÁNDAR ELECTRÓNICO
PAGOS MONEDERO BANCARIO
SERIE DE NORMAS Y PROCEDIMIENTOS
PÚBLICO
EE-PMB
Estándar Electrónico - Pagos Monedero Bancario
Tabla de contenido
1. Introducción ............................................................................................................................................ 1
2. Alcance .................................................................................................................................................... 1
3. Términos empleados............................................................................................................................... 1
4. Documentos aplicables y anexos ............................................................................................................ 2
5. Comunicación en Tiempo Real.............................................................................................................. 2
5.1. Consideraciones Generales .................................................................................................................... 2
5.2. Servicio de Administración de Pagos de Monedero Bancario (PMB) .................................................. 2
5.2.1. Listado de los métodos contenidos el estándar ..................................................................................................... 2
5.2.2. WebService en SINPE para el uso Entidades Bancarias Origen .......................................................................... 3
5.2.3. Servicio WCF en los BANCOS para el uso del SINPE ........................................................................................ 8
5.2.4. Flujos de información y uso de los métodos....................................................................................................... 10
5.2.4.1. Métodos para suscripción y desuscripción:
5.2.4.2. Métodos asociados al envío y recepción de operaciones:
10
10
5.2.5. Manejo de Excepciones ...................................................................................................................................... 11
6. Tipos de datos y formatos soportados................................................................................................. 14
6.1.1. Catálogo de Motivos de rechazo ........................................................................................................................ 14
6.1.2. Estados de las operaciones de Pagos y Cobros móviles ..................................................................................... 14
6.1.3. Catálogo de Identificaciones .............................................................................................................................. 14
6.1.4. Formatos de teléfonos ........................................................................................................................................ 15
6.1.5. Catálogo de monedas.......................................................................................................................................... 15
Estándar Electrónico - Pagos Monedero Bancario
Sistema Nacional de Pagos Electrónicos
Sistemas de Pagos - BCCR
Año 2014
1. Introducción
El contenido de este libro describe el estándar electrónico para el procesamiento de
operaciones del servicio Pagos Monedero Bancario (PMB), provisto por el Banco Central de
Costa Rica (BCCR), por medio del Sistema Nacional de Pagos Electrónicos (SINPE).
El documento se enfoca principalmente en la modalidad de procesamiento de operaciones en
tiempo real. En el caso del servicio PMB el procesamiento de pagos en tiempo real, se realiza
mediante una interacción entre los servidores del SINPE y de servidores de Entidades
Financieras, de tal forma que no existe un proceso manual para la aplicación de las mismas.
Para lograr esta comunicación se detalla la tecnología a utilizar para implementar la capa de
software encargada del paso de mensajes entre los participantes y el tipo de datos que se
transportan en la comunicación entre servidores.
Para cada servicio, se detalla cual es el esquema de validación aplicado antes de procesar las
transferencias en tiempo real, elemento vital para garantizar la calidad de la información que
procesa el SINPE y por consiguiente, el adecuado funcionamiento del sistema.
En particular, el objetivo de este documento es permitir a los departamentos de informática de
cada entidad verificar el estado de sus sistemas internos e identificar los ajustes necesarios
para evitar contratiempos en la participación de la entidad en el servicio.
2. Alcance
Este documento explica los elementos técnicos para que una entidad pueda consumir los
servicios web que provee el SINPE para el servicio de negocio Servicio de Pagos Monedero
Bancario (PMB).
Adicionalmente, se definen las interfaces, tipos de datos y de mensajes que se pueden
intercambiar entre el SINPE y los sistemas de las entidades para un procesamiento en tiempo
real de las transferencias.
Este documento incluye los métodos y clases que serán expuestas en la versión “Inicial” – la
cual tendrá un alcance limitado - con el fin de que sea usada por las entidades para su
desarrollo interno y que realicen las pruebas iniciales del servicio. Esta versión inicial incluirá
los procesos de suscripción e inactivación del servicio de clientes de entidades financieras y el
envío de transferencias (denominadas Pagos) móviles.
3. Términos empleados
Para los fines del presente documento, se entenderá por:

BCCR: Banco Central de Costa Rica.

SINPE: Sistema Nacional de Pagos Electrónicos.

PMB: Servicio de Pagos Monedero Bancario.

WCF: Windows Comunication Foundation, es un marco tecnológico de trabajo para la
creación de aplicaciones orientadas a servicios, en nuestro caso es la tecnología utilizada
para la comunicación entre las entidades participantes y el Banco Central.
Edición No. 1
Público
Página No. 1
Vigencia: 01/01/2014
Estándar Electrónico - Pagos Monedero Bancario
4. Documentos aplicables y anexos
Siglas
Nombre del documento
NC-CG
Norma complementaria - Codificaciones generales del Sistema de Pagos.
NC-CC
Norma complementaria - Cuenta Cliente (CC) e IBAN.
NC-GG
Norma complementaria - Glosario general.
NC-IED
Norma complementaria - Estándar general para intercambio electrónico de datos.
5. Comunicación en Tiempo Real
5.1. Consideraciones Generales
A continuación se citan algunos aspectos generales concernientes a la comunicación entre los
servidores de las entidades participantes en el servicio de PMB.
La interacción entre los sistemas se hará utilizando tecnología web, específicamente a través
de WCFs. Los tipos de datos que se detallan a continuación están basados en el WSDL del
WCF, el cual es necesario para que las entidades realicen los ajustes a sus sistemas. Los
servidores serán asegurados con certificados digitales generados desde el SINPE.
El paso de los mensajes se hará a través de la red privada de comunicaciones del SINPE.
El SINPE proveerá un WCFs para uso de las entidades origen de las transferencias. Los
métodos que provee este WCF son síncronos por lo que la entidad debe invocar a los métodos
y esperar respuesta hasta un máximo de 10 segundos (timeout).
Cada entidad participante como destino deberá implementar un WCF para uso exclusivo del
SINPE el cual deberá realizar las validaciones necesarias y retornar las respuestas según se
indiquen en el presente estándar.
El código que utiliza este servicio en el SINPE es el número 83.
5.2. Servicio de Administración de Pagos de Monedero Bancario (PMB)
5.2.1. Listado de los métodos contenidos el estándar
1. Listado general de métodos para Entidades Bancarias brindado por el SINPE
a) Administrativo:
i)
Solicitar servicio monedero bancario
ii) Inactivar servicio monedero bancario
iii) Servicio disponible
iv) Obtener información teléfono
v) Permitir Recibir Transacciones
vi) ObtenerDetalleOperaciones
b) Pagos:
i)
Enviar pago desde cuenta
ii) Enviar pago desde teléfono
iii) Obtener estado
2. Listado general de métodos de Entidades Bancarias para el uso exclusivo del SINPE
Edición No. 1
Público
Página No. 2
Vigencia: 01/01/2014
Estándar Electrónico - Pagos Monedero Bancario
a) Administrativo:
i)
Servicio disponible
ii) Inactivar
b) Pagos:
i)
Autorizar
ii) Confirmar
iii) Obtener estado
iv) Reversar
5.2.2. WebService en SINPE para el uso Entidades Bancarias Origen
Para solicitar el servicio o enviar un pago, las “Entidades Bancarias” harán uso de un WCF
desarrollado por el SINPE, que contendrá la siguiente interfaz.
1. RespuestaPago EnviarPagoDesdeTelefono(pago Operacion)
Descripción: Este método envía una transferencia de pago desde un teléfono para
tramitar su autorización.
Retorna: RespuestaPago con el resultado del envío.
Restricciones: Válida solo entre teléfonos suscritos al servicio por diferentes entidades.
Uso: Plataforma.
a) Recibe: Operacion: Esta clase representa una transferencia de pago entre cuentas
cliente de entidades financieras por medio de un número de teléfono y contiene las
siguientes propiedades:
i)
NumTelefonoOrigen: Código numérico que identifica un número telefónico de un
dispositivo móvil.
ii) NumTelefonoDestino: Código numérico que identifica un número telefónico de un
dispositivo móvil.
iii) Moneda: Código de la moneda – La cual debe ser aceptada por el servicio – En
este momento se aceptan: 1- Colones.
iv) Monto: Monto a acreditar en la CC asociada al número de teléfono destino.
v) CodReferencia: Campo numérico con longitud de veinticinco campos, que identifica
de forma única la operación en el SINPE. Se valida que cumpla con el estándar
para referencias establecido en la Norma complementaria - Estándar general para
intercambio electrónico de datos. Refiérase como código de servicio el número 83
que es el correspondiente al servicio PMB (Monedero Bancario).
vi) Descripcion: Campo alfanumérico con longitud de 20 caracteres que sirve para
enviar una descripción general de la operación a realizar.
vii) NombreClienteOrigen: Campo alfanumérico con longitud máxima de 40 caracteres
que sirve para enviar el nombre del cliente que envía el pago. Nota: Este campo no
aplica a pagos hechos desde teléfono. No se debe fijar cuando se use el método
EnviarPagoDesdeTelefono.
viii) IdClienteOrigen: Campo alfanumérico con longitud máxima de 30 caracteres que
lleva la identificación del que envía el pago. Nota: Este campo no aplica a pagos
hechos desde teléfono. No se debe fijar cuando se use el método
EnviarPagoDesdeTelefono.
b) Retorna: RespuestaPago: Esta clase representa la respuesta a una solicitud de pago y
contiene las siguientes propiedades:
Edición No. 1
Público
Página No. 3
Vigencia: 01/01/2014
Estándar Electrónico - Pagos Monedero Bancario
i)
CodEstado: Código que representa el estado de la operación de pago según se
define en el punto 6 de este documento.
ii) CodMotivoRechazo: En caso de que la operación haya sido rechazada, contiene el
código que indica la razón. Estas codificaciones son las definidas en el apartado 6
de este documento, para el rechazo de las operaciones.
iii) Descripcion: Campo alfanumérico con longitud máxima de 250 caracteres que sirve
para enviar una descripción general del rechazo de la solicitud.
iv) NombreClienteDestino: Campo alfanumérico con longitud máxima de 40 caracteres
que sirve para enviar el nombre del cliente de destino ha quien es enviado el pago.
v) FecValor: Campo tipo DateTime usado para devolver al origen la fecha de valor de
la transacción.
2. RespuestaPago EnviarPagoDesdeCuenta(pago Operacion)
Descripción: Este método envía una transferencia de pago desde una cuenta bancaria
para tramitar su autorización.
Retorna: RespuestaPago con el resultado del envío.
Restricciones: Válida solo para envíos si la cuenta bancaria pertenece a una entidad
diferente a la que esté suscrito el número de teléfono.
Uso: Plataforma.
a) Recibe: Operacion: Esta clase representa una transferencia de pago entre cuentas
cliente de entidades financieras por medio de un número de teléfono y contiene las
siguientes propiedades:
i)
NumTelefonoOrigen: Código numérico que identifica un número telefónico de un
dispositivo móvil. Nota: Este campo no aplica a pagos hechos desde cuenta. Se
debe fijar en 0 cuando se use el método EnviarPagoDesdeCuenta.
ii) NumTelefonoDestino: Código numérico que identifica un número telefónico de un
dispositivo móvil.
iii) Moneda: Código de la moneda – La cual debe ser aceptada por el servicio – En
este momento se aceptan: 1- Colones.
iv) Monto: Monto a acreditar en la CC asociada al número de teléfono destino.
v) CodReferencia: Campo numérico con longitud de veinticinco campos, que identifica
de forma única la operación en el SINPE. Se valida que cumpla con el estándar
para referencias establecido en la Norma complementaria - Estándar general para
intercambio electrónico de datos. Refiérase como código de servicio el número 83
que es el correspondiente al servicio PMB.
vi) Descripcion: Campo alfanumérico con longitud de 20 caracteres que sirve para
enviar una descripción general de la operación a realizar.
vii) NombreClienteOrigen: Campo alfanumérico con longitud máxima de 40 caracteres
que sirve para enviar el nombre del cliente que envía el pago.
viii) IdClienteOrigen: Campo alfanumérico con longitud máxima de 30 caracteres que
lleva la identificación del que envía el pago.
b) Retorna: RespuestaPago: Esta clase representa la respuesta a una solicitud de pago y
contiene las siguientes propiedades:
i)
CodEstado: Código que representa el estado de la operación de pago según se
define en el punto 6 de este documento.
Edición No. 1
Público
Página No. 4
Vigencia: 01/01/2014
Estándar Electrónico - Pagos Monedero Bancario
ii) CodMotivoRechazo: En caso de que la operación haya sido rechazada, contiene el
código que indica la razón. Estas codificaciones son las definidas en el apartado 6
de este documento, para el rechazo de las operaciones.
iii) Descripcion: Campo alfanumérico con longitud máxima de 250 caracteres que sirve
para enviar una descripción general del rechazo de la solicitud.
iv) NombreClienteDestino: Campo alfanumérico con longitud máxima de 40 caracteres
que sirve para enviar el nombre del cliente de destino ha quien es enviado el pago.
v) FecValor: Campo tipo DateTime usado para devolver al origen la fecha de valor de
la transacción.
3. RespuestaPago ObtenerEstado(referencia String)
Descripción: Consulta una operación de pago.
Recibe: Código de referencia de la operación a consultar.
Retorna: RespuestaPago con los datos de la operación.
Uso: Plataforma.
a) Retorna: RespuestaPago: Esta clase representa la respuesta a una solicitud de pago y
contiene las siguientes propiedades:
i)
CodEstado: Código que representa el estado de la operación de pago según se
define en el punto 6 de este documento.
ii) CodMotivoRechazo: En caso de que la operación haya sido rechazada, contiene el
código que indica la razón. Estas codificaciones son las definidas en el apartado 6
de este documento, para el rechazo de las operaciones.
iii) Descripcion: Campo alfanumérico con longitud máxima de 250 caracteres que sirve
para enviar una descripción general del rechazo de la solicitud.
iv) NombreClienteDestino: Campo alfanumérico con longitud máxima de 40 caracteres
que sirve para enviar el nombre del cliente de destino ha quien es enviado el pago.
v) FecValor: Campo tipo DateTime usado para devolver al origen la fecha de valor de
la transacción.
4. Booleano ServicioDisponible()
Descripción: Este método será el responsable de indicar la disponibilidad del servicio
móvil.
Uso: Plataforma.
Retorna: Booleano: Valor booleano que indica el estado del servicio.
5. Suscripcion ObtenerInformacionTelefono(numTelefono Integer)
Descripción: Este método será el responsable de brindar la información del padrón móvil
asociado al número de teléfono consultado.
a) Retorna: Suscripcion: Esta clase representa la suscripción al servicio monedero
bancario. Propiedades:
i)
NumTelefono: Número telefónico de un dispositivo móvil.
ii) Identificacion: Campo alfanumérico con longitud de treinta caracteres, que identifica
de forma única al dueño de la línea telefónica.
iii) NombreCliente: Campo alfanumérico con longitud de 40 caracteres, con la cual
será conocido el número telefónico en la transmisión de mensajes.
Edición No. 1
Público
Página No. 5
Vigencia: 01/01/2014
Estándar Electrónico - Pagos Monedero Bancario
iv) CodEntidad: Código numérico de la entidad a la cual está suscrito el cliente en el
monedero.
En caso de que la suscripción no existe o no se encuentre en estado Activa se retorna un
objeto NULO.
6. Respuesta SolicitarMonedero (solicitud Suscripcion)
Descripción: Este método envía una solicitud la suscripción al servicio monedero
bancario.
Uso: Plataforma.
a) Recibe: Suscripcion: Esta clase representa la solicitud de suscripción al servicio
monedero bancario. Propiedades:
i)
NumTelefono: Número telefónico de un dispositivo móvil.
ii) Identificacion: Campo alfanumérico con longitud de treinta caracteres, que identifica
de forma única al dueño de la línea telefónica.
iii) NombreCliente: Campo alfanumérico con longitud de 40 caracteres, con la cual
será conocido el número telefónico en la transmisión de mensajes.
Formato sugerido:
Nombre + Espacio + Apellido1 + Espacio + Apellido2, si el espacio requerido para
estos datos no superan los 40 caracteres.
Nombre + Espacio + Apellido1, en el caso de que el formato anterior supere los 40
caracteres.
iv) CodEntidad: Código numérico de la entidad solicitante.
b) Retorna: Respuesta: Esta clase representa la respuesta a una solicitud de información
o procesamiento, contiene las siguientes propiedades:
i)
CodEstado: Código que representa el estado de la solicitud según se define en el
punto 6 de este documento.
ii) CodMotivoRechazo: En caso de que la solicitud haya sido rechazada, contiene el
código que indica la razón. Estas codificaciones son las definidas en el apartado 6
de este documento, para el rechazo de las operaciones.
iii) Descripcion: Campo alfanumérico con longitud de 100 caracteres que sirve para
enviar una descripción general del rechazo de la solicitud.
7. Respuesta InactivarMonedero(solicitud Suscripcion)
Descripción: Este método envía una solicitud de desactivación del servicio monedero
bancario.
Uso: Plataforma.
a) Recibe: Suscripcion: Esta clase representa la solicitud de inactivación al servicio
monedero bancario. Propiedades:
i)
NumTelefono: Número telefónico de un dispositivo móvil.
ii) Identificacion: Campo alfanumérico con longitud de treinta caracteres, que identifica
de forma única al dueño de la línea telefónica. (Este campo no es usado para la
inactivación)
iii) NombreCliente: Campo alfanumérico con longitud de 40 caracteres, con la cual
será conocido el número telefónico en la transmisión de mensajes. (Este campo no
es usado para la inactivación).
Edición No. 1
Público
Página No. 6
Vigencia: 01/01/2014
Estándar Electrónico - Pagos Monedero Bancario
iv) CodEntidad: Código numérico de la entidad solicitante.
b) Retorna: Respuesta: Esta clase representa la respuesta a una solicitud de inactivación,
contiene las siguientes propiedades:
i)
CodEstado: Código que representa el estado de la solicitud según se define en el
punto 6 de este documento.
ii) CodMotivoRechazo: En caso de que la solicitud haya sido rechazada, contiene el
código que indica la razón. Estas codificaciones son las definidas en el apartado 6
de este documento, para el rechazo de las operaciones.
iii) Descripcion: Campo alfanumérico con longitud de 100 caracteres que sirve para
enviar una descripción general del rechazo de la solicitud.
8. PermitirRecibirTransacciones(permitir Boolean)
Descripción: Activa o inactiva una entidad para recibir transacciones en PMB.
Uso: Plataforma
a) Recibe: Booleano que indica si la entidad se configura para permitir transacciones en
PMB.
b) Retorna: Sin retorno.
9. List(Of DetalleOperacion) ObtenerDetalleOperaciones(fecLiquidacion DateTime)
Descripción: Obtiene la lista de las transacciones realizadas para la fecha de liquidación
indicada.
Recibe: fecLiquidacion, es la fecha en la que fueron liquidadas las transacciones.
Retorna: una lista de DetalleOperacion.
Uso: Plataforma.
a) Retorna: List (Of DetalleOperacion): es una lista de DetalleOperacion, correspondiente
a las transacciones liquidadas en la fecha indicada, la misma con las siguientes
propiedades:
i)
CodReferencia: Campo numérico con longitud de veinticinco campos, que identifica
de forma única la operación en el SINPE. Se valida que cumpla con el estándar
para referencias establecido en la Norma complementaria - Estándar general para
intercambio electrónico de datos. Refiérase como código de servicio el número 83
que es el correspondiente al servicio PMB (Monedero Bancario).
ii) CodEntidadOrigen: Código numérico de la entidad que solicitó el servicio a uno de
sus clientes.
iii) CodEntidadDestino: Código numérico de la entidad destino del servicio a uno de
sus clientes.
iv) Monto: Monto a acreditar en la CC asociada al número de teléfono destino.
v) CodMoneda: Código de la moneda – La cual debe ser aceptada por el servicio – En
este momento se aceptan: 1- Colones.
vi) FecValor: Fecha en la que se recibe la autorización de la entidad de destino sobre
la operación consultada.
Edición No. 1
Público
Página No. 7
Vigencia: 01/01/2014
Estándar Electrónico - Pagos Monedero Bancario
5.2.3. Servicio WCF en los BANCOS para el uso del SINPE
Para la operativa de un Pago o un Cobro, las “Entidades financieras” deberán proveer al
SINPE de un WCF que contendrá la siguiente interfaz.
1. Respuesta Autorizar(transaccion Pago)
Descripción: Este método es ofrecido por una entidad financiera con el fin de autorizar un
pago proveniente del SINPE hacia una de sus CC asociada a un número de teléfono.
Retorna: Respuesta con el resultado del envío.
Restricciones: Válida solo entre teléfonos suscritos al servicio por diferentes entidades.
Uso: Plataforma.
a) Recibe: Pago: Esta clase representa una transferencia de pago entre cuentas cliente
de entidades financieras por medio de un número de teléfono y contiene las siguientes
propiedades:
i)
NumTelefonoOrigen: Código numérico que identifica un número telefónico de un
dispositivo móvil. Este dato solo se envió cuando se autorizan transferencias
originadas desde un teléfono móvil.
ii) NumTelefonoDestino: Código numérico que identifica un número telefónico de un
dispositivo móvil.
iii) Moneda: Código de la moneda – La cual debe ser aceptada por el servicio – En
este momento se aceptan: 1- Colones.
iv) Monto: Monto a acreditar en la CC asociada al número de teléfono destino.
v) IdClienteOrigen: Identificación del cliente origen.
vi) NombreCliente: Campo alfanumérico que contiene el nombre del cliente (nombre
con la cual será conocido el número telefónico en la transmisión de mensajes) del
número de teléfono origen que genera la transferencia de pago. Con longitud
máxima de 40 caracteres.
vii) CodReferencia: Campo numérico con longitud de veinticinco campos, que identifica
de forma única la operación en el SINPE. Se valida que cumpla con el estándar
para referencias establecido en la Norma complementaria - Estándar general para
intercambio electrónico de datos. Refiérase como código de servicio el número 83
que es el correspondiente al servicio PMB (Monedero Bancario).
viii) Descripcion: Campo alfanumérico con longitud de 20 caracteres que sirve para
enviar una descripción general del pago a realizar.
ix) Retorna: Respuesta: Esta clase representa la respuesta a una solicitud de
información o procesamiento, contiene las siguientes propiedades.
x) CodEstado: Código que representa el estado de la solicitud de autorización, según
se define en el punto 6 de este documento.
xi) CodMotivoRechazo: En caso de que la solicitud de autorización haya sido
rechazada, contiene el código que indica la razón. Estas codificaciones son las
definidas en el apartado 6 de este documento, para el rechazo de las operaciones.
xii) Descripcion: Campo alfanumérico con longitud de 250 caracteres que sirve para
enviar una descripción general del rechazo de la solicitud.
Edición No. 1
Público
Página No. 8
Vigencia: 01/01/2014
Estándar Electrónico - Pagos Monedero Bancario
2. Respuesta ObtenerEstado(codReferencia String)
Descripción: Consulta una operación de pago.
Recibe: Código de referencia de la operación a consultar.
Retorna: Clase Respuesta con los resultados de la operación.
Uso: Plataforma.
a) Retorna: Respuesta: Esta clase representa la respuesta a una solicitud de información
o procesamiento, contiene las siguientes propiedades:
i)
CodEstado: Código que representa el estado de la solicitud de autorización, según
se define en el punto 6 de este documento.
ii) CodMotivoRechazo: En caso de que la solicitud de autorización haya sido
rechazada, contiene el código que indica la razón. Estas codificaciones son las
definidas en el apartado 6 de este documento, para el rechazo de las operaciones.
iii) Descripcion: Campo alfanumérico con longitud de 250 caracteres que sirve para
enviar una descripción general del rechazo de la solicitud.
3. Confirmar(codReferencia String, fecValor DateTime)
Descripción: Confirma una operación de pago.
Recibe: Código de referencia de la operación a confirmar fecValor para efectos de
contabilidad.
Retorna: Sin retorno.
Uso: Plataforma.
4. Reversar(codReferencia String)
Descripción: Reversa una operación de pago.
Recibe: Código de referencia de la operación a reversar.
Retorna: Sin retorno.
Uso: Plataforma.
5. Booleano ServicioDisponible()
Descripción: Este método será el responsable de indicar la disponibilidad del servicio
móvil.
Uso: Plataforma.
Retorna: Booleano: Valor booleano que indica el estado del servicio.
6. Inactivar(numTelefono Integer, codEntidad Integer)
Descripción: Indica a entidad la inactivación de un número telefónico.
Recibe: Número de teléfono que debe ser inactivado y el código de entidad que lo
inactivó.
Retorna: Sin retorno.
Uso: Plataforma.
Edición No. 1
Público
Página No. 9
Vigencia: 01/01/2014
Estándar Electrónico - Pagos Monedero Bancario
5.2.4. Flujos de información y uso de los métodos
Para el correcto funcionamiento del servicio es importante dejar claro la interacción que se da
entre los métodos expuestos para el origen así como los implementados por la entidad destino
para uso del SINPE.
5.2.4.1. Métodos para suscripción y desuscripción:

Método SolicitarMonedero (origen).

Método InactivarMonedero (origen).

Método Inactivar (destino).
Al solicitar monedero se crea un registro en el padrón móvil del SINPE que asocia la entidad
origen con el número de teléfono. Cuando se invoca al InactivarMonedero (origen) esta
suscripción se marca como inactiva.
En el caso cuando la suscripción fue creada por una entidad X y la entidad Y es la que invoca
al InactivarMonedero el SINPE, para que la información sea consistente entre los sistemas,
invoca al método Inactivar (destino) para que la entidad X marque como inactiva la suscripción
que originalmente creó.
5.2.4.2. Métodos asociados al envío y recepción de operaciones:

Método EnviarPagoDesdeTelefono (origen).

Método EnviarPagoDesdeCuenta (origen).

Método ObtenerEstado (origen).

Método Autorizar (destino).

Método ObtenerEstado (destino).

Método Confirmar (destino).

Método Reversar (destino).
Estos métodos se utilizan para varios escenarios de envío en donde las operaciones son
autorizadas y confirmadas, en donde las operaciones son rechazadas y donde existen
problemas de comunicación entre el destino y SINPE o el origen y SINPE.
El buen uso de estos métodos es indispensable para que las operaciones sean procesadas
correctamente sin afectar a los usuarios finales.
Envío, autorización y confirmación
Este es el flujo básico del envío en donde la entidad origen invoca a algunos de los métodos de
envío (EnviarPagoDesdeTelefono o EnviarPagoDesdeCuenta). El SINPE valida los datos e
invoca al método Autorizar (destino) para que la entidad verifique que la información es
correcta y autoriza la transferencia.
El SINPE recibe la autorización y le informa al origen que la transferencia soy autorizada con
éxito. Asincrónicamente, el SINPE invoca al método Confirmar (destino) para que la entidad
destino proceda a acreditar los fondos en la cuenta del cliente destino. Este proceso se ejecuta
cuantas veces sea necesario hasta que el llamado al confirmar sea procesado sin error.
Importante aclarar que para el SINPE, si una operación es Autorizada por el destino esta no
puede reversarse. La autorización hace que la operación quede en firme en el SINPE.
Edición No. 1
Público
Página No. 10
Vigencia: 01/01/2014
Estándar Electrónico - Pagos Monedero Bancario
Envío y error entre SINPE y Destino
Cuando se realiza el envío de una operación existen dos momentos en los que el SINPE
puede recibir un error al comunicarse con el sistema, destino.
El primero de ellos es al Autorizar y el segundo es al Confirmar. Si el error se da Autorizando el
SINPE marca la operación como Rechazada por “Problemas de Comunicación” he informa al
origen del rechazo de la operación.
El SINPE asincrónicamente inicia el proceso de reversión. Para esto invoca al método
Reversar (destino) cuantas veces sea necesario hasta que la reversión sea procesada
exitosamente por la entidad destino, es decir, hasta que un llamado al método Reversar se
complete sin error.
Envío y rechazo
En este escenario el rechazo se da al momento del Autorizar la operación ante el destino.
Cuando el SINPE obtiene un rechazo de la operación guarda en el sistema el motivo de
rechazo he informa a la entidad origen el rechazo de la operación.
Debido a que fue la misma entidad destino la que generó el rechazo el SINPE NO invoca al
Reversar (destino).
Envío y error entre SINPE y Origen
Cuando se realiza en envío de una operación la entidad origen debe esperar la respuesta del
método. En determinados casos, bajo condiciones particulares e inesperadas puede ocurrir
que la entidad origen reciba como respuesta a su llamado una excepción inesperada no
especificada en el presenta estándar.
Dadas estas condiciones la entidad origen no puede, bajo ninguna circunstancia tomar una
decisión respecto al resultado de la operación sin antes preguntar al SINPE por el estado de la
misma. Para estos casos, la entidad debe invocar, cuantas veces sea necesario, siguiendo su
propio diseño al método ObtenerEstado (origen).
Este es el mecanismo con el que cuenta la entidad origen para que la información sea
consistente entre lo que está registrado en SINPE y lo que quede registrado en la entidad
origen.
Por su parte el SINPE, cuanta con el método ObtenerEstado (destino) para sincronizar estas
operaciones que sufrieron problemas en su procesamiento.
5.2.5. Manejo de Excepciones
Para manejar los errores, se propagan hacia el cliente faults del siguiente tipo:
Clase: System.ServiceModel.FaultException< [NombreProxyServicioMonedero].PmbFault>
Donde NombreProxyServicioMonedero es el nombre de la referencia al Wcf del servicio
monedero que cada entidad origen crea. El nombre puede variar entre entidades origen.
En la propiedad Detail del objeto FaultException se encuentra el detalle del fallo.
Propiedades:
Nombre
Codigo
Descripción
Tipo
Código del error.
Integer
Mensaje
Mensaje que describe el error ocurrido.
String
IdManejo
Identificador único del error. Útil para buscar los mensajes en
bitácora asociados al llamado al WCF. Se recomienda almacenar
este valor.
Guid
Edición No. 1
Público
Página No. 11
Vigencia: 01/01/2014
Estándar Electrónico - Pagos Monedero Bancario
Los códigos de error que la entidad origen puede manejar en el servicio PMB son los
siguientes:
Código decimal
Descripción
0
Error interno del servicio de Pagos Monedero Bancario.
1
Número de teléfono inválido.
2
Número de identificación inválida.
3
Número de identificación no soportado.
4
El nombre del cliente excede el tamaño máximo permitido de caracteres.
5
El nombre de cliente origen es obligatorio.
6
El código de entidad suministrado no coincide con el de su entidad.
7
Referencia duplicada.
8
Monto inválido.
9
La descripción excede el tamaño máximo permitido de caracteres.
10
Error al autorizar el pago [Cód. Referencia] ante la entidad destino.
11
El número de teléfono destino no está suscrito al servicio o está inactivo.
12
El número de teléfono origen no está suscrito al servicio o está inactivo.
13
La entidad origen es la misma que la entidad destino.
14
La entidad origen es inconsistente con el número telefónico.
15
La transacción desde cuenta no debe especificar el teléfono origen.
16
La transacción desde teléfono no debe especificar los datos del cliente origen.
17
La fecha de liquidación [Fec. Liquidación] dada es incorrecta.
18
El número de teléfono utilizado ya está suscrito al servicio para otro cliente de la entidad:
[Cód. Entidad].
19
La entidad está usando una referencia inválida.
20
El número de teléfono utilizado no está suscrito al servicio Pagos Monedero Bancario.
21
La entidad origen [Cód. Entidad] está inactiva o no pertenece al servicio Pagos Monedero
Bancario.
22
La entidad destino [Cód. Entidad] está inactiva o no pertenece al servicio Pagos
Monedero Bancario.
23
La entidad origen [Cód. Entidad] no está registrada.
24
La entidad [Cód. Entidad] no está disponible para recibir transacciones.
25
El ciclo consultado para la fecha de liquidación [Fec. Liquidación] aún no ha cerrado.
26
La fecha de liquidación [Fec. Liquidación] consultada no corresponde a un día hábil.
27
Moneda no soportada.
28
El número de teléfono utilizado ya está suscrito al servicio para el mismo cliente en la
entidad: [Cód. Entidad].
29
El número de teléfono origen y destino no pueden ser el mismo.
30
La fecha de liquidación [Fec. Liquidación] para el cálculo de bilaterales del servicio
Monedero Bancario, no puede ser mayor o igual a la actual [Fec. Actual].
Siempre que se invoque a uno de los métodos expuestos por el servicio de Monedero se debe
cerrar el canal de Wcf para evitar que queden conexiones abiertas. En caso de excepción se
debe Abortar el llamado.
Edición No. 1
Público
Página No. 12
Vigencia: 01/01/2014
Estándar Electrónico - Pagos Monedero Bancario
A continuación un ejemplo para consumir unos de los métodos del WCF en forma segura:
Lógica ante error en el envío
El servicio genera excepciones tipo FaultException controladamente según las reglas de
negocio que están definidas. Sin embargo, existe la posibilidad de que se generen otro tipo de
excepciones que no se esperan.
Cuando se llama a un método para enviar (EnviarPagoDesdeTelefono o
EnviarPagoDesdeCuenta) es importante saber qué tipo de excepción se generó para así
reaccionar ante el error.
Las
excepciones
manejadas
de
tipo
System.ServiceModel.FaultException<
[NombreProxyServicioMonedero].PmbFault> indican el error específico ocurrido por lo que no
es necesario invocar al método ObtenerEstado. Los envíos que reciben como respuesta este
tipo de excepción no son registrados en el sistema debido a violaciones en las reglas del
negocio.
Del punto anterior existe solo una excepción, que es el código de error 0 - Error interno del
servicio de Pagos Monedero Bancario. Este error no debería generarse ya que supondría un
error en el procesamiento que no es parte de la lógica del servicio Monedero. Si un error de
este tipo se presenta sí es necesario que la entidad origen invoque al método ObtenerEstado.
Adicionalmente, es importante que la entidad reporte este tipo de errores ya que no deben
presentarse en condiciones normales.
Por otro lado, cuando al realizar un envío se recibe como respuesta una excepción diferente es
necesario invocar cuantas veces sea necesario al ObtenerEstado con el fin de sincronizar los
sistema de la entidad y del BCCR. Este tipo de errores pueden tener causas diversas y deben
contemplarse en el desarrollo para que el sistema sea robusto.
Edición No. 1
Público
Página No. 13
Vigencia: 01/01/2014
Estándar Electrónico - Pagos Monedero Bancario
6. Tipos de datos y formatos soportados
6.1.1. Catálogo de Motivos de rechazo
Código
Descripción
Uso exclusivo Entidad destino
1
Cuenta asociada al número de teléfono cerrada
2
Cuenta asociada
bloqueada
3
Cuenta asociada al número de teléfono no existe
Inconsistente
4
El número de teléfono no se encuentra registrado
Inconsistente
5
Moneda no corresponde
Inconsistente
6
Problemas de comunicación
SINPE
7
Problemas en la respuesta del destino
SINPE
al
número
de
Inconsistente
teléfono
Correcto
Nota: Cuando el destino retorne un código de error “Inconsistente” o que existan problemas de
comunicación (el SINPE registrará un código de error interno con valor igual a 6), el sistema
retornará a la entidad origen el motivo “Problemas en la respuesta del destino” código igual a 7.
6.1.2. Estados de las operaciones de Pagos y Cobros móviles
En los Wcf, al consultar una operación, la misma puede tener cualquiera de los siguientes
estados:
Código
Descripción
1
No Existe.
2
Rechazada.
4
Autorizada.
6.1.3. Catálogo de Identificaciones
Este catálogo es parte del documento NC-CG. Las identificaciones listadas son las que están
soportadas por el servicio PMB.
Código
Identificación
1
Cédula Identidad
4
Cédula Jurídica
8
10
Edición No. 1
Formato y Expresión Regular
\0#-####-####
^0[1-9]{1}-\d{4}-\d{4}$
3-###-######
^3-\d{3}-\d{6}$
Documento Único
1###########
de Identificación
^1[0-9]{11}$
(DIMEX)
Documento de
Identificación para 5###########
Diplomáticos
^5[0-9]{11}$
(DIDI)
Público
Página No. 14
Longitud
12
9
12
12
Vigencia: 01/01/2014
Estándar Electrónico - Pagos Monedero Bancario
6.1.4. Formatos de teléfonos
Data la portabilidad numérica con la que cuentan los clientes de teléfonos móviles el SINPE no
puede identificar el proveedor de servicios al cual está adscrito el teléfono. El SINPE, a modo
de verificar que los datos sean correcto valida que se cumplan alguno de los siguientes
formatos.
Código
Operador
Formato y Expresión Regular
Longitud
1
ICE
\8#######
^8[0-9]{7}$
8
2
MoviStar
\6#######
^7[0-9]{7}$
8
3
Claro
\7#######
^6[0-9]{7}$
8
6.1.5. Catálogo de monedas
Este catálogo es parte del documento NC-CG
Código
Descripción
Aceptada
1
Colones
Si
2
Dólares
No
19
Euros
No
Edición No. 1
Público
Página No. 15
Vigencia: 01/01/2014
Descargar