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 Activa | { "accountNumber": "9500507060523627372" } | { "accountData": { "accountNumber": "9500507060523627372", "customerNumber": "0995000000000078206" } } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. | 0 OK: Solicitud exitosa. 3 Bad Request: Request con campos no válidos. 13 Internal Server Error: Servicios no disponibles. |
Realiza la consulta de bloqueos de cuenta Inactiva | { "accountNumber": "9500501403742215502" } | { "accountData": { "accountNumber": "9500501403742215502", "customerNumber": "0995000000000080639", "blockCode1": "U", "blockCode1Date": "2023-09-12", "blockCode2": "X", "blockCode2Date": "2023-09-13" } } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. | 0 OK: Solicitud exitosa. 3 Bad Request: Request con campos no válidos. 13 Internal Server Error: Servicios no disponibles. |
Realiza la consulta de bloqueos de cuenta Expirada | { "accountNumber": "9500501566817108768" } | { "accountData": { "accountNumber": "9500501566817108768", "customerNumber": "0995000000000040921" } } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. | 0 OK: Solicitud exitosa. 3 Bad Request: Request con campos no válidos. 13 Internal Server Error: Servicios no disponibles. |
Realiza la consulta de bloqueos de cuenta Bloqueada | { "accountNumber": "9500509377699205330" } | { "accountData": { "accountNumber": "9500509377699205330", "customerNumber": "0995000000000080636", "blockCode1": "Z", "blockCode1Date": "2023-09-12" } } | 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 - Bloquear (foreignUse= 0) | { "blockCode": "M", "blockCodeIndicator": 0, "foreignUse": 0, "functionCode": "B", "accountNumber": "9500501520328494829" } | { "functionCode": "B", "accountNumber": "9500501520328494829", "blockCode1Local": "M", "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. |
Realiza bloqueos/desbloqueo de cuenta - Bloquear (foreignUse= 1) | { "blockCode": "U", "blockCodeIndicator": 0, "foreignUse": 1, "functionCode": "B", "accountNumber": "9500501520328494829" } | { "functionCode": "B", "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. |
Realiza bloqueos/desbloqueo de cuenta - Desbloquear | { "blockCode": "", "blockCodeIndicator": 2, "foreignUse": 0, "functionCode": "U", "accountNumber": "9500501520328494829" } | { "functionCode": "U", "accountNumber": "9500501520328494829", "blockCode1Local": "M", "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 - Número de cuenta Activa | { "accountNumber": "9500503048928881284" } | { "accountData": { "accountNumber": "9500503048928881284", "customerNumber": "0995000000000076294", "accountMakerDateOfBirth": "1994-05-06", "availableCredit": 10000.0, "userAmounts9": -50000.0, "userAmounts10": -40000.0 } } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles.POST → /v1/balances | 0 OK: Solicitud exitosa. 3 Bad Request: Request con campos no válidos. 13 Internal Server Error: Servicios no disponibles. |
Sincroniza el mirror de account con la información de Fiserv - Número de cuenta Inactiva | { "accountNumber": "9500501403742215502" } | { "accountData": { "accountNumber": "9500501403742215502", "customerNumber": "0995000000000080639", "blockCode1": "U", "blockCode1Date": "2023-09-12", "blockCode2": "X", "blockCode2Date": "2023-09-13", "accountMakerDateOfBirth": "1994-05-06" } } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles.POST → /v1/balances | 0 OK: Solicitud exitosa. 3 Bad Request: Request con campos no válidos. 13 Internal Server Error: Servicios no disponibles. |
Sincroniza el mirror de account con la información de Fiserv - Número de cuenta Expirada | { "accountNumber": "9500508152383529456" } | { "accountData": { "accountNumber": "9500508152383529456", "customerNumber": "0995000000000040667", "accountMakerDateOfBirth": "2000-01-01", "availableCredit": 10000.0, "userAmounts9": -170000.0, "userAmounts10": -130000.0, "userAmounts7": -10000.0 } } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles.POST → /v1/balances | 0 OK: Solicitud exitosa. 3 Bad Request: Request con campos no válidos. 13 Internal Server Error: Servicios no disponibles. |
Sincroniza el mirror de account con la información de Fiserv - Número de cuenta Bloqueada | { "accountNumber": "9500508176491773011" } | { "accountData": { "accountNumber": "9500508176491773011", "customerNumber": "0995000000000080637", "blockCode1": "Z", "blockCode1Date": "2023-09-12", "blockCode2Date": "2023-09-18", "accountMakerDateOfBirth": "1994-05-06" } } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles.POST → /v1/balances | 0 OK: Solicitud exitosa. 3 Bad Request: Request con campos no válidos. 13 Internal Server Error: Servicios no disponibles. |
POST → /v1/balances
Descripción | Request | Response | HTTP Codes | GRPC Codes |
---|---|---|---|---|
Realiza la consulta de balance de cuenta. | { "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 - Número de cuenta Activa | { "accountNumber": "9500501520328494829" } | { "accountOrCardNumber": "9500503048928881284", "currentBalance": -10000.0, "availableCreditLimit": 10000.0 } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. | 0 OK: Solicitud exitosa. 3 Bad Request: Request con campos no válidos. 13 Internal Server Error: Servicios no disponibles. |
Sincroniza el mirror de balance con la información de Fiserv - Número de cuenta Inactiva | { "accountNumber": "9500501403742215502" } | { "accountOrCardNumber": "9500501403742215502" } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. | 0 OK: Solicitud exitosa. 3 Bad Request: Request con campos no válidos. 13 Internal Server Error: Servicios no disponibles. |
Sincroniza el mirror de balance con la información de Fiserv - Número de cuenta Expirada | { "accountNumber": "9500508152383529456" } | { "accountOrCardNumber": "9500508152383529456", "currentBalance": -10000.0, "availableCreditLimit": 10000.0 } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. | 0 OK: Solicitud exitosa. 3 Bad Request: Request con campos no válidos. 13 Internal Server Error: Servicios no disponibles. |
Sincroniza el mirror de balance con la información de Fiserv - Número de cuenta Bloqueada | { "accountNumber": "9500508176491773011" } | { "accountOrCardNumber": "9500508176491773011" } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. | 0 OK: Solicitud exitosa. 3 Bad Request: Request con campos no válidos. 13 Internal Server Error: Servicios no disponibles. |
PUT → /v1/balances/transfers
Descripción | Request | Response | HTTP Codes | GRPC Codes |
---|---|---|---|---|
Realiza una transferencia - Número de cuenta Activa | { "transactionData": { "transactionAmount": 1000, "actionCode": "8000", "authorizationCode": "311S3q", "effectiveDate": "2023-06-21", "description": "P2P", "paidConcept": "test", "memoPostedIndicator": "qqq", "suppressMonetaryTransaction": "qqq", "n1n2ByPass": "qqq", "identifier": "S_IN", "box": "3", "crPlaza": "10MON", "crStore": "50WHN", "keyTracking": "KEYTRACKING0123456789", "senderAccount": "senderAccount012345", "beneficiaryAccount": "beneficiaryAccount1", "counterpartInstitution": "aaaaa", "operatingInstitution": "bbbbb", "frcUprkBeneficiary": "frcUprkBenefi", "orderingFrcUprk": "orderingFrcUp", "device": "123456789-123456789-123456789-12", "ip": "198.162.200.200", "latitude": -109.699, "longitude": 23.062, "recipientName": "recipientName01234567890123456", "orderingName": "orderingName012345678901234567", "paymentSourceId": "paymentSourceId012345" }, "xTransactionId": "123", "accountNumber": "9500503048928881284", "operationType": "D" } | { "historyDate": "2023-09-18", "historyTime": "164440", "transactionData": { "transactionCode": "8000", "currentBalance": "-10000", "openToBuy": "13000" } } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. | 0 OK: Solicitud exitosa. 3 Bad Request: Request con campos no válidos. 13 Internal Server Error: Servicios no disponibles. |
Realiza una transferencia - Número de cuenta Inactiva | { "transactionData": { "transactionAmount": 1000, "actionCode": "8000", "authorizationCode": "311S3q", "effectiveDate": "2023-06-21", "description": "P2P", "paidConcept": "test", "memoPostedIndicator": "qqq", "suppressMonetaryTransaction": "qqq", "n1n2ByPass": "qqq", "identifier": "S_IN", "box": "3", "crPlaza": "10MON", "crStore": "50WHN", "keyTracking": "KEYTRACKING0123456789", "senderAccount": "senderAccount012345", "beneficiaryAccount": "beneficiaryAccount1", "counterpartInstitution": "aaaaa", "operatingInstitution": "bbbbb", "frcUprkBeneficiary": "frcUprkBenefi", "orderingFrcUprk": "orderingFrcUp", "device": "123456789-123456789-123456789-12", "ip": "198.162.200.200", "latitude": -109.699, "longitude": 23.062, "recipientName": "recipientName01234567890123456", "orderingName": "orderingName012345678901234567", "paymentSourceId": "paymentSourceId012345" }, "xTransactionId": "123", "accountNumber": "9500501403742215502", "operationType": "D" } | { "historyDate": "2023-09-18", "historyTime": "164651", "transactionData": { "transactionCode": "8000", "openToBuy": "2000" } } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. | 0 OK: Solicitud exitosa. 3 Bad Request: Request con campos no válidos. 13 Internal Server Error: Servicios no disponibles. |
Realiza una transferencia - Número de cuenta Expirada | { "transactionData": { "transactionAmount": 1000, "actionCode": "8000", "authorizationCode": "311S3q", "effectiveDate": "2023-06-21", "description": "P2P", "paidConcept": "test", "memoPostedIndicator": "qqq", "suppressMonetaryTransaction": "qqq", "n1n2ByPass": "qqq", "identifier": "S_IN", "box": "3", "crPlaza": "10MON", "crStore": "50WHN", "keyTracking": "KEYTRACKING0123456789", "senderAccount": "senderAccount012345", "beneficiaryAccount": "beneficiaryAccount1", "counterpartInstitution": "aaaaa", "operatingInstitution": "bbbbb", "frcUprkBeneficiary": "frcUprkBenefi", "orderingFrcUprk": "orderingFrcUp", "device": "123456789-123456789-123456789-12", "ip": "198.162.200.200", "latitude": -109.699, "longitude": 23.062, "recipientName": "recipientName01234567890123456", "orderingName": "orderingName012345678901234567", "paymentSourceId": "paymentSourceId012345" }, "xTransactionId": "123", "accountNumber": "9500508152383529456", "operationType": "D" } | { "historyDate": "2023-09-18", "historyTime": "164734", "transactionData": { "transactionCode": "8000", "currentBalance": "-10000", "openToBuy": "12000" } } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. | 0 OK: Solicitud exitosa. 3 Bad Request: Request con campos no válidos. 13 Internal Server Error: Servicios no disponibles. |
Realiza una transferencia - Número de cuenta Bloqueada | { "transactionData": { "transactionAmount": 1000, "actionCode": "8000", "authorizationCode": "311S3q", "effectiveDate": "2023-06-21", "description": "P2P", "paidConcept": "test", "memoPostedIndicator": "qqq", "suppressMonetaryTransaction": "qqq", "n1n2ByPass": "qqq", "identifier": "S_IN", "box": "3", "crPlaza": "10MON", "crStore": "50WHN", "keyTracking": "KEYTRACKING0123456789", "senderAccount": "senderAccount012345", "beneficiaryAccount": "beneficiaryAccount1", "counterpartInstitution": "aaaaa", "operatingInstitution": "bbbbb", "frcUprkBeneficiary": "frcUprkBenefi", "orderingFrcUprk": "orderingFrcUp", "device": "123456789-123456789-123456789-12", "ip": "198.162.200.200", "latitude": -109.699, "longitude": 23.062, "recipientName": "recipientName01234567890123456", "orderingName": "orderingName012345678901234567", "paymentSourceId": "paymentSourceId012345" }, "xTransactionId": "123", "accountNumber": "9500508176491773011", "operationType": "D" } | { "historyDate": "2023-09-18", "historyTime": "164818", "transactionData": { "transactionCode": "8000", "openToBuy": "2000" } } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. | 0 OK: Solicitud exitosa. 3 Bad Request: Request con campos no válidos. 13 Internal Server Error: Servicios no disponibles. |
PUT → /v1/balances/transfers-p2p
Descripción | Request | Response | HTTP Codes | GRPC Codes |
---|---|---|---|---|
Realiza una transferencia P2P. | { "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 → /cards/account [Equipo de Spin]
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 → /cards/account
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Vincular una tarjeta con un número de cuenta | { "cardNumber": "0004217470072001676" } | { "accountNumber": "0004217470072001676" } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. |
PUT → /cards/account
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Desvincular una tarjeta de un número de cuenta | { "customerOrAccountNumber": "9500507060523627372", "cardNumber": "0004217470969640887", "cardholderType": 1 } | { "cardNumber": "***************4568", "customerOrAccountNumber": "9500507060523627372" } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. |
POST → /v1/cards/embosser/details
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Obtener cuenta mediante Pantoken Activo | { "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. |
Obtener cuenta mediante Pantoken Inactivo | { "panToken": "0004217470595215803", "cardSequence": 1, "foreignUse": 1 } | { "postToAccount": "9500507060523627372", "blockCode": "Z", "cardNumber": "***************0252", "currentCardActivation": "N", "dateBlock": "2023-09-04" } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. |
Obtener cuenta mediante Pantoken Expirado | { "panToken": "0004217470200073271", "cardSequence": 1, "foreignUse": 1 } | { "postToAccount": "9500507060523627372", "cardNumber": "***************8578", "currentCardActivation": "N" } | 200: Solicitud exitosa. 400: Request con campos no válidos. 401: Apy Key no válida. 500: Servicios no disponibles. |
POST → /v1/cards/embosser/block
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Bloqueo de tarjetas - Bloqueo | { "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. |
Bloqueo de tarjetas - Desbloqueo | { "blockCode": "", "panToken": "0004217470752022413", "cardSequence": 1, "functionCode": "U" //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. |
Add Comment