Magento Commerce only

Manage company objects

Manage company objects

This section describes the REST endpoints used to manage Company objects.

Service Name

companyCompanyRepositoryV1

REST Endpoints

POST /V1/company/
PUT /V1/company/:companyId
GET /V1/company/:companyId
DELETE /V1/company/:companyId
GET /V1/company/

CompanyInterface Parameters

The following table lists the parameters defined in CompanyInterface.

NameDescriptionFormatRequirements
idSystem-generated company ID integer Required for updates and deletes.
status0 - Pending approval
1 - Approved
2 - Rejected
3 - Blocked
integer Optional
company_name Company name string Required to create or update a company.
legal_name Legal name string Optional
company_email Official e-mail address of the company. It does not have to be unique. stringRequired to create or update a company.
vat_tax_id The company's Value Added Tax ID string Optional
reseller_id Unique ID of the company reseller string Optional
comment Additional details about the companystringOptional
streetStreet address where the company is registered. The array can contain one or two lines.Array[string]Required to create or update a company.
cityThe company's city string Required to create or update a company.
country_idThe country where the company is registered.string Required to create or update a company.
regionState or provincestringRequired to create or update a company.
region_idAn ID assigned to a state or provincestring Optional
postcodeThe company's ZIP or postal codestring Required to create or update a company.
telephoneThe company contact's phone numberstringRequired to create or update a company.
customer_group_id Defines the company's shared catalog. A value of `1` assigns the default shared catalog.integerRequired to create or update a company.
sales_representative_idUser ID of the Sales Representative for the companyintegerOptional
reject_reasonSpecifies why a company's request to be a B2B customer is rejectedstringOptional
rejected_atA timestamp incdicating when the company was rejected.stringOptional
super_user_idThe `customer_id` of the company administrator. When creating a company, the `customer_id` must already exist. integerRequired to create or update a company.

Create a company

The following example creates a company and assigns the default shared catalog (customer_group_id). The company admin (super_user_id) must be a previously-defined customer_id.

Sample Usage

POST /V1/company/

Payload

{
  "company": {
    "company_name": "Test company",
    "company_email": "newemail@example.com",
    "street":[
    "100 Big Tree Avenue"
    ],
    "city": "San Francisco",
    "country_id": "US",
    "region": "CA",
    "region_id": "12",
    "postcode": "99999",
    "telephone": "4155551212",
    "super_user_id": 5,
    "customer_group_id": 1
  }
}

Response

{
  "id": 2,
  "company_name": "Test company",
  "company_email": "newemail@example.com",
  "street": [
    "100 Big Tree Avenue"
  ],
  "city": "San Francisco",
  "country_id": "US",
  "region": "California",
  "region_id": "12",
  "postcode": "99999",
  "telephone": "4155551212",
  "customer_group_id": 1,
  "sales_representative_id": 1,
  "reject_reason": null,
  "rejected_at": null,
  "super_user_id": 5,
  "extension_attributes": {
    "quote_config": {
      "company_id": "2",
      "is_quote_enabled": false
    }
  }
}

Update the company

The following call changes the company status to Rejected (2) and explains why.

Sample Usage

PUT /V1/company/2

Payload

{
  "company": {
  	"id": 2,
  	"company_name": "Test company",
    "company_email": "newemail@example.com",
    "customer_group_id": 1,
        "street":[
    "100 Big Tree Avenue"
    ],
    "city": "San Francisco",
    "country_id": "US",
    "region": "CA",
    "region_id": "12",
    "postcode": "99999",
    "telephone": "4155551212",
    "super_user_id": 5,
    "status": 2,
    "reject_reason": "Failed background check."

  }
}

Response

{
  "id": 2,
  "company_name": "Test company",
  "company_email": "newemail@example.com",
  "street": [
    "100 Big Tree Avenue"
  ],
  "city": "San Francisco",
  "country_id": "US",
  "region": "California",
  "region_id": "12",
  "postcode": "99999",
  "telephone": "4155551212",
  "customer_group_id": 1,
  "sales_representative_id": 1,
  "reject_reason": null,
  "rejected_at": null,
  "super_user_id": 5,
  "extension_attributes": {
    "quote_config": {
      "company_id": "2",
      "is_quote_enabled": true
    }
  }
}

Return all information about a company

This call returns detailed information about the specified company. Sample Usage

GET /V1/company/2

Payload

None

Response

{
  "id": 2,
  "status": 0,
  "company_name": "Test company",
  "company_email": "newemail@example.com",
  "street": [
    "100 Big Tree Avenue"
  ],
  "city": "San Francisco",
  "country_id": "US",
  "region": "California",
  "region_id": "12",
  "postcode": "99999",
  "telephone": "4155551212",
  "customer_group_id": 1,
  "sales_representative_id": 1,
  "reject_reason": null,
  "rejected_at": null,
  "super_user_id": 5,
  "extension_attributes": {
    "quote_config": {
      "company_id": "2",
      "is_quote_enabled": true
    }
  }
}

Delete a company

When you delete a company, Magento assigns the “Inactive” status to all company members. The system also removes company ID from the customer profile of all company members.

Sample Usage

DELETE /V1/company/2

Payload

None

Response

true, indicating the request was successful

Search for companies

The following call returns all companies that are located in California (region_id = 12)

See Search using REST APIs for information about constructing a search query.

Sample Usage

GET /V1/company?searchCriteria[filter_groups][0][filters][0][field]=region_id&searchCriteria[filter_groups][0][filters][0][value]=12&searchCriteria[filter_groups][0][filters][0][condition_type]=eq

Payload

None

Response

Show code sample
{
    "items": [
        {
            "id": 2,
            "status": 1,
            "company_name": "Test Company",
            "legal_name": "Test Company",
            "company_email": "newemail@example.com",
            "street": [
                "100 Big Tree Avenue"
            ],
            "city": "San Francisco",
            "country_id": "US",
            "region": "California",
            "region_id": "12",
            "postcode": "99999",
            "telephone": "4155551212",
            "customer_group_id": 1,
            "sales_representative_id": 1,
            "reject_reason": null,
            "rejected_at": null,
            "super_user_id": 3,
            "extension_attributes": {
                "applicable_payment_method": 0,
                "available_payment_methods": "banktransfer,cashondelivery,checkmo,payflowpro,payflow_advanced,payflow_link,braintree,cybersource,eway,authorizenet_directpost,free,braintree_paypal,paypal_billing_agreement,payflow_express_bml,paypal_express_bml,paypal_express,payflow_express,hosted_pro,worldpay,companycredit,purchaseorder,braintree_paypal_vault,braintree_cc_vault,payflowpro_cc_vault",
                "use_config_settings": 1,
                "quote_config": {
                    "is_quote_enabled": true
                }
            }
        },
        {
            "id": 3,
            "status": 1,
            "company_name": "Widgets, Inc",
            "legal_name": "Widgets, Inc",
            "company_email": "widgetsinc@example.com",
            "street": [
                "8383 Wilshire Blvd",
                "Ste 1500"
            ],
            "city": "Beverly Hills",
            "country_id": "US",
            "region": "California",
            "region_id": "12",
            "postcode": "90211",
            "telephone": "(310) 555-0000",
            "customer_group_id": 1,
            "sales_representative_id": 1,
            "reject_reason": null,
            "rejected_at": null,
            "super_user_id": 10,
            "extension_attributes": {
                "applicable_payment_method": 0,
                "available_payment_methods": "banktransfer,cashondelivery,checkmo,payflowpro,payflow_advanced,payflow_link,braintree,cybersource,eway,authorizenet_directpost,free,braintree_paypal,paypal_billing_agreement,payflow_express_bml,paypal_express_bml,paypal_express,payflow_express,hosted_pro,worldpay,companycredit,purchaseorder,braintree_paypal_vault,braintree_cc_vault,payflowpro_cc_vault",
                "use_config_settings": 1,
                "quote_config": {
                    "is_quote_enabled": true
                }
            }
        }
    ],
    "search_criteria": {
        "filter_groups": [
            {
                "filters": [
                    {
                        "field": "region_id",
                        "value": "12",
                        "condition_type": "eq"
                    }
                ]
            }
        ]
    },
    "total_count": 2
}