Method: card.verifycard

Verifica la tarjeta del usuario para ver 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"
  }
}

Esta es una respuesta de ejemplo:


{
  "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(RequestHeader)
  },
  "standardCard": {
    object(StandardCard)
  },
  "avsData": {
    object(AvsData)
  }
}
Campos
requestHeader

object(RequestHeader)

OBLIGATORIO: Encabezado común para todas las solicitudes

standardCard

object(StandardCard)

OBLIGATORIO: Son los datos sobre la tarjeta de pago del usuario.

avsData

object(AvsData)

OPTIONAL: Es la dirección del usuario que debe 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 por el integrador de pagos.

Representación JSON
{
  "responseHeader": {
    object(ResponseHeader)
  },
  "cardNetworkResult": {
    object(CardNetworkResult)
  },
  "avsResult": {
    object(AvsResult)
  },
  "cvnResult": enum(CvnResult)
}
Campos
responseHeader

object(ResponseHeader)

OBLIGATORIO: Encabezado común para todas las respuestas

cardNetworkResult

object(CardNetworkResult)

REQUIRED: Es el resultado de la emisión de la autorización en la red de tarjetas.

avsResult

object(AvsResult)

OPCIONAL: El resultado de verificar los campos de dirección enviados en la solicitud.

Este campo es obligatorio si se configuró addressVerificationSystemData en la solicitud.

cvnResult

enum(CvnResult)

OBLIGATORIO: Es el resultado de verificar el CVN que se envió en la solicitud. Si no se configuró el CVN en la solicitud, este valor debe ser NOT_SENT.

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(Version)
  }
}
Campos
requestId

string

REQUIRED: Es el 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

string (int64 format)

OBLIGATORIO: Es la marca de tiempo de esta solicitud representada en milisegundos desde el ciclo de entrenamiento. El receptor debe verificar que la marca de tiempo sea de ± 60 s de "ahora". Esta marca de tiempo de solicitud no es idempotente en los reintentos.

userLocale
(deprecated)

string

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 ayudar a controlar los campos user_message en la respuesta.

protocolVersion

object(Version)

OBLIGATORIO: Es la versión de esta solicitud.

Versión

Un objeto Version, que es una forma estructurada de la estructura de versión clásica de a.b.c. Se garantiza que las versiones principales de la misma cantidad son compatibles. Ten en cuenta que las revisiones menores y las revisiones 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

number

OBLIGATORIO: Es la versión principal. Esto se marca cuando no se garantiza la compatibilidad de las solicitudes de compatibilidad con diferentes versiones.

minor

number

OBLIGATORIO: Versión secundaria. Esto indica que se corrigieron errores importantes.

revision

number

OBLIGATORIO: Versión secundaria. Esto implica correcciones de errores menores.

StandardCard

La representación estándar de una tarjeta

Representación JSON
{
  "accountNumber": string,
  "expiryDate": string,
  "cvn": string
}
Campos
accountNumber

string

OBLIGATORIO: Es el número de cuenta principal (PAN) de la tarjeta en texto sin formato.

expiryDate

string

OPTIONAL: Es la fecha de vencimiento de la tarjeta en formato MM/AAAA. Opcional porque algunas tarjetas de ciertas regiones no tienen fecha de vencimiento.

cvn

string

OPCIONAL: Si Google recopila el CVN del usuario, se proporciona aquí y debe verificarse.

AvsData

Contiene campos de dirección que debe verificar AVS.

Representación JSON
{
  "streetAddress": string,
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string
}
Campos
streetAddress

string

OPCIONAL: La dirección de la dirección de facturación del usuario Cuando el usuario proporciona varias líneas para ingresar su dirección (p.ej., una línea para el número de departamento), las líneas se concatenan con espacios.

localityName

string

OPCIONAL: Este es un término confuso, pero, por lo general, hace referencia a la parte de ciudad o pueblo de una dirección. 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 el valor localityName vacío y usa address_line.

Ejemplos: ciudad de EE.UU., comuna de Italia o ciudad postal en el Reino Unido.

administrativeAreaName

string

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 el país == US, se espera que sea la abreviatura de 2 caracteres del estado de EE.UU.

postalCodeNumber

string

OPCIONAL: El código postal de facturación del usuario.

countryCode

string

OPCIONAL: El código de país de la dirección de facturación del usuario en formato ISO-3166-1 Alfa-2.

ResponseHeader

Es el objeto de encabezado que se define en todas las respuestas enviadas desde el servidor.

Representación JSON
{
  "responseTimestamp": string
}
Campos
responseTimestamp

string (int64 format)

REQUIRED: Es la marca de tiempo de esta respuesta representada como milisegundos desde la época. El receptor debe verificar que la marca de tiempo sea de ± 60 s de "ahora".

CardNetworkResult

Contiene una red y un código de resultado sin procesar de esa red.

Representación JSON
{
  "network": enum(Network),
  "iso8583Result": string,
  "rawNetworkResult": string
}
Campos
network

enum(Network)

OBLIGATORIO: La red de la que provino el código del resultado.

iso8583Result

string

OBLIGATORIO: 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 respuesta ISO-8583.

rawNetworkResult

string

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 iso8583Result. Este campo se usa para informar al motor de riesgos de Google y es muy útil para las redes que usan sus propios códigos de respuesta.

Red

Define las posibles redes de tarjetas que pueden haber mostrado las rawResult.

Enumeradores
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 enviara a la red de tarjetas.
AMEX Red AMEX
COMPROCARD Red COMPROCARD
DANKORT Red DANKORT
DINACARD Red DINACARD
DINERS_CLUB Red DINERS_CLUB
DISCOVER Red DISCOVER
EFTPOS Red 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 JCB Network
LASER Red LASER
MAESTRO MAESTRO Network
MASTERCARD Red MASTERCARD
PPT Red PPT
QUICPAY Red QUICPAY
RUPAY Red RUPAY
SBERCARD Red SBERCARD
SOLO SOLO Network
SYNCHRONY Red SYNCHRONY
UNIONPAY Red UNIONPAY
VISA Red VISA

AvsResult

El resultado de verificar 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 confiar en la ausencia de un campo como resultado implícito.

Representación JSON
{
  "rawAvsResult": string,
  "streetAddress": enum(VerificationResult),
  "localityName": enum(VerificationResult),
  "administrativeAreaName": enum(VerificationResult),
  "postalCodeNumber": enum(VerificationResult),
  "countryCode": enum(VerificationResult)
}
Campos
rawAvsResult

string

REQUIRED: Es el valor de AVS sin procesar que muestra la red de tarjetas.

streetAddress

enum(VerificationResult)

OBLIGATORIO: Es el resultado de verificar el streetAddress enviado en el campo addressVerificationSystemData de la solicitud.

Si el campo no se estableció en la solicitud, este valor debe ser "NOT_SENT".

localityName

enum(VerificationResult)

OBLIGATORIO: Es el resultado de verificar el localityName enviado en el campo addressVerificationSystemData de la solicitud.

Si el campo no se estableció en la solicitud, este valor debe ser "NOT_SENT".

administrativeAreaName

enum(VerificationResult)

OBLIGATORIO: Es el resultado de verificar el administrativeAreaName enviado en el campo addressVerificationSystemData de la solicitud.

Si el campo no se estableció en la solicitud, este valor debe ser "NOT_SENT".

postalCodeNumber

enum(VerificationResult)

OBLIGATORIO: Es el resultado de verificar el postalCodeNumber enviado en el campo addressVerificationSystemData de la solicitud.

Si el campo no se estableció en la solicitud, este valor debe ser "NOT_SENT".

countryCode

enum(VerificationResult)

OBLIGATORIO: Es el resultado de verificar el countryCode enviado en el campo addressVerificationSystemData de la solicitud.

Si el campo no se estableció en la solicitud, este valor debe ser "NOT_SENT".

VerificationResult

Enumeradores
UNKNOWN_AVS_MATCH No establezcas nunca este valor predeterminado.
NOT_SENT Google no envió este campo, por lo que no se pudo hacer nada con él.
MATCH Google envió el campo al integrador, se verificó mediante AVS y coincidió con el valor esperado.
MISMATCH Google envió el campo al integrador y se verificó mediante AVS, pero no coincidió con el valor esperado.
SKIPPED Google envió el campo al integrador, pero este no lo revisó.
NOT_SPECIFIED Google envió el campo al integrador y este lo verificó mediante 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 que se proporcionó en la solicitud.

Enumeradores
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ó. Corresponde a un código de resultado de red de "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 este se verificó, pero no coincidió. Esto corresponde a un código de resultado de red de "N".