Method: accounts.list

Muestra una lista de las cuentas a las que puede acceder el usuario que emite la llamada y que coinciden con las restricciones de la solicitud, como el tamaño de la página o los filtros. Esto no es solo enumerar las cuentas secundarias de una MCA, sino que todas las cuentas a las que el usuario que realiza la llamada tiene acceso, incluidas otras MCA, cuentas vinculadas, cuentas independientes, etcétera.

Solicitud HTTP

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

La URL usa la sintaxis de la transcodificación gRPC.

Parámetros de consulta

Parámetros
pageSize

integer

Opcional. La cantidad máxima de cuentas que se mostrarán. El servicio puede mostrar menos que este valor. Si no se especifica, se devolverán 250 cuentas como máximo. El valor máximo es 500; los valores superiores a 500 se convertirán en 500.

pageToken

string

Opcional. Un token de página, recibido desde una llamada accounts.list anterior. Proporciona esto para recuperar la página siguiente.

Cuando se pagina, todos los demás parámetros proporcionados a accounts.list deben coincidir con la llamada que proporcionó el token de la página.

filter

string

Opcional. Es un filtro opcional para mostrar solo las cuentas que coinciden con el filtro.

Estos son algunos ejemplos 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(...))

Los filtros a nivel de la cuenta tienen la siguiente semántica:

  • accountName Hace referencia al campo accountName de la cuenta.
  • relationship(...) Se refiere a una relación que la cuenta tiene con otra cuenta. Dentro de la función, esta relación se puede especificar con mayor detalle.

Los filtros en el nivel de relación tienen la siguiente semántica:

  • providerId: Se refiere al ID numérico de la cuenta que es el otro miembro de la relación. Por ejemplo, si el filtro debe limitarse a las cuentas que tienen una relación con la cuenta accounts/name/123, providerId se debe filtrar como providerId = 123.
  • callerHasAccessToProvider() Esto restringirá las cuentas resultantes a aquellas que tengan una relación con otra cuenta en la que el usuario que realiza la llamada también tenga acceso al otro miembro de la relación (o al proveedor).
  • externalAccountId: Se refiere al ID de la cuenta externo que se configuró para la relación.
  • accountIdAlias: Hace referencia al alias del ID de la cuenta que se configuró para la relación.
  • service(...) Se refiere a un servicio que se proporciona como parte de la relación. Nota: Una relación entre dos cuentas puede incluir varios servicios.

Los filtros en el nivel de servicio tienen la siguiente semántica:

  • handshakeState: Hace referencia al estado del protocolo de enlace del servicio. Cuando se establece un servicio, a veces debe ser aprobado por el otro o ambos miembros de la relación primero. Por lo tanto, un servicio puede tener el estado PENDING o APPROVED.
  • type: Se refiere al tipo de servicio. Estos son los posibles valores:
    • ACCOUNT_MANAGEMENT El proveedor administra la cuenta.
    • ACCOUNT_AGGREGATION El proveedor es un agregador de la cuenta.

El filtro sigue un subconjunto de la especificación del filtro AIP y su gramática formal EBNF. La gramática de este filtro es más restrictiva y 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
    : " = " | " != "
    ;

Además, se aplica lo siguiente:

  • Cada campo combinado puede aparecer solo una vez (por ejemplo, solo es posible filtrar por accountName a nivel de la cuenta o por providerId una vez en cada nivel de relación).
  • En el caso de los campos de cadena (como accountName o accountIdAlias), es posible expresar un operador CONTAINS si encierras la consulta en *. Por ejemplo, accountName = "*foo*" mostraría todas las cuentas con un elemento accountName que contenga foo. De manera ortogonal, es posible expresar un operador NOT_CONTAINS mediante !=. Por ejemplo, accountName != "*foo*" mostraría todas las cuentas con un accountName que no contiene foo. Nota: Es posible buscar cuentas con una accountName que contenga el carácter de estrella * por medio de ***.
  • Se ignorarán los espacios en blanco adicionales.
  • Todos los valores, excepto los numéricos, deben encerrarse entre comillas dobles.
  • Si se usa una disyunción, las conjunciones de cada lado deben usar paréntesis incluso si la conjunción solo tiene una única expresión. Los paréntesis no se permiten en ningún otro lugar, excepto en invocaciones de funciones (como relationship o service). Esto es para expresar claramente que las conjunciones se vinculan más fuerte que las disyunciones lógicamente.

Cuerpo de la solicitud

El cuerpo de la solicitud debe estar vacío.

Cuerpo de la respuesta

Mensaje de respuesta para el método accounts.list.

Si se ejecuta correctamente, el cuerpo de la respuesta contiene datos con la siguiente estructura:

Representación JSON
{
  "accounts": [
    {
      object (Account)
    }
  ],
  "nextPageToken": string
}
Campos
accounts[]

object (Account)

Las cuentas que coinciden con ListAccountsRequest.

nextPageToken

string

Un token, que se puede enviar como pageToken para recuperar la página siguiente. Si se omite este campo, no habrá páginas siguientes.

Alcances de autorización

Requiere el siguiente alcance de OAuth:

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

Para obtener más información, consulta la descripción general de OAuth 2.0.