Method: remittanceStatementNotification

Comunica all'integratore una nuova dichiarazione di versamento.

Ogni volta che viene generato un nuovo estratto conto che rappresenta l'importo che Google pagherà all'integratore o l'importo dovuto a Google dall'integratore,

Se l'integratore restituisce un errore, conferma di aver ricevuto la dichiarazione.

requestId è anche l'ID istruzione (utilizzato altrove). La combinazione di requestId nell'intestazione e paymentIntegratorAccountId è la chiave di idempotenza e identifica in modo univoco questa istruzione.

Se l'endpoint rileva un errore durante l'elaborazione della richiesta, il corpo della risposta da questo endpoint deve essere di tipo ErrorResponse.

Una richiesta di esempio ha il seguente aspetto:


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

Ecco un esempio di risposta:


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

Richiesta HTTP

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

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "remittanceStatementSummary": {
    object (RemittanceStatementSummary)
  }
}
Campi
requestHeader

object (RequestHeader)

REQUIRED: intestazione comune per tutte le richieste.

paymentIntegratorAccountId

string

REQUIRED: questo è l'identificatore dell'account dell'integratore dei pagamenti che identifica i vincoli contrattuali relativi a questa affermazione.

remittanceStatementSummary

object (RemittanceStatementSummary)

OBBLIGATORIO: riepilogo di questa dichiarazione di pagamento.

Corpo della risposta

Oggetto della risposta per il metodo di notifica della dichiarazione di versamento.

In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorStatementId": string,
  "result": enum (StatementNotificationResultCode)
}
Campi
responseHeader

object (ResponseHeader)

REQUIRED: intestazione comune per tutte le risposte.

paymentIntegratorStatementId

string

REQUIRED: identificatore con cui l'integratore conosce questa istruzione. Questo è un integratore generato.

result

enum (StatementNotificationResultCode)

REQUIRED: risultato della notifica di questa dichiarazione.

RequestHeader

Oggetto intestazione definito in tutte le richieste inviate al server.

Rappresentazione JSON
{
  "requestId": string,
  "requestTimestamp": string,
  "userLocale": string,
  "protocolVersion": {
    object (Version)
  }
}
Campi
requestId

string

REQUIRED: identificatore univoco della richiesta.

Si tratta di una stringa con una lunghezza massima di 100 caratteri e contenente solo i caratteri "a-z", "A-Z", "0-9", ":", "-" e "_".

requestTimestamp

string (int64 format)

REQUIRED: timestamp di questa richiesta espresso in millisecondi dall'epoca. Il destinatario deve verificare che il timestamp sia di ± 60 secondi rispetto a "now". Questo timestamp della richiesta non è idempotente al momento dei nuovi tentativi.

userLocale
(deprecated)

string

OBSOLETO: un codice lingua ISO 639-2 Alpha 3 a due o tre lettere facoltativamente seguito da un trattino e da un codice paese Alpha-2 ISO 3166-1, ad esempio "pt", "pt-BR", "fil" o "fil-PH". Utilizzalo per generare più campi userMessage nella risposta.

protocolVersion

object (Version)

REQUIRED: la versione della richiesta.

Versione

Oggetto versione, che è una forma strutturata della struttura della versione classica di a.b.c. È garantita la compatibilità delle versioni principali dello stesso numero. Tieni presente che le revisioni e le revisioni possono cambiare spesso e senza preavviso. L'integratore deve supportare tutte le richieste per la stessa versione principale.

Rappresentazione JSON
{
  "major": integer,
  "minor": integer,
  "revision": integer
}
Campi
major

integer

REQUIRED: versione principale. Questo stato è contrassegnato perché non è garantita la compatibilità delle richieste di compatibilità con versioni diverse.

minor

integer

REQUIRED: versione secondaria. Indica correzioni di bug significative.

revision

integer

REQUIRED: versione secondaria. Indica correzioni di bug minori.

RemittanceStatementSummary

Oggetto di riepilogo su una dichiarazione di versamento.

Rappresentazione JSON
{
  "statementDate": string,
  "billingPeriod": {
    object (BillingPeriod)
  },
  "dateDue": string,
  "currencyCode": string,
  "totalDueByIntegrator": string,
  "remittanceInstructions": {
    object (RemittanceInstructions)
  }
}
Campi
statementDate

string (int64 format)

REQUIRED: data (in America/Los Angeles) in cui è stata creata l'istruzione.

billingPeriod

object (BillingPeriod)

OBBLIGATORIO: il periodo di fatturazione coperto dal presente estratto conto.

dateDue

string (int64 format)

FACOLTATIVO: la data di scadenza del versamento. Questo valore è espresso in millisecondi dall'epoca. Si tratta di una data, pertanto inizierà sempre al primo millisecondo della giornata nel fuso orario di fatturazione.

Questo campo viene impostato se il valore di totalDueByIntegrator è maggiore di 0.

currencyCode

string

OBBLIGATORIO: codice valuta ISO 4217 di tre lettere.

totalDueByIntegrator

string (Int64Value format)

REQUIRED: questo valore è in micro nella valuta currencyCode. Questo valore è sempre positivo.

remittanceInstructions

object (RemittanceInstructions)

OBBLIGATORIO: dettagli su come effettuare il pagamento

BillingPeriod

Periodo di fatturazione del presente estratto conto.

Rappresentazione JSON
{
  "startDate": string,
  "endDate": string
}
Campi
startDate

string (int64 format)

OBBLIGATORIO: la data di inizio del periodo di fatturazione. Questo valore è espresso in millisecondi dall'epoca. Si tratta di una data, pertanto inizierà sempre al primo millisecondo della giornata nel fuso orario di fatturazione.

Si tratta del primo millisecondo del giorno del periodo di fatturazione, ovvero 00:00:00.000

endDate

string (int64 format)

OBBLIGATORIO: la data di fine del periodo di fatturazione. Questo valore è espresso in millisecondi dall'epoca.

Si tratta dell'ultimo millisecondo dell'ultimo giorno del periodo di fatturazione, 23:59:59.999

RemittanceInstructions

La struttura conserva informazioni sulle modalità di pagamento di questa notifica di versamento.

Rappresentazione JSON
{
  "memoLineId": string
}
Campi
memoLineId

string

REQUIRED: identificatore obbligatorio da inserire nella riga delle note per il pagamento ai fini dell'identificazione del versamento.

ResponseHeader

Oggetto intestazione definito su tutte le risposte inviate dal server.

Rappresentazione JSON
{
  "responseTimestamp": string
}
Campi
responseTimestamp

string (int64 format)

REQUIRED: timestamp di questa risposta espresso in millisecondi dall'epoca. Il destinatario deve verificare che il timestamp sia di ± 60 secondi rispetto a "now".

StatementNotificationResultCode

Codici risultato per la notifica dell'estratto conto.

Enum
UNKNOWN_RESULT Non impostare mai questo valore predefinito.
ACCEPTED L'integratore ha accettato questa dichiarazione.