A continuación, describimos los endpoints que contiene cada servicio desarrollado para Mirror Strategy:
IMPORTANTE:
El servicio de Aggregation es el que se usarán para las pruebas correspondientes en ambientes de QA y ST en Genesys
Detalle de endpoints
Ejemplo body:
El detalle que se muestra es el camino deseado (happy path) de los endpoints desarrollados.
El código esperado es un 200 + un body, en estos casos
Ejemplo de body - EnableToken (POST /tokens/key):
Body - Request
{
"deviceId": "15703c1c-352a-11ee-be56-0242ac120002",
"keyId": "05616256-352a-11ee-be56-0242ac120002",
"publicKey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCR9+qdg/HrRLzgkbphCnQpN+NscOEY8vQO/M+/U4erX3ZK9IcV9MulLyY4faIBV2LeJpeUDzemFygjz/e+as6gKjbrJ7jHldl0stpfyUv6Se5iwC2wunevURLjnyk31Af9QtJr5KGsNrtyVzNYis92LGUY64tHEVNoL6DmrD/JJwIDAQAB",
"publicKeyAlgorithm": "RSA"
}
Body - Response
{
"seed": "PGh9l4M6kfEWQPSAlB2ELD9p1GTMZ/lQSzkBg2n/lhTOsZtNh2lvhoRkCCBnsGuZgjBGPIfHFye3yi/b5YUKl+2CA673Fg66WruKTU58ywk/rZYUKXOku2NI8PliZG9P9/nrgrZ75D5SxsuUv0DIj8A0WfdYu16PLFnH4MGhD6A="
}
Mirror
Account
Consulta de bloqueos
Repositorio sincronizado con Fiserv
Disminuye peticiones al Proveedor
POST → /v1/accounts/details
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Realiza la consulta de bloqueos de cuenta. | { "accountNumber": "9500501520328494829" } | { "accountData": { "accountNumber": "9500501520328494829", "customerNumber": "0995000000000035249", "blockCode1": "M", "blockCode1Date": "2023-09-06", "blockCode2": "M", "blockCode2Date": "2023-08-11" } } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. |
POST → /v1/accounts/blocks
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Realiza bloqueos/desbloqueo de cuenta. | { "blockCode": "", "blockCodeIndicator": 1, "foreignUse": 0, "functionCode": "U", "accountNumber": "9500501520328494829" } | { "functionCode": "U", "accountNumber": "9500501520328494829", "localOrganization": 950 } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. |
POST → /v1/accounts/syncs
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Sincroniza el mirror de account con la información de Fiserv. | { "accountNumber": "9500501520328494829" } | { "accountData": { "accountNumber": "9500501520328494829", "customerNumber": "0995000000000035249", "blockCode1": "M", "blockCode1Date": "2023-09-06", "blockCode2": "M", "blockCode2Date": "2023-08-11" } } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. |
Balance
Consulta de balance
Repositorio sincronizado con Fiserv
Disminuye peticiones al Proveedor
POST → /v1/balances
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Realiza la consulta de balance de cuenta. | { "accountNumber": "9500501520328494829" } | { "accountOrCardNumber": "9500501520328494829", "currentBalance": 998176209259, "availableCreditLimit": 1823760996, "frozenBalance": 26000.0 } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. |
POST → /v1/balances/syncs
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Sincroniza el mirror de balance con la información de Fiserv. | { "accountNumber": "9500501520328494829" } | { "accountOrCardNumber": "9500501520328494829", "currentBalance": 998176209259, "availableCreditLimit": 1823760996, "frozenBalance": 26000.0 } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. |
PUT → /v1/balances/transfers
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Realiza una transferencia . | { "transactionData": { "transactionAmount": 1, "actionCode": "8012", "authorizationCode": "311S3q", "effectiveDate": "2023-06-21", "description": "P2P", "paidConcept": "test", "memoPostedIndicator": "qqq", "suppressMonetaryTransaction": "qqq", "n1n2ByPass": "qqq", "identifier": "S_IN", "box": "3", "crPlaza": "10MON", "crStore": "50WHN", "keyTracking": "KEYTRACKING0123456789", "senderAccount": "senderAccount012345", "beneficiaryAccount": "beneficiaryAccount1", "counterpartInstitution": "aaaaa", "operatingInstitution": "bbbbb", "frcUprkBeneficiary": "frcUprkBenefi", "orderingFrcUprk": "orderingFrcUp", "device": "123456789-123456789-123456789-12", "ip": "198.162.200.200", "latitude": -109.699, "longitude": 23.062, "recipientName": "recipientName01234567890123456", "orderingName": "orderingName012345678901234567", "paymentSourceId": "paymentSourceId012345" }, "xTransactionId": "123", "accountNumber": "9500501545918394337" } | { "historyDate": "2023-09-08", "historyTime": "122250", "transactionData": { "transactionCode": "8012", "transactionDescription": "P2P RECIEVER", "currentBalance": "-2122495", "openToBuy": "2122546" } } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. |
PUT → /v1/balances/transfers-p2p
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Realiza una transferencia P2P. | { "from": { "accountNumber": "9500508496924050930", "actionCode": "8008", "transactionDescription": "P2P_TRANSFER_SOURCE", "description": "P2P_TRANSFER_SOURCE", "authorizationCode": "1234" }, "to": { "accountNumber": "9500502030236002994", "actionCode": "8012", "transactionDescription": "P2P_TRANSFER_TARGET", "description": "P2P_TRANSFER_SOURCE", "authorizationCode": "1234" }, "effectiveDate": "2022-01-30", "transactionAmount": 100, "device": "abcfghjfghjklghjkfghjk5678956789", "ip": "198.162.123.148", "latitude": 123.56565656, "longitude": -23.565656, "xTransactionId": "123" } | { "effectiveDate": "2022-01-30", "transactionAmount": "100", "actionOutputArea": { "actionData": [ { "authorizationCode": "1234", "accountNumber": "9500508496924050930", "transactionDescription": "P2P SENDER", "transactionCode": 8008, "currentBalance": -5988391.0, "openToBuy": 5.987391E8, "authorizationNumber": "205229" }, { "authorizationCode": "1234", "accountNumber": "9500502030236002994", "transactionDescription": "P2P RECIEVER", "transactionCode": 8012, "currentBalance": -169434.0, "openToBuy": 1.70434E7, "authorizationNumber": "923589" } ] } } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. |
PUT → /v1/balances/transfers-qr
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Realiza una transferencia QR. | { "transactionData": { "transactionAmount": 20, "actionCode": "8038", "authorizationCode": "Q1er44", "effectiveDate": "2022-08-24", "description": "QR code test - normal hours", "paidConcept": "Hello", "memoPostedIndicator": " ", "suppressMonetaryTransaction": "Y", "n1n2ByPass": "N", "identifier": 0, "box": "1", "crPlaza": "10MON", "crStore": "50WHN", "keyTracking": "Hello", "beneficiaryAccount": "Hello", "senderAccount": "Hello", "counterpartInstitution": "Hello", "operatingInstitution": "Hello", "frcUprkBeneficiary": "Hello", "orderingFrcUprk": "Hello", "device": "123456789-123456789-123456789-12", "ip": "198.162.200.200", "latitude": -109.699, "longitude": 23.062, "recipientName": "Hello", "orderingName": "Hello", "paymentSourceId": "bf0469d7-b507-44d6-af7d-d4edea6340f1" }, "xTransactionId": "123", "accountNumber": "9500508020127353147" } | { "historyDate": "2023-09-08", "historyTime": "122732", "transactionData": { "transactionCode": "8038", "transactionDescription": "CASHOUT WITH QR-CODE(FREE BAL)", "currentBalance": "-1382946", "openToBuy": "1382486" } } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. |
Card
Incorpora los endpoints de Card Mirror
Sincronización de datos con el Mirror
Expone endpoints a través de un API REST
POST → /v1/cards/embossers/details
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Obtener cuenta mediante Pantoken | { "panToken": "0004217470595215803", "cardSequence": 2147483647, "foreignUse": 0 } | { "postToAccount": "9500508261544464147", "blockCode": "Z", "cardNumber": "***************0252", "currentCardActivation": "N", "dateBlock": "2023-09-04" } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. |
PUT → /v1/cards/embossers/block
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Bloqueo de tarjetas | { "blockCode": "Z", "panToken": "0004217470885923553", "cardSequence": 1, "functionCode": "B" //B para bloquear - u Desbloquear } | {} | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. |
Gateway
Account Adapter
Permite tener la comunicación entre Spin y Fiserv para los módulos de account y balance.
GET → /Account/Details
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
SET → /Account/Block-Code
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
PUT → /account/FL-balance
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
PUT → /account/FL-transferP2P
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
PUT → /account/QRFL-balance
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
POST → /account/balance/details
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Customer Adapter
Permite tener la comunicación entre Spin y Fiserv para los módulos de customer.
Este componente se desarrolló para desacoplar los procesos core de Spin y el proveedor financiero para lograr una mayor escalabilidad.
POST → /customer
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Creación del cliente |
PUT → /customer
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Actualizar cliente |
PUT → /account/customer
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Vincular cuenta al cliente |
Card Gateway
Permite tener la comunicación entre Spin y Fiserv para los módulos de card.
POST → /v1/cards/embosser
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
POST → /v1/cards/embosser/details
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
POST → /v1/cards/embosser/block
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Aggregation
Estos son los componentes que se estarán usando para la ejecución de pruebas en el proyecto:
Account Aggregation Service
Incorpora los servicios de Account Mirror y Balance Mirror
Validación de campos mandatorios antes del envío a Fiserv
Expone endpoints a través de un API REST y gRPC
POST → /v1/accounts/details
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
POST → /v1/accounts/blocks
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
POST → /v1/accounts/syncs
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
POST → /v1/balances
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
POST → /v1/balances/syncs
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
PUT → /v1/balances/transfers
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
PUT → /v1/balances/transfers-p2p
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
PUT → /v1/balances/transfers-qr
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Customer Aggregation service
Incorpora los endpoints de Customer
Validación de campos mandatorios antes del envío a Fiserv
Expone endpoints a través de un API REST y gRPC
POST → /customers
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Registro del cliente en la el proveedor de clientes. |
PUT → /customers
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Actualización de los datos del cliente en el proveedor de clientes. |
POST → /customers/account
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Vinculación del cliente en la cuenta de Spin. |
Card Aggregation service
Incorpora los endpoints de Card
Validación de campos mandatorios antes del envío a Fiserv
Expone endpoints a través de un API REST y gRPC
POST /cards/embosser/details
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
PUT /account/prepaid
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
GET /cards/account
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
PUT /cards/activation
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
PUT /cards/embosser/block
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
0 Comments