Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current Restore this Version View Page History

« Previous Version 39 Next »

A continuación, describimos los endpoints que contiene cada servicio desarrollado para Mirror Strategy:

IMPORTANTE:

El servicio de Aggregation es el que se usarán para las pruebas correspondientes en ambientes de QA y ST en Genesys

Detalle de endpoints

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"

}

 

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

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.

{
  "accountNumber": "9500501520328494829"
}
{
	"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.

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.

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

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.

{
  "accountNumber": "9500501520328494829"
}
{
	"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/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.

{
  "accountNumber": "9500501520328494829"
}
{
	"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.

{
  "accountNumber": "9500501520328494829"
}
{
	"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.

PUT → /v1/balances/transfers

Descripción

Request

Response

HTTP Codes

GRPC Codes

Realiza una transferencia .

{
  "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",
  "operationType": "W"
}
{
	"historyDate": "2023-09-08",
	"historyTime": "122250",
	"transactionData": {
		"transactionCode": "8012",
		"transactionDescription": "P2P RECIEVER",
		"currentBalance": "-2122495",
		"openToBuy": "2122546"
	}
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

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.

{
  "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"
}
{
	"effectiveDate": "2022-01-30",
	"transactionAmount": "100",
	"actionOutputArea": {
		"actionData": [
			{
				"authorizationCode": "1234",
				"accountNumber": "9500508496924050930",
				"transactionDescription": "P2P SENDER",
				"transactionCode": 8008,
				"currentBalance": -5988391.0,
				"openToBuy": 5.987391E8,
				"authorizationNumber": "205229"
			},
			{
				"authorizationCode": "1234",
				"accountNumber": "9500502030236002994",
				"transactionDescription": "P2P RECIEVER",
				"transactionCode": 8012,
				"currentBalance": -169434.0,
				"openToBuy": 1.70434E7,
				"authorizationNumber": "923589"
			}
		]
	}
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

PUT → /v1/balances/transfers-qr

Descripción

Request

Response

HTTP Codes

GRPC Codes

Realiza una transferencia QR.

{
  "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"
}
{
	"historyDate": "2023-09-08",
	"historyTime": "122732",
	"transactionData": {
		"transactionCode": "8038",
		"transactionDescription": "CASHOUT WITH QR-CODE(FREE BAL)",
		"currentBalance": "-1382946",
		"openToBuy": "1382486"
	}
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.


Customer Aggregation service

Incorpora los endpoints de Customer​

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

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

POST → /customers

Descripción

Request

Response

HTTP Codes

GRPC Codes

Registro del cliente en la el proveedor de clientes.

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.

PUT → /customers

Descripción

Request

Response

HTTP Codes

GRPC Codes

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

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

Descripción

Request

Response

HTTP Codes

GRPC Codes

Vinculación del cliente en la cuenta de Spin.

{
    "accountNumber": "0004217470138987703",
    "customerNumber": "0995000000000045698",
    "qualification": "1",
    "customerTypeIndicator": 0,
    "foreignUseIndicator": 0,
    "alternateCustomer": {
        "expirationDate": "2023/12/30"
    }
}
{
    "customerNumber": "0995000000000045697",
    "accountNumber": "1650"
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.


Card Aggregation service

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

{
  "panToken": "0004217470595215803",
  "cardSequence": 2147483647,
  "foreignUse": 0
}
{
	"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

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

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

{
  "cardNumber": "000123456ID5IXX1234",
}

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

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

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

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

Mirror

Account

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.

{
  "accountNumber": "9500501520328494829"
}
{
  "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.

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

{
  "accountNumber": "9500501520328494829"
}
{
  "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

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.

{
  "accountNumber": "9500501520328494829"
}
{
  "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.

SynchronizeMirrorBalance

Descripción

Request

Response

GRPC Codes

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

{
  "accountNumber": "9500501520328494829"
}
{
  "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 .

{
  "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": "W"
  },
  "xTransactionId": "123",
  "accountNumber": "9500501545918394337"
}
{
  "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.

{
  "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"
}
{
  "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"
      }
    ]
  }
}

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.

{
  "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"
}
{
  "historyDate": "2023-09-12",
  "historyTime": "111311",
  "transactionData": {
    "transactionCode": "8038",
    "transactionDescription": "CASHOUT WITH QR-CODE(FREE BAL)",
    "currentBalance": "-1382946",
    "openToBuy": "1382326"
  }
}

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.


Card

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

{
  "panToken": "0004217470595215803",
  "cardSequence": 2147483647,
  "foreignUse": 0
}
{
	"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

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.


Gateway

Account Adapter

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

GetAccountDetails

Descripción

Request

Response

GRPC Codes

Realiza la consulta de bloqueos de cuenta.

{
  "accountNumber": "9500501520328494829"
}
{
  "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.

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

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

{
  "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"
}
{
  "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"
      }
    ]
  }
}

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.

{
  "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"
}
{
  "historyDate": "2023-09-12",
  "historyTime": "111311",
  "transactionData": {
    "transactionCode": "8038",
    "transactionDescription": "CASHOUT WITH QR-CODE(FREE BAL)",
    "currentBalance": "-1382946",
    "openToBuy": "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.

{
  "accountNumber": "9500501520328494829"
}
{
  "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.


Customer Adapter

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

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

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

{
  "accountNumber": "9500505675946730065",
  "alternateCustomer": 
  {
    "expirationDate": "2023-08-22"
  },
  "customerNumber": "0995000000000075954",
  "qualification": "2",
  "customerTypeIndicator": 0,
  "foreignUseIndicator": 0
}
{
    "customerNumber": "0995000000000045697",
    "accountNumber": "1650"
}

0 OK: Solicitud exitosa.

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

13 Internal Server Error: Servicios no disponibles.


Card Gateway

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

{
  "addressLine1": "1",
  "addressLine2": "2",
  "assignedSpendingLimits": {
    "maximumSpendingLimit": 3,
    "spendingFrequency": 4,
    "spendingTransaction": 5
  },
  "atmCashAmount": 6,
  "atmCashNumber": 7,
  "atmCashSingleTransactionLimit": 8,
  "authorizationCriteriaTableNumber": "9",
  "authorizationSpendingLimitTable": "10",
  "blockCode": "11",
  "branchNumber": 12,
  "cardAction": 13,
  "cardActionReasonCode": "14",
  "cardDelayDays": 15,
  "panToken": "16",
  "cardSequence": 17,
  "cardholderAffiliationGroupId": "18",
  "cardholderFlag": "19",
  "city": "20",
  "currentCardActivation": "21",
  "customerNumber": "22",
  "deliveryOption": 23,
  "deviceIndicator": "24",
  "embossedName1": "25",
  "embossedName2": "26",
  "enrollmentStatusVBV": "27",
  "expirationDate": "28",
  "firstIssueBranch": 29,
  "internetPurchaseAmount": 30,
  "internetPurchaseNumber": 31,
  "internetPurchaseSingleTransactionLimit": 32,
  "languageCode": "33",
  "maximumAuthorizationFrequency": 34,
  "name1": "35",
  "name1TypeIndicator": 36,
  "name2": "37",
  "name2TypeIndicator": 38,
  "nextCardExpirationDate": "39",
  "numberOfCardsRequested": 40,
  "overTheCounterCashAmount": 42,
  "overTheCounterCashNumber": 43,
  "overTheCounterCashSingleTransactionLimit": 44,
  "pinMailerDelayDays": 45,
  "pinOffset": 46,
  "pinSuppression": 47,
  "plasticId": "48",
  "posServiceCode": 49,
  "accountNumber": "50",
  "postalCode": 51,
  "processType": 52,
  "programId": 53,
  "reissueDeliveryOption": 54,
  "requestedCardType": "55",
  "retailPurchaseAmt": 56,
  "retailPurchaseNumber": 57,
  "retailPurchaseSingleTransactionLimit": 58,
  "securedCodeActivate": 59,
  "stateOrProvince": "60",
  "typeCardMailer": "61",
  "typeOfCard": "62",
  "user1": 63,
  "user2": 64,
  "user3": 65,
  "user4": 66,
  "user5": 67,
  "user6": 68,
  "user7": 69,
  "user8": 70,
  "userDate1": "71",
  "userDate2": "72",
  "vbvPassword": "73",
  "visaMiniIndicator": "74",
  "visaPlusIndicator": "75"
}

{
  "panToken": "0004217470595215803",
}

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

POST → /v1/cards/embosser/details

Descripción

Request

Response

HTTP Codes

Obtener cuenta mediante Pantoken

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.

POST → /v1/cards/embosser/block

Descripción

Request

Response

HTTP Codes

Bloqueo de tarjetas

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

200: Solicitud exitosa.

400: Request con campos no válidos.

401: Apy Key no válida.

500: Servicios no disponibles.