Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Note

IMPORTANTE:

El servicio de Aggregation es el que se usarán para las pruebas correspondientes en ambientes de QA y ST:

Account + Customer en Genesys

Card en Spin

Detalle de endpoints

Table of Contents
minLevel1
maxLevel6
outlinefalse
typelist
printablefalse

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"

}

 

Panel
panelIconIdatlassian-note
panelIcon:note:
bgColor#FFBDAD

Body - Response

{

"seed": "PGh9l4M6kfEWQPSAlB2ELD9p1GTMZ/lQSzkBg2n/lhTOsZtNh2lvhoRkCCBnsGuZgjBGPIfHFye3yi/b5YUKl+2CA673Fg66WruKTU58ywk/rZYUKXOku2NI8PliZG9P9/nrgrZ75D5SxsuUv0DIj8A0WfdYu16PLFnH4MGhD6A="

}

Mirror

Account

Info

Consulta de bloqueos​

Repositorio sincronizado con Fiserv​

Disminuye peticiones al Proveedor​

GetAccountDetails

...

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

Info

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

GRPC Codes

Realiza la consulta de bloqueos de cuenta Activa

Code Block
{
  "accountNumber": "9500507060523627372"
}
Code Block
{
    "accountData": {
        "accountNumber": "9500507060523627372",
        "customerNumber": "0995000000000078206"
    }
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

Realiza la consulta de bloqueos de cuenta

.

Inactiva

Code Block
{
  "accountNumber": "
9500501520328494829
9500501403742215502"
}
Code Block
{
    "accountData": {
        "accountNumber": "
9500501520328494829
9500501403742215502",
        "customerNumber": "
0995000000000035249
0995000000000080639",

  
"blockCode1":
 
"M",
     "
blockCode1Date
blockCode1": "
2023-09-07
U",
    
"blockCode2":
 
"M",
   
"
blockCode2Date
blockCode1Date": "2023-
08
09-
11
12",
    
"accountMakerDateOfBirth":
 
"",
   
"
availableCredit
blockCode2": 
0
"X",
    
"userAmounts9":
 
0,
   
"
userAmounts10
blockCode2Date":
0,
 "
userAmounts7": 0
2023-09-13"
    }
}
2 OK

200: Solicitud exitosa.

4 Bad Request

400: Request con campos no válidos.

5 Internal Server Error: Servicios no disponibles.

SetAccountBlock

Descripción

Request

Response

HTTP Codes

Realiza bloqueos/desbloqueo de cuenta.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

Realiza la consulta de bloqueos de cuenta Expirada

Code Block
{
  "
blockCode
accountNumber": "
",
9500501566817108768"
}
Code Block
{
    "
blockCodeIndicator
accountData": {
1,
    
"foreignUse":
 
0,
   "
functionCode
accountNumber": "
U
9500501566817108768",
   
"accountNumber": "9500501520328494829" } Code Block{ "functionCode
     "customerNumber": "
U
0995000000000040921"
,

 
"accountNumber":
 
"9500501520328494829",
 
"localOrganization":
 
950

Descripción

Request

Response

HTTP Codes

Sincroniza el mirror de account con la información de Fiserv.
}
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

SynchronizeMirrorAccount

...

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

Realiza la consulta de bloqueos de cuenta Bloqueada

Code Block
{
  "accountNumber": "
9500501520328494829
9500509377699205330"
}
Code Block
{
    "accountData": {
        "accountNumber": "
9500501520328494829
9500509377699205330",
        "customerNumber": "
0995000000000035249
0995000000000080636",

        "blockCode1": "
M
Z",

        "blockCode1Date": "2023-09-
06
12"
, "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

Info

Consulta de balance​

Repositorio sincronizado con Fiserv​

Disminuye peticiones al Proveedor

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

POST → /v1/accounts/blocks

Descripción

Request

Response

HTTP Codes

Realiza la consulta de balance de cuenta.

GRPC Codes

Realiza bloqueos/desbloqueo de cuenta - Bloquear (foreignUse= 0)

Code Block
{
  "
accountNumber
blockCode": "
9500501520328494829
M",
 
} Code Block{
 
"
accountOrCardNumber
blockCodeIndicator": 
"9500501520328494829"
0,
  "
currentBalance
foreignUse": 
998176209259, "availableCreditLimit": 1823760996, "frozenBalance": 26000.0

Descripción

Request

Response

HTTP Codes

Sincroniza el mirror de balance con la información de Fiserv.
0,
  "functionCode": "B",
  "accountNumber": "9500501520328494829"
}

Code Block
{
    "functionCode": "B",
    "accountNumber": "9500501520328494829",
    "blockCode1Local": "M",
    "localOrganization": 950
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

SynchronizeMirrorBalance

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

Realiza bloqueos/desbloqueo de cuenta - Bloquear (foreignUse= 1)

Code Block
{
  "blockCode": "U",
  "blockCodeIndicator": 0,
  "foreignUse": 1,
  "functionCode": "B",
  "accountNumber": "9500501520328494829"
}
Code Block
{
"accountOrCardNumber
    "functionCode": "
9500501520328494829
B",
"currentBalance
    "accountNumber": 
998176209259
"9500501520328494829",
  
"availableCreditLimit":
 
1823760996,
 
"
frozenBalance
localOrganization": 
26000.0

Descripción

Request

Response

HTTP Codes

Realiza una transferencia .
950
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

TransferBalance

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

Realiza bloqueos/desbloqueo de cuenta - Desbloquear

Code Block
{
  "
transactionData
blockCode":
{
 
"
transactionAmount
"
: 1
,
  
"
actionCode
blockCodeIndicator": 
"8012"
2,
  
"
authorizationCode
foreignUse": 
"311S3q"
0,

  "
effectiveDate
functionCode": "
2023-06-21
U",
  
"
description
accountNumber": "
P2P",
9500501520328494829"
}

Code Block
{
    "
paidConcept
functionCode": "
test
U",
    "
memoPostedIndicator
accountNumber": "
qqq
9500501520328494829",
    "
suppressMonetaryTransaction
blockCode1Local": "
qqq
M",
    "
n1n2ByPass
localOrganization": 
"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" }
Code Block
{
	"historyDate": "2023-09-08",
	"historyTime": "122250",
	"transactionData": {
		"transactionCode": "8012",
		"transactionDescription": "P2P RECIEVER",
		"currentBalance": "-2122495",
		"openToBuy": "2122546"
	}
}

200: Solicitud exitosa.

400: Request con campos
950
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

Para éste endpoint se requieren los siguientes valores:

  • blockCode: Código de bloqueo proporcionado por Spin.

  • blockCodeIndicator: Indica el código de bloqueo a usar: 0-1 primer código de bloqueo, 2 segundo código de bloqueo.

  • foreignUse: 0

  • functionCode: indica si se va bloquear (“B“) o desbloquear (“U“)

  • accountNumber: código de cuenta.

...

POST → /v1/accounts/syncs

Descripción

Request

Response

HTTP Codes

GRPC Codes

Sincroniza el mirror de account con la información de Fiserv - Número de cuenta Activa

Code Block
{
  "accountNumber": "9500503048928881284"
}
Code Block
{
    "accountData": {
        "accountNumber": "9500503048928881284",
        "customerNumber": "0995000000000076294",
        "accountMakerDateOfBirth": "1994-05-06",
        "availableCredit": 10000.0,
        "userAmounts9": -50000.0,
        "userAmounts10": -40000.0
    }
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

TransferPeerToPeer

Descripción

Request

Response

HTTP Codes

Realiza una transferencia P2P.

POST → /v1/balances

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

Sincroniza el mirror de account con la información de Fiserv - Número de cuenta Inactiva

Code Block
{
  "
from
accountNumber": "9500501403742215502"
}
Code Block
{
    "
accountNumber
accountData": 
"9500508496924050930",
{
        "
actionCode
accountNumber": "
8008
9500501403742215502",
        "
transactionDescription
customerNumber": "
P2P_TRANSFER_SOURCE
0995000000000080639",
        "
description
blockCode1": "
P2P_TRANSFER_SOURCE
U",
        "
authorizationCode
blockCode1Date": "
1234" }
2023-09-12",
  
"to":
 
{
     "
accountNumber
blockCode2": "
9500502030236002994
X",

  
"actionCode":
 
"8012",
     "
transactionDescription
blockCode2Date": "
P2P_TRANSFER_TARGET
2023-09-13",
    
"description":
 
"P2P_TRANSFER_SOURCE",
   "
authorizationCode
accountMakerDateOfBirth": "
1234" }, "effectiveDate": "2022-01-30",
1994-05-06"
    
"transactionAmount": 100, "device": "abcfghjfghjklghjkfghjk5678956789", "ip": "198.162.123.148", "latitude": 123.56565656,
}
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.POST → /v1/balances

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

Sincroniza el mirror de account con la información de Fiserv - Número de cuenta Expirada

Code Block
{
  "accountNumber": "9500508152383529456"
}
Code Block
{
    "
longitude
accountData":
-23.565656,
 {
        "
xTransactionId
accountNumber": "
123
9500508152383529456"
} Code Block{ "effectiveDate
,
        "customerNumber": "
2022-01-30
0995000000000040667",
"transactionAmount

        "accountMakerDateOfBirth": "
100
2000-01-01",
"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" } ]

        "availableCredit": 10000.0,
        "userAmounts9": -170000.0,
        "userAmounts10": -130000.0,
        "userAmounts7": -10000.0
    }
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

FrozenBalanceTransfer

Descripción

Request

Response

HTTP Codes

Realiza una transferencia QR.

POST → /v1/balances

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

Sincroniza el mirror de account con la información de Fiserv - Número de cuenta Bloqueada

Code Block
{
  "
transactionData
accountNumber": "9500508176491773011"
}
Code Block
{
    "
transactionAmount
accountData":
20,
 {
        "
actionCode
accountNumber": "
8038
9500508176491773011",
        "
authorizationCode
customerNumber": "
Q1er44
0995000000000080637",

  
"effectiveDate":
 
"2022-08-24",
     "
description
blockCode1": "
QR code test - normal hours
Z",

  
"paidConcept":
 
"Hello",
     "
memoPostedIndicator
blockCode1Date": "
2023-09-12",
    
"suppressMonetaryTransaction":
 
"Y",
   
"
n1n2ByPass
blockCode2Date": "
N
2023-09-18",
    
"identifier":
 
0,
   
"
box
accountMakerDateOfBirth": "
1", "crPlaza": "10MON",
1994-05-06"
    
"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
}
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.POST → /v1/balances

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

POST → /v1/balances

Descripción

Request

Response

HTTP Codes

GRPC Codes

Realiza la consulta de balance de cuenta.

Code Block
{
  "accountNumber": "9500501520328494829"
}
Code Block
{
	"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.

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

POST → /v1/balances/syncs

Descripción

Request

Response

HTTP Codes

GRPC Codes

Sincroniza el mirror de balance con la información de Fiserv - Número de cuenta Activa

Code Block
{
  "accountNumber": "9500501520328494829"
}
Code Block
{
    "accountOrCardNumber": "9500503048928881284",
    "
longitude
currentBalance": 
23
-10000.
062
0,
    "
recipientName
availableCreditLimit": 
"Hello",
10000.0
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

Sincroniza el mirror de balance con la información de Fiserv - Número de cuenta Inactiva

Code Block
{
  "
orderingName
accountNumber": "
Hello",
9500501403742215502"
}
Code Block
{
    "
paymentSourceId
accountOrCardNumber": "
bf0469d7-b507-44d6-af7d-d4edea6340f1" }, "xTransactionId": "123",
9500501403742215502"
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

Sincroniza el mirror de balance con la información de Fiserv - Número de cuenta Expirada

Code Block
{
  "accountNumber": "
9500508020127353147
9500508152383529456"
}
Code Block
{
"historyDate
    "accountOrCardNumber": "
2023-09-08
9500508152383529456",
"historyTime": "122732", "transactionData": { "transactionCode": "8038", "transactionDescription": "CASHOUT WITH QR-CODE(FREE BAL)", "currentBalance": "-1382946", "openToBuy": "1382486" } }

Descripción

Request

Response

HTTP Codes

Obtener cuenta mediante Pantoken
    "currentBalance": -10000.0,
    "availableCreditLimit": 10000.0
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

Card

Info

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

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

Sincroniza el mirror de balance con la información de Fiserv - Número de cuenta Bloqueada

Code Block
{
  "
panToken
accountNumber": "
0004217470595215803
9500508176491773011"
,

"cardSequence": 2147483647, "foreignUse": 0
}
Code Block
{
"postToAccount":
 
"9500508261544464147",
 
"blockCode":
 
"Z",
 
"
cardNumber
accountOrCardNumber": "
***************0252", "currentCardActivation": "N", "dateBlock": "2023-09-04" }
9500508176491773011"
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

PUT → /v1/

...

balances/

...

transfers

Descripción

Request

Response

HTTP Codes

GRPC Codes

Bloqueo de tarjetas

Realiza una transferencia - Número de cuenta Activa

Code Block
{
  "
blockCode
transactionData": 
"Z",
{
    "transactionAmount": 1000,
    "
panToken
actionCode": "
0004217470885923553
8000",
    "
cardSequence
authorizationCode": 
1
"311S3q",
    "
functionCode
effectiveDate": "
B
2023-06-21"
//B para bloquear - u Desbloquear }
Code Block
{}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

Gateway

Account Adapter

Info

Permite tener la comunicación entre Spin y Fiserv para los módulos de account y balance.

GetAccountDetails

...

Descripción

...

Request

...

Response

...

HTTP Codes

SetAccountBlock

...

Descripción

...

Request

...

Response

...

HTTP Codes

TransferBalance

...

Descripción

...

Request

...

Response

...

HTTP Codes

TransferPeerToPeer

...

Descripción

...

Request

...

Response

...

HTTP Codes

FrozenBalanceTransfer

...

Descripción

...

Request

...

Response

...

HTTP Codes

GetAccountBalance

...

Descripción

...

Request

...

Response

...

HTTP Codes

Customer Adapter

Info

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

Info

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

Obtener cuenta mediante Pantoken

Code Block
{
  "panToken": "0004217470595215803",
  "cardSequence": 2147483647,
  "foreignUse": 0
}
Code Block
{
	"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.

POST → /v1/cards/embosser/block

Descripción

Request

Response

HTTP Codes

Bloqueo de tarjetas

Code Block
{
  "blockCode": "Z",
  "panToken": "0004217470885923553",
  "cardSequence": 1,
  "functionCode": "B" //B para bloquear - u Desbloquear
}
Code Block
{}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

Aggregation

Estos son los componentes que se estarán usando para la ejecución de pruebas en el proyecto:

Account Aggregation Service

Info

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

Realiza la consulta de bloqueos de cuenta.

Code Block
{
  "accountNumber": "9500501520328494829"
}
Code Block
{
	"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.

Code Block
{
  "blockCode": "",
  "blockCodeIndicator": 1,
  "foreignUse": 0,
  "functionCode": "U",
  "accountNumber": "9500501520328494829"
}
Code Block
{
	"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.

Code Block
{
  "accountNumber": "9500501520328494829"
}
Code Block
{
	"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/balances

POST → /v1/balances

Descripción

Request

Response

HTTP Codes

Realiza la consulta de balance de cuenta.

Code Block
{
  "accountNumber": "9500501520328494829"
}
Code Block
{
	"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
,
    "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": "9500503048928881284", 
  "operationType": "D"
 }
Code Block
{
    "historyDate": "2023-09-18",
    "historyTime": "164440",
    "transactionData": {
        "transactionCode": "8000",
        "currentBalance": "-10000",
        "openToBuy": "13000"
    }
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

Realiza una transferencia - Número de cuenta Inactiva

Code Block
{
  "transactionData": {
    "transactionAmount": 1000,
    "actionCode": "8000",
    "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": "9500501403742215502", 
  "operationType": "D"
 }
Code Block
{
    "historyDate": "2023-09-18",
    "historyTime": "164651",
    "transactionData": {
        "transactionCode": "8000",
        "openToBuy": "2000"
    }
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

Realiza una transferencia - Número de cuenta Expirada

Code Block
{
  "transactionData": {
    "transactionAmount": 1000,
    "actionCode": "8000",
    "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": "9500508152383529456", 
  "operationType": "D"
 }
Code Block
{
    "historyDate": "2023-09-18",
    "historyTime": "164734",
    "transactionData": {
        "transactionCode": "8000",
        "currentBalance": "-10000",
        "openToBuy": "12000"
    }
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

Realiza una transferencia - Número de cuenta Bloqueada

Code Block
{
  "transactionData": {
    "transactionAmount": 1000,
    "actionCode": "8000",
    "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": "9500508176491773011", 
  "operationType": "D"
 }
Code Block
{
    "historyDate": "2023-09-18",
    "historyTime": "164818",
    "transactionData": {
        "transactionCode": "8000",
        "openToBuy": "2000"
    }
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

PUT → /v1/balances/transfers-p2p

Descripción

Request

Response

HTTP Codes

GRPC Codes

Realiza una transferencia P2P.

Code Block
{
  "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"
}
Code Block
{
	"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.

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

PUT → /v1/balances/transfers-qr

Descripción

Request

Response

HTTP Codes

GRPC Codes

Realiza una transferencia QR.

Code Block
{
  "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"
}
Code Block
{
	"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.

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

...

Customer Aggregation service

Info

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

GRPC Codes

Registro del cliente en la el proveedor de clientes.

Code Block
{
    "logo": "60",
    "address": "Ciruelas",
    "houseNumber": "12345",
    "externalNumber": "8007",
    "colony": "Lomas",
    "city": "Lomas de Alvarez",
    "state": "COL",
    "postalCode": "99980",
    "dateOfBirth": "2000-08-06",
    "stateOfBirth": "CDMX",
    "email": "lmedina@palo-it.com",
    "firstName": "Judith",
    "lastName": "Medina",
    "maternalLastName": "Ruiz",
    "mobilePhoneNumber": "5521163588",
    "identificationNumber": "4152554487415113698",
    "ine": "1234117890099",
    "occupation": "Tester",
    "genderCode": "1",
    "user4":"1",
    "identificationNumberFlag": "2"
}
Code Block
{
    "customerNumber": "0995000000000080589"
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

PUT → /customers

Descripción

Request

Response

HTTP Codes

GRPC Codes

Actualización de los datos del cliente en el proveedor de clientes.

Code Block
{
    "email": "lmedina@palo-it.com",
    "numberType": 1,
    "customerNumber": "0995000000000077863",
    "address": "Ciruelas",
    "dateOfBirth": "1999-02-06",
    "city": "Villa de Alvarez",
    "countryCode": "MEX",
    "county": "CDMX",
    "colony": "ADOLFO LOPEZ MATEOS",
    "externalNumber": "1007",
    "firstName": "Sandra",
    "genderCode": 2,
    "houseNumber": "123",
    "ine": "1234117890099",
    "lastName": "Velasco",
    "maritalStatus": 0,
    "maternalLastName": "Medina",
    "middleName": "Rosa",
    "mobilePhoneIndicator": 1,
    "mobilePhoneNumber": "31211635899",
    "occupation": "NURSE",
    "ownOrRentResidenceFlag": 0,
    "postalCode": 54070,
    "stateOfBirth": "DF"
}
Code Block
{
    "outputArea": {
        "customerNumber": "0995000000000077863",
        "accountNumber": "0995000000000077863",
        "responseCode": "",
        "level": "",
        "transactionAmount": 0,
        "countryLimit": {
            "dailyLimitLoad": 0,
            "monthlyLimitLoad": 0,
            "dailyLimitCash": 0,
            "monthlyLimitCash": 0,
            "limitForDepositTransactions": 0
        },
        "accountLimit": {
            "accountDailyAmountLoad": 0,
            "accountMonthlyAmountLoad": 0,
            "accountDailyAmountCash": 0,
            "accountMonthlyAmountCash": 0
        }
    }
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

POST → /customers/account

Descripción

Request

Response

HTTP Codes

GRPC Codes

Vinculación del cliente en la cuenta de Spin.

Code Block
{
    "accountNumber": "0004217470138987703",
    "customerNumber": "0995000000000045698",
    "qualification": "1",
    "customerTypeIndicator": 0,
    "foreignUseIndicator": 0,
    "alternateCustomer": {
        "expirationDate": "2023/12/30"
    }
}
Code Block
{
    "customerNumber": "0995000000000045697",
    "accountNumber": "1650"
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

...

Card Aggregation service

Info

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

Obtener cuenta mediante Pantoken

Code Block
{
  "panToken": "0004217470595215803",
  "cardSequence": 2147483647,
  "foreignUse": 0
}
Code Block
{
	"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 /cards/account

Descripción

Request

Response

HTTP Codes

Vinculación de tarjetas a cuenta

Code Block
 {
  "customerOrAccountNumber": "1234567890123456800",
  "cardNumber": "000123456ID5IXX1234",
  "cardholderType": 1
}

Code Block
{
  "customerOrAccountNumber": "1234567890123456800",
  "cardNumber": "000123456ID5IXX1234",
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

POST /cards/account

Descripción

Request

Response

HTTP Codes

Recuperación del numero de cuenta

Code Block
{
  "cardNumber": "000123456ID5IXX1234",
}

Code Block
{
    "accountNumber": "0004217470041850252"
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

Info

El cardNumber debe tener tres ceros a la izquierda para completar el tamaño de 19 dígitos solicitado por el operador bancario.

Image Added

PUT /cards/activation​ [Equipo de Spin]

Descripción

Request

Response

HTTP Codes

Activación de tarjetas

Code Block
{
  "organizationNumber": 999,
  "cardNumber": "000123456ID5IXX1234",
  "serviceType": "A",
  "userData": "string"
}

Code Block
{
  "organizationNumber": 999,
  "logo": 1,
  "cardNumber": "000123456ID5IXX1234",
  "serviceType": "A",
  "numberCardsActivated": 1,
  "foreignOrg": 1,
  "numberForeignCardsActivated": 0
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

PUT /cards/embosser/block

Descripción

Request

Response

HTTP Codes

Bloqueo de tarjetas

Code Block
{
  "blockCode": "Z",
  "panToken": "0004217470885923553",
  "cardSequence": 1,
  "functionCode": "B" //B para bloquear - u Desbloquear
}
Code Block
{}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

...

Mirror

Account

Info

Consulta de bloqueos​

Repositorio sincronizado con Fiserv​

Disminuye peticiones al Proveedor​

GetAccountDetails

Descripción

Request

Response

GRPC Codes

Realiza la consulta de bloqueos de cuenta.

Code Block
{
  "accountNumber": "9500501520328494829"
}
Code Block
{
  "accountData": {
    "accountNumber": "9500501520328494829",
    "customerNumber": "0995000000000035249",
    "blockCode1": "M",
    "blockCode1Date": "2023-09-07",
    "blockCode2": "M",
    "blockCode2Date": "2023-08-11",
    "accountMakerDateOfBirth": "",
    "availableCredit": 0,
    "userAmounts9": 0,
    "userAmounts10": 0,
    "userAmounts7": 0
  }
}

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

SetAccountBlock

Descripción

Request

Response

GRPC Codes

Realiza bloqueos/desbloqueo de cuenta.

Code Block
{
  "blockCode": "",
  "blockCodeIndicator": 1,
  "foreignUse": 0,
  "functionCode": "U",
  "accountNumber": "9500501520328494829"
}
Code Block
{
  "functionCode": "B",
  "accountNumber": "9500501520328494829",
  "blockCode1Local": "M",
  "localOrganization": 950
}

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

SynchronizeMirrorAccount

Descripción

Request

Response

GRPC Codes

Sincroniza el mirror de account con la información de Fiserv.

Code Block
{
  "accountNumber": "9500501520328494829"
}
Code Block
{
  "accountData": {
    "accountNumber": "9500501520328494829",
    "customerNumber": "0995000000000035249",
    "blockCode1": "M",
    "blockCode1Date": "2023-09-07",
    "blockCode2": "M",
    "blockCode2Date": "2023-08-11",
    "accountMakerDateOfBirth": "",
    "availableCredit": 0,
    "userAmounts9": 0,
    "userAmounts10": 0,
    "userAmounts7": 0
  }
}

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

...

Balance

Info

Consulta de balance​

Repositorio sincronizado con Fiserv​

Disminuye peticiones al Proveedor

GetAccountBalance

Descripción

Request

Response

GRPC Codes

Realiza la consulta de balance de cuenta.

Code Block
{
  "accountNumber": "9500501520328494829"
}
Code Block
{
  "accountOrCardNumber": "9500501520328494829",
  "currentBalance": 998176210159,
  "availableCreditLimit": 32237425576994724,
  "frozenBalance": 26000
}

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

SynchronizeMirrorBalance

Descripción

Request

Response

GRPC Codes

Sincroniza el mirror de balance con la información de Fiserv.

Code Block
{
  "accountNumber": "9500501520328494829"
}
Code Block
{
  "accountOrCardNumber": "9500501520328494829",
  "currentBalance": 998176210159,
  "availableCreditLimit": 32237425576994724,
  "frozenBalance": 26000
}

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

TransferBalance

Descripción

Request

Response

GRPC Codes

Realiza una transferencia .

Code Block
{
  "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",
  "operationType": "W"
  },
  "xTransactionId": "123",
  "accountNumber": "9500501545918394337"
}
Code Block
{
  "historyDate": "2023-09-12",
  "historyTime": "111208",
  "transactionData": {
    "transactionCode": "8012",
    "transactionDescription": "P2P RECIEVER",
    "currentBalance": "-2122495",
    "openToBuy": "2122548"
  }
}

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

TransferPeerToPeer

Descripción

Request

Response

GRPC Codes

Realiza una transferencia P2P.

Code Block
{
  "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"
}
Code Block
{
  "effectiveDate": "2022-01-30",
  "transactionAmount": "100",
  "actionOutputArea": {
    "actionData": [
      {
        "authorizationCode": "1234",
        "accountNumber": "9500508496924050930",
        "transactionDescription": "P2P SENDER",
        "feeAmount": "0",
        "transactionCode": 8008,
        "currentBalance": -5988391,
        "creditLimit": 0,
        "openToBuy": 598649100,
        "authorizationNumber": "507925"
      },
      {
        "authorizationCode": "1234",
        "accountNumber": "9500502030236002994",
        "transactionDescription": "P2P RECIEVER",
        "feeAmount": "0",
        "transactionCode": 8012,
        "currentBalance": -169434,
        "creditLimit": 0,
        "openToBuy": 17133400,
        "authorizationNumber": "332272"
      }
    ]
  }
}

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

FrozenBalanceTransfer

Descripción

Request

Response

GRPC Codes

Realiza una transferencia QR.

Code Block
{
  "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"
}
Code Block
{
  "historyDate": "2023-09-12",
  "historyTime": "111311",
  "transactionData": {
    "transactionCode": "8038",
    "transactionDescription": "CASHOUT WITH QR-CODE(FREE BAL)",
    "currentBalance": "-1382946",
    "openToBuy": "1382326"
  }
}

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

...

Card

Info

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

Code Block
{
  "panToken": "0004217470595215803",
  "cardSequence": 2147483647,
  "foreignUse": 0
}
Code Block
{
	"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

Code Block
{
  "blockCode": "Z",
  "panToken": "0004217470885923553",
  "cardSequence": 1,
  "functionCode": "B" //B para bloquear - u Desbloquear
}
Code Block
{}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

...

Gateway

Account Adapter

Info

Permite tener la comunicación entre Spin y Fiserv para los módulos de account y balance.

GetAccountDetails

Descripción

Request

Response

GRPC Codes

Realiza la consulta de bloqueos de cuenta.

Code Block
{
  "accountNumber": "9500501520328494829"
}
Code Block
{
  "accountData": {
    "accountNumber": "9500501520328494829",
    "customerNumber": "0995000000000035249",
    "blockCode1": "M",
    "blockCode1Date": "2023-09-07",
    "blockCode2": "M",
    "blockCode2Date": "2023-08-11",
    "accountMakerDateOfBirth": "",
    "availableCredit": 0,
    "userAmounts9": 0,
    "userAmounts10": 0,
    "userAmounts7": 0
  }
}

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

SetAccountBlock

Descripción

Request

Response

GRPC Codes

Realiza bloqueos/desbloqueo de cuenta.

Code Block
{
  "blockCode": "",
  "blockCodeIndicator": 1,
  "foreignUse": 0,
  "functionCode": "U",
  "accountNumber": "9500501520328494829"
}
Code Block
{
  "functionCode": "B",
  "accountNumber": "9500501520328494829",
  "blockCode1Local": "M",
  "localOrganization": 950
}

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

TransferBalance

Descripción

Request

Response

GRPC Codes

Realiza una transferencia .

Code Block
{
  "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"
}
Code Block
{
  "historyDate": "2023-09-12",
  "historyTime": "111208",
  "transactionData": {
    "transactionCode": "8012",
    "transactionDescription": "P2P RECIEVER",
    "currentBalance": "-2122495",
    "openToBuy": "2122548"
  }
}

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

TransferPeerToPeer

Descripción

Request

Response

GRPC Codes

Realiza una transferencia P2P.

Code Block
{
  "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"
}
Code Block
{
  "effectiveDate": "2022-01-30",
  "transactionAmount": "100",
  "actionOutputArea": {
    "actionData": [
      {
        "authorizationCode": "1234",
        "accountNumber": "9500508496924050930",
        "transactionDescription": "P2P SENDER",
        "feeAmount": "0",
        "transactionCode": 8008,
        "currentBalance": -5988391,
        "creditLimit": 0,
        "openToBuy": 598649100,
        "authorizationNumber": "507925"
      },
      {
        "authorizationCode": "1234",
        "accountNumber": "9500502030236002994",
        "transactionDescription": "P2P RECIEVER",
        "feeAmount": "0",
        "transactionCode": 8012,
        "currentBalance": -169434,
        "creditLimit": 0,
        "openToBuy": 17133400,
        "authorizationNumber": "332272"
      }
    ]
  }
}

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

FrozenBalanceTransfer

Descripción

Request

Response

GRPC Codes

Realiza una transferencia QR.

Code Block
{
  "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"
}
Code Block
{
  "historyDate": "2023-09-12",
  "historyTime": "111311",
  "transactionData": {
    "transactionCode": "8038",
    "transactionDescription": "CASHOUT WITH QR-CODE(FREE BAL)",
    "currentBalance": "-1382946",
    "openToBuy": "1382326"
  }
}

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

GetAccountBalance

Descripción

Request

Response

GRPC Codes

Realiza la consulta de balance de cuenta.

Code Block
{
  "accountNumber": "9500501520328494829"
}
Code Block
{
  
"accountOrCardNumber": "9500501520328494829",
  
"currentBalance": 
998176209259
998176210159,
  "availableCreditLimit": 
1823760996
32237425576994724,
  "frozenBalance": 26000
.0

}
200

0 OK: Solicitud exitosa.

400

3 Bad Request: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

...

13 Internal Server Error: Servicios no disponibles.

...

Customer Adapter

Info

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.​

CreateCustomer

Descripción

Request

Response

HTTP

GRPC Codes

Realiza una transferencia .

Creación del cliente

Code Block
{ "transactionData":
{
    "
transactionAmount
logo":
1,
 
"actionCode": "8012
"60",
    "
authorizationCode
address": "
311S3q
Ciruelas",
    "
effectiveDate
houseNumber": "
2023-06-21
12345",
    "
description
externalNumber": "
P2P
8007",
    "
paidConcept
colony": "
test
Lomas",
    "
memoPostedIndicator
city": "
qqq",
Lomas de 
"suppressMonetaryTransaction": "qqq"
Alvarez",
    "
n1n2ByPass
state": "
qqq
COL",
    "
identifier
postalCode": "
S_IN
99980",
    "
box
dateOfBirth": "
3
2000-08-06",
    "
crPlaza
stateOfBirth": "
10MON
CDMX",
    "
crStore
email": "
50WHN
lmedina@palo-it.com",
    "
keyTracking
firstName": "
KEYTRACKING0123456789
Judith",
    "
senderAccount
lastName": "
senderAccount012345
Medina",
    "
beneficiaryAccount
maternalLastName": "
beneficiaryAccount1
Ruiz",
    "
counterpartInstitution
mobilePhoneNumber": "
aaaaa
5521163588",
    "
operatingInstitution
identificationNumber": "
bbbbb
4152554487415113698",
    "
frcUprkBeneficiary
ine": "
frcUprkBenefi
1234117890099",
    "
orderingFrcUprk
occupation": "
orderingFrcUp
Tester",
    "
device
genderCode": "
123456789-123456789-123456789-12
1",
    "
ip
user4":
"198.162.200.200
"1",
    "
latitude
identificationNumberFlag": 
-109.699,
"2"
}
Code Block
{
    "
longitude
customerNumber":
23.062,
 "0995000000000080589"
}

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

UpdateCustomer

Descripción

Request

Response

GRPC Codes

Actualizar cliente

Code Block
{
    "
recipientName
email": "
recipientName01234567890123456
lmedina@palo-it.com",
    "
orderingName
numberType": 
"orderingName012345678901234567"
1,
    "
paymentSourceId
customerNumber": "
paymentSourceId012345
0995000000000077863",
  
},
  
"
xTransactionId
address": "
123
Ciruelas",
  
"accountNumber":
 
"9500501545918394337"
 
} Code Block{ "historyDate
"dateOfBirth": "
2023
1999-
09
02-
08
06",
"historyTime
    "city": "
122250
Villa de Alvarez",
"transactionData": { "transactionCode
    "countryCode": "
8012
MEX",
 
"transactionDescription":
 
"P2P
 
RECIEVER",
 
"
currentBalance
county": "
-2122495
CDMX",
"openToBuy
    "colony": "
2122546
ADOLFO LOPEZ MATEOS",
}
 
}

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.

Code Block{
   "
from
externalNumber": 
{
"1007",
    "
accountNumber
firstName": "
9500508496924050930
Sandra",
    "
actionCode
genderCode": 
"8008"
2,
    "
transactionDescription
houseNumber": "
P2P_TRANSFER_SOURCE
123",
    "
description
ine": "
P2P_TRANSFER_SOURCE
1234117890099",
    "
authorizationCode
lastName": "
1234
Velasco"
,
 
},
   "
to
maritalStatus": 
{
0,
    "
accountNumber
maternalLastName": "
9500502030236002994
Medina",
    "
actionCode
middleName": "
8012
Rosa",
    "
transactionDescription
mobilePhoneIndicator": 
"P2P_TRANSFER_TARGET"
1,
    "
description
mobilePhoneNumber": "
P2P_TRANSFER_SOURCE
31211635899",
    "
authorizationCode
occupation": "
1234
NURSE"
}
,
    "
effectiveDate
ownOrRentResidenceFlag": 
"2022-01-30"
0,
    "
transactionAmount
postalCode": 
100
54070,
    "
device
stateOfBirth": "
abcfghjfghjklghjkfghjk5678956789",
DF"
}
Code Block
{
    "
ip
outputArea": 
"198.162.123.148",
{
        "
latitude
customerNumber": 
123.56565656,
"0995000000000077863",
        "
longitude
accountNumber": 
-23.565656,
"0995000000000077863",
        "
xTransactionId
responseCode": "
123
"
} Code Block{ "effectiveDate
,
        "level": "
2022-01-30
",
        "transactionAmount": 
"100"
0,
"actionOutputArea
        "countryLimit": {
"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.

400500:
            "dailyLimitLoad": 0,
            "monthlyLimitLoad": 0,
            "dailyLimitCash": 0,
            "monthlyLimitCash": 0,
            "limitForDepositTransactions": 0
        },
        "accountLimit": {
            "accountDailyAmountLoad": 0,
            "accountMonthlyAmountLoad": 0,
            "accountDailyAmountCash": 0,
            "accountMonthlyAmountCash": 0
        }
    }
}

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

401: Apy Key no válida.

13 Internal Server Error: Servicios no disponibles.

...

LinkAccountToCustomer

Descripción

Request

Response

HTTP

GRPC Codes

Realiza una transferencia QR.

Vincular cuenta al cliente

Code Block
{
  "
transactionData
accountNumber": "9500505675946730065",
  "alternateCustomer": 
  {
    "
transactionAmount
expirationDate":
20,
 "2023-08-22"
  },
  "customerNumber": "0995000000000075954",
  "
actionCode
qualification": 
"8038",
"2",
  "customerTypeIndicator": 0,
  "
authorizationCode
foreignUseIndicator":
"Q1er44",
 0
}
Code Block
{
    "
effectiveDate
customerNumber": "
2022-08-24
0995000000000045697",
    "
description
accountNumber": "
QR code test - normal hours", "paidConcept": "Hello",
1650"
}

0 OK: Solicitud exitosa.

3 Bad Request: Request con campos no válidos.

13 Internal Server Error: Servicios no disponibles.

...

Card Gateway

Info

Permite tener la comunicación entre Spin y Fiserv para los módulos de card.​

POST → /cards/account

Descripción

Request

Response

HTTP Codes

Vincular una tarjeta con un número de cuenta

Code Block
{
  "cardNumber": "0004217470072001676"
}
Code Block
{
    "
memoPostedIndicator
accountNumber": "
0004217470072001676"
, "suppressMonetaryTransaction": "Y", "n1n2ByPass": "N", "identifier": 0, "box": "1",

}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

PUT → /cards/account

Descripción

Request

Response

HTTP Codes

Desvincular una tarjeta de un número de cuenta

Code Block
{
  "customerOrAccountNumber": "9500507060523627372",
  "cardNumber": "0004217470969640887",
  "cardholderType": 1
}
Code Block
{
    "
crPlaza
cardNumber": "
10MON
***************4568",
    "
crStore
customerOrAccountNumber": "
50WHN
9500507060523627372"
,

}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

POST → /v1/cards/embosser/details

Descripción

Request

Response

HTTP Codes

Obtener cuenta mediante Pantoken Activo

Code Block
{
  
"
keyTracking
panToken": "
Hello
0004217470595215803",

  "
beneficiaryAccount
cardSequence": 
"Hello"
2147483647,
  "foreignUse": 0
}
Code Block
{
	"
senderAccount
postToAccount": "
Hello
9500508261544464147",
"counterpartInstitution
	"blockCode": "
Hello
Z",
"operatingInstitution
	"cardNumber": "
Hello
***************0252",
"frcUprkBeneficiary
	"currentCardActivation": "
Hello
N",
"orderingFrcUprk": "Hello",
	"dateBlock": "2023-09-04"
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

Obtener cuenta mediante Pantoken Inactivo

Code Block
{
  "
device
panToken": "
123456789-123456789-123456789-12
0004217470595215803",
  
"
ip
cardSequence": 
"198.162.200.200"
1,
  
"
latitude
foreignUse": 
-109.699, "longitude": 23.062,
1
}
Code Block
{
    
"
recipientName
postToAccount": "
Hello
9500507060523627372",
    "
orderingName
blockCode": "
Hello
Z",
    "
paymentSourceId
cardNumber": "
bf0469d7-b507-44d6-af7d-d4edea6340f1" },
***************0252",
    "
xTransactionId
currentCardActivation": "
123
N",
    "
accountNumber
dateBlock": "
9500508020127353147
2023-09-04"
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

Obtener cuenta mediante Pantoken Expirado

Code Block
{
  "
historyDate
panToken": "
2023-09-08
0004217470200073271",
  
"
historyTime
cardSequence": 
"122732"
1,
"transactionData":
 
{
 
"
transactionCode
foreignUse": 
"8038", "transactionDescription": "CASHOUT WITH QR-CODE(FREE BAL)", "currentBalance
1
}
Code Block
{
    "postToAccount": "
-1382946
9500507060523627372",
    
"
openToBuy": "1382486" } }

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

Customer Aggregation service

Info

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

Info

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​

...

cardNumber": "***************8578",
    "currentCardActivation": "N"
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

POST → /v1/cards/embosser/block

Descripción

Request

Response

HTTP Codes

Obtener cuenta mediante Pantoken

Bloqueo de tarjetas - Bloqueo

Code Block
{
  "
panToken
blockCode": "
0004217470595215803
Z",
  "
cardSequence
panToken": 
2147483647, "foreignUse": 0 }
Code Block
{
	"postToAccount": "9500508261544464147",
	"blockCode": "Z",
	"cardNumber": "***************0252",
	"currentCardActivation": "N",
	"dateBlock": "2023-09-04"
}

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

"0004217470885923553",
  "cardSequence": 1,
  "functionCode": "B" //B para bloquear - u Desbloquear
}
Code Block
{}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

PUT /account/prepaid

...

Descripción

...

Request

...

Response

...

HTTP Codes

Bloqueo de tarjetas - Desbloqueo

Code Block
{
  "blockCode": "
Z
",
  "panToken": "
0004217470885923553
0004217470752022413",
  "cardSequence": 1,
  "functionCode": "
B
U" //B para bloquear - u Desbloquear
}
Code Block
{}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

...