- Solicitud HTTP
- Cuerpo de la solicitud
- Cuerpo de la respuesta
- RequestHeader
- Versión
- StandardCard
- AvsData
- ResponseHeader
- CardNetworkResult
- Red
- AvsResult
- VerificationResult
- CvnResult
Verifica la tarjeta de un usuario para comprobar si es válida.
Google llama a este método para verificar los detalles de la tarjeta de un usuario y ver si se puede usar para realizar pagos. Esta llamada no transfiere dinero y no debería haber cambios permanentes en la cuenta del usuario.
A continuación, se muestra una solicitud de ejemplo:
{
"requestHeader": {
"protocolVersion": {
"major": 1,
"minor": 0,
"revision": 0
},
"requestId": "ZWNobyB0cmFuc2FjdGlvbg",
"requestTimestamp": "1481855969503"
},
"standardCard": {
"accountNumber": "4123456789101112",
"expiryDate": "01/2020",
"cvn": "123"
},
"avsData": {
"streetAddress": "123 Main St APT #200",
"localityName": "Springfield",
"administrativeAreaName": "CO",
"countryCode": "US"
}
}
Una respuesta de ejemplo se ve de la siguiente manera:
{
"responseHeader": {
"responseTimestamp": "1481855970403",
},
"cardNetworkResult": {
"network": "VISA",
"iso8583Result": "00",
"rawNetworkResult": "00"
},
"avsResult": {
"rawAvsResult": "B",
"streetAddress": "MATCH",
"localityName": "MATCH",
"administrativeAreaName": "MATCH",
"postalCodeNumber": "NOT_SENT",
"countryCode": "SKIPPED"
},
"cvnResult": "MATCH"
}
Solicitud HTTP
POST https://card-verification-service.google.com/v1/card/verifycard
La URL usa la sintaxis de la transcodificación gRPC.
Cuerpo de la solicitud
El cuerpo de la solicitud contiene datos con la siguiente estructura:
Representación JSON | |
---|---|
{ "requestHeader": { object( |
Campos | |
---|---|
requestHeader |
REQUIRED: Encabezado común para todas las solicitudes |
standardCard |
OBLIGATORIO: Incluye los datos de la tarjeta de pago del usuario. |
avsData |
OPCIONAL: Es la dirección del usuario que verificará AVS. |
Cuerpo de la respuesta
Si se ejecuta correctamente, el cuerpo de la respuesta contendrá datos con la siguiente estructura:
Objeto de respuesta para el método card.verifycard alojado en Payment Integrator.
Representación JSON | |
---|---|
{ "responseHeader": { object( |
Campos | |
---|---|
responseHeader |
REQUIRED: Encabezado común para todas las respuestas |
cardNetworkResult |
REQUIRED: Es el resultado de la emisión de la autorización en la red de tarjetas. |
avsResult |
OPCIONAL: Es el resultado de verificar los campos de dirección que se enviaron en la solicitud. Este campo es obligatorio si se configuró |
cvnResult |
REQUIRED: Es el resultado de la verificación del CVN que se envió en la solicitud. Si no se estableció el CVN en la solicitud, este valor debe ser |
RequestHeader
Es un objeto de encabezado que se define en todas las solicitudes que se envían al servidor.
Representación JSON | |
---|---|
{
"requestId": string,
"requestTimestamp": string,
"userLocale": string,
"protocolVersion": {
object( |
Campos | |
---|---|
requestId |
REQUIRED: Identificador único de esta solicitud Es una cadena que tiene una longitud máxima de 100 caracteres y solo contiene los caracteres "a-z", "A-Z", "0-9", ":", "-" y "_". |
requestTimestamp |
REQUIRED: Es la marca de tiempo de esta solicitud representada como milisegundos desde el ciclo de entrenamiento. El receptor debe verificar que esta marca de tiempo sea de ± 60 segundos del “ahora”. Esta marca de tiempo de la solicitud no es idempotente luego de los reintentos. |
userLocale |
OPCIONAL: Un código de idioma ISO 639-2 alfa 3 de dos o tres letras, opcionalmente, seguido de un guion y un código de país ISO 3166-1 alfa-2, p.ej., "pt", "pt-BR", "fil" o "fil-PH". Úsalo para controlar los campos |
protocolVersion |
REQUIRED: Es la versión de esta solicitud. |
Versión
Objeto de versión que es una forma estructurada de la estructura de la versión clásica de a.b.c
. Se garantiza la compatibilidad de las versiones principales que tengan la misma cantidad. Ten en cuenta que las revisiones y menores pueden cambiar con frecuencia y sin previo aviso. El integrador debe admitir todas las solicitudes de la misma versión principal.
Representación JSON | |
---|---|
{ "major": number, "minor": number, "revision": number } |
Campos | |
---|---|
major |
REQUIRED: Versión principal. Esto se marca para que las solicitudes de compatibilidad con diferentes versiones no sean compatibles. |
minor |
REQUIRED: Versión secundaria. Esto denota correcciones de errores importantes. |
revision |
REQUIRED: Versión secundaria. Esto denota correcciones de errores menores. |
StandardCard
La representación estándar de una tarjeta
Representación JSON | |
---|---|
{ "accountNumber": string, "expiryDate": string, "cvn": string } |
Campos | |
---|---|
accountNumber |
OBLIGATORIO: El número de cuenta principal (PAN) de la tarjeta en texto sin formato. |
expiryDate |
OPCIONAL: Es la fecha de vencimiento de la tarjeta en formato MM/AAAA. Opcional porque algunas tarjetas en ciertas regiones no tienen fecha de vencimiento. |
cvn |
OPCIONAL: Si Google recopiló el CVN del usuario, se proporciona aquí y se debe verificar. |
AvsData
Contiene campos de dirección que deben verificar AVS.
Representación JSON | |
---|---|
{ "streetAddress": string, "localityName": string, "administrativeAreaName": string, "postalCodeNumber": string, "countryCode": string } |
Campos | |
---|---|
streetAddress |
OPCIONAL: Es la dirección de la dirección de facturación del usuario. Cuando el usuario proporciona varias líneas para ingresar su dirección (por ejemplo, una línea para el número de departamento), las líneas se concatenan con espacios. |
localityName |
OPCIONAL: Es un término aproximado, pero generalmente hace referencia a la parte de una dirección que corresponde a la ciudad o el pueblo. En regiones del mundo donde las localidades no están bien definidas o no se ajustan bien a esta estructura (por ejemplo, Japón y China), deja localityName vacío y usa address_line. Ejemplos: ciudad de EE.UU., comuna de Italia o ciudad postal en el Reino Unido. |
administrativeAreaName |
OPCIONAL: Es la subdivisión administrativa de nivel superior de este país para la dirección de facturación del usuario. Ejemplos: Estado de EE.UU., región de TI, nación constituyente del Reino Unido, prefectura de Japón Cuando país == EE.UU., se espera que sea la abreviatura de 2 caracteres del estado de EE.UU. |
postalCodeNumber |
OPCIONAL: El código postal de facturación del usuario. |
countryCode |
OPCIONAL: Es el código de país de la dirección de facturación del usuario en formato ISO-3166-1 Alfa-2. |
ResponseHeader
Es un objeto de encabezado que se define en todas las respuestas que se envían desde el servidor.
Representación JSON | |
---|---|
{ "responseTimestamp": string } |
Campos | |
---|---|
responseTimestamp |
REQUIRED: Marca de tiempo de esta respuesta representada como milisegundos desde el ciclo de entrenamiento. El receptor debe verificar que esta marca de tiempo sea de ± 60 segundos del “ahora”. |
CardNetworkResult
Contiene una red y un código de resultado sin procesar de esa red.
Representación JSON | |
---|---|
{
"network": enum( |
Campos | |
---|---|
network |
REQUIRED: Es la red de la que provino el código de resultado. |
iso8583Result |
OBLIGATORIO: Es el código de retorno ISO-8583 que muestra la red. Si la red usa su propio formato de código de respuesta, el integrador debe asignar esos códigos de respuesta a los códigos de retorno ISO-8583. |
rawNetworkResult |
REQUIRED: El valor sin procesar que muestra la red. Las redes que usan códigos de retorno ISO-8583 ya tendrán el mismo valor en este campo y en |
Red
Define las redes de tarjetas posibles que podrían haber mostrado el rawResult
.
Enumeraciones | |
---|---|
UNKNOWN_NETWORK |
No se reconoció la red |
NETWORK_NOT_INVOLVED |
Usa este valor si el rechazo no provino de la red, por ejemplo, si el integrador rechazó la compra antes de que se envíe a la red de la tarjeta. |
AMEX |
Red AMEX |
COMPROCARD |
Red COMPROCARD |
DANKORT |
Red DANKORT |
DINACARD |
Red DINACARD |
DINERS_CLUB |
Red DINERS_CLUB |
DISCOVER |
Red DISCOVER |
EFTPOS |
Red de EFTPOS |
ELO |
Red ELO |
ENROUTE |
Red ENROUTE |
FELICA |
Red FELICA |
GE_CAPITAL |
Red GE_CAPITAL |
HIPERCARD |
Red HIPERCARD |
ID |
Red de ID |
INTERAC |
Red INTERAC |
JCB |
Red JCB |
LASER |
Red LÁSER |
MAESTRO |
Red MAESTRO |
MASTERCARD |
Red MASTERCARD |
PPT |
Red PPT |
QUICPAY |
Red QUICPAY |
RUPAY |
Red RUPAY |
SBERCARD |
Red SBERCARD |
SOLO |
Red SOLO |
SYNCHRONY |
Red SYNCHRONY |
UNIONPAY |
Red UNIONPAY |
VISA |
VISA Network |
AvsResult
Es el resultado de la verificación de los campos de dirección proporcionados en la solicitud.
Todos los campos son obligatorios porque queremos un resultado explícito para cada campo en lugar de depender de la ausencia de un campo como resultado implícito.
Representación JSON | |
---|---|
{ "rawAvsResult": string, "streetAddress": enum( |
Campos | |
---|---|
rawAvsResult |
REQUIRED: Es el valor de AVS sin procesar que muestra la red de tarjetas. |
streetAddress |
OBLIGATORIO: Es el resultado de verificar el Si el campo no se configuró en la solicitud, este valor debe ser "NOT_SENT". |
localityName |
OBLIGATORIO: Es el resultado de verificar el Si el campo no se configuró en la solicitud, este valor debe ser "NOT_SENT". |
administrativeAreaName |
OBLIGATORIO: Es el resultado de verificar el Si el campo no se configuró en la solicitud, este valor debe ser "NOT_SENT". |
postalCodeNumber |
OBLIGATORIO: Es el resultado de verificar el Si el campo no se configuró en la solicitud, este valor debe ser "NOT_SENT". |
countryCode |
OBLIGATORIO: Es el resultado de verificar el Si el campo no se configuró en la solicitud, este valor debe ser "NOT_SENT". |
VerificationResult
Enumeraciones | |
---|---|
UNKNOWN_AVS_MATCH |
No establezcas nunca este valor predeterminado. |
NOT_SENT |
Google no envió este campo, por lo que no se pudo hacer nada. |
MATCH |
Google envió el campo al integrador, se verificó a través de AVS y coincidió con el valor esperado. |
MISMATCH |
Google envió el campo al integrador y se verificó a través de AVS, pero no coincidía con el valor esperado. |
SKIPPED |
Google envió el campo al integrador, pero este no lo verificó. |
NOT_SPECIFIED |
Google envió el campo al integrador y este lo verificó a través de AVS, pero el código de resultado de AVS no proporciona suficiente información para que el integrador sepa si el campo coincidió con el valor esperado. |
CvnResult
El resultado de verificar el CVN proporcionado en la solicitud.
Enumeraciones | |
---|---|
UNKNOWN_CVN_RESULT |
No establezcas nunca este valor predeterminado. |
NOT_SENT |
Google no proporcionó el CVN, por lo que no se pudo verificar. |
NOT_VERIFIED |
Google envió el CVN, pero no se verificó. Esto corresponde a un código de resultado de red "F" |
MATCH |
Google envió el CVN, se verificó y coincidió. Esto corresponde a un código de resultado de red de "M". |
MISMATCH |
Google envió el CVN y se verificó, pero no coincide. Esto corresponde a un código de resultado de red de "N". |