Method: accounts.list

Lista as contas acessíveis ao usuário que fez a chamada e correspondem às restrições da solicitação, como tamanho ou filtros da página. Isso não apenas lista as subcontas de uma MCA, mas todas as contas que o usuário que faz a chamada tem acesso, incluindo outras MCAs, contas vinculadas, contas independentes e assim por diante.

Solicitação HTTP

GET https://merchantapi.googleapis.com/accounts/v1beta/accounts

O URL usa a sintaxe de transcodificação gRPC.

Parâmetros de consulta

Parâmetros
pageSize

integer

Opcional. O número máximo de contas a serem retornadas. O serviço pode retornar menos que esse valor. Se não for especificado, serão retornadas no máximo 250 contas. O valor máximo é 500. Valores acima de 500 serão forçados para 500.

pageToken

string

Opcional. Um token de página recebido de uma chamada accounts.list anterior. Forneça isso para recuperar a página subsequente.

Ao paginar, todos os outros parâmetros fornecidos para accounts.list precisam corresponder à chamada que forneceu o token da página.

filter

string

Opcional. Um filtro opcional para retornar apenas contas que correspondem ao filtro.

Confira alguns exemplos de filtros válidos:

  • accountName = "*store*" AND relationship(providerId = 123)
  • relationship(providerId = 123 AND service(type = "ACCOUNT_AGGREGATION"))
  • (accountName = "storeA") OR (accountName = "storeB")
  • relationship(service( handshakeState = "APPROVED" AND type = "ACCOUNT_MANAGEMENT"))
  • relationship(callerHasAccessToProvider() AND externalAccountId = "extAcctId" AND accountIdAlias = "alias")
  • (relationship(service(type = "ACCOUNT_MANAGEMENT") AND service(handshakeState = "PENDING"))) OR (accountName = "store" AND relationship(...))

Os filtros no nível da conta têm a seguinte semântica:

  • accountName Refere-se ao campo accountName da conta.
  • relationship(...) Isso se refere a uma relação que a conta tem com outra conta. Dentro da função, essa relação pode ser mais especificada.

Os filtros no nível relação têm a seguinte semântica:

  • providerId Refere-se ao ID numérico da conta que é o outro membro do relacionamento. Por exemplo, se o filtro precisar se limitar a contas que têm um relacionamento com a conta accounts/name/123, providerId deverá ser filtrado como providerId = 123.
  • callerHasAccessToProvider() Isso restringe as contas resultantes àquelas que têm um relacionamento com outra conta em que o usuário que fez a chamada também tem acesso ao outro membro da relação (ou ao provedor).
  • externalAccountId Refere-se ao ID da conta externa configurada para o relacionamento.
  • accountIdAlias Refere-se ao alias do ID da conta configurado para a relação.
  • service(...) Refere-se a um serviço prestado como parte do relacionamento. Observação: uma relação entre duas contas pode incluir vários serviços.

Os filtros no nível service têm a seguinte semântica:

  • handshakeState Refere-se ao estado de handshake do serviço. Quando um serviço é estabelecido, às vezes ele precisa ser aprovado pelo outro ou por ambos os membros do relacionamento primeiro. Portanto, um serviço pode estar no estado PENDING ou APPROVED.
  • type Refere-se ao tipo do serviço. Os valores possíveis são:
    • ACCOUNT_MANAGEMENT O provedor gerencia a conta.
    • ACCOUNT_AGGREGATION O provedor é um agregador da conta.

O filtro segue um subconjunto da especificação do filtro AIP e a gramática EBNF formal. A gramática desse filtro é mais restritiva e específica.

filter
    : accountFilterDisj
    | accountFilterConj
    ;
accountFilterDisj
    : "(" accountFilterConj " OR " accountFilterConj ")"
    ;
accountFilterConj
    : accountFilter {" AND " accountFilter}
    ;
accountFilter
    : accountNameFilter | relationshipFn
    ;
accountNameFilter
    : "accountName" comparator value
    ;
relationshipFn
    : "relationship(" relationshipConj ")"
    ;
relationshipConj
    : relationshipFilter {" AND " relationshipFilter}
    ;
relationshipFilter
    : "providerId = " numValue
    | "callerHasAccessToProvider()"
    | "externalAccountId" comparator value
    | "accountIdAlias" comparator value
    | serviceFn
    ;
serviceFn
    : "service(" serviceConj ")"
    ;
serviceConj
    : serviceFilter {" AND " serviceFilter}
    ;
serviceFilter
    : handshakeStateFilter
    | typeFilter
    ;
handshakeStateFilter
    : "handshakeState = " value
    ;
typeFilter
    : "type = " value
    ;
comparator
    : " = " | " != "
    ;

Além disso, o seguinte se aplica:

  • Cada campo em conjunto só pode aparecer uma vez. Por exemplo, só é possível filtrar accountName uma vez no nível da conta, ou só é possível filtrar por providerId uma vez em cada nível de relação.
  • Para campos de string (como accountName ou accountIdAlias), é possível expressar um operador CONTAINS colocando a consulta em *. Por exemplo, accountName = "*foo*" retornaria todas as contas com um accountName contendo foo. Ortogonalmente, é possível expressar um operador NOT_CONTAINS usando !=. Por exemplo, accountName != "*foo*" retornaria todas as contas com um accountName que não contém foo. Observação: é possível pesquisar contas com um accountName que contenha o caractere de estrela * usando ***.
  • Os espaços em branco adicionais são ignorados.
  • Todos os valores, exceto os numéricos, devem ser colocados entre aspas duplas.
  • Em caso de disjunção, as conjunções de cada lado precisam usar parênteses, mesmo que tenham apenas uma expressão. Parênteses não são permitidos em nenhum outro lugar, exceto para invocações de função (como relationship ou service). Isso expressa claramente que as conjunções são mais fortes do que as disjunções de maneira lógica.

Corpo da solicitação

O corpo da solicitação precisa estar vazio.

Corpo da resposta

Mensagem de resposta para o método accounts.list.

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

Representação JSON
{
  "accounts": [
    {
      object (Account)
    }
  ],
  "nextPageToken": string
}
Campos
accounts[]

object (Account)

As contas que correspondem ao ListAccountsRequest.

nextPageToken

string

Um token, que pode ser enviado como pageToken para recuperar a próxima página. Se esse campo for omitido, não haverá páginas subsequentes.

Escopos de autorização

Requer o seguinte escopo OAuth:

  • https://www.googleapis.com/auth/content

Para mais informações, consulte a Visão geral do OAuth 2.0.