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": "
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"
  },
  "
operationType
xTransactionId": "
W
123"
}
,
  "
xTransactionId
accountNumber": "
123
9500508176491773011", 
  "
accountNumber
operationType": "
9500501545918394337
D"
 }
Code Block
{
    "historyDate": "2023-09-
12
18",
    "historyTime": "
111208
164818",
    "transactionData": {
   
"transactionCode": "8012",
     "
transactionDescription
transactionCode": "
P2P RECIEVER
8000",
   
"currentBalance": "-2122495",
     "openToBuy": "
2122548
2000"
    }
}
2

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

4

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

5

13 Internal Server Error: Servicios no disponibles.

...

PUT → /v1/balances/transfers-p2p

Descripción

Request

Response

HTTP Codes

GRPC Codes

Realiza una transferencia P2P.

Code Block
{
  "from": {
    "accountNumber": "9500508496924050930",
    "actionCode": "8008",
    "transactionDescription": "P2P_TRANSFER_SOURCE",
    "description": "P2P_TRANSFER_SOURCE",
    "authorizationCode": "1234"
  },
  "to": {
    "accountNumber": "9500502030236002994",
    "actionCode": "8012",
    "transactionDescription": "P2P_TRANSFER_TARGET",
    "description": "P2P_TRANSFER_SOURCE",
    "authorizationCode": "1234"
  },
    "effectiveDate": "2022-01-30",
    "transactionAmount": 100,
    "device": "abcfghjfghjklghjkfghjk5678956789",
    "ip": "198.162.123.148",
    "latitude": 123.56565656,
    "longitude": -23.565656,
    "xTransactionId": "123"
}
Code Block
{
	"effectiveDate": "2022-01-30",
	"transactionAmount": "100",
	"actionOutputArea": {
		"actionData": [
{
			{
				"authorizationCode": "1234",
				"accountNumber": "9500508496924050930",
				"transactionDescription": "P2P SENDER",
"feeAmount": "0", "
				"transactionCode": 8008,
				"currentBalance": -5988391
, "creditLimit": 0,
.0,
				"openToBuy": 
598649100,
5.987391E8,
				"authorizationNumber": "
507925
205229"
			},
{
			{
				"authorizationCode": "1234",
				"accountNumber": "9500502030236002994",
				"transactionDescription": "P2P RECIEVER",
"feeAmount": "0", "transactionCode": 8012, "currentBalance": -169434, "creditLimit": 0,
				"transactionCode": 8012,
				"currentBalance": -169434.0,
				"openToBuy": 
17133400,
1.70434E7,
				"authorizationNumber": "
332272
923589"
} ] } }2
			}
		]
	}
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

4

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

5

13 Internal Server Error: Servicios no disponibles.

...

PUT → /v1/balances/transfers-qr

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",
    "crPlaza": "10MON",
    "crStore": "50WHN",
    "keyTracking": "Hello",
    "beneficiaryAccount": "Hello",
    "senderAccount": "Hello",
    "counterpartInstitution": "Hello",
    "operatingInstitution": "Hello",
    "frcUprkBeneficiary": "Hello",
    "orderingFrcUprk": "Hello",
    "device": "123456789-123456789-123456789-12",
    "ip": "198.162.200.200",
    "latitude": -109.699,
    "longitude": 23.062,
    "recipientName": "Hello",
    "orderingName": "Hello",
    "paymentSourceId": "bf0469d7-b507-44d6-af7d-d4edea6340f1"
  },
  "xTransactionId": "123",
  "accountNumber": "9500508020127353147"
}
Code Block
{

	"historyDate": "2023-09-
12
08",
	"historyTime": "
111311
122732",
	"transactionData": {
		"transactionCode": "8038",
		"transactionDescription": "CASHOUT WITH QR-CODE(FREE BAL)",
		"currentBalance": "-1382946",
		"openToBuy": "
1382326
1382486"
	}
}
2

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

4

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

5

13 Internal Server Error: Servicios no disponibles.

...

Customer Aggregation service

Info

Incorpora los endpoints de Card Mirror​Customer​Sincronización de datos con el Mirror​

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

Obtener cuenta mediante Pantoken

Code Block{

Codes

GRPC Codes

Registro del cliente en la el proveedor de clientes.

Code Block
{
    "logo": "60",
    "address": "Ciruelas",
    "houseNumber": "12345",
    "externalNumber": "8007",
    "colony": "Lomas",
    "
panToken
city": "
0004217470595215803
Lomas de Alvarez",
    "
cardSequence
state": 
2147483647
"COL",
    "
foreignUse
postalCode":
0 } Code Block{ "postToAccount
 "99980",
    "dateOfBirth": "
9500508261544464147
2000-08-06",
  
  "
blockCode
stateOfBirth": "
Z
CDMX",
    
"
cardNumber
email": "
***************0252
lmedina@palo-it.com",
"currentCardActivation
    "firstName": "
N
Judith",
  
  "
dateBlock
lastName": "
2023-09-04
Medina"
}

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
maternalLastName": "
Z
Ruiz",
    "
panToken
mobilePhoneNumber": "
0004217470885923553
5521163588",
    "
cardSequence
identificationNumber": 
1
"4152554487415113698",
    "
functionCode
ine": "
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

HTTP Codes

Realiza la consulta de bloqueos de cuenta.

Code Block{
1234117890099",
    "
accountNumber
occupation": "
9500501520328494829
Tester",
} Code Block{
    "
accountData
genderCode": 
{
"1",
    "
accountNumber
user4":
"
9500501520328494829
1",
    "
customerNumber
identificationNumberFlag": "
0995000000000035249",
2"
}
Code Block
{
    "
blockCode1
customerNumber": "
M",
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
{
    "
blockCode1Date
email": "
2023-09-07
lmedina@palo-it.com",
    "
blockCode2
numberType": 
"M"
1,
    "
blockCode2Date
customerNumber": "
2023-08-11
0995000000000077863",
    "
accountMakerDateOfBirth
address": "Ciruelas",
    "
availableCredit
dateOfBirth":
0,
 
"userAmounts9": 0
"1999-02-06",
    "
userAmounts10
city": 
0,
"Villa de 
"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{
Alvarez",
    "
blockCode
countryCode": "MEX",
    "
blockCodeIndicator
county": 
1
"CDMX",
    "
foreignUse
colony":
0
 "ADOLFO LOPEZ MATEOS",
    "
functionCode
externalNumber": "
U
1007",
    "
accountNumber
firstName": "
9500501520328494829
Sandra",
 
} Code Block{
   "
functionCode
genderCode": 
"B"
2,
    "
accountNumber
houseNumber": "
9500501520328494829
123",
    "
blockCode1Local
ine": "
M
1234117890099",
    "
localOrganization
lastName": "Velasco",
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
maritalStatus": 
{
0,
    "
transactionAmount
maternalLastName": 
1
"Medina",
    "
actionCode
middleName": 
"8012"
"Rosa",
    "mobilePhoneIndicator": 1,
    "
authorizationCode
mobilePhoneNumber": "
311S3q
31211635899",
    "
effectiveDate
occupation": "
2023-06-21
NURSE",
    "
description
ownOrRentResidenceFlag": 0,
    "
P2P
postalCode": 54070,
    "
paidConcept
stateOfBirth": "DF"
}
Code Block
{
    "
test",
outputArea": {
        "
memoPostedIndicator
customerNumber": "
qqq
0995000000000077863",
        "
suppressMonetaryTransaction
accountNumber": "
qqq
0995000000000077863",
        "
n1n2ByPass
responseCode": "
qqq
",
        "
identifier
level": "
S_IN
",
        "
box
transactionAmount": 
"3",
0,
        "
crPlaza
countryLimit":
"10MON",
 {
      
"crStore":
 
"50WHN",
     "
keyTracking
dailyLimitLoad": 
"KEYTRACKING0123456789"
0,
    
"senderAccount": "senderAccount012345",
        "
beneficiaryAccount
monthlyLimitLoad": 
"beneficiaryAccount1"
0,
    
"counterpartInstitution": "aaaaa",
        "
operatingInstitution
dailyLimitCash": 
"bbbbb"
0,
      
"frcUprkBeneficiary":
 
"frcUprkBenefi",
     "
orderingFrcUprk
monthlyLimitCash": 
"orderingFrcUp"
0,
      
"device":
 
"123456789-123456789-123456789-12",
     "
ip
limitForDepositTransactions": 
"198.162.200.200",
0
       
"latitude": -109.699,
 },
        "
longitude
accountLimit": 
23.062,
{
      
"recipientName":
 
"recipientName01234567890123456",
     "
orderingName
accountDailyAmountLoad": 
"orderingName012345678901234567"
0,
     
"paymentSourceId":
 
"paymentSourceId012345"
   
},
   "
xTransactionId
accountMonthlyAmountLoad": 
"123",
0,
       
"accountNumber":
 
"9500501545918394337"
 
} Code Block{
   "
historyDate
accountDailyAmountCash": 
"2023-09-12"
0,
  
"historyTime":
 
"111208",
   
"transactionData":
 
{
     "
transactionCode
accountMonthlyAmountCash": 
"8012",
0
    
"transactionDescription":
 
"P2P
 
RECIEVER",
  }
  
"currentBalance":
 
"-2122495",
 
"openToBuy": "2122548" } }2
}
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

4

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

5

13 Internal Server Error: Servicios no disponibles.

...

POST → /customers/account

Descripción

Request

Response

HTTP Codes

Realiza una transferencia P2P

GRPC Codes

Vinculación del cliente en la cuenta de Spin.

Code Block
{
    "
from
accountNumber": 
{
"0004217470138987703",
    "
accountNumber
customerNumber": "
9500508496924050930
0995000000000045698",
    "
actionCode
qualification": "
8008
1",
    "
transactionDescription
customerTypeIndicator": 0,
  
"P2P_TRANSFER_SOURCE"
  "foreignUseIndicator": 0,
    "
description
alternateCustomer": 
"P2P_TRANSFER_SOURCE",
{
        "
authorizationCode
expirationDate": "
1234" },
2023/12/30"
    }
}
Code Block
{
    "
to
customerNumber": 
{
"0995000000000045697",
    "accountNumber": "
9500502030236002994
1650"
, "actionCode": "8012", "transactionDescription": "P2P_TRANSFER_TARGET", "description": "P2P_TRANSFER_SOURCE", "authorizationCode": "1234" }, "effectiveDate": "2022-01-30", "transactionAmount": 100, "device": "abcfghjfghjklghjkfghjk5678956789", "ip": "198.162.123.148", "latitude": 123.56565656, "longitude": -23.565656, "xTransactionId": "123" }
Code Block
{
  "effectiveDate": "2022-01-30",
  "transactionAmount": "100",
  "actionOutputArea": {
    "actionData": [
      {
        "authorizationCode": "1234",
        "accountNumber": "9500508496924050930",
        "transactionDescription": "P2P SENDER",
        "feeAmount": "0",
        "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"
      }
    ]
  }
}

2 OK: Solicitud exitosa.

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

5 Internal Server Error: Servicios no disponibles.

FrozenBalanceTransfer

Descripción

Request

Response

HTTP Codes

Realiza una transferencia QR.

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

2 OK: Solicitud exitosa.

4

}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

...

Card Aggregation service

Info

Incorpora los endpoints de Card​

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

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

​POST /cards/embosser/details

Descripción

Request

Response

HTTP Codes

Obtener cuenta mediante Pantoken

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

PUT /cards/account

Descripción

Request

Response

HTTP Codes

Vinculación de tarjetas a cuenta

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

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

POST /cards/account

Descripción

Request

Response

HTTP Codes

Recuperación del numero de cuenta

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

Code Block
{
    "accountNumber": "0004217470041850252"
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

Info

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

Image Added

PUT /cards/activation​ [Equipo de Spin]

Descripción

Request

Response

HTTP Codes

Activación de tarjetas

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

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

PUT /cards/embosser/block

Descripción

Request

Response

HTTP Codes

Bloqueo de tarjetas

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

200: Solicitud exitosa.

400: Request con campos no válidos.

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

SynchronizeMirrorAccount

Descripción

Request

Response

GRPC Codes

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

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.

...

Balance

Info

Consulta de balance​

Repositorio sincronizado con Fiserv​

Disminuye peticiones al Proveedor

GetAccountBalance

Descripción

Request

Response

GRPC Codes

Realiza la consulta de balance de cuenta.

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

0 OK: Solicitud exitosa.

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

5

13 Internal Server Error: Servicios no disponibles.

...

SynchronizeMirrorBalance

...

Descripción

Request

Response

HTTP

GRPC Codes

Realiza la consulta

Sincroniza el mirror de balance con la información de

cuenta

Fiserv.

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

0 OK: Solicitud exitosa.

4

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

13 Internal Server Error: Servicios no disponibles.

TransferBalance

Descripción

Request

Response

HTTP

GRPC Codes

Creación del cliente

Realiza una transferencia .

Code Block
{
  "transactionData": {
    "
logo
transactionAmount": 
"60"
1,
    "
address
actionCode": "
Ciruelas
8012",
    "
houseNumber
authorizationCode": "
12345
311S3q",
    "
externalNumber
effectiveDate": "
8007
2023-06-21",
    "
colony
description": "
Lomas
P2P",
    "
city
paidConcept": "
Lomas de Alvarez
test",
    "
state
memoPostedIndicator": "
COL
qqq",
    "
postalCode
suppressMonetaryTransaction": "
99980
qqq",
    "
dateOfBirth
n1n2ByPass": "
2000-08-06
qqq",
    "
stateOfBirth
identifier": "
CDMX
S_IN",
    "
email
box": "
lmedina@palo-it.com
3",
    "
firstName
crPlaza": "
Judith
10MON",
    "
lastName
crStore": "
Medina
50WHN",
    "
maternalLastName
keyTracking": "
Ruiz
KEYTRACKING0123456789",
    "
mobilePhoneNumber
senderAccount": "
5521163588
senderAccount012345",
    "
identificationNumber
beneficiaryAccount": "
4152554487415113698
beneficiaryAccount1",
    "
ine
counterpartInstitution": "
1234117890099
aaaaa",
    "
occupation
operatingInstitution": "
Tester
bbbbb",
    "
genderCode
frcUprkBeneficiary": "
1
frcUprkBenefi",
    "
user4
orderingFrcUprk": "
1
orderingFrcUp",
    "
identificationNumberFlag
device": "
2" } Code Block{
123456789-123456789-123456789-12",
    "
customerNumber
ip": "
0995000000000080589" }

2 OK: Solicitud exitosa.

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

5 Internal Server Error: Servicios no disponibles.

UpdateCustomer

Descripción

Request

Response

HTTP Codes

Actualizar cliente

Code Block{
198.162.200.200",
    "
email
latitude": 
"lmedina@palo
-
it
109.
com"
699,
    "
numberType
longitude": 
1
23.062,
    "
customerNumber
recipientName": "
0995000000000077863
recipientName01234567890123456",
    "
address
orderingName": "
Ciruelas
orderingName012345678901234567",
    "
dateOfBirth
paymentSourceId": "
1999-02-06
paymentSourceId012345",

  
"
city
operationType": "
Villa de Alvarez",
W"
  },
  "
countryCode
xTransactionId": "
MEX
123",

  "
county
accountNumber": "
CDMX
9500501545918394337"
,

}
Code Block
{
  "
colony
historyDate": "
ADOLFO LOPEZ MATEOS
2023-09-12",

  "
externalNumber
historyTime": "
1007
111208",

  "
firstName
transactionData": 
"Sandra",
{
    "
genderCode
transactionCode": 
2
"8012",
    "
houseNumber
transactionDescription": "
123
P2P RECIEVER",
    "
ine
currentBalance": "
1234117890099
-2122495",
    "
lastName
openToBuy": "
Velasco",
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
{
  "
maritalStatus
from": 
0,
{
    "
maternalLastName
accountNumber": "
Medina
9500508496924050930",
    "
middleName
actionCode": "
Rosa
8008",
    "
mobilePhoneIndicator
transactionDescription": 
1
"P2P_TRANSFER_SOURCE",
    "
mobilePhoneNumber
description": "
31211635899
P2P_TRANSFER_SOURCE",
    "
occupation
authorizationCode": "
NURSE
1234"
,

  
"ownOrRentResidenceFlag": 0,
},
  "
postalCode
to": 
54070,
{
    "
stateOfBirth
accountNumber": "
DF" } Code Block{
9500502030236002994",
    "
outputArea
actionCode": 
{
"8012",
    
"
customerNumber
transactionDescription": "
0995000000000077863
P2P_TRANSFER_TARGET",
    
"
accountNumber
description": "
0995000000000077863
P2P_TRANSFER_SOURCE",
    
"
responseCode
authorizationCode": "1234"
,

  
},
    "
level
effectiveDate": "
",
2022-01-30",
    "transactionAmount": 
0
100,

    "
countryLimit
device": 
{
"abcfghjfghjklghjkfghjk5678956789",
    "ip": "198.162.123.148",
    
"
dailyLimitLoad
latitude": 
0
123.56565656,

    
"monthlyLimitLoad
"longitude": 
0
-23.565656,
    "xTransactionId": 
"123"
}
Code Block
{
  "
dailyLimitCash
effectiveDate": 
0
"2022-01-30",
  "transactionAmount": "100",
  "actionOutputArea": {
    "
monthlyLimitCash
actionData": 
0,
[
      {
        "
limitForDepositTransactions
authorizationCode": 
0
"1234",
        
}
"accountNumber": "9500508496924050930",
        "
accountLimit
transactionDescription": 
{
"P2P SENDER",
        "
accountDailyAmountLoad
feeAmount": "0",

        "
accountMonthlyAmountLoad
transactionCode": 
0
8008,
        
"
accountDailyAmountCash
currentBalance": 
0
-5988391,

        
"
accountMonthlyAmountCash
creditLimit": 0,
        
}
"openToBuy": 598649100,
    
}
 
}

2 OK: Solicitud exitosa.

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

5 Internal Server Error: Servicios no disponibles.

LinkAccountToCustomer

Descripción

Request

Response

HTTP Codes

Vincular cuenta al cliente

Code Block{
   "
accountNumber
authorizationNumber": "
9500505675946730065
507925"
,

  
"alternateCustomer":
    
{
},
    
"expirationDate":
 
"2023-08-22"
 {
 
},
   
"customerNumber":
 
"0995000000000075954",
   "
qualification
authorizationCode": "
2
1234",
        "
customerTypeIndicator
accountNumber": 
0
"9500502030236002994",
  
"foreignUseIndicator":
 
0
 
} Code Block{
    
"
customerNumber
transactionDescription": "
0995000000000045697
P2P RECIEVER",
    
"accountNumber":
 
"1650" }

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
feeAmount": "
1
0",
        "
addressLine2
transactionCode": 
"2"
8012,
  
"assignedSpendingLimits":
 
{
     "
maximumSpendingLimit
currentBalance": 
3
-169434,
        "
spendingFrequency
creditLimit": 
4
0,
        "
spendingTransaction
openToBuy": 17133400,
5
     
},
   "
atmCashAmount
authorizationNumber":
6,
 "332272"
      }
"atmCashNumber":
 
7,
   
"atmCashSingleTransactionLimit": 8,
]
  
"authorizationCriteriaTableNumber": "9",
}
}

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
{
  "
authorizationSpendingLimitTable
transactionData": 
"10",
{
  
"blockCode":
 
"11",
 
"
branchNumber
transactionAmount": 
12
20,
  
"cardAction":
 
13,
 
"
cardActionReasonCode
actionCode": "
14
8038",

"cardDelayDays":
 
15,
   "
panToken
authorizationCode": "
16
Q1er44",
"cardSequence":
 
17,
   "
cardholderAffiliationGroupId
effectiveDate": "
18
2022-08-24",
    "
cardholderFlag
description": "
19", "city": "20"
QR code test - normal hours",
  
"currentCardActivation":
 
"21",
 "
customerNumber
paidConcept": "
22
Hello",

"deliveryOption":
 
23,
   "
deviceIndicator
memoPostedIndicator": "
24
 ",
    "
embossedName1
suppressMonetaryTransaction": "
25
Y",
    "
embossedName2
n1n2ByPass": "
26
N",
    "
enrollmentStatusVBV
identifier": 
"27"
0,
    "
expirationDate
box": "
28
1",
    "
firstIssueBranch
crPlaza": 
29
"10MON",
    "
internetPurchaseAmount
crStore": 
30
"50WHN",
    "
internetPurchaseNumber
keyTracking": 
31
"Hello",
    "
internetPurchaseSingleTransactionLimit
beneficiaryAccount": 
32
"Hello",
    "
languageCode
senderAccount": "
33
Hello",
    "
maximumAuthorizationFrequency
counterpartInstitution": 
34
"Hello",
    "
name1
operatingInstitution": "
35
Hello",
    "
name1TypeIndicator
frcUprkBeneficiary": 
36
"Hello",
    "
name2
orderingFrcUprk": "
37
Hello",
    "
name2TypeIndicator
device": 
38
"123456789-123456789-123456789-12",
    "
nextCardExpirationDate
ip": "
39
198.162.200.200",
    "
numberOfCardsRequested
latitude": 
40,
-109.699,
    "
overTheCounterCashAmount
longitude": 
42
23.062,
    "
overTheCounterCashNumber
recipientName": 
43
"Hello",
    "
overTheCounterCashSingleTransactionLimit
orderingName": 
44
"Hello",
    "
pinMailerDelayDays
paymentSourceId": 
45,
"bf0469d7-b507-44d6-af7d-d4edea6340f1"
  
"pinOffset": 46
},
  "
pinSuppression
xTransactionId": 
47
"123",
  "
plasticId
accountNumber": "
48",
9500508020127353147"
}
Code Block
{
  "
posServiceCode
historyDate": 
49
"2023-09-12",
  "
accountNumber
historyTime": "
50
111311",
  "
postalCode
transactionData": {
51,
    "
processType
transactionCode": 
52
"8038",
    "
programId
transactionDescription": 
53,
"CASHOUT WITH QR-CODE(FREE 
"reissueDeliveryOption": 54,
BAL)",
    "
requestedCardType
currentBalance": "
55
-1382946",
    "
retailPurchaseAmt
openToBuy": "1382326"
56,
  
"retailPurchaseNumber": 57, "retailPurchaseSingleTransactionLimit": 58
}
}

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",
  "
securedCodeActivate
cardSequence": 
59
2147483647,
  "
stateOrProvince
foreignUse": 
"60", "typeCardMailer
0
}
Code Block
{
	"postToAccount": "
61
9500508261544464147",
	"
typeOfCard
blockCode": "
62
Z",
	"
user1
cardNumber": 
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", }
"***************0252",
	"currentCardActivation": "N",
	"dateBlock": "2023-09-04"
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

PUT → /v1/cards/embossers/block

Descripción

Request

Response

HTTP Codes

Bloqueo de tarjetas

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

...

Gateway

Account Adapter

Info

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

GetAccountDetails

Descripción

Request

Response

HTTP

GRPC Codes

Obtener cuenta mediante Pantoken

Realiza la consulta de bloqueos de cuenta.

Code Block
{
  "accountNumber": "9500501520328494829"
}
Code Block
{
  "
panToken
accountData": {
    "accountNumber": "
0004217470595215803
9500501520328494829",
    "
cardSequence
customerNumber": 
2147483647
"0995000000000035249",
    "
foreignUse
blockCode1": "M",
  
0
 
} Code Block{
 
"
postToAccount
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": "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{
    "ip": "198.162.200.200",
    "latitude": -109.699,
    "longitude": 23.062,
    "recipientName": "recipientName01234567890123456",
    "orderingName": "orderingName012345678901234567",
    "paymentSourceId": "paymentSourceId012345"
  },
  "xTransactionId": "123",
  "accountNumber": "
9500501520328494829
9500501545918394337"
}
Code Block
{
  "historyDate": "2023-09-12",
  "historyTime": "111208",
  "transactionData": {
    
"
accountOrCardNumber
transactionCode": "
9500501520328494829
8012",
    
"
currentBalance
transactionDescription": "P2P 
998176209259
RECIEVER",
"availableCreditLimit
    "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": "8012
"9500508496924050930",
    "
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"
0,
"transactionData": { "transactionCode

        "openToBuy": 
"8012", "transactionDescription": "P2P RECIEVER", "currentBalance": "-2122495", "openToBuy
598649100,
        "authorizationNumber": "
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": {
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", "accountNumber
0,
    "box": "
9500502030236002994
1",
"transactionDescription": "P2P RECIEVER", "transactionCode
    "crPlaza": 
8012, "currentBalance": -169434.0, "openToBuy": 1.70434E7, "authorizationNumber": "923589" } ] } }

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

PUT → /v1/balances/transfers-qr

Descripción

Request

Response

HTTP Codes

Realiza una transferencia QR.

Code Block{ "transactionData": {
"10MON",
    "crStore": "50WHN",
    "keyTracking": "Hello",
    "beneficiaryAccount": "Hello",
    "senderAccount": "Hello",
    "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",

  "
identifier
accountNumber": 
0,
"9500508020127353147"
}
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"
,

  }
}

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
{
  "
operatingInstitution
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":
 
"2023-09-08",
 
"
historyTime
city": "
122732", "transactionData": { "transactionCode": "8038", "transactionDescription": "CASHOUT WITH QR-CODE(FREE BAL)", "currentBalance
Lomas de Alvarez",
    "state": "
-1382946
COL",
    
"
openToBuy
postalCode": "
1382486" } }

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{
99980",
    "
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":"1", "identificationNumberFlag": "2" } Code Block{ "customerNumber
city": 
"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": "Sandra",
    "
1999-02-06"
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": "
accountLimit": {
2023-08-22"
  },
  "customerNumber": "0995000000000075954",
  "qualification": "2",
  
"
accountDailyAmountLoad
customerTypeIndicator": 0,
  "foreignUseIndicator": 0
}
Code Block
{
    
"
accountMonthlyAmountLoad
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
{
  "
accountDailyAmountCash
cardNumber": 
0,
"0004217470072001676"
}
Code Block
{
    
"
accountMonthlyAmountCash
accountNumber": 
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

Vinculación del cliente en la cuenta de Spin.

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

Desvincular una tarjeta de un número de cuenta

Code Block
{
  "
foreignUseIndicator
customerOrAccountNumber": 
0
"9500507060523627372",

  "
alternateCustomer
cardNumber": 
{
"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
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.

...