Comunicación con Sistemas Externos
Last updated
Was this helpful?
Last updated
Was this helpful?
TR actua como servidor, exponiendo una API SOAP sin autenticación o con autenticación vía Password Digest o Plain. Dicha API permitirá consultar las novedades de las operaciones contenidas en este sistema, y permitirá también que el SBO le informe el chequeo o la anulación de estas operaciones.
En el siguiente gráfico se detallan las comunicaciones entre los distintos sistemas según el tipo de operaciones. Los temas detallados en este documento corresponden a las operaciones de Cambios (FX-Spot), Plazos Fijos, Calls y Adelantos.
El objetivo es comunicar a SBO los distintos eventos que afecten a cada operación registrada en TR y que sean de interés para el Back Office, de manera de visibilizar así la registración y anulación de las operaciones. Por defecto las novedades listadas serán a la fecha que se realiza la consulta.
SBO invoca este servicio aclarando el tipo de operatoria y banco a consultar, y recibirá un listado que incluya todos los eventos que se correspondan con dichos parámetros durante el día solicitado.
Adicionalmente se cuenta con un parámetro opcional de identificador de última novedad recibida, en el cual podrá especificar el identificador de la última novedad recibida y limitará el resultado a todas aquellas novedades posteriores a la que hacen referencia en dicho parámetro.
Las distintos tipos de novedades que pueden recibir se clasifican en:
Ingreso de operación: para una novedad de este tipo, SBO recibirá la información correspondiente a una operación que se ingresó en TR a través de cualquiera de sus canales de ingreso (mercado o carga manual). Es importante que SBO se guarde el identificador asignado por TR para la operación, ya que este será requerido en los posteriores servicios a fin de poder identificarla unívocamente. Adicionalmente, cada operación tendrá un ETag para control de concurrencia, el cual representará unívocamente el estado de la operación en un momento dado.
Anulación de operación: en caso de anularse una operación de TR a través de cualquiera de sus canales (mercado o anulación manual), SBO recibirá este tipo de novedad. Esto puede suceder antes o después del chequeo de la operación por parte de TR o SBO.
El servicio de solicitud de chequeo de operación implicará la autorización por parte de SBO de la operación previamente recibida a través del sistema de novedades. SBO deberá hacer referencia en sus parámetros al identificador provisto por TR para la operación, al tipo de operación y al ETag de la operación.
En caso de encontrar algún motivo invalidante para convalidar el chequeo de esta operación (por ejemplo anulación de operación entre consulta y chequeo), TR devolverá un código de error en la respuesta, ya que la anulación fue informada a SBO oportunamente. De no mediar estos inconvenientes, la operación pasa a estar chequeada.
Luego de chequearse la operación, la misma se considerará sincronizada en TR. Sin embargo, los operadores de la mesa de dinero pueden requerir anular una operación posterior al chequeo de SBO. En este caso se le dará aviso al operador que continuar con esa acción provocará la desincronización entre los ambientes, y de confirmar la anulación TR generará la novedad correspondiente para que SBO se notifique del cambio.
El servicio de anulación de operación implicará la anulación por parte de SBO de la operación previamente recibida a través del sistema de novedades. SBO deberá hacer referencia en sus parámetros al identificador provisto por TR para la operación, al tipo de operación, al Etag de la operación y a un motivo de anulación, que se mostrará a modo informativo al operador de la mesa de dinero al momento de evaluar la aceptación de la anulación.
Una vez ingresada el pedido de anulación de la operación en TR, este listará todos los pedidos de anulación pendientes en una bandeja, desde la cual se podrá accionar aceptando o ignorando el pedido. En caso de aceptarse el pedido, se procede a anular la operación en TR (realizando todos los chequeos que el sistema provee para esta funcionalidad). En caso de ignorarse el pedido, se mantiene la operación en el estado actual, advirtiendo al operador de la desincronización que esto provoca entre ambos sistemas.
El servicio de consulta de estado de operación le permitirá al SBO conocer el estado actual en TR de una operación previamente notificada. Los estados posibles son Registered y Deregistered, según la operación en TR se encuentre Registrada o Anulada, respectivamente.
Para utilizar este servicio, SBO deberá hacer referencia en sus parámetros al identificador provisto por TR para la operación y al tipo de operación.
Data Types:
company
String
'BcoEjemplo'
SI
tradeType
String
‘ForeignExchange’
SI
lastNotificationId
String
Números Naturales + Cero
NO*
*Lo que no es obligatorio es el tag, el valor sí lo es (en caso de que se utilice el tag).
Request a partir del id de la última notificación recibida:
Request para todas las operaciones del día (no se utiliza el campo lastNotificationId):
Request para todas las operaciones (se usa 0 en el campo lastNotificationId):
Response exitoso:
Response con error debido a problemas de autenticación:
Response con error debido a la ausencia del banco:
Response con error debido a tipo de operación inválido:
Response con error debido a id de última notificación inválido:
Identificador
<ForeignExchangeRegistration>
Tag
Identificador de la operación a
enviar.
Etag
<notification etag>
Tag Attribute
Etiqueta usada para detectar cambios entre consulta y acción (hash).
Identificador de la Notificación
<notification id>
Tag Attribute
Identificador numérico y secuencial
de las notificaciones.
Banco
<company>
String(5)
Identificador del banco de la
operación
Número de Operación
<trade-identifier>
Number
Número identificatorio de la
operación
Operador
<trader>
String(50)
Nombre del usuario operador
Operación
<party-role>
String(20)
Lado de la operación (Compra,
Venta)
Cuenta de Cashflow para el pago
<paymen><account>
String(50)
Nombre de la Cuenta de Cashflow
para el flujo de pago
Monto del pago
<payment><amount>
Decimal Number(23,8)
Monto del pago
Moneda del pago
<payment><currency>
String(3)
Código de la moneda utilizada en la cantidad de la operación (código según ISO 4217).
Fecha de concertación
<payment><due-date>
Date
Fecha de Concertación de la
operación
Tipo de moneda
<payment><type>
String(10)
Tipo de moneda de la operación
Cuenta de Cashflow para la compra
<asset><account>
String(50)
Nombre de la Cuenta de Cashflow
para el flujo de compra
Monto de la compra
<asset><amount>
Decimal Number(23,8)
Monto de la compra
Moneda de la compra
<asset><currency>
String(3)
Código de la moneda utilizada en la cantidad de la operación (código según ISO 4217).
Fecha de concertación
<asset><due-date>
Date
Fecha de Concertación de la
operación
Tipo de moneda
<asset><type>
String(10)
Tipo de moneda de la operación
Cliente
<customer><description>
String(50)
Nombre del Cliente
Alias
<customer><alias>
String(50)
Alias del Cliente
N° CUIT
<customer><cuit>
String(50)
CUIT del Cliente
Tipo de ClientE
<customer><type>
String(30)
Tipo de Cliente (AlyC No Banco, Banco, Cliente Particular, Compania de Seguro, Empresa, Fondo de Inversión, Inversor Institucional Externo, Inversor Institucional Interno)
Mail del cliente
<customer><emails><email>
String(100)
Cuenta de mail asociada al cliente. Puede no tener mail asociado, o bien tener una o más de una.
Fecha Concertación
<life><agreement-date>
Date
Fecha de Concertación de la
operación
Plazo
<life><term>
Number
Plazo en cantidad de días
Vencimiento
<life><due-date>
Date
Fecha de vencimiento de la
operación
Mercado
<market>
String(10)
Mercado de la operación (MAE,
MULC)
Precio
<price>
Decimal Number(23,8)
Precio establecido para la transacción
Total de movimientos monetarios
<monetary-transfers><total>
Number
Total de movimientos monetarios
Liquidación monetaria
<monetary-transfers><settled>
Number
Total de movimientos monetarios
liquidados
Total de movimientos de Custodia
<custody-transfers><total>
Number
Total de movimientos de custodia
Liquidación de Custodia
<custody-transfers><settled>
Number
Total de movimientos de custodia
liquidados
Fecha de Alta
<registration-date-time>
Date Time
Fecha y hora de creación de la
operación
Tipo de Liquidación
<settlement-type>
String(50)
Tipo de liquidación de las monedas utilizadas en la compra y en la venta. Será uno de: Hoy Puesto, Hoy Común, Normal Puesto, Normal Común, 48h Puesto, 48h Común, 72h Puesto, 72h Común
Data Types:
company
String
'BcoEjemplo'
SI
tradeType
String
‘CompanyLoan’
SI
lastNotificationId
String
Números Naturales + Cero
NO*
*Lo que no es obligatorio es el tag, el valor sí lo es (en caso de que se utilice el tag).
Request a partir del id de la última notificación recibida:
Request para todas las operaciones del día (no se utiliza el campo lastNotificationId):
Request para todas las operaciones (se usa 0 en el campo lastNotificationId):
Response exitoso:
Response con error debido a problemas de autenticación:
Response con error debido a la ausencia del banco:
Response con error debido a tipo de operación inválido:
Estructura Company Loan
Identificador
<CompanyLoanRegistration>
Tag
Identificador de la operación a
enviar.
Etag
<notification etag>
Tag Attribute
Etiqueta usada para detectar cambios entre consulta y acción (hash).
Identificador de la Notificación
<notification id>
Tag Attribute
Identificador numérico y secuencial de las notificaciones.
Banco
<company>
String(5)
Identificador del banco de la
operación
Número de Operación
<trade-identifier>
Number
Número identificatorio de la
operación
Operador
<trader>
String(50)
Nombre del usuario operador
Operación
<party-role>
String(20)
Lado de la operación (Activo,
Pasivo)
Monto
<payment>
Decimal Number(23,8)
Monto de la operación
Cliente
<customer><description>
String(50)
Nombre del Cliente
Alias
<customer><alias>
String(50)
Alias del Cliente
N° CUIT
<customer><cuit>
String(50)
CUIT del Cliente
Tipo de Cliente
<customer><type>
String(30)
Tipo de Cliente (AlyC No Banco, Banco, Cliente Particular, Compania de Seguro, Empresa, Fondo de Inversión, Inversor Institucional Externo, Inversor Institucional Interno)
Mail del cliente
<customer><emails><email>
String(100)
Cuenta de mail asociada al cliente. Puede no tener mail asociado, o bien tener una o más de una.
Número de cuenta
<customer><account><number>
Number
Número de cuenta del cliente
Tipo de cuenta
<customer><account><type><identifier>
Number
Tipo de cuenta del cliente (1, 2) (Caja de Ahorro, Cuenta Corriente)
Nombre largo del tipo de cuenta
<customer><account><type><name>
String(20)
Nombre largo del tipo de cuenta
Nombre corto del tipo de cuenta
<customer><account><type><short name>
String(5)
Nombre corto del tipo de cuenta
Código sucursal
<customer><account><branch
office><code>
Number
Código de la sucursal de la
cuenta
Nombre sucursal
<customer><account><branch
office><name>
String(50)
Nombre de la sucursal de la
cuenta
Fecha Concertación
<life><agreement-date>
Date
Fecha de Concertación de la
operación
Plazo
<life><term>
Number
Plazo en cantidad de días
Vencimiento
<life><due-date>
Date
Fecha de vencimiento de la
operación
Capital
<principal><amount>
Number
Capital de la operación
Cuenta de Cashflow para Capital
<principal><account>
String(50)
Nombre de la Cuenta de Cashflow para el flujo del capital
Tasa
<interest><rate>
Number
Tasa de la operación (TNA) en decimales. Ejemplo: si la TNA es de 14%, quedará 0,14.
Interés
<interest><amount>
Number
Interés de la operación
Cuenta de Cashflow para Interés
<interest><account>
String(50)
Nombre de la Cuenta de Cashflow para el flujo de interés
Total de movimientos monetarios
<monetary-transfers><tota>
Number
Total de movimientos monetarios
Liquidación monetaria
<monetary-transfers><settled>
Number
Total de movimientos monetarios liquidados
Total de movimientos de Custodia
<custody-transfers><total>
Number
Total de movimientos de
custodia
Liquidación de Custodia
<custody-transfers><settled>
Number
Total de movimientos de custodia liquidados
Fecha de Alta
<registration-date-time>
Date Time
Fecha y hora de creación de la
operación
Moneda
<currency>
String(3)
Código de la moneda utilizada en la cantidad de la operación (código según ISO 4217).
Data Types:
company
String
'BancoEjemplo'
SI
tradeType
String
‘BankLoan’
SI
lastNotificationId
String
Números Naturales + Cero
NO*
*Lo que no es obligatorio es el tag, el valor sí lo es (en caso de que se utilice el tag).
Request a partir del id de la última notificación recibida:
Request para todas las operaciones del día (no se utiliza el campo lastNotificationId):
Request para todas las operaciones (se usa 0 en el campo lastNotificationId):
Response exitoso:
Response con error debido a problemas de autenticación:
Response con error debido a la ausencia del banco:
Response con error debido a tipo de operación inválido:
Response con error debido a id de última notificación inválido:
Estructura Bank Loan
Identificador
<BankLoanRegistration>
Tag
Identificador de la operación a enviar.
Etag
<notification etag>
Tag Attribute
Etiqueta usada para detectar cambios entre consulta y acción (hash).
Identificador de la Notificación
<notification id>
Tag Attribute
Identificador numérico y
secuencial de las notificaciones.
Banco
<company>
String(5)
Identificador del banco de la operación
Número de
Operación
<trade-identifier>
Number
Número identificatorio de la operación
Operador
<trader>
String(50)
Nombre del usuario operador
Operación
<party-role>
String(20)
Lado de la operación (Activo, Pasivo)
Monto
<payment>
Decimal
Number(23,8)
Monto de la operación
Cliente
<customer><description>
String(50)
Nombre del Cliente
Alias
<customer><alias>
String(50)
Alias del Cliente
N.º CUIT
<customer><cuit>
String(50)
CUIT del Cliente
Tipo de Cliente
<customer><type>
String(30)
Tipo de Cliente (AlyC No Banco, Banco, Cliente Particular, Compania de Seguro, Empresa, Fondo de Inversión, Inversor Institucional Externo, Inversor Institucional Interno)
Mail del cliente
<customer><emails><email>
String(100)
Cuenta de mail asociada al cliente. Puede no tener mail asociado, o bien tener una o más de una.
Fecha
Concertación
<life><agreement-date>
Date
Fecha de Concertación de la operación
Plazo
<life><term>
Number
Plazo en cantidad de días
Vencimiento
<life><due-date>
Date
Fecha de vencimiento de la operación
Capital
<principal><amount>
Number
Capital de la operación
Cuenta de
Cashflow para
Capital
<principal><account>
String(50)
Nombre de la Cuenta de Cashflow para el flujo del capital
Tasa
<interest><rate>
Number
Tasa de la operación (TNA) en decimales. Ejemplo: si la TNA es de 14%, quedará 0,14.
Interés
<interest><amount>
Number
Interés de la operación
Cuenta de
Cashflow para
Interés
<interest><account>
String(50)
Nombre de la Cuenta de Cashflow para el flujo de interés
Total de
movimientos
monetarios
<monetary-transfers><total>
Number
Total de movimientos monetarios
Liquidación
monetaria
<monetary-transfers><settled>
Number
Total de movimientos monetarios liquidados
Total de
movimientos de Custodia
<custody-transfers><total>
Number
Total de movimientos de custodia
Liquidación de
Custodia
<custody-transfers><settled>
Number
Total de movimientos de custodia liquidados
Fecha de Alta
<registration-date-time>
Date Time
Fecha y hora de creación de la operación
Moneda
<currency>
String(3)
Código de la moneda utilizada en la cantidad de la operación (código según ISO 4217).
Data Types:
company
String
'BcoEjemplo'
SI
tradeType
String
‘CertificateOfDeposit‘
SI
last-notification-id
String
Números Naturales + Cero
NO
*Lo que no es obligatorio es el tag, el valor sí lo es (en caso de que se utilice el tag).
Request a partir del id de la última notificación recibida:
Request para todas las operaciones del día (no se utiliza el campo lastNotificationId):
Request para todas las operaciones (se usa 0 en el campo lastNotificationId):
Response exitoso:
Response con error debido a problemas de autenticación:
Response con error debido a la ausencia del banco:
Response con error debido a tipo de operación inválido:
Response con error debido a id de última notificación inválido:
Estructura Certificate of Deposit
Identificador
<CertificateOfDepositRegistration>
Tag
Identificador de la operación a enviar.
Etag
<notification etag>
Tag Attribute
Etiqueta usada para detectar cambios entre consulta y acción (hash).
Identificador de la Notificación
<notification id>
Tag Attribute
Identificador numérico y secuencial de las notificaciones.
Banco
<company>
String(5)
Identificador del banco de la operación
Número de Operación
<trade-identifier>
Number
Número identificatorio de la operación
Operador
<trader>
String(50)
Nombre del usuario operador
Operación
<party-role>
String(20)
Lado de la operación (Activo, Pasivo)
Monto
<payment>
Decimal
Number(23,8)
Monto de la operación
Cliente
<customer><description>
String(50)
Nombre del Cliente
Alias
<customer><alias>
String(50)
Alias del Cliente
N° CUIT
<customer><cuit>
String(50)
CUIT del Cliente
Tipo de Cliente
<customer><type>
String(30)
Tipo de Cliente (AlyC No Banco, Banco, Cliente Particular, Compania de Seguro, Empresa, Fondo de Inversión, Inversor Institucional Externo, Inversor Institucional Interno)
Mail del cliente
<customer><emails><email>
String(100)
Cuenta de mail asociada al cliente. Puede no tener mail asociado, o bien tener una o más de una.
Número de cuenta
<customer><account><number>
Number
Número de cuenta del cliente
Tipo de cuenta
<customer><account><type><identifier>
Number
Tipo de cuenta del cliente (1, 2) (Caja de Ahorro, Cuenta Corriente)
Nombre largo del tipo de cuenta
<customer><type><name>
String(20)
Nombre largo del tipo de cuenta
Nombre corto del tipo de cuenta
<customer><account><type><short name>
String(5)
Nombre corto del tipo de cuenta
Código sucursal
<customer><account><branch
office><code>
Number
Código de la sucursal de la cuenta
Nombre sucursal
<customer><account><branch
office><name>
String(50)
Nombre de la sucursal de la cuenta
Fecha Concertación
<life><agreement-date>
Date
Fecha de Concertación de la operación
Plazo
<life><term>
Number
Plazo en cantidad de días
Vencimiento
<life><due-date>
Date
Fecha de vencimiento de la operación
Capital
<principal><amount>
Number
Capital de la operación
Cuenta de Cashflow para Capital
<principal><account>
String(50)
Nombre de la Cuenta de Cashflow para el flujo del capital
Tasa
<interest><rate>
Number
Tasa de la operación (TNA) en decimales. Ejemplo: si la TNA es de 14%, quedará 0,14.
Interés
<interest><amount>
Number
Interés de la operación
Cuenta de Cashflow para Interés
<interest><account>
String(50)
Nombre de la Cuenta de Cashflow para el flujo de interés
Plazo de Precancelación
<pre-cancellation><term>
Number
Plazo en días para precancelar
Cancelable Desde
<pre-cancellation><cancellation-date>
Date
Fecha a partir de la cual es precancelable
Penalidad
<pre-cancellation><interest-penalty rate>
Number
Penalidad en caso de haber precancelado (tasa en decimales, igual que la TNA)
Precancelable
<pre-cancellation><pre-cancelable>
String(5)
Valor que determina si la operación es precancelable (True/False)
Precancelado
<pre-cancellation><pre-cancelled>
String(5)
Valor que determina si la operación fue precancelada (True/False)
Total de movimientos monetarios
<monetary-transfers><total>
Number
Total de movimientos monetarios
Liquidación monetaria
<monetary-transfers><settled>
Number
Total de movimientos monetarios liquidados
Total de movimientos de Custodia
<custody-transfers><total>
Number
Total de movimientos de custodia
Liquidación de Custodia
<custody-transfers><settled>
Number
Total de movimientos de custodia liquidados
Fecha de Alta
<registration-date-time>
Date Time
Fecha y hora de creación de la operación
Moneda
<currency>
String(3)
Código de la moneda utilizada en la cantidad de la operación (código según ISO 4217).
Request:
Response exitoso:
Response con error debido a tipo de operación inválido:
Response con error debido a la ausencia del identificador de operación:
Response con error debido a la ausencia del ETag:
Response con error debido a falta de permisos u operación no encontrada:
Response con error debido a ETag erróneo o desactualizado:
Request:
Response exitoso:
Response con error debido a tipo de operación inválido:
Response con error debido a la ausencia del identificador de operación:
Response con error debido a la ausencia del ETag:
Response con error debido a la ausencia del motivo:
Response con error debido a falta de permisos u operación no encontrada:
Response con error debido a ETag erróneo o desactualizado:
Request:
Response exitoso sobre operación registrada:
Response exitoso sobre operación anulada:
Response con error debido a tipo de operación inválido:
Response con error debido a la ausencia del identificador de operación:
Response con error debido a falta de permisos u operación no encontrada:
Para poder enviar los datos requeridos por la interfaz es necesario contar con datos adicionales de las cuentas dentro del sistema. Para ello se desarrollarán nuevas opciones de menú para agregar la parametría necesaria que luego será utilizada en un nuevo campo de las minutas de Adelantos y Plazos Fijos.
En el desplegable de Administrar se agregarán 3 nuevas opciones:
Sucursales: desde esta opción se podrán agregar las sucursales por banco. Se accede a través del menú "Administrar"
Gestión de Cuentas: desde aquí se podrán agregar las cuentas (Caja de Ahorro o Cuenta Corriente) que posea el cliente con su sucursal asociada. Dicha sucursal servirá para filtrar en las minutas de Adelanto y Plazo Fijo las cuentas correspondientes. Se accede a través del menú "Administrar"
Direcciones de Email por Cliente: desde esta opción se asocian los emails a los clientes que luego se informará en la sincronización. Se accede a través del menú "Administrar"
Se agregará un nuevo campo “Cuenta del Titular” en las minutas de adelantos y plazos para poder asociar las cuentas creadas anteriormente. Actualmente se filtran por banco y se asocia de forma manual al momento de dar de alta la minuta.