Method: sendOtp

Solicita que o integrador envie uma OTP para o número de telefone.

Se o integrador retornar SUCCESS, o Google espera que um SMS seja enviado para o número de telefone.

O Google fornece apenas um accountPhoneNumber quando um usuário associa inicialmente a conta dele ao Google. Depois disso, apenas associationId seria enviado para todas as chamadas subsequentes.

Se o endpoint encontrar um erro ao processar a solicitação, o corpo da resposta desse endpoint precisará ser do tipo ErrorResponse.

Veja abaixo um exemplo de solicitação:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 0,
      "revision": 0
    },
    "requestId": "0123434-otp-abc",
    "requestTimestamp": "1502545413026"
  },
  "accountPhoneNumber": "+918067218010",
  "smsMatchingToken": "AB12345678C",
  "otpContext": {
    "association": {}
  }
}

Veja um exemplo de resposta:


{
  "responseHeader": {
    "responseTimestamp": "1502545413098"
  },
  "paymentIntegratorSendOtpId": "99==ABC EF",
  "result": "SUCCESS"
}

Solicitação HTTP

POST https://www.integratorhost.example.com/v1/sendOtp

Corpo da solicitação

O corpo da solicitação contém dados com a seguinte estrutura:

Representação JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "smsMatchingToken": string,
  "otpContext": {
    object (OtpContext)
  },

  // Union field account_identifier can be only one of the following:
  "accountPhoneNumber": string,
  "associationId": string
  // End of list of possible types for union field account_identifier.
}
Campos
requestHeader

object (RequestHeader)

OBRIGATÓRIO: cabeçalho comum para todas as solicitações.

smsMatchingToken

string

OBRIGATÓRIO: este valor é fornecido pelo Google e precisa ser incluído no SMS enviado ao usuário. Isso permite que o Google faça a correspondência automática de SMS no dispositivo para dispositivos Android O (consulte a referência). O valor terá 11 caracteres.

Por exemplo, se o SMS normalmente for assim:

Here's the OTP you requested: <OTP>

E o Google enviar "0123456789A" para esse campo, o SMS deverá ter esta aparência:

0123456789A

Here's the OTP you requested: YYXXZZ

Como alternativa, ele pode ter esta aparência:

Here's the OTP you requested: YYXXZZ

0123456789A

otpContext

object (OtpContext)

OPCIONAL: o contexto em que uma OTP está sendo solicitada.

Campo de união account_identifier. OBRIGATÓRIO: esse é o identificador da conta para que uma OTP precisa ser enviada. account_identifier pode ser apenas de um dos tipos a seguir:
accountPhoneNumber

string

Este é um número de telefone no formato E.164. Por exemplo: +14035551111 e +918067218000. Isso sempre iniciará com um sinal de + e incluirá apenas números depois (sem traços).

Isso é preenchido quando um usuário associa inicialmente a conta ao Google e durante a reassociação.

associationId

string

Esse é o identificador de associação usado para fazer referência à conta de um usuário.

Isso é preenchido em todas as chamadas subsequentes após a associação inicial.

Corpo da resposta

Objeto de resposta para o método sendOtp.

Se bem-sucedido, o corpo da resposta incluirá dados com a estrutura a seguir:

Representação JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorSendOtpId": string,
  "result": enum (SendOtpResultCode)
}
Campos
responseHeader

object (ResponseHeader)

OBRIGATÓRIO: cabeçalho comum para todas as respostas.

paymentIntegratorSendOtpId

string

OPCIONAL: o identificador que o integrador conhece como o envio dessa solicitação de OTP. Este é o integrador gerado.

result

enum (SendOtpResultCode)

OBRIGATÓRIO: resultado desta solicitação

Contexto de operação

Contexto em que uma OTP está sendo solicitada.

Representação JSON
{

  // Union field otp_context can be only one of the following:
  "association": {
    object (Empty)
  },
  "mandateCreation": {
    object (Empty)
  },
  "associationWithMandateCreation": {
    object (Empty)
  }
  // End of list of possible types for union field otp_context.
}
Campos
Campo de união otp_context. OBRIGATÓRIO: contexto em que uma OTP está sendo solicitada. otp_context pode ser apenas de um dos tipos a seguir:
association

object (Empty)

A OTP está sendo solicitada no contexto de associação/reassociação.

mandateCreation

object (Empty)

A OTP está sendo solicitada no contexto da criação da autorização.

associationWithMandateCreation

object (Empty)

A OTP está sendo solicitada para a associação e a criação da autorização.

Vazio

Este tipo não tem campos.

Esse objeto é usado para extensibilidade porque os booleanos e as enumerações geralmente precisam ser estendidos com dados extras. O implementador a utiliza para determinar a presença. A enumeração que isso representa pode ser estendida para conter dados em versões futuras.

A representação JSON para Empty é um objeto JSON vazio {}.

SendOtpResultCode

Códigos de resultado para a solicitação de envio de OTP.

Enums
UNKNOWN_RESULT Nunca defina esse valor padrão.
SUCCESS O integrador enviou a OTP.
PHONE_NUMBER_NOT_ASSOCIATED_WITH_ACCOUNT O número de telefone não está associado à conta identificada por associationId.
UNKNOWN_PHONE_NUMBER O número de telefone não está associado a nenhuma conta. É usado quando associationId não está definido.
MESSAGE_UNABLE_TO_BE_SENT O integrador não conseguiu enviar a OTP por algum motivo. Este é um erro temporário e pode resultar na nova tentativa de chamada.
INVALID_PHONE_NUMBER O formato do número de telefone estava incorreto.
NOT_ELIGIBLE A conta do usuário não está qualificada para este serviço.
OTP_LIMIT_REACHED O usuário solicitou ou tentou verificar muitas OTPs.
ACCOUNT_CLOSED

A conta do usuário associada ao integrador foi encerrada. Só deverá ser usado quando o "associationId" for usado para identificar esse usuário.

Retornar esse valor fará com que o instrumento do usuário seja fechado com o Google. O usuário será forçado a adicionar um novo instrumento passando pelo fluxo de associação novamente.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

A conta do usuário com o integrador foi encerrada. A conta pode ter sido invadida. Só deverá ser usado quando o "associationId" for usado para identificar esse usuário.

Retornar esse valor fará com que o instrumento do usuário seja fechado com o Google. O usuário será forçado a adicionar um novo instrumento passando pelo fluxo de associação novamente.

ACCOUNT_CLOSED_FRAUD

A conta do usuário associada ao integrador foi encerrada por fraude. Só deverá ser usado quando o "associationId" for usado para identificar esse usuário.

Retornar esse valor fará com que o instrumento do usuário seja fechado com o Google. O usuário será forçado a adicionar um novo instrumento passando pelo fluxo de associação novamente.