Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Panel
panelIconIdatlassian-note
panelIcon:note:
bgColor#FFBDAD

Body - Response

{

"seed": "PGh9l4M6kfEWQPSAlB2ELD9p1GTMZ/lQSzkBg2n/lhTOsZtNh2lvhoRkCCBnsGuZgjBGPIfHFye3yi/b5YUKl+2CA673Fg66WruKTU58ywk/rZYUKXOku2NI8PliZG9P9/nrgrZ75D5SxsuUv0DIj8A0WfdYu16PLFnH4MGhD6A="

}

...

Aggregation

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

Account Aggregation Service

Info

Consulta de bloqueos​

Repositorio sincronizado con Fiserv​

Disminuye peticiones al Proveedor​

...

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.

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

"accountMakerDateOfBirth": "", "availableCredit": 0, "userAmounts9": 0, "userAmounts10": 0, "userAmounts7": 0 } }200 OK:
	}
}

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

...

POST → /v1/accounts/blocks

Descripción

Request

Response

HTTP Codes

GRPC Codes

Realiza bloqueos/desbloqueo de cuenta.

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

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.

...

POST → /v1/accounts/syncs

Descripción

Request

Response

HTTP Codes

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
06",
		"blockCode2": "M",
		"blockCode2Date": "2023-08-11"
,

"accountMakerDateOfBirth": "", "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
	}
}

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.

Balance

Info

Consulta de balance​

Repositorio sincronizado con Fiserv​

Disminuye peticiones al Proveedor

GetAccountBalance

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": 
998176210159
998176209259,
	"availableCreditLimit": 
32237425576994724
1823760996,
	"frozenBalance": 26000.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.

SynchronizeMirrorBalance

POST → /v1/balances/syncs

Descripción

Request

Response

HTTP Codes

GRPC Codes

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

Code Block
{
  "accountNumber": "9500501520328494829"
}
Code Block
{
	"accountOrCardNumber": "9500501520328494829",
	"currentBalance": 
998176210159
998176209259,
	"availableCreditLimit": 
32237425576994724
1823760996,
	"frozenBalance": 26000.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.

...

PUT → /v1/balances/transfers

Descripción

Request

Response

HTTP Codes

GRPC Codes

Realiza una transferencia .

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

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 → /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
				"transactionCode": 
"0", "transactionCode
8008,
				"currentBalance": 
8008, "currentBalance": -5988391, "creditLimit": 0, "
-5988391.0,
				"openToBuy": 
598649100,
5.987391E8,
				"authorizationNumber": "
507925
205229"
			},
{
			{
				"authorizationCode": "1234",
				"accountNumber": "9500502030236002994",
				"transactionDescription": "P2P RECIEVER",
"feeAmount": "0", "
				"transactionCode": 8012,
				"currentBalance": -169434
, "creditLimit":
.0,
				"openToBuy": 
17133400,
1.70434E7,
				"authorizationNumber": "
332272
923589"
} ]
			}
		]
	}
}

200

OK

: Solicitud exitosa.

400

Bad Request

: Request con campos no válidos.

500 Internal Server Error: Servicios no

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

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.

...

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

Code Block{

Descripción

Request

Response

HTTP Codes

Obtener cuenta mediante Pantoken

GRPC Codes

Registro del cliente en la el proveedor de clientes.

Code Block
{
    "
panToken
logo": "
0004217470595215803
60",
    "
cardSequence
address": 
2147483647
"Ciruelas",
    "
foreignUse
houseNumber": 
0 } Code Block{ "postToAccount
"12345",
    "externalNumber": "
9500508261544464147
8007",
  
  "
blockCode
colony": "
Z
Lomas",
"cardNumber
    "city": "
***************0252", "currentCardActivation
Lomas de Alvarez",
    "state": "
N
COL",
   
 "
dateBlock
postalCode": "
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 Codes

GRPC Codes

Realiza la consulta de bloqueos de cuenta.

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

}
Code Block
{
   
"blockCode2Date":
 "
2023-08-11", "accountMakerDateOfBirth"
customerNumber": "0995000000000080589"
,

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

...

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

...

POST → /customers/account

Descripción

Request

Response

HTTP Codes

GRPC Codes

Realiza una transferencia P2P

Vinculación del cliente en la cuenta de Spin.

Code Block
{
    "
from
accountNumber": 
{
"0004217470138987703",
    "
accountNumber
customerNumber": "
9500508496924050930
0995000000000045698",
    "
actionCode
qualification": "
8008
1",
    "
transactionDescription
customerTypeIndicator": 
"P2P_TRANSFER_SOURCE"
0,
    "
description
foreignUseIndicator": 
"P2P_TRANSFER_SOURCE"
0,
    "
authorizationCode": "1234" }, "to"
alternateCustomer": {
    
"accountNumber": "9500502030236002994",
    
"
actionCode
expirationDate": "
8012
2023/12/30"
,

    
"transactionDescription": "P2P_TRANSFER_TARGET",
}
}
Code Block
{
    "
description
customerNumber": "
P2P_TRANSFER_SOURCE
0995000000000045697",
    "
authorizationCode
accountNumber": "
1234
1650"
}, "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"
      }
    ]
  }
}

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.

...

}

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 /account/prepaid

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.

PUT /cards/activation​

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

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
B"
,
 //B para bloquear - 
"description": "QR code test - normal hours"
u Desbloquear
}
Code Block
{
  "organizationNumber": 999,
  "foreignOrg": 999,
  "
paidConcept
cardNumber": "
Hello
000123456ID5IXX1234",

  "
memoPostedIndicator
cardSequence": 
" "
1,

  
"
suppressMonetaryTransaction
functionCode": "
Y
U",
  
"
n1n2ByPass
blockCode": "
N
U",
  
"
identifier
warningCode1": "0",

  
"
box
warningCode7": "
1
0",

  "
crPlaza
processingFlag1": "
10MON
Z",
  
"
crStore
processingFlag2": "
50WHN
Z",

  "
keyTracking
processingFlag3": "
Hello
Z",

  "
beneficiaryAccount
processingFlag4": "
Hello
Z",

  
"
senderAccount
processingFlag5": "
Hello
Z"
,

}

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

}
Code Block
{
  
"
operatingInstitution
accountData": 
"Hello",
{
    "
frcUprkBeneficiary
accountNumber": "
Hello
9500501520328494829",
    "
orderingFrcUprk
customerNumber": "
Hello
0995000000000035249",
    "
device
blockCode1": "
123456789-123456789-123456789-12
M",
    "
ip
blockCode1Date": "
198.162.200.200
2023-09-07",
    "
latitude
blockCode2": 
-109.699
"M",
    "
longitude
blockCode2Date": 
23.062
"2023-08-11",
    "
recipientName
accountMakerDateOfBirth": "
Hello
",
    "
orderingName
availableCredit": 
"Hello"
0,
    "
paymentSourceId
userAmounts9": 
"bf0469d7-b507-44d6-af7d-d4edea6340f1"
0,
 
},
   "
xTransactionId
userAmounts10": 
"123"
0,
    "
accountNumber
userAmounts7": 
"9500508020127353147" } Code Block{
0
  
"historyDate": "2023-09-12",
}
}

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
{
  "
historyTime
blockCode": "
111311
",
  "
transactionData
blockCodeIndicator": 
{
1,
  "foreignUse": 0,
  "
transactionCode
functionCode": "
8038
U",
  
"
transactionDescription
accountNumber": "
CASHOUT WITH QR-CODE(FREE BAL)
9500501520328494829"
}
Code Block
{
  "functionCode": "B",
  
"
currentBalance
accountNumber": "
-1382946
9500501520328494829",

  "
openToBuy
blockCode1Local": "
1382326
M",
  
} }

200 OK: Solicitud exitosa.

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

500 Internal Server Error: Servicios no disponibles.

"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

HTTP Codes

GRPC Codes

Realiza la consulta de balance de cuenta

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

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

200 OK: Solicitud exitosa.

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

500 Internal Server Error: Servicios no disponibles.
 "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

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", "dateOfBirth": "2000-08-06", "stateOfBirth": "CDMX", "email": "lmedina@palo-it.com", "firstName": "Judith", "lastName": "Medina"
26000
}

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

SynchronizeMirrorBalance

Descripción

Request

Response

GRPC Codes

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

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

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

TransferBalance

Descripción

Request

Response

GRPC Codes

Realiza una transferencia .

Code Block
{
  "transactionData": {
    "transactionAmount": 1,
    "
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
qqq",
} Code Block{
    "
customerNumber
identifier": "
0995000000000080589
S_IN"
}

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{ "email": "lmedina@palo-it.com
,
    "box": "3",
    "
numberType
crPlaza": 
1
"10MON",
    "
customerNumber
crStore": "
0995000000000077863
50WHN",
    "
address
keyTracking": "
Ciruelas
KEYTRACKING0123456789",
    "
dateOfBirth
senderAccount": "
1999-02-06
senderAccount012345",
    "
city
beneficiaryAccount": "
Villa de Alvarez
beneficiaryAccount1",
    "
countryCode
counterpartInstitution": "
MEX
aaaaa",
    "
county
operatingInstitution": "
CDMX
bbbbb",
    "
colony
frcUprkBeneficiary": "
ADOLFO LOPEZ MATEOS
frcUprkBenefi",
    "
externalNumber
orderingFrcUprk": "
1007
orderingFrcUp",
    "
firstName
device": "
Sandra
123456789-123456789-123456789-12",
    "
genderCode
ip": 
2
"198.162.200.200",
    "
houseNumber
latitude": 
"123"
-109.699,
    "
ine
longitude": 
"1234117890099"
23.062,
    "
lastName
recipientName": "
Velasco
recipientName01234567890123456",
    "
maritalStatus
orderingName": 
0
"orderingName012345678901234567",
    "
maternalLastName
paymentSourceId": "
Medina
paymentSourceId012345",
  
"
middleName
operationType": "
Rosa
W"
,

  },
  "
mobilePhoneIndicator
xTransactionId": 
1
"123",

  "
mobilePhoneNumber
accountNumber": "
31211635899
9500501545918394337"
,

}
Code Block
{
  
"
occupation
historyDate": "
NURSE
2023-09-12",

  "
ownOrRentResidenceFlag
historyTime": 
0
"111208",

  "
postalCode
transactionData": 
54070,
{
    "
stateOfBirth
transactionCode": "
DF" } Code Block{
8012",
    "
outputArea
transactionDescription": 
{
"P2P RECIEVER",
    
"
customerNumber
currentBalance": "
0995000000000077863
-2122495",

    
"
accountNumber
openToBuy": "
0995000000000077863",
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
{
  "from": {
    "
responseCode
accountNumber": "9500508496924050930",

    "
level
actionCode": "8008",
    
"transactionDescription": "P2P_TRANSFER_SOURCE",
    "
transactionAmount
description": 
0
"P2P_TRANSFER_SOURCE",
    
"
countryLimit
authorizationCode": 
{
"1234"
  },
  "to": 
{
    "
dailyLimitLoad
accountNumber": 
0
"9500502030236002994",
    "actionCode": "8012",
    
"
monthlyLimitLoad
transactionDescription": 
0
"P2P_TRANSFER_TARGET",
    "description": "P2P_TRANSFER_SOURCE",
    
"authorizationCode": "
dailyLimitCash
1234"
:

0,
  },
    "effectiveDate": "2022-01-30",
    "
monthlyLimitCash
transactionAmount": 
0
100,
    "device": "abcfghjfghjklghjkfghjk5678956789",
    
"
limitForDepositTransactions
ip":
0
 "198.162.123.148",
    "latitude": 123.56565656,
    
}
"longitude": -23.565656,
    "xTransactionId": "123"
}
Code Block
{
  "
accountLimit
effectiveDate": 
{
"2022-01-30",
  "transactionAmount": "100",
  "actionOutputArea": {
    "
accountDailyAmountLoad
actionData": 
0,
[
      {
        "
accountMonthlyAmountLoad
authorizationCode": 
0,
"1234",
        "
accountDailyAmountCash
accountNumber": 
0
"9500508496924050930",
        
"
accountMonthlyAmountCash
transactionDescription": 
0
"P2P SENDER",
       
}
 "feeAmount": "0",
  
} }

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

200 OK: Solicitud exitosa.

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

500 Internal Server Error: Servicios no disponibles.
0",
        "transactionCode": 8012,
        "currentBalance": -169434,
        "creditLimit": 0,
        "openToBuy": 17133400,
        "authorizationNumber": "332272"
      }
    ]
  }
}

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

FrozenBalanceTransfer

Descripción

Request

Response

GRPC Codes

Realiza una transferencia QR.

Code Block
{
  "
addressLine1
transactionData": 
"1",
{
    "
addressLine2
transactionAmount": 
"2"
20,
    "
assignedSpendingLimits
actionCode": 
{
"8038",
    "
maximumSpendingLimit
authorizationCode": 
3
"Q1er44",
    "
spendingFrequency
effectiveDate": 
4
"2022-08-24",
    "
spendingTransaction
description": 
5
"QR code test 
},
- normal 
"atmCashAmount": 6,
hours",
    "
atmCashNumber
paidConcept": 
7
"Hello",
    "
atmCashSingleTransactionLimit
memoPostedIndicator": " 
8
",
    "
authorizationCriteriaTableNumber
suppressMonetaryTransaction": "
9
Y",
    "
authorizationSpendingLimitTable
n1n2ByPass": "
10
N",
    "
blockCode
identifier": 
"11"
0,
    "
branchNumber
box": 
12
"1",
  
"cardAction": 13,
  
"
cardActionReasonCode
crPlaza": "
14
10MON",
  
"cardDelayDays":
 
15,
 
"
panToken
crStore": "
16
50WHN",
  
"cardSequence": 17,
  "
cardholderAffiliationGroupId
keyTracking": "
18
Hello",
    "
cardholderFlag
beneficiaryAccount": "
19
Hello",
    "
city
senderAccount": "
20
Hello",
    "
currentCardActivation
counterpartInstitution": "
21
Hello",
    "
customerNumber
operatingInstitution": "
22
Hello",

 
"deliveryOption": 23,
   "
deviceIndicator
frcUprkBeneficiary": "
24
Hello",
    "
embossedName1
orderingFrcUprk": "
25
Hello",
    "
embossedName2
device": "
26
123456789-123456789-123456789-12",
    "
enrollmentStatusVBV
ip": "
27"
198.162.200.200",
    "
expirationDate
latitude": 
"28",
-109.699,
    "
firstIssueBranch
longitude": 
29
23.062,
    "
internetPurchaseAmount
recipientName": 
30
"Hello",
    "
internetPurchaseNumber
orderingName": 
31
"Hello",
  
"internetPurchaseSingleTransactionLimit": 32,
  
"
languageCode
paymentSourceId": "
33"
bf0469d7-b507-44d6-af7d-d4edea6340f1"
  },
  "
maximumAuthorizationFrequency
xTransactionId": 
34
"123",
  "
name1
accountNumber": "
35",
9500508020127353147"
}
Code Block
{
  "
name1TypeIndicator
historyDate": 
36
"2023-09-12",
  "
name2
historyTime": "
37
111311",
  "
name2TypeIndicator
transactionData": 
38,
{
    "
nextCardExpirationDate
transactionCode": "
39
8038",
    "
numberOfCardsRequested
transactionDescription": 
40,
"CASHOUT WITH QR-CODE(FREE BAL)"
overTheCounterCashAmount": 42
,
"overTheCounterCashNumber":
 
43,
   "
overTheCounterCashSingleTransactionLimit
currentBalance": 
44, "pinMailerDelayDays": 45
"-1382946",
  
"pinOffset":
 
46,
 "
pinSuppression
openToBuy": 
47,
"
plasticId
1382326"
:

"48",
  
"posServiceCode": 49, "accountNumber": "50", "postalCode": 51, "processType": 52, "programId": 53
}
}

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",
  "
reissueDeliveryOption
cardSequence": 
54
2147483647,
  "
requestedCardType
foreignUse": 
"55", "retailPurchaseAmt": 56, "retailPurchaseNumber": 57, "retailPurchaseSingleTransactionLimit": 58, "securedCodeActivate": 59, "stateOrProvince": "60", "typeCardMailer": "61", "typeOfCard": "62", "user1": 63, "user2": 64, "user3": 65, "user4": 66, "user5": 67, "user6": 68, "user7": 69, "user8": 70, "userDate1": "71", "userDate2": "72", "vbvPassword": "73", "visaMiniIndicator": "74", "visaPlusIndicator": "75" } Code Block{ "panToken": "0004217470595215803", }
0
}
Code Block
{
	"postToAccount": "9500508261544464147",
	"blockCode": "Z",
	"cardNumber": "***************0252",
	"currentCardActivation": "N",
	"dateBlock": "2023-09-04"
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

PUT → /v1/cards/embossers/block

Descripción

Request

Response

HTTP Codes

Bloqueo de tarjetas

Code Block
{
  "blockCode": "Z",
  "panToken": "0004217470885923553",
  "cardSequence": 1,
  "functionCode": "B" //B para bloquear - u Desbloquear
}
Code Block
{
  "organizationNumber": 999,
  "foreignOrg": 999,
  "cardNumber": "000123456ID5IXX1234",
  "cardSequence": 1,
  "functionCode": "U",
  "blockCode": "U",
  "warningCode1": "0",
  "warningCode7": "0",
  "processingFlag1": "Z",
  "processingFlag2": "Z",
  "processingFlag3": "Z",
  "processingFlag4": "Z",
  "processingFlag5": "Z"
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

POST → /v1/cards/embosser/details

...

Descripción

...

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

POST → /v1/cards/embosser/block

Descripción

Request

Response

HTTP Codes

Bloqueo de tarjetas

Code Block{
,
    "
blockCode
blockCode2": "
Z
M",
    "
panToken
blockCode2Date": "
0004217470885923553
2023-08-11",
    "
cardSequence
accountMakerDateOfBirth": 
1
"",
    "
functionCode
availableCredit": 0,
    "
B
userAmounts9"
//B para bloquear - u Desbloquear }
Code Block
{}
200
: 0,
    "userAmounts10": 0,
    "userAmounts7": 0
  }
}

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.

Aggregation

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

Account Aggregation Service

Info

Incorpora los servicios de Account Mirror y Balance Mirror​

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

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

POST → /v1/accounts/details

Descripción

Request

Response

HTTP Codes

Realiza la consulta de bloqueos de cuenta.

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

POST → /v1/accounts/blocks

Descripción

Request

Response

HTTP Codes

Realiza bloqueos/desbloqueo de cuenta.

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

POST → /v1/accounts/syncs

...

Descripción

...

Request

...

Response

...

HTTP Codes

...

SetAccountBlock

Descripción

Request

Response

GRPC Codes

Realiza bloqueos/desbloqueo de cuenta.

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

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

TransferBalance

Descripción

Request

Response

GRPC Codes

Realiza una transferencia .

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

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

TransferPeerToPeer

Descripción

Request

Response

GRPC Codes

Realiza una transferencia P2P.

Code Block
{
  "
accountNumber
from": {
"9500501520328494829"
 
} Code Block{
 
"accountData":
 
{
 
"accountNumber": "
9500501520328494829
9500508496924050930",
"customerNumber": "0995000000000035249", "blockCode1
    "actionCode": "
M
8008",
"blockCode1Date
    "transactionDescription": "
2023-09-06
P2P_TRANSFER_SOURCE",
"blockCode2
    "description": "
M
P2P_TRANSFER_SOURCE",
 
"blockCode2Date
   "authorizationCode": "
2023-08-11
1234"
 
 }
}

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{
,
  "to": {
    "accountNumber": "
9500501520328494829
9500502030236002994"
} Code Block{ "accountOrCardNumber
,
    "actionCode": "
9500501520328494829
8012",
    
"
currentBalance
transactionDescription": 
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
{
  "accountNumber": "9500501520328494829"
}
Code Block
{
	"accountOrCardNumber": "9500501520328494829",
	"currentBalance": 998176209259,
	"availableCreditLimit": 1823760996,
	"frozenBalance": 26000.0
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

PUT → /v1/balances/transfers

Descripción

Request

Response

HTTP Codes

Realiza una transferencia .

"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
{
  "
transactionData
effectiveDate": 
{
"2022-01-30",
  "transactionAmount": "100",
  "
transactionAmount
actionOutputArea": 
1,
{
    "
actionCode
actionData":
"8012",
 [
      {
        "authorizationCode": "
311S3q
1234",
        "
effectiveDate
accountNumber": "
2023-06-21
9500508496924050930",
        "
description
transactionDescription": "P2P SENDER",
        "
paidConcept
feeAmount": "
test
0",
        "
memoPostedIndicator
transactionCode": 
"qqq"
8008,
        "
suppressMonetaryTransaction
currentBalance": 
"qqq",
-5988391,
        "
n1n2ByPass
creditLimit": 
"qqq"
0,
        "
identifier
openToBuy": 
"S_IN"
598649100,
        "
box
authorizationNumber": "
3"
507925"
      },
    
"crPlaza
  {
        "authorizationCode": "
10MON
1234",
        "
crStore
accountNumber": "
50WHN
9500502030236002994",
        "
keyTracking
transactionDescription": "
KEYTRACKING0123456789
P2P RECIEVER",
        "
senderAccount
feeAmount": "
senderAccount012345
0",
        "
beneficiaryAccount
transactionCode": 
"beneficiaryAccount1"
8012,
        "
counterpartInstitution
currentBalance": 
"aaaaa",
-169434,
        "
operatingInstitution
creditLimit": 
"bbbbb"
0,
        "
frcUprkBeneficiary
openToBuy": 
"frcUprkBenefi"
17133400,
        "
orderingFrcUprk
authorizationNumber": "
orderingFrcUp",
332272"
      }
  
"device":
 
"123456789-123456789-123456789-12",
 ]
  
"ip": "198.162.200.200", "latitude": -109.699,
}
}

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

FrozenBalanceTransfer

Descripción

Request

Response

GRPC Codes

Realiza una transferencia QR.

Code Block
{
  "transactionData": {
    "
longitude
transactionAmount": 
23.062
20,
    "
recipientName
actionCode": "
recipientName01234567890123456
8038",
    "
orderingName
authorizationCode": "
orderingName012345678901234567
Q1er44",
    "
paymentSourceId
effectiveDate": "
paymentSourceId012345
2022-08-24",
  
},
  
"
xTransactionId
description": "
123", "accountNumber": "9500501545918394337
QR code test - normal hours",
  
"operationType":
 
"W"
 
} Code Block{ "historyDate
"paidConcept": "
2023-09-08", "historyTime": "122250", "transactionData": { "transactionCode": "8012", "transactionDescription
Hello",
    "memoPostedIndicator": "
P2P
 
RECIEVER
",
    
"
currentBalance
suppressMonetaryTransaction": "
-2122495
Y",
    
"
openToBuy
n1n2ByPass": "
2122546
N",
  
} }

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{
  "identifier": 0,
    "
from
box": 
{
"1",
    "
accountNumber
crPlaza": "
9500508496924050930
10MON",
    "
actionCode
crStore": "
8008
50WHN",
    "
transactionDescription
keyTracking": 
"P2P_TRANSFER_SOURCE
"Hello",
    "
description
beneficiaryAccount": "
P2P_TRANSFER_SOURCE
Hello",
    "
authorizationCode
senderAccount": "
1234
Hello"
,
 
},
   "
to
counterpartInstitution": 
{
"Hello",
    "
accountNumber
operatingInstitution": "
9500502030236002994
Hello",
    "
actionCode
frcUprkBeneficiary": "
8012
Hello",
    "
transactionDescription
orderingFrcUprk": "
P2P_TRANSFER_TARGET
Hello",
    "
description
device": "
P2P_TRANSFER_SOURCE
123456789-123456789-123456789-12",
    "
authorizationCode
ip": "
1234" }
198.162.200.200",
    "
effectiveDate
latitude": 
"2022-01-30"
-109.699,
    "
transactionAmount
longitude": 
100
23.062,
    "
device
recipientName": "
abcfghjfghjklghjkfghjk5678956789
Hello",
    "
ip
orderingName": "
198.162.123.148
Hello",
    "
latitude
paymentSourceId":
123.56565656,
 "bf0469d7-b507-44d6-af7d-d4edea6340f1"
  },
  "
longitude
xTransactionId": 
-23.565656,
"123",
  "
xTransactionId
accountNumber": "
123
9500508020127353147"
}
Code Block
{
 
 "
effectiveDate
historyDate": "
2022
2023-
01
09-
30
12",
  
"
transactionAmount
historyTime": "
100
111311",
  
"
actionOutputArea
transactionData": {
"actionData": [ { "authorizationCode
    "transactionCode": "
1234
8038",
"accountNumber": "9500508496924050930",

    "transactionDescription": "
P2P SENDER
CASHOUT WITH QR-CODE(FREE BAL)",
"transactionCode":
 
8008,
 
"currentBalance":
 
-5988391.0,
 
"
openToBuy
currentBalance": 
5.987391E8, "authorizationNumber
"-1382946",
    "openToBuy": "
205229
1382326"
  }
, { "authorizationCode": "1234",

}

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": "
9500502030236002994", "transactionDescription
9500501520328494829"
}
Code Block
{
  "accountOrCardNumber": "
P2P RECIEVER
9500501520328494829",
"transactionCode":
 
8012,
 
"currentBalance": 
-169434.0
998176210159,
"openToBuy
  "availableCreditLimit": 
1.70434E7
32237425576994724,
"authorizationNumber
  "frozenBalance": 
"923589" } ] } }200
26000
}

0 OK: Solicitud exitosa.

400

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

401: Apy Key no válida.

500: Servicios no disponibles.

...

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

HTTP

GRPC Codes

Realiza una transferencia QR.

Creación del cliente

Code Block
{
    "
transactionData
logo": 
{
"60",
    "
transactionAmount
address": 
20
"Ciruelas",
    "
actionCode
houseNumber": "
8038
12345",
    "
authorizationCode
externalNumber": "
Q1er44
8007",
    "
effectiveDate
colony": "
2022-08-24
Lomas",
    "
description
city": "
QR code test - normal hours
Lomas de Alvarez",
    "state": "COL",
    "
paidConcept
postalCode": "
Hello
99980",
    "
memoPostedIndicator
dateOfBirth": "
2000-08-06",
    "
suppressMonetaryTransaction
stateOfBirth": "
Y
CDMX",
    "
n1n2ByPass
email": "
N
lmedina@palo-it.com",
    "
identifier
firstName": 
0
"Judith",
    "
box
lastName": "
1
Medina",
    "
crPlaza
maternalLastName": "
10MON
Ruiz",
    "
crStore
mobilePhoneNumber": "
50WHN
5521163588",
    "
keyTracking
identificationNumber": "
Hello
4152554487415113698",
    "
beneficiaryAccount
ine": "
Hello
1234117890099",
    "
senderAccount
occupation": "
Hello
Tester",
    "
counterpartInstitution
genderCode": "
Hello
1",
    "
operatingInstitution
user4":
"
Hello
1",
    "
frcUprkBeneficiary
identificationNumberFlag": "
Hello",
2"
}
Code Block
{
    "
orderingFrcUprk
customerNumber": "
Hello",
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
{
    "
device
email": "
123456789-123456789-123456789-12
lmedina@palo-it.com",
    "
ip
numberType": 
"198.162.200.200"
1,
    "
latitude
customerNumber": 
-109.699
"0995000000000077863",
    "
longitude
address": 
23.062
"Ciruelas",
    "
recipientName
dateOfBirth": "
Hello
1999-02-06",
    "
orderingName
city": "
Hello
Villa de Alvarez",
    "
paymentSourceId
countryCode": "
bf0469d7-b507-44d6-af7d-d4edea6340f1"
MEX",
 
},
   "
xTransactionId
county": "
123
CDMX",
    "
accountNumber
colony": "
9500508020127353147" } Code Block{ "historyDate
ADOLFO LOPEZ MATEOS",
    "externalNumber": "
2023-09-08
1007",
   
 "
historyTime
firstName": "
122732
Sandra",
    
"
transactionData
genderCode":
{ "transactionCode
 2,
    "houseNumber": "
8038
123",
"transactionDescription":

"CASHOUT
 
WITH
 
QR-CODE(FREE
 
BAL)",
 
"
currentBalance
ine": "
-1382946
1234117890099",
   
 "
openToBuy
lastName": "
1382486
Velasco",
} }

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{
    "maritalStatus": 0,
    "
logo
maternalLastName": "
60
Medina",
    "
address
middleName": "
Ciruelas"
Rosa",
    "mobilePhoneIndicator": 1,
    "
houseNumber
mobilePhoneNumber": "
12345
31211635899",
    "
externalNumber
occupation": "
8007", "colony
NURSE",
    "ownOrRentResidenceFlag": 0,
    "postalCode": 54070,
    "stateOfBirth": "DF"
}
Code Block
{
    "outputArea": {
        "customerNumber": "
Lomas
0995000000000077863",
        "
city
accountNumber": "0995000000000077863"
Lomas
,
  
de
 
Alvarez",
     "
state
responseCode": "
COL
",
        "
postalCode
level": "
99980
",
        "
dateOfBirth
transactionAmount": 
"2000-08-06"
0,
        "
stateOfBirth
countryLimit":
"CDMX",
 {
      
"email":
 
"lmedina@palo-it.com",
     "
firstName
dailyLimitLoad": 
"Judith"
0,
      
"lastName":
 
"Medina",
     "
maternalLastName
monthlyLimitLoad": 
"Ruiz"
0,
     
"mobilePhoneNumber": "5521163588",
       "
identificationNumber
dailyLimitCash": 
"4152554487415113698"
0,
      
"ine":
 
"1234117890099",
     "
occupation
monthlyLimitCash": 
"Tester"
0,
      
"genderCode":
 
"1",
     "
user4
limitForDepositTransactions":
"1",
 0
      
"identificationNumberFlag":
 
"2"
 }
Code Block{
,
        "
customerNumber
accountLimit": 
"0995000000000080589" }

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

PUT → /customers

Descripción

Request

Response

HTTP Codes

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

Code Block{
{
      
"email":
 
"lmedina@palo-it.com",
     "
numberType
accountDailyAmountLoad": 
1
0,
     
"customerNumber": "0995000000000077863",
       "
address
accountMonthlyAmountLoad": 
"Ciruelas"
0,
    
"dateOfBirth": "1999-02-06",
        "
city
accountDailyAmountCash": 
"Villa
0,
de
 
Alvarez",
     
"countryCode":
 
"MEX",
     "
county
accountMonthlyAmountCash": 
"CDMX",
0
      
"colony":
 
"ADOLFO
 
LOPEZ
}
MATEOS",
    
"externalNumber": "1007",
}
}

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
{
  "
firstName
accountNumber": "
Sandra
9500505675946730065",

  "
genderCode
alternateCustomer":
2,
 
  {
"houseNumber":
 
"123",
   
"
ine
expirationDate": "
1234117890099
2023-08-22"
,

  
"lastName": "Velasco",
},
  
"
maritalStatus
customerNumber":
0,
 
"maternalLastName": "Medina
"0995000000000075954",

  
"
middleName
qualification": "
Rosa
2",
  
"
mobilePhoneIndicator
customerTypeIndicator": 
1
0,
  
"
mobilePhoneNumber
foreignUseIndicator": 
"31211635899",
0
}
Code Block
{
   
"occupation": "NURSE", "ownOrRentResidenceFlag": 0, "postalCode
 "customerNumber": 
54070
"0995000000000045697",
    "
stateOfBirth
accountNumber": "
DF
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 → /v1/cards/embosser

Descripción

Request

Response

HTTP Codes

Add a new card to account

Code Block
{

  
"
outputArea
addressLine1": 
{
"1",
  
"
customerNumber
addressLine2": "
0995000000000077863
2",
  "assignedSpendingLimits": {
    "
accountNumber
maximumSpendingLimit":
"0995000000000077863",
 3,
    "
responseCode
spendingFrequency": 
""
4,
    
"
level
spendingTransaction": 
"",
5
  
},
  "
transactionAmount
atmCashAmount": 
0
6,
  
"atmCashNumber": 7,
  "
countryLimit
atmCashSingleTransactionLimit": 
{
8,
  "authorizationCriteriaTableNumber": "9",
  "authorizationSpendingLimitTable": "10",
  
"
dailyLimitLoad
blockCode": 
0
"11",
  "branchNumber": 12,
  
"cardAction": 13,
  "
monthlyLimitLoad
cardActionReasonCode": 
0
"14",
  "cardDelayDays": 15,
  
"panToken": "16",
  "
dailyLimitCash
cardSequence": 
0
17,
  "cardholderAffiliationGroupId": "18",
  
"cardholderFlag": "19",
  "
monthlyLimitCash
city": 
0
"20",
  "currentCardActivation": "21",
  "customerNumber": "22",
  
"
limitForDepositTransactions
deliveryOption": 
0
23,
  "deviceIndicator": "24",
  
}
"embossedName1": "25",
  "embossedName2": "26",
  
"
accountLimit
enrollmentStatusVBV": 
{
"27",
  "expirationDate": "28",
  
"firstIssueBranch": 29,
  "
accountDailyAmountLoad
internetPurchaseAmount": 
0
30,
  "internetPurchaseNumber": 31,
  "internetPurchaseSingleTransactionLimit": 32,
  
"
accountMonthlyAmountLoad
languageCode": 
0
"33",
  "maximumAuthorizationFrequency": 34,
  
"name1": "35",
  "
accountDailyAmountCash
name1TypeIndicator": 
0
36,
  "name2": "37",
  
"name2TypeIndicator": 38,
  "
accountMonthlyAmountCash
nextCardExpirationDate": 
0
"39",
  "numberOfCardsRequested": 40,
  "overTheCounterCashAmount": 42,
}
  "overTheCounterCashNumber": 43,
 
} }

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

POST → /customers/account

Descripción

Request

Response

HTTP Codes

Vinculación del cliente en la cuenta de Spin.

Code Block{
 "overTheCounterCashSingleTransactionLimit": 44,
  "
accountNumber
pinMailerDelayDays": 45,
  "
0004217470138987703
pinOffset": 46,
  "pinSuppression": 47,
  "
customerNumber
plasticId": "
0995000000000045698
48",
  "posServiceCode": 49,
  "
qualification
accountNumber": "
1
50",
  
"
customerTypeIndicator
postalCode": 
0
51,
  
"
foreignUseIndicator
processType": 
0
52,

  "
alternateCustomer
programId": 
{
53,
  
"reissueDeliveryOption": 54,
  "
expirationDate
requestedCardType": "
2023/12/30" } } Code Block{
55",
  "
customerNumber
retailPurchaseAmt": 
"0995000000000045697"
56,

  
"
accountNumber
retailPurchaseNumber": 
"1650" }

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

Card Aggregation service

Info

Incorpora los endpoints de Card​

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

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

​POST /cards/embosser/details

Descripción

Request

Response

HTTP Codes

Obtener cuenta mediante Pantoken

Code Block{ "panToken": "0004217470595215803
57,
  "retailPurchaseSingleTransactionLimit": 58,
  "securedCodeActivate": 59,
  "stateOrProvince": "60",
  "
cardSequence
typeCardMailer": 
2147483647
"61",
  "
foreignUse
typeOfCard": 
0 } Code Block{ "postToAccount
"62",
  "user1": 
"9500508261544464147"
63,
  
"
blockCode
user2": 
"Z"
64,
  
"
cardNumber
user3": 
"***************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

Code Block { "customerOrAccountNumber": "1234567890123456800"
65,
  "user4": 66,
  "user5": 67,
  "user6": 68,
  "user7": 69,
  "user8": 70,
  "
cardNumber
userDate1": "
000123456ID5IXX1234
71",
  "
cardholderType
userDate2": 
1 } Code Block{
"72",
  "
customerOrAccountNumber
vbvPassword": "
1234567890123456800
73",
  "
cardNumber
visaMiniIndicator": "
000123456ID5IXX1234
74",
}

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
visaPlusIndicator": "
000123456ID5IXX1234
75"
,

}

Code Block
{
  
"
accountNumber
panToken": "
0004217470041850252
0004217470595215803",
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

...

POST → /v1/cards/embosser/

...

details

Descripción

Request

Response

HTTP Codes

Activación de tarjetas

Obtener cuenta mediante Pantoken

Code Block
{
  "
organizationNumber
panToken":
999,
 "
cardNumber
0004217470595215803"
: "000123456ID5IXX1234"
,
  "
serviceType
cardSequence": 
"A"
2147483647,
  "
userData
foreignUse": 
"string"
0
}
Code Block
{
	"
organizationNumber
postToAccount": 
999,
"
logo
9500508261544464147"
: 1
,
	"
cardNumber
blockCode": "
000123456ID5IXX1234
Z",
	"
serviceType
cardNumber": "
A
***************0252",
	"
numberCardsActivated
currentCardActivation": 
1
"N",
	"
foreignOrg
dateBlock":
1,
 
"numberForeignCardsActivated": 0
"2023-09-04"
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

...

POST → /v1/cards/embosser/block

Descripción

Request

Response

HTTP Codes

Bloqueo de tarjetas

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

...