Method: asynchronousCapture

Aciona o início de uma operação de movimentação 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 dele precisará ser do tipo ErrorResponse.

Um exemplo de solicitação é semelhante a este:


{
  "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"
}

Veja um exemplo de resposta:


{
  "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 à transação.

transactionDescription

string

OBRIGATÓRIO: é a descrição da transação que pode ser incluída na fatura do cliente. Localizado para a userLocale encontrada no requestHeader. Esse formato pode ser alterado sem aviso prévio e nunca pode 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 para 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 e gerado pelo integrador. O integrador conhece essa transação pelo identificador.

Para facilitar, esse identificador é incluído nos detalhes da remessa.

result

enum (AsynchronousCaptureResultCode)

REQUIRED: o resultado da chamada de captura assíncrona.

UpiDetails

Detalhes sobre a conta da UPI a ser usada.

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 usando o protocolo da UPI. Por exemplo, foo@icici.

TokenizedInstrumentDetails

Detalhes sobre a conta que será usada para a captura

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

string

OBRIGATÓRIO: 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 realizará outras etapas para determinar se ela foi concluída ou recusada. Depois que o integrador souber o resultado da captura, ele vai informar o resultado ao Google chamando a API captureResultNotification.
ACCOUNT_CLOSED

A conta do usuário mantida no 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 há suspeita de que a conta esteja assumida.

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.