REST API: Customer Addresses
URI: /customers/:customer_id/addresses
Allows you to manage existing customer addresses.
URL Structure: http://magentohost/api/rest/customers/:customer_id/addresses
Version: 1
HTTP Method: GET /customers/:customer_id/addresses
Description: Allows you to retrieve the list of existing customer addresses.
Notes: The list of attributes that will be returned for customer addresses is configured in the Magento Admin Panel. The Customer user type has access only to his/her own addresses. Also, Admin can add additional non-system customer address attributes by selecting Customers > Attributes > Manage Customer Address Attributes (available only in Magento Enterprise Edition). If these attributes are set as visible on frontend, they will be returned in the response.
Authentication: Admin, Customer
Default Format: XML
Parameters:
No Parameters
Example:
| GET http://magentohost/api/rest/customers/1/addresses |
Response Body:
<?xml version="1.0"?>
<magento_api>
<data_item>
<entity_id>2</entity_id>
<firstname>John</firstname>
<lastname>Doe</lastname>
<city>PA</city>
<region>Palau</region>
<postcode>19103</postcode>
<country_id>US</country_id>
<telephone>610-634-1181</telephone>
<prefix>Dr.</prefix>
<middlename></middlename>
<suffix>Jr.</suffix>
<company></company>
<fax></fax>
<vat_id>123456789</vat_id>
<street>
<data_item>2356 Jody Road Philadelphia</data_item>
<data_item>844 Jefferson Street; 4510 Willis Avenue</data_item>
</street>
<is_default_billing>1</is_default_billing>
<is_default_shipping>1</is_default_shipping>
</data_item>
</magento_api>
response body: json:
[
{
"entity_id": "98",
"firstname": "John",
"middlename": null,
"lastname": "Doe",
"company": null,
"city": "Philly",
"country_id": "US",
"region": "California",
"postcode": "94131",
"telephone": "888-555-1212",
"fax": null,
"street": [
"123 Center St"
],
"is_default_billing": 0,
"is_default_shipping": 1
},
{
"entity_id": "99",
"firstname": "John",
"lastname": "Doe",
"city": "San Jose",
"country_id": "US",
"region": "California",
"postcode": "94070",
"telephone": "898-555-1212",
"street": [
"123 Easy St"
],
"is_default_billing": 1,
"is_default_shipping": 0
}
]
Notes: If the customer has more than two street addresses, they will be returned in the following form: first address in the first string and all other addresses in the second string separated with a semicolon (like in the example above).
HTTP Method: POST /customers/:customer_id/addresses
Description: Allows you to create a new address for the required customer.
Notes: The Customer user type can create addresses only for themselves.
When adding a street address for the customer, it should look like the following:
<street>
<data_item>street address 1</data_item>
<data_item>street address 2</data_item>
<data_item>street address 3</data_item>
</street>
Authentication: Admin, Customer
Default Format: XML
Parameters:
| Name | Description | Required | Type | Example Value |
|---|---|---|---|---|
| firstname | Customer first name | required | string | John |
| lastname | Customer last name | required |
string | Doe |
| street |
Customer street address. There can be more than one street address. | required |
string | 2800 Watson Lane |
| city |
Name of the city | required |
string | Asheville |
| country_id |
Name of the country | required |
string | US |
| region | Region name or code | required for countries with regions (USA, Canada, etc.) | string | Palau |
| postcode |
Customer ZIP/postal code | required |
string | 28803 |
| telephone |
Customer phone number | required |
string | 828-775-0519 |
Example:
| POST http://magentohost/api/rest/customers/1/addresses |
Request Body:
<?xml version="1.0"?>
<magento_api>
<firstname>Johny</firstname>
<lastname>Doe</lastname>
<city>PA</city>
<region>Palau</region>
<postcode>19103</postcode>
<country_id>US</country_id>
<telephone>611-634-1181</telephone>
<street>
<data_item>2354 Jody Road Philadelphia</data_item>
<data_item>844 Jefferson Street; 4510 Willis Avenue</data_item>
</street>
</magento_api>
HTTP Method: PUT /customers/:customer_id/addresses
Update Customer Address: not allowed.
HTTP Method: DELETE /customers/:customer_id/addresses
Description: Not allowed.
URI: /customers/addresses/:address_id
Allows you to manage an existing customer address.
URL Structure: http://magentohost/api/rest/customers/addresses/:address_id
Version: 1
HTTP Method: GET /customers/addresses/:address_id
Description: Allows you to retrieve an existing customer address.
Notes: The list of attributes that will be returned for customer address is configured in the Magento Admin Panel. The Customer user type has access only to his/her own addresses. Also, Admin can add additional non-system customer address attributes by selecting Customers > Attributes > Manage Customer Address Attributes (available only in Magento Enterprise Edition). If these attributes are set as visible on frontend, they will be returned in the response.
Authentication: Admin, Customer
Default Format: XML
Parameters:
No Parameters
Example:
| GET http://magentohost/api/rest/customers/addresses/2 |
Response Body:
<?xml version="1.0"?>
<magento_api>
<entity_id>2</entity_id>
<firstname>John</firstname>
<lastname>Doe</lastname>
<city>PA</city>
<region>Palau</region>
<postcode>19103</postcode>
<country_id>US</country_id>
<telephone>610-634-1181</telephone>
<prefix>Dr.</prefix>
<middlename></middlename>
<suffix>Jr.</suffix>
<company></company>
<fax></fax>
<vat_id>123456789</vat_id>
<street>
<data_item>2356 Jody Road Philadelphia</data_item>
<data_item>844 Jefferson Street; 4510 Willis Avenue</data_item>
</street>
<is_default_billing>1</is_default_billing>
<is_default_shipping>1</is_default_shipping>
</magento_api>
response body: json:
{
"entity_id": "2",
"firstname": "John",
"lastname": "Doe",
"city": "San Jose",
"country_id": "US",
"region": "California",
"postcode": "94070",
"telephone": "898-555-1212",
"street": [
"123 Easy St"
],
"is_default_billing": 1,
"is_default_shipping": 0
}
HTTP Method: POST /customers/addresses/:address_id
Description: Not allowed.
HTTP Method: PUT /customers/addresses/:address_id
Description: Allows you to update an existing customer address.
Notes: The list of attributes that will be updated for customer address is configured in the Magento Admin Panel. The Customer user type has access only to his/her own addresses.
If you want to add more addresses, it should look like the following:
<street> <data_item>street address 1</data_item> <data_item>street address 2</data_item> <data_item>street address 3</data_item> </street>
Authentication: Admin, Customer
Default Format: XML
Example:
| PUT http://magentohost/api/rest/customers/addresses/7 |
Request Body:
<?xml version="1.0"?>
<magento_api>
<firstname>Johny</firstname>
<lastname>Doe</lastname>
<city>PA</city>
<region>Palau</region>
<postcode>19103</postcode>
<country_id>US</country_id>
<telephone>610-634-1181</telephone>
<street>
<data_item>2356 Jody Road Philadelphia</data_item>
<data_item>844 Jefferson Street</data_item>
</street>
<is_default_billing>1</is_default_billing>
<is_default_shipping>1</is_default_shipping>
</magento_api>
request body: json:
{
"entity_id": "99",
"firstname": "John",
"lastname": "Doe",
"city": "San Jose",
"country_id": "US",
"region": "California",
"postcode": "94070",
"telephone": "898-555-1212",
"street": [
"123 Easy St"
],
"is_default_billing": 1,
"is_default_shipping": 0
}
HTTP Method: DELETE /customers/addresses/:address_id
Description: Allows you to delete an existing customer address.
Notes: The Customer user type can delete only his/her own addresses.
Authentication: Admin, Customer
Default Format: XML
Parameters:
No Parameters
Example:
| DELETE http://magentohost/api/rest/customers/addresses/7 |
Possible HTTP Status Codes
| Status Code | Message | Description |
|---|---|---|
| 405 | Resource method not implemented yet. | The required method is not implemented or not allowed. |
| 404 | Resource not found. |
The specified resource is not found or does not exist. |
| 400 | Invalid country identifier type | The <country_id> value is passed not as a string type. |
| 400 | <value name> is a required value. |
The specified value is a required one. |
| 400 | Country does not exist |
The specified country does not exist. |
| 400 | Country is required | The <country_id> value is required. |
| 400 | Country is not between '2' and '3' inclusively. |
The country code is not in the range of 2 and 3 symbols inclusively. |
| 400 | Invalid State/Province type |
The <region> value is invalid (value is empty or passed as an array) |
| 400 | State/Province is required |
The <region> value is required for the specified country. |
| 400 | State/Province is invalid |
The entered value for <region> is invalid. It must be the region code (TX) or region name (Texas). |
| 400 | State/Province does not exist |
The specified region does not exist (only for the country with predefined regions). |
| 400 | Address is default for customer so is not allowed to be deleted |
The address cannot be deleted because it is set as a default one for billing or shipping. |