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,
"2023-09-12"
    
"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.

Balance

Info

Consulta de balance​

Repositorio sincronizado con Fiserv​

Disminuye peticiones al Proveedor

...

POST → /v1/accounts/blocks

Descripción

Request

Response

HTTP Codes

GRPC Codes

Realiza

la consulta de balance de cuenta.

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
U"
: 1
,

  "
actionCode
blockCodeIndicator": 
"8012"
0,

  "
authorizationCode
foreignUse": 
"311S3q"
1,

  
"
effectiveDate
functionCode": "
2023-06-21
B",

  "
description
accountNumber": "
P2P
9500501520328494829"
,

}
Code Block
{
   
"paidConcept":
 "
test", "memoPostedIndicator"
functionCode": "
qqq
B",
    "
suppressMonetaryTransaction
accountNumber": "
qqq
9500501520328494829",
    "
n1n2ByPass
localOrganization": 
"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": "frcUprkBenefi", "orderingFrcUprk": "orderingFrcUp", "device": "123456789-123456789-123456789-12
localOrganization": 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": "9500508152383529456", 
  "operationType": "D"
 }
Code Block
{
    "historyDate": "2023-09-18",
    "historyTime": "164734",
    "transactionData": {
        "transactionCode": "8000",
        "currentBalance": "-10000",
        "openToBuy": "12000"
    }
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

Realiza una transferencia - Número de cuenta Bloqueada

Code Block
{
  "transactionData": {
    "transactionAmount": 1000,
    "actionCode": "8000",
    "authorizationCode": "311S3q",
    "effectiveDate": "2023-06-21",
    "description": "P2P",
    "paidConcept": "test",
    "memoPostedIndicator": "qqq",
    "suppressMonetaryTransaction": "qqq",
    "n1n2ByPass": "qqq",
    "identifier": "S_IN",
    "box": "3",
    "crPlaza": "10MON",
    "crStore": "50WHN",
    "keyTracking": "KEYTRACKING0123456789",
    "senderAccount": "senderAccount012345",
    "beneficiaryAccount": "beneficiaryAccount1",
    "counterpartInstitution": "aaaaa",
    "operatingInstitution": "bbbbb",
    "frcUprkBeneficiary": "frcUprkBenefi",
    "orderingFrcUprk": "orderingFrcUp",
    "device": "123456789-123456789-123456789-12",
    "ip": "198.162.200.200",
    "latitude": -109.699,
    "longitude": 23.062,
    "recipientName": "recipientName01234567890123456",
    "orderingName": "orderingName012345678901234567",
    "paymentSourceId": "paymentSourceId012345"
  },
  "xTransactionId": "123",
  "accountNumber": "9500508176491773011", 
  "operationType": "D"
 }
Code Block
{
    "historyDate": "2023-09-18",
    "historyTime": "164818",
    "transactionData": {
        "transactionCode": "8000",
        "openToBuy": "2000"
    }
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

PUT → /v1/balances/transfers-p2p

Descripción

Request

Response

HTTP Codes

GRPC Codes

Realiza una transferencia P2P.

Code Block
{
  "from": {
    "accountNumber": "9500508496924050930",
    "
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"
},
  "
operationType
to": 
"W"
{
  
},
  "
xTransactionId
accountNumber": "
123
9500502030236002994",
    "
accountNumber
actionCode": "
9500501545918394337
8012",
} Code Block{
    "
historyDate
transactionDescription": "
2023-09-12
P2P_TRANSFER_TARGET",
    "
historyTime
description": "
111208
P2P_TRANSFER_SOURCE",
    "
transactionData
authorizationCode": 
{
"1234"
  },
    "
transactionCode
effectiveDate": "
8012
2022-01-30",
    "
transactionDescription
transactionAmount": 
"P2P RECIEVER"
100,
    "
currentBalance
device": "
-2122495
abcfghjfghjklghjkfghjk5678956789",
    "
openToBuy
ip": "
2122548"
198.162.123.148",
   
} }

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{
 "latitude": 123.56565656,
    "
from
longitude":
{
 -23.565656,
    "
accountNumber
xTransactionId": "
9500508496924050930
123"
,

"actionCode
}
Code Block
{
	"effectiveDate": "
8008
2022-01-30",
"transactionDescription
	"transactionAmount": "
P2P_TRANSFER_SOURCE
100",
	"actionOutputArea": {
		"actionData": [
			{
				"
description
authorizationCode": "
P2P_TRANSFER_SOURCE
1234",
"authorizationCode
				"accountNumber": "
1234
9500508496924050930",
				"transactionDescription": "P2P 
}
SENDER",
				"transactionCode": 8008,
				"
to
currentBalance": 
{ "accountNumber
-5988391.0,
				"openToBuy": 5.987391E8,
				"authorizationNumber": "
9500502030236002994
205229"
			},
"actionCode
			{
				"authorizationCode": "
8012
1234",
"transactionDescription
				"accountNumber": "
P2P_TRANSFER_TARGET
9500502030236002994",
"description
				"transactionDescription": "P2P
_TRANSFER_SOURCE
 RECIEVER",
"authorizationCode
				"transactionCode": 
"1234" }, "effectiveDate
8012,
				"currentBalance": 
"2022-01-30", "transactionAmount": 100, "device
-169434.0,
				"openToBuy": 1.70434E7,
				"authorizationNumber": "
abcfghjfghjklghjkfghjk5678956789
923589"
,

			}
		]
"ip": "198.162.123.148",
	}
}

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": {
    "
latitude
transactionAmount": 
123.56565656
20,
    "
longitude
actionCode": 
-23.565656
"8038",
    "
xTransactionId
authorizationCode": "
123
Q1er44",
} Code Block{
    "effectiveDate": "2022-
01
08-
30
24",
    "
transactionAmount
description": "
100", "actionOutputArea": {
QR code test - normal hours",
    
"
actionData
paidConcept": 
[
"Hello",
    "memoPostedIndicator": 
{
" ",
    "
authorizationCode
suppressMonetaryTransaction": "
1234
Y",

    "
accountNumber
n1n2ByPass": "
9500508496924050930
N",
    "identifier": 0,
    "
transactionDescription
box": "
P2P SENDER
1",
    
"
feeAmount
crPlaza": "
0
10MON",

    "
transactionCode
crStore": 
8008,
"50WHN",
    "
currentBalance
keyTracking": 
-5988391,
"Hello",
    "
creditLimit
beneficiaryAccount": 
0,
"Hello",
    "
openToBuy
senderAccount": 
598649100
"Hello",
    
"
authorizationNumber
counterpartInstitution": "
507925
Hello",
    "operatingInstitution": "Hello",
},
    "frcUprkBeneficiary": "Hello",
 
{
   "orderingFrcUprk": "Hello",
    "
authorizationCode
device": "
1234
123456789-123456789-123456789-12",

    
"
accountNumber
ip": "
9500502030236002994
198.162.200.200",
    "latitude": -109.699,
    "
transactionDescription
longitude": 
"P2P RECIEVER",
23.062,
    "
feeAmount
recipientName": "
0
Hello",

    "
transactionCode
orderingName": 
8012,
"Hello",
    "
currentBalance
paymentSourceId": 
-169434,
"bf0469d7-b507-44d6-af7d-d4edea6340f1"
  
},
  
"
creditLimit
xTransactionId": 
0
"123",
  "accountNumber": "9500508020127353147"
}
Code Block
{
	"historyDate": 
"openToBuy
"2023-09-08",
	"historyTime": 
17133400
"122732",
	"transactionData": 
"authorizationNumber
{
		"transactionCode": "
332272
8038",
		"transactionDescription": "CASHOUT WITH QR-CODE(FREE BAL)",
} ] } }2
		"currentBalance": "-1382946",
		"openToBuy": "1382486"
	}
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

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

Code Block{ "transactionData": { "transactionAmount": 20,

Descripción

Request

Response

HTTP Codes

Realiza una transferencia QR.

GRPC Codes

Registro del cliente en la el proveedor de clientes.

Code Block
{
    "
actionCode
logo": "
8038
60",
    "
authorizationCode
address": "
Q1er44
Ciruelas",
    "
effectiveDate
houseNumber": "
2022-08-24
12345",
    "
description
externalNumber": "
QR code test - normal hours
8007",
    "
paidConcept
colony": "
Hello
Lomas",
    "
memoPostedIndicator
city": "Lomas de Alvarez",
    "
suppressMonetaryTransaction
state": "
Y
COL",
    "
n1n2ByPass
postalCode": "
N
99980",
    "
identifier": 0, "box
dateOfBirth": "
1
2000-08-06",
    "
crPlaza
stateOfBirth": "
10MON
CDMX",
    "
crStore
email": "
50WHN
lmedina@palo-it.com",
    "
keyTracking
firstName": "
Hello
Judith",
    "
beneficiaryAccount
lastName": "
Hello
Medina",
    "
senderAccount
maternalLastName": "
Hello
Ruiz",
    "
counterpartInstitution
mobilePhoneNumber": "
Hello
5521163588",
    "
operatingInstitution
identificationNumber": "
Hello
4152554487415113698",
    "
frcUprkBeneficiary
ine": "
Hello
1234117890099",
    "
orderingFrcUprk
occupation": "
Hello
Tester",
    "
device
genderCode": "
123456789-123456789-123456789-12
1",
    "
ip
user4":
"198.162.200.200
"1",
    "
latitude
identificationNumberFlag": 
-109.699,
"2"
}
Code Block
{
    "
longitude": 23.062,
customerNumber": "0995000000000080589"
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

PUT → /customers

Descripción

Request

Response

HTTP Codes

GRPC Codes

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

Code Block
{
    "
recipientName
email": "
Hello
lmedina@palo-it.com",
    "
orderingName
numberType": 
"Hello"
1,
    "
paymentSourceId
customerNumber": "
bf0469d7-b507-44d6-af7d-d4edea6340f1"
0995000000000077863",
  
},
  "
xTransactionId
address": "
123
Ciruelas",

"accountNumber":
 
"9500508020127353147" } Code Block{
   "
historyDate
dateOfBirth": "
2023
1999-
09
02-
12
06",
  
"historyTime":
 
"111311",
 
"
transactionData
city":
{
 
"transactionCode": "8038", "transactionDescription": "CASHOUT WITH QR-CODE(FREE BAL)
"Villa de Alvarez",
    "
currentBalance
countryCode": "
-1382946
MEX",
    "
openToBuy
county": "
1382326
CDMX"
,
}
 
}

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
colony": "
0004217470595215803
ADOLFO LOPEZ MATEOS",
    "
cardSequence
externalNumber": 
2147483647
"1007",
  
"foreignUse": 0 } Code Block{ "postToAccount
  "firstName": "
9500508261544464147
Sandra",
    
"
blockCode
genderCode": 
"Z", "cardNumber
2,
    "houseNumber": "
***************0252", "currentCardActivation
123",
    "ine": "
N
1234117890099",
  
  "
dateBlock
lastName": "
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{
Velasco",
    "maritalStatus": 0,
    "
blockCode
maternalLastName": "
Z
Medina",
    "
panToken
middleName": "
0004217470885923553
Rosa",
    "
cardSequence
mobilePhoneIndicator": 1,
    "
functionCode
mobilePhoneNumber": "
B
31211635899"
//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
,
    "occupation": "NURSE",
    "ownOrRentResidenceFlag": 0,
    "postalCode": 54070,
    "stateOfBirth": "DF"
}
Code Block
{
    "
accountData
outputArea": {
        "
accountNumber
customerNumber": "
9500501520328494829
0995000000000077863",
        "
customerNumber
accountNumber": "
0995000000000035249
0995000000000077863",
        "
blockCode1
responseCode": "
M
",
        "
blockCode1Date
level": "
2023-09-07
",
        "
blockCode2
transactionAmount": 
"M"
0,
        "
blockCode2Date
countryLimit":
"2023-08-11",
 {
            "dailyLimitLoad": 0,
      
"accountMakerDateOfBirth":
 
"",
     "
availableCredit
monthlyLimitLoad": 0,
      
"userAmounts9":
 
0,
     "
userAmounts10
dailyLimitCash": 0,
    
"userAmounts7":
 
0
   
}
 
}

2 OK: Solicitud exitosa.

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

5 Internal Server Error: Servicios no disponibles.

SetAccountBlock

Descripción

Request

Response

HTTP Codes

Realiza bloqueos/desbloqueo de cuenta.

Code Block{
   "
blockCode
monthlyLimitCash": 
""
0,
    
"blockCodeIndicator": 1,
        "
foreignUse
limitForDepositTransactions": 0
,

  
"functionCode":
 
"U",
   
"accountNumber":
 
"9500501520328494829"
 }
Code Block{
,
    
"functionCode":
 
"B",
   "
accountNumber
accountLimit": {
"9500501520328494829",
   
"blockCode1Local":
 
"M",
   
"localOrganization":
 
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{
   "
transactionData
accountDailyAmountLoad": 
{
0,
      
"transactionAmount":
 
1,
     "
actionCode
accountMonthlyAmountLoad": 
"8012"
0,
      
"authorizationCode":
 
"311S3q",
     "
effectiveDate
accountDailyAmountCash": 
"2023-06-21"
0,
    
"description": "P2P",
        "
paidConcept
accountMonthlyAmountCash":
"test",
 0
        
"memoPostedIndicator": "qqq",
}
    
"suppressMonetaryTransaction": "qqq",
}
}

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
{
    "
n1n2ByPass
accountNumber": "
qqq
0004217470138987703",
    "
identifier
customerNumber": "
S_IN
0995000000000045698",
    "
box
qualification": "
3
1",
    "
crPlaza
customerTypeIndicator": 
"10MON"
0,
    "
crStore
foreignUseIndicator": 
"50WHN"
0,
    "
keyTracking
alternateCustomer": 
"KEYTRACKING0123456789",
{
    
"senderAccount":
 
"senderAccount012345",
   
"
beneficiaryAccount
expirationDate": "
beneficiaryAccount1
2023/12/30"
,

    
"counterpartInstitution": "aaaaa",
}
}
Code Block
{
    "
operatingInstitution
customerNumber": "
bbbbb
0995000000000045697",
    "
frcUprkBeneficiary
accountNumber": "
frcUprkBenefi
1650"
, "orderingFrcUprk": "orderingFrcUp", "device": "123456789-123456789-123456789-12", "ip": "198.162.200.200", "latitude": -109.699, "longitude": 23.062, "recipientName": "recipientName01234567890123456", "orderingName": "orderingName012345678901234567", "paymentSourceId": "paymentSourceId012345" }, "xTransactionId": "123", "accountNumber": "9500501545918394337" }
Code Block
{
  "historyDate": "2023-09-12",
  "historyTime": "111208",
  "transactionData": {
    "transactionCode": "8012",
    "transactionDescription": "P2P RECIEVER",
    "currentBalance": "-2122495",
    "openToBuy": "2122548"
  }
}

2 OK: Solicitud exitosa.

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

5 Internal Server Error: Servicios no disponibles.

...


}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

...

Card Aggregation service

Info

Incorpora los endpoints de Card​

Validación de campos mandatorios antes del envío a Fiserv​

Expone endpoints a través de un API REST y gRPC​

​POST /cards/embosser/details

Descripción

Request

Response

HTTP Codes

Obtener cuenta mediante Pantoken

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

PUT /cards/account

Descripción

Request

Response

HTTP Codes

Vinculación de tarjetas a cuenta

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

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

POST /cards/account

Descripción

Request

Response

HTTP Codes

Recuperación del numero de cuenta

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

Code Block
{
    "accountNumber": "0004217470041850252"
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

Info

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

Image Added

PUT /cards/activation​ [Equipo de Spin]

Descripción

Request

Response

HTTP Codes

Realiza una transferencia P2P.

Activación de tarjetas

Code Block
{
  "
from
organizationNumber": 
{ "accountNumber": "9500508496924050930",
999,
  
"
actionCode
cardNumber": "
8008", "transactionDescription": "P2P_TRANSFER_SOURCE
000123456ID5IXX1234",

  "
description
serviceType": "
P2P_TRANSFER_SOURCE
A",

  "
authorizationCode
userData": "
1234
string"
}

Code Block
{
  
}
"organizationNumber": 999,
  "
to
logo": 
{
1,
  "
accountNumber
cardNumber": "
9500502030236002994
000123456ID5IXX1234",

  "
actionCode
serviceType": "
8012
A",
  "numberCardsActivated": 1,
  "
transactionDescription
foreignOrg": 
"P2P_TRANSFER_TARGET",
1,
  "
description
numberForeignCardsActivated":
"P2P_TRANSFER_SOURCE",
 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
{
  "
authorizationCode
blockCode": "
1234
Z"
}
,
  
"
effectiveDate
panToken": "
2022-01-30
0004217470885923553",

  "
transactionAmount
cardSequence": 
100
1,
  
"
device
functionCode": "
abcfghjfghjklghjkfghjk5678956789", "ip": "198.162.123.148", "latitude": 123.56565656, "longitude": -23.565656, "xTransactionId": "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": "9500501520328494829"
}
Code Block
{
  "
effectiveDate
accountData":
"2022-01-30",
 {
    "
transactionAmount
accountNumber": "
100
9500501520328494829",
    "
actionOutputArea
customerNumber":
{
 "
actionData
0995000000000035249"
:
,
[
    
{ "authorizationCode
"blockCode1": "
1234
M",

    "
accountNumber
blockCode1Date": "
9500508496924050930
2023-09-07",

    "
transactionDescription
blockCode2": "
P2P SENDER
M",

    "
feeAmount
blockCode2Date": "
0
2023-08-11",

    "
transactionCode
accountMakerDateOfBirth": 
8008
"",
    
"
currentBalance
availableCredit": 
-5988391
0,

    
"
creditLimit
userAmounts9": 0,

    "
openToBuy
userAmounts10": 
598649100
0,

    
"
authorizationNumber
userAmounts7": 
"507925"
0
  
}, {
}
}

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

SetAccountBlock

Descripción

Request

Response

GRPC Codes

Realiza bloqueos/desbloqueo de cuenta.

Code Block
{
  "
authorizationCode
blockCode": "
1234
",
  "blockCodeIndicator": 1,
  
"
accountNumber
foreignUse": 
"9500502030236002994"
0,
  
"transactionDescription
"functionCode": "
P2P RECIEVER
U",

  
"
feeAmount
accountNumber": "
0
9500501520328494829"
,

}
Code Block
{
  
"
transactionCode
functionCode":
8012,
 "
currentBalance
B"
: -169434
,

  
"
creditLimit
accountNumber": 
0, "openToBuy": 17133400
"9500501520328494829",
  
"authorizationNumber": "332272" } ] } }2
"blockCode1Local": "M",
  "localOrganization": 950
}

0 OK: Solicitud exitosa.

4

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

5

13 Internal Server Error: Servicios no disponibles.

...

SynchronizeMirrorAccount

Descripción

Request

Response

HTTP

GRPC Codes

Realiza una transferencia QR

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

Code Block
{
  "
transactionData
accountNumber":
{
 
"
transactionAmount
9500501520328494829"
: 20,

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

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
{
  "
counterpartInstitution
accountNumber": "
Hello
9500501520328494829"
,

}
Code Block
{
  "
operatingInstitution
accountOrCardNumber": "
Hello
9500501520328494829",

  "
frcUprkBeneficiary
currentBalance": 
"Hello"
998176210159,
  
"
orderingFrcUprk
availableCreditLimit": 
"Hello"
32237425576994724,

  "
device
frozenBalance": 
"123456789-123456789-123456789-12",
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
{
  "
ip
accountNumber": "
198.162.200.200",
9500501520328494829"
}
Code Block
{
  "
latitude
accountOrCardNumber": 
-109.699,
"9500501520328494829",
  "
longitude
currentBalance": 
23.062
998176210159,

  "
recipientName
availableCreditLimit": 32237425576994724,
  "
Hello
frozenBalance"
,
: 26000
}

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

TransferBalance

Descripción

Request

Response

GRPC Codes

Realiza una transferencia .

Code Block
{
  "
orderingName
transactionData": 
"Hello",
{
    "
paymentSourceId
transactionAmount": 
"bf0469d7-b507-44d6-af7d-d4edea6340f1"
1,
 
},
   "
xTransactionId
actionCode": "
123
8012",
    "
accountNumber
authorizationCode": "
9500508020127353147" } Code Block{
311S3q",
    "
historyDate
effectiveDate": "2023-
09
06-
12
21",
    "
historyTime
description": "
111311
P2P",
    "
transactionData
paidConcept": 
{
"test",
    "
transactionCode
memoPostedIndicator": "
8038
qqq",
    "
transactionDescription
suppressMonetaryTransaction": "
CASHOUT WITH QR-CODE(FREE BAL)
qqq",
    "
currentBalance
n1n2ByPass": "
-1382946
qqq",
    "
openToBuy
identifier": "
1382326
S_IN"
} }

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
box": "
9500501520328494829
3",
 
} Code Block{
   "
accountOrCardNumber
crPlaza": "
9500501520328494829
10MON",
    "
currentBalance
crStore": 
998176210159
"50WHN",
    "
availableCreditLimit
keyTracking": 
32237425576994724
"KEYTRACKING0123456789",
    "
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{
senderAccount": "senderAccount012345",
    "
logo
beneficiaryAccount": "
60
beneficiaryAccount1",
    "
address
counterpartInstitution": "
Ciruelas
aaaaa",
    "
houseNumber
operatingInstitution": "
12345
bbbbb",
    "
externalNumber
frcUprkBeneficiary": "
8007
frcUprkBenefi",
    "
colony
orderingFrcUprk": "
Lomas
orderingFrcUp",
    "
city
device": "
Lomas de Alvarez
123456789-123456789-123456789-12",
    "
state
ip": "
COL
198.162.200.200",
    "
postalCode
latitude": 
"99980"
-109.699,
    "
dateOfBirth
longitude": 
"2000-08-06"
23.062,
    "
stateOfBirth
recipientName": "
CDMX
recipientName01234567890123456",
    "
email
orderingName": "
lmedina@palo-it.com
orderingName012345678901234567",
    "
firstName
paymentSourceId": "
Judith
paymentSourceId012345",

  "
lastName
operationType": "
Medina
W"
,

  },
  "
maternalLastName
xTransactionId": "
Ruiz
123",

  "
mobilePhoneNumber
accountNumber": "
5521163588
9500501545918394337"
,

}
Code Block
{
  "
identificationNumber
historyDate": "
4152554487415113698
2023-09-12",

  
"
ine
historyTime": "
1234117890099
111208",

  "
occupation
transactionData": 
"Tester",
{
    "
genderCode
transactionCode": "
1
8012",
    "
user4
transactionDescription": "
1
P2P RECIEVER",
    "
identificationNumberFlag
currentBalance": "
2
-2122495",
} Code Block{
    "
customerNumber
openToBuy": "
0995000000000080589
2122548"
  }
}
2

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

Request

Response

HTTP

GRPC Codes

Actualizar cliente

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": "MEX",
},
  "
county
to": 
"CDMX",
{
    "
colony
accountNumber": "
ADOLFO LOPEZ MATEOS
9500502030236002994",
    "
externalNumber
actionCode": "
1007
8012",
    "
firstName
transactionDescription": "
Sandra
P2P_TRANSFER_TARGET",
    "
genderCode
description": 
2
"P2P_TRANSFER_SOURCE",
    "
houseNumber
authorizationCode": "
123
1234"
  },
    "
ine
effectiveDate": "
1234117890099
2022-01-30",
    "
lastName
transactionAmount": 
"Velasco"
100,
    "
maritalStatus
device": 
0
"abcfghjfghjklghjkfghjk5678956789",
    "
maternalLastName
ip": "
Medina
198.162.123.148",
    "
middleName
latitude": 
"Rosa"
123.56565656,
    "
mobilePhoneIndicator
longitude": 
1
-23.565656,
    "
mobilePhoneNumber
xTransactionId": "
31211635899
123"
,

}
Code Block
{
  "
occupation
effectiveDate": "
NURSE
2022-01-30",

  "
ownOrRentResidenceFlag
transactionAmount": 
0
"100",
  
"
postalCode
actionOutputArea": 
54070,
{
    "
stateOfBirth
actionData": 
"DF" } Code Block{
[
     
"outputArea":
 {
        "
customerNumber
authorizationCode": "
0995000000000077863
1234",
        "accountNumber": "
0995000000000077863
9500508496924050930",
        "
responseCode
transactionDescription": "P2P SENDER",
        "
level
feeAmount": "0",
        "
transactionAmount
transactionCode": 
0
8008,
        "
countryLimit
currentBalance": 
{
-5988391,
        "
dailyLimitLoad
creditLimit": 0,

        "
monthlyLimitLoad
openToBuy": 
0
598649100,
        "authorizationNumber": "507925"
     
"dailyLimitCash":
 
0
},
      {
        "
monthlyLimitCash
authorizationCode": 
0
"1234",
        "accountNumber": "9500502030236002994",
  
"limitForDepositTransactions
      "transactionDescription": 
0
"P2P RECIEVER",
        
}
"feeAmount": "0",
        "
accountLimit
transactionCode": 
{
8012,
        "
accountDailyAmountLoad
currentBalance": 
0,
-169434,
        "
accountMonthlyAmountLoad
creditLimit": 0,

        
"
accountDailyAmountCash
openToBuy": 
0
17133400,

        
"
accountMonthlyAmountCash
authorizationNumber": 
0
"332272"
      }
 
}
   ]
  }
}
2

0 OK: Solicitud exitosa.

4

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

5

13 Internal Server Error: Servicios no disponibles.

...

FrozenBalanceTransfer

Descripción

Request

Response

HTTP

GRPC Codes

Vincular cuenta al cliente

Code Block{

Realiza una transferencia QR.

Code Block
{
  "transactionData": {
    "transactionAmount": 20,
    "actionCode": "8038",
    "authorizationCode": "Q1er44",
    "effectiveDate": "2022-08-24",
    "
accountNumber
description": "
9500505675946730065
QR code test - normal hours",
    "
alternateCustomer
paidConcept": "Hello",
   
{
 "memoPostedIndicator": " ",
    "
expirationDate
suppressMonetaryTransaction": "
2023-08-22" }
Y",
    "n1n2ByPass": "N",
    "
customerNumber
identifier": 
"0995000000000075954"
0,
    "
qualification
box": "
2
1",
    "
customerTypeIndicator
crPlaza": 
0
"10MON",
    "
foreignUseIndicator
crStore": 
0 } Code Block{
"50WHN",
    "
customerNumber
keyTracking": "
0995000000000045697
Hello",
    "
accountNumber
beneficiaryAccount": "
1650
Hello"
}

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
,
    "senderAccount": "Hello",
    "counterpartInstitution": "Hello",
    "operatingInstitution": "Hello",
    "
assignedSpendingLimits
frcUprkBeneficiary": 
{
"Hello",
    "
maximumSpendingLimit
orderingFrcUprk": 
3
"Hello",
    "
spendingFrequency
device": 
4
"123456789-123456789-123456789-12",
    "
spendingTransaction
ip": 
5
"198.162.200.200",
 
},
   "
atmCashAmount
latitude": 
6,
-109.699,
    "
atmCashNumber
longitude": 
7
23.062,
  
"atmCashSingleTransactionLimit":
 
8,
 
"
authorizationCriteriaTableNumber
recipientName": "
9
Hello",
    "
authorizationSpendingLimitTable
orderingName": "
10
Hello",
    "
blockCode
paymentSourceId": "
11",
bf0469d7-b507-44d6-af7d-d4edea6340f1"
  
"branchNumber": 12
},
  "
cardAction
xTransactionId": 
13
"123",
  "
cardActionReasonCode
accountNumber": "
14",
9500508020127353147"
}
Code Block
{
  "
cardDelayDays
historyDate": 
15
"2023-09-12",
  "
panToken
historyTime": "
16
111311",
  "
cardSequence
transactionData": {
 
17,
   "
cardholderAffiliationGroupId
transactionCode": "
18
8038",
    "
cardholderFlag
transactionDescription": "
19",
CASHOUT WITH QR-CODE(FREE BAL)",
    "
city
currentBalance": "
20
-1382946",
    "
currentCardActivation
openToBuy": "
21",
1382326"
  }
}

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

...

Card

Info

Incorpora los endpoints de Card Mirror​

Sincronización de datos con el Mirror​

Expone endpoints a través de un API REST

POST → /v1/cards/embossers/details

Descripción

Request

Response

HTTP Codes

Obtener cuenta mediante Pantoken

Code Block
{
  "
customerNumber
panToken": "
22
0004217470595215803",
  "
deliveryOption
cardSequence": 
23
2147483647,
  "
deviceIndicator
foreignUse":
"24", "embossedName1
 0
}
Code Block
{
	"postToAccount": "
25
9500508261544464147",
	"
embossedName2
blockCode": "
26
Z",
	"
enrollmentStatusVBV
cardNumber": "
27
***************0252",
	"
expirationDate
currentCardActivation": "
28
N",
	"
firstIssueBranch
dateBlock":
29,
 
"internetPurchaseAmount": 30,
"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
{
  "
internetPurchaseNumber
blockCode":
31,
 "
internetPurchaseSingleTransactionLimit
Z"
: 32
,
  "
languageCode
panToken": "
33
0004217470885923553",
  "
maximumAuthorizationFrequency
cardSequence": 
34
1,
  "
name1
functionCode": "
35", "name1TypeIndicator": 36, "name2": "37", "name2TypeIndicator": 38, "nextCardExpirationDate": "39", "numberOfCardsRequested": 40, "overTheCounterCashAmount": 42, "overTheCounterCashNumber": 43, "overTheCounterCashSingleTransactionLimit": 44, "pinMailerDelayDays": 45, "pinOffset": 46, "pinSuppression": 47, "plasticId": "48", "posServiceCode": 49, "accountNumber": "50", "postalCode": 51, "processType": 52, "programId": 53, "reissueDeliveryOption": 54, "requestedCardType": "55", "retailPurchaseAmt": 56, "retailPurchaseNumber": 57, "retailPurchaseSingleTransactionLimit": 58, "securedCodeActivate": 59, "stateOrProvince": "60", "typeCardMailer": "61", "typeOfCard": "62", "user1": 63, "user2": 64, "user3": 65, "user4": 66, "user5": 67, "user6": 68, "user7": 69, "user8": 70, "userDate1": "71", "userDate2": "72", "vbvPassword": "73", "visaMiniIndicator": "74", "visaPlusIndicator": "75" }
Code Block
{
  "panToken": "0004217470595215803",
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

POST → /v1/cards/embosser/details

Descripción

Request

Response

HTTP Codes

Obtener cuenta mediante Pantoken

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

POST → /v1/cards/embosser/block

Descripción

Request

Response

HTTP Codes

Bloqueo de tarjetas

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

Aggregation

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

Account Aggregation Service

Info

Incorpora los servicios de Account Mirror y Balance Mirror​

Validación de campos mandatorios antes del envío a Fiserv​

Expone endpoints a través de un API REST y gRPC​

POST → /v1/accounts/details

Descripción

Request

Response

HTTP Codes

Realiza la consulta de bloqueos de cuenta.

Code Block
{
  "accountNumber": "9500501520328494829"
}
Code Block
{
	"accountData": {
		"accountNumber": "9500501520328494829",
		"customerNumber": "0995000000000035249",
		"blockCode1": "M",
		"blockCode1Date": "2023-09-06",
		"blockCode2": "M",
		"blockCode2Date": "2023-08-11"
	}
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

POST → /v1/accounts/blocks

Descripción

Request

Response

HTTP Codes

Realiza bloqueos/desbloqueo de cuenta.

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

POST → /v1/accounts/syncs

Descripción

Request

Response

HTTP Codes

Sincroniza el mirror de account con la información de Fiserv
B" //B para bloquear - u Desbloquear
}
Code Block
{}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

...

Gateway

Account Adapter

Info

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

GetAccountDetails

Descripción

Request

Response

GRPC Codes

Realiza la consulta de bloqueos de cuenta.

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

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

SetAccountBlock

Descripción

Request

Response

GRPC Codes

Realiza bloqueos/desbloqueo de cuenta.

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

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

TransferBalance

Descripción

Request

Response

GRPC Codes

Realiza una transferencia .

Code Block
{
  "transactionData": {
    "transactionAmount": 1,
    "actionCode": "8012",
    "authorizationCode": "311S3q",
    "effectiveDate": "2023-06-21",
    "description": "P2P",
    "paidConcept": "test",
    "memoPostedIndicator": "qqq",
    "suppressMonetaryTransaction": "qqq",
    "n1n2ByPass": "qqq",
    "identifier": "S_IN",
    "box": "3",
    "crPlaza": "10MON",
    "crStore": "50WHN",
    "keyTracking": "KEYTRACKING0123456789",
    "senderAccount": "senderAccount012345",
    "beneficiaryAccount": "beneficiaryAccount1",
    "counterpartInstitution": "aaaaa",
    "operatingInstitution": "bbbbb",
    "frcUprkBeneficiary": "frcUprkBenefi",
    "orderingFrcUprk": "orderingFrcUp",
    "device": "123456789-123456789-123456789-12",
    "ip": "198.162.200.200",
    "latitude": -109.699,
    "longitude": 23.062,
    "recipientName": "recipientName01234567890123456",
    "orderingName": "orderingName012345678901234567",
    "paymentSourceId": "paymentSourceId012345"
  },
  "xTransactionId": "123",
  "accountNumber": "9500501545918394337"
}
Code Block
{
  "historyDate": "2023-09-12",
  "historyTime": "111208",
  "transactionData": {
    "transactionCode": "8012",
    "transactionDescription": "P2P RECIEVER",
    "currentBalance": "-2122495",
    "openToBuy": "2122548"
  }
}

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

TransferPeerToPeer

Descripción

Request

Response

GRPC Codes

Realiza una transferencia P2P.

Code Block
{
  "
accountNumber
from": 
"9500501520328494829" } Code Block{ "accountData": {
{
    "accountNumber": "
9500501520328494829
9500508496924050930",
"customerNumber": "0995000000000035249", "blockCode1

    "actionCode": "
M
8008",
    
"
blockCode1Date
transactionDescription": "
2023-09-06
P2P_TRANSFER_SOURCE",
 
"blockCode2
   "description": "
M
P2P_TRANSFER_SOURCE",
  
  "
blockCode2Date
authorizationCode": "
2023-08-11" } }

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

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

POST → /v1/balances

Descripción

Request

Response

HTTP Codes

Realiza la consulta de balance de cuenta.

Code Block{
1234"
  },
  "to": {
    "accountNumber": "
9500501520328494829
9500502030236002994"
} Code Block{ "accountOrCardNumber
,
    "actionCode": "
9500501520328494829
8012",
   
 "
currentBalance
transactionDescription": 
998176209259, "availableCreditLimit
"P2P_TRANSFER_TARGET",
    "description": 
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{
"P2P_TRANSFER_SOURCE",
    "
accountNumber
authorizationCode": "
9500501520328494829
1234"
  }
Code Block{ "accountOrCardNumber
,
    "effectiveDate": "
9500501520328494829
2022-01-30",
"currentBalance
    "transactionAmount": 
998176209259
100,
 
   "
availableCreditLimit
device": 
1823760996, "frozenBalance
"abcfghjfghjklghjkfghjk5678956789",
    "ip": 
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": {
"198.162.123.148",
    "
transactionAmount
latitude": 
1
123.56565656,
    "
actionCode
longitude": 
"8012"
-23.565656,
    "
authorizationCode
xTransactionId": "
311S3q
123"
,

}
Code Block
{
  "effectiveDate": "
2023
2022-
06
01-
21
30",

  "
description
transactionAmount": "
P2P
100",

  "
paidConcept
actionOutputArea": 
"test",
{
    "
memoPostedIndicator
actionData":
"qqq",
 [
      {
  
"suppressMonetaryTransaction":
 
"qqq",
     "
n1n2ByPass
authorizationCode": "
qqq
1234",
        "
identifier
accountNumber": "
S_IN
9500508496924050930",
        "
box
transactionDescription": "
3
P2P SENDER",
        "
crPlaza
feeAmount": "
10MON
0",
        "
crStore
transactionCode": 
"50WHN",
8008,
        "
keyTracking
currentBalance": 
"KEYTRACKING0123456789",
-5988391,
        "
senderAccount
creditLimit": 
"senderAccount012345",
0,
        "
beneficiaryAccount
openToBuy": 
"beneficiaryAccount1"
598649100,
        "
counterpartInstitution
authorizationNumber": "
aaaaa
507925"
,

     
"operatingInstitution": "bbbbb"
 },
    
"frcUprkBeneficiary":
 
"frcUprkBenefi",
 
{
  
"orderingFrcUprk":
 
"orderingFrcUp",
     "
device
authorizationCode": "
123456789-123456789-123456789-12
1234",
        "
ip
accountNumber": "
198.162.200.200
9500502030236002994",
        "
latitude
transactionDescription":
-109.699
 "P2P RECIEVER",
  
"longitude":
 
23.062,
     "
recipientName
feeAmount": "
recipientName01234567890123456",
0",
        "
orderingName
transactionCode": 
"orderingName012345678901234567",
8012,
        "
paymentSourceId
currentBalance": 
"paymentSourceId012345"
-169434,
     
},
   "
xTransactionId
creditLimit": 
"123"
0,
  
"accountNumber
      "openToBuy": 
"9500501545918394337",
17133400,
     
"operationType":
 
"W"
 
} Code Block{
 
"
historyDate
authorizationNumber": "
2023-09-08
332272"
,

"historyTime":
 
"122250",
 
"transactionData":
 
{
 
"transactionCode":
 
"8012", "transactionDescription": "P2P RECIEVER", "currentBalance": "-2122495", "openToBuy": "2122546"
 }
    ]
  }
}
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

P2P

QR.

Code Block
{
  "
from
transactionData": {
    "
accountNumber
transactionAmount": 
"9500508496924050930"
20,
    "actionCode": "
8008
8038",
    "
transactionDescription
authorizationCode": "
P2P_TRANSFER_SOURCE
Q1er44",
    "
description
effectiveDate": "
P2P_TRANSFER_SOURCE
2022-08-24",
    "
authorizationCode
description": "
1234"
QR code test 
},
- normal 
hours"
to":
,
{
    
"
accountNumber
paidConcept": "
9500502030236002994
Hello",
    "
actionCode
memoPostedIndicator": "
8012
 ",
    "
transactionDescription
suppressMonetaryTransaction": "
P2P_TRANSFER_TARGET
Y",
    "
description
n1n2ByPass": "
P2P_TRANSFER_SOURCE
N",
    "
authorizationCode": "1234" }
identifier": 0,
    "
effectiveDate
box": "
2022-01-30
1",
    "
transactionAmount
crPlaza": 
100
"10MON",
    "
device
crStore": "
abcfghjfghjklghjkfghjk5678956789
50WHN",
    "
ip
keyTracking": "
198.162.123.148
Hello",
    "
latitude
beneficiaryAccount": 
123.56565656
"Hello",
    "
longitude
senderAccount": 
-23.565656
"Hello",
    "
xTransactionId
counterpartInstitution": "
123
Hello"
} Code Block{ "effectiveDate
,
    "operatingInstitution": "
2022-01-30
Hello",
    
"
transactionAmount
frcUprkBeneficiary": "
100
Hello",
"actionOutputArea":
 
{
 
"actionData":
 
[ {
 
"
authorizationCode
orderingFrcUprk": "
1234
Hello",
"accountNumber

    "device": "
9500508496924050930
123456789-123456789-123456789-12",
"transactionDescription

    "ip": "
P2P SENDER
198.162.200.200",
"transactionCode": 8008, "currentBalance

    "latitude": -
5988391
109.
0
699,
"openToBuy

    "longitude": 
5
23.
987391E8
062,
"authorizationNumber

    "recipientName": "
205229
Hello"
}, { "authorizationCode
,
    "orderingName": "
1234
Hello",
"accountNumber
    "paymentSourceId": "
9500502030236002994", "transactionDescription
bf0469d7-b507-44d6-af7d-d4edea6340f1"
  },
  "xTransactionId": "
P2P RECIEVER
123",
  
"
transactionCode
accountNumber":
8012,
 
"
currentBalance
9500508020127353147"
: -169434.0, "openToBuy": 1.70434E7, "authorizationNumber

}
Code Block
{
  "historyDate": "
923589" } ] } }

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

PUT → /v1/balances/transfers-qr

Descripción

Request

Response

HTTP Codes

Realiza una transferencia QR.

Code Block{
2023-09-12",
  "historyTime": "111311",
  "transactionData": {
    "
transactionAmount
transactionCode": 
20
"8038",
    "
actionCode
transactionDescription": "
8038
CASHOUT WITH QR-CODE(FREE BAL)",
    "
authorizationCode
currentBalance": "
Q1er44
-1382946",
    "
effectiveDate
openToBuy": "
2022-08-24",
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
{
  "
description
accountNumber": "9500501520328494829"
QR

}
Code Block
test - normal hours",
{
  "accountOrCardNumber": "9500501520328494829",
  "currentBalance": 998176210159,
  "
paidConcept
availableCreditLimit": 
"Hello"
32237425576994724,

  "
memoPostedIndicator
frozenBalance": 
" ",
26000
}

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

...

Customer Adapter

Info

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

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

CreateCustomer

Descripción

Request

Response

GRPC Codes

Creación del cliente

Code Block
{
    "
suppressMonetaryTransaction
logo": "
Y
60",
    "
n1n2ByPass
address": "
N
Ciruelas",
    "
identifier
houseNumber": 
0
"12345",
    "
box
externalNumber": "
1
8007",
    "
crPlaza
colony": "
10MON
Lomas",
    "
crStore
city": "
50WHN
Lomas de Alvarez",
    "
keyTracking
state": "
Hello
COL",
    "
beneficiaryAccount
postalCode": "
Hello
99980",
    "
senderAccount
dateOfBirth": "
Hello
2000-08-06",
    "
counterpartInstitution
stateOfBirth": "
Hello
CDMX",
    "
operatingInstitution
email": "
Hello
lmedina@palo-it.com",
    "
frcUprkBeneficiary
firstName": "
Hello
Judith",
    "
orderingFrcUprk
lastName": "
Hello
Medina",
    "
device
maternalLastName": "
123456789-123456789-123456789-12
Ruiz",
    "
ip
mobilePhoneNumber": "
198.162.200.200
5521163588",
    "
latitude
identificationNumber": 
-109.699
"4152554487415113698",
    "
longitude
ine": 
23.062
"1234117890099",
    "
recipientName
occupation": "
Hello
Tester",
    "
orderingName
genderCode": "
Hello
1",
    "
paymentSourceId
user4":
"bf0469d7-b507-44d6-af7d-d4edea6340f1" },
"1",
    "
xTransactionId
identificationNumberFlag": "
123",
2"
}
Code Block
{
    "
accountNumber
customerNumber": "
9500508020127353147
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
{
    
"
historyDate
email": "
2023-09-08
lmedina@palo-it.com",
    
"
historyTime
numberType": 
"122732"
1,
"transactionData": { "transactionCode
    "customerNumber": "
8038
0995000000000077863",
    
"
transactionDescription
address": "
CASHOUT WITH QR-CODE(FREE BAL)
Ciruelas",
    
"
currentBalance
dateOfBirth": "1999-02-
1382946
06",
"openToBuy
    "city": "
1382486"
Villa 
} }

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

Customer Aggregation service

Info

Incorpora los endpoints de Customer​

Validación de campos mandatorios antes del envío a Fiserv​

Expone endpoints a través de un API REST y gRPC

POST → /customers

Descripción

Request

Response

HTTP Codes

Registro del cliente en la el proveedor de clientes.

Code Block{
de Alvarez",
    "
logo
countryCode": "
60
MEX",
    "
address
county": "
Ciruelas
CDMX",
    "
houseNumber
colony": "
12345
ADOLFO LOPEZ MATEOS",
    "externalNumber": "
8007
1007",
    "
colony
firstName": "
Lomas
Sandra",
    "
city
genderCode": 
"Lomas de Alvarez"
2,
    "
state
houseNumber": "
COL
123",
    "
postalCode
ine": "
99980
1234117890099",
    "
dateOfBirth
lastName": "
2000-08-06
Velasco",
    "
stateOfBirth
maritalStatus": 
"CDMX"
0,
    "
email
maternalLastName": "
lmedina@palo-it.com
Medina",
    "
firstName
middleName": "
Judith
Rosa",
    "
lastName
mobilePhoneIndicator": 
"Medina"
1,
    "
maternalLastName
mobilePhoneNumber": "
Ruiz
31211635899",
    "
mobilePhoneNumber
occupation": "
5521163588
NURSE",
    "
identificationNumber
ownOrRentResidenceFlag": 
"4152554487415113698"
0,
    "
ine
postalCode": 
"1234117890099"
54070,
    "
occupation
stateOfBirth": "
Tester",
DF"
}
Code Block
{
    "
genderCode
outputArea":
"1",
 {
        "
user4
customerNumber": "
1
0995000000000077863",
        "
identificationNumberFlag
accountNumber": "
2
0995000000000077863"
} Code Block{
,
        "
customerNumber
responseCode": "
0995000000000080589
"
}

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

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
{
  "
customerNumber
accountNumber": "
0995000000000077863
9500505675946730065",
  "alternateCustomer": 
  {
    "
accountNumber
expirationDate": "
0995000000000077863
2023-08-22"
,

  
},
  "
responseCode
customerNumber": "0995000000000075954",

  "
level
qualification": "2",
  
"customerTypeIndicator": 0,
  "
transactionAmount
foreignUseIndicator": 0
,

}
Code Block
{
    
"
countryLimit
customerNumber": 
{
"0995000000000045697",
    "accountNumber": 
"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
{
  "
dailyLimitLoad
cardNumber":
0,
 
"monthlyLimitLoad": 0,
"0004217470072001676"
}
Code Block
{
    
"
dailyLimitCash
accountNumber":
0,
 
"
monthlyLimitCash": 0,
0004217470072001676"
}

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
{
  "
limitForDepositTransactions
customerOrAccountNumber": 
0 }
"9500507060523627372",
  
"accountLimit": { "accountDailyAmountLoad": 0,
"cardNumber": "0004217470969640887",
  "
accountMonthlyAmountLoad
cardholderType": 
0,
1
}
Code Block
{
    
"
accountDailyAmountCash
cardNumber": 
0, "accountMonthlyAmountCash": 0
"***************4568",
    
} }
"customerOrAccountNumber": "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
{

  "
accountNumber
panToken": "
0004217470138987703
0004217470595215803",
  
"
customerNumber
cardSequence": 
"0995000000000045698"
2147483647,

  "
qualification": "1", "customerTypeIndicator
foreignUse": 0
,

"foreignUseIndicator": 0, "alternateCustomer": { "expirationDate": "2023/12/30" }
}
Code Block
{
	"postToAccount": "9500508261544464147",
	"blockCode": "Z",
	"
customerNumber
cardNumber": "
0995000000000045697
***************0252",
	"currentCardActivation": 
"accountNumber
"N",
	"dateBlock": "
1650
2023-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

...

Incorpora los endpoints de Card​

...

​POST /cards/embosser/details

Descripción

Request

Response

HTTP Codes

Expone endpoints a través de un API REST y gRPC​

Obtener cuenta mediante Pantoken Inactivo

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

PUT /account/prepaid

...

Descripción

...

Request

...

Response

...

HTTP Codes

GET /cards/account

Descripción

Request

Response

HTTP Codes

Vinculación de tarjetas a cuentas

Code Block{ "accountNumber": "4444888833330009999", "cardNumber": "000123456ID5IXX1234", "isPrimaryCard
"
: false }

Code Block{

Descripción

Request

Response

HTTP Codes

Activación de tarjetas
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

PUT /cards/activation​

Obtener cuenta mediante Pantoken Expirado

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

}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

POST → /v1/cards/embosser/block

Descripción

Request

Response

HTTP Codes

Bloqueo de tarjetas - Bloqueo

Code Block
{
  "
organizationNumber
blockCode":
999,
 "
logo
Z"
: 1
,
  "
cardNumber
panToken": "
000123456ID5IXX1234
0004217470885923553",
  "
serviceType
cardSequence": 
"A"
1,
  "
numberCardsActivated
functionCode":
1,
 "
foreignOrg": 1, "numberForeignCardsActivated": 0 }
B" //B para bloquear - u Desbloquear
}
Code Block
{}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

PUT /cards/embosser/block

Descripción

Request

Response

HTTP Codes

Bloqueo de tarjetas - Desbloqueo

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

...