Method: asynchronousCapture

Aciona o início de uma operação de transferência de dinheiro entre a conta de um cliente e o integrador. O integrador precisa confirmar a solicitação e realizar as ações necessárias para concluir a captura (por exemplo, coletar um PIN do usuário). O integrador informará o Google sobre o resultado final da captura chamando a API CaptureResultNotification.

A combinação de requestId no cabeçalho e paymentIntegratorAccountId é a chave de idempotência e identifica essa transação de maneira exclusiva. Todas as mutações nesta transação (reembolsos) preenchem o valor requestId no campo captureRequestId.

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

Este é um exemplo de solicitação:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 1,
      "revision": 0
    },
    "requestId": "bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ",
    "requestTimestamp": "1502220196077"
  },
  "paymentIntegratorAccountId": "InvisiCashIN_INR",
  "upiDetails": {
      "vpa": "foo@icici"
  },
  "transactionDescription": "Google - Music",
  "currencyCode": "INR",
  "amount": "728000000"
}

Um exemplo de resposta é semelhante a:


{
  "responseHeader": {
    "responseTimestamp": "1481900013178"
  },
  "result": "ACKNOWLEDGED",
  "paymentIntegratorTransactionId": "aW50ZWdyYXRvciB0cmFuc2FjdGlvbiBpZA"
}

Solicitação HTTP

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

Corpo da solicitação

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

Representação JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "transactionDescription": string,
  "currencyCode": string,
  "amount": string,

  // Union field fopDetails can be only one of the following:
  "upiDetails": {
    object (UpiDetails)
  },
  "tokenizedInstrumentDetails": {
    object (TokenizedInstrumentDetails)
  }
  // End of list of possible types for union field fopDetails.
}
Campos
requestHeader

object (RequestHeader)

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

paymentIntegratorAccountId

string

OBRIGATÓRIO: é o identificador da conta do integrador de pagamentos que identifica as restrições contratuais relacionadas a essa transação.

transactionDescription

string

OBRIGATÓRIO: a descrição da transação que pode ser incluída no extrato do cliente. Localizado para o userLocale encontrado no requestHeader. Esse formato pode ser mudado sem aviso prévio e nunca deve ser analisado.

currencyCode

string

OBRIGATÓRIO: código de moeda ISO 4217 de três letras

amount

string (Int64Value format)

OBRIGATÓRIO: o valor da compra, em micros da unidade monetária.

Campo de união fopDetails.

fopDetails pode ser apenas de um dos tipos a seguir:

upiDetails

object (UpiDetails)

OPCIONAL: detalhes de pagamento específicos de instrumentos da UPI.

tokenizedInstrumentDetails

object (TokenizedInstrumentDetails)

OPCIONAL: detalhes de pagamento específicos para instrumentos tokenizados.

Corpo da resposta

Objeto de resposta para o método de captura.

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

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

object (ResponseHeader)

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

paymentIntegratorTransactionId

string

OBRIGATÓRIO: esse identificador é específico para o integrador e gerado por ele. O integrador conhece essa transação pelo identificador.

Para facilitar, este identificador está incluído nos detalhes da remessa

result

enum (AsynchronousCaptureResultCode)

OBRIGATÓRIO: o resultado da chamada de captura assíncrona.

UpiDetails

Detalhes sobre a conta do UPI para fazer a captura.

Representação JSON
{
  "vpa": string
}
Campos
vpa

string

OBRIGATÓRIO: o endereço de pagamento virtual (VPA, na sigla em inglês) do usuário usado para transferir dinheiro com o protocolo da UPI. Por exemplo, foo@icici.

TokenizedInstrumentDetails

Detalhes sobre a conta da qual fazer a captura.

Representação JSON
{
  "googlePaymentToken": string
}
Campos
googlePaymentToken

string

OBRIGATÓRIO: esse é o token que as duas empresas usarão para identificar a conta para compras entre si.

AsynchronousCaptureResultCode

Códigos de resultado para assíncronoCapture.

Enums
UNKNOWN_RESULT Nunca defina esse valor padrão.
ACKNOWLEDGED A captura foi solicitada, e o integrador vai realizar outras etapas para determinar se ela foi concluída ou recusada. Depois que o integrador souber o resultado da captura, ele informará o resultado ao Google chamando a API captureResultNotification.
ACCOUNT_CLOSED

A conta do usuário mantida com o integrador foi encerrada.

Se esse valor for retornado, o instrumento do usuário será 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, e a conta é suspeita.

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

ACCOUNT_ON_HOLD A conta está em espera.
ACCOUNT_CLOSED_FRAUD

A conta do usuário mantida no integrador foi encerrada devido a uma fraude.

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