Method: disburseFunds

Inicia o movimento de dinheiro entre o processador de pagamentos e a conta do cliente. 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 preenchem o valor requestId no campo disburseFundsRequestId.

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": 0,
      "revision": 0
    },
    "requestId": "liUrreQY233839dfFFb24gaQM",
    "requestTimestamp": "1502220434778"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA_USD",
  "upiDetails": {
      "vpa": "foo@icici"
  },
  "transactionDescription": "Google - Music",
  "currencyCode": "INR",
  "amount": "208000000"
}

Um exemplo de resposta é semelhante a:


{
  "responseHeader": {
    "responseTimestamp": "1481900013178"
  },
  "paymentIntegratorTransactionId": "aW50ZWdyYXRvciB0cmFuc2FjdGlvbiBpZA",
  "disburseFundsResult": {
    "disburseFundsResultCode": "SUCCESS"
  }
}

Solicitação HTTP

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

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 destinationFopDetails can be only one of the following:
  "upiDetails": {
    object (UpiDetails)
  }
  // End of list of possible types for union field destinationFopDetails.
}
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 destinationFopDetails.

destinationFopDetails pode ser apenas de um dos tipos a seguir:

upiDetails

object (UpiDetails)

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

Corpo da resposta

Objeto de resposta para o método de pagamento de fundos.

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

Representação JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorTransactionId": string,
  "disburseFundsResult": {
    object (DisburseFundsResult)
  }
}
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

disburseFundsResult

object (DisburseFundsResult)

OBRIGATÓRIO: resultado da chamada sobre fundos de pagamento.

UpiDetails

Detalhes sobre a conta do UPI para receber o pagamento.

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.

DisburseFundsResult

Informações sobre o resultado final de um pagamento.

Representação JSON
{
  "disburseFundsResultCode": enum (DisburseFundsResultCode),
  "rawResult": {
    object (RawResult)
  },

  // Union field FailureDetail can be only one of the following:
  "transactionMaxLimit": string,
  "transactionMinLimit": string
  // End of list of possible types for union field FailureDetail.
}
Campos
disburseFundsResultCode

enum (DisburseFundsResultCode)

OBRIGATÓRIO: código de resultado do pagamento.

rawResult

object (RawResult)

OPCIONAL: resultado bruto do pagamento. Usado para ajudar a informar o mecanismo de risco e as análises do Google. Em situações de recusa de mapeamento de código, os dados às vezes são perdidos. O integrador pode fornecer um código bruto ao Google. Por exemplo, um gateway de cartão de crédito (o integrador) pode usar esse campo para comunicar ao Google o código de recusa exato que foi recebido da rede VISA. Nesse caso, scope seria "visa" e rawCode seria o que a rede VISA retornasse.

Esse valor será obrigatório se result não for SUCCESS.

Campo de união FailureDetail.

FailureDetail pode ser apenas de um dos tipos a seguir:

transactionMaxLimit

string (Int64Value format)

OPCIONAL: se disburseFundsResultCode for DISBURSEMENT_EXCEEDS_TRANSACTION_LIMIT, esse será o valor da transação máxima permitida. Isso é usado para mensagens estruturadas voltadas ao usuário e análise da taxa de recusa.

Esse valor é micros do mesmo currencyCode que a chamada de método disburseFunds original.

transactionMinLimit

string (Int64Value format)

OPCIONAL: se disburseFundsResultCode for DISBURSEMENT_UNDER_TRANSACTION_LIMIT, esse será o valor da transação mínima permitida. Isso é usado para mensagens estruturadas voltadas ao usuário e análise da taxa de recusa.

Esse valor é micros do mesmo currencyCode que a chamada de método disburseFunds original.

DisburseFundsResultCode

Códigos de resultado para uma chamada de fundos de pagamento.

Enums
UNKNOWN_RESULT Nunca defina esse valor padrão.
SUCCESS O pagamento foi realizado.
DISBURSEMENT_UNDER_TRANSACTION_LIMIT O valor de desembolso solicitado não atende ao valor mínimo por transação do integrador. Se esse código for usado, preencha o campo transactionMinLimit com o valor mínimo da transação para enviar mensagens aos usuários.
DISBURSEMENT_EXCEEDS_TRANSACTION_LIMIT O valor de desembolso solicitado excede o limite máximo por transação do integrador. Se esse código for usado, preencha o campo transactionMaxLimit com o limite de transações para enviar mensagens aos usuários.
ACCOUNT_CLOSED A conta do usuário mantida com o integrador foi encerrada. Esse valor de retorno fará com que o instrumento do usuário seja fechado com o Google. O usuário será forçado a adicionar um novo instrumento.
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER A conta do usuário com o integrador foi encerrada, e há suspeita de que a conta foi assumir o controle. Esse valor de retorno fará com que o instrumento do usuário seja fechado com o Google. O usuário será forçado a adicionar um novo instrumento.
ACCOUNT_CLOSED_FRAUD A conta do usuário mantida com o integrador foi encerrada devido a uma fraude. Esse valor de retorno fará com que o instrumento do usuário seja fechado com o Google. O usuário será forçado a adicionar um novo instrumento.
ACCOUNT_ON_HOLD A conta do usuário está retida.

RawResult

Objeto de resultado bruto.

Representação JSON
{
  "scope": string,
  "rawCode": string
}
Campos
scope

string

OPCIONAL: o escopo do código bruto pode estar vazio.

rawCode

string

OBRIGATÓRIO: código bruto do integrador ou dos subsistemas dele.