Method: remittanceStatementNotification

Notifica o integrador sobre uma nova declaração de remessa.

As notificações de extrato ocorrem sempre que é gerada uma nova declaração representando o dinheiro que o Google vai pagar ao integrador ou o dinheiro que o integrador deve ao Google.

Se o integrador retornar um sucesso, ele confirmará o recebimento da instrução.

O requestId também é o ID da instrução (usado em outro lugar). A combinação de requestId no cabeçalho e paymentIntegratorAccountId é a chave de idempotência e identifica essa instrução de maneira exclusiva.

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": "0123434-statement-abc",
    "requestTimestamp": "1502632800000"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA_USD",
  "remittanceStatementSummary": {
    "statementDate": "1502607600000",
    "billingPeriod": {
      "startDate": "1502434800000",
      "endDate": "1502521199000"
    },
    "dateDue": "1503212400000",
    "currencyCode": "INR",
    "totalDueByIntegrator": "1076000000",
    "remittanceInstructions": {
      "memoLineId": "stmt-1AB-pp0-invisi"
    }
  }
}

Um exemplo de resposta é semelhante a:


{
  "responseHeader": {
    "responseTimestamp": "1502632802000"
  },
  "paymentIntegratorStatementId": "334a",
  "result": "ACCEPTED"
}

Solicitação HTTP

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

Corpo da solicitação

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

Representação JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "remittanceStatementSummary": {
    object (RemittanceStatementSummary)
  }
}
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 à instrução.

remittanceStatementSummary

object (RemittanceStatementSummary)

OBRIGATÓRIO: resumo desta declaração de remessa.

Corpo da resposta

Objeto de resposta para o método de notificação de extrato de remessa.

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

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

object (ResponseHeader)

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

paymentIntegratorStatementId

string

REQUIRED: identificador com o qual o integrador conhece essa instrução. Este é o integrador gerado.

result

enum (StatementNotificationResultCode)

REQUIRED: resultado da notificação de instrução.

RequestHeader

Objeto "Header" definido em todas as solicitações enviadas ao servidor.

Representação JSON
{
  "requestId": string,
  "requestTimestamp": string,
  "userLocale": string,
  "protocolVersion": {
    object (Version)
  }
}
Campos
requestId

string

OBRIGATÓRIO: identificador exclusivo da solicitação.

Essa é uma string com tamanho máximo de 100 caracteres e apenas os caracteres "a-z", "A-Z", "0-9", ":", "-" e "_".

requestTimestamp

string (int64 format)

REQUIRED: carimbo de data/hora da solicitação representado como milissegundos desde a época. O receptor precisa verificar se esse carimbo de data/hora tem ± 60 s de "now". Esse carimbo de data/hora da solicitação não é idempotente em novas tentativas.

userLocale
(deprecated)

string

OBSOLETO: um código de idioma ISO 639-2 Alfa 3 de duas ou três letras opcionalmente seguido por um hífen e um código de país ISO 3166-1 Alfa-2, por exemplo, 'pt', 'pt-BR', 'fil' ou 'fil-PH'. Use isso para ajudar a direcionar os campos userMessage na resposta.

protocolVersion

object (Version)

OBRIGATÓRIO: a versão da solicitação.

Versão

O objeto Version, que é uma forma estruturada da estrutura de versão clássica do a.b.c. As principais versões do mesmo número têm garantia de compatibilidade. Pequenas e revisões podem ser alteradas com frequência e sem aviso prévio. O integrador precisa oferecer suporte a todas as solicitações para a mesma versão principal.

Representação JSON
{
  "major": integer,
  "minor": integer,
  "revision": integer
}
Campos
major

integer

OBRIGATÓRIO: versão principal. Isso é marcado para solicitações de compatibilidade com versões diferentes.

minor

integer

OBRIGATÓRIO: versão secundária. Isso indica correções de bugs significativas.

revision

integer

OBRIGATÓRIO: versão secundária. Isso indica pequenas correções de bugs.

RemittanceStatementSummary

Objeto de resumo sobre uma declaração de remessa.

Representação JSON
{
  "statementDate": string,
  "billingPeriod": {
    object (BillingPeriod)
  },
  "dateDue": string,
  "currencyCode": string,
  "totalDueByIntegrator": string,
  "remittanceInstructions": {
    object (RemittanceInstructions)
  }
}
Campos
statementDate

string (int64 format)

OBRIGATÓRIO: data (nos Estados Unidos/Los Angeles) em que a declaração foi criada.

billingPeriod

object (BillingPeriod)

OBRIGATÓRIO: o período de faturamento coberto pelo extrato.

dateDue

string (int64 format)

OPCIONAL: a data de vencimento da remessa. Isso é representado como milissegundos a partir da época. É uma data e, portanto, sempre começará no primeiro milissegundo do dia no fuso horário de faturamento.

Ele é definido desde que a totalDueByIntegrator seja maior que 0.

currencyCode

string

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

totalDueByIntegrator

string (Int64Value format)

OBRIGATÓRIO: este valor está em micros na moeda currencyCode. Esse valor é sempre positivo.

remittanceInstructions

object (RemittanceInstructions)

OBRIGATÓRIO: detalhes sobre como efetuar o pagamento

BillingPeriod

Período de faturamento deste extrato.

Representação JSON
{
  "startDate": string,
  "endDate": string
}
Campos
startDate

string (int64 format)

OBRIGATÓRIO: a data de início do período de faturamento. Isso é representado como milissegundos a partir da época. É uma data e, portanto, sempre começará no primeiro milissegundo do dia no fuso horário de faturamento.

Este é o primeiro milissegundo do dia do período de faturamento, 00:00:00.000

endDate

string (int64 format)

OBRIGATÓRIO: a data de término do período de faturamento. Isso é representado como milissegundos a partir da época.

Este é o último milissegundo do último dia do período de faturamento, 23:59:59.999

RemittanceInstructions

Estrutura que contém informações sobre como pagar esta notificação de remessa.

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

string

OBRIGATÓRIO: identificador que precisa ser colocado na linha do memorando para pagamento e identificação da remessa.

ResponseHeader

Objeto de cabeçalho que é definido em todas as respostas enviadas pelo servidor.

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

string (int64 format)

REQUIRED: carimbo de data/hora dessa resposta representado como milissegundos desde o período. O receptor precisa verificar se esse carimbo de data/hora tem ± 60 s de "now".

StatementNotificationResultCode

Códigos de resultado para notificação de extrato.

Enums
UNKNOWN_RESULT Nunca defina esse valor padrão.
ACCEPTED O integrador aceitou esta declaração.