Collecting Company Information

Create a draft company and send Everee the information it needs, step by step.

This guide walks through creating a company and filling in its draft. All requests go to https://api.everee.com/integration/v1/partner/companies and use your partner API key (see Authentication). In the examples, $KEY is your partner API key and $ID is the company's ID.

You can make these calls in any order, as often as you like, until the agreements are signed. Get onboarding status at any point to see what is still missing.

1. Create the company

Creating a company needs only the legal name, the EIN, and a primary contact.

curl -X POST https://api.everee.com/integration/v1/partner/companies \
  -u "$KEY:" \
  -H "Content-Type: application/json" \
  -d '{
    "legalBusinessName": "Summit Ridge Plumbing LLC",
    "ein": "87-1234567",
    "primaryContact": {
      "firstName": "Dana",
      "lastName": "Whitfield",
      "email": "[email protected]",
      "phone": "8015550142"
    },
    "webhookUrl": "https://hooks.yourplatform.example/everee"
  }'
  • taxContact is optional and defaults to the primary contact.
  • webhookUrl is optional. It must be an https URL on a public host. When you give one, Everee creates a webhook endpoint for the company and returns its webhookSigningKey, which you use to verify events. You can also set it later with Set webhook.

The response contains the company, including:

FieldMeaning
idThe company's ID, used in every other path.
onboardingStatusDRAFT.
apiKeyThe company's own API key. It is returned only in this response. Store it with the company's record in your system.
webhookSigningKeyPresent only when you supplied a webhookUrl. Returned only in this response.

2. Complete the draft

Company details

curl -X PATCH https://api.everee.com/integration/v1/partner/companies/$ID \
  -u "$KEY:" -H "Content-Type: application/json" \
  -d '{
    "legalEntityType": "LLC_SINGLE_MEMBER",
    "formationState": "UT",
    "tradeName": "Summit Ridge Plumbing",
    "businessPhone": "(801) 555-0100",
    "website": "summitridge.example",
    "address": {
      "line1": "4420 S 900 E",
      "line2": "Suite 210",
      "city": "Salt Lake City",
      "state": "UT",
      "postalCode": "84124"
    }
  }'

legalEntityType is one of C_CORPORATION, S_CORPORATION, LLC_MULTI_MEMBER, LLC_SINGLE_MEMBER, PARTNERSHIP, SOLE_PROPRIETORSHIP, NONPROFIT, or OTHER. See Update company.

Payroll profile

Tell Everee what kind of payroll the company runs.

curl -X PATCH https://api.everee.com/integration/v1/partner/companies/$ID/payroll-profile \
  -u "$KEY:" -H "Content-Type: application/json" \
  -d '{
    "paysW2Employees": true,
    "employeeCount": 5,
    "paysContractors": true,
    "contractorCount": 2,
    "payFrequency": "BI_WEEKLY",
    "payPeriodStartDay": "MONDAY",
    "annualRevenue": { "amount": 750000.00, "currency": "USD" },
    "natureOfBusiness": "Plumbing installation and repair",
    "naicsCode": "238220"
  }'

payPeriodStartDay is required for weekly and bi-weekly pay frequencies. For naicsCode, let the user choose from List NAICS codes. See Update payroll profile.

Contacts

Add the people Everee may need to reach, and mark exactly one as the primary contact.

curl -X POST https://api.everee.com/integration/v1/partner/companies/$ID/contacts \
  -u "$KEY:" -H "Content-Type: application/json" \
  -d '{
    "role": "CEO_PRESIDENT",
    "name": "Dana Whitfield",
    "email": "[email protected]",
    "phone": "8015550142",
    "primary": true
  }'

role is one of CEO_PRESIDENT, OWNER, CFO, COO, HR, PAYROLL_MANAGER, CONTROLLER_ACCOUNTING, OFFICE_MANAGER, or OTHER. You can list, update, and delete contacts; see Add contact.

Taxes

Choose the federal return type and the states the company withholds in.

curl -X PATCH https://api.everee.com/integration/v1/partner/companies/$ID/tax-setup \
  -u "$KEY:" -H "Content-Type: application/json" \
  -d '{ "returnType": "FORM_941", "states": ["UT", "ID"] }'

See Update tax setup.

The people: signer, control person, and owners

Everee must know who signs for the company and who controls and owns it. These are different roles that can be the same person.

  • The signer is the person who signs the agreements in the embedded experience. Their relationship says how they relate to the company's ownership: CONTROL_PERSON, BENEFICIAL_OWNER, or NEITHER.
  • The control person is the individual with significant responsibility to control, manage, or direct the company, such as the CEO. Everee requires exactly one, with identity details and their ownership percentage.
  • Beneficial owners are individuals or entities that own 25% or more. Give each one, or declare that there are none other than the control person.
# The signer
curl -X PUT https://api.everee.com/integration/v1/partner/companies/$ID/signer \
  -u "$KEY:" -H "Content-Type: application/json" \
  -d '{
    "firstName": "Dana", "lastName": "Whitfield", "title": "Managing Member",
    "email": "[email protected]", "phone": "8015550142",
    "relationship": "CONTROL_PERSON"
  }'

# The control person
curl -X PUT https://api.everee.com/integration/v1/partner/companies/$ID/control-person \
  -u "$KEY:" -H "Content-Type: application/json" \
  -d '{
    "firstName": "Dana", "lastName": "Whitfield", "title": "Managing Member",
    "email": "[email protected]", "phone": "8015550142",
    "ownershipPercentage": 100,
    "identity": {
      "dateOfBirth": "1981-04-17",
      "ssn": "123-45-6789",
      "address": { "line1": "2875 E Oakview Cir", "city": "Holladay", "state": "UT", "postalCode": "84121" }
    }
  }'

If the signer is the control person or an owner, you do not repeat their identity details on the signer: Everee matches them by name. If the signer is neither, give the signer's identity details too, and Everee will also need a certificate of authority (see below).

When the control person owns less than 100%, add each other owner of 25% or more with Add beneficial owner, or declare that no one else qualifies with Put ownership declaration. An owner can be an individual or an entity; for an entity, the person fields describe the individual who represents it.

Identity details are used to verify each person. Provide either an SSN, or a passport number and country. Everee emails each owner a link to complete the verification after you submit; you do not collect anything further from them.

Certificate of authority

When the signer is neither a control person nor an owner, Everee needs a certificate of authority that shows they may sign for the company. Upload it as a PDF:

curl -X PUT https://api.everee.com/integration/v1/partner/companies/$ID/files/certificate-of-authority \
  -u "$KEY:" \
  -F "[email protected];type=application/pdf"

See Upload certificate of authority.

3. Contract terms and the signature request

Everee sets the pricing and billing items for each company, so you do not provide them. When the draft is complete and Everee has loaded the company's terms, Everee requests the signature: you receive a company-onboarding.signature-requested webhook, and the status shows contract.status of AWAITING_SIGNATURE. Continue with Signing the agreements.

Checking your work

Get onboarding status returns the readiness check, the contract state, identity verification, and open requests in one call. Get company returns everything you have sent, including the payroll profile.


Did this page help you?