diff --git a/_data/toc/graphql.yml b/_data/toc/graphql.yml
index c958c4c1d4b..7d4feed42f0 100644
--- a/_data/toc/graphql.yml
+++ b/_data/toc/graphql.yml
@@ -71,6 +71,9 @@ pages:
- label: customAttributeMetadata query
url: /graphql/queries/custom-attribute-metadata.html
+ - label: customer query
+ url: /graphql/queries/customer.html
+
- label: customerOrders query
url: /graphql/queries/customer-orders.html
@@ -86,6 +89,9 @@ pages:
- label: getPayflowLinkToken query
url: /graphql/queries/get-payflow-link-token.html
+ - label: isEmailAvailable query
+ url: /graphql/queries/is-email-available.html
+
- label: products query
url: /graphql/queries/products.html
@@ -106,12 +112,27 @@ pages:
- label: applyStoreCreditToCart mutation
url: /graphql/mutations/apply-store-credit.html
+ - label: changeCustomerPassword mutation
+ url: /graphql/mutations/change-customer-password.html
+
+ - label: createCustomerAddress mutation
+ url: /graphql/mutations/create-customer-address.html
+
+ - label: createCustomer mutation
+ url: /graphql/mutations/create-customer.html
+
- label: createPayflowProToken mutation
url: /graphql/mutations/create-payflow-pro-token.html
+ - label: deleteCustomerAddress mutation
+ url: /graphql/mutations/delete-customer-address.html
+
- label: deletePaymentToken mutation
url: /graphql/mutations/delete-payment-token.html
+ - label: generateCustomerToken mutation
+ url: /graphql/mutations/generate-customer-token.html
+
- label: handlePayflowProResponse mutation
url: /graphql/mutations/handle-payflow-pro-response.html
@@ -124,6 +145,15 @@ pages:
- label: removeStoreCreditFromCart mutation
url: /graphql/mutations/remove-store-credit.html
+ - label: revokeCustomerToken mutation
+ url: /graphql/mutations/revoke-customer-token.html
+
+ - label: updateCustomerAddress mutation
+ url: /graphql/mutations/update-customer-address.html
+
+ - label: updateCustomer mutation
+ url: /graphql/mutations/update-customer.html
+
- label: Product data types and interfaces
children:
- label: Product interface implementations
@@ -149,9 +179,6 @@ pages:
- label: Reference
children:
- - label: Customer endpoint
- url: /graphql/reference/customer.html
-
- label: Quote endpoint (cart query)
url: /graphql/reference/quote.html
children:
diff --git a/_includes/graphql/create-customer.md b/_includes/graphql/create-customer.md
new file mode 100644
index 00000000000..c24a21b29cf
--- /dev/null
+++ b/_includes/graphql/create-customer.md
@@ -0,0 +1,13 @@
+Attribute | Data Type | Description
+--- | --- | ---
+`dob` | String | The customer’s date of birth
+`email` | String | The customer’s email address. Required to create a customer
+`firstname` | String | The customer’s first name. Required to create a customer
+`gender` | Int | The customer's gender (Male - 1, Female - 2)
+`is_subscribed` | Boolean | The customer's new password
+`lastname` | String | The customer’s last name. Required to create a customer
+`middlename` | String | The customer’s middle name
+`password` | String | The customer's password. Required to create a customer
+`prefix` | String | An honorific, such as Dr., Mr., or Mrs.
+`suffix` | String | A value such as Sr., Jr., or III
+`taxvat` | String | The customer’s Tax/VAT number (for corporate customers)
\ No newline at end of file
diff --git a/_includes/graphql/customer-address-input.md b/_includes/graphql/customer-address-input.md
new file mode 100644
index 00000000000..cefbe8d9a39
--- /dev/null
+++ b/_includes/graphql/customer-address-input.md
@@ -0,0 +1,46 @@
+### CustomerAddress input {#customerAddressInput}
+
+The `CustomerAddress` input can contain the following attributes:
+
+Attribute | Data Type | Description
+--- | --- | ---
+`city` | String | The city or town
+`company` | String | The customer's company
+`country_id` | String | The customer's country
+`custom_attributes` | [CustomerAddressAttribute](#customerAddressAttributeInput) | Address custom attributes
+`customer_id` | Int | The customer ID
+`default_billing` | Boolean | Indicates whether the address is the default billing address
+`default_shipping` | Boolean | Indicates whether the address is the default shipping address
+`extension_attributes` | [CustomerAddressAttribute](#customerAddressAttributeInput) | Address extension attributes
+`fax` | String | The fax number
+`firstname` | String | The first name of the person associated with the shipping/billing address
+`id` | Int | The ID assigned to the address object
+`lastname` | String | The family name of the person associated with the shipping/billing address
+`middlename` | String | The middle name of the person associated with the shipping/billing address
+`postcode` | String | The customer's ZIP or postal code
+`prefix` | String | An honorific, such as Dr., Mr., or Mrs.
+`region` | [CustomerAddressRegion](#customerAddressRegionInput) | An object that defines the customer's state or province
+`region_id` | Int | A number that uniquely identifies the state, province, or other area
+`street` | [String] | An array of strings that define the street number and name
+`suffix` | String | A value such as Sr., Jr., or III
+`telephone` | String | The telephone number
+`vat_id` | String | The customer's Tax/VAT number (for corporate customers)
+
+### CustomerAddressAttribute input {#customerAddressAttributeInput}
+
+The `CustomerAddressAttribute` input can contain the following attributes:
+
+Attribute | Data Type | Description
+--- | --- | ---
+`attribute_code` | String | Attribute code
+`value` | String | Attribute value
+
+### CustomerAddressRegion input {#customerAddressRegionInput}
+
+The `customerAddressRegion` input can contain the following attributes:
+
+Attribute | Data Type | Description
+--- | --- | ---
+`region_code` | String | The address region code
+`region` | String | The state or province name
+`region_id` | Int | Uniquely identifies the region
\ No newline at end of file
diff --git a/_includes/graphql/customer-address-output.md b/_includes/graphql/customer-address-output.md
new file mode 100644
index 00000000000..cc96fdc532e
--- /dev/null
+++ b/_includes/graphql/customer-address-output.md
@@ -0,0 +1,48 @@
+### CustomerAddress output {#customerAddressOutput}
+
+The values assigned to attributes such as `firstname` and `lastname` in this object may be different from those defined in the `Customer` object.
+
+The `CustomerAddress` output returns the following attributes:
+
+Attribute | Data Type | Description
+--- | --- | ---
+`city` | String | The city or town
+`company` | String | The customer's company
+`country_id` | String | The customer's country
+`custom_attributes` | [CustomerAddressAttribute](#customerAddressAttributeOutput) | Address custom attributes
+`customer_id` | Int | The customer ID
+`default_billing` | Boolean | Indicates whether the address is the default billing address
+`default_shipping` | Boolean | Indicates whether the address is the default shipping address
+`extension_attributes` | [CustomerAddressAttribute](#customerAddressAttributeOutput) | Address extension attributes
+`fax` | String | The fax number
+`firstname` | String | The first name of the person associated with the shipping/billing address
+`id` | Int | The ID assigned to the address object
+`lastname` | String | The family name of the person associated with the shipping/billing address
+`middlename` | String | The middle name of the person associated with the shipping/billing address
+`postcode` | String | The customer's ZIP or postal code
+`prefix` | String | An honorific, such as Dr., Mr., or Mrs.
+`region` | [CustomerAddressRegion](#customerAddressRegionOutput) | An object that defines the customer's state or province
+`region_id` | Int | A number that uniquely identifies the state, province, or other area
+`street` | [String] | An array of strings that define the street number and name
+`suffix` | String | A value such as Sr., Jr., or III
+`telephone` | String | The telephone number
+`vat_id` | String | The customer's Tax/VAT number (for corporate customers)
+
+### CustomerAddressAttribute output {#customerAddressAttributeOutput}
+
+The `CustomerAddressAttribute` output returns the following attributes:
+
+Attribute | Data Type | Description
+--- | --- | ---
+`attribute_code` | String | Attribute code
+`value` | String | Attribute value
+
+### CustomerAddressRegion output {#customerAddressRegionOutput}
+
+The `customerAddressRegion` output returns the following attributes:
+
+Attribute | Data Type | Description
+--- | --- | ---
+`region_code` | String | The address region code
+`region` | String | The state or province name
+`region_id` | Int | Uniquely identifies the region
\ No newline at end of file
diff --git a/_includes/graphql/customer-input.md b/_includes/graphql/customer-input.md
new file mode 100644
index 00000000000..265b1030ebf
--- /dev/null
+++ b/_includes/graphql/customer-input.md
@@ -0,0 +1,20 @@
+Attribute | Data Type | Description
+--- | --- | ---
+`addresses` | [CustomerAddress](#customerAddressInput) | An array containing the customer's shipping and billing addresses
+`created_at` | String | Timestamp indicating when the account was created
+`default_billing` | String | The ID assigned to the billing address
+`default_shipping` | String | The ID assigned to the shipping address
+`dob` | String | The customer's date of birth
+`email` | String | The customer's email address
+`firstname` | String | The customer's first name
+`gender` | Int | The customer's gender (Male - 1, Female - 2)
+`group_id` | Int | The group assigned to the user. Default values are 0 (Not logged in), 1 (General), 2 (Wholesale), and 3 (Retailer)
+`id` | Int | The ID assigned to the customer
+`is_subscribed` | Boolean | Indicates whether the customer is subscribed to the company's newsletter
+`lastname` | String | The customer's family name
+`middlename` |String | The customer's middle name
+`prefix` | String | An honorific, such as Dr., Mr., or Mrs.
+`suffix` | String | A value such as Sr., Jr., or III
+`taxvat` | String | The customer's Tax/VAT number (for corporate customers)
+
+{% include graphql/customer-address-input.md %}
\ No newline at end of file
diff --git a/_includes/graphql/customer-output.md b/_includes/graphql/customer-output.md
new file mode 100644
index 00000000000..7b5d6061627
--- /dev/null
+++ b/_includes/graphql/customer-output.md
@@ -0,0 +1,20 @@
+Attribute | Data Type | Description
+--- | --- | ---
+`addresses` | [CustomerAddress](#customerAddressOutput) | An array containing the customer's shipping and billing addresses
+`created_at` | String | Timestamp indicating when the account was created
+`default_billing` | String | The ID assigned to the billing address
+`default_shipping` | String | The ID assigned to the shipping address
+`dob` | String | The customer's date of birth
+`email` | String | The customer's email address
+`firstname` | String | The customer's first name
+`gender` | Int | The customer's gender (Male - 1, Female - 2)
+`group_id` | Int | The group assigned to the user. Default values are 0 (Not logged in), 1 (General), 2 (Wholesale), and 3 (Retailer)
+`id` | Int | The ID assigned to the customer
+`is_subscribed` | Boolean | Indicates whether the customer is subscribed to the company's newsletter
+`lastname` | String | The customer's family name
+`middlename` |String | The customer's middle name
+`prefix` | String | An honorific, such as Dr., Mr., or Mrs.
+`suffix` | String | A value such as Sr., Jr., or III
+`taxvat` | String | The customer's Tax/VAT number (for corporate customers)
+
+{% include graphql/customer-address-output.md %}
\ No newline at end of file
diff --git a/guides/v2.3/graphql/get-customer-authorization-token.md b/guides/v2.3/graphql/get-customer-authorization-token.md
index 07ee1d959db..fe5deea770a 100644
--- a/guides/v2.3/graphql/get-customer-authorization-token.md
+++ b/guides/v2.3/graphql/get-customer-authorization-token.md
@@ -35,4 +35,4 @@ You can now use this token in the Authorization request header field for any que

-If necessary, you also can [revoke the customer's token]({{ page.baseurl }}/graphql/reference/customer.html#revoke-a-customer-token).
+If necessary, you also can [revoke the customer's token]({{ page.baseurl }}/graphql/mutations/revoke-customer-token.html).
diff --git a/guides/v2.3/graphql/mutations/apply-store-credit.md b/guides/v2.3/graphql/mutations/apply-store-credit.md
index cedc2f316d2..d6790da7e95 100644
--- a/guides/v2.3/graphql/mutations/apply-store-credit.md
+++ b/guides/v2.3/graphql/mutations/apply-store-credit.md
@@ -91,7 +91,7 @@ Attribute | Data Type | Description
## Output attributes
-The `ApplyStoreCreditToCartOutput` object contains the `Cart` object.
+The `ApplyStoreCreditToCartOutput` object returns the `Cart` object.
Attribute | Data Type | Description
--- | --- | ---
diff --git a/guides/v2.3/graphql/mutations/change-customer-password.md b/guides/v2.3/graphql/mutations/change-customer-password.md
new file mode 100644
index 00000000000..d61f3eac03e
--- /dev/null
+++ b/guides/v2.3/graphql/mutations/change-customer-password.md
@@ -0,0 +1,64 @@
+---
+group: graphql
+title: changeCustomerPassword mutation
+---
+
+Use the `changeCustomerPassword` mutation to change the password for the logged-in customer.
+
+To return or modify information about a customer, Magento recommends you use customer tokens in the header of your GraphQL calls. However, you also can use [session authentication]({{ page.baseurl }}/get-started/authentication/gs-authentication-session.html).
+
+## Syntax
+
+`mutation: {changeCustomerPassword(currentPassword: String!newPassword: String!) {Customer}}`
+
+## Example usage
+
+The following call updates the customer's password.
+
+**Request**
+
+```graphql
+mutation {
+ changeCustomerPassword(
+ currentPassword: "roni_cost3@example.com"
+ newPassword: "roni_cost4@example.com"
+ ) {
+ id
+ email
+ }
+}
+```
+
+**Response**
+
+```json
+{
+ "data": {
+ "changeCustomerPassword": {
+ "id": 1,
+ "email": "roni_cost@example.com"
+ }
+ }
+}
+```
+
+## Input attributes
+
+The `changeCustomerPassword` object requires the following inputs:
+
+Attribute | Data Type | Description
+--- | --- | ---
+`currentPassword` | String | The customer's current password
+`newPassword` | String | The customer's new password
+
+## Output attributes
+
+The `changeCustomerPassword` mutation returns the `customer` object.
+
+{% include graphql/customer-output.md %}
+
+## Related topics
+
+* [customer query]({{page.baseurl}}/graphql/queries/customer.html)
+* [createCustomer mutation]({{page.baseurl}}/graphql/mutations/create-customer.html)
+* [updateCustomer mutation]({{page.baseurl}}/graphql/mutations/update-customer.html)
diff --git a/guides/v2.3/graphql/mutations/create-customer-address.md b/guides/v2.3/graphql/mutations/create-customer-address.md
new file mode 100644
index 00000000000..2efe62e82c9
--- /dev/null
+++ b/guides/v2.3/graphql/mutations/create-customer-address.md
@@ -0,0 +1,104 @@
+---
+group: graphql
+title: createCustomerAddress mutation
+---
+
+Use the `createCustomerAddress` mutation to create the customer's address.
+
+To return or modify information about a customer, Magento recommends you use customer tokens in the header of your GraphQL calls. However, you also can use [session authentication]({{ page.baseurl }}/get-started/authentication/gs-authentication-session.html).
+
+## Syntax
+
+`mutation: {createCustomerAddress(input: CustomerAddressInput!) {CustomerAddress}}`
+
+## Example usage
+
+The following call creates an address for the specified customer.
+
+**Request**
+
+```graphql
+mutation {
+ createCustomerAddress(input: {
+ region: {
+ region: "Arizona"
+ region_id: 4
+ region_code: "AZ"
+ }
+ country_id: US
+ street: ["123 Main Street"]
+ telephone: "7777777777"
+ postcode: "77777"
+ city: "Phoenix"
+ firstname: "Bob"
+ lastname: "Loblaw"
+ default_shipping: true
+ default_billing: false
+ }) {
+ id
+ customer_id
+ region {
+ region
+ region_id
+ region_code
+ }
+ country_id
+ street
+ telephone
+ postcode
+ city
+ default_shipping
+ default_billing
+ }
+}
+```
+
+**Response**
+
+```json
+{
+ "data": {
+ "createCustomerAddress": {
+ "id": 4,
+ "customer_id": 5,
+ "region": {
+ "region": "Arizona",
+ "region_id": 4,
+ "region_code": "AZ"
+ },
+ "country_id": "US",
+ "street": [
+ "123 Main Street"
+ ],
+ "telephone": "7777777777",
+ "postcode": "77777",
+ "city": "Phoenix",
+ "default_shipping": true,
+ "default_billing": false
+ }
+ }
+}
+```
+
+## Input attributes
+
+Attribute | Data Type | Description
+--- | --- | ---
+`id` | Int | The ID assigned to the address object
+`CustomerAddressInput` | [CustomerAddress](#customerAddressInput) | An array containing the customer’s shipping and billing addresses
+
+{% include graphql/customer-address-input.md %}
+
+## Output attributes
+
+The `createCustomerAddress` mutation returns the following attributes:
+
+{% include graphql/customer-address-output.md %}
+
+## Related topics
+
+* [customer query]({{page.baseurl}}/graphql/queries/customer.html)
+* [createCustomer mutation]({{page.baseurl}}/graphql/mutations/create-customer.html)
+* [updateCustomer mutation]({{page.baseurl}}/graphql/mutations/update-customer.html)
+* [updateCustomerAddress mutation]({{page.baseurl}}/graphql/mutations/update-customer-address.html)
+* [deleteCustomerAddress mutation]({{page.baseurl}}/graphql/mutations/delete-customer-address.html)
diff --git a/guides/v2.3/graphql/mutations/create-customer.md b/guides/v2.3/graphql/mutations/create-customer.md
new file mode 100644
index 00000000000..d141f120a24
--- /dev/null
+++ b/guides/v2.3/graphql/mutations/create-customer.md
@@ -0,0 +1,78 @@
+---
+group: graphql
+title: createCustomer mutation
+---
+
+Use the `createCustomer` mutation to create a new customer.
+
+To return or modify information about a customer, Magento recommends you use customer tokens in the header of your GraphQL calls. However, you also can use [session authentication]({{ page.baseurl }}/get-started/authentication/gs-authentication-session.html).
+
+## Syntax
+
+`mutation: {createCustomer(input: CustomerInput!) {CustomerOutput}}`
+
+## Example usage
+
+The following call creates a new customer.
+
+**Request**
+
+```graphql
+mutation {
+ createCustomer(
+ input: {
+ firstname: "Bob"
+ lastname: "Loblaw"
+ email: "bobloblaw@example.com"
+ password: "b0bl0bl@w"
+ is_subscribed: true
+ }
+ ) {
+ customer {
+ id
+ firstname
+ lastname
+ email
+ is_subscribed
+ }
+ }
+}
+```
+
+**Response**
+
+```json
+{
+ "data": {
+ "createCustomer": {
+ "customer": {
+ "id": 5,
+ "firstname": "Bob",
+ "lastname": "Loblaw",
+ "email": "bobloblaw@example.com",
+ "is_subscribed": true
+ }
+ }
+ }
+}
+```
+
+## Input attributes
+
+The following table lists the attributes you can use as input for the `createCustomer` mutation. The [Customer attributes]({{page.baseurl}}/graphql/queries/customer.html#customerAttributes) table lists the attributes Magento returns.
+
+{% include graphql/create-customer.md %}
+
+## Output attributes
+
+The `createCustomer` mutation returns the `CustomerOutput` object.
+
+{% include graphql/customer-output.md %}
+
+## Related topics
+
+* [customer query]({{page.baseurl}}/graphql/queries/customer.html)
+* [updateCustomer mutation]({{page.baseurl}}/graphql/mutations/update-customer.html)
+* [createCustomerAddress mutation]({{page.baseurl}}/graphql/mutations/create-customer-address.html)
+* [updateCustomerAddress mutation]({{page.baseurl}}/graphql/mutations/update-customer-address.html)
+* [deleteCustomerAddress mutation]({{page.baseurl}}/graphql/mutations/delete-customer-address.html)
diff --git a/guides/v2.3/graphql/mutations/delete-customer-address.md b/guides/v2.3/graphql/mutations/delete-customer-address.md
new file mode 100644
index 00000000000..dc74d630904
--- /dev/null
+++ b/guides/v2.3/graphql/mutations/delete-customer-address.md
@@ -0,0 +1,50 @@
+---
+group: graphql
+title: deleteCustomerAddress mutation
+---
+
+Use the `deleteCustomerAddress` mutation to delete the specified customer address.
+
+To return or modify information about a customer, Magento recommends you use customer tokens in the header of your GraphQL calls. However, you also can use [session authentication]({{ page.baseurl }}/get-started/authentication/gs-authentication-session.html).
+
+## Syntax
+
+`mutation: {deleteCustomerAddress(id: Int!) {Boolean}}`
+
+## Example usage
+
+The following call deletes a customer's address.
+
+**Request**
+
+```graphql
+mutation {
+ deleteCustomerAddress(id: 4)
+}
+```
+
+**Response**
+
+```json
+{
+ "data": {
+ "deleteCustomerAddress": true
+ }
+}
+```
+
+## Input attributes
+
+The `deleteCustomerAddress` object requires the following input:
+
+Attribute | Data Type | Description
+--- | --- | ---
+`id` | Int! | The ID assigned to the address object
+
+## Related topics
+
+* [customer query]({{page.baseurl}}/graphql/queries/customer.html)
+* [createCustomer mutation]({{page.baseurl}}/graphql/mutations/create-customer.html)
+* [updateCustomer mutation]({{page.baseurl}}/graphql/mutations/update-customer.html)
+* [createCustomerAddress mutation]({{page.baseurl}}/graphql/mutations/create-customer-address.html)
+* [updateCustomerAddress mutation]({{page.baseurl}}/graphql/mutations/update-customer-address.html)
diff --git a/guides/v2.3/graphql/mutations/delete-payment-token.md b/guides/v2.3/graphql/mutations/delete-payment-token.md
index f9715a36246..791198a10a5 100644
--- a/guides/v2.3/graphql/mutations/delete-payment-token.md
+++ b/guides/v2.3/graphql/mutations/delete-payment-token.md
@@ -65,7 +65,7 @@ The top-level `DeletePaymentTokenOutput` object is listed first. All child objec
### DeletePaymentTokenOutput attributes
-The `DeletePaymentTokenOutput` object contains the result of the operation and details about the remaining customer payment tokens.
+The `DeletePaymentTokenOutput` object returns the result of the operation and details about the remaining customer payment tokens.
Attribute | Data Type | Description
--- | --- | ---
diff --git a/guides/v2.3/graphql/mutations/generate-customer-token.md b/guides/v2.3/graphql/mutations/generate-customer-token.md
new file mode 100644
index 00000000000..5ec8d415ef9
--- /dev/null
+++ b/guides/v2.3/graphql/mutations/generate-customer-token.md
@@ -0,0 +1,55 @@
+---
+group: graphql
+title: generateCustomerToken mutation
+---
+
+Use the `generateCustomerToken` mutation to create a new customer token.
+
+To return or modify information about a customer, Magento recommends you use customer tokens in the header of your GraphQL calls. However, you also can use [session authentication]({{ page.baseurl }}/get-started/authentication/gs-authentication-session.html).
+
+## Syntax
+
+`mutation: {generateCustomerToken(email: String!password: String!) {CustomerToken}}`
+
+## Example usage
+
+The following call creates a new customer token.
+
+**Request**
+
+```graphql
+mutation {
+ generateCustomerToken(
+ email: "bobloblaw@example.com"
+ password: "b0bl0bl@w"
+ ) {
+ token
+ }
+}
+```
+
+**Response**
+
+```json
+{
+ "data": {
+ "generateCustomerToken": {
+ "token": "ar4116zozoagxty1xjn4lj13kim36r6x"
+ }
+ }
+}
+```
+
+## Input attributes
+
+The `generateCustomerToken` object requires the following inputs:
+
+Attribute | Data Type | Description
+--- | --- | ---
+`email` | String | The customer's email address
+`password` | String | The customer's password
+
+## Related topics
+
+* [customer query]({{page.baseurl}}/graphql/queries/customer.html)
+* [revokeCustomerToken mutation]({{page.baseurl}}/graphql/mutations/revoke-customer-token.html)
diff --git a/guides/v2.3/graphql/mutations/remove-store-credit.md b/guides/v2.3/graphql/mutations/remove-store-credit.md
index 661fabb9b64..f43ab640c00 100644
--- a/guides/v2.3/graphql/mutations/remove-store-credit.md
+++ b/guides/v2.3/graphql/mutations/remove-store-credit.md
@@ -84,7 +84,7 @@ Attribute | Data Type | Description
## Output attributes
-The `RemoveStoreCreditFromCartOutput` object contains the `Cart` object.
+The `RemoveStoreCreditFromCartOutput` object returns the `Cart` object.
Attribute | Data Type | Description
--- | --- | ---
diff --git a/guides/v2.3/graphql/mutations/revoke-customer-token.md b/guides/v2.3/graphql/mutations/revoke-customer-token.md
new file mode 100644
index 00000000000..b32dac19d90
--- /dev/null
+++ b/guides/v2.3/graphql/mutations/revoke-customer-token.md
@@ -0,0 +1,49 @@
+---
+group: graphql
+title: revokeCustomerToken mutation
+---
+
+Use the `revokeCustomerToken` mutation to revokes the customer's token.
+
+To return or modify information about a customer, Magento recommends you use customer tokens in the header of your GraphQL calls. However, you also can use [session authentication]({{ page.baseurl }}/get-started/authentication/gs-authentication-session.html).
+
+## Syntax
+
+`mutation: {revokeCustomerToken: RevokeCustomerTokenOutput}`
+
+## Example usage
+
+The following call revokes the customer's token.
+
+**Request**
+
+```graphql
+mutation {
+ revokeCustomerToken {
+ result
+ }
+}
+```
+
+**Response**
+
+```json
+{
+ "data": {
+ "revokeCustomerToken": {
+ "result": true
+ }
+ }
+}
+```
+
+## Output attributes
+
+Attribute | Data Type | Description
+--- | --- | ---
+`result` | Boolean! | Returns `true` if the token was successfully revoked
+
+## Related topics
+
+* [customer query]({{page.baseurl}}/graphql/queries/customer.html)
+* [generateCustomerToken mutation]({{page.baseurl}}/graphql/mutations/generate-customer-token.html)
diff --git a/guides/v2.3/graphql/mutations/update-customer-address.md b/guides/v2.3/graphql/mutations/update-customer-address.md
new file mode 100644
index 00000000000..f861d247a54
--- /dev/null
+++ b/guides/v2.3/graphql/mutations/update-customer-address.md
@@ -0,0 +1,70 @@
+---
+group: graphql
+title: updateCustomerAddress mutation
+---
+
+Use the `updateCustomerAddress` mutation to update the customer's address.
+
+To return or modify information about a customer, Magento recommends you use customer tokens in the header of your GraphQL calls. However, you also can use [session authentication]({{ page.baseurl }}/get-started/authentication/gs-authentication-session.html).
+
+## Syntax
+
+`mutation: {updateCustomerAddress(id: Int!input: CustomerAddressInput) {CustomerAddress}}`
+
+## Example usage
+
+The following call updates the customer's city and postcode.
+
+**Request**
+
+```graphql
+mutation {
+ updateCustomerAddress(id:3, input: {
+ city: "New City"
+ postcode: "55555"
+ }) {
+ id
+ city
+ postcode
+ }
+}
+```
+
+**Response**
+
+```json
+{
+ "data": {
+ "updateCustomerAddress": {
+ "id": 3,
+ "city": "New City",
+ "postcode": 55555
+ }
+ }
+}
+```
+
+## Input attributes
+
+The `updateCustomerAddress` object contains the following inputs:
+
+Attribute | Data Type | Description
+--- | --- | ---
+`id` | Int! | The ID assigned to the address object
+`CustomerAddressInput` | [CustomerAddress](#customerAddressInput)| An array containing the customer’s shipping and billing addresses
+
+{% include graphql/customer-address-input.md %}
+
+## Output attributes
+
+The `updateCustomerAddress` mutation returns the `CustomerAddress` object.
+
+{% include graphql/customer-address-output.md %}
+
+## Related topics
+
+* [customer query]({{page.baseurl}}/graphql/queries/customer.html)
+* [createCustomer mutation]({{page.baseurl}}/graphql/mutations/create-customer.html)
+* [updateCustomer mutation]({{page.baseurl}}/graphql/mutations/update-customer.html)
+* [createCustomerAddress mutation]({{page.baseurl}}/graphql/mutations/create-customer-address.html)
+* [deleteCustomerAddress mutation]({{page.baseurl}}/graphql/mutations/delete-customer-address.html)
diff --git a/guides/v2.3/graphql/mutations/update-customer.md b/guides/v2.3/graphql/mutations/update-customer.md
new file mode 100644
index 00000000000..45b94e18ded
--- /dev/null
+++ b/guides/v2.3/graphql/mutations/update-customer.md
@@ -0,0 +1,69 @@
+---
+group: graphql
+title: updateCustomer mutation
+---
+
+Use the `updateCustomer` mutation to update the customer's personal information.
+
+To return or modify information about a customer, Magento recommends you use customer tokens in the header of your GraphQL calls. However, you also can use [session authentication]({{ page.baseurl }}/get-started/authentication/gs-authentication-session.html).
+
+## Syntax
+
+`mutation: {updateCustomer(input: CustomerInput!) {CustomerOutput}}`
+
+## Example usage
+
+The following call updates the first name and email address for a specific customer.
+
+**Request**
+
+```graphql
+mutation {
+ updateCustomer(
+ input: {
+ firstname: "Rob"
+ email: "robloblaw@example.com"
+ }
+ ) {
+ customer {
+ firstname
+ email
+ }
+ }
+}
+```
+
+**Response**
+
+```json
+{
+ "data": {
+ "updateCustomer": {
+ "customer": {
+ "firstname": "Rob",
+ "email": "robloblaw@example.com"
+ }
+ }
+ }
+}
+```
+
+## Input attributes
+
+The following table lists the attributes you can use as input for the `updateCustomer` mutation. The [Customer attributes]({{page.baseurl}}/graphql/queries/customer.html#customerAttributes) table lists the attributes Magento returns.
+
+{% include graphql/create-customer.md %}
+
+## Output attributes
+
+The `updateCustomer` mutation returns the `CustomerOutput` object.
+
+{% include graphql/customer-output.md %}
+
+## Related topics
+
+* [customer query]({{page.baseurl}}/graphql/queries/customer.html)
+* [createCustomer mutation]({{page.baseurl}}/graphql/mutations/create-customer.html)
+* [createCustomerAddress mutation]({{page.baseurl}}/graphql/mutations/create-customer-address.html)
+* [updateCustomerAddress mutation]({{page.baseurl}}/graphql/mutations/update-customer-address.html)
+* [deleteCustomerAddress mutation]({{page.baseurl}}/graphql/mutations/delete-customer-address.html)
diff --git a/guides/v2.3/graphql/queries/customer.md b/guides/v2.3/graphql/queries/customer.md
new file mode 100644
index 00000000000..f50cc687c28
--- /dev/null
+++ b/guides/v2.3/graphql/queries/customer.md
@@ -0,0 +1,246 @@
+---
+group: graphql
+title: customer query
+redirect_from:
+ - /guides/v2.3/graphql/reference/customer.html
+---
+
+The `customer` query returns information about the logged-in customer and store credit history.
+
+To return or modify information about a customer, Magento recommends you use customer tokens in the header of your GraphQL calls. However, you also can use [session authentication]({{ page.baseurl }}/get-started/authentication/gs-authentication-session.html).
+
+## Syntax
+
+`{customer: {Customer}}`
+
+## Example usage
+
+### Retrieving the logged-in customer
+
+The following call returns information about the logged-in customer. Provide the customer's token in the header section of the query.
+
+**Request**
+
+```graphql
+{
+ customer {
+ firstname
+ lastname
+ suffix
+ email
+ id
+ addresses {
+ firstname
+ lastname
+ street
+ city
+ region {
+ region_code
+ region
+ region_id
+ }
+ postcode
+ country_id
+ telephone
+ }
+ }
+}
+```
+
+**Response**
+
+```json
+{
+ "data": {
+ "customer": {
+ "firstname": "John",
+ "lastname": "Doe",
+ "suffix": null,
+ "email": "jdoe@example.com",
+ "id": 3,
+ "addresses": [
+ {
+ "firstname": "John",
+ "lastname": "Doe",
+ "street": [
+ "123 Elm Street"
+ ],
+ "city": "Anytown",
+ "region": {
+ "region_code": "MI",
+ "region": "Michigan",
+ "region_id": 33
+ }
+ "postcode": "78758",
+ "country_id": "US",
+ "telephone": "512 555-1212"
+ }
+ ]
+ }
+ }
+}
+```
+
+### Retrieving the store credit history
+
+The following example returns the store credit history for the logged-in user.
+
+**Request**
+
+```graphql
+query {
+ customer {
+ firstname
+ lastname
+ store_credit {
+ enabled
+ balance_history(pageSize: 10) {
+ items {
+ action
+ actual_balance {
+ currency
+ value
+ }
+ balance_change {
+ currency
+ value
+ }
+ date_time_changed
+ }
+ page_info {
+ page_size
+ current_page
+ total_pages
+ }
+ total_count
+ }
+ current_balance {
+ currency
+ value
+ }
+ }
+ }
+}
+```
+
+**Response**
+
+```json
+{
+ "data": {
+ "customer": {
+ "firstname": "John",
+ "lastname": "Doe",
+ "store_credit": {
+ "enabled": true,
+ "balance_history": {
+ "items": [
+ {
+ "action": "Updated",
+ "actual_balance": {
+ "currency": "USD",
+ "value": 10
+ },
+ "balance_change": {
+ "currency": "USD",
+ "value": -100
+ },
+ "date_time_changed": "2019-07-15 21:47:59"
+ },
+ {
+ "action": "Updated",
+ "actual_balance": {
+ "currency": "USD",
+ "value": 110
+ },
+ "balance_change": {
+ "currency": "USD",
+ "value": 10
+ },
+ "date_time_changed": "2019-07-15 21:47:18"
+ },
+ {
+ "action": "Created",
+ "actual_balance": {
+ "currency": "USD",
+ "value": 100
+ },
+ "balance_change": {
+ "currency": "USD",
+ "value": 100
+ },
+ "date_time_changed": "2019-07-15 16:31:05"
+ }
+ ],
+ "page_info": {
+ "page_size": 10,
+ "current_page": 1,
+ "total_pages": 1
+ },
+ "total_count": 3
+ },
+ "current_balance": {
+ "currency": "USD",
+ "value": 10
+ }
+ }
+ }
+ }
+}
+```
+
+## Output attributes
+
+### Customer attributes {#customerAttributes}
+
+The `customer` object can contain the following attributes:
+
+{% include graphql/customer-output.md %}
+
+### Store credit attributes
+
+In {{site.data.var.ee}}, the merchant can assign store credit to customers. Magento maintains the history of all changes to the balance of store credit available to the customer. The customer must be logged in to access the store credit history and balance.
+
+Store credits must be enabled to return store credit attributes. If store credits are disabled after previously being enabled, the query returns the customer's current balance as null.
+
+Attribute | Data Type | Description
+--- | --- | ---
+`store_credit` | [CustomerStoreCredit](#CustomerStoreCredit) | Contains the store credit information for the logged-in customer
+
+### CustomerStoreCredit attributes {#CustomerStoreCredit}
+
+The `store_credit` object contains store credit information, including the balance and history.
+
+Attribute | Data Type | Description
+--- | --- | ---
+`balance_history` | [`CustomerStoreCreditHistory`](#CustomerStoreCreditHistory) | Lists changes to the amount of store credit available to the customer. If the history or store credit feature is disabled, then a null value will be returned.
You can specify the following optional parameters to control paging in the output.
`pageSize` - An integer that specifies the maximum number of results to return at once. The default value is 20.
`currentPage` - An integer that specifies which page of the results to return. The default value is 1
+`current_balance` | Money | The current store credit balance
+`enabled` | Boolean | Indicates whether store credits are enabled. If the feature is disabled, then the balance will not be returned
+
+### CustomerStoreCreditHistory attributes {#CustomerStoreCreditHistory}
+
+The `CustomerStoreCreditHistory` object contains an array of store credit items and paging information. If the store credit or store credit history feature is disabled, then a null value will be returned.
+
+Attribute | Data Type | Description
+--- | --- | ---
+`items` | [[`CustomerStoreCreditHistoryItem`](#CustomerStoreCreditHistoryItem)] | An array of products that match the specified search criteria
+`page_info` | SearchResultPageInfo | An object that includes the `page_size` and `current_page` values specified in the query
+`total_count` | Int | The number of items returned
+
+### CustomerStoreCreditHistoryItem attributes {#CustomerStoreCreditHistoryItem}
+
+The `CustomerStoreCreditHistoryItem` object contains information about a specific change to the customer's store credit.
+
+Attribute | Data Type | Description
+--- | --- | ---
+`action` | String | The action taken on the customer's store credit
+`actual_balance` | Money | The store credit available to the customer as a result of this action
+`balance_change` | Money | The amount added to or subtracted from the store credit as a result of this action
+`date_time_changed` | String | Date and time when the store credit change was made
+
+## Related topics
+
+* [isEmailAvailable query]({{page.baseurl}}/graphql/queries/is-email-available.html)
+* [generateCustomerToken mutation]({{page.baseurl}}/graphql/mutations/generate-customer-token.html)
+* [createCustomer mutation]({{page.baseurl}}/graphql/mutations/create-customer.html)
+* [createCustomerAddress mutation]({{page.baseurl}}/graphql/mutations/create-customer-address.html)
diff --git a/guides/v2.3/graphql/queries/is-email-available.md b/guides/v2.3/graphql/queries/is-email-available.md
new file mode 100644
index 00000000000..3612c2dbf50
--- /dev/null
+++ b/guides/v2.3/graphql/queries/is-email-available.md
@@ -0,0 +1,52 @@
+---
+group: graphql
+title: isEmailAvailable query
+---
+
+The `isEmailAvailable` query checks whether the specified email has already been used to create a customer account. A value of `true` indicates the email address is available, and the customer can use the email address to create an account.
+
+## Syntax
+
+`{isEmailAvailable (email): {IsEmailAvailableOutput}}`
+
+## Example usage
+
+The following example checks whether the email address `customer@example.com` is available to create a customer account.
+
+**Request**
+
+```graphql
+{
+ isEmailAvailable(email: "customer@example.com") {
+ is_email_available
+ }
+}
+```
+
+**Response**
+
+```json
+{
+ "data": {
+ "isEmailAvailable": {
+ "is_email_available": true
+ }
+ }
+}
+```
+
+## Input attribute
+
+Attribute | Data Type | Description
+--- | --- | ---
+`email` | String! | The email address to check
+
+## Output attribute
+
+Attribute | Data Type | Description
+--- | --- | ---
+`is_email_available` | Boolean | A value of `true` indicates the email address is available, and the customer can use the email address to create an account
+
+## Related topics
+
+[customer query]({{page.baseurl}}/graphql/queries/customer.html)
diff --git a/guides/v2.3/graphql/reference/customer.md b/guides/v2.3/graphql/reference/customer.md
deleted file mode 100644
index af75f5e7179..00000000000
--- a/guides/v2.3/graphql/reference/customer.md
+++ /dev/null
@@ -1,801 +0,0 @@
----
-group: graphql
-title: Customer endpoint
----
-
-The `Customer` endpoint contains information about a customer account accessible through queries and mutations.
-
-To return or modify information about a customer, Magento recommends you use customer tokens in the header of your GraphQL calls. However, you also can use [session authentication]({{ page.baseurl }}/get-started/authentication/gs-authentication-session.html).
-
-## Queries
-
-The `customer` query returns information about the logged-in customer.
-
-The `isEmailAvailable` query checks whether the specified email has already been used to create a customer account. A value of `true` indicates the email address is available, and the customer can use the email address to create an account.
-
-### Syntax
-
-`{customer: {Customer}}`
-
-`{isEmailAvailable (email): {IsEmailAvailableOutput}}`
-
-### Customer attributes {#customerAttributes}
-
-The customer object can contain the following attributes:
-
-Attribute | Data Type | Description
---- | --- | ---
-`addresses` | [CustomerAddress](#customerAddress) | An array containing the customer's shipping and billing addresses
-`created_at` | String | Timestamp indicating when the account was created
-`default_billing` | String | The ID assigned to the billing address
-`default_shipping` | String | The ID assigned to the shipping address
-`dob` | String | The customer's date of birth
-`email` | String | The customer's email address
-`firstname` | String | The customer's first name
-`gender` | Int | The customer's gender (Male - 1, Female - 2)
-`group_id` | Int | The group assigned to the user. Default values are 0 (Not logged in), 1 (General), 2 (Wholesale), and 3 (Retailer)
-`id` | Int | The ID assigned to the customer
-`is_subscribed` | Boolean | Indicates whether the customer is subscribed to the company's newsletter
-`lastname` | String | The customer's family name
-`middlename` |String | The customer's middle name
-`prefix` | String | An honorific, such as Dr., Mr., or Mrs.
-`reward_update_notification` | Int | The number of the email template to use for notifications about reward updates. This attribute is defined in the Reward module.
-`reward_warning_notification` | Int | The number of the email template to use for notifications about rewards points expiring. This attribute is defined in the Reward module.
-`suffix` | String | A value such as Sr., Jr., or III
-`taxvat` | String | The customer's Tax/VAT number (for corporate customers)
-
-### Customer address attributes {#customerAddress}
-
-The values assigned to attributes such as `firstname` and `lastname` in this object may be different from those defined in the Customer object.
-
-Attribute | Data Type | Description
---- | --- | ---
-`city` | String | The city or town
-`company` | String | The customer's company
-`country_id` | String | The customer's country
-`custom_attributes` | [CustomerAddressAttribute](#CustomerAddressAttribute) | Address custom attributes
-`customer_id` | Int | The customer ID
-`default_billing` | Boolean | Indicates whether the address is the default billing address
-`default_shipping` | Boolean | Indicates whether the address is the default shipping address
-`extension_attributes` | [CustomerAddressAttribute](#CustomerAddressAttribute) | Address extension attributes
-`fax` | String | The fax number
-`firstname` | String | The first name of the person associated with the shipping/billing address
-`id` | Int | The ID assigned to the address object
-`lastname` | String | The family name of the person associated with the shipping/billing address
-`middlename` | String | The middle name of the person associated with the shipping/billing address
-`postcode` | String | The customer's ZIP or postal code
-`prefix` | String | An honorific, such as Dr., Mr., or Mrs.
-`region` | [CustomerAddressRegion](#customerAddressRegion) | An object that defines the customer's state or province
-`region_id` | Int | A number that uniquely identifies the state, province, or other area
-`street` | [String] | An array of strings that define the street number and name
-`suffix` | String | A value such as Sr., Jr., or III
-`telephone` | String | The telephone number
-`vat_id` | String | The customer's Tax/VAT number (for corporate customers)
-
-### Customer address region attributes {#customerAddressRegion}
-
-The `CustomerAddressRegion` object can contain the following attributes:
-
-Attribute | Data Type | Description
---- | --- | ---
-`region_code` | String | The address region code
-`region` | String | The state or province name
-`region_id` | Int | Uniquely identifies the region
-
-### Customer address attribute {#CustomerAddressAttribute}
-
-The `CustomerAddressAttribute` object consists of:
-
-Attribute | Data Type | Description
---- | --- | ---
-`attribute_code` | String | Attribute code
-`value` | String | Attribute value
-
-### isEmailAvailable attribute
-
-The `isEmailAvailable` object can contain the following attributes:
-
-Attribute | Data Type | Description
---- | --- | ---
-`email` | String! | The email address to check
-
-### IsEmailAvailableOutput attribute
-
-Attribute | Data Type | Description
---- | --- | ---
-`is_email_available` | Boolean | A value of `true` indicates the email address is available, and the customer can use the email address to create an account
-
-### Store credit attributes
-
-In {{site.data.var.ee}}, the merchant can assign store credit to customers. Magento maintains the history of all changes to the balance of store credit available to the customer. The customer must be logged in to access the store credit history and balance.
-
-Store credits must be enabled to return store credit attributes. If store credits are disabled after previously being enabled, the query returns customer's current balance as null.
-
-Attribute | Data Type | Description
---- | --- | ---
-`store_credit` | [CustomerStoreCredit](#CustomerStoreCredit) | Contains the store credit information for the logged-in customer
-
-### CustomerStoreCredit attributes {#CustomerStoreCredit}
-
-The `store_credit` object contains store credit information, including the balance and history.
-
-Attribute | Data Type | Description
---- | --- | ---
-`balance_history` | [`CustomerStoreCreditHistory`](#CustomerStoreCreditHistory) | Lists changes to the amount of store credit available to the customer. If the history or store credit feature is disabled, then a null value will be returned.
You can specify the following optional parameters to control paging in the output.
`pageSize` - An integer that specifies the maximum number of results to return at once. The default value is 20.
`currentPage` - An integer that specifies which page of the results to return. The default value is 1
-`current_balance` | Money | The current store credit balance
-`enabled` | Boolean | Indicates whether store credits are enabled. If the feature is disabled, then the balance will not be returned
-
-### CustomerStoreCreditHistory attributes {#CustomerStoreCreditHistory}
-
-The `CustomerStoreCreditHistory` object contains an array of store credit items and paging information. If the store credit or store credit history feature is disabled, then a null value will be returned.
-
-Attribute | Data Type | Description
---- | --- | ---
-`items` | [[`CustomerStoreCreditHistoryItem`](#CustomerStoreCreditHistoryItem)] | An array of products that match the specified search criteria
-`page_info` | SearchResultPageInfo | An object that includes the `page_size` and `current_page` values specified in the query
-`total_count` | Int | The number of items returned
-
-### CustomerStoreCreditHistoryItem attributes {#CustomerStoreCreditHistoryItem}
-
-The `CustomerStoreCreditHistoryItem` object contains information about a specific change to the customer's store credit.
-
-Attribute | Data Type | Description
---- | --- | ---
-`action` | String | The action taken on the customer's store credit
-`actual_balance` | Money | The store credit available to the customer as a result of this action
-`balance_change` | Money | The amount added to or subtracted from the store credit as a result of this action
-`date_time_changed` | String | Date and time when the store credit change was made
-
-### Example usage
-
-The following call returns information about the logged-in customer. Provide the customer's token in the header section of the query.
-
-**Request**
-
-``` text
-{
- customer {
- firstname
- lastname
- suffix
- email
- id
- addresses {
- firstname
- lastname
- street
- city
- region {
- region_code
- region
- region_id
- }
- postcode
- country_id
- telephone
- }
- }
-}
-```
-
-**Response**
-
-```json
-{
- "data": {
- "customer": {
- "firstname": "John",
- "lastname": "Doe",
- "suffix": null,
- "email": "jdoe@example.com",
- "id": 3,
- "addresses": [
- {
- "firstname": "John",
- "lastname": "Doe",
- "street": [
- "123 Elm Street"
- ],
- "city": "Anytown",
- "region": {
- "region_code": "MI",
- "region": "Michigan",
- "region_id": 33
- }
- "postcode": "78758",
- "country_id": "US",
- "telephone": "512 555-1212"
- }
- ]
- }
- }
-}
-```
-
-The following example returns the store credit history for the logged-in user.
-
-**Request**
-
-```text
-query {
- customer {
- firstname
- lastname
- store_credit {
- enabled
- balance_history(pageSize: 10) {
- items {
- action
- actual_balance {
- currency
- value
- }
- balance_change {
- currency
- value
- }
- date_time_changed
- }
- page_info {
- page_size
- current_page
- total_pages
- }
- total_count
- }
- current_balance {
- currency
- value
- }
- }
- }
-}
-```
-
-**Response**
-
-```json
-{
- "data": {
- "customer": {
- "firstname": "John",
- "lastname": "Doe",
- "store_credit": {
- "enabled": true,
- "balance_history": {
- "items": [
- {
- "action": "Updated",
- "actual_balance": {
- "currency": "USD",
- "value": 10
- },
- "balance_change": {
- "currency": "USD",
- "value": -100
- },
- "date_time_changed": "2019-07-15 21:47:59"
- },
- {
- "action": "Updated",
- "actual_balance": {
- "currency": "USD",
- "value": 110
- },
- "balance_change": {
- "currency": "USD",
- "value": 10
- },
- "date_time_changed": "2019-07-15 21:47:18"
- },
- {
- "action": "Created",
- "actual_balance": {
- "currency": "USD",
- "value": 100
- },
- "balance_change": {
- "currency": "USD",
- "value": 100
- },
- "date_time_changed": "2019-07-15 16:31:05"
- }
- ],
- "page_info": {
- "page_size": 10,
- "current_page": 1,
- "total_pages": 1
- },
- "total_count": 3
- },
- "current_balance": {
- "currency": "USD",
- "value": 10
- }
- }
- }
- }
-}
-```
-
-The following example checks whether the email address `customer@example.com` is available to create a customer account.
-
-**Request**
-
-```text
-{
- isEmailAvailable(email: "customer@example.com") {
- is_email_available
- }
-}
-```
-
-**Response**
-
-```json
-{
- "data": {
- "isEmailAvailable": {
- "is_email_available": true
- }
- }
-}
-```
-
-## Mutations
-
-Use mutations to update server-side data, such as adding a new customer or modifying attributes for an existing customer.
-
-### Manage customers
-{:.no_toc}
-
-You can use customer mutations to create a new customer or modify personal information for an existing customer. See [manage customer address](#managecustomeraddress) to modify a customer's address.
-
-**Manage customers attributes**
-
-The following table lists the attributes you can use as input for mutations that create or update customers. The [Customer attributes](#customerAttributes) table lists the attributes Magento returns.
-
-Attribute | Data Type | Description
---- | --- | ---
-`dob` | String | The customer’s date of birth
-`email` | String | The customer’s email address. Required to create a customer
-`firstname` | String | The customer’s first name. Required to create a customer
-`gender` | Int | The customer's gender (Male - 1, Female - 2)
-`is_subscribed` | Boolean | The customer's new password
-`lastname` | String | The customer’s last name. Required to create a customer
-`middlename` | String | The customer’s middle name
-`password` | String | The customer's password. Required to create a customer
-`prefix` | String | An honorific, such as Dr., Mr., or Mrs.
-`suffix` | String | A value such as Sr., Jr., or III
-`taxvat` | String | The customer’s Tax/VAT number (for corporate customers)
-
-### Create a customer
-
-Creates a new customer account.
-
-#### Syntax
-
-`mutation: {createCustomer(input: CustomerInput!) {CustomerOutput}}`
-
-#### Example usage
-
-The following call creates a new customer.
-
-**Request**
-
-``` text
-mutation {
- createCustomer(
- input: {
- firstname: "Bob"
- lastname: "Loblaw"
- email: "bobloblaw@example.com"
- password: "b0bl0bl@w"
- is_subscribed: true
- }
- ) {
- customer {
- id
- firstname
- lastname
- email
- is_subscribed
- }
- }
-}
-```
-
-**Response**
-
-``` text
-{
- "data": {
- "createCustomer": {
- "customer": {
- "id": 5,
- "firstname": "Bob",
- "lastname": "Loblaw",
- "email": "bobloblaw@example.com",
- "is_subscribed": true
- }
- }
- }
-}
-```
-
-### Update a customer
-
-Updates the customer's personal information.
-
-#### Syntax
-
-`mutation: {updateCustomer(input: CustomerInput!) {CustomerOutput}}`
-
-#### Example usage
-
-The following call updates the first name and email address for a specific customer.
-
-**Request**
-
-``` text
-mutation {
- updateCustomer(
- input: {
- firstname: "Rob"
- email: "robloblaw@example.com"
- }
- ) {
- customer {
- firstname
- email
- }
- }
-}
-
-```
-
-**Response**
-
-``` text
-{
- "data": {
- "updateCustomer": {
- "customer": {
- "firstname": "Rob",
- "email": "robloblaw@example.com"
- }
- }
- }
-}
-```
-
-### Manage customer address {#managecustomeraddress}
-{:.no_toc}
-
-Use these mutations to create or modify the customer's address.
-
-#### Manage customer address attributes
-
-Attribute | Data Type | Description
---- | --- | ---
-`id` | Int | The ID assigned to the address object
-`CustomerAddressInput` | [CustomerAddress](#customerAddressInput) | An array containing the customer’s shipping and billing addresses
-
-#### Customer address input attributes {#customerAddressInput}
-
-Attribute | Data Type | Description
---- | --- | ---
-`city` | String | The city or town
-`company` | String | The customer's company
-`country_id` | CountryCodeEnum | The customer's country
-`custom_attributes` | [CustomerAddressAttributeInput](#customerAddressAttributeInput) | Address custom attributes
-`customer_id` | Int | The customer ID
-`default_billing` | Boolean | Indicates whether the address is the default billing address
-`default_shipping` | Boolean | Indicates whether the address is the default shipping address
-`fax` | String | The fax number
-`firstname` | String | The first name of the person associated with the shipping/billing address
-`lastname` | String | The family name of the person associated with the shipping/billing address
-`middlename` | String | The middle name of the person associated with the shipping/billing address
-`postcode` | String | The customer's ZIP or postal code
-`prefix` | String | An honorific, such as Dr., Mr., or Mrs.
-`region` | [CustomerAddressRegionInput](#customerAddressRegionInput) | An object that defines the customer's state or province
-`street` | [String] | An array of strings that define the street number and name
-`suffix` | String | A value such as Sr., Jr., or III
-`telephone` | String | The telephone number
-`vat_id` | String | The customer's Tax/VAT number (for corporate customers)
-
-### Customer address attributes {#customerAddressAttributeInput}
-
-The `CustomerAddressAttributeInput` object can contain the following attributes:
-
-Attribute | Data Type | Description
---- | --- | ---
-`attribute_code` | String | Attribute code
-`value` | String | Attribute value
-
-### Customer address region input attributes {#customerAddressRegionInput}
-
-The `customerAddressRegionInput` object can contain the following attributes:
-
-Attribute | Data Type | Description
---- | --- | ---
-`region_code` | String | The address region code
-`region` | String | The state or province name
-`region_id` | Int | Uniquely identifies the region
-
-### Create customer address
-
-Creates the customer's address.
-
-#### Syntax
-
-`mutation: {createCustomerAddress(input: CustomerAddressInput!) {CustomerAddress}}`
-
-#### Example usage
-
-The following call creates an address for the specified customer.
-
-**Request**
-
-``` text
-mutation {
- createCustomerAddress(input: {
- region: {
- region: "Arizona"
- region_id: 4
- region_code: "AZ"
- }
- country_id: US
- street: ["123 Main Street"]
- telephone: "7777777777"
- postcode: "77777"
- city: "Phoenix"
- firstname: "Bob"
- lastname: "Loblaw"
- default_shipping: true
- default_billing: false
- }) {
- id
- customer_id
- region {
- region
- region_id
- region_code
- }
- country_id
- street
- telephone
- postcode
- city
- default_shipping
- default_billing
- }
-}
-```
-
-**Response**
-
-``` text
-{
- "data": {
- "createCustomerAddress": {
- "id": 4,
- "customer_id": 5,
- "region": {
- "region": "Arizona",
- "region_id": 4,
- "region_code": "AZ"
- },
- "country_id": "US",
- "street": [
- "123 Main Street"
- ],
- "telephone": "7777777777",
- "postcode": "77777",
- "city": "Phoenix",
- "default_shipping": true,
- "default_billing": false
- }
- }
-}
-```
-
-### Update customer address
-
-Updates the customer's address.
-
-#### Syntax
-
-`mutation: {updateCustomerAddress(id: Int!input: CustomerAddressInput) {CustomerAddress}}`
-
-#### Example usage
-
-The following call updates the customer's city and postcode.
-
-**Request**
-
-``` text
-mutation {
- updateCustomerAddress(id:3, input: {
- city: "New City"
- postcode: "5555"
- }) {
- id
- city
- postcode
- }
-}
-```
-
-**Response**
-
-``` text
-{
- "data": {
- "updateCustomerAddress": {
- "id": 3,
- "city": "New City",
- "postcode": 5555
- }
- }
-}
-```
-
-### Delete customer address
-
-Deletes the specified customer address.
-
-#### Syntax
-
-`mutation: {deleteCustomerAddress(id: Int!) {Boolean}}`
-
-#### Example usage
-
-The following call deletes a customer's address.
-
-**Request**
-
-``` text
-mutation {
- deleteCustomerAddress(id: 4)
-}
-```
-
-**Response**
-
-``` text
-{
- "data": {
- "deleteCustomerAddress": true
- }
-}
-```
-
-### Manage customer tokens
-{:.no_toc}
-
-Use these mutations to create or revoke a customer's token.
-
-**Manage customer tokens attributes**
-
-Attribute | Data Type | Description
---- | --- | ---
-`email` | String | The customer's email address
-`password` | String | The customer's password
-
-### Generate a customer token
-
-Creates a new customer token.
-
-#### Syntax
-
-`mutation: {generateCustomerToken(email: String!password: String!) {CustomerToken}}`
-
-#### Example usage
-
-The following call creates a new customer token.
-
-**Request**
-
-``` text
-mutation {
- generateCustomerToken(
- email: "bobloblaw@example.com"
- password: "b0bl0bl@w"
- ) {
- token
- }
-}
-```
-
-**Response**
-
-``` text
-{
- "data": {
- "generateCustomerToken": {
- "token": "ar4116zozoagxty1xjn4lj13kim36r6x"
- }
- }
-}
-```
-
-### Revoke a customer token
-
-Revokes the customer's token.
-
-#### Syntax
-
-`mutation: {revokeCustomerToken: RevokeCustomerTokenOutput}`
-
-#### Example usage
-
-The following call revokes the customer's token.
-
-**Request**
-
-``` text
-mutation {
- revokeCustomerToken {
- result
- }
-}
-```
-
-**Response**
-
-```json
-{
- "data": {
- "revokeCustomerToken": {
- "result": true
- }
- }
-}
-```
-
-### Change customer password
-
-Changes the password for the logged-in customer.
-
-**Change customer password attributes**
-
-Attribute | Data Type | Description
---- | --- | ---
-`currentPassword` | String | The customer's current password
-`newPassword` | String | The customer's new password
-
-#### Syntax
-
-`mutation: {changeCustomerPassword(currentPassword: String!newPassword: String!) {Customer}}`
-
-#### Example usage
-
-The following call updates the customer's password.
-
-**Request**
-
-``` text
-mutation {
- changeCustomerPassword(
- currentPassword: "roni_cost3@example.com",
- newPassword: "roni_cost4@example.com"
- ) {
- id
- email
- }
-}
-```
-
-**Response**
-
-```json
-{
- "data": {
- "changeCustomerPassword": {
- "id": 1,
- "email": "roni_cost@example.com"
- }
- }
-}
-```
diff --git a/guides/v2.3/graphql/tutorials/checkout/checkout-customer.md b/guides/v2.3/graphql/tutorials/checkout/checkout-customer.md
index f902cc7f66b..6c9a02efa3b 100644
--- a/guides/v2.3/graphql/tutorials/checkout/checkout-customer.md
+++ b/guides/v2.3/graphql/tutorials/checkout/checkout-customer.md
@@ -66,7 +66,7 @@ mutation {
}
```
-["Customer endpoint"]({{ page.baseurl }}/graphql/reference/customer.html#create-a-customer) describes additional `createCustomer` parameters.
+["Customer endpoint"]({{ page.baseurl }}/graphql/mutations/create-customer.html) describes additional `createCustomer` parameters.
To place an order as a new customer, you must get the customer's authorization token. Use the `generateCustomerToken` mutation for that.