npm package: @maxim_mazurok/gapi.client.merchantapi-accounts_v1
Description: TypeScript typings for Merchant API accounts_v1
Author: Maxim Mazurok
Latest version: 0.0.20260318

# TypeScript typings for Merchant API accounts_v1

Programmatically manage your Merchant Center Accounts.
For detailed description please check [documentation](https://developers.google.com/merchant/api).

## Installing

Install typings for Merchant API:

```
npm install @types/gapi.client.merchantapi-accounts_v1 --save-dev
```

## Usage

You need to initialize Google API client in your code:

```typescript
gapi.load('client', () => {
  // now we can use gapi.client
  // ...
});
```

Then load api client wrapper:

```typescript
gapi.client.load(
  'https://merchantapi.googleapis.com/$discovery/rest?version=accounts_v1',
  () => {
    // now we can use:
    // gapi.client.merchantapi
  },
);
```

```typescript
// Deprecated, use discovery document URL, see https://github.com/google/google-api-javascript-client/blob/master/docs/reference.md#----gapiclientloadname----version----callback--
gapi.client.load('merchantapi', 'accounts_v1', () => {
  // now we can use:
  // gapi.client.merchantapi
});
```

Don't forget to authenticate your client before sending any request to resources:

```typescript
// declare client_id registered in Google Developers Console
var client_id = '',
  scope = [
    // Manage your product listings and accounts for Google Shopping
    'https://www.googleapis.com/auth/content',
  ],
  immediate = true;
// ...

gapi.auth.authorize(
  {client_id: client_id, scope: scope, immediate: immediate},
  authResult => {
    if (authResult && !authResult.error) {
      /* handle successful authorization */
    } else {
      /* handle authorization error */
    }
  },
);
```

After that you can use Merchant API resources: <!-- TODO: make this work for multiple namespaces -->

```typescript
/*
Creates a Merchant Center account with additional configuration. Adds the user that makes the request as an admin for the new account.
*/
await gapi.client.merchantapi.accounts.createAndConfigure({});

/*
Creates a Merchant Center test account. Test accounts are intended for development and testing purposes, such as validating API integrations or new feature behavior. Key characteristics and limitations of test accounts: - Immutable Type: A test account cannot be converted into a regular (live) Merchant Center account. Likewise, a regular account cannot be converted into a test account. - Non-Serving Products: Any products, offers, or data created within a test account will not be published or made visible to end-users on any Google surfaces. They are strictly for testing environments. - Separate Environment: Test accounts operate in a sandbox-like manner, isolated from live serving and real user traffic.
*/
await gapi.client.merchantapi.accounts.createTestAccount({parent: 'parent'});

/*
Deletes the specified account regardless of its type: standalone, advanced account or sub-account. Deleting an advanced account leads to the deletion of all of its sub-accounts. This also deletes the account's [developer registration entity](/merchant/api/reference/rest/accounts_v1/accounts.developerRegistration) and any associated GCP project to the account. Executing this method requires admin access. The deletion succeeds only if the account does not provide services to any other account and has no processed offers. You can use the `force` parameter to override this.
*/
await gapi.client.merchantapi.accounts.delete({name: 'name'});

/*
Retrieves an account from your Merchant Center account. After inserting, updating, or deleting an account, it may take several minutes before changes take effect.
*/
await gapi.client.merchantapi.accounts.get({name: 'name'});

/*
Note: For the `accounts.list` method, quota and limits usage are charged for each user, and not for the Merchant Center ID or the advanced account ID. To list several sub-accounts, you should use the `accounts.listSubaccounts` method, which is more suitable for advanced accounts use case.
*/
await gapi.client.merchantapi.accounts.list({});

/*
List all sub-accounts for a given advanced account. This is a convenience wrapper for the more powerful `accounts.list` method. This method will produce the same results as calling `ListsAccounts` with the following filter: `relationship(providerId={parent} AND service(type="ACCOUNT_AGGREGATION"))`
*/
await gapi.client.merchantapi.accounts.listSubaccounts({provider: 'provider'});

/*
Updates an account regardless of its type: standalone, advanced account or sub-account. Executing this method requires admin access.
*/
await gapi.client.merchantapi.accounts.patch({name: 'name'});

/*
Accepts a `TermsOfService`. Executing this method requires admin access.
*/
await gapi.client.merchantapi.termsOfService.accept({name: 'name'});

/*
Retrieves the `TermsOfService` associated with the provided version.
*/
await gapi.client.merchantapi.termsOfService.get({name: 'name'});

/*
Retrieves the latest version of the `TermsOfService` for a given `kind` and `region_code`.
*/
await gapi.client.merchantapi.termsOfService.retrieveLatest({});
```

For provenance information see [Provenance section on NPM](https://www.npmjs.com/package/@maxim_mazurok/gapi.client.merchantapi-accounts_v1#Provenance:~:text=none-,Provenance,-Built%20and%20signed)