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

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": {
 "box": "3",
    "
accountNumber
crPlaza": "
9500508496924050930
10MON",
    "
actionCode
crStore": "
8008
50WHN",
    "
transactionDescription
keyTracking": "
P2P_TRANSFER_SOURCE
KEYTRACKING0123456789",
    "
description
senderAccount": "
P2P_TRANSFER_SOURCE
senderAccount012345",
    "
authorizationCode
beneficiaryAccount": "
1234
beneficiaryAccount1",
 
},
   "
to
counterpartInstitution": 
{
"aaaaa",
    "
accountNumber
operatingInstitution": "
9500502030236002994
bbbbb",
    "
actionCode
frcUprkBeneficiary": "
8012
frcUprkBenefi",
    "
transactionDescription
orderingFrcUprk": "
P2P_TRANSFER_TARGET
orderingFrcUp",
    "
description
device": "
P2P_TRANSFER_SOURCE
123456789-123456789-123456789-12",
    "
authorizationCode
ip": "
1234"
198.162.200.200",
    
}
"latitude": -109.699,
    "
effectiveDate
longitude": 
"2022-01-30"
23.062,
    "
transactionAmount
recipientName": 
100
"recipientName01234567890123456",
    "
device
orderingName": "
abcfghjfghjklghjkfghjk5678956789
orderingName012345678901234567",
    "
ip
paymentSourceId": "
198.162.123.148",
paymentSourceId012345"
  },
  "
latitude
xTransactionId": "123
.56565656
",

  
"
longitude
accountNumber": 
-23.565656,
"9500508152383529456", 
  "
xTransactionId
operationType": "
123
D"
 }
Code Block
{
{
    "
effectiveDate
historyDate": "
2022
2023-
01
09-
30
18",
    "
transactionAmount
historyTime": "
100
164734",
  
"actionOutputArea": {
  
"
actionData
transactionData":
[
 {
        "
authorizationCode
transactionCode": "
1234
8000",
        "
accountNumber
currentBalance": "
9500508496924050930
-10000",
        "
transactionDescription
openToBuy": 
"P2P SENDER",
"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
{
  "
feeAmount
transactionData": 
"0",
{
    "
transactionCode
transactionAmount": 
8008
1000,

    "
currentBalance
actionCode": 
-5988391,
"8000",
    "
creditLimit
authorizationCode": 
0,
"311S3q",
    "
openToBuy
effectiveDate": 
598649100
"2023-06-21",
    
"
authorizationNumber
description": "
507925" }
P2P",
    
{ "authorizationCode
"paidConcept": "
1234
test",

    "
accountNumber
memoPostedIndicator": "
9500502030236002994
qqq",

    
"
transactionDescription
suppressMonetaryTransaction": "
P2P RECIEVER
qqq",

    
"
feeAmount
n1n2ByPass": "
0",
qqq",
    "
transactionCode
identifier": 
8012,
"S_IN",
    "
currentBalance
box": 
-169434
"3",

    
"
creditLimit
crPlaza": 
0,
"10MON",
    "
openToBuy
crStore": 
17133400,
"50WHN",
    "
authorizationNumber
keyTracking": "
332272
KEYTRACKING0123456789",
    "senderAccount": "senderAccount012345",
}
    
] } }

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": {
"beneficiaryAccount": "beneficiaryAccount1",
    "
transactionAmount
counterpartInstitution": 
20
"aaaaa",
    "
actionCode
operatingInstitution": "
8038
bbbbb",
    "
authorizationCode
frcUprkBeneficiary": "
Q1er44
frcUprkBenefi",
    "
effectiveDate
orderingFrcUprk": "
2022-08-24
orderingFrcUp",
    "
description
device": "
QR code test - normal hours
123456789-123456789-123456789-12",
    "
paidConcept
ip": "
Hello
198.162.200.200",
    "
memoPostedIndicator
latitude": 
" "
-109.699,
    "
suppressMonetaryTransaction
longitude": 
"Y"
23.062,
    "
n1n2ByPass
recipientName": "
N
recipientName01234567890123456",
    "
identifier
orderingName": 
0
"orderingName012345678901234567",
    "
box
paymentSourceId": "
1
paymentSourceId012345"
,

  },
  "
crPlaza
xTransactionId": "
10MON
123",
  
"
crStore
accountNumber": "
50WHN
9500508176491773011",
 
  "
keyTracking
operationType": "
Hello",
D"
 }
Code Block
{
    "
beneficiaryAccount
historyDate": "
Hello
2023-09-18",
    "
senderAccount
historyTime": "
Hello
164818",
    "
counterpartInstitution
transactionData":
"Hello",
 {
        "
operatingInstitution
transactionCode": "
Hello
8000",
        "
frcUprkBeneficiary
openToBuy": "
Hello
2000"
,

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

2 OK: Solicitud exitosa.

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

5 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
 "ip": "198.162.123.148",
    "latitude": 123.56565656,
    "longitude": -23.565656,
    "xTransactionId": "123"
}
Code Block
{
	
"postToAccount
"effectiveDate": "2022-01-30",
	"transactionAmount": "100",
	"actionOutputArea": {
		"actionData": [
			{
				"authorizationCode": "1234",
				"accountNumber": "9500508496924050930",
				"transactionDescription": "
9500508261544464147
P2P SENDER",
				"
blockCode
transactionCode": 
"Z"
8008,
				"
cardNumber
currentBalance": 
"***************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
{}
-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

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

Gateway

Account Adapter

Info

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

...

PUT → /v1/balances/transfers-qr

Descripción

Request

Response

HTTP Codes

Realiza la consulta de bloqueos de cuenta

GRPC Codes

Realiza una transferencia QR.

Code Block
{
  "
accountNumber
transactionData": 
"9500501520328494829" } Code Block{
{
    "transactionAmount": 20,
    "
accountData
actionCode": 
{
"8038",
    "
accountNumber
authorizationCode": "
9500501520328494829
Q1er44",
    "
customerNumber
effectiveDate": "
0995000000000035249
2022-08-24",
    "
blockCode1
description": "
M
QR code test - normal hours",
    "
blockCode1Date
paidConcept": "
2023-09-07
Hello",
    "
blockCode2
memoPostedIndicator": "
M
 ",
    "
blockCode2Date
suppressMonetaryTransaction": "
2023-08-11
Y",
    "
accountMakerDateOfBirth
n1n2ByPass": "N",
    "
availableCredit
identifier": 0,
    "
userAmounts9
box": 
0
"1",
    "
userAmounts10
crPlaza": 
0
"10MON",
    "
userAmounts7
crStore": 
0
"50WHN",
  
}
 
}

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{
 
"
blockCode
keyTracking": "Hello",
    "
blockCodeIndicator
beneficiaryAccount": 
1
"Hello",
    "
foreignUse
senderAccount": 
0
"Hello",
    "
functionCode
counterpartInstitution": "
U
Hello",
    "
accountNumber
operatingInstitution": "
9500501520328494829" } Code Block{
Hello",
    "
functionCode
frcUprkBeneficiary": "
B
Hello",
    "
accountNumber
orderingFrcUprk": "
9500501520328494829
Hello",
    "
blockCode1Local
device": "
M
123456789-123456789-123456789-12",
    "
localOrganization
ip": 
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{
"198.162.200.200",
    "
transactionData
latitude": 
{
-109.699,
    "
transactionAmount
longitude": 
1
23.062,
    "
actionCode
recipientName": "
8012
Hello",
    "
authorizationCode
orderingName": "
311S3q
Hello",
    "
effectiveDate
paymentSourceId": "
2023-06-21",
bf0469d7-b507-44d6-af7d-d4edea6340f1"
  },
  "
description
xTransactionId": "
P2P
123",

  "
paidConcept
accountNumber": "
test
9500508020127353147"
,

"memoPostedIndicator
}
Code Block
{
	"historyDate": "
qqq
2023-09-08",
"suppressMonetaryTransaction
	"historyTime": "
qqq
122732",
	"transactionData": {
		"
n1n2ByPass
transactionCode": "
qqq
8038",
		"transactionDescription": "CASHOUT WITH QR-CODE(FREE BAL)",
		"
identifier
currentBalance": "
S_IN
-1382946",
		"openToBuy": "1382486"
"box": "3", "crPlaza": "10MON",
	}
}

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

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

GRPC Codes

Realiza una transferencia QR

Vinculación del cliente en la cuenta de Spin.

Code Block
{
    "
transactionData
accountNumber": 
{
"0004217470138987703",
    "
transactionAmount
customerNumber": 
20
"0995000000000045698",
    "
actionCode
qualification": "
8038
1",
    "
authorizationCode
customerTypeIndicator": 
"Q1er44"
0,
    "
effectiveDate
foreignUseIndicator": 
"2022-08-24"
0,
    "
description
alternateCustomer": 
"QR
{
code
 
test
 
-
 
normal hours",
     "
paidConcept
expirationDate": "
Hello",
2023/12/30"
    }
}
Code Block
{
    "
memoPostedIndicator
customerNumber": "
0995000000000045697",
    "
suppressMonetaryTransaction
accountNumber": "
Y
1650"
, "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.

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",
  
"
crPlaza
cardSequence": 
"10MON"
2147483647,

  "
crStore": "50WHN", "keyTracking
foreignUse": 0
}
Code Block
{
	"postToAccount": "
Hello
9500508261544464147",
"beneficiaryAccount
	"blockCode": "
Hello
Z",
"senderAccount
	"cardNumber": "
Hello
***************0252",
"counterpartInstitution
	"currentCardActivation": "
Hello
N",
"operatingInstitution
	"dateBlock": "
Hello",
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
 {
  "
frcUprkBeneficiary
customerOrAccountNumber": "
Hello
1234567890123456800",

  "
orderingFrcUprk
cardNumber": "
Hello
000123456ID5IXX1234",

  
"
device
cardholderType": 
"123456789-123456789-123456789-12",
1
}

Code Block
{
  "
ip
customerOrAccountNumber": "
198.162.200.200
1234567890123456800",

  
"
latitude
cardNumber": 
-109.699, "longitude": 23.062,
"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
{
  "
recipientName
cardNumber": "
Hello
000123456ID5IXX1234",
}

Code Block
{
    "
orderingName
accountNumber": "
Hello",
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,
  "
paymentSourceId
cardNumber": "
bf0469d7-b507-44d6-af7d-d4edea6340f1" }
000123456ID5IXX1234",
  "
xTransactionId
serviceType": "
123
A",
  "
accountNumber
userData": "
9500508020127353147
string"
}

Code Block
{
  "
historyDate
organizationNumber": 
"2023-09-12"
999,
  "logo": 1,
  "
historyTime
cardNumber": "
111311
000123456ID5IXX1234",
  "
transactionData
serviceType": "A",
 
{
 "numberCardsActivated": 1,
  "
transactionCode
foreignOrg": 
"8038"
1,
  "numberForeignCardsActivated": 
"transactionDescription": "CASHOUT WITH QR-CODE(FREE BAL)", "currentBalance": "-1382946", "openToBuy": "1382326" } }

2 OK: Solicitud exitosa.

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

5 Internal Server Error

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

HTTP

GRPC Codes

Realiza la consulta de

balance

bloqueos de cuenta.

Code Block
{
  "accountNumber": "9500501520328494829"
}
Code Block
{
  "accountData": {
    "accountNumber": "9500501520328494829",
    "
accountOrCardNumber
customerNumber": "
9500501520328494829
0995000000000035249",
    "
currentBalance
blockCode1": 
998176210159
"M",
    "
availableCreditLimit
blockCode1Date": 
32237425576994724,
"2023-09-07",
    "
frozenBalance": 26000 }

2 OK: Solicitud exitosa.

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

5 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 Codes

Creación del cliente

Code Block{
blockCode2": "M",
    "
logo
blockCode2Date": "
60
2023-08-11",
    "
address
accountMakerDateOfBirth": "
Ciruelas
",
    "
houseNumber
availableCredit": 
"12345"
0,
    "
externalNumber
userAmounts9": 
"8007"
0,
    "
colony
userAmounts10": 
"Lomas"
0,
    "
city
userAmounts7": 
"Lomas
0
de
 
Alvarez",
 }
}

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
{
  "
state
blockCode": "
COL
",
  "blockCodeIndicator": 1,
  "
postalCode
foreignUse": 
"99980"
0,

  "
dateOfBirth
functionCode": "
2000-08-06
U",

  
"
stateOfBirth
accountNumber": "
CDMX
9500501520328494829"
,

}
Code Block
{
  "
email
functionCode": "
lmedina@palo-it.com
B",
  
"
firstName
accountNumber": "
Judith
9500501520328494829",

  
"
lastName
blockCode1Local": "
Medina
M",
  
"
maternalLastName
localOrganization": 
"Ruiz",
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
{
  
"
mobilePhoneNumber
accountNumber": "
5521163588
9500501520328494829"
,

}
Code Block
{
  
"
identificationNumber
accountData": 
"4152554487415113698",
{
    "
ine
accountNumber": "
1234117890099
9500501520328494829",
    "
occupation
customerNumber": "
Tester
0995000000000035249",
    "
genderCode
blockCode1": "
1
M",
    "
user4
blockCode1Date": "
1
2023-09-07",
    "
identificationNumberFlag
blockCode2": "
2
M",
} Code Block{
    "
logo
blockCode2Date": "
60
2023-08-11",
    "
address
accountMakerDateOfBirth": "
Ciruelas
",
    "
houseNumber
availableCredit": 
"12345"
0,
    "
externalNumber
userAmounts9": 
"8007"
0,
    "
colony
userAmounts10": 
"Lomas"
0,
    "
city
userAmounts7":
"Lomas de Alvarez",
 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
{
  "
state
accountNumber": "
COL
9500501520328494829"
,

}
Code Block
{
  "
postalCode
accountOrCardNumber": "
99980
9500501520328494829",
  
"
dateOfBirth
currentBalance": 
"2000-08-06",
998176210159,
  "
stateOfBirth
availableCreditLimit": 
"CDMX"
32237425576994724,
  
"
email
frozenBalance": 
"lmedina@palo-it.com", "firstName": "Judith", "lastName": "Medina", "maternalLastName": "Ruiz", "mobilePhoneNumber": "5521163588", "identificationNumber": "4152554487415113698", "ine": "1234117890099", "occupation": "Tester", "genderCode": "1", "user4":"1", "identificationNumberFlag": "2" }2
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.

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

Code Block{

Realiza una transferencia .

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

  "
stateOfBirth
operationType": "
DF
W"
} Code Block{
  },
  "
email
xTransactionId": "
lmedina@palo-it.com
123",
  
"
numberType
accountNumber": 
1,
"9500501545918394337"
}
Code Block
{
  "
customerNumber
historyDate": "
0995000000000077863
2023-09-12",
  
"
address
historyTime": "
Ciruelas
111208",

  "
dateOfBirth
transactionData": 
"1999-02-06",
{
    "
city
transactionCode": "
Villa de Alvarez
8012",
    "
countryCode
transactionDescription": "
MEX
P2P RECIEVER",
    "
county
currentBalance": "
CDMX
-2122495",
    "
colony
openToBuy": "2122548"
ADOLFO

LOPEZ
 
MATEOS",
 }
}

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
{
  "
externalNumber
from": 
"1007",
{
    "
firstName
accountNumber": "
Sandra
9500508496924050930",
    "
genderCode
actionCode": 
2
"8008",
    "
houseNumber
transactionDescription": "
123
P2P_TRANSFER_SOURCE",
    "
ine
description":
"1234117890099
 "P2P_TRANSFER_SOURCE",
    "
lastName
authorizationCode": "
Velasco
1234"
,

  },
  "
maritalStatus
to": 
0,
{
    "
maternalLastName
accountNumber": "
Medina
9500502030236002994",
    "
middleName
actionCode": "
Rosa
8012",
    "
mobilePhoneIndicator
transactionDescription": 
1
"P2P_TRANSFER_TARGET",
    "
mobilePhoneNumber
description": "
31211635899
P2P_TRANSFER_SOURCE",
    "
occupation
authorizationCode": "
NURSE
1234"
  },
    "
ownOrRentResidenceFlag
effectiveDate": 
0
"2022-01-30",
    "
postalCode
transactionAmount": 
54070
100,
    "
stateOfBirth
device": "
DF
abcfghjfghjklghjkfghjk5678956789"
}

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
ip": "
9500505675946730065
198.162.123.148",
    "
alternateCustomer
latitude": 123.56565656,
  
{
  "
expirationDate
longitude": 
"2023-08-22"
-23.565656,
 
},
   "
customerNumber
xTransactionId": "
0995000000000075954",
123"
}
Code Block
{
  "
qualification
effectiveDate": "
2
2022-01-30",
  "
customerTypeIndicator
transactionAmount": 
0
"100",
  "
foreignUseIndicator": 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

Code Block{ "addressLine1": "1", "addressLine2": "2", "assignedSpendingLimits": {
actionOutputArea": {
    "actionData": [
      {
        "authorizationCode": "1234",
        "accountNumber": "9500508496924050930",
        "transactionDescription": "P2P SENDER",
        "
maximumSpendingLimit
feeAmount": 
3
"0",
        "
spendingFrequency
transactionCode": 
4
8008,
        "
spendingTransaction
currentBalance":
5 },
 -5988391,
        "creditLimit": 0,
    
"atmCashAmount":
 
6,
   "
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,
"QR code test 
"overTheCounterCashAmount": 42,
- 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
orderingFrcUprk": 
59
"Hello",
    "
stateOrProvince
device": "
60
123456789-123456789-123456789-12",
    "
typeCardMailer
ip": "
61
198.162.200.200",
    "
typeOfCard
latitude": 
"62"
-109.699,
    "
user1
longitude": 
63
23.062,
    "
user2
recipientName": 
64
"Hello",
    "
user3
orderingName": 
65
"Hello",
    "
user4
paymentSourceId": 
66
"bf0469d7-b507-44d6-af7d-d4edea6340f1"
  },
  "
user5
xTransactionId": 
67
"123",
  "
user6
accountNumber":
68,
 "
user7
9500508020127353147"
: 69,

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

POST → /v1/accounts/details

...

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.

400500

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

401: Apy Key no válida.

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",
 
"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{
"U",
  "accountNumber": "9500501520328494829"
}
Code Block
{
"accountData":
 
{
 
"
accountNumber
functionCode": "
9500501520328494829
B",
"customerNumber":
 
"0995000000000035249",
 
"
blockCode1
accountNumber": "
M
9500501520328494829",
"blockCode1Date":
 
"2023-09-06",
 
"
blockCode2
blockCode1Local": "M",
 
 "
blockCode2Date
localOrganization": 
"2023-08-11" }
950
}
200

0 OK: Solicitud exitosa.

400

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

401: Apy Key no válida.

500:

13 Internal Server Error: Servicios no disponibles.

POST → /v1/balances

...

TransferBalance

Descripción

Request

Response

HTTP

GRPC Codes

Realiza

la consulta de balance de cuenta

una transferencia .

Code Block
{
{
  "transactionData": {
    "
accountNumber
transactionAmount":
"9500501520328494829" } Code Block{ "accountOrCardNumber
 1,
    "actionCode": "
9500501520328494829
8012",
"currentBalance
    "authorizationCode": 
998176209259, "availableCreditLimit
"311S3q",
    "effectiveDate": 
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.

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.

PUT → /v1/balances/transfers

Descripción

Request

Response

HTTP Codes

Realiza una transferencia .

Code Block{ "transactionData": { "transactionAmount": 1
"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",
    "
actionCode
operatingInstitution": "
8012
bbbbb",
    "
authorizationCode
frcUprkBeneficiary": "
311S3q
frcUprkBenefi",
    "
effectiveDate
orderingFrcUprk": "
2023-06-21
orderingFrcUp",
    "
description
device": "
P2P
123456789-123456789-123456789-12",
    "
paidConcept
ip": "
test
198.162.200.200",
    "
memoPostedIndicator
latitude": 
"qqq"
-109.699,
    "longitude": 23.062,
    "
suppressMonetaryTransaction
recipientName": "
qqq
recipientName01234567890123456",
    "
n1n2ByPass
orderingName": "
qqq
orderingName012345678901234567",
    "
identifier
paymentSourceId": "
S_IN
paymentSourceId012345"
,

  },
  "
box
xTransactionId": "
3
123",
  
"
crPlaza
accountNumber": "
10MON
9500501545918394337"
,

}
Code Block
{
  "
crStore
historyDate": "
50WHN
2023-09-12",

  "
keyTracking
historyTime": "
KEYTRACKING0123456789
111208",
  
"
senderAccount
transactionData": 
"senderAccount012345",
{
    "
beneficiaryAccount
transactionCode": "
beneficiaryAccount1
8012",
    "
counterpartInstitution
transactionDescription": "
aaaaa
P2P RECIEVER",
    "
operatingInstitution
currentBalance": "
bbbbb
-2122495",
    "
frcUprkBeneficiary
openToBuy": "
frcUprkBenefi
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
{
  "
orderingFrcUprk
from": 
"orderingFrcUp",
{
    "
device
accountNumber": "
123456789-123456789-123456789-12
9500508496924050930",
    "
ip
actionCode": "
198.162.200.200
8008",
    "
latitude
transactionDescription": 
-109.699, "longitude": 23.062
"P2P_TRANSFER_SOURCE",
    "
recipientName
description": "
recipientName01234567890123456
P2P_TRANSFER_SOURCE",
    "
orderingName
authorizationCode": "
orderingName012345678901234567
1234"
,

  
"paymentSourceId": "paymentSourceId012345"
},
  "
xTransactionId
to": 
"123", "accountNumber": "9500501545918394337" } Code Block{ "historyDate": "2023-09-08", "historyTime
{
    "accountNumber": "
122250
9500502030236002994",
  
"transactionData":
 
{
 
"
transactionCode
actionCode": "8012",
    
"transactionDescription": "P2P
RECIEVER
_TRANSFER_TARGET",
    
"
currentBalance
description": "
-2122495
P2P_TRANSFER_SOURCE",
 
"openToBuy
   "authorizationCode": "
2122546
1234"
  }
}

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": {
,
    "effectiveDate": "2022-01-30",
    "transactionAmount": 100,
    "
accountNumber
device": "
9500508496924050930
abcfghjfghjklghjkfghjk5678956789",
    "
actionCode
ip": "
8008
198.162.123.148",
    "
transactionDescription
latitude": 123.56565656,
    "
P2P_TRANSFER_SOURCE"
longitude": -23.565656,
    "
description
xTransactionId": "
P2P_TRANSFER_SOURCE
123"
,

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

"2022-01-30",
 
"transactionAmount":
 
"100",
 
"actionOutputArea":
 
{
 
"actionData":
 
[
 
{
 
"authorizationCode": "1234",

        "accountNumber": "
9500508496924050930
9500502030236002994",
"transactionDescription": "P2P SENDER", "transactionCode": 8008, "currentBalance": -5988391.0, "openToBuy": 5.987391E8, "authorizationNumber": "205229" }, { "authorizationCode": "1234", "accountNumber": "9500502030236002994", "transactionDescription": "P2P RECIEVER",

        "transactionDescription": "P2P RECIEVER",
        "feeAmount": "0",
        "transactionCode": 8012,

        "currentBalance": -169434
.
,
        "creditLimit": 0,
        "openToBuy": 
1.70434E7
17133400,

        "authorizationNumber": "
923589
332272"
} ]
      }
    ]
  }
}
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.

...

FrozenBalanceTransfer

Descripción

Request

Response

HTTP

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": "
Hello
8038",
    "
paymentSourceId
transactionDescription": "
bf0469d7-b507-44d6-af7d-d4edea6340f1"
CASHOUT WITH QR-CODE(FREE BAL)",
  
},
  "
xTransactionId
currentBalance": "
123
-1382946",
    "
accountNumber
openToBuy": "
9500508020127353147
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
{
"historyDate":
 
"2023-09-08",
 
"
historyTime
accountNumber": "
122732", "transactionData": { "transactionCode
9500501520328494829"
}
Code Block
{
  "accountOrCardNumber": "
8038
9500501520328494829",
  
"
transactionDescription
currentBalance": 
"CASHOUT
998176210159,
WITH
 
QR-CODE(FREE
 
BAL)", "currentBalance": "-1382946", "openToBuy": "1382486" } }200
"availableCreditLimit": 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
customerNumber": "
60",
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
{
    "
address
email": "
Ciruelas
lmedina@palo-it.com",
    "
houseNumber
numberType": 
"12345"
1,
    "
externalNumber
customerNumber": "
8007
0995000000000077863",
    "
colony
address": "
Lomas
Ciruelas",
    "
city
dateOfBirth": "
Lomas de Alvarez
1999-02-06",
    "
state
city": "
COL
Villa de Alvarez",
    "
postalCode
countryCode": "
99980
MEX",
    "
dateOfBirth
county": 
"2000-08-06
"CDMX",
    "
stateOfBirth
colony": "
CDMX
ADOLFO LOPEZ MATEOS",
    "
email
externalNumber": "
lmedina@palo-it.com
1007",
    "firstName": "
Judith
Sandra",
    "
lastName
genderCode": 
"Medina"
2,
    "
maternalLastName
houseNumber": "
Ruiz
123",
    "
mobilePhoneNumber
ine": "
5521163588
1234117890099",
    "
identificationNumber
lastName": "
4152554487415113698
Velasco",
    "
ine
maritalStatus": 
"1234117890099"
0,
    "
occupation
maternalLastName": "
Tester
Medina",
    "
genderCode
middleName": "
1
Rosa",
    "
user4
mobilePhoneIndicator":
"
 1
"
,
    "
identificationNumberFlag
mobilePhoneNumber": "
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{
31211635899",
    "
email
occupation": "
lmedina@palo-it.com
NURSE",
    "
numberType
ownOrRentResidenceFlag": 
1
0,
    "
customerNumber
postalCode": 
"0995000000000077863"
54070,
    "
address
stateOfBirth": "DF"
}
Code Block
{
    "
Ciruelas",
outputArea": {
        "
dateOfBirth
customerNumber": "
1999-02-06
0995000000000077863",
        "
city
accountNumber": "0995000000000077863"
Villa
,
  
de
 
Alvarez",
     "
countryCode
responseCode": "
MEX
",
        "
county
level": "
CDMX
",
        "
colony
transactionAmount": 
"ADOLFO LOPEZ MATEOS",
0,
        "countryLimit": {
            "
externalNumber
dailyLimitLoad": 
"1007"
0,
      
"firstName":
 
"Sandra",
     "
genderCode
monthlyLimitLoad": 
2
0,
    
"houseNumber": "123",
        "
ine
dailyLimitCash": 
"1234117890099"
0,
      
"lastName":
 
"Velasco",
     "
maritalStatus
monthlyLimitCash": 0,
      
"maternalLastName":
 
"Medina",
     "
middleName
limitForDepositTransactions": 
"Rosa",
0
       
"mobilePhoneIndicator":
 
1
},
        "
mobilePhoneNumber
accountLimit":
"31211635899",
 {
      
"occupation":
 
"NURSE",
     "
ownOrRentResidenceFlag
accountDailyAmountLoad": 0,
    
"postalCode": 54070,
        "
stateOfBirth
accountMonthlyAmountLoad": 
"DF" } Code Block{
0,
     
"email": "lmedina@palo-it.com",
       "
numberType
accountDailyAmountCash": 
1
0,
      
"customerNumber":
 
"0995000000000077863",
     "
address
accountMonthlyAmountCash": 
"Ciruelas",
0
    
"dateOfBirth":
 
"1999-02-06",
   }
 
"city":
 
"Villa
 
de
 
Alvarez",
}
}

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
{
  "
countryCode
accountNumber": "
MEX
9500505675946730065",
  
"
county
alternateCustomer":
"CDMX",
 
  {
    "
colony
expirationDate": "
ADOLFO LOPEZ MATEOS",
2023-08-22"
  },
  "
externalNumber
customerNumber": "
1007
0995000000000075954",

  "
firstName
qualification": "
Sandra
2",
  
"
genderCode
customerTypeIndicator": 
2
0,

  
"
houseNumber
foreignUseIndicator":
"123",
 0
}
Code Block
{
    "
ine
customerNumber": "
1234117890099
0995000000000045697",
    "
lastName
accountNumber": 
"Velasco",
"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
{
  "
maritalStatus
cardNumber":
0,
 
"
maternalLastName
0004217470072001676"
: "Medina",

}
Code Block
{
    "
middleName
accountNumber": "
Rosa
0004217470072001676"
, "mobilePhoneIndicator": 1, "mobilePhoneNumber": "31211635899", "occupation": "NURSE", "ownOrRentResidenceFlag": 0,

}

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
{
    "
postalCode
cardNumber": 
54070
"***************4568",
    "
stateOfBirth
customerOrAccountNumber": "
DF
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

Vinculación del cliente en la cuenta de Spin.

Obtener cuenta mediante Pantoken Activo

Code Block
{
  "panToken": "0004217470595215803",
  "cardSequence": 2147483647,
  "foreignUse": 0
}
Code Block
{
	"postToAccount": "9500508261544464147",
	"blockCode": "Z",
	"
accountNumber
cardNumber": "
0004217470138987703
***************0252",
"customerNumber
	"currentCardActivation": "
0995000000000045698
N",
"qualification
	"dateBlock": "
1
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
{
  "
customerTypeIndicator
panToken":
0,
 "
foreignUseIndicator
0004217470595215803"
: 0
,

  "
alternateCustomer
cardSequence": 
{
1,
  
"
expirationDate
foreignUse": 
"2023/12/30" }
1
}
Code Block{ "accountNumber": "0004217470138987703",
Code Block
{
    "
customerNumber
postToAccount": "
0995000000000045698
9500507060523627372",
    "
qualification
blockCode": "
1
Z",
    "
customerTypeIndicator
cardNumber": 
0
"***************0252",
    "
foreignUseIndicator
currentCardActivation":
0,
 "
alternateCustomer": {
N",
    "
expirationDate
dateBlock": "2023
/12/30" }
-09-04"
}

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 /cards/embosser/details

Descripción

Request

Response

HTTP Codes

500: Servicios no disponibles.

Obtener cuenta mediante Pantoken Expirado

Code Block
{
  "panToken": "
0004217470595215803
0004217470200073271",
  "cardSequence": 
2147483647
1,
  "foreignUse": 
0
1
}
Code Block
{
    "postToAccount": "
9500508261544464147
9500507060523627372",
"blockCode": "Z",
    "cardNumber": "***************
***0252", "currentCardActivation": "N", "dateBlock": "2023-09-04"
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

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

Descripción

Request

Response

HTTP Codes

Bloqueo de tarjetas - Bloqueo

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.

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.

...