How to create a company using REST API B2B Magento Adobe commerce?

Adobe Commerce Company’s feature covers wholesale B2B functionality for the store owners.

The company feature is robust and you can create a company from the front end via creating a company account, Admin panel new Company, GraphQL as well as using REST API.

I will provide you step by step guide to creating a new company using REST API.

Before creating Company, you just need to create a customer to assign that customer as a superuser for the company.

This step is optional if you have already created a company,
Create Customer using Magento API,

Action: POST

URL: <HOST_URL>/rest/<storeCode>/V1/customers

HEADER: Authorization: Bearer <ADMIN_TOKEN>

Request Payload:

{
  "customer": {
    "dob": "05/27/1991",
    "email": "rbj@jesadiya.com",
    "firstname": "Rakesh",
    "lastname": "Jesadiya",
    "website_id": 2
  },
  "password": "YOUR_PASSWORD"
}

Response:

{
    "id": 5,
    "group_id": 1,
    "created_at": "2021-11-03 11:12:18",
    "updated_at": "2021-11-03 11:12:18",
    "created_in": "Default Store View",
    "dob": "1991-05-27",
    "email": "rbj@jesadiya.com",
    "firstname": "Rakesh",
    "lastname": "Jesadiya",
    "store_id": 1,
    "website_id": 1,
    "addresses": [],
    "disable_auto_group_change": 0,
    "extension_attributes": {
        "is_subscribed": false
    }
}

Here New customer is generated and the new id will be 5.

Now We are just moving to the original post of Create Company API stuff.

Action: POST

URL: <HOST_URL>/rest/<storeCode>/V1/company

HEADER: Authorization:Bearer <ADMIN_TOKEN>

Request Payload:

{
    "company": {
        "status": 1,
        "company_name": "Test Wholesale",
        "company_email": "testadmin@fake.com",
        "street": [
            "Test Test"
        ],
        "city": "San Francisco",
        "country_id": "US",
        "region": "CA",
        "region_id": "12",
        "postcode": "99999",
        "telephone": "45645645",
        "super_user_id": 5,
        "customer_group_id": 15
    }
}

Below are the  list of  required fields in request body (*),

  • company_name
  • company_email
  • street
  • city
  • country_id
  • region
  • postcode
  • telephone
  • customer_group_id
  • super_user_id.

customer_group_id is the company’s shared catalog Id.  If you pass 1 that means the default shared catalog. Here we have assigned a value is 15 for our custom customer group id.

super_user_id is the customer id assigned as superuser of the company.

Response:

Response:
{
    "id": 12,
    "status": 1,
    "company_name": "Test Wholesale",
    "company_email": "testadmin@fake.com",
    "street": [
        "Test Test"
    ],
    "city": "San Francisco",
    "country_id": "US",
    "region_id": "12",
    "postcode": "99999",
    "telephone": "4155551212",
    "customer_group_id": 15,
    "sales_representative_id": 2,
    "reject_reason": null,
    "rejected_at": null,
    "super_user_id": 5,
    "extension_attributes": {
        "quote_config": {
            "company_id": "12",
            "is_quote_enabled": false
        }
    }
}