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.

Name Description Format Requirements
id System-generated company ID integer Required for updates and deletes.
status 0 - 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. string Required 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 company string Optional
street Street address where the company is registered. The array can contain one or two lines. Array[string] Required to create or update a company.
city The company’s city string Required to create or update a company.
country_id The country where the company is registered. string Required to create or update a company.
region State or province string Required to create or update a company.
region_id An ID assigned to a state or province string Optional
postcode The company’s ZIP or postal code string Required to create or update a company.
telephone The company contact’s phone number string Required to create or update a company.
customer_group_id Defines the company’s shared catalog. A value of 1 assigns the default shared catalog. integer Required to create or update a company.
sales_representative_id User ID of the Sales Representative for the company integer Optional
reject_reason Specifies why a company’s request to be a B2B customer is rejected string Optional
rejected_at A timestamp indicating when the company was rejected. string Optional
super_user_id The customer_id of the company administrator. When creating a company, the customer_id must already exist. integer Required 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
}