Bulk Create Companies

🚧

Limited Availability

Access to the Compliance API is currently limited to approved partners. Endpoints, request/response shapes, and field names may change before reaching general availability — use against staging for early integration work and coordinate with your CorpNet account manager before relying on Compliance API calls in production-critical paths. Report issues or feedback to your account manager.

POST /v1/partners/{partnerId}/companies/bulk

Creates multiple companies in a single transaction. Uses the same per-company field schema as Create a Company. All-or-nothing: any validation failure rolls back the entire batch.

📘

Recommended batch size

~200 companies per request. Practical upper bound is 500–1000 per request depending on payload size. Larger batches risk timing out at the gateway.

Path Parameters

ParameterTypeRequiredDescription
partnerIdStringYesYour Account PID.

Request Body

A JSON array of company objects. Each element follows the same schema documented in Create a Company.

[
  {
    "name": "ABC Company Inc",
    "formationDate": "2020-01-15",
    "type": "LLC",
    "homeState": "CA",
    "businessAddress": {
      "street": "123 Main St",
      "city": "San Francisco",
      "state": "CA",
      "zip": "94105"
    }
  },
  {
    "name": "XYZ Corporation",
    "formationDate": "2019-05-20",
    "type": "Corporation",
    "homeState": "DE",
    "businessAddress": {
      "street": "456 Industrial Blvd",
      "city": "Wilmington",
      "state": "DE",
      "zip": "19801"
    }
  }
]

Example

curl -s -X POST \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '[{"name":"Alpha LLC"},{"name":"Beta Inc"}]' \
  "https://api.corpnet.com/v1/partners/P123456/companies/bulk"

Response — 200 OK

{
  "data": [
    { "companyId": "a0A5e000002abcd", "PCID": "PC123456" },
    { "companyId": "a0A5e000002efgh", "PCID": "PC123457" }
  ],
  "statusCode": 200,
  "message": "Success"
}

Each element in the data array corresponds positionally to an input record.

Error Responses

{ "statusCode": 400, "message": "No account found for the provided PID.", "data": [] }
{ "statusCode": 400, "message": "FIELD_CUSTOM_VALIDATION_EXCEPTION, Company name is required: [Name]", "data": [] }

Failure is all-or-nothing. If any single company in the batch fails validation, no companies are persisted and the response data is an empty array.

Notes

  • For batches larger than ~500, split into multiple requests on your side. CorpNet does not parallelize internally per partner.
  • The batch is a single transaction at our service layer, not a fire-and-forget queue. Expect end-to-end latency proportional to batch size — plan client timeouts accordingly.