PayerInfo

Information about the person making the payment.

JSON representation
{
  "payerTaxInfo": {
    object (TaxInfo)
  },

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "payerBankAccountIdentifier": {
    object (BankAccountIdentifier)
  },
  "payerFundingSourceIdentifier": {
    object (PayerFundingSourceIdentifier)
  }
  // End of mutually exclusive fields.
}
Fields
payerTaxInfo

object (TaxInfo)

OPTIONAL: Tax-related information about the payer, such as tax ID or orther relevant identifiers.

OPTIONAL: The account the payer paid from. At most one may be set. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response:
payerBankAccountIdentifier

object (BankAccountIdentifier)

Banking details of the payer, potentially including bank name, account number, or other identifying information. For integrators that can disclose raw account details.

payerFundingSourceIdentifier

object (PayerFundingSourceIdentifier)

Privacy-preserving identifier of the payer's funding source, for integrators that cannot disclose raw account details.

End of mutually exclusive fields.

TaxInfo

Tax-related information about the payer.

JSON representation
{

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "brazil": {
    object (BrazilTaxInfo)
  }
  // End of mutually exclusive fields.
}
Fields
REQUIRED: Country-specific tax details for the payer. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response:
brazil

object (BrazilTaxInfo)

Specific tax details for Brazil.

End of mutually exclusive fields.

BrazilTaxInfo

Tax-related information about the payer specific to Brazil.

JSON representation
{

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "cnpj": string,
  "cpf": string
  // End of mutually exclusive fields.
}
Fields
REQUIRED: The payer's Brazilian tax ID (CNPJ or CPF). The following is a list of mutually exclusive fields. At most one of the fields will be set in a response:
cnpj

string

Cadastro Nacional da Pessoa Jurídica (CNPJ), an identification number issued to Brazilian companies.

cpf

string

Cadastro de Pessoas Físicas (CPF), the Brazilian individual taxpayer registry identification.

End of mutually exclusive fields.

BankAccountIdentifier

Unique identifier of a bank account.

JSON representation
{

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "brazilBankAccount": {
    object (BrazilBankAccountInfo)
  }
  // End of mutually exclusive fields.
}
Fields
REQUIRED: Country-specific bank account details. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response:
brazilBankAccount

object (BrazilBankAccountInfo)

An account with a bank in Brazil.

End of mutually exclusive fields.

BrazilBankAccountInfo

Details of a user's bank account in Brazil.

JSON representation
{
  "bankCode": string,
  "branchCode": string,
  "accountNumber": string
}
Fields
bankCode

string

REQUIRED: The unique code identifying the bank associated with the payer's account.

branchCode

string

REQUIRED: The specific code representing the branch where the payer's account is held.

accountNumber

string

REQUIRED: The unique number identifying the payer's bank account.

PayerFundingSourceIdentifier

A privacy-preserving, integrator-supplied identifier for the payer's funding source, for integrators that cannot disclose raw account details.

Sources are classified by the guarantees their identifier carries, not by who holds the account. bankAccount and walletAccount MUST only be used when the identifier is BOTH stable over time AND never shared between payers. If the identifier is stable but may be shared between payers, sharedAccount MUST be used. Otherwise, including when the integrator cannot determine the source, unknownSource MUST be used.

Identifiers MUST be stable across all of the integrator's payment integrator accounts. Because integrators hash with their own keys, identifiers from different integrators are not expected to match.

JSON representation
{

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "bankAccount": {
    object (BankAccount)
  },
  "walletAccount": {
    object (WalletAccount)
  },
  "sharedAccount": {
    object (SharedAccount)
  },
  "unknownSource": {
    object (Empty)
  }
  // End of mutually exclusive fields.
}
Fields
REQUIRED: The kind of funding source the payer paid from. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response:
bankAccount

object (BankAccount)

The payer paid from a bank account.

walletAccount

object (WalletAccount)

The payer paid from a wallet account (e.g. the integrator's own wallet).

sharedAccount

object (SharedAccount)

The payer paid through an account shared by many payers (e.g. a third-party wallet paying from its own settlement account). The identifier is stable but does not identify an individual payer.

unknownSource

object (Empty)

The integrator cannot determine the funding source, or cannot provide a stable identifier for it.

End of mutually exclusive fields.

BankAccount

A bank account held by the payer.

JSON representation
{
  "institution": {
    object (InstitutionCode)
  },

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "hashedAccountIdentifier": string
  // End of mutually exclusive fields.
}
Fields
institution

object (InstitutionCode)

OPTIONAL: The institution that holds the account. SHOULD be sent when the integrator knows it. Google uses the code as sent and does not convert between schemes.

REQUIRED: Identifies the account. Only a hashed identifier is supported today. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response:
hashedAccountIdentifier

string

Deterministic, non-reversible identifier, unique per bank account and never shared between payers. MUST be identical for the same account across all payments and all of the integrator's payment integrator accounts. MUST NOT contain per-transaction data (e.g. transaction ID, order ID, timestamp, amount). At most 128 characters.

End of mutually exclusive fields.

InstitutionCode

Identifies a financial institution under a named coding scheme.

JSON representation
{
  "code": string,

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "integratorAssigned": {
    object (Empty)
  }
  // End of mutually exclusive fields.
}
Fields
code

string

REQUIRED: The institution code in that scheme.

REQUIRED: The scheme the code is expressed in. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response:
integratorAssigned

object (Empty)

The code comes from the integrator's own code list, not from a national scheme (e.g. an integrator's own bank BIN). It only has meaning together with the integrator that sent it.

End of mutually exclusive fields.

WalletAccount

A wallet account held by the payer. One payer may hold more than one.

JSON representation
{

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "hashedAccountIdentifier": string
  // End of mutually exclusive fields.
}
Fields
REQUIRED: Identifies the wallet account. Only a hashed identifier is supported today. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response:
hashedAccountIdentifier

string

Deterministic, non-reversible identifier (e.g. a hashed wallet user ID), stable over time and never shared between payers. MUST be identical for the same wallet account across all payments and all of the integrator's payment integrator accounts. MUST NOT contain per-transaction data. If the integrator sends identifiers from more than one wallet provider, they MUST be unique across all those providers. At most 128 characters.

End of mutually exclusive fields.

SharedAccount

An account shared by many payers (e.g. a third-party wallet's settlement account).

JSON representation
{
  "institution": {
    object (InstitutionCode)
  },

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "hashedAccountIdentifier": string
  // End of mutually exclusive fields.
}
Fields
institution

object (InstitutionCode)

OPTIONAL: The institution that holds the account. SHOULD be sent when the integrator knows it. Google uses the code as sent and does not convert between schemes.

REQUIRED: Identifies the shared account. Only a hashed identifier is supported today. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response:
hashedAccountIdentifier

string

Deterministic, non-reversible identifier, unique per shared account. MUST be identical for the same account across all payments and all of the integrator's payment integrator accounts. MUST NOT contain per-transaction data (e.g. transaction ID, order ID, timestamp, amount). At most 128 characters.

End of mutually exclusive fields.