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", "
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",
    "authorizationCode": "311S3q",
    "effectiveDate": "2023-06-21",
    "description": "P2P",
    "paidConcept": "test",
    "memoPostedIndicator": "qqq",
    "suppressMonetaryTransaction": "qqq",
    "n1n2ByPass": "qqq",
    "identifier": "S_IN",
    "box": "3",
    "crPlaza": "10MON",
    "crStore": "50WHN",
    "keyTracking": "KEYTRACKING0123456789",
    "senderAccount": "senderAccount012345",
    "beneficiaryAccount": "beneficiaryAccount1",
    "counterpartInstitution": "aaaaa",
    "operatingInstitution": "bbbbb",
    "frcUprkBeneficiary": "frcUprkBenefi",
    "orderingFrcUprk": "orderingFrcUp",
    "device": "123456789-123456789-123456789-12",
    "ip": "198.162.200.200",
    "latitude": -109.699,
    "longitude": 23.062,
    "recipientName": "recipientName01234567890123456",
    "orderingName": "orderingName012345678901234567",
    "paymentSourceId": "paymentSourceId012345"
  },
  "xTransactionId": "123",
  "accountNumber": 
"9500501545918394337"
"9500508152383529456", 
  "operationType": "D"
 }
Code Block
{
    "historyDate": "2023-09-
12
18",
    "historyTime": "
111208
164734",
    "transactionData": {

   
"transactionCode":
 
"8012",
    
"
transactionDescription
transactionCode": "
P2P RECIEVER
8000",
        "currentBalance": "-
2122495
10000",
        "openToBuy": "
2122548
12000"
    }
}
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.

TransferPeerToPeer

Descripción

Realiza una transferencia P2P.

Code Block{

Request

Response

HTTP Codes

Realiza una transferencia - Número de cuenta Bloqueada

Code Block
{
  "transactionData": {
    "transactionAmount": 1000,
    "actionCode": "8000",
    "authorizationCode": "311S3q",
    "
from
effectiveDate": 
{
"2023-06-21",
    "
accountNumber
description": "
9500508496924050930
P2P",
    "
actionCode
paidConcept": "
8008
test",
    "
transactionDescription
memoPostedIndicator": "
P2P_TRANSFER_SOURCE
qqq",
    "
description
suppressMonetaryTransaction": "
P2P_TRANSFER_SOURCE
qqq",
    "
authorizationCode
n1n2ByPass": "
1234
qqq",
    
},
"identifier": "S_IN",
    "
to
box": 
{
"3",
    "
accountNumber
crPlaza": "
9500502030236002994
10MON",
    "
actionCode
crStore": "
8012
50WHN",
    "
transactionDescription
keyTracking": "
P2P_TRANSFER_TARGET
KEYTRACKING0123456789",
    "
description
senderAccount": "
P2P_TRANSFER_SOURCE
senderAccount012345",
    "
authorizationCode
beneficiaryAccount": "
1234
beneficiaryAccount1",
    
}
"counterpartInstitution": "aaaaa",
    "
effectiveDate
operatingInstitution": 
"2022-01-30
"bbbbb",
    "frcUprkBeneficiary": "frcUprkBenefi",
    "
transactionAmount
orderingFrcUprk": 
100
"orderingFrcUp",
    "device": "
abcfghjfghjklghjkfghjk5678956789
123456789-123456789-123456789-12",
    "ip": "198.162.
123
200.
148
200",
    "latitude": 
123
-109.
56565656
699,
    "longitude": 
-
23.
565656
062,
    "
xTransactionId
recipientName": "
123
recipientName01234567890123456",
 
} Code Block{
   "
effectiveDate
orderingName": "
2022-01-30
orderingName012345678901234567",
    "
transactionAmount
paymentSourceId": "
100
paymentSourceId012345"
  },
  "
actionOutputArea
xTransactionId": 
{ "actionData": [
"123",
  
{ "authorizationCode
"accountNumber": "
1234
9500508176491773011", 
  
"
accountNumber
operationType": "
9500508496924050930
D"
,

 
}
Code Block
{
    "
transactionDescription
historyDate": "
P2P SENDER",
2023-09-18",
    "
feeAmount
historyTime": "
0
164818",

    "
transactionCode
transactionData": 
8008,
{
        "
currentBalance
transactionCode": 
-5988391
"8000",
        "
creditLimit
openToBuy":
0,
 "2000"
    }
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

PUT → /v1/balances/transfers-p2p

Descripción

Request

Response

HTTP Codes

GRPC Codes

Realiza una transferencia P2P.

Code Block
{
  "
openToBuy
from": 
598649100,
{
    
"
authorizationNumber
accountNumber": "
507925" }, {
9500508496924050930",
    "
authorizationCode
actionCode": "
1234
8008",

    
"
accountNumber
transactionDescription": "
9500502030236002994
P2P_TRANSFER_SOURCE",

    
"
transactionDescription
description": "P2P
RECIEVER
_TRANSFER_SOURCE",

    "
feeAmount
authorizationCode": "
0
1234"
,

  
},
  "
transactionCode
to": 
8012,
{
    
"
currentBalance
accountNumber": 
-169434,
"9500502030236002994",
    
"
creditLimit
actionCode":
0,
 "
openToBuy
8012"
: 17133400
,

    "
authorizationNumber
transactionDescription": "
332272
P2P_TRANSFER_TARGET",
    "description": 
}
"P2P_TRANSFER_SOURCE",
    
]
"authorizationCode": "1234"
  }
}

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
effectiveDate": 
{ "transactionAmount": 20
"2022-01-30",
    "
actionCode
transactionAmount": 
"8038"
100,
    "
authorizationCode
device": "
Q1er44
abcfghjfghjklghjkfghjk5678956789",
    "
effectiveDate
ip": "
2022-08-24
198.162.123.148",
    "
description
latitude": 
"QR code test - normal hours"
123.56565656,
    "longitude": -23.565656,
    "
paidConcept
xTransactionId": "
Hello
123"
,

"memoPostedIndicator
}
Code Block
{
	"effectiveDate": "
2022-01-30",
"suppressMonetaryTransaction
	"transactionAmount": "
Y
100",
	"actionOutputArea": {
		"actionData": [
			{
				"
n1n2ByPass
authorizationCode": "
N
1234",
"identifier
				"accountNumber": 
0
"9500508496924050930",
"box
				"transactionDescription": "
1
P2P SENDER",
				"transactionCode": 
"crPlaza
8008,
				"currentBalance": 
"10MON", "crStore": "50WHN", "keyTracking
-5988391.0,
				"openToBuy": 5.987391E8,
				"authorizationNumber": "
Hello
205229"
			},
"beneficiaryAccount
			{
				"authorizationCode": "
Hello
1234",
"senderAccount
				"accountNumber": "
Hello
9500502030236002994",
"counterpartInstitution
				"transactionDescription": "
Hello
P2P RECIEVER",
"operatingInstitution
				"transactionCode": 
"Hello"
8012,
"frcUprkBeneficiary
				"currentBalance": 
"Hello", "orderingFrcUprk": "Hello", "device": "123456789-123456789-123456789-12", "ip": "198.162.200.200", "latitude": -109.699, "longitude": 23.062,
-169434.0,
				"openToBuy": 1.70434E7,
				"authorizationNumber": "923589"
			}
		]
	}
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

PUT → /v1/balances/transfers-qr

Descripción

Request

Response

HTTP Codes

GRPC Codes

Realiza una transferencia QR.

Code Block
{
  "transactionData": {
    "
recipientName
transactionAmount": 
"Hello"
20,
    "
orderingName
actionCode": "
Hello
8038",
    "
paymentSourceId
authorizationCode": "
bf0469d7-b507-44d6-af7d-d4edea6340f1" }, "xTransactionId": "123", "accountNumber": "9500508020127353147" } Code Block{ "historyDate": "2023-09-12", "historyTime": "111311", "transactionData": {
Q1er44",
    "
transactionCode
effectiveDate": "
8038
2022-08-24",
    "
transactionDescription
description": "
CASHOUT
QR code 
WITH
test 
QR
-
CODE(FREE BAL)
 normal hours",
    "
currentBalance
paidConcept": "
-1382946
Hello",
    "
openToBuy
memoPostedIndicator": "
1382326
 "
,
}
 
}

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
suppressMonetaryTransaction": "
0004217470595215803
Y",
    "
cardSequence
n1n2ByPass": 
2147483647
"N",
    "
foreignUse
identifier": 0
} Code Block{ "postToAccount
,
    "box": "
9500508261544464147
1",
    
"
blockCode
crPlaza": "
Z
10MON",
  
"cardNumber":
 
"***************0252",
 
"
currentCardActivation
crStore": "
N
50WHN",
"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{
    "keyTracking": "Hello",
    "
blockCode
beneficiaryAccount": "
Z
Hello",
    "
panToken
senderAccount": "
0004217470885923553
Hello",
    "
cardSequence
counterpartInstitution": 
1
"Hello",
    "
functionCode
operatingInstitution": "
B
Hello"
//B para bloquear - u Desbloquear }
Code Block
{}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

Gateway

Account Adapter

Info

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

GetAccountDetails

Descripción

Request

Response

HTTP Codes

Realiza la consulta de bloqueos de cuenta.

Code Block
{
  "accountNumber": "9500501520328494829"
}
Code Block{ "accountData": {
,
    "frcUprkBeneficiary": "Hello",
    "orderingFrcUprk": "Hello",
    "device": "123456789-123456789-123456789-12",
    "ip": "198.162.200.200",
    "latitude": -109.699,
    "longitude": 23.062,
    "
accountNumber
recipientName": "
9500501520328494829
Hello",
    "
customerNumber
orderingName": "
0995000000000035249
Hello",
    "
blockCode1
paymentSourceId": "
M",
bf0469d7-b507-44d6-af7d-d4edea6340f1"
  },
  "
blockCode1Date
xTransactionId": "
2023-09-07
123",

  "
blockCode2
accountNumber": "
M
9500508020127353147"
,

"blockCode2Date
}
Code Block
{
	"historyDate": "2023-09-08
-11
",
"accountMakerDateOfBirth
	"historyTime": "122732",
	"transactionData": {
		"
availableCredit
transactionCode": 
0
"8038",
"userAmounts9
		"transactionDescription": 
0,
"CASHOUT WITH QR-CODE(FREE 
"userAmounts10
BAL)",
		"currentBalance": 
0
"-1382946",
		"openToBuy": "1382486"
"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.

...

...

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

Realiza bloqueos/desbloqueo de cuenta

Registro del cliente en la el proveedor de clientes.

Code Block
{
    "
blockCode
logo": "60",
  
"blockCodeIndicator":
 
1,
 
"
foreignUse
address":
0,
 "
functionCode
Ciruelas"
: "U"
,

"accountNumber":
 
"9500501520328494829"
 
} Code Block{
  
"
functionCode
houseNumber": "
B
12345",
    "
accountNumber
externalNumber": "
9500501520328494829
8007",
    "
blockCode1Local
colony": "
M
Lomas",
    "
localOrganization
city":
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{
 "Lomas de Alvarez",
    "
transactionData
state": 
{
"COL",
    "
transactionAmount
postalCode": 
1
"99980",
    "
actionCode
dateOfBirth": "
8012
2000-08-06",
    "
authorizationCode
stateOfBirth": "
311S3q
CDMX",
    "
effectiveDate
email": "
2023-06-21
lmedina@palo-it.com",
    "
description
firstName": "
P2P
Judith",
    "
paidConcept
lastName": "
test
Medina",
    "
memoPostedIndicator
maternalLastName": "
qqq
Ruiz",
    "
suppressMonetaryTransaction
mobilePhoneNumber": "
qqq
5521163588",
    "
n1n2ByPass
identificationNumber": "
qqq
4152554487415113698",
    "
identifier
ine": "
S_IN
1234117890099",
    "
box
occupation": "
3
Tester",
    "
crPlaza
genderCode": "
10MON
1",
    "
crStore
user4":
"
50WHN
1",
    "
keyTracking
identificationNumberFlag": "
KEYTRACKING0123456789",
2"
}
Code Block
{
    "
senderAccount
customerNumber": 
"senderAccount012345",
"0995000000000080589"
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

PUT → /customers

Descripción

Request

Response

HTTP Codes

GRPC Codes

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

Code Block
{
    "
beneficiaryAccount
email": "
beneficiaryAccount1
lmedina@palo-it.com",
    "
counterpartInstitution
numberType": 
"aaaaa"
1,
    "
operatingInstitution
customerNumber": "
bbbbb
0995000000000077863",
    "
frcUprkBeneficiary
address": "
frcUprkBenefi
Ciruelas",
    "
orderingFrcUprk
dateOfBirth": "
orderingFrcUp", "device": "123456789-123456789-123456789-12
1999-02-06",
    "
ip
city": "
198.162.200.200", "latitude": -109.699
Villa de Alvarez",
    "
longitude
countryCode": 
23.062, "recipientName": "recipientName01234567890123456"
"MEX",
    "
orderingName
county": "
orderingName012345678901234567
CDMX",
"paymentSourceId": "paymentSourceId012345"

 
},
   "
xTransactionId
colony": "
123
ADOLFO LOPEZ MATEOS",
    "
accountNumber
externalNumber": "
9500501545918394337
1007",
 
} Code Block{
   "
historyDate
firstName": "
2023-09-12
Sandra",
    "
historyTime
genderCode": 
"111208"
2,
    "
transactionData
houseNumber": 
{
"123",
    "
transactionCode
ine": "
8012
1234117890099",
    "
transactionDescription
lastName": "
P2P RECIEVER
Velasco",
    "
currentBalance
maritalStatus": 
"-2122495"
0,
    "
openToBuy
maternalLastName": "
2122548
Medina",
   
} }

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{
 "middleName": "Rosa",
    "
from
mobilePhoneIndicator": 
{
1,
    "
accountNumber
mobilePhoneNumber": "
9500508496924050930
31211635899",
    "
actionCode
occupation": "
8008
NURSE",
    "
transactionDescription
ownOrRentResidenceFlag": 
"P2P_TRANSFER_SOURCE"
0,
    "
description
postalCode": 
"P2P_TRANSFER_SOURCE"
54070,
    "
authorizationCode
stateOfBirth": "
1234
DF"
}
Code Block
{
 
},
   "
to
outputArea": {
        "
accountNumber
customerNumber": "
9500502030236002994
0995000000000077863",
        "
actionCode
accountNumber": "
8012
0995000000000077863",
        "
transactionDescription
responseCode": "
P2P_TRANSFER_TARGET
",
    
"description":
 
"P2P_TRANSFER_SOURCE",
   "
authorizationCode
level": "
1234
",
  
},
      "
effectiveDate
transactionAmount": 
"2022-01-30",
0,
        "
transactionAmount
countryLimit": 
100,
{
      
"device":
 
"abcfghjfghjklghjkfghjk5678956789",
     "
ip
dailyLimitLoad": 
"198.162.123.148",
0,
      
"latitude":
 
123.56565656,
     "
longitude
monthlyLimitLoad": 
-23.565656,
0,
       
"xTransactionId":
 
"123"
 
} Code Block{
   "
effectiveDate
dailyLimitCash": 
"2022-01-30"
0,
  
"transactionAmount":
 
"100",
   
"actionOutputArea":
 
{
     "
actionData
monthlyLimitCash": 
[
0,
   
{
         "
authorizationCode
limitForDepositTransactions": 
"1234",
0
        
"accountNumber": "9500508496924050930"
},
        "
transactionDescription
accountLimit": {
"P2P SENDER",
            "
feeAmount
accountDailyAmountLoad": 
"0",
0,
  
"transactionCode":
 
8008,
         "
currentBalance
accountMonthlyAmountLoad": 
-5988391
0,
            "
creditLimit
accountDailyAmountCash": 0,
            "
openToBuy
accountMonthlyAmountCash": 
598649100,
0
        
"authorizationNumber": "507925"
}
    
}, {
}
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

POST → /customers/account

Descripción

Request

Response

HTTP Codes

GRPC Codes

Vinculación del cliente en la cuenta de Spin.

Code Block
{
    
"
authorizationCode
accountNumber": "
1234
0004217470138987703",

    
"
accountNumber
customerNumber": "
9500502030236002994
0995000000000045698",

    "
transactionDescription
qualification": "
P2P RECIEVER
1",

    "
feeAmount
customerTypeIndicator": 
"
0
"
,
    
"
transactionCode
foreignUseIndicator": 
8012
0,
    
"
currentBalance
alternateCustomer": 
-169434,
{
        "
creditLimit
expirationDate": 
0,
"2023/12/30"
    }
}
Code Block
{
    "
openToBuy
customerNumber": 
17133400
"0995000000000045697",
    
"
authorizationNumber
accountNumber": "
332272" } ] } }2
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.

4

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

5

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

Realiza una transferencia QR.

Obtener cuenta mediante Pantoken

Code Block
{
  "
transactionData
panToken": 
{
"0004217470595215803",
  
"
transactionAmount
cardSequence": 
20
2147483647,
  "foreignUse": 0
"actionCode
}
Code Block
{
	"postToAccount": "
8038
9500508261544464147",
"authorizationCode
	"blockCode": "
Q1er44", "effectiveDate
Z",
	"cardNumber": "
2022-08-24
***************0252",
"description
	"currentCardActivation": "
QR code test - normal hours
N",
"paidConcept
	"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
 {
  "
memoPostedIndicator
customerOrAccountNumber": "
1234567890123456800",
  
"
suppressMonetaryTransaction
cardNumber": "
Y
000123456ID5IXX1234",

  "
n1n2ByPass
cardholderType": 
"N",
1
}

Code Block
{
  
"
identifier
customerOrAccountNumber": 
0
"1234567890123456800",
  
"
box
cardNumber": "
1
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
{
  
"
crPlaza
cardNumber": "
10MON
000123456ID5IXX1234",
}

Code Block
{
    "
crStore
accountNumber": "
50WHN
0004217470041850252"
, "keyTracking": "Hello", "beneficiaryAccount": "Hello", "senderAccount": "Hello

}

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",
  
"
counterpartInstitution
serviceType": "
Hello
A",

  "
operatingInstitution
userData": "
Hello
string"
,

}

Code Block
{
  "
frcUprkBeneficiary
organizationNumber": 
"Hello"
999,
  
"
orderingFrcUprk
logo": 
"Hello"
1,

  "
device
cardNumber": "
123456789-123456789-123456789-12
000123456ID5IXX1234",

  "
ip
serviceType": "
198.162.200.200
A",
  
"
latitude
numberCardsActivated": 
-109.699,
1,
  "
longitude
foreignOrg": 
23.062
1,

  "
recipientName
numberForeignCardsActivated": 
"Hello",
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
{
  "
orderingName
blockCode": "
Hello
Z",

  "
paymentSourceId
panToken": "
bf0469d7-b507-44d6-af7d-d4edea6340f1" }
0004217470885923553",
  "cardSequence": 1,
  "
xTransactionId
functionCode": "
123",
B" //B para bloquear - u Desbloquear
}
Code Block
{}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

...

Mirror

Account

Info

Consulta de bloqueos​

Repositorio sincronizado con Fiserv​

Disminuye peticiones al Proveedor​

GetAccountDetails

Descripción

Request

Response

GRPC Codes

Realiza la consulta de bloqueos de cuenta.

Code Block
{
  "accountNumber": "
9500508020127353147
9500501520328494829"
}
Code Block
{
  "accountData": {
    "
historyDate
accountNumber": "
2023-09-12
9500501520328494829",
    "
historyTime
customerNumber": "
111311
0995000000000035249",
  
"transactionData": {
  
"
transactionCode
blockCode1": "
8038
M",
    "
transactionDescription
blockCode1Date": "
CASHOUT WITH QR-CODE(FREE BAL)
2023-09-07",
    "
currentBalance
blockCode2": "
-1382946
M",
    "
openToBuy
blockCode2Date": "
1382326
2023-08-11",
  
}
 
}

2 OK: Solicitud exitosa.

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

5 Internal Server Error: Servicios no disponibles.

GetAccountBalance

Descripción

Request

Response

HTTP Codes

Realiza la consulta de balance de cuenta.

Code Block{
 
"
accountNumber
accountMakerDateOfBirth": "
9500501520328494829
",
} Code Block{
    "
accountOrCardNumber
availableCredit": 
"9500501520328494829"
0,
    "
currentBalance
userAmounts9": 
998176210159
0,
    "
availableCreditLimit
userAmounts10": 
32237425576994724
0,
    "
frozenBalance
userAmounts7": 0
26000
  }
}
2

0 OK: Solicitud exitosa.

4

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

5

13 Internal Server Error: Servicios no disponibles.

Customer Adapter

Info

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

​Este componente se desarrolló para desacoplar los procesos core de Spin y el proveedor financiero para lograr una mayor escalabilidad.​

CreateCustomer

SetAccountBlock

Descripción

Request

Response

HTTP

GRPC Codes

Creación del cliente

Realiza bloqueos/desbloqueo de cuenta.

Code Block
{

  "blockCode": "",
  "blockCodeIndicator": 1,
  "foreignUse": 0,
  "
logo
functionCode": "
60
U",

  "
address
accountNumber": "
Ciruelas
9500501520328494829"
,

}
Code Block
{
  "
houseNumber
functionCode": "
12345
B",
  
"
externalNumber
accountNumber": "
8007
9500501520328494829",

  "
colony
blockCode1Local": "
Lomas
M",

  "
city
localOrganization": 
"Lomas de Alvarez",
950
}

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

SynchronizeMirrorAccount

Descripción

Request

Response

GRPC Codes

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

Code Block
{
  "accountNumber": "9500501520328494829"
}
Code Block
{
  "
state
accountData": 
"COL",
{
    "
postalCode
accountNumber": "
99980
9500501520328494829",
    "
dateOfBirth
customerNumber": "
2000-08-06
0995000000000035249",
    "
stateOfBirth
blockCode1": "
CDMX
M",
    "
email
blockCode1Date": "
lmedina@palo-it.com
2023-09-07",
    "
firstName
blockCode2": "
Judith
M",
    "
lastName
blockCode2Date": "
Medina
2023-08-11",
    "
maternalLastName
accountMakerDateOfBirth": "
Ruiz
",
    "
mobilePhoneNumber
availableCredit": 
"5521163588"
0,
    "
identificationNumber
userAmounts9": 
"4152554487415113698"
0,
    "
ine
userAmounts10": 
"1234117890099"
0,
    "
occupation
userAmounts7": 
"Tester",
0
  
"genderCode": "1", "user4":"1", "identificationNumberFlag": "2
}
}

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

...

Balance

Info

Consulta de balance​

Repositorio sincronizado con Fiserv​

Disminuye peticiones al Proveedor

GetAccountBalance

Descripción

Request

Response

GRPC Codes

Realiza la consulta de balance de cuenta.

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

  "
logo
accountOrCardNumber": "
60
9500501520328494829",
  "currentBalance": 998176210159,
  "
address
availableCreditLimit": 
"Ciruelas"
32237425576994724,
  
"
houseNumber
frozenBalance": 
"12345",
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
{
  "
externalNumber
accountNumber": "
8007
9500501520328494829"
,

}
Code Block
{
  "
colony
accountOrCardNumber": "
Lomas
9500501520328494829",

  "
city
currentBalance": 
"Lomas de Alvarez",
998176210159,
  "
state
availableCreditLimit": 
"COL"
32237425576994724,

  "
postalCode
frozenBalance": 
"99980",
26000
}

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

TransferBalance

Descripción

Request

Response

GRPC Codes

Realiza una transferencia .

Code Block
{
  "
dateOfBirth
transactionData": 
"2000-08-06",
{
    "
stateOfBirth
transactionAmount": 
"CDMX"
1,
    "
email
actionCode": "
lmedina@palo-it.com
8012",
    "
firstName
authorizationCode": "
Judith
311S3q",
    "
lastName
effectiveDate": "
Medina
2023-06-21",
    "
maternalLastName
description": "
Ruiz
P2P",
    "
mobilePhoneNumber
paidConcept": "
5521163588
test",
    "
identificationNumber
memoPostedIndicator": "
4152554487415113698
qqq",
    "
ine
suppressMonetaryTransaction": "
1234117890099
qqq",
    "
occupation
n1n2ByPass": "
Tester
qqq",
    "
genderCode
identifier": "
1
S_IN",
    "
user4
box": "
1
3",
    "
identificationNumberFlag
crPlaza": "
2
10MON"
}

2 OK: Solicitud exitosa.

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

5 Internal Server Error: Servicios no disponibles.

UpdateCustomer

Descripción

Request

Response

HTTP Codes

Actualizar cliente

Code Block{
,
    
"
email
crStore": "
lmedina@palo-it.com
50WHN",
    "
numberType
keyTracking": 
1
"KEYTRACKING0123456789",
    "
customerNumber
senderAccount": "
0995000000000077863
senderAccount012345",
    "
address
beneficiaryAccount": "
Ciruelas
beneficiaryAccount1",
    "
dateOfBirth
counterpartInstitution": "
1999-02-06
aaaaa",
    "
city
operatingInstitution": "
Villa de Alvarez
bbbbb",
    "
countryCode
frcUprkBeneficiary": "
MEX
frcUprkBenefi",
    "
county
orderingFrcUprk": "
CDMX
orderingFrcUp",
    "
colony
device": "
ADOLFO LOPEZ MATEOS
123456789-123456789-123456789-12",
    "
externalNumber
ip": "
1007
198.162.200.200",
    "
firstName
latitude": 
"Sandra"
-109.699,
    "
genderCode
longitude": 
2
23.062,
    "
houseNumber
recipientName": "
123
recipientName01234567890123456",
    "
ine
orderingName": "
1234117890099
orderingName012345678901234567",
    "
lastName
paymentSourceId": "
Velasco
paymentSourceId012345",

  "
maritalStatus
operationType": 
0,
"W"
  },
  "
maternalLastName
xTransactionId": "
Medina
123",
  "accountNumber": "9500501545918394337"
"middleName
}
Code Block
{
  "historyDate": "
Rosa
2023-09-12",

  "
mobilePhoneIndicator
historyTime": 
1
"111208",
  
"
mobilePhoneNumber
transactionData": 
"31211635899",
{
    "
occupation
transactionCode": "
NURSE
8012",
    "
ownOrRentResidenceFlag
transactionDescription": "P2P 
0
RECIEVER",
    "
postalCode
currentBalance": 
54070
"-2122495",
    "
stateOfBirth
openToBuy": "
DF
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
{

  "
email
from": 
"lmedina@palo-it.com",
{
    "
numberType
accountNumber": 
1
"9500508496924050930",
    "
customerNumber
actionCode": "
0995000000000077863
8008",
    "
address
transactionDescription": "
Ciruelas
P2P_TRANSFER_SOURCE",
    "
dateOfBirth
description": "
1999-02-06
P2P_TRANSFER_SOURCE",
    "
city
authorizationCode":
"Villa de Alvarez",
 "1234"
  },
  "
countryCode
to": 
"MEX",
{
    "
county
accountNumber": "
CDMX
9500502030236002994",
    "
colony
actionCode": "
ADOLFO LOPEZ MATEOS
8012",
    "
externalNumber
transactionDescription": "
1007
P2P_TRANSFER_TARGET",
    "
firstName
description": "
Sandra
P2P_TRANSFER_SOURCE",
    "
genderCode
authorizationCode": 
2
"1234"
  },
    "
houseNumber
effectiveDate": "
123
2022-01-30",
    "
ine
transactionAmount": 
"1234117890099"
100,
    "
lastName
device": "
Velasco
abcfghjfghjklghjkfghjk5678956789",
    "
maritalStatus
ip": 
0
"198.162.123.148",
    "
maternalLastName
latitude": 
"Medina"
123.56565656,
    "
middleName
longitude": 
"Rosa"
-23.565656,
    "
mobilePhoneIndicator
xTransactionId": 
1,
"123"
}
Code Block
{
  "
mobilePhoneNumber
effectiveDate": "
31211635899
2022-01-30",
  
"
occupation
transactionAmount": "
NURSE
100",

  "
ownOrRentResidenceFlag
actionOutputArea": 
0,
{
    "
postalCode
actionData": 
54070,
[
    
"stateOfBirth":
 
"DF"
 
}

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
authorizationCode": "
9500505675946730065
1234",
        "
alternateCustomer
accountNumber": "9500508496924050930",
  
{
      "
expirationDate
transactionDescription": "
2023-08-22"
P2P SENDER",
     
},
   "
customerNumber
feeAmount": "
0995000000000075954
0",
   
"qualification": "2",
     "
customerTypeIndicator
transactionCode": 
0
8008,
   
"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
currentBalance": 
"1",
-5988391,
        "
addressLine2
creditLimit": 
"2"
0,
  
"assignedSpendingLimits":
 
{
     "
maximumSpendingLimit": 3,
openToBuy": 598649100,
        "
spendingFrequency
authorizationNumber": 
4,
"507925"
   
"spendingTransaction":
 
5
  
},
  
"atmCashAmount":
 
6,
   
"atmCashNumber": 7,
{
    
"atmCashSingleTransactionLimit":
 
8,
   "
authorizationCriteriaTableNumber
authorizationCode": "
9
1234",
    
"authorizationSpendingLimitTable":
 
"10",
   "
blockCode
accountNumber": "
11
9500502030236002994",
  
"branchNumber":
 
12,
   
"cardAction": 13,
  "
cardActionReasonCode
transactionDescription": "
14
P2P RECIEVER",
    
"cardDelayDays":
 
15,
   "
panToken
feeAmount": "
16
0",
    
"cardSequence":
 
17,
   "
cardholderAffiliationGroupId
transactionCode": 
"18"
8012,
  
"cardholderFlag": "19",
      "
city
currentBalance": 
"20"
-169434,
   
"currentCardActivation": "21",
     "
customerNumber
creditLimit": 
"22"
0,
    
"deliveryOption":
 
23,
   "
deviceIndicator
openToBuy": 
"24"
17133400,
    
"embossedName1":
 
"25",
   "
embossedName2
authorizationNumber": "
26
332272"
,

   
"enrollmentStatusVBV":
 
"27",
  }
"expirationDate":
 
"28",
   
"firstIssueBranch": 29,
]
  
"internetPurchaseAmount": 30, "internetPurchaseNumber": 31,
}
}

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": {
    "
internetPurchaseSingleTransactionLimit
transactionAmount": 
32
20,
    "
languageCode
actionCode": "
33
8038",
    "
maximumAuthorizationFrequency
authorizationCode": 
34
"Q1er44",
    "
name1
effectiveDate": "
35
2022-08-24",
    "
name1TypeIndicator
description": "QR 
36,
code test - 
"name2": "37
normal hours",
    "
name2TypeIndicator
paidConcept": 
38
"Hello",
    "
nextCardExpirationDate
memoPostedIndicator": "
39
 ",
    "
numberOfCardsRequested
suppressMonetaryTransaction": 
40
"Y",
    "
overTheCounterCashAmount
n1n2ByPass": 
42
"N",
    "
overTheCounterCashNumber
identifier": 
43
0,
    "
overTheCounterCashSingleTransactionLimit
box": 
44
"1",
    "
pinMailerDelayDays
crPlaza": 
45
"10MON",
    "
pinOffset
crStore": 
46
"50WHN",
  
"pinSuppression": 47,
  
"
plasticId
keyTracking": "
48
Hello",
    "
posServiceCode
beneficiaryAccount": 
49
"Hello",
    "
accountNumber
senderAccount": "
50
Hello",
    "
postalCode
counterpartInstitution": 
51
"Hello",
    "
processType
operatingInstitution": 
52
"Hello",
    "
programId
frcUprkBeneficiary": 
53
"Hello",
    "
reissueDeliveryOption
orderingFrcUprk": 
54
"Hello",
    "
requestedCardType
device": "
55
123456789-123456789-123456789-12",
    "
retailPurchaseAmt
ip": 
56,
"198.162.200.200",
    "
retailPurchaseNumber
latitude": 
57,
-109.699,
    "
retailPurchaseSingleTransactionLimit
longitude": 
58
23.062,
    "
securedCodeActivate
recipientName": 
59
"Hello",
    "
stateOrProvince
orderingName": "
60
Hello",
    "
typeCardMailer
paymentSourceId": "
61"
bf0469d7-b507-44d6-af7d-d4edea6340f1"
  },
  "
typeOfCard
xTransactionId": "
62
123",
  "
user1
accountNumber":
63,
 "
user2
9500508020127353147"
: 64,

}
Code Block
{
  "
user3
historyDate": 
65, "user4": 66
"2023-09-12",
  "
user5
historyTime":
67,
 "
user6
111311"
: 68
,
  "
user7
transactionData": 
69,
{
  
"user8":
 
70,
 
"
userDate1
transactionCode": "
71
8038",
    "
userDate2
transactionDescription": "
72
CASHOUT WITH QR-CODE(FREE BAL)",
    "
vbvPassword
currentBalance": "
73
-1382946",
    "
visaMiniIndicator
openToBuy": "
74
1382326"
,

  
"visaPlusIndicator": "75" }
}
}

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

...

Card

Info

Incorpora los endpoints de Card Mirror​

Sincronización de datos con el Mirror​

Expone endpoints a través de un API REST

POST → /v1/cards/

...

embossers/details

Descripción

Request

Response

HTTP Codes

Obtener cuenta mediante Pantoken

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

...

PUT → /v1/cards/

...

embossers/block

Descripción

Request

Response

HTTP Codes

Bloqueo de tarjetas

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

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.

...