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

...

GRPC 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-11", "accountMakerDateOfBirth": "", "availableCredit": 0, "userAmounts9": 0,
09-13"
    
"userAmounts10": 0, "userAmounts7": 0
}
}

200

OK

: Solicitud exitosa.

400

Bad Request

: Request con campos no válidos.

500 Internal Server Error

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.

SetAccountBlock

DescripciónRealiza bloqueos/desbloqueo de cuenta.

Request

Response

HTTP Codes

GRPC Codes

Realiza la consulta de bloqueos de cuenta Expirada

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

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

200

OK

: Solicitud exitosa.

400

Bad Request

: Request con campos no válidos.

500 Internal Server Error

Descripción

Request

Response

HTTP Codes

GRPC Codes

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

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.

SynchronizeMirrorAccount

Realiza la consulta de bloqueos de cuenta Bloqueada

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

200

OK

: Solicitud exitosa.

400

Bad Request

: Request con campos no válidos.

500 Internal Server Error

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.

Balance

Info

Consulta de balance​

Repositorio sincronizado con Fiserv​

Disminuye peticiones al Proveedor

GetAccountBalance

Descripción

Request

Response

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
{
  "blockCode": "M",
  "blockCodeIndicator": 0,
  "foreignUse": 0,
  "functionCode": "B",
  "accountNumber": "9500501520328494829"
}

Code Block
{
    "
accountOrCardNumber
functionCode": "
9500501520328494829
B",
    "
currentBalance
accountNumber": 
998176210159
"9500501520328494829",
    "
availableCreditLimit
blockCode1Local": 
32237425576994724
"M",
    "
frozenBalance
localOrganization": 
26000
950
}

200

OK

: Solicitud exitosa.

400

Bad Request

: Request con campos no válidos.

401: Apy Key no válida.

500

Internal Server Error

Descripción

Request

Response

HTTP Codes

GRPC Codes

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

: Servicios no disponibles.

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

SynchronizeMirrorBalance

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

Code Block
{
  "blockCode": "U",
  "blockCodeIndicator": 0,
  "foreignUse": 1,
  "functionCode": "B",
  "accountNumber": "9500501520328494829"
}
Code Block
{
    "
accountOrCardNumber
functionCode": "
9500501520328494829
B",
    "
currentBalance
accountNumber": 
998176210159
"9500501520328494829",
  
"availableCreditLimit":
 
32237425576994724,
 "
frozenBalance
localOrganization": 
26000
950
}

200

OK

: Solicitud exitosa.

400

Bad Request

: Request con campos no válidos.

401: Apy Key no válida.

500

Internal Server Error

Descripción

Request

Response

HTTP Codes

GRPC Codes

Realiza una transferencia .

: Servicios no disponibles.

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

TransferBalance

Realiza bloqueos/desbloqueo de cuenta - Desbloquear

Code Block
{
  "
transactionData
blockCode":
{
 
"
transactionAmount
"
: 1
,

  "
actionCode
blockCodeIndicator": 
"8012"
2,

  "
authorizationCode
foreignUse": 
"311S3q"
0,
  
"
effectiveDate
functionCode": "
2023-06-21
U",

  "
description
accountNumber": "
P2P",
9500501520328494829"
}

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

200 OK: Solicitud exitosa.

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

500 Internal Server Error: Servicios no disponibles.

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

HTTP Codes

GRPC Codes

Realiza una transferencia P2P.

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

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

    
"
feeAmount
actionCode": "
0
8008",

    "
transactionCode
transactionDescription":
8008,
 
"currentBalance": -5988391
"P2P_TRANSFER_SOURCE",
    
"
creditLimit
description":
0,
 "
openToBuy": 598649100
P2P_TRANSFER_SOURCE",
    
"
authorizationNumber
authorizationCode": "
507925
1234"

  },
{

  "
authorizationCode
to": 
"1234",
{
    "accountNumber": "9500502030236002994",
    "actionCode": "8012",
    "transactionDescription": "P2P
RECIEVER
_TRANSFER_TARGET",
    "description": "P2P_TRANSFER_SOURCE",
    "
feeAmount
authorizationCode": "
0
1234"
,

  
},
    "
transactionCode
effectiveDate": 
8012,
"2022-01-30",
    "transactionAmount": 100,
    "
currentBalance
device": 
-169434
"abcfghjfghjklghjkfghjk5678956789",
    "ip": "198.162.123.148",
    "
creditLimit
latitude": 
0
123.56565656,
    "longitude": -23.565656,
    "
openToBuy
xTransactionId": 
17133400, "authorizationNumber
"123"
}
Code Block
{
	"effectiveDate": "2022-01-30",
	"transactionAmount": "
332272
100",
	"actionOutputArea": {
		"actionData": [
			{
} ] } }

200 OK: Solicitud exitosa.

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

500 Internal Server Error: Servicios no disponibles.

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

HTTP Codes

GRPC Codes

Realiza una transferencia QR.

Code Block{ "transactionData": { "transactionAmount": 20, "actionCode": "8038", "authorizationCode": "Q1er44", "effectiveDate": "2022-08-24", "description": "QR code test - normal hours", "paidConcept": "Hello", "memoPostedIndicator": " ", "suppressMonetaryTransaction": "Y", "n1n2ByPass": "N", "identifier": 0, "box": "1"
				"authorizationCode": "1234",
				"accountNumber": "9500508496924050930",
				"transactionDescription": "P2P SENDER",
				"transactionCode": 8008,
				"currentBalance": -5988391.0,
				"openToBuy": 5.987391E8,
				"authorizationNumber": "205229"
			},
			{
				"authorizationCode": "1234",
				"accountNumber": "9500502030236002994",
				"transactionDescription": "P2P RECIEVER",
				"transactionCode": 8012,
				"currentBalance": -169434.0,
				"openToBuy": 1.70434E7,
				"authorizationNumber": "923589"
			}
		]
	}
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

PUT → /v1/balances/transfers-qr

Descripción

Request

Response

HTTP Codes

GRPC Codes

Realiza una transferencia QR.

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

    "
transactionCode
device": "
8038
123456789-123456789-123456789-12",
    "
transactionDescription
ip": "
CASHOUT WITH QR-CODE(FREE BAL)
198.162.200.200",
    "
currentBalance
latitude": 
"
-
1382946"
109.699,
    "
openToBuy
longitude": 
"1382326" } }

200 OK: Solicitud exitosa.

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

500 Internal Server Error: Servicios no disponibles.

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
23.062,
    "recipientName": "Hello",
    "orderingName": "Hello",
    "paymentSourceId": "bf0469d7-b507-44d6-af7d-d4edea6340f1"
  },
  "xTransactionId": "123",
  "accountNumber": "9500508020127353147"
}
Code Block
{
	"
postToAccount
historyDate": "2023-09-08",
	"historyTime": "
9500508261544464147
122732",
	
"blockCode
"transactionData": {
		"transactionCode": "
Z
8038",
		"
cardNumber
transactionDescription": "
***************0252
CASHOUT WITH QR-CODE(FREE BAL)",
		"
currentCardActivation
currentBalance": "
N
-1382946",
		"
dateBlock
openToBuy": "
2023-09-04
1382486"
	}
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles

.

...

.

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

...

Customer Aggregation service

Info

Incorpora los endpoints de Customer​

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

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

POST → /customers

Descripción

Request

Response

HTTP

HTTP Codes

GRPC Codes

Bloqueo de tarjetas

Registro del cliente en la el proveedor de clientes.

Code Block
{
    "
blockCode
logo": "
Z
60",
    "
panToken
address": "
0004217470885923553
Ciruelas",
    "
cardSequence
houseNumber": 
1
"12345",
    "
functionCode
externalNumber": "
B
8007"
//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

GRPC Codes

Realiza la consulta de bloqueos de cuenta.

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

200

OK

: Solicitud exitosa.

400

Bad Request

: Request con campos no válidos.

500 Internal Server Error

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

Realiza bloqueos/desbloqueo de cuenta

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

Code Block
{
    "
blockCode
email": "lmedina@palo-it.com",
    "
blockCodeIndicator
numberType": 1,
    "
foreignUse
customerNumber": 
0
"0995000000000077863",
    "
functionCode
address": "
U
Ciruelas",
    "
accountNumber
dateOfBirth": 
"9500501520328494829" } Code Block{
"1999-02-06",
    "
functionCode
city": "
B
Villa de Alvarez",
    "
accountNumber
countryCode": "
9500501520328494829
MEX",
    "
blockCode1Local
county": "
M
CDMX",
    "
localOrganization
colony": 
950 }

200 OK: Solicitud exitosa.

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

500 Internal Server Error: Servicios no disponibles.

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

HTTP Codes

GRPC Codes

Realiza una transferencia .

Code Block{ "transactionData": {
"ADOLFO LOPEZ MATEOS",
    "
transactionAmount
externalNumber": 
1
"1007",
    "
actionCode
firstName": "
8012
Sandra",
    "
authorizationCode
genderCode": 
"311S3q"
2,
    "
effectiveDate
houseNumber": "
2023-06-21
123",
    "
description
ine": "
P2P
1234117890099",
    "
paidConcept
lastName": "
test
Velasco",
    "
memoPostedIndicator
maritalStatus": 
"qqq"
0,
    "
suppressMonetaryTransaction
maternalLastName": "
qqq
Medina",
    "
n1n2ByPass
middleName": "
qqq
Rosa",
    "
identifier
mobilePhoneIndicator": 
"S_IN"
1,
    "
box
mobilePhoneNumber": "
3
31211635899",
    "
crPlaza
occupation": "
10MON
NURSE",
    "
crStore
ownOrRentResidenceFlag": 
"50WHN"
0,
    "
keyTracking
postalCode": 
"KEYTRACKING0123456789"
54070,
    "
senderAccount
stateOfBirth": "
senderAccount012345",
DF"
}
Code Block
{
    "
beneficiaryAccount
outputArea": 
"beneficiaryAccount1",
{
        "
counterpartInstitution
customerNumber": "
aaaaa
0995000000000077863",
        "
operatingInstitution
accountNumber": "
bbbbb
0995000000000077863",
        "
frcUprkBeneficiary
responseCode": "
frcUprkBenefi
"
,
,
        "
orderingFrcUprk
level": "
orderingFrcUp
",
        "
device
transactionAmount": 
"123456789-123456789-123456789-12",
0,
        "
ip
countryLimit":
"198.162.200.200",
 {
      
"latitude":
 
-109.699,
     "
longitude
dailyLimitLoad": 
23.062
0,
    
"recipientName": "recipientName01234567890123456",
        "
orderingName
monthlyLimitLoad": 
"orderingName012345678901234567"
0,
     
"paymentSourceId":
 
"paymentSourceId012345"
   
},
   "
xTransactionId
dailyLimitCash": 
"123"
0,
  
"accountNumber": "9500501545918394337" } Code Block{
          "
historyDate
monthlyLimitCash": 
"2023-09-12",
0,
    
"historyTime": "111208",
        "
transactionData
limitForDepositTransactions": 
{
0
    
"transactionCode":
 
"8012",
   },
 
"transactionDescription":
 
"P2P
 
RECIEVER",
     "
currentBalance
accountLimit": 
"-2122495",
{
    
"openToBuy":
 
"2122548"
   
}
 
}

200 OK: Solicitud exitosa.

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

500 Internal Server Error: Servicios no disponibles.

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

HTTP Codes

GRPC Codes

Realiza una transferencia P2P.

Code Block{
   "
from
accountDailyAmountLoad":
{
 0,
            "
accountNumber
accountMonthlyAmountLoad": 
"9500508496924050930",
0,
            "
actionCode
accountDailyAmountCash": 
"8008"
0,
      
"transactionDescription":
 
"P2P_TRANSFER_SOURCE",
     "
description
accountMonthlyAmountCash": 
"P2P_TRANSFER_SOURCE",
0
    
"authorizationCode":
 
"1234"
   }
,

    
"to":
}
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

POST → /customers/account

Descripción

Request

Response

HTTP Codes

GRPC Codes

Vinculación del cliente en la cuenta de Spin.

Code Block
{
    "accountNumber": "
9500502030236002994
0004217470138987703",
    "
actionCode
customerNumber": "
8012
0995000000000045698",
    "
transactionDescription
qualification": "
P2P_TRANSFER_TARGET
1",
    "
description
customerTypeIndicator": 
"P2P_TRANSFER_SOURCE"
0,
    "
authorizationCode
foreignUseIndicator": 
"1234" }
0,
    "
effectiveDate
alternateCustomer": 
"2022-01-30",
{
    
"transactionAmount":
 
100,
   "
device
expirationDate": "
abcfghjfghjklghjkfghjk5678956789
2023/12/30"
,

    
"ip": "198.162.123.148",
}
}
Code Block
{
    "
latitude
customerNumber": 
123.56565656
"0995000000000045697",
    "
longitude
accountNumber": 
-23.565656, "xTransactionId": "123" }
"1650"
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

...

Card Aggregation service

Info

Incorpora los endpoints de Card​

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

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

​POST /cards/embosser/details

Descripción

Request

Response

HTTP Codes

Obtener cuenta mediante Pantoken

Code Block
{
  "
effectiveDate
panToken": "
2022-01-30
0004217470595215803",
  "
transactionAmount
cardSequence": 
"100"
2147483647,
  "
actionOutputArea
foreignUse": 
{ "actionData": [ { "authorizationCode
0
}
Code Block
{
	"postToAccount": "
1234", "accountNumber": "9500508496924050930", "transactionDescription": "P2P SENDER", "feeAmount
9500508261544464147",
	"blockCode": "
0
Z",
"transactionCode": 8008, "currentBalance": -5988391, "creditLimit": 0, "openToBuy": 598649100, "authorizationNumber": "507925" }, { "authorizationCode": "1234", "accountNumber": "9500502030236002994", "transactionDescription": "P2P RECIEVER", "feeAmount": "0", "transactionCode": 8012, "currentBalance": -169434, "creditLimit": 0, "openToBuy": 17133400, "authorizationNumber": "332272" } ] } }

200 OK: Solicitud exitosa.

400 Bad Request
	"cardNumber": "***************0252",
	"currentCardActivation": "N",
	"dateBlock": "2023-09-04"
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

PUT /cards/account

Descripción

Request

Response

HTTP Codes

Vinculación de tarjetas a cuenta

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

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

POST /cards/account

Descripción

Request

Response

HTTP Codes

Recuperación del numero de cuenta

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

Code Block
{
    "accountNumber": "0004217470041850252"
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

Info

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

Image Added

PUT /cards/activation​ [Equipo de Spin]

Descripción

Request

Response

HTTP Codes

Activación de tarjetas

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

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

200: Solicitud exitosa.

400: Request con campos no válidos.

500 Internal Server Error: Servicios no disponibles.

0 OK: Solicitud exitosa.

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

13 Internal Server Error:

401: Apy Key no válida.

500: Servicios no disponibles.

...

PUT /cards/embosser/block

Descripción

Request

Response

HTTP Codes

GRPC Codes

Realiza una transferencia QR.

Bloqueo de tarjetas

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

  "
actionCode
panToken": "
8038
0004217470885923553",

  
"
authorizationCode
cardSequence": 
"Q1er44"
1,

  "
effectiveDate
functionCode": "
2022-08-24", "description": "QR code test - normal hours", "paidConcept": "Hello", "memoPostedIndicator": " ", "suppressMonetaryTransaction": "Y
B" //B para bloquear - u Desbloquear
}
Code Block
{}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

...

Mirror

Account

Info

Consulta de bloqueos​

Repositorio sincronizado con Fiserv​

Disminuye peticiones al Proveedor​

GetAccountDetails

Descripción

Request

Response

GRPC Codes

Realiza la consulta de bloqueos de cuenta.

Code Block
{
  "accountNumber": "9500501520328494829"
}
Code Block
{
  "accountData": {
    "accountNumber": "9500501520328494829",
    "
n1n2ByPass
customerNumber": "
N
0995000000000035249",
    "
identifier
blockCode1": 
0, "box": "1
"M",
    "
crPlaza
blockCode1Date": "
10MON
2023-09-07",
    "
crStore
blockCode2": "
50WHN
M",
    "
keyTracking
blockCode2Date": "
Hello
2023-08-11",
    "
beneficiaryAccount": "Hello", "senderAccount
accountMakerDateOfBirth": 
"Hello
"
, "counterpartInstitution": "Hello
",
    "
operatingInstitution
availableCredit": 
"Hello"
0,
    "
frcUprkBeneficiary
userAmounts9": 
"Hello"
0,
    "
orderingFrcUprk
userAmounts10": 
"Hello"
0,
    "
device
userAmounts7": 
"123456789-123456789-123456789-12",
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
{
  "
ip
blockCode": "
198.162.200.200
",
  "blockCodeIndicator": 1,
  "
latitude
foreignUse": 
-109.699,
0,
  "
longitude
functionCode": 
23.062
"U",
  
"
recipientName
accountNumber": "
Hello
9500501520328494829"
,

}
Code Block
{
  "
orderingName
functionCode": "
Hello
B",

  
"
paymentSourceId
accountNumber": "
bf0469d7-b507-44d6-af7d-d4edea6340f1" }
9500501520328494829",
  "
xTransactionId
blockCode1Local": "
123
M",
  "
accountNumber
localOrganization": 
"9500508020127353147"
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
{
  "
historyDate
accountNumber": "
2023-09-12",
9500501520328494829"
}
Code Block
{
  "
historyTime
accountData":
"111311",
 {
    "
transactionData
accountNumber":
{
 "9500501520328494829",
    "
transactionCode
customerNumber": "
8038
0995000000000035249",
    "
transactionDescription
blockCode1": "
CASHOUT WITH QR-CODE(FREE BAL)
M",
    "
currentBalance
blockCode1Date": "2023-09-
1382946
07",
    "
openToBuy
blockCode2": "
1382326
M",
   
} }

200 OK: Solicitud exitosa.

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

500 Internal Server Error: Servicios no disponibles.

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

HTTP Codes

GRPC Codes

Realiza la consulta de balance de cuenta.

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

200 OK: Solicitud exitosa.

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

500 Internal Server Error: Servicios no disponibles.

 "blockCode2Date": "2023-08-11",
    "accountMakerDateOfBirth": "",
    "availableCredit": 0,
    "userAmounts9": 0,
    "userAmounts10": 0,
    "userAmounts7": 0
  }
}

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

...

Balance

Info

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

...

Consulta de balance​

Repositorio sincronizado con Fiserv​

Disminuye peticiones al Proveedor

GetAccountBalance

Descripción

Request

Response

HTTP Codes

GRPC Codes

Creación del cliente

Realiza la consulta de balance de cuenta.

Code Block
{

  "
logo
accountNumber": "
60
9500501520328494829"
,

}
Code Block
{
  "
address
accountOrCardNumber": "
Ciruelas
9500501520328494829",

  "
houseNumber
currentBalance": 
"12345"
998176210159,

  "
externalNumber
availableCreditLimit": 
"8007"
32237425576994724,

  "
colony
frozenBalance": 
"Lomas", "city": "Lomas de Alvarez", "state": "COL", "postalCode": "99980
26000
}

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

SynchronizeMirrorBalance

Descripción

Request

Response

GRPC Codes

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

Code Block
{
  "accountNumber": "9500501520328494829"
}
Code Block
{
  "accountOrCardNumber": "9500501520328494829",
  
"
dateOfBirth
currentBalance": 
"2000-08-06",
998176210159,
  "
stateOfBirth
availableCreditLimit": 
"CDMX"
32237425576994724,

  "
email
frozenBalance":
"lmedina@palo-it.com", "firstName": "Judith",
 26000
}

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

TransferBalance

Descripción

Request

Response

GRPC Codes

Realiza una transferencia .

Code Block
{
  "transactionData": {
    "
lastName
transactionAmount": 
"Medina"
1,
    "
maternalLastName
actionCode": "
Ruiz
8012",
    "
mobilePhoneNumber
authorizationCode": "
5521163588
311S3q",
    "
identificationNumber
effectiveDate": "
4152554487415113698
2023-06-21",
    "
ine
description": "
1234117890099
P2P",
    "
occupation
paidConcept": "
Tester
test",
    "
genderCode
memoPostedIndicator": "
1
qqq",
    "
user4
suppressMonetaryTransaction": "
1
qqq",
    "
identificationNumberFlag
n1n2ByPass": "
2" } Code Block{
qqq",
    "
customerNumber
identifier": "
0995000000000080589" }

200 OK: Solicitud exitosa.

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

500 Internal Server Error: Servicios no disponibles.

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

HTTP Codes

GRPC Codes

Actualizar cliente

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

  "
ine
operationType": "
1234117890099
W"
,

  },
  "
lastName
xTransactionId": "
Velasco
123",

  
"
maritalStatus
accountNumber": 
0,
"9500501545918394337"
}
Code Block
{
  "
maternalLastName
historyDate": "
Medina
2023-09-12",

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

  "
outputArea
from": {

    "
customerNumber
accountNumber": "
0995000000000077863
9500508496924050930",

    "
accountNumber
actionCode": "
0995000000000077863
8008",

    
"
responseCode
transactionDescription": "P2P_TRANSFER_SOURCE",

    
"
level
description": "P2P_TRANSFER_SOURCE",

    "
transactionAmount
authorizationCode": 
0,
"1234"
  
},
  "
countryLimit
to": {
    
"dailyLimitLoad": 0, "monthlyLimitLoad": 0,
"accountNumber": "9500502030236002994",
    "
dailyLimitCash
actionCode": 
0
"8012",
    
"transactionDescription": "P2P_TRANSFER_TARGET",
    "
monthlyLimitCash
description": 
0,
"P2P_TRANSFER_SOURCE",
    "authorizationCode": "1234"
  },
    "
limitForDepositTransactions
effectiveDate": 
0
"2022-01-30",
    "transactionAmount": 100,
  
},
  
"device": "abcfghjfghjklghjkfghjk5678956789",
    "
accountLimit
ip": 
{
"198.162.123.148",
    "latitude": 123.56565656,
    
"
accountDailyAmountLoad
longitude": 
0,
-23.565656,
    "xTransactionId": "123"
}
Code Block
{
  
"effectiveDate": "2022-01-30",
  "
accountMonthlyAmountLoad
transactionAmount": 
0
"100",
  "actionOutputArea": {
    "actionData": [
  
"accountDailyAmountCash":
 
0,
   {
        
"
accountMonthlyAmountCash
authorizationCode": 
0
"1234",
        
}
"accountNumber": "9500508496924050930",
 
} }

200 OK: Solicitud exitosa.

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

500 Internal Server Error: Servicios no disponibles.

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

HTTP Codes

GRPC Codes

Vincular cuenta al cliente

Code Block{
       "
accountNumber
transactionDescription": "
9500505675946730065
P2P SENDER",
        "
alternateCustomer
feeAmount": "0",
   
{
     "
expirationDate
transactionCode": 8008,
        "currentBalance"
2023-08-22"
: -5988391,
     
},
   "
customerNumber
creditLimit": 
"0995000000000075954",
0,
        "openToBuy": 598649100,
        "
qualification
authorizationNumber": "
2"
507925"
      },
  
"customerTypeIndicator
    {
        "authorizationCode": 
0
"1234",
  
"foreignUseIndicator":
 
0 } Code Block{
     "
customerNumber
accountNumber": "
0995000000000045697
9500502030236002994",
        "
accountNumber
transactionDescription": "
1650
P2P RECIEVER"
}

200 OK: Solicitud exitosa.

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

500 Internal Server Error: Servicios no disponibles.

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

Descripción

Request

Response

HTTP Codes

Add a new card to account

Code Block{
,
        "
addressLine1
feeAmount": "
1
0",
        "
addressLine2
transactionCode": 
"2",
8012,
        "
assignedSpendingLimits
currentBalance": -169434,
   
{
     "
maximumSpendingLimit
creditLimit": 
3
0,
        "
spendingFrequency
openToBuy": 
4
17133400,
        "
spendingTransaction
authorizationNumber": 
5 },
"332272"
      }
    ]
  }
}

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

FrozenBalanceTransfer

Descripción

Request

Response

GRPC Codes

Realiza una transferencia QR.

Code Block
{
  "
atmCashAmount
transactionData": {
 
6,
   "
atmCashNumber
transactionAmount": 
7
20,
  
"atmCashSingleTransactionLimit":
 
8,
 
"
authorizationCriteriaTableNumber
actionCode": "
9
8038",
    "
authorizationSpendingLimitTable
authorizationCode": "
10
Q1er44",
    "
blockCode
effectiveDate": "
11
2022-08-24",
  
"branchNumber": 12,
  "
cardAction
description": 
13,
"QR code 
"cardActionReasonCode": "14
test - normal hours",
  
"cardDelayDays":
 
15,
 
"
panToken
paidConcept": "
16
Hello",
  
"cardSequence":
 
17,
 
"
cardholderAffiliationGroupId
memoPostedIndicator": "
18
 ",
  
"cardholderFlag":
 
"19",
 
"
city
suppressMonetaryTransaction": "
20
Y",
  
"currentCardActivation":
 
"21",
 
"
customerNumber
n1n2ByPass": "
22
N",
    "
deliveryOption
identifier": 
23
0,
    "
deviceIndicator
box": "
24
1",
    "
embossedName1
crPlaza": "
25
10MON",
    "
embossedName2
crStore": "
26
50WHN",
    "
enrollmentStatusVBV
keyTracking": "
27
Hello",
    "
expirationDate
beneficiaryAccount": "
28
Hello",
    "
firstIssueBranch
senderAccount": 
29
"Hello",
    "
internetPurchaseAmount
counterpartInstitution": 
30
"Hello",
    "
internetPurchaseNumber
operatingInstitution": 
31
"Hello",
    "
internetPurchaseSingleTransactionLimit
frcUprkBeneficiary": 
32
"Hello",
    "
languageCode
orderingFrcUprk": "
33
Hello",
    "
maximumAuthorizationFrequency
device": 
34
"123456789-123456789-123456789-12",
    "
name1
ip": "
35
198.162.200.200",
    "
name1TypeIndicator
latitude": 
36
-109.699,
  
"name2":
 
"37",
 
"
name2TypeIndicator
longitude": 
38
23.062,
    "
nextCardExpirationDate
recipientName": "
39
Hello",
    "
numberOfCardsRequested
orderingName": 
40
"Hello",
    "
overTheCounterCashAmount
paymentSourceId": 
42,
"bf0469d7-b507-44d6-af7d-d4edea6340f1"
  
"overTheCounterCashNumber": 43
},
  "
overTheCounterCashSingleTransactionLimit
xTransactionId": 
44
"123",
  "
pinMailerDelayDays
accountNumber":
45,
 "
pinOffset
9500508020127353147"
: 46,

}
Code Block
{
  "
pinSuppression
historyDate": 
47
"2023-09-12",
  "
plasticId
historyTime": "
48
111311",
  "
posServiceCode
transactionData": {
 
49,
   "
accountNumber
transactionCode": "
50
8038",
    "
postalCode
transactionDescription": 
51,
"CASHOUT WITH QR-CODE(FREE 
"processType": 52,
BAL)",
    "
programId
currentBalance": 
53, "reissueDeliveryOption": 54,
"-1382946",
    "
requestedCardType
openToBuy": "
55
1382326"
,

  
"retailPurchaseAmt": 56,
}
}

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
{
  "
retailPurchaseNumber
panToken": 
57
"0004217470595215803",
  "
retailPurchaseSingleTransactionLimit
cardSequence": 
58
2147483647,
  "
securedCodeActivate
foreignUse": 
59, "stateOrProvince
0
}
Code Block
{
	"postToAccount": "
60
9500508261544464147",
	"
typeCardMailer
blockCode": "
61
Z",
	"
typeOfCard
cardNumber": "
62
***************0252",
	"
user1
currentCardActivation":
63,
 "
user2
N"
: 64
,
	"
user3
dateBlock": 
65, "user4": 66, "user5": 67, "user6": 68, "user7": 69
"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",
  "
user8
panToken":
70,
 
"userDate1": "71
"0004217470885923553",
  "
userDate2
cardSequence": 
"72"
1,
  "
vbvPassword
functionCode": "
73
B"
,
 //B para 
"visaMiniIndicator": "74", "visaPlusIndicator": "75"
bloquear - u Desbloquear
}
Code Block
{
"panToken": "0004217470595215803", }
}

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 Code Block{

GRPC Codes

Obtener cuenta mediante Pantoken

Realiza la consulta de bloqueos de cuenta.

Code Block
{
  "accountNumber": "9500501520328494829"
}
Code Block
{
  "accountData": {
    "
panToken
accountNumber": "
0004217470595215803
9500501520328494829",
    "
cardSequence
customerNumber": 
2147483647
"0995000000000035249",
    "
foreignUse
blockCode1": 
0 } Code Block{ "postToAccount
"M",
    "blockCode1Date": "
9500508261544464147
2023-09-07",
"blockCode
    "blockCode2": "
Z
M",
"cardNumber
    "blockCode2Date": "
***************0252", "currentCardActivation": "N", "dateBlock": "2023-09-04" }

200: Solicitud exitosa.

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

401: Apy Key no válida.

13 Internal Server Error: Servicios no disponibles.

...

SetAccountBlock

Descripción

Request

Response

HTTP

GRPC Codes

Bloqueo de tarjetas

Code Block{

Realiza bloqueos/desbloqueo de cuenta.

Code Block
{
  "blockCode": "",
  "blockCodeIndicator": 1,
  "foreignUse": 0,
  "
blockCode
functionCode": "
Z
U",
  "
panToken
accountNumber": "
0004217470885923553",
9500501520328494829"
}
Code Block
{
  "
cardSequence
functionCode": 
1
"B",
  "
functionCode
accountNumber": "
B
9500501520328494829"
//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​

...

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

HTTP

GRPC Codes

Realiza

la consulta de bloqueos de cuenta

una transferencia .

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

POST → /v1/accounts/blocks

Descripción

Request

Response

HTTP Codes

Realiza bloqueos/desbloqueo de cuenta.

Code Block{
   "
blockCode
memoPostedIndicator": "qqq",
    "
blockCodeIndicator
suppressMonetaryTransaction": 
1
"qqq",
    "
foreignUse
n1n2ByPass": 
0
"qqq",
    "
functionCode
identifier": "
U
S_IN",
    "
accountNumber
box": "
9500501520328494829
3"
} Code Block{ "functionCode
,
    "crPlaza": "
U
10MON",
    
"
accountNumber
crStore": "
9500501520328494829
50WHN",
"localOrganization
    "keyTracking": 
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{
"KEYTRACKING0123456789",
    "
accountNumber
senderAccount": "
9500501520328494829
senderAccount012345",
 
} Code Block{
 
"accountData":
 
{
 
"
accountNumber
beneficiaryAccount": "
9500501520328494829
beneficiaryAccount1",
  
  "
customerNumber
counterpartInstitution": "
0995000000000035249
aaaaa",
    
"
blockCode1
operatingInstitution": "
M
bbbbb",
 
"blockCode1Date
   "frcUprkBeneficiary": "
2023-09-06
frcUprkBenefi",
    
"
blockCode2
orderingFrcUprk": "
M
orderingFrcUp",
    
"
blockCode2Date
device": "
2023
123456789-123456789-
08
123456789-
11
12"
} }

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

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

POST → /v1/balances

Descripción

Request

Response

HTTP Codes

Realiza la consulta de balance de cuenta.

Code Block{
,
    "
accountNumber
ip": "
9500501520328494829" }
Code Block
{
	"accountOrCardNumber": "9500501520328494829",
	"currentBalance": 998176209259,
	"availableCreditLimit": 1823760996,
	"frozenBalance": 26000.0
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

POST → /v1/balances/syncs

Descripción

Request

Response

HTTP Codes

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

Code Block{
198.162.200.200",
    "latitude": -109.699,
    "longitude": 23.062,
    "recipientName": "recipientName01234567890123456",
    "orderingName": "orderingName012345678901234567",
    "paymentSourceId": "paymentSourceId012345"
  },
  "xTransactionId": "123",
  "accountNumber": "
9500501520328494829
9500501545918394337"
}
Code Block
{
"accountOrCardNumber

  "historyDate": "2023-09-12",
  "historyTime": "111208",
  "transactionData": {
    "transactionCode": "
9500501520328494829
8012",
   
 "
currentBalance
transactionDescription": 
998176209259, "availableCreditLimit
"P2P RECIEVER",
    "currentBalance": 
1823760996, "frozenBalance": 26000.0 }200
"-2122495",
    "openToBuy": "2122548"
  }
}

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.

...

TransferPeerToPeer

Descripción

Request

Response

HTTP

GRPC Codes

Realiza una transferencia P2P.

Code Block
{
  "
transactionData
from": {
    "
transactionAmount
accountNumber":
1,
 "
actionCode
9500508496924050930"
: "8012"
,
    "
authorizationCode
actionCode": "
311S3q
8008",
    "
effectiveDate
transactionDescription": "
2023-06-21
P2P_TRANSFER_SOURCE",
    "description": "P2P_TRANSFER_SOURCE",
    "
paidConcept
authorizationCode": "
test
1234"
,

  
"memoPostedIndicator": "qqq",
},
  "
suppressMonetaryTransaction
to": 
"qqq",
{
    "
n1n2ByPass
accountNumber": "
qqq
9500502030236002994",
    "
identifier
actionCode": "
S_IN
8012",
    "
box
transactionDescription": "
3
P2P_TRANSFER_TARGET",
    "
crPlaza
description": "
10MON
P2P_TRANSFER_SOURCE",
    "
crStore
authorizationCode": "
50WHN
1234"
  },
    "
keyTracking
effectiveDate": "
KEYTRACKING0123456789
2022-01-30",
    "
senderAccount
transactionAmount": 
"senderAccount012345"
100,
    "
beneficiaryAccount
device": "
beneficiaryAccount1
abcfghjfghjklghjkfghjk5678956789",
    "
counterpartInstitution
ip": "
aaaaa
198.162.123.148",
    "
operatingInstitution
latitude": 
"bbbbb"
123.56565656,
    "
frcUprkBeneficiary
longitude": 
"frcUprkBenefi"
-23.565656,
    "
orderingFrcUprk
xTransactionId": "
orderingFrcUp
123"
,

}
Code Block
{
  
"
device
effectiveDate": "
123456789
2022-
123456789
01-
123456789-12
30",

  "
ip
transactionAmount": "
198.162.200.200
100",
  
"
latitude
actionOutputArea": 
-109.699,
{
    "
longitude
actionData":
23.062,
 [
      {
        "
recipientName
authorizationCode": "
recipientName01234567890123456",
1234",
        "
orderingName
accountNumber": "
orderingName012345678901234567
9500508496924050930",
        "
paymentSourceId
transactionDescription": "
paymentSourceId012345
P2P SENDER",
  
},
      "
xTransactionId
feeAmount": "
123
0",
        "
accountNumber
transactionCode": 
"9500501545918394337",
8008,
     
"operationType":
 
"W"
 
} Code Block{
 
"
historyDate
currentBalance": 
"2023-09-08", "historyTime
-5988391,
        "creditLimit": 
"122250", "transactionData": { "transactionCode": "8012", "transactionDescription": "P2P RECIEVER", "currentBalance": "-2122495", "openToBuy": "2122546" } }

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

PUT → /v1/balances/transfers-p2p

Descripción

Request

Response

HTTP Codes

Realiza una transferencia P2P.

Code Block{ "from": {
0,
        "openToBuy": 598649100,
        "authorizationNumber": "507925"
      },
      {
        "
accountNumber
authorizationCode": "
9500508496924050930
1234",
        "
actionCode
accountNumber": "
8008
9500502030236002994",
        "transactionDescription": "P2P
_TRANSFER_SOURCE
 RECIEVER",
        "
description
feeAmount": 
"P2P_TRANSFER_SOURCE",
"0",
        "
authorizationCode
transactionCode":
"1234"
 8012,
     
},
   "
to
currentBalance":
{
 -169434,
        "
accountNumber
creditLimit": 
"9500502030236002994",
0,
        "
actionCode
openToBuy": 
"8012",
17133400,
        "
transactionDescription
authorizationNumber": "
P2P_TRANSFER_TARGET",
332272"
      }
"description":
 
"P2P_TRANSFER_SOURCE",
   ]
 
"authorizationCode": "1234" },
 }
}

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

    "memoPostedIndicator": "
P2P
 
SENDER
",
"transactionCode

    "suppressMonetaryTransaction": 
8008
"Y",
"currentBalance":
 
-5988391.0,
 
"openToBuy":
 
5.987391E8,
 
"
authorizationNumber
n1n2ByPass": "
205229
N"
}, { "authorizationCode
,
    "identifier": 
"1234"
0,
"accountNumber
    "box": "
9500502030236002994
1",
"transactionDescription

    "crPlaza": "
P2P RECIEVER
10MON",
"transactionCode

    "crStore": 
8012, "currentBalance": -169434.0, "openToBuy": 1.70434E7, "authorizationNumber
"50WHN",
    "keyTracking": "Hello",
    "beneficiaryAccount": "
923589
Hello",
} ] } }

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{
    "senderAccount": "Hello",
    "
transactionData
counterpartInstitution": 
{
"Hello",
    "
transactionAmount
operatingInstitution": 
20
"Hello",
    "
actionCode
frcUprkBeneficiary": "
8038
Hello",
    "
authorizationCode
orderingFrcUprk": "
Q1er44
Hello",
    "
effectiveDate
device": "
2022
123456789-123456789-
08
123456789-
24
12",
    "
description
ip": "
QR code test - normal hours"
198.162.200.200",
    "latitude": -109.699,
    "longitude": 23.062,
    "
paidConcept
recipientName": "Hello",
    "
memoPostedIndicator
orderingName": "
Hello",
    "
suppressMonetaryTransaction
paymentSourceId": "
Y",
bf0469d7-b507-44d6-af7d-d4edea6340f1"
  },
  "
n1n2ByPass
xTransactionId": "
N
123",
  
"accountNumber": "
identifier
9500508020127353147"
: 0,

}
Code Block
{
  "
box
historyDate": "
1
2023-09-12",

  "
crPlaza
historyTime": "
10MON
111311",

  "
crStore
transactionData": 
"50WHN",
{
    "
keyTracking
transactionCode": "
Hello
8038",
    "
beneficiaryAccount
transactionDescription": "
Hello
CASHOUT WITH QR-CODE(FREE BAL)",
    "
senderAccount
currentBalance": "
Hello
-1382946",
    "
counterpartInstitution
openToBuy": "
Hello
1382326"
,

  }
"operatingInstitution
}

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

GetAccountBalance

Descripción

Request

Response

GRPC Codes

Realiza la consulta de balance de cuenta.

Code Block
{
  "accountNumber": "
Hello
9500501520328494829"
,

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

  "
orderingFrcUprk
currentBalance": 
"Hello"
998176210159,

  "
device
availableCreditLimit": 
"123456789-123456789-123456789-12",
32237425576994724,
  "
ip
frozenBalance":
"198.162.200.200",
 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
{
    "
latitude
logo":
-109.699,
 
"
longitude
60"
: 23.062
,
    "
recipientName
address": "
Hello
Ciruelas",
    "
orderingName
houseNumber": "
Hello
12345",
    "
paymentSourceId
externalNumber": "
bf0469d7-b507-44d6-af7d-d4edea6340f1"
8007",
 
},
   "
xTransactionId
colony": "
123
Lomas",
  
"accountNumber":
 
"9500508020127353147"
 
} Code Block{ "historyDate
"city": "
2023-09-08", "historyTime": "122732
Lomas de Alvarez",
"transactionData":
 
{
 
"transactionCode": "8038", "transactionDescription": "CASHOUT WITH
 
QR-CODE(FREE BAL)",
 
"
currentBalance
state": "
-1382946
COL",
    
"
openToBuy
postalCode": "
1382486
99980",
}
 
}

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

PUT → /customers

Descripción

Request

Response

HTTP Codes

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

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

   
"mobilePhoneIndicator":
 
1,
    
"
mobilePhoneNumber
responseCode": "
31211635899
",
        "
occupation
level": "
NURSE
",
        "
ownOrRentResidenceFlag
transactionAmount": 0,
        "
postalCode
countryLimit": 
54070,
{
     
"stateOfBirth":
 
"DF"
 
} Code Block{
     "
outputArea
dailyLimitLoad":
{
 0,
            "
customerNumber
monthlyLimitLoad": 
"0995000000000077863",
0,
            "
accountNumber
dailyLimitCash": 
"0995000000000077863",
0,
            "
responseCode
monthlyLimitCash": 
"",
0,
            "
level
limitForDepositTransactions": 
"",
0
        
"transactionAmount": 0
},
        "
countryLimit
accountLimit": {
            "
dailyLimitLoad
accountDailyAmountLoad": 0,
            "
monthlyLimitLoad
accountMonthlyAmountLoad": 0,
            "
dailyLimitCash
accountDailyAmountCash": 0,
            "
monthlyLimitCash
accountMonthlyAmountCash": 0
,

        }
    }
"limitForDepositTransactions": 0
}

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

  "customerNumber": "0995000000000075954",
  "
accountLimit
qualification": 
{
"2",
  "customerTypeIndicator": 0,
  "foreignUseIndicator": 0
}
Code Block
{
    "
accountDailyAmountLoad
customerNumber": 
0
"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
{
  "
accountMonthlyAmountLoad
cardNumber": 
0,
"0004217470072001676"
}
Code Block
{
    
"accountDailyAmountCash": 0, "accountMonthlyAmountCash": 0 } } }
"accountNumber": "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

Vinculación del cliente en la cuenta de Spin.

Desvincular una tarjeta de un número de cuenta

Code Block
{
"accountNumber": "0004217470138987703", "customerNumber": "0995000000000045698", "qualification": "1",

  "
customerTypeIndicator
customerOrAccountNumber": 
0
"9500507060523627372",

  "
foreignUseIndicator
cardNumber":
0,
 
"
alternateCustomer
0004217470969640887"
: {
,
  
"expirationDate
"cardholderType": 
"2023/12/30" }
1
}
Code Block
{
    "
customerNumber
cardNumber": "
0995000000000045697
***************4568",
    "
accountNumber
customerOrAccountNumber": "
1650
9500507060523627372"
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

Card Aggregation service

Info

Incorpora los endpoints de Card​

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

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

...

POST → /v1/cards/embosser/details

Descripción

Request

Response

HTTP Codes

Obtener cuenta mediante Pantoken Activo

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles

.

PUT /account/prepaid

Descripción

Request

Response

HTTP Codes

Vinculación de tarjetas a cuenta

.

Obtener cuenta mediante Pantoken Inactivo

Code Block
{
  "
customerOrAccountNumber
panToken": "
1234567890123456800
0004217470595215803",
  "
cardNumber
cardSequence": 
"000123456ID5IXX1234"
1,
  "
cardholderType
foreignUse": 1
}
Code Block
{
    "
customerOrAccountNumber
postToAccount": "
1234567890123456800
9500507060523627372",
    "
cardNumber
blockCode": "
000123456ID5IXX1234
Z",
}

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{
***************0252",
    "currentCardActivation": "N",
    "
accountNumber
dateBlock": "
0004217470041850252

Descripción

Request

Response

HTTP Codes

Activación de tarjetas

Code Block{
2023-09-04"
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

PUT /cards/activation​

Obtener cuenta mediante Pantoken Expirado

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

}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

POST → /v1/cards/embosser/block

Descripción

Request

Response

HTTP Codes

Bloqueo de tarjetas - Bloqueo

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

PUT /cards/embosser/block

Descripción

Request

Response

HTTP Codes

Bloqueo de tarjetas - Desbloqueo

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

...