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
U",
        "blockCode1Date": "2023-09-
07
12",
        "blockCode2": "
M
X",
    
"
    "blockCode2Date": "2023-
08
09-
11
13"
,

    
"accountMakerDateOfBirth": "", "availableCredit": 0, "userAmounts9": 0, "userAmounts10": 0, "userAmounts7": 0 } }2
}
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

4

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

5

13 Internal Server Error: Servicios no disponibles.

SetAccountBlock

Descripción

Request

Response

HTTP Codes

Realiza la consulta de bloqueos

/desbloqueo

de cuenta

.

Expirada

Code Block
{
  "
blockCode
accountNumber": "9500501566817108768"
,

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

  
"blockCode1Local":
 
"M",
 
"localOrganization": 950 }2
}
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

4

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

5

Descripción

Request

Response

HTTP Codes

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

Code Block{

13 Internal Server Error: Servicios no disponibles.

SynchronizeMirrorAccount

Realiza la consulta de bloqueos de cuenta Bloqueada

Code Block
{
  "accountNumber": "
9500501520328494829
9500509377699205330"
}
Code Block
{
    "accountData": {

   
"accountNumber": "9500501520328494829",
     "
customerNumber
accountNumber": "
0995000000000035249
9500509377699205330",

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

200: Solicitud exitosa.

4

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.

5

13 Internal Server Error: Servicios no disponibles.

Balance

Info

Consulta de balance​

Repositorio sincronizado con Fiserv​

Disminuye peticiones al Proveedor

GetAccountBalance

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": 
998176210159
0,
  "
availableCreditLimit
functionCode": 
32237425576994724
"B",
  "
frozenBalance
accountNumber": 
26000
"9500501520328494829"
}

2 OK: Solicitud exitosa.

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

5 Internal Server Error: Servicios no disponibles.

SynchronizeMirrorBalance

Descripción

Request

Response

HTTP Codes

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

Code Block{

Code Block
{
    "
accountNumber
functionCode": "
9500501520328494829
B",
 
} Code Block{
   "
accountOrCardNumber
accountNumber": "9500501520328494829",
    "
currentBalance
blockCode1Local": 
998176210159
"M",

"availableCreditLimit":
 
32237425576994724,
   "
frozenBalance
localOrganization": 
26000
950
}
2

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

4

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

5

Descripción

Request

Response

HTTP Codes

Realiza una transferencia .

13 Internal Server Error: Servicios no disponibles.

TransferBalance

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

Code Block
{
  "
transactionData
blockCode": 
{ "transactionAmount": 1,
"U",
  "
actionCode
blockCodeIndicator": 
"8012"
0,

  "
authorizationCode
foreignUse": 
"311S3q"
1,

  "
effectiveDate
functionCode": "
2023-06-21
B",
  
"
description
accountNumber": "
P2P",
9500501520328494829"
}
Code Block
{
    "
paidConcept
functionCode": "
test
B",
    "
memoPostedIndicator
accountNumber": "
qqq
9500501520328494829",
    "
suppressMonetaryTransaction
localOrganization": 
"qqq", "n1n2ByPass": "qqq", "identifier": "S_IN", "box": "3", "crPlaza": "10MON", "crStore": "50WHN", "keyTracking": "KEYTRACKING0123456789", "senderAccount": "senderAccount012345",
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.

Realiza bloqueos/desbloqueo de cuenta - Desbloquear

Code Block
{
  "blockCode": "",
  "blockCodeIndicator": 2,
  "foreignUse": 0,
  "functionCode": "U",
  "accountNumber": "9500501520328494829"
}

Code Block
{
    "
beneficiaryAccount
functionCode": "
beneficiaryAccount1
U",
    "
counterpartInstitution
accountNumber": "
aaaaa
9500501520328494829",
    "
operatingInstitution
blockCode1Local": "
bbbbb
M",
    "
frcUprkBeneficiary
localOrganization": 
"frcUprkBenefi", "orderingFrcUprk": "orderingFrcUp", "device": "123456789-123456789-123456789-12", "ip": "198.162.200.200
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.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
{
  "accountNumber": "9500501403742215502"
}
Code Block
{
    "accountData": {
        "accountNumber": "9500501403742215502",
        "customerNumber": "0995000000000080639",
        "blockCode1": "U",
        "blockCode1Date": "2023-09-12",
        "blockCode2": "X",
        "blockCode2Date": "2023-09-13",
        "accountMakerDateOfBirth": "1994-05-06"
    }
}

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
{
    "accountData": {
        "accountNumber": "9500508152383529456",
        "customerNumber": "0995000000000040667",
        "accountMakerDateOfBirth": "2000-01-01",
        "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.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
{
  "accountNumber": "9500508176491773011"
}
Code Block
{
    "accountData": {
        "accountNumber": "9500508176491773011",
        "customerNumber": "0995000000000080637",
        "blockCode1": "Z",
        "blockCode1Date": "2023-09-12",
        "blockCode2Date": "2023-09-18",
        "accountMakerDateOfBirth": "1994-05-06"
    }
}

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",
    "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.

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
{
  "accountNumber": "9500501403742215502"
}
Code Block
{
    "accountOrCardNumber": "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": "9500508152383529456"
}
Code Block
{
    "accountOrCardNumber": "9500508152383529456",
    "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.

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
{
  "accountNumber": "9500508176491773011"
}
Code Block
{
    "accountOrCardNumber": "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

Realiza una transferencia - Número de cuenta Activa

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": "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",
    "
latitude
authorizationCode":
-109.699,
 
"
longitude
311S3q"
: 23.062
,
    "
recipientName
effectiveDate": "
recipientName01234567890123456
2023-06-21",
    "
orderingName
description": "
orderingName012345678901234567
P2P",
    "
paymentSourceId
paidConcept": "
paymentSourceId012345
test"
,
 
},
   "
xTransactionId
memoPostedIndicator": "
123
qqq",
    "
accountNumber
suppressMonetaryTransaction": "
9500501545918394337
qqq",
 
} Code Block{
   "
historyDate
n1n2ByPass": "
2023-09-12
qqq",
    "
historyTime
identifier": "
111208
S_IN",
    "
transactionData
box": 
{
"3",
    "
transactionCode
crPlaza": "
8012
10MON",
    "
transactionDescription
crStore": "
P2P RECIEVER
50WHN",
    "
currentBalance
keyTracking": "
-2122495
KEYTRACKING0123456789",
    "
openToBuy
senderAccount": "
2122548
senderAccount012345",
  
}
 
}

2 OK: Solicitud exitosa.

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

5 Internal Server Error: Servicios no disponibles.

TransferPeerToPeer

Descripción

Request

Response

HTTP Codes

Realiza una transferencia P2P.

Code Block{ "from": {
 "beneficiaryAccount": "beneficiaryAccount1",
    "
accountNumber
counterpartInstitution": "
9500508496924050930
aaaaa",
    "
actionCode
operatingInstitution": "
8008
bbbbb",
    "
transactionDescription
frcUprkBeneficiary": "
P2P_TRANSFER_SOURCE
frcUprkBenefi",
    "
description
orderingFrcUprk": "
P2P_TRANSFER_SOURCE
orderingFrcUp",
    "
authorizationCode
device": "
1234"
123456789-123456789-123456789-12",
  
},
  
"
to
ip": 
{
"198.162.200.200",
    "
accountNumber
latitude": 
"9500502030236002994"
-109.699,
    "
actionCode
longitude": 
"8012"
23.062,
    "
transactionDescription
recipientName": "
P2P_TRANSFER_TARGET
recipientName01234567890123456",
    "
description
orderingName": "
P2P_TRANSFER_SOURCE
orderingName012345678901234567",
    "
authorizationCode
paymentSourceId": "
1234
paymentSourceId012345"
  },

  "
effectiveDate
xTransactionId": "
2022-01-30
123",
  
"
transactionAmount
accountNumber": 
100
"9500508152383529456",
 
  "
device
operationType": "
abcfghjfghjklghjkfghjk5678956789",
D"
 }
Code Block
{
    "
ip
historyDate": "
198.162.123.148
2023-09-18",
    "
latitude
historyTime": 
123.56565656
"164734",
    "
longitude
transactionData":
-23.565656,
 {
        "
xTransactionId
transactionCode": "
123" } Code Block{
8000",
        "
effectiveDate
currentBalance": "
2022
-
01-30
10000",
        "
transactionAmount
openToBuy": "
100
12000"
,

    
"actionOutputArea": {
}
}

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
{
  "
actionData
transactionData": 
[
{
    
"
authorizationCode
transactionAmount": 
"1234",
1000,
    "
accountNumber
actionCode": "
9500508496924050930
8000",

    "
transactionDescription
authorizationCode": "
P2P SENDER
311S3q",

    
"
feeAmount
effectiveDate": "
0
2023-06-21",

    "
transactionCode
description":
8008,
 
"
currentBalance": -5988391, "creditLimit": 0, "openToBuy": 598649100,
P2P",
    "
authorizationNumber
paidConcept": "
507925
test",
    
}
"memoPostedIndicator": "qqq",
    "suppressMonetaryTransaction": 
{
"qqq",
    
"
authorizationCode
n1n2ByPass": "
1234
qqq",

    "
accountNumber
identifier": "
9500502030236002994
S_IN",

    
"
transactionDescription
box": "
P2P RECIEVER
3",
    
"
feeAmount
crPlaza": "
0
10MON",
    
"
transactionCode
crStore": 
8012,
"50WHN",
    "
currentBalance
keyTracking": 
-169434,
"KEYTRACKING0123456789",
    
"
creditLimit
senderAccount": 
0
"senderAccount012345",
    
"
openToBuy
beneficiaryAccount": 
17133400
"beneficiaryAccount1",

    
"
authorizationNumber
counterpartInstitution": "
332272
aaaaa",
    
}
"operatingInstitution": "bbbbb",
   
]
 "frcUprkBeneficiary": "frcUprkBenefi",
}
 
}

2 OK: Solicitud exitosa.

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

5 Internal Server Error: Servicios no disponibles.

FrozenBalanceTransfer

Descripción

Request

Response

HTTP Codes

Realiza una transferencia QR.

Code Block{
   "
transactionData
orderingFrcUprk": 
{
"orderingFrcUp",
    "
transactionAmount
device": 
20
"123456789-123456789-123456789-12",
    "
actionCode
ip": "
8038
198.162.200.200",
    "
authorizationCode
latitude": 
"Q1er44"
-109.699,
    "
effectiveDate
longitude": 
"2022-08-24"
23.062,
    "
description
recipientName": "recipientName01234567890123456"
QR
,
  
code
 
test
 
- normal hours
"orderingName": "orderingName012345678901234567",
    "
paidConcept
paymentSourceId": "
Hello
paymentSourceId012345"
,

  },
  "
memoPostedIndicator
xTransactionId": "
123",

  "
suppressMonetaryTransaction
accountNumber": "
Y
9500508176491773011",
 
  "
n1n2ByPass
operationType": "
N",
D"
 }
Code Block
{
    "
identifier
historyDate": 
0
"2023-09-18",
    "
box
historyTime": "
1
164818",
    "
crPlaza
transactionData": 
"10MON",
{
        "
crStore
transactionCode": "
50WHN
8000",
        "
keyTracking
openToBuy": "
Hello
2000"
,

    
"beneficiaryAccount": "Hello", "senderAccount": "Hello", "counterpartInstitution": "Hello",
}
}

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": {
    "
operatingInstitution
accountNumber": "
Hello
9500508496924050930",
    "
frcUprkBeneficiary
actionCode": "
Hello
8008",
    "
orderingFrcUprk
transactionDescription": "
Hello
P2P_TRANSFER_SOURCE",
    "
device
description": "
123456789-123456789-123456789-12
P2P_TRANSFER_SOURCE",
    "
ip
authorizationCode": "
198.162.200.200", "latitude": -109.699,
1234"
  },
  "
longitude
to": 
23.062,
{
    "
recipientName
accountNumber": "
Hello
9500502030236002994",
    "
orderingName
actionCode": "
Hello
8012",
    "
paymentSourceId
transactionDescription": "
bf0469d7-b507-44d6-af7d-d4edea6340f1" },
P2P_TRANSFER_TARGET",
    "
xTransactionId
description": "
123
P2P_TRANSFER_SOURCE",
    "
accountNumber
authorizationCode": "
9500508020127353147
1234"
} Code Block{
  },
    "
historyDate
effectiveDate": "
2023
2022-
09
01-
12
30",
    "
historyTime
transactionAmount": 
"111311"
100,
    "
transactionData
device": 
{
"abcfghjfghjklghjkfghjk5678956789",
    "
transactionCode
ip": "
8038
198.162.123.148",
    "
transactionDescription
latitude": 
"CASHOUT WITH QR-CODE(FREE BAL)"
123.56565656,
    "
currentBalance
longitude": 
"
-
1382946"
23.565656,
    "
openToBuy
xTransactionId": "
1382326
123"
}

}

2 OK: Solicitud exitosa.

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

5 Internal Server Error: Servicios no disponibles.

Card

...

POST → /v1/cards/embossers/details

Descripción

Request

Response

HTTP Codes

Obtener cuenta mediante Pantoken

...

Incorpora los endpoints de Card Mirror​

Sincronización de datos con el Mirror​

Expone endpoints a través de un API REST

Code Block
{
	"
panToken
effectiveDate": "
0004217470595215803
2022-01-30",
	"
cardSequence
transactionAmount": 
2147483647
"100",
	"actionOutputArea": {
		"
foreignUse
actionData": 
0 } Code Block
[
			{
				"
postToAccount
authorizationCode": "
9500508261544464147
1234",
				"
blockCode
accountNumber": "
Z
9500508496924050930",
				"
cardNumber
transactionDescription": "
***************0252
P2P SENDER",
				"
currentCardActivation
transactionCode": 
"N"
8008,
				"
dateBlock
currentBalance": 
"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{
-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.

Gateway

Account Adapter

Info

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

...

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

la consulta de bloqueos de cuenta.
Code Block
{
  "accountNumber": "9500501520328494829"
}
Code Block{ "accountData": { "accountNumber": "9500501520328494829",

una transferencia QR.

Code Block
{
  "
customerNumber
transactionData": 
"0995000000000035249",
{
    "
blockCode1
transactionAmount": 
"M"
20,
    "
blockCode1Date
actionCode": "
2023-09-07
8038",
    "
blockCode2
authorizationCode": "
M
Q1er44",
    "
blockCode2Date
effectiveDate": "
2023
2022-08-
11
24",
    "
accountMakerDateOfBirth
description": "
",
QR code test - normal 
"availableCredit
hours"
: 0
,
    "
userAmounts9
paidConcept": 
0
"Hello",
    "
userAmounts10
memoPostedIndicator": 
0
" ",
    "
userAmounts7
suppressMonetaryTransaction": 
0 } }

2 OK: Solicitud exitosa.

4 Bad Request: 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.

Code Block{
"Y",
    "
blockCode
n1n2ByPass": "N",
    
"blockCodeIndicator
"identifier": 0,
    "box": "1",
    "
foreignUse
crPlaza": 
0
"10MON",
    "
functionCode
crStore": "
U
50WHN",
    "
accountNumber
keyTracking": "
9500501520328494829
Hello",
 
} Code Block{
   "
functionCode
beneficiaryAccount": "
B
Hello",
    "
accountNumber
senderAccount": "
9500501520328494829
Hello",
    "
blockCode1Local
counterpartInstitution": "
M
Hello",
    "
localOrganization
operatingInstitution": 
950 }

2 OK: Solicitud exitosa.

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

5 Internal Server Error: Servicios no disponibles.

TransferBalance

Descripción

Request

Response

HTTP Codes

Realiza una transferencia .

Code Block{
"Hello",
    "
transactionData
frcUprkBeneficiary": 
{
"Hello",
    "
transactionAmount
orderingFrcUprk": 
1
"Hello",
    "
actionCode
device": "
8012
123456789-123456789-123456789-12",
    "
authorizationCode
ip": "
311S3q
198.162.200.200",
    "
effectiveDate
latitude": -109.699,
  
"2023-06-21"
  "longitude": 23.062,
    "
description
recipientName": "
P2P
Hello",
    "
paidConcept
orderingName": "
test
Hello",
    
"memoPostedIndicator
"paymentSourceId": "bf0469d7-b507-44d6-af7d-d4edea6340f1"
  },
  "xTransactionId": "
qqq
123",
  "accountNumber": "9500508020127353147"
}
Code Block
{
	"historyDate": 
"suppressMonetaryTransaction
"2023-09-08",
	"historyTime": "
qqq
122732",
	"transactionData": {
		"
n1n2ByPass
transactionCode": "
qqq
8038",
"identifier
		"transactionDescription": "
S_IN",
CASHOUT WITH QR-CODE(FREE 
"box
BAL)",
		"currentBalance": "
3
-1382946",
"crPlaza
		"openToBuy": "
10MON
1382486"
,

"crStore": "50WHN",
	}
}

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
{
    "
keyTracking
logo": "
KEYTRACKING0123456789
60",
    "
senderAccount
address": "
senderAccount012345
Ciruelas",
    "
beneficiaryAccount
houseNumber": "
beneficiaryAccount1
12345",
    "
counterpartInstitution
externalNumber": "
aaaaa
8007",
    "
operatingInstitution
colony": "
bbbbb
Lomas",
    "
frcUprkBeneficiary
city": "
frcUprkBenefi",
Lomas 
"orderingFrcUprk": "orderingFrcUp
de Alvarez",
    "
device
state": 
"123456789-123456789-123456789-12
"COL",
    "
ip
postalCode": "
198.162.200.200
99980",
    "
latitude
dateOfBirth": 
-109.699
"2000-08-06",
    "
longitude
stateOfBirth": 
23.062
"CDMX",
    "
recipientName
email": "
recipientName01234567890123456
lmedina@palo-it.com",
    "
orderingName
firstName": "
orderingName012345678901234567
Judith",
    "
paymentSourceId
lastName": "
paymentSourceId012345
Medina"
,
 
},
   "
xTransactionId
maternalLastName": "
123
Ruiz",
    "
accountNumber
mobilePhoneNumber": "
9500501545918394337
5521163588",
 
} Code Block{
   "
historyDate
identificationNumber": "
2023-09-12
4152554487415113698",
    "
historyTime
ine": "
111208
1234117890099",
    "
transactionData
occupation": 
{
"Tester",
    "
transactionCode
genderCode": "
8012
1",
    "
transactionDescription
user4":
"
P2P RECIEVER
1",
    "
currentBalance
identificationNumberFlag": "
-2122495",
2"
}
Code Block
{
    "
openToBuy
customerNumber": "
2122548
0995000000000080589"
} }2

}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

4

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

5

13 Internal Server Error: Servicios no disponibles.

...

PUT → /customers

Descripción

Request

Response

HTTP

CodesRealiza una transferencia P2P

Codes

GRPC Codes

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

Code Block
{
  
"from
  "email": "lmedina@palo-it.com",
    "numberType": 1,
    "customerNumber": 
{
"0995000000000077863",
    "
accountNumber
address": "
9500508496924050930
Ciruelas",
    "
actionCode
dateOfBirth": "
8008
1999-02-06",
    "
transactionDescription
city": "
P2P_TRANSFER_SOURCE
Villa de Alvarez",
    "
description
countryCode": "
P2P_TRANSFER_SOURCE
MEX",
    "
authorizationCode
county": "
1234
CDMX"
,
 
},
   "
to
colony":
{
 "ADOLFO LOPEZ MATEOS",
    "
accountNumber
externalNumber": "
9500502030236002994
1007",
    "
actionCode
firstName": "
8012
Sandra",
    "
transactionDescription
genderCode": 
"P2P_TRANSFER_TARGET"
2,
    "
description
houseNumber": "
P2P_TRANSFER_SOURCE
123",
    "
authorizationCode
ine": "
1234
1234117890099"
}
,
    "
effectiveDate
lastName": "
2022-01-30
Velasco",
    "
transactionAmount
maritalStatus": 
100
0,
    "
device
maternalLastName": "
abcfghjfghjklghjkfghjk5678956789
Medina",
    "
ip
middleName": "
198.162.123.148
Rosa",
    "
latitude
mobilePhoneIndicator": 
123.56565656
1,
    "
longitude
mobilePhoneNumber":
-23.565656,
 
"
xTransactionId
31211635899"
:
,
"123"
 
} Code Block{
   "
effectiveDate
occupation": "
2022-01-30
NURSE",
    "
transactionAmount
ownOrRentResidenceFlag": 
"100"
0,
    "
actionOutputArea
postalCode": 
{
54070,
    "
actionData
stateOfBirth": 
[
"DF"
}
Code Block
{
    "outputArea": {
        "
authorizationCode
customerNumber": "
1234
0995000000000077863",
        "accountNumber": "
9500508496924050930
0995000000000077863",
        "
transactionDescription
responseCode": "
P2P SENDER
",
        "
feeAmount
level": "
0
",
        "
transactionCode
transactionAmount": 
8008
0,
        "
currentBalance
countryLimit":
-5988391,
 {
            "
creditLimit
dailyLimitLoad": 0,
            "
openToBuy
monthlyLimitLoad": 
598649100
0,
        
"authorizationNumber":
 
"507925"
   
}
"dailyLimitCash": 0,
      
{
      
"
authorizationCode
monthlyLimitCash": 
"1234",
0,
   
"accountNumber": "9500502030236002994",
         "
transactionDescription
limitForDepositTransactions": 
"P2P RECIEVER",
0
      
"feeAmount": "0"
  },
        "
transactionCode
accountLimit": {
   
8012,
         "
currentBalance
accountDailyAmountLoad": 
-169434
0,
            "
creditLimit
accountMonthlyAmountLoad": 0,
            "
openToBuy
accountDailyAmountCash": 
17133400
0,
            "
authorizationNumber
accountMonthlyAmountCash": 
"332272"
0
      
}
  }
  
]
  }
}
2

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

4

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

5

13 Internal Server Error: Servicios no disponibles.

...

POST → /customers/account

Descripción

Request

Response

HTTP Codes

Realiza una transferencia QR.

Code Block{

GRPC Codes

Vinculación del cliente en la cuenta de Spin.

Code Block
{
    "accountNumber": "0004217470138987703",
    "
transactionData
customerNumber": 
{
"0995000000000045698",
    "
transactionAmount
qualification": 
20
"1",
    "
actionCode
customerTypeIndicator": 0,
    "
8038
foreignUseIndicator": 0,
    "
authorizationCode
alternateCustomer":
"Q1er44",
 {
        "
effectiveDate
expirationDate": "
2022-08-24",
2023/12/30"
    }
}
Code Block
{
    "
description
customerNumber": "0995000000000045697"
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
"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
{
  "
historyDate
organizationNumber": 
"2023-09-12"
999,
  "
historyTime
logo": 
"111311"
1,
  "
transactionData
cardNumber": 
{
"000123456ID5IXX1234",
  
"
transactionCode
serviceType": "
8038
A",

  "
transactionDescription
numberCardsActivated": 
"CASHOUT WITH QR-CODE(FREE BAL)",
1,
  "
currentBalance
foreignOrg": 
"-1382946",
1,
  "
openToBuy
numberForeignCardsActivated": 
"1382326"
0
}
}
2 OK

200: Solicitud exitosa.

4 Bad Request

400: Request con campos no válidos.

401: Apy Key no válida.

5 Internal Server Error

500: Servicios no disponibles.

...

PUT /cards/embosser/block

Descripción

Request

Response

HTTP Codes

Realiza la consulta de balance de cuenta.

Bloqueo de tarjetas

Code Block
{
  "
accountNumber
blockCode": "
9500501520328494829" } Code Block{
Z",
  "
accountOrCardNumber
panToken": "
9500501520328494829
0004217470885923553",
  "
currentBalance
cardSequence": 
998176210159
1,
  "
availableCreditLimit
functionCode": 
32237425576994724, "frozenBalance": 26000 }2 OK
"B" //B para bloquear - u Desbloquear
}
Code Block
{}

200: Solicitud exitosa.

4 Bad Request

400: Request con campos no válidos.

5 Internal Server Error

401: Apy Key no válida.

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

...

...

Mirror

Account

Info

Consulta de bloqueos​

Repositorio sincronizado con Fiserv​

Disminuye peticiones al Proveedor​

GetAccountDetails

Descripción

Request

Response

HTTP

GRPC Codes

Creación del cliente

Realiza la consulta de bloqueos de cuenta.

Code Block
{
  "accountNumber": "9500501520328494829"
"logo
}
Code Block
{
  "accountData": 
"60",
{
    "
address
accountNumber": "
Ciruelas
9500501520328494829",
    "
houseNumber
customerNumber": "
12345
0995000000000035249",
    "
externalNumber
blockCode1": "
8007
M",
    "
colony
blockCode1Date": "
Lomas
2023-09-07",
    "
city
blockCode2": "
Lomas de Alvarez
M",
    "
state
blockCode2Date": "
COL
2023-08-11",
    "
postalCode
accountMakerDateOfBirth": "
99980
",
    "
dateOfBirth": "2000-08-06"
availableCredit": 0,
    "
stateOfBirth
userAmounts9": 
"CDMX"
0,
    "
email
userAmounts10": 
"lmedina@palo-it.com"
0,
    "
firstName
userAmounts7": 
"Judith",
0
  }
"lastName
}

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": "
Medina
",
  "blockCodeIndicator": 1,
  "
maternalLastName
foreignUse": 
"Ruiz"
0,

  "
mobilePhoneNumber
functionCode": "
5521163588
U",
  
"
identificationNumber
accountNumber": "
4152554487415113698
9500501520328494829"
,

}
Code Block
{
  
"
ine
functionCode": "
1234117890099
B",

  "
occupation
accountNumber": "
Tester
9500501520328494829",

  "
genderCode
blockCode1Local": "
1
M",

  "
user4
localOrganization":
"1",
 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
{
  "
identificationNumberFlag
accountNumber": "
2
9500501520328494829"
}
Code Block
{

  "
logo
accountData": 
"60",
{
    "
address
accountNumber": "
Ciruelas
9500501520328494829",
    "
houseNumber
customerNumber": "
12345
0995000000000035249",
    "
externalNumber
blockCode1": "
8007
M",
    "
colony
blockCode1Date": "
Lomas
2023-09-07",
    "
city
blockCode2": "
Lomas de Alvarez
M",
    "
state
blockCode2Date": "
COL
2023-08-11",
    "
postalCode
accountMakerDateOfBirth": "
99980
",
    "
dateOfBirth
availableCredit": 
"2000-08-06"
0,
    "
stateOfBirth
userAmounts9": 
"CDMX"
0,
    "
email
userAmounts10": 
"lmedina@palo-it.com"
0,
    "
firstName
userAmounts7": 
"Judith",
0
  }
"lastName
}

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": "
Medina
9500501520328494829"
,

}
Code Block
{
  
"
maternalLastName
accountOrCardNumber": "
Ruiz
9500501520328494829",

  "
mobilePhoneNumber
currentBalance": 
"5521163588"
998176210159,

  "
identificationNumber
availableCreditLimit": 32237425576994724,
  "
4152554487415113698
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
{
  "
ine
accountNumber": "
1234117890099
9500501520328494829"
,

}
Code Block
{
  
"
occupation
accountOrCardNumber": "
Tester
9500501520328494829",

  "
genderCode
currentBalance": 
"1"
998176210159,
  
"
user4
availableCreditLimit":
"1",
 32237425576994724,
  "
identificationNumberFlag
frozenBalance": 
"2"
26000
}
2

0 OK: Solicitud exitosa.

4

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

5

13 Internal Server Error: Servicios no disponibles.

...

TransferBalance

Descripción

Request

Response

HTTP

GRPC Codes

Actualizar cliente

Realiza una transferencia .

Code Block
{
  "transactionData": {
    "transactionAmount": 1,
    "
email
actionCode": "
lmedina@palo-it.com
8012",
    "
numberType
authorizationCode": 
1
"311S3q",
    "
customerNumber
effectiveDate": "
0995000000000077863
2023-06-21",
    "
address
description": "
Ciruelas
P2P",
    "
dateOfBirth
paidConcept": "
1999-02-06
test",
    "
city
memoPostedIndicator": 
"Villa de Alvarez
"qqq",
    "suppressMonetaryTransaction": "qqq",
    "
countryCode
n1n2ByPass": "
MEX
qqq",
    "
county
identifier": "
CDMX
S_IN",
    "
colony
box": "
ADOLFO LOPEZ MATEOS
3",
    "
externalNumber
crPlaza": "
1007
10MON",
    "
firstName
crStore": "
Sandra
50WHN",
    "
genderCode
keyTracking": 
2
"KEYTRACKING0123456789",
    "
houseNumber
senderAccount": "
123
senderAccount012345",
    "
ine
beneficiaryAccount": "
1234117890099
beneficiaryAccount1",
    "
lastName
counterpartInstitution": "
Velasco
aaaaa",
    "
maritalStatus
operatingInstitution": 
0
"bbbbb",
    "
maternalLastName
frcUprkBeneficiary": "
Medina
frcUprkBenefi",
    "
middleName
orderingFrcUprk": "
Rosa
orderingFrcUp",
    "
mobilePhoneIndicator
device": 
1
"123456789-123456789-123456789-12",
    "
mobilePhoneNumber
ip": "
31211635899
198.162.200.200",
    "
occupation
latitude": 
"NURSE"
-109.699,
    "
ownOrRentResidenceFlag
longitude": 
0
23.062,
    "
postalCode
recipientName": 
54070
"recipientName01234567890123456",
    "
stateOfBirth
orderingName": "
DF" } Code Block{
orderingName012345678901234567",
    "
email
paymentSourceId": "
lmedina@palo-it.com
paymentSourceId012345",
  
"operationType": "
numberType
W"
:

1,
  },
  "
customerNumber
xTransactionId": "
0995000000000077863
123",
  
"
address
accountNumber": "
Ciruelas
9500501545918394337"
,

}
Code Block
{
  "
dateOfBirth
historyDate": "
1999
2023-
02
09-
06
12",

  "
city
historyTime": "
Villa de Alvarez
111208",

  "
countryCode
transactionData": 
"MEX",
{
    "
county
transactionCode": "
CDMX
8012",
    "
colony
transactionDescription": "
ADOLFO
P2P 
LOPEZ MATEOS
RECIEVER",
    "
externalNumber
currentBalance": "
1007
-2122495",
    "
firstName
openToBuy": "
Sandra
2122548"
,

  
"genderCode": 2, "houseNumber": "123",
}
}

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": {
    "
ine
accountNumber": "
1234117890099
9500508496924050930",
    "
lastName
actionCode": "
Velasco
8008",
    "
maritalStatus
transactionDescription": 
0
"P2P_TRANSFER_SOURCE",
    "
maternalLastName
description": "
Medina
P2P_TRANSFER_SOURCE",
    "
middleName
authorizationCode": "
Rosa
1234"
,

  },
  "
mobilePhoneIndicator
to": 
1,
{
    "
mobilePhoneNumber
accountNumber": "
31211635899
9500502030236002994",
    "
occupation
actionCode": "
NURSE
8012",
    "
ownOrRentResidenceFlag
transactionDescription": 
0
"P2P_TRANSFER_TARGET",
    "
postalCode
description": 
54070
"P2P_TRANSFER_SOURCE",
    "
stateOfBirth
authorizationCode": "
DF
1234"
 
}

2 OK: Solicitud exitosa.

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

5 Internal Server Error: Servicios no disponibles.

LinkAccountToCustomer

Descripción

Request

Response

HTTP Codes

Vincular cuenta al cliente

Code Block{
 },
    "
accountNumber
effectiveDate": "
9500505675946730065
2022-01-30",
    "
alternateCustomer
transactionAmount": 
{
100,
    "
expirationDate
device": "
2023-08-22"
abcfghjfghjklghjkfghjk5678956789",
 
},
   "
customerNumber
ip": "
0995000000000075954
198.162.123.148",
    "
qualification
latitude": 
"2",
123.56565656,
    "
customerTypeIndicator
longitude": 
0,
-23.565656,
    "
foreignUseIndicator
xTransactionId": 
0 }

2 OK: Solicitud exitosa.

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

5 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 → /v1/cards/embosser

Descripción

Request

Response

HTTP Codes

Add a new card to account
"123"
}
Code Block
{
  "
addressLine1
effectiveDate": "
1
2022-01-30",
  "
addressLine2
transactionAmount": "
2
100",
  "
assignedSpendingLimits": {
actionOutputArea": {
    "actionData": [
      {
        "authorizationCode": 
"maximumSpendingLimit
"1234",
        "accountNumber": "9500508496924050930",
        "transactionDescription": 
3
"P2P SENDER",
        "
spendingFrequency
feeAmount": 
4,
"0",
        "
spendingTransaction
transactionCode":
5
 8008,
        
},
"currentBalance": -5988391,
        "
atmCashAmount
creditLimit": 
6,
0,
        "
atmCashNumber
openToBuy": 
7
598649100,
   
"atmCashSingleTransactionLimit": 8,
     "
authorizationCriteriaTableNumber
authorizationNumber": "
9
507925"
,

     
"authorizationSpendingLimitTable": "10"
 },
  
"blockCode":
 
"11",
   
"branchNumber": 12,
{
    
"cardAction":
 
13,
   "
cardActionReasonCode
authorizationCode": "
14
1234",
    
"cardDelayDays":
 
15,
   "
panToken
accountNumber": "
16
9500502030236002994",
   
"cardSequence": 17,
     "
cardholderAffiliationGroupId
transactionDescription": "
18
P2P RECIEVER",
  
"cardholderFlag
      "feeAmount": "
19
0",
  
"city": "20",
      "
currentCardActivation
transactionCode": 
"21"
8012,
  
"customerNumber": "22",
      "
deliveryOption
currentBalance": 
23,
-169434,
        "
deviceIndicator
creditLimit": 
"24"
0,
    
"embossedName1":
 
"25",
   "
embossedName2
openToBuy": 
"26"
17133400,
    
"enrollmentStatusVBV":
 
"27",
   "
expirationDate
authorizationNumber": "
28
332272"
,

   
"firstIssueBranch":
 
29,
  }
"internetPurchaseAmount":
 
30,
   
"internetPurchaseNumber": 31,
]
  
"internetPurchaseSingleTransactionLimit": 32,
}
}

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
{
  "
languageCode
transactionData":
"33",
 {
    "
maximumAuthorizationFrequency
transactionAmount": 
34
20,
    "
name1
actionCode": "
35
8038",
 
"name1TypeIndicator": 36,
   "
name2
authorizationCode": "
37
Q1er44",

"name2TypeIndicator":
 
38,
   "
nextCardExpirationDate
effectiveDate": "
39
2022-08-24",
    "
numberOfCardsRequested
description":
40, "overTheCounterCashAmount": 42,
 "QR code test - normal hours",
    "
overTheCounterCashNumber
paidConcept": 
43
"Hello",
    "
overTheCounterCashSingleTransactionLimit
memoPostedIndicator": " 
44
",
    "
pinMailerDelayDays
suppressMonetaryTransaction": 
45,
"
pinOffset
Y"
: 46
,

"pinSuppression":
 
47,
   "
plasticId
n1n2ByPass": "
48
N",
    "
posServiceCode
identifier": 
49,
0,
    "
accountNumber
box": "
50
1",
    "
postalCode
crPlaza": 
51
"10MON",
    "
processType
crStore": 
52
"50WHN",
    "
programId
keyTracking": 
53
"Hello",
    "
reissueDeliveryOption
beneficiaryAccount": 
54
"Hello",
    "
requestedCardType
senderAccount": "
55
Hello",
    "
retailPurchaseAmt
counterpartInstitution": 
56
"Hello",
    "
retailPurchaseNumber
operatingInstitution": 
57
"Hello",
    "
retailPurchaseSingleTransactionLimit
frcUprkBeneficiary": 
58
"Hello",

"securedCodeActivate":
 
59,
   "
stateOrProvince
orderingFrcUprk": "
60
Hello",
    "
typeCardMailer
device": "
61
123456789-123456789-123456789-12",
    "
typeOfCard
ip": "
62
198.162.200.200",
    "
user1
latitude": 
63,
-109.699,
    "
user2
longitude": 
64,
23.062,
    "
user3
recipientName": 
65
"Hello",
    "
user4
orderingName": 
66
"Hello",
    "
user5
paymentSourceId":
67
 "bf0469d7-b507-44d6-af7d-d4edea6340f1"
  },
  "
user6
xTransactionId": 
68
"123",
  "
user7
accountNumber":
69,
 "9500508020127353147"
}
Code Block
{
  "
user8
historyDate": 
70
"2023-09-12",
  "
userDate1
historyTime": "
71
111311",
  "
userDate2
transactionData":
"72",
 {
    "
vbvPassword
transactionCode": "
73
8038",
    "
visaMiniIndicator
transactionDescription": "
74
CASHOUT WITH QR-CODE(FREE BAL)",
    "
visaPlusIndicator
currentBalance": "
75
-1382946",
} Code Block{
    "
panToken
openToBuy": "
0004217470595215803",
1382326"
  }
}
200

0 OK: Solicitud exitosa.

400500:

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

401: Apy Key no válida.

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.

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​

...

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

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-
06
07",
    
"blockCode2": "M",
    
"blockCode2Date": "2023-08-11"
,
    "accountMakerDateOfBirth": "",
    "availableCredit": 0,
    "userAmounts9": 0,
    "userAmounts10": 0,
    "userAmounts7": 0
  }
}
200

0 OK: Solicitud exitosa.

400

3 Bad Request: Request con

campos no válidos.

401: Apy Key no válida.

500

campos no válidos.

13 Internal Server Error: Servicios no disponibles.

...

SetAccountBlock

Descripción

Request

Response

HTTP

GRPC Codes

Realiza bloqueos/desbloqueo de cuenta.

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

0 OK: Solicitud exitosa.

400500:

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

401: Apy Key no válida.

13 Internal Server Error: Servicios no disponibles.

...

TransferBalance

Descripción

Request

Response

HTTP

GRPC Codes

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

Realiza una transferencia .

Code Block
{
  "
accountNumber
transactionData": 
"9500501520328494829" } Code Block{ "accountData": { "accountNumber": "9500501520328494829", "customerNumber
{
    "transactionAmount": 1,
    "actionCode": "
0995000000000035249
8012",
    
"
blockCode1
authorizationCode": "
M
311S3q",
    
"
blockCode1Date
effectiveDate": "2023-
09
06-
06
21",
 
"blockCode2
   "description": "
M
P2P",
    
"
blockCode2Date
paidConcept": "
2023-08-11
test",
} }

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{
    "memoPostedIndicator": "qqq",
    "
accountNumber
suppressMonetaryTransaction": "
9500501520328494829
qqq"
} Code Block{ "accountOrCardNumber
,
    "n1n2ByPass": "
9500501520328494829
qqq",
 
   "
currentBalance
identifier": 
998176209259, "availableCreditLimit
"S_IN",
    "box": 
1823760996
"3",
"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.

Code Block{
    "crPlaza": "10MON",
    "
accountNumber
crStore": "
9500501520328494829
50WHN"
} Code Block{ "accountOrCardNumber
,
    "keyTracking": "
9500501520328494829
KEYTRACKING0123456789",
"currentBalance
    "senderAccount": 
998176209259, "availableCreditLimit
"senderAccount012345",
    "beneficiaryAccount": 
1823760996
"beneficiaryAccount1",
 
   "
frozenBalance
counterpartInstitution": 
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 .

Code Block{ "transactionData": {
"aaaaa",
    "operatingInstitution": "bbbbb",
    "frcUprkBeneficiary": "frcUprkBenefi",
    "orderingFrcUprk": "orderingFrcUp",
    "
transactionAmount
device": 
1
"123456789-123456789-123456789-12",
    "
actionCode
ip": "
8012
198.162.200.200",
    "
authorizationCode
latitude": 
"311S3q"
-109.699,
    "longitude": 23.062,
    "
effectiveDate
recipientName": "
2023-06-21
recipientName01234567890123456",
    "
description
orderingName": "
P2P
orderingName012345678901234567",
    "paymentSourceId": "
paidConcept
paymentSourceId012345"
  },
  "xTransactionId": "
test
123",
  "accountNumber": "9500501545918394337"
}
Code Block
{
  "
memoPostedIndicator
historyDate": 
"qqq
"2023-09-12",

  "
suppressMonetaryTransaction
historyTime": "
qqq
111208",

  "
n1n2ByPass
transactionData": 
"qqq",
{
    "
identifier
transactionCode": "
S_IN
8012",
    "
box
transactionDescription": "
3
P2P RECIEVER",
    "
crPlaza
currentBalance": "
10MON
-2122495",
    "
crStore
openToBuy": "
50WHN
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
{
  "
keyTracking
from": 
"KEYTRACKING0123456789",
{
    "
senderAccount
accountNumber": "
senderAccount012345
9500508496924050930",
    "
beneficiaryAccount
actionCode": "
beneficiaryAccount1
8008",
    "
counterpartInstitution
transactionDescription": "
aaaaa
P2P_TRANSFER_SOURCE",
    "
operatingInstitution
description":
"bbbbb
 "P2P_TRANSFER_SOURCE",
    "
frcUprkBeneficiary
authorizationCode": "
frcUprkBenefi
1234"
,

  },
  "
orderingFrcUprk
to": 
"orderingFrcUp",
{
    "
device
accountNumber": "
123456789-123456789-123456789-12
9500502030236002994",
    "
ip
actionCode": "
198.162.200.200
8012",
    "
latitude
transactionDescription": 
-109.699
"P2P_TRANSFER_TARGET",
    "
longitude
description": 
23.062
"P2P_TRANSFER_SOURCE",
    "
recipientName
authorizationCode": "
recipientName01234567890123456
1234"
  },
    "
orderingName
effectiveDate": "
orderingName012345678901234567
2022-01-30",
    "
paymentSourceId
transactionAmount": 
"paymentSourceId012345"
100,
  
},
  
"
xTransactionId
device": "
123
abcfghjfghjklghjkfghjk5678956789",
  
"accountNumber":
 
"9500501545918394337" } Code Block{
 
"
historyDate
ip": "
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.

Code Block{ "from": {
198.162.123.148",
    "latitude": 123.56565656,
    "longitude": -23.565656,
    "xTransactionId": "123"
}
Code Block
{
  "effectiveDate": "2022-01-30",
  "transactionAmount": "100",
  "actionOutputArea": {
    "actionData": [
      {
        "
accountNumber
authorizationCode": "
9500508496924050930
1234",
        "
actionCode
accountNumber": "
8008
9500508496924050930",
        "transactionDescription": "P2P
_TRANSFER_SOURCE
 SENDER",
        "
description
feeAmount": "
P2P_TRANSFER_SOURCE
0",
        "
authorizationCode
transactionCode": 8008,
  
"1234"
      "currentBalance": -5988391,
    
},
    "
to
creditLimit": 0,
   
{
     "
accountNumber
openToBuy": 
"9500502030236002994",
598649100,
        "
actionCode
authorizationNumber": "
8012
507925"
,

     
"transactionDescription": "P2P_TRANSFER_TARGET",
 },
      {
 
"description": "P2P_TRANSFER_SOURCE",
       "authorizationCode": "1234",
   
},
     "
effectiveDate
accountNumber": "
2022-01-30
9500502030236002994",
    
"transactionAmount":
 
100,
   
"
device
transactionDescription": "
abcfghjfghjklghjkfghjk5678956789
P2P RECIEVER",
        "
ip
feeAmount": "
198.162.123.148
0",
        "
latitude
transactionCode": 
123.56565656
8012,
        "
longitude
currentBalance": -
23.565656
169434,
    
"xTransactionId":
 
"123" } Code Block{
 
"effectiveDate":
 
"2022-01-30",
 
"
transactionAmount
creditLimit": 
"100", "actionOutputArea": { "actionData": [ { "authorizationCode
0,
        "openToBuy": 17133400,
        "authorizationNumber": "
1234", "accountNumber": "9500508496924050930", "transactionDescription": "P2P SENDER", "transactionCode": 8008, "currentBalance": -5988391.0, "openToBuy": 5.987391E8, "authorizationNumber": "205229" }, {
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": "
1234
Q1er44",
"accountNumber

    "effectiveDate": "
9500502030236002994
2022-08-24",
"transactionDescription
    "description": "
P2P RECIEVER
QR code test - normal hours",
"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.

Code Block{ "transactionData": {

    "paidConcept": "Hello",
    "memoPostedIndicator": " ",
    "suppressMonetaryTransaction": "Y",
    "n1n2ByPass": "N",
    "
transactionAmount
identifier": 
20
0,
    "
actionCode
box": "
8038
1",
    "
authorizationCode
crPlaza": "
Q1er44
10MON",
    "
effectiveDate
crStore": "
2022-08-24
50WHN",
    "
description
keyTracking": "
QR code test - normal hours
Hello",
    "
paidConcept
beneficiaryAccount": "Hello",
    "
memoPostedIndicator
senderAccount": "
Hello",
    "
suppressMonetaryTransaction
counterpartInstitution": "
Y
Hello",
    "
n1n2ByPass
operatingInstitution": "
N
Hello",
    "
identifier
frcUprkBeneficiary": 
0
"Hello",
    "
box
orderingFrcUprk": "
1
Hello",
    "
crPlaza
device": "
10MON
123456789-123456789-123456789-12",
    "
crStore
ip": "
50WHN
198.162.200.200",
    "
keyTracking
latitude": 
"Hello"
-109.699,
    "
beneficiaryAccount
longitude": 
"Hello"
23.062,
    "
senderAccount
recipientName": "Hello",
    "
counterpartInstitution
orderingName": "Hello",
    "
operatingInstitution
paymentSourceId": "
Hello",
bf0469d7-b507-44d6-af7d-d4edea6340f1"
  },
  "
frcUprkBeneficiary
xTransactionId": "
Hello
123",

  "
orderingFrcUprk
accountNumber": "
Hello
9500508020127353147"
,

}
Code Block
{
  "
device
historyDate": "
123456789
2023-
123456789-123456789
09-12",

  "
ip
historyTime": "
198.162.200.200
111311",

  "
latitude
transactionData": 
-109.699,
{
    "
longitude
transactionCode": 
23.062
"8038",
    "
recipientName
transactionDescription": "
Hello
CASHOUT WITH QR-CODE(FREE BAL)",
    "
orderingName
currentBalance": "
Hello
-1382946",
    "
paymentSourceId
openToBuy": "
bf0469d7-b507-44d6-af7d-d4edea6340f1" }, "xTransactionId": "123", "
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": "
9500508020127353147
9500501520328494829"
}
Code Block
{
"historyDate":
 
"2023-09-08",
 
"
historyTime
accountOrCardNumber": "
122732
9500501520328494829",
"transactionData":
 
{
 
"
transactionCode
currentBalance": 
"8038"
998176210159,
  
"
transactionDescription
availableCreditLimit": 
"CASHOUT WITH QR-CODE(FREE BAL)", "currentBalance": "-1382946", "openToBuy": "1382486" } }200
32237425576994724,
  "frozenBalance": 26000
}

0 OK: Solicitud exitosa.

400500

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

401: Apy Key no válida.

13 Internal Server Error: Servicios no disponibles.

...

Customer

...

Adapter

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

...

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

Registro

Creación 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{ "logo": "60", "address": "Ciruelas", "houseNumber": "12345",
"
}
Code Block
{
    "
externalNumber
customerNumber": "
8007",
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
{
    "
colony
email": "
Lomas
lmedina@palo-it.com",
    "
city
numberType": 
"Lomas de Alvarez"
1,
    "
state
customerNumber": "
COL
0995000000000077863",
    "
postalCode
address": "
99980
Ciruelas",
    "dateOfBirth": "
2000
1999-
08
02-06",
    "
stateOfBirth
city": "
CDMX",
Villa 
"email": "lmedina@palo-it.com
de Alvarez",
    "
firstName
countryCode": "
Judith
MEX",
    "
lastName
county": "
Medina
CDMX",
    "
maternalLastName
colony": "
Ruiz
ADOLFO LOPEZ MATEOS",
    "
mobilePhoneNumber
externalNumber": "
5521163588
1007",
    "
identificationNumber
firstName": "
4152554487415113698
Sandra",
    "
ine
genderCode": 
"1234117890099"
2,
    "
occupation
houseNumber": "
Tester
123",
    "
genderCode
ine": "
1
1234117890099",
    "
user4
lastName": "
1
Velasco",
    "
identificationNumberFlag
maritalStatus": 
"2" }

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

PUT → /customers

Descripción

Request

Response

HTTP Codes

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

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

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

LinkAccountToCustomer

Descripción

Request

Response

GRPC Codes

Vincular cuenta al cliente

Code Block
{
  "
lastName
accountNumber": "
Velasco
9500505675946730065",

  "
maritalStatus
alternateCustomer": 
 
0,
 {
    "
maternalLastName
expirationDate": "
Medina", "middleName": "Rosa",
2023-08-22"
  },
  "
mobilePhoneIndicator
customerNumber": 
1
"0995000000000075954",
  
"
mobilePhoneNumber
qualification": "
31211635899
2",

  "
occupation
customerTypeIndicator": 
"NURSE"
0,

  "
ownOrRentResidenceFlag
foreignUseIndicator": 0
,

}
Code Block
{
    "
postalCode
customerNumber": 
54070
"0995000000000045697",
    "
stateOfBirth
accountNumber": "
DF
1650"
}
200

0 OK: Solicitud exitosa.

400500: Servicios no disponibles.

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

401: Apy Key no válida.

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

Vinculación del cliente en la cuenta de Spin.

Vincular una tarjeta con un número de cuenta

Code Block
{
"accountNumber": "0004217470138987703",

  "
customerNumber
cardNumber": "
0995000000000045698",
0004217470072001676"
}
Code Block
{
    "
qualification
accountNumber": "
1
0004217470072001676"
, "customerTypeIndicator": 0, "foreignUseIndicator": 0, "alternateCustomer": { "expirationDate": "2023/12/30" } } Code Block{ "accountNumber": "0004217470138987703", "customerNumber": "0995000000000045698", "qualification": "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
{
    "
customerTypeIndicator
cardNumber":
0, "foreignUseIndicator": 0
 "***************4568",
    "
alternateCustomer
customerOrAccountNumber":
{
 
"expirationDate": "2023/12/30" }
"9500507060523627372"
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: 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 → /v1/cards/embosser/details

GET /cards/account

Descripción

Request

Response

HTTP Codes

Code Block{ "accountNumber": "4444888833330009999",

Descripción

Request

Response

HTTP Codes

Obtener cuenta mediante Pantoken Activo

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 /account/prepaid

...

Descripción

...

Request

...

Response

...

HTTP Codes

Obtener cuenta mediante Pantoken Inactivo

Code Block
{
  "panToken": "0004217470595215803",
  "cardSequence": 1,
  "foreignUse": 1
}
Code Block
{
    "postToAccount": "9500507060523627372",
    "blockCode": "Z",
    "cardNumber": "
000123456ID5IXX1234
***************0252",
    "currentCardActivation": "N",
    "
isPrimaryCard
dateBlock": 
false } Code Block{

Descripción

Request

Response

HTTP Codes

Code Block{
"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/activation​

Obtener cuenta mediante Pantoken Expirado

Code Block
{
  "panToken": "0004217470200073271",
  "cardSequence": 1,
  "foreignUse": 1
}
Code Block
{
    "
organizationNumber
postToAccount": 
999
"9500507060523627372",
    "cardNumber": "
000123456ID5IXX1234
***************8578",
    "
serviceType
currentCardActivation": "
A
N"
, "userData": "string" }

}

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 - Bloqueo

Code Block
{
  "
organizationNumber
blockCode": 
999,
"
logo
Z"
: 1
,
  "
cardNumber
panToken": "
000123456ID5IXX1234
0004217470885923553",
  "
serviceType
cardSequence": 
"A"
1,
  "
numberCardsActivated
functionCode":
1,
 "
foreignOrg": 1, "numberForeignCardsActivated": 0 }
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 /cards/embosser/block

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.

...